{"version":3,"file":"static/js/main.82e35f41.js","mappings":"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CA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAGES,EAA2B,CAC7B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEEQ,EAA0B,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAC7D3B,EAA2B,CAC7B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,KAEEgC,EAA0B,CAC5B,EACA,EACA,EACA,EACA,EACA,GACA,EACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,EACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,EACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAGEZ,EAA6B,CAC/B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEEM,EAA4B,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAC/D4B,EAA6B,CAC/B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,KAEEvC,EAA4B,CAC9B,EACA,EACA,EACA,EACA,GACA,EACA,EACA,GACA,GACA,EACA,GACA,GACA,GACA,EACA,GACA,IACA,GACA,GACA,GACA,IACA,EACA,GACA,GACA,IACA,IACA,IACA,IACA,EACA,GACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,GACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,cAuKOqC,EAAkBp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WjJ,GAClBA,EAAU3J,KAAKkN,IAAIlN,KAAKiN,IAAItD,EAAS,GAAI,KAErChB,GAAkBgB,IAAA,SA1qBCA,GAAA,QACnB5H,EAAM,CACR,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IAGO4I,EAAI,EAAGA,EAAI,GAAIA,IAAK,KACvBb,EAAIU,GAAQzI,EAAI4I,GAAKhB,EAAK,IAAM,KACpCG,EAAI9J,KAAKkN,IAAIlN,KAAKiN,IAAInD,EAAG,GAAI,KAC7BE,EAAOqD,EAAO1C,IAAMb,CAAA,SAElBtQ,EAAO,CACT,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAEOmP,EAAI,EAAGA,EAAI,GAAIA,IAAK,KACvBlP,EAAI+Q,GAAQhR,EAAKmP,GAAKgB,EAAK,IAAM,KACrClQ,EAAIuG,KAAKkN,IAAIlN,KAAKiN,IAAIxT,EAAG,GAAI,KAC7BY,EAAQgT,EAAO1E,IAAMlP,CAAA,SAEnByS,EAAO,CACT,EACA,YACA,YACA,YACA,EACA,WACA,SACA,YAEEL,EAAI,EACCM,EAAM,EAAGA,EAAM,EAAGA,IAAA,IACpB,IAAIO,EAAM,EA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IlM,KAAK8U,IAAInL,EAAEqhC,IACfn/B,EAAI7L,KAAK8U,IAAInL,EAAEk8B,IACf15B,EAAIN,GAAK7B,EAAI,GAAKQ,EACpBzI,GAAKgK,GAAK/B,EAAI,GAAKQ,GAAKb,EAAE6rC,GAC1BzzC,GAAK3D,GAAK3E,EAAI,GAAKY,GAAKsP,EAAEoyI,GAE1Bh6I,GADAA,GAAKmK,GAAKzS,EAAI,GAAKY,GAAKsP,EAAEmyI,IACjB/vI,GAAKvB,EAAMpM,GAAK/D,EAAM6R,GAAK7R,EACpC0H,GAAK,MAAQ4H,EAAEwD,EACfpL,GAAK,MAAQ4H,EAAEuC,EACfnK,GAAK,MAAQ4H,EAAEi2B,GAAA,IACTpmC,IAAOuI,GAAK8J,GAAKrB,EAAKzI,GAAKoK,GAAKxC,EAAEmnC,GAAM/uC,GAAK,MAAQ4H,EAAEsG,EAAA,MAE5DlO,EAAI,EACT4H,EAAI5H,EAAI,EAAI,UAGZ,GAAK4H,GAAA,MACDgB,GAAKA,EAAEwnC,KAAOxoC,EAAIi3H,GAAG92H,IADVH,CAAA,KAIjB+2H,GAAK,GACPlS,GAAK,CACH,EACA,EACA,EACA,EACA,GACA,GACA,GACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,QACA,QACA,QACA,QACA,UAEFmS,GAAK,GACLgb,GAAK,GACLC,GAAK,EACLC,GAAK,CACH,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEJppI,EAAE,aAAc,iBAChB9I,EAAKyzI,WAAa,kBACT,YAETzzI,EAAK0zI,WAAa,SAAS1zI,GAAA,OAClBA,CAAA,EAETA,EAAK2zI,WAAa,SAAS3zI,EAAG5H,EAAG4I,GAAA,OACxB5I,EAAE4I,EAAI,IAEfhB,EAAK4zI,WAAa,SAAS5zI,EAAG5H,EAAG4I,GAAA,OACxB5I,EAAE4I,EAAI,IAEfhB,EAAK6zI,WAAa,SAAS7zI,EAAG5H,EAAG4I,GAAA,OACxB5I,EAAE4I,EAAI,IAEfhB,EAAK8zI,WAAa,SAAS9zI,EAAG5H,EAAG4I,GAAA,OACxB2I,EAAGA,EAAG3J,EAAG5H,EAAE4I,EAAI,IAAK5I,EAAE4I,EAAI,KAEnChB,EAAK+zI,WAAa,SAAS/zI,EAAG5H,EAAG4I,GAAA,OACxB2I,EAAG3J,EAAG5H,EAAE4I,EAAI,KAErBhB,EAAKg0I,WAAa,SAASh0I,EAAG5H,EAAG4I,GAAA,OACxB2I,EAAG3J,EAAG5H,EAAE4I,EAAI,KAErBhB,EAAKi0I,WAAa,SAASj0I,EAAG5H,EAAG4I,GAAA,OACxB2I,EAAGvR,EAAE4I,EAAI,GAAI5I,EAAE4I,EAAI,KAE5BhB,EAAKk0I,WAAa,SAASl0I,EAAG5H,EAAG4I,GAAA,OACxB2I,EAAGvR,EAAE4I,EAAI,GAAI5I,EAAE4I,EAAI,KAE5BhB,EAAKm0I,YAAc,SAASn0I,EAAG5H,EAAG4I,GAAA,OACzB2I,EAAGA,EAAG3J,EAAG5H,EAAE4I,EAAI,IAAK2I,EAAGvR,EAAE4I,EAAI,GAAI5I,EAAE4I,EAAI,MAEhDhB,EAAKo0I,YAAc,SAASp0I,EAAG5H,EAAG4I,GAAA,IAC5Bb,EAAI/H,EAAE4I,EAAI,UAEP,GACLoG,EAAIjH,GAAK,GAAM,IAAMH,GAAK,GAAM,KAFlC5H,EAAIA,EAAE4I,EAAI,KAEmC,GAAM,KAC/CoG,EAAIjH,GAAK,GAAM,IAAMH,GAAK,GAAM,IAAM5H,GAAK,GAAM,KACjDgP,EAAIjH,GAAK,EAAK,IAAMH,GAAK,EAAK,IAAM5H,GAAK,EAAK,KAC9CgP,EAAO,IAAJjH,EAAa,IAAJH,EAAa,IAAJ5H,GACrB+H,EACAH,CAAA,EAENA,EAAKq0I,YAAc,SAASr0I,EAAG5H,EAAG4I,GAAA,IAC5Bb,EAAI/H,EAAE4I,EAAI,UAGVgH,GAAKhI,GAAK,GAAM,MAASG,GAAK,GAAM,OAFxC/H,EAAIA,EAAE4I,EAAI,KAE4C,GAAM,OAAS,GAChEgH,GAAKhI,GAAK,GAAM,MAASG,GAAK,GAAM,MAAS/H,GAAK,GAAM,OACvD,GACD4P,GAAKhI,GAAK,EAAK,MAASG,GAAK,EAAK,MAAS/H,GAAK,EAAK,OAAS,EAC/D4P,GAAQ,IAAJhI,IAAgB,IAAJG,IAAgB,IAAJ/H,OAC9B,GAGJ4H,EAAKs0I,YAAc,SAASt0I,EAAG5H,EAAG4I,GAAA,IAC5Bb,EAAI/H,EAAE4I,EAAI,UAGV6F,GAFJ7G,EAAI2J,EAAG3J,EAAG5H,EAAE4I,EAAI,MAEH,GAAM,IAAMb,GAAK,GAAM,MAAQ,GACvC0G,EAAI7G,GAAK,GAAM,IAAMG,GAAK,GAAM,MAAQ,GACxC0G,EAAI7G,GAAK,EAAK,IAAMG,GAAK,EAAK,MAAQ,EACvC0G,EAAI7G,GAAK,EAAK,IAAMG,GAAK,EAAK,QAChC,OAGAsyI,GAAKzyI,EAAKu0I,cACdv0I,EAAKw0I,cAAgBtrI,EACrBJ,EAAE,aAAc,iBAChBA,EAAE,aAAc,iBAChBA,EAAE,aAAc,iBAChBA,EAAE,aAAc,iBAChBA,EAAE,aAAc,iBAChBA,EAAE,aAAc,iBAChBA,EAAE,aAAc,iBAChBA,EAAE,aAAc,iBAChBA,EAAE,cAAe,kBACjBA,EAAE,cAAe,kBACjBA,EAAE,cAAe,kBACjBA,EAAE,cAAe,sBACb4pI,GAAK1yI,EAAKy0I,cACdjrI,EACE,6BACA,UACA,OACA,SAASxJ,GAAA,OACCA,GAAK,EAAK,OAEpB,SAASA,GAAA,OACAA,CAAA,IAGXwJ,EACE,sCACA,WACA,MACA,SAASxJ,GAAA,OACAA,CAAA,IAET,SAASA,GAAA,OACCA,GAAK,EAAK,WAOpBwyI,GAJEK,GAAK7yI,EAAK00I,2BACZzB,GAAKjzI,EAAK20I,QACV5B,GAAK/yI,EAAK40I,oCACVzB,GAAKnzI,EAAK60I,SAEVlC,GAAM3yI,EAAK80I,kBAAoB,GACjCnC,GAAG5iJ,OAAS,IACXiQ,EAAK+0I,eAAiB,IAAIhlJ,OAAS,IACnCiQ,EAAKg1I,oBAAsB,IAAIjlJ,OAAS,IACxCiQ,EAAKi1I,iBAAmB,IAAIllJ,OAAS,OAClC6iJ,GACFE,GACA/xH,GACAC,GACAY,GACAT,GA+3BAU,GAIArc,GACA4b,GACAW,GACAa,GACAF,GACAZ,GACAttB,GACAmuB,GACAE,GACAE,GACAD,GACAI,GACAD,GACAE,GACAC,GACA4B,GACAL,GAIAtB,GACAoB,GACAG,GACA5B,GAz5BAiC,GAAKjmB,EAAE,KACP0lB,GAAK1lB,EAAE,MACP+lB,GAAK/lB,EAAE,KACPomB,GAAKpmB,EAAE,KACPykB,GAAK,EACLyB,GAAKR,GACLhB,GAAKqB,GACLQ,GAAIH,GACJD,GAAIF,GACJ3B,GAAK,EACLoC,GAAK,EACLb,GAAK,EACLY,GAAK,EACLlC,GAAK,EACLwE,GAAK,EACLvC,GAAK,EACLH,GAAK,EACLC,GAAK,EACLM,GAAK,EACLoC,GAAK,GACLR,GAAK,CAAC,EAAG,EAAG,GACZW,GAAK,CAAC,EAAG,EAAG,IACZb,GAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAC1BF,GAAK,CAAC,EAAG,EAAG,EAAG,EAAG,GAClB6B,GAAK,CAAC,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,IACpEnE,GAAK,CACH,GACA,EACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,EACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,EACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,GACA,EACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,KAEFuC,GAAK,CACH,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEF9N,GAAK,EACLK,GAAK,CACH,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEFoB,GAAK,CACH,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,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IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,OAGvD,CACE,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,OAGvD,CACE,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,OAGvD,CACE,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CAC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KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,MACA,IACA,MACA,MACA,IACA,MACA,MACA,IACA,MACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,MACA,MACA,IACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,KACA,IACA,IACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KACA,IACA,IACA,IACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,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","sources":["../node_modules/axios/index.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/utils.js","../node_modules/bootstrap/js/src/dom/data.js","../node_modules/bootstrap/js/src/util/index.js","../node_modules/bootstrap/js/src/dom/event-handler.js","../node_modules/bootstrap/js/src/dom/manipulator.js","../node_modules/bootstrap/js/src/util/config.js","../node_modules/bootstrap/js/src/base-component.js","../node_modules/bootstrap/js/src/dom/selector-engine.js","../node_modules/bootstrap/js/src/util/component-functions.js","../node_modules/bootstrap/js/src/alert.js","../node_modules/bootstrap/js/src/button.js","../node_modules/bootstrap/js/src/util/swipe.js","../node_modules/bootstrap/js/src/carousel.js","../node_modules/bootstrap/js/src/collapse.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/enums.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/utils/math.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/utils/userAgent.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/dom-utils/contains.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/utils/within.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/modifiers/arrow.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/utils/getVariation.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/utils/computeOffsets.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/utils/detectOverflow.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/modifiers/flip.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/modifiers/hide.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/modifiers/offset.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/utils/getAltAxis.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/utils/orderModifiers.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/createPopper.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/utils/debounce.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/utils/mergeByName.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/popper-lite.js","../node_modules/bootstrap/node_modules/@popperjs/core/lib/popper.js","../node_modules/bootstrap/js/src/dropdown.js","../node_modules/bootstrap/js/src/util/backdrop.js","../node_modules/bootstrap/js/src/util/focustrap.js","../node_modules/bootstrap/js/src/util/scrollbar.js","../node_modules/bootstrap/js/src/modal.js","../node_modules/bootstrap/js/src/offcanvas.js","../node_modules/bootstrap/js/src/util/sanitizer.js","../node_modules/bootstrap/js/src/util/template-factory.js","../node_modules/bootstrap/js/src/tooltip.js","../node_modules/bootstrap/js/src/popover.js","../node_modules/bootstrap/js/src/scrollspy.js","../node_modules/bootstrap/js/src/tab.js","../node_modules/bootstrap/js/src/toast.js","../node_modules/bootstrap/js/index.umd.js","../node_modules/classnames/index.js","../node_modules/invariant/browser.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js","../node_modules/use-sync-external-store/shim/index.js","../node_modules/use-sync-external-store/shim/with-selector.js","../node_modules/warning/warning.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/react-router/lib/use-sync-external-store-shim/useSyncExternalStoreShimClient.ts","../node_modules/react-router/lib/use-sync-external-store-shim/index.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","components/DepartmentHeader.js","../node_modules/react-bootstrap/esm/Feedback.js","../node_modules/react-bootstrap/esm/FormContext.js","../node_modules/react-bootstrap/esm/ThemeProvider.js","../node_modules/react-bootstrap/esm/FormCheckInput.js","../node_modules/react-bootstrap/esm/FormCheckLabel.js","../node_modules/react-bootstrap/esm/ElementChildren.js","../node_modules/react-bootstrap/esm/FormCheck.js","../node_modules/react-bootstrap/esm/FormControl.js","../node_modules/react-bootstrap/esm/FormFloating.js","../node_modules/react-bootstrap/esm/FormGroup.js","../node_modules/react-bootstrap/esm/Col.js","../node_modules/react-bootstrap/esm/FormLabel.js","../node_modules/react-bootstrap/esm/FormRange.js","../node_modules/react-bootstrap/esm/FormSelect.js","../node_modules/react-bootstrap/esm/FormText.js","../node_modules/react-bootstrap/esm/Switch.js","../node_modules/react-bootstrap/esm/FloatingLabel.js","../node_modules/react-bootstrap/esm/Form.js","../node_modules/react-bootstrap/esm/Table.js","../node_modules/@restart/hooks/esm/useCallbackRef.js","../node_modules/@restart/hooks/esm/useCommittedRef.js","../node_modules/@restart/hooks/esm/useEventCallback.js","../node_modules/@restart/hooks/esm/useMounted.js","../node_modules/@restart/hooks/esm/useIsomorphicEffect.js","../node_modules/@restart/hooks/esm/useResizeObserver.js","../node_modules/@restart/ui/esm/Button.js","../node_modules/@restart/ui/esm/Anchor.js","../node_modules/react-bootstrap/esm/PageItem.js","../node_modules/react-bootstrap/esm/Pagination.js","../node_modules/zustand/esm/vanilla.mjs","../node_modules/zustand/esm/index.mjs","utils/stores/aPIURLStore.js","utils/UseAPI.js","../node_modules/react-bootstrap/esm/Spinner.js","components/IBI_ReactTools/IBITable.js","../node_modules/react-router-dom/index.tsx","../node_modules/react-router-dom/dom.ts","components/buttons/Department.js","assets/img/logos/988/angles-right-solid.svg","components/GoogleTranslateBar.js","utils/StringUtils.js","components/IsNullOrWhiteSpace.js","components/ContactInfoPhone.js","components/ContactInfoFax.js","components/ContactInfoAddress.js","components/ContactInfoPerson.js","components/ContactInfoTollFree.js","components/ContactInfo.js","components/EmergencyContact.js","../node_modules/react-bootstrap/esm/Row.js","../node_modules/react-bootstrap/esm/Button.js","components/ContactFormInput.js","../node_modules/@restart/hooks/esm/useMediaQuery.js","../node_modules/@restart/hooks/esm/useBreakpoint.js","../node_modules/dom-helpers/esm/ownerDocument.js","../node_modules/dom-helpers/esm/activeElement.js","../node_modules/dom-helpers/esm/contains.js","../node_modules/dom-helpers/esm/canUseDOM.js","../node_modules/dom-helpers/esm/addEventListener.js","../node_modules/dom-helpers/esm/removeEventListener.js","../node_modules/dom-helpers/esm/listen.js","../node_modules/@restart/hooks/esm/useWillUnmount.js","../node_modules/@restart/hooks/esm/useUpdatedRef.js","../node_modules/dom-helpers/esm/getComputedStyle.js","../node_modules/dom-helpers/esm/ownerWindow.js","../node_modules/dom-helpers/esm/hyphenate.js","../node_modules/dom-helpers/esm/hyphenateStyle.js","../node_modules/dom-helpers/esm/isTransform.js","../node_modules/dom-helpers/esm/css.js","../node_modules/@restart/ui/esm/ModalManager.js","../node_modules/@restart/ui/esm/DataKey.js","../node_modules/@restart/ui/esm/getScrollbarWidth.js","../node_modules/@restart/ui/esm/useWindow.js","../node_modules/@restart/ui/esm/useWaitForDOMRef.js","../node_modules/@restart/hooks/esm/useMergedRefs.js","../node_modules/@restart/ui/esm/NoopTransition.js","../node_modules/@restart/ui/esm/useRTGTransitionProps.js","../node_modules/@restart/ui/esm/RTGTransition.js","../node_modules/@restart/ui/esm/ImperativeTransition.js","../node_modules/@restart/ui/esm/utils.js","../node_modules/@restart/ui/esm/Modal.js","../node_modules/@restart/hooks/esm/usePrevious.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react-transition-group/esm/utils/reflow.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/dom-helpers/esm/transitionEnd.js","../node_modules/dom-helpers/esm/triggerEvent.js","../node_modules/react-bootstrap/esm/transitionEndListener.js","../node_modules/react-bootstrap/esm/triggerBrowserReflow.js","../node_modules/react-bootstrap/esm/safeFindDOMNode.js","../node_modules/react-bootstrap/esm/TransitionWrapper.js","../node_modules/react-bootstrap/esm/Fade.js","../node_modules/react-bootstrap/esm/OffcanvasBody.js","../node_modules/react-bootstrap/esm/OffcanvasToggling.js","../node_modules/react-bootstrap/esm/ModalContext.js","../node_modules/react-bootstrap/esm/NavbarContext.js","../node_modules/react-bootstrap/esm/CloseButton.js","../node_modules/react-bootstrap/esm/AbstractModalHeader.js","../node_modules/react-bootstrap/esm/OffcanvasHeader.js","../node_modules/react-bootstrap/esm/divWithClassName.js","../node_modules/react-bootstrap/esm/OffcanvasTitle.js","../node_modules/dom-helpers/esm/hasClass.js","../node_modules/dom-helpers/esm/querySelectorAll.js","../node_modules/dom-helpers/esm/removeClass.js","../node_modules/react-bootstrap/esm/BootstrapModalManager.js","../node_modules/dom-helpers/esm/addClass.js","../node_modules/react-bootstrap/esm/Offcanvas.js","components/ContactUsForm.js","layouts/Navbar.js","utils/BreadcrumbMap.js","utils/stores/currentPageStore.js","utils/SanitizeHref.js","components/buttons/Breadcrumbs.js","layouts/Footer.js","pages/crisisnos.js","../node_modules/react-router-hash-link/node_modules/tslib/tslib.es6.js","../node_modules/react-router-hash-link/src/HashLink.jsx","components/RelatedLink.js","components/ScrollToTop.js","../node_modules/@restart/hooks/esm/useUpdateEffect.js","../node_modules/@restart/hooks/esm/useTimeout.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/uncontrollable/lib/esm/utils.js","../node_modules/uncontrollable/lib/esm/hook.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/react-bootstrap/esm/CarouselCaption.js","../node_modules/react-bootstrap/esm/CarouselItem.js","../node_modules/react-bootstrap/esm/Carousel.js","components/CarouselFade.js","pages/Home.js","pages/Calendar.js","../node_modules/react-bootstrap/esm/helpers.js","../node_modules/react-bootstrap/esm/getInitialPopperStyles.js","../node_modules/react-bootstrap/esm/Tooltip.js","../node_modules/dequal/dist/index.mjs","../node_modules/@restart/hooks/esm/useSafeState.js","../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../node_modules/@popperjs/core/lib/utils/math.js","../node_modules/@popperjs/core/lib/utils/userAgent.js","../node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../node_modules/@popperjs/core/lib/dom-utils/contains.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../node_modules/@popperjs/core/lib/utils/within.js","../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../node_modules/@popperjs/core/lib/enums.js","../node_modules/@popperjs/core/lib/modifiers/arrow.js","../node_modules/@popperjs/core/lib/utils/getVariation.js","../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../node_modules/@popperjs/core/lib/modifiers/flip.js","../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../node_modules/@popperjs/core/lib/modifiers/hide.js","../node_modules/@popperjs/core/lib/modifiers/offset.js","../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../node_modules/@popperjs/core/lib/utils/debounce.js","../node_modules/@popperjs/core/lib/createPopper.js","../node_modules/@popperjs/core/lib/utils/mergeByName.js","../node_modules/@restart/ui/esm/popper.js","../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../node_modules/@restart/ui/esm/usePopper.js","../node_modules/@restart/ui/esm/useClickOutside.js","../node_modules/@restart/ui/esm/useRootClose.js","../node_modules/@restart/ui/esm/mergeOptionsWithPopperConfig.js","../node_modules/@restart/ui/esm/Overlay.js","../node_modules/react-bootstrap/esm/PopoverHeader.js","../node_modules/react-bootstrap/esm/PopoverBody.js","../node_modules/react-bootstrap/esm/Popover.js","../node_modules/react-bootstrap/esm/Overlay.js","../node_modules/react-bootstrap/esm/useOverlayOffset.js","../node_modules/react-bootstrap/esm/OverlayTrigger.js","providerDirectory/ProviderMap.js","providerDirectory/ProviderOptions.js","providerDirectory/ProviderSearch.js","providerDirectory/ProviderContact.js","../node_modules/fflate/esm/browser.js","../node_modules/jspdf/src/libs/globalObject.js","../node_modules/jspdf/src/libs/console.js","../node_modules/jspdf/src/libs/FileSaver.js","../node_modules/jspdf/src/libs/AtobBtoa.js","../node_modules/jspdf/src/libs/rgbcolor.js","../node_modules/jspdf/src/libs/md5.js","../node_modules/jspdf/src/libs/rc4.js","../node_modules/jspdf/src/libs/pdfsecurity.js","../node_modules/jspdf/src/libs/pdfname.js","../node_modules/jspdf/src/jspdf.js","../node_modules/jspdf/src/modules/acroform.js","../node_modules/jspdf/src/libs/fontFace.js","../node_modules/jspdf/src/modules/addimage.js","../node_modules/jspdf/src/modules/annotations.js","../node_modules/jspdf/src/modules/arabic.js","../node_modules/jspdf/src/modules/autoprint.js","../node_modules/jspdf/src/modules/canvas.js","../node_modules/jspdf/src/modules/cell.js","../node_modules/jspdf/src/modules/javascript.js","../node_modules/jspdf/src/modules/fileloading.js","../node_modules/jspdf/src/modules/context2d.js","../node_modules/jspdf/src/modules/filters.js","../node_modules/jspdf/src/modules/html.js","../node_modules/jspdf/src/modules/outline.js","../node_modules/jspdf/src/modules/jpeg_support.js","../node_modules/jspdf/src/libs/png.js","../node_modules/jspdf/src/modules/split_text_to_size.js","../node_modules/jspdf/src/libs/omggif.js","../node_modules/jspdf/src/libs/JPEGEncoder.js","../node_modules/jspdf/src/libs/BMPDecoder.js","../node_modules/jspdf/src/libs/WebPDecoder.js","../node_modules/jspdf/src/modules/png_support.js","../node_modules/jspdf/src/modules/gif_support.js","../node_modules/jspdf/src/modules/bmp_support.js","../node_modules/jspdf/src/modules/webp_support.js","../node_modules/jspdf/src/modules/rgba_support.js","../node_modules/jspdf/src/modules/setlanguage.js","../node_modules/jspdf/src/modules/standard_fonts_metrics.js","../node_modules/jspdf/src/modules/ttfsupport.js","../node_modules/jspdf/src/modules/svg.js","../node_modules/jspdf/src/modules/total_pages.js","../node_modules/jspdf/src/modules/viewerpreferences.js","../node_modules/jspdf/src/modules/xmp_metadata.js","../node_modules/jspdf/src/modules/utf8.js","../node_modules/jspdf/src/modules/vfs.js","../node_modules/jspdf/src/libs/bidiEngine.js","../node_modules/jspdf/src/libs/ttffont.js","providerDirectory/GeneratePDF.js","providerDirectory/ProviderProfile.js","../node_modules/dom-helpers/esm/scrollbarSize.js","../node_modules/react-bootstrap/esm/ModalBody.js","../node_modules/react-bootstrap/esm/ModalDialog.js","../node_modules/react-bootstrap/esm/ModalFooter.js","../node_modules/react-bootstrap/esm/ModalHeader.js","../node_modules/react-bootstrap/esm/ModalTitle.js","../node_modules/react-bootstrap/esm/Modal.js","providerDirectory/ProviderDirectory.js","utils/BodyHelperTypes.js","layouts/bodyLayouts/helpers/UnorderedList.js","pages/afm/Content/aFM_Content.js","pages/Error.js","components/TableOfContent.js","utils/useObserver.js","layouts/bodyLayouts/LayoutOne.js","layouts/bodyLayouts/helpers/SectionTitle.js","layouts/bodyLayouts/helpers/Paragraph.js","layouts/bodyLayouts/helpers/Paragraphs.js","layouts/bodyLayouts/helpers/OrderedList.js","layouts/bodyLayouts/helpers/Picture.js","layouts/bodyLayouts/helpers/LinksTwo.js","layouts/bodyLayouts/BodyContent.js","layouts/MasterPage.js","layouts/Page.js","pages/sud/content/kIP_Content.js","pages/sud/content/sAKPN_Content.js","pages/sud/content/pES_Content.js","pages/sud/content/yEG_Content.js","pages/sud/content/kRSPMG_Content.js","components/Links.js","pages/sud/content/continuum_Content.js","pages/mh/Content/children_Content.js","pages/mh/Content/adolescent_Content.js","pages/mh/Content/eCMH_Content.js","pages/mh/Content/eCMHLinks_Content.js","pages/mh/Content/hFW_Content.js","pages/mh/Content/kYImpact_Content.js","pages/mh/Content/rIAC_Content.js","pages/mh/Content/cCC_Content.js","pages/mh/Content/sIAC_Content.js","pages/mh/Content/systemOfCare_Content.js","pages/mh/Content/tCMChild_Content.js","pages/mh/Content/youthAdult_Content.js","pages/mh/Content/kEDC_Content.js","pages/mh/Content/pPP_Content.js","pages/mh/Content/mHPromotion_Content.js","pages/mh/Content/sP_Content.js","pages/mh/Content/kCCRT_Content.js","components/DataGuideList.js","pages/cmhc/Content.js/dataGuide_Content.js","pages/Content/traumaAndResilience_Content.js","pages/mh/Content/dHHS_Content.js","pages/mh/Content/adultSA_Content.js","pages/mh/Content/cooccurring_Content.js","pages/mh/Content/adultMHCJI_content.js","components/JCICList.js","pages/sud/content/eBPIInterviewing_Content.js","pages/cmhc/Content.js/jCIC_Content.js","pages/sud/content/eBPINiatx_Content.js","pages/sud/content/resources_Content.js","components/WIDScrollDown.js","pages/Content/wID_Content.js","pages/sud/content/evidenceBasedInitiatives_Content.js","pages/sud/content/trust_Content.js","pages/mh/Content/cBHT_Content.js","pages/mh/Content/bHPAC_Content.js","pages/mh/Content/bHPACAbout_Content.js","pages/sud/content/immersion_Content.js","components/DocumentsDropdown.js","pages/mh/Content/bHPACSummaries_Content.js","pages/mh/Content/bHPACBG_Content.js","pages/mh/Content/sOCA_Content.js","pages/mh/Content/impactVideo_Content.js","pages/mh/Content/actPrinciples_Content.js","pages/Content/trauma_Content.js","pages/Content/guidePrinciples_Content.js","pages/Content/hIPAALaw_Content.js","pages/ddid/Content/recordings_Content.js","pages/sud/content/bestPractice_Content.js","pages/cmhc/Content.js/dataCommittee_Content.js","pages/mh/Content/sIACSummaries_Content.js","pages/Content/kYCCL_Content.js","pages/Content/pASRR_Content.js","pages/Content/pASRRForms_Content.js","pages/Content/crisis_Content.js","components/BranchInfo.js","components/CountyList.js","pages/cmhc/Content.js/cMHCHome_Content.js","components/DataReportList.js","pages/cmhc/Content.js/dataReports_Content.js","components/CenterList.js","pages/cmhc/Content.js/centers_Content.js","pages/cmhc/Content.js/cRD_Content.js","components/DPRForms.js","components/PBFormsInfo.js","pages/cmhc/Content.js/planAndBudget_Content.js","pages/cmhc/Content.js/qMOTSurveys_Content.js","pages/cmhc/Content.js/qMOTDocs_Content.js","pages/cmhc/Content.js/pI_Content..js","pages/cmhc/Content.js/dPR_Content.js","pages/cmhc/Content.js/dataInfo_Content.js","pages/sud/content/sUDHome_Content.js","pages/sud/content/eBPIRecovery_Content.js","pages/sud/content/sMVF_Content.js","pages/sud/content/headedHome_Content.js","pages/sud/content/aSAMPPC_Content.js","pages/sud/content/faithBased_Content.js","pages/sud/content/kYMomsMATR_Content.js","pages/sud/content/oxfordHouse_Content.js","pages/sud/content/kRHN_Content.js","pages/sud/content/women_Content.js","pages/sud/content/bHPP_Content.js","pages/sud/content/sARPC_Content.js","pages/sud/content/wDYE_Content.js","pages/sud/content/sSPW_Content.js","pages/sud/content/strength_Content.js","pages/sud/content/tGD_Content.js","pages/sud/content/pIP_Content.js","pages/sud/content/dTP_Content.js","pages/sud/content/kSAP_Content.js","pages/sud/content/synar_Content.js","pages/sud/content/zero_Content.js","pages/mh/Content/mHHome_Content.js","pages/ddid/Content/dDIDHome_Content.js","pages/mh/Content/cSA_Content.js","pages/mh/Content/pSS_Content.js","pages/mh/Content/tCM_Content.js","pages/mh/Content/eBPCYF_Content.js","pages/mh/Content/adultMH_Content.js","pages/mh/Content/act_Content.js","pages/mh/Content/employment_Content.js","pages/mh/Content/housing_Content.js","pages/mh/Content/tCMAdult_Content.js","pages/mh/Content/housingResources_Content.js","pages/mh/Content/adultMHAging_Content.js","components/FacilitiesDataReports.js","pages/facilites/Content/dataReport_Content.js","pages/facilites/Content/FaciliitesHome_Content.js","pages/facilites/Content/pDRates_Content.js","pages/facilites/Content/procedures_Content.js","pages/dpi/Content/dPIHome_Content.js","pages/dpi/Content/dUI_Content.js","pages/dpi/Content/opiate_Content.js","pages/dpi/Content/cAP_Content.js","pages/dpi/Content/tRIS_Content.js","pages/dpi/Content/dUITraining_Content.js","pages/dpi/Content/dUIForms.js","pages/dpi/Content/dUIFAQ.js","components/CSBServiceDropdown.js","pages/ddid/Content/cSB_Content.js","pages/ddid/Content/sCL_Content.js","components/LinkNoNewPage.js","pages/ddid/Content/clinical_Content.js","pages/ddid/Content/sCLTraining.js","pages/ddid/Content/sCLNewProvider.js","pages/ddid/Content/hRCBIC_Content.js","pages/ddid/Content/cMTraining_Content.js","pages/ddid/Content/commission_Content.js","components/DropdownList.js","pages/ddid/Content/commissionDocuments_Content.js","pages/ddid/Content/sCLFormsCertification_Content.js","pages/ddid/Content/sCLFormsCM_Content.js","pages/ddid/Content/sCLFormsEmployment_Content.js","pages/ddid/Content/sCLFormsGeneral_Content.js","pages/ddid/Content/sCLFormsIncident_Content.js","pages/ddid/Content/sCLFormsRisk.js","pages/ddid/Content/sCLForms_Content.js","pages/ddid/Content/sCLQASubmit_Content.js","pages/ddid/Content/sCLRegulations_Content.js","components/SCLServiceList.js","pages/ddid/Content/sCLServices_Content.js","pages/ddid/Content/sGFForms_Content.js","pages/ddid/Content/iM_Content.js","pages/Content/olmstead_Content.js","pages/Content/hOTLINES_Content.js","pages/Content/autism_Content.js","components/PBForms.js","pages/cmhc/Content.js/pBFormsLibrary_Content.js","components/DPRFormLibrary.js","pages/cmhc/dPRFormsLibrary_Content.js","pages/mh/Content/aOT_Content.js","pages/mh/Content/eBPIIntegrated_Content.js","components/DDIDCountyList.js","pages/ddid/Content/accessAndReferral_Content.js","pages/Content/nursingFacilityPASRRRecources_Content.js","App.js","reportWebVitals.js","components/ScrollToTopForNewPage.js","index.js"],"sourcesContent":["module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar transitionalDefaults = require('../defaults/transitional');\nvar AxiosError = require('../core/AxiosError');\nvar CanceledError = require('../cancel/CanceledError');\nvar parseProtocol = require('../helpers/parseProtocol');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData) && utils.isStandardBrowserEnv()) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new CanceledError() : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n var protocol = parseProtocol(fullPath);\n\n if (protocol && [ 'http', 'https', 'file' ].indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = require('./cancel/CanceledError');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\naxios.toFormData = require('./helpers/toFormData');\n\n// Expose AxiosError class\naxios.AxiosError = require('../lib/core/AxiosError');\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\nvar CanceledError = require('./CanceledError');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nvar AxiosError = require('../core/AxiosError');\nvar utils = require('../utils');\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction CanceledError(message) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nmodule.exports = CanceledError;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar buildFullPath = require('./buildFullPath');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n var fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url: url,\n data: data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nvar prototype = AxiosError.prototype;\nvar descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED'\n// eslint-disable-next-line func-names\n].forEach(function(code) {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = function(error, code, config, request, response, customProps) {\n var axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nmodule.exports = AxiosError;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar CanceledError = require('../cancel/CanceledError');\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'beforeRedirect': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n","'use strict';\n\nvar AxiosError = require('./AxiosError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar normalizeHeaderName = require('../helpers/normalizeHeaderName');\nvar AxiosError = require('../core/AxiosError');\nvar transitionalDefaults = require('./transitional');\nvar toFormData = require('../helpers/toFormData');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('../adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('../adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n\n var isObjectPayload = utils.isObject(data);\n var contentType = headers && headers['Content-Type'];\n\n var isFileList;\n\n if ((isFileList = utils.isFileList(data)) || (isObjectPayload && contentType === 'multipart/form-data')) {\n var _FormData = this.env && this.env.FormData;\n return toFormData(isFileList ? {'files[]': data} : data, _FormData && new _FormData());\n } else if (isObjectPayload || contentType === 'application/json') {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: require('./env/FormData')\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nmodule.exports = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","module.exports = {\n \"version\": \"0.27.2\"\n};","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","// eslint-disable-next-line strict\nmodule.exports = null;\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nmodule.exports = function parseProtocol(url) {\n var match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Convert a data object to FormData\n * @param {Object} obj\n * @param {?Object} [formData]\n * @returns {Object}\n **/\n\nfunction toFormData(obj, formData) {\n // eslint-disable-next-line no-param-reassign\n formData = formData || new FormData();\n\n var stack = [];\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n function build(data, parentKey) {\n if (utils.isPlainObject(data) || utils.isArray(data)) {\n if (stack.indexOf(data) !== -1) {\n throw Error('Circular reference detected in ' + parentKey);\n }\n\n stack.push(data);\n\n utils.forEach(data, function each(value, key) {\n if (utils.isUndefined(value)) return;\n var fullKey = parentKey ? parentKey + '.' + key : key;\n var arr;\n\n if (value && !parentKey && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (utils.endsWith(key, '[]') && (arr = utils.toArray(value))) {\n // eslint-disable-next-line func-names\n arr.forEach(function(el) {\n !utils.isUndefined(el) && formData.append(fullKey, convertValue(el));\n });\n return;\n }\n }\n\n build(value, fullKey);\n });\n\n stack.pop();\n } else {\n formData.append(parentKey, convertValue(data));\n }\n }\n\n build(obj);\n\n return formData;\n}\n\nmodule.exports = toFormData;\n","'use strict';\n\nvar VERSION = require('../env/data').version;\nvar AxiosError = require('../core/AxiosError');\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n// eslint-disable-next-line func-names\nvar kindOf = (function(cache) {\n // eslint-disable-next-line func-names\n return function(thing) {\n var str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n };\n})(Object.create(null));\n\nfunction kindOfTest(type) {\n type = type.toLowerCase();\n return function isKindOf(thing) {\n return kindOf(thing) === type;\n };\n}\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nvar isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nvar isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nvar isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nvar isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nvar isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} thing The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(thing) {\n var pattern = '[object FormData]';\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) ||\n toString.call(thing) === pattern ||\n (isFunction(thing.toString) && thing.toString() === pattern)\n );\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nvar isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n */\n\nfunction inherits(constructor, superConstructor, props, descriptors) {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function} [filter]\n * @returns {Object}\n */\n\nfunction toFlatObject(sourceObj, destObj, filter) {\n var props;\n var i;\n var prop;\n var merged = {};\n\n destObj = destObj || {};\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if (!merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = Object.getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/*\n * determines whether a string ends with the characters of a specified string\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n * @returns {boolean}\n */\nfunction endsWith(str, searchString, position) {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n var lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object\n * @param {*} [thing]\n * @returns {Array}\n */\nfunction toArray(thing) {\n if (!thing) return null;\n var i = thing.length;\n if (isUndefined(i)) return null;\n var arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n// eslint-disable-next-line func-names\nvar isTypedArray = (function(TypedArray) {\n // eslint-disable-next-line func-names\n return function(thing) {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && Object.getPrototypeOf(Uint8Array));\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM,\n inherits: inherits,\n toFlatObject: toFlatObject,\n kindOf: kindOf,\n kindOfTest: kindOfTest,\n endsWith: endsWith,\n toArray: toArray,\n isTypedArray: isTypedArray,\n isFileList: isFileList\n};\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\nconst elementMap = new Map()\n\nexport default {\n set(element, key, instance) {\n if (!elementMap.has(element)) {\n elementMap.set(element, new Map())\n }\n\n const instanceMap = elementMap.get(element)\n\n // make it clear we only want one instance per element\n // can be removed later when multiple key/instances are fine to be used\n if (!instanceMap.has(key) && instanceMap.size !== 0) {\n // eslint-disable-next-line no-console\n console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`)\n return\n }\n\n instanceMap.set(key, instance)\n },\n\n get(element, key) {\n if (elementMap.has(element)) {\n return elementMap.get(element).get(key) || null\n }\n\n return null\n },\n\n remove(element, key) {\n if (!elementMap.has(element)) {\n return\n }\n\n const instanceMap = elementMap.get(element)\n\n instanceMap.delete(key)\n\n // free up element references if there are no instances left for an element\n if (instanceMap.size === 0) {\n elementMap.delete(element)\n }\n }\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1_000_000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n/**\n * Properly escape IDs selectors to handle weird IDs\n * @param {string} selector\n * @returns {string}\n */\nconst parseSelector = selector => {\n if (selector && window.CSS && window.CSS.escape) {\n // document.querySelector needs escaping to handle IDs (html5+) containing for instance /\n selector = selector.replace(/#([^\\s\"#']+)/g, (match, id) => `#${CSS.escape(id)}`)\n }\n\n return selector\n}\n\n// Shout-out Angus Croll (https://goo.gl/pxwQGp)\nconst toType = object => {\n if (object === null || object === undefined) {\n return `${object}`\n }\n\n return Object.prototype.toString.call(object).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * Public Util API\n */\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID)\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let { transitionDuration, transitionDelay } = window.getComputedStyle(element)\n\n const floatTransitionDuration = Number.parseFloat(transitionDuration)\n const floatTransitionDelay = Number.parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = object => {\n if (!object || typeof object !== 'object') {\n return false\n }\n\n if (typeof object.jquery !== 'undefined') {\n object = object[0]\n }\n\n return typeof object.nodeType !== 'undefined'\n}\n\nconst getElement = object => {\n // it's a jQuery object or a node element\n if (isElement(object)) {\n return object.jquery ? object[0] : object\n }\n\n if (typeof object === 'string' && object.length > 0) {\n return document.querySelector(parseSelector(object))\n }\n\n return null\n}\n\nconst isVisible = element => {\n if (!isElement(element) || element.getClientRects().length === 0) {\n return false\n }\n\n const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible'\n // Handle `details` element as its content may falsie appear visible when it is closed\n const closedDetails = element.closest('details:not([open])')\n\n if (!closedDetails) {\n return elementIsVisible\n }\n\n if (closedDetails !== element) {\n const summary = element.closest('summary')\n if (summary && summary.parentNode !== closedDetails) {\n return false\n }\n\n if (summary === null) {\n return false\n }\n }\n\n return elementIsVisible\n}\n\nconst isDisabled = element => {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true\n }\n\n if (element.classList.contains('disabled')) {\n return true\n }\n\n if (typeof element.disabled !== 'undefined') {\n return element.disabled\n }\n\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false'\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => {}\n\n/**\n * Trick to restart an element's animation\n *\n * @param {HTMLElement} element\n * @return void\n *\n * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\n */\nconst reflow = element => {\n element.offsetHeight // eslint-disable-line no-unused-expressions\n}\n\nconst getjQuery = () => {\n if (window.jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return window.jQuery\n }\n\n return null\n}\n\nconst DOMContentLoadedCallbacks = []\n\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!DOMContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', () => {\n for (const callback of DOMContentLoadedCallbacks) {\n callback()\n }\n })\n }\n\n DOMContentLoadedCallbacks.push(callback)\n } else {\n callback()\n }\n}\n\nconst isRTL = () => document.documentElement.dir === 'rtl'\n\nconst defineJQueryPlugin = plugin => {\n onDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const name = plugin.NAME\n const JQUERY_NO_CONFLICT = $.fn[name]\n $.fn[name] = plugin.jQueryInterface\n $.fn[name].Constructor = plugin\n $.fn[name].noConflict = () => {\n $.fn[name] = JQUERY_NO_CONFLICT\n return plugin.jQueryInterface\n }\n }\n })\n}\n\nconst execute = (possibleCallback, args = [], defaultValue = possibleCallback) => {\n return typeof possibleCallback === 'function' ? possibleCallback(...args) : defaultValue\n}\n\nconst executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {\n if (!waitForTransition) {\n execute(callback)\n return\n }\n\n const durationPadding = 5\n const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding\n\n let called = false\n\n const handler = ({ target }) => {\n if (target !== transitionElement) {\n return\n }\n\n called = true\n transitionElement.removeEventListener(TRANSITION_END, handler)\n execute(callback)\n }\n\n transitionElement.addEventListener(TRANSITION_END, handler)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(transitionElement)\n }\n }, emulatedDuration)\n}\n\n/**\n * Return the previous/next element of a list.\n *\n * @param {array} list The list of elements\n * @param activeElement The active element\n * @param shouldGetNext Choose to get next or previous element\n * @param isCycleAllowed\n * @return {Element|elem} The proper element\n */\nconst getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\n const listLength = list.length\n let index = list.indexOf(activeElement)\n\n // if the element does not exist in the list return an element\n // depending on the direction and if cycle is allowed\n if (index === -1) {\n return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0]\n }\n\n index += shouldGetNext ? 1 : -1\n\n if (isCycleAllowed) {\n index = (index + listLength) % listLength\n }\n\n return list[Math.max(0, Math.min(index, listLength - 1))]\n}\n\nexport {\n defineJQueryPlugin,\n execute,\n executeAfterTransition,\n findShadowRoot,\n getElement,\n getjQuery,\n getNextActiveElement,\n getTransitionDurationFromElement,\n getUID,\n isDisabled,\n isElement,\n isRTL,\n isVisible,\n noop,\n onDOMContentLoaded,\n parseSelector,\n reflow,\n triggerTransitionEnd,\n toType\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery } from '../util/index.js'\n\n/**\n * Constants\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\n\nconst nativeEvents = new Set([\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n])\n\n/**\n * Private methods\n */\n\nfunction makeEventUid(element, uid) {\n return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++\n}\n\nfunction getElementEvents(element) {\n const uid = makeEventUid(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n hydrateObj(event, { delegateTarget: element })\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (const domElement of domElements) {\n if (domElement !== target) {\n continue\n }\n\n hydrateObj(event, { delegateTarget: target })\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, selector, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n}\n\nfunction findHandler(events, callable, delegationSelector = null) {\n return Object.values(events)\n .find(event => event.callable === callable && event.delegationSelector === delegationSelector)\n}\n\nfunction normalizeParameters(originalTypeEvent, handler, delegationFunction) {\n const isDelegated = typeof handler === 'string'\n // TODO: tooltip passes `false` instead of selector, so we need to check\n const callable = isDelegated ? delegationFunction : (handler || delegationFunction)\n let typeEvent = getTypeEvent(originalTypeEvent)\n\n if (!nativeEvents.has(typeEvent)) {\n typeEvent = originalTypeEvent\n }\n\n return [isDelegated, callable, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)\n\n // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\n // this prevents the handler from being dispatched the same way as mouseover or mouseout does\n if (originalTypeEvent in customEvents) {\n const wrapFunction = fn => {\n return function (event) {\n if (!event.relatedTarget || (event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget))) {\n return fn.call(this, event)\n }\n }\n }\n\n callable = wrapFunction(callable)\n }\n\n const events = getElementEvents(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null)\n\n if (previousFunction) {\n previousFunction.oneOff = previousFunction.oneOff && oneOff\n\n return\n }\n\n const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = isDelegated ?\n bootstrapDelegationHandler(element, handler, callable) :\n bootstrapHandler(element, callable)\n\n fn.delegationSelector = isDelegated ? handler : null\n fn.callable = callable\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, isDelegated)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (!fn) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n for (const [handlerKey, event] of Object.entries(storeElementEvent)) {\n if (handlerKey.includes(namespace)) {\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector)\n }\n }\n}\n\nfunction getTypeEvent(event) {\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n event = event.replace(stripNameRegex, '')\n return customEvents[event] || event\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, false)\n },\n\n one(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFunction) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getElementEvents(element)\n const storeElementEvent = events[typeEvent] || {}\n const isNamespace = originalTypeEvent.startsWith('.')\n\n if (typeof callable !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!Object.keys(storeElementEvent).length) {\n return\n }\n\n removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null)\n return\n }\n\n if (isNamespace) {\n for (const elementEvent of Object.keys(events)) {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1))\n }\n }\n\n for (const [keyHandlers, event] of Object.entries(storeElementEvent)) {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector)\n }\n }\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const $ = getjQuery()\n const typeEvent = getTypeEvent(event)\n const inNamespace = event !== typeEvent\n\n let jQueryEvent = null\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n\n if (inNamespace && $) {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n const evt = hydrateObj(new Event(event, { bubbles, cancelable: true }), args)\n\n if (defaultPrevented) {\n evt.preventDefault()\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && jQueryEvent) {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nfunction hydrateObj(obj, meta = {}) {\n for (const [key, value] of Object.entries(meta)) {\n try {\n obj[key] = value\n } catch {\n Object.defineProperty(obj, key, {\n configurable: true,\n get() {\n return value\n }\n })\n }\n }\n\n return obj\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(value) {\n if (value === 'true') {\n return true\n }\n\n if (value === 'false') {\n return false\n }\n\n if (value === Number(value).toString()) {\n return Number(value)\n }\n\n if (value === '' || value === 'null') {\n return null\n }\n\n if (typeof value !== 'string') {\n return value\n }\n\n try {\n return JSON.parse(decodeURIComponent(value))\n } catch {\n return value\n }\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`)\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-bs-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {}\n const bsKeys = Object.keys(element.dataset).filter(key => key.startsWith('bs') && !key.startsWith('bsConfig'))\n\n for (const key of bsKeys) {\n let pureKey = key.replace(/^bs/, '')\n pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length)\n attributes[pureKey] = normalizeData(element.dataset[key])\n }\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`))\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/config.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Manipulator from '../dom/manipulator.js'\nimport { isElement, toType } from './index.js'\n\n/**\n * Class definition\n */\n\nclass Config {\n // Getters\n static get Default() {\n return {}\n }\n\n static get DefaultType() {\n return {}\n }\n\n static get NAME() {\n throw new Error('You have to implement the static method \"NAME\", for each component!')\n }\n\n _getConfig(config) {\n config = this._mergeConfigObj(config)\n config = this._configAfterMerge(config)\n this._typeCheckConfig(config)\n return config\n }\n\n _configAfterMerge(config) {\n return config\n }\n\n _mergeConfigObj(config, element) {\n const jsonConfig = isElement(element) ? Manipulator.getDataAttribute(element, 'config') : {} // try to parse\n\n return {\n ...this.constructor.Default,\n ...(typeof jsonConfig === 'object' ? jsonConfig : {}),\n ...(isElement(element) ? Manipulator.getDataAttributes(element) : {}),\n ...(typeof config === 'object' ? config : {})\n }\n }\n\n _typeCheckConfig(config, configTypes = this.constructor.DefaultType) {\n for (const [property, expectedTypes] of Object.entries(configTypes)) {\n const value = config[property]\n const valueType = isElement(value) ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(\n `${this.constructor.NAME.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`\n )\n }\n }\n }\n}\n\nexport default Config\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Data from './dom/data.js'\nimport EventHandler from './dom/event-handler.js'\nimport Config from './util/config.js'\nimport { executeAfterTransition, getElement } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst VERSION = '5.3.3'\n\n/**\n * Class definition\n */\n\nclass BaseComponent extends Config {\n constructor(element, config) {\n super()\n\n element = getElement(element)\n if (!element) {\n return\n }\n\n this._element = element\n this._config = this._getConfig(config)\n\n Data.set(this._element, this.constructor.DATA_KEY, this)\n }\n\n // Public\n dispose() {\n Data.remove(this._element, this.constructor.DATA_KEY)\n EventHandler.off(this._element, this.constructor.EVENT_KEY)\n\n for (const propertyName of Object.getOwnPropertyNames(this)) {\n this[propertyName] = null\n }\n }\n\n _queueCallback(callback, element, isAnimated = true) {\n executeAfterTransition(callback, element, isAnimated)\n }\n\n _getConfig(config) {\n config = this._mergeConfigObj(config, this._element)\n config = this._configAfterMerge(config)\n this._typeCheckConfig(config)\n return config\n }\n\n // Static\n static getInstance(element) {\n return Data.get(getElement(element), this.DATA_KEY)\n }\n\n static getOrCreateInstance(element, config = {}) {\n return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null)\n }\n\n static get VERSION() {\n return VERSION\n }\n\n static get DATA_KEY() {\n return `bs.${this.NAME}`\n }\n\n static get EVENT_KEY() {\n return `.${this.DATA_KEY}`\n }\n\n static eventName(name) {\n return `${name}${this.EVENT_KEY}`\n }\n}\n\nexport default BaseComponent\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { isDisabled, isVisible, parseSelector } from '../util/index.js'\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-bs-target')\n\n if (!selector || selector === '#') {\n let hrefAttribute = element.getAttribute('href')\n\n // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n if (!hrefAttribute || (!hrefAttribute.includes('#') && !hrefAttribute.startsWith('.'))) {\n return null\n }\n\n // Just in case some CMS puts out a full URL with the anchor appended\n if (hrefAttribute.includes('#') && !hrefAttribute.startsWith('#')) {\n hrefAttribute = `#${hrefAttribute.split('#')[1]}`\n }\n\n selector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null\n }\n\n return selector ? selector.split(',').map(sel => parseSelector(sel)).join(',') : null\n}\n\nconst SelectorEngine = {\n find(selector, element = document.documentElement) {\n return [].concat(...Element.prototype.querySelectorAll.call(element, selector))\n },\n\n findOne(selector, element = document.documentElement) {\n return Element.prototype.querySelector.call(element, selector)\n },\n\n children(element, selector) {\n return [].concat(...element.children).filter(child => child.matches(selector))\n },\n\n parents(element, selector) {\n const parents = []\n let ancestor = element.parentNode.closest(selector)\n\n while (ancestor) {\n parents.push(ancestor)\n ancestor = ancestor.parentNode.closest(selector)\n }\n\n return parents\n },\n\n prev(element, selector) {\n let previous = element.previousElementSibling\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous]\n }\n\n previous = previous.previousElementSibling\n }\n\n return []\n },\n // TODO: this is now unused; remove later along with prev()\n next(element, selector) {\n let next = element.nextElementSibling\n\n while (next) {\n if (next.matches(selector)) {\n return [next]\n }\n\n next = next.nextElementSibling\n }\n\n return []\n },\n\n focusableChildren(element) {\n const focusables = [\n 'a',\n 'button',\n 'input',\n 'textarea',\n 'select',\n 'details',\n '[tabindex]',\n '[contenteditable=\"true\"]'\n ].map(selector => `${selector}:not([tabindex^=\"-\"])`).join(',')\n\n return this.find(focusables, element).filter(el => !isDisabled(el) && isVisible(el))\n },\n\n getSelectorFromElement(element) {\n const selector = getSelector(element)\n\n if (selector) {\n return SelectorEngine.findOne(selector) ? selector : null\n }\n\n return null\n },\n\n getElementFromSelector(element) {\n const selector = getSelector(element)\n\n return selector ? SelectorEngine.findOne(selector) : null\n },\n\n getMultipleElementsFromSelector(element) {\n const selector = getSelector(element)\n\n return selector ? SelectorEngine.find(selector) : []\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/component-functions.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport EventHandler from '../dom/event-handler.js'\nimport SelectorEngine from '../dom/selector-engine.js'\nimport { isDisabled } from './index.js'\n\nconst enableDismissTrigger = (component, method = 'hide') => {\n const clickEvent = `click.dismiss${component.EVENT_KEY}`\n const name = component.NAME\n\n EventHandler.on(document, clickEvent, `[data-bs-dismiss=\"${name}\"]`, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n const target = SelectorEngine.getElementFromSelector(this) || this.closest(`.${name}`)\n const instance = component.getOrCreateInstance(target)\n\n // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method\n instance[method]()\n })\n}\n\nexport {\n enableDismissTrigger\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport { enableDismissTrigger } from './util/component-functions.js'\nimport { defineJQueryPlugin } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'alert'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\n/**\n * Class definition\n */\n\nclass Alert extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME\n }\n\n // Public\n close() {\n const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE)\n\n if (closeEvent.defaultPrevented) {\n return\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n const isAnimated = this._element.classList.contains(CLASS_NAME_FADE)\n this._queueCallback(() => this._destroyElement(), this._element, isAnimated)\n }\n\n // Private\n _destroyElement() {\n this._element.remove()\n EventHandler.trigger(this._element, EVENT_CLOSED)\n this.dispose()\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Alert.getOrCreateInstance(this)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\nenableDismissTrigger(Alert, 'close')\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Alert)\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport { defineJQueryPlugin } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'button'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"button\"]'\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\n/**\n * Class definition\n */\n\nclass Button extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method\n this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE))\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Button.getOrCreateInstance(this)\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, event => {\n event.preventDefault()\n\n const button = event.target.closest(SELECTOR_DATA_TOGGLE)\n const data = Button.getOrCreateInstance(button)\n\n data.toggle()\n})\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Button)\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/swipe.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport EventHandler from '../dom/event-handler.js'\nimport Config from './config.js'\nimport { execute } from './index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'swipe'\nconst EVENT_KEY = '.bs.swipe'\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst POINTER_TYPE_TOUCH = 'touch'\nconst POINTER_TYPE_PEN = 'pen'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n endCallback: null,\n leftCallback: null,\n rightCallback: null\n}\n\nconst DefaultType = {\n endCallback: '(function|null)',\n leftCallback: '(function|null)',\n rightCallback: '(function|null)'\n}\n\n/**\n * Class definition\n */\n\nclass Swipe extends Config {\n constructor(element, config) {\n super()\n this._element = element\n\n if (!element || !Swipe.isSupported()) {\n return\n }\n\n this._config = this._getConfig(config)\n this._deltaX = 0\n this._supportPointerEvents = Boolean(window.PointerEvent)\n this._initEvents()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n }\n\n // Private\n _start(event) {\n if (!this._supportPointerEvents) {\n this._deltaX = event.touches[0].clientX\n\n return\n }\n\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX\n }\n }\n\n _end(event) {\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX - this._deltaX\n }\n\n this._handleSwipe()\n execute(this._config.endCallback)\n }\n\n _move(event) {\n this._deltaX = event.touches && event.touches.length > 1 ?\n 0 :\n event.touches[0].clientX - this._deltaX\n }\n\n _handleSwipe() {\n const absDeltaX = Math.abs(this._deltaX)\n\n if (absDeltaX <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltaX / this._deltaX\n\n this._deltaX = 0\n\n if (!direction) {\n return\n }\n\n execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback)\n }\n\n _initEvents() {\n if (this._supportPointerEvents) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, event => this._start(event))\n EventHandler.on(this._element, EVENT_POINTERUP, event => this._end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, event => this._start(event))\n EventHandler.on(this._element, EVENT_TOUCHMOVE, event => this._move(event))\n EventHandler.on(this._element, EVENT_TOUCHEND, event => this._end(event))\n }\n }\n\n _eventIsPointerPenTouch(event) {\n return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)\n }\n\n // Static\n static isSupported() {\n return 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n }\n}\n\nexport default Swipe\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport {\n defineJQueryPlugin,\n getNextActiveElement,\n isRTL,\n isVisible,\n reflow,\n triggerTransitionEnd\n} from './util/index.js'\nimport Swipe from './util/swipe.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'carousel'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\n\nconst ORDER_NEXT = 'next'\nconst ORDER_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SLIDE = 'slide'\nconst CLASS_NAME_END = 'carousel-item-end'\nconst CLASS_NAME_START = 'carousel-item-start'\nconst CLASS_NAME_NEXT = 'carousel-item-next'\nconst CLASS_NAME_PREV = 'carousel-item-prev'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ACTIVE_ITEM = SELECTOR_ACTIVE + SELECTOR_ITEM\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-bs-ride=\"carousel\"]'\n\nconst KEY_TO_DIRECTION = {\n [ARROW_LEFT_KEY]: DIRECTION_RIGHT,\n [ARROW_RIGHT_KEY]: DIRECTION_LEFT\n}\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n pause: 'hover',\n ride: false,\n touch: true,\n wrap: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)', // TODO:v6 remove boolean support\n keyboard: 'boolean',\n pause: '(string|boolean)',\n ride: '(boolean|string)',\n touch: 'boolean',\n wrap: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Carousel extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._interval = null\n this._activeElement = null\n this._isSliding = false\n this.touchTimeout = null\n this._swipeHelper = null\n\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element)\n this._addEventListeners()\n\n if (this._config.ride === CLASS_NAME_CAROUSEL) {\n this.cycle()\n }\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n next() {\n this._slide(ORDER_NEXT)\n }\n\n nextWhenVisible() {\n // FIXME TODO use `document.visibilityState`\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n this._slide(ORDER_PREV)\n }\n\n pause() {\n if (this._isSliding) {\n triggerTransitionEnd(this._element)\n }\n\n this._clearInterval()\n }\n\n cycle() {\n this._clearInterval()\n this._updateInterval()\n\n this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval)\n }\n\n _maybeEnableCycle() {\n if (!this._config.ride) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.cycle())\n return\n }\n\n this.cycle()\n }\n\n to(index) {\n const items = this._getItems()\n if (index > items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.to(index))\n return\n }\n\n const activeIndex = this._getItemIndex(this._getActive())\n if (activeIndex === index) {\n return\n }\n\n const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV\n\n this._slide(order, items[index])\n }\n\n dispose() {\n if (this._swipeHelper) {\n this._swipeHelper.dispose()\n }\n\n super.dispose()\n }\n\n // Private\n _configAfterMerge(config) {\n config.defaultInterval = config.interval\n return config\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler.on(this._element, EVENT_MOUSEENTER, () => this.pause())\n EventHandler.on(this._element, EVENT_MOUSELEAVE, () => this._maybeEnableCycle())\n }\n\n if (this._config.touch && Swipe.isSupported()) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n for (const img of SelectorEngine.find(SELECTOR_ITEM_IMG, this._element)) {\n EventHandler.on(img, EVENT_DRAG_START, event => event.preventDefault())\n }\n\n const endCallBack = () => {\n if (this._config.pause !== 'hover') {\n return\n }\n\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(() => this._maybeEnableCycle(), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n\n const swipeConfig = {\n leftCallback: () => this._slide(this._directionToOrder(DIRECTION_LEFT)),\n rightCallback: () => this._slide(this._directionToOrder(DIRECTION_RIGHT)),\n endCallback: endCallBack\n }\n\n this._swipeHelper = new Swipe(this._element, swipeConfig)\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n const direction = KEY_TO_DIRECTION[event.key]\n if (direction) {\n event.preventDefault()\n this._slide(this._directionToOrder(direction))\n }\n }\n\n _getItemIndex(element) {\n return this._getItems().indexOf(element)\n }\n\n _setActiveIndicatorElement(index) {\n if (!this._indicatorsElement) {\n return\n }\n\n const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement)\n\n activeIndicator.classList.remove(CLASS_NAME_ACTIVE)\n activeIndicator.removeAttribute('aria-current')\n\n const newActiveIndicator = SelectorEngine.findOne(`[data-bs-slide-to=\"${index}\"]`, this._indicatorsElement)\n\n if (newActiveIndicator) {\n newActiveIndicator.classList.add(CLASS_NAME_ACTIVE)\n newActiveIndicator.setAttribute('aria-current', 'true')\n }\n }\n\n _updateInterval() {\n const element = this._activeElement || this._getActive()\n\n if (!element) {\n return\n }\n\n const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10)\n\n this._config.interval = elementInterval || this._config.defaultInterval\n }\n\n _slide(order, element = null) {\n if (this._isSliding) {\n return\n }\n\n const activeElement = this._getActive()\n const isNext = order === ORDER_NEXT\n const nextElement = element || getNextActiveElement(this._getItems(), activeElement, isNext, this._config.wrap)\n\n if (nextElement === activeElement) {\n return\n }\n\n const nextElementIndex = this._getItemIndex(nextElement)\n\n const triggerEvent = eventName => {\n return EventHandler.trigger(this._element, eventName, {\n relatedTarget: nextElement,\n direction: this._orderToDirection(order),\n from: this._getItemIndex(activeElement),\n to: nextElementIndex\n })\n }\n\n const slideEvent = triggerEvent(EVENT_SLIDE)\n\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n // TODO: change tests that use empty divs to avoid this check\n return\n }\n\n const isCycling = Boolean(this._interval)\n this.pause()\n\n this._isSliding = true\n\n this._setActiveIndicatorElement(nextElementIndex)\n this._activeElement = nextElement\n\n const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END\n const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV\n\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const completeCallBack = () => {\n nextElement.classList.remove(directionalClassName, orderClassName)\n nextElement.classList.add(CLASS_NAME_ACTIVE)\n\n activeElement.classList.remove(CLASS_NAME_ACTIVE, orderClassName, directionalClassName)\n\n this._isSliding = false\n\n triggerEvent(EVENT_SLID)\n }\n\n this._queueCallback(completeCallBack, activeElement, this._isAnimated())\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_SLIDE)\n }\n\n _getActive() {\n return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n }\n\n _getItems() {\n return SelectorEngine.find(SELECTOR_ITEM, this._element)\n }\n\n _clearInterval() {\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n }\n\n _directionToOrder(direction) {\n if (isRTL()) {\n return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT\n }\n\n return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV\n }\n\n _orderToDirection(order) {\n if (isRTL()) {\n return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT\n }\n\n return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Carousel.getOrCreateInstance(this, config)\n\n if (typeof config === 'number') {\n data.to(config)\n return\n }\n\n if (typeof config === 'string') {\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, function (event) {\n const target = SelectorEngine.getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n event.preventDefault()\n\n const carousel = Carousel.getOrCreateInstance(target)\n const slideIndex = this.getAttribute('data-bs-slide-to')\n\n if (slideIndex) {\n carousel.to(slideIndex)\n carousel._maybeEnableCycle()\n return\n }\n\n if (Manipulator.getDataAttribute(this, 'slide') === 'next') {\n carousel.next()\n carousel._maybeEnableCycle()\n return\n }\n\n carousel.prev()\n carousel._maybeEnableCycle()\n})\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE)\n\n for (const carousel of carousels) {\n Carousel.getOrCreateInstance(carousel)\n }\n})\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Carousel)\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport {\n defineJQueryPlugin,\n getElement,\n reflow\n} from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'collapse'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_COLLAPSE = 'collapse'\nconst CLASS_NAME_COLLAPSING = 'collapsing'\nconst CLASS_NAME_COLLAPSED = 'collapsed'\nconst CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`\nconst CLASS_NAME_HORIZONTAL = 'collapse-horizontal'\n\nconst WIDTH = 'width'\nconst HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"collapse\"]'\n\nconst Default = {\n parent: null,\n toggle: true\n}\n\nconst DefaultType = {\n parent: '(null|element)',\n toggle: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Collapse extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._isTransitioning = false\n this._triggerArray = []\n\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (const elem of toggleList) {\n const selector = SelectorEngine.getSelectorFromElement(elem)\n const filterElement = SelectorEngine.find(selector)\n .filter(foundElement => foundElement === this._element)\n\n if (selector !== null && filterElement.length) {\n this._triggerArray.push(elem)\n }\n }\n\n this._initializeChildren()\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._triggerArray, this._isShown())\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n if (this._isShown()) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning || this._isShown()) {\n return\n }\n\n let activeChildren = []\n\n // find active children\n if (this._config.parent) {\n activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES)\n .filter(element => element !== this._element)\n .map(element => Collapse.getOrCreateInstance(element, { toggle: false }))\n }\n\n if (activeChildren.length && activeChildren[0]._isTransitioning) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n for (const activeInstance of activeChildren) {\n activeInstance.hide()\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(CLASS_NAME_COLLAPSE)\n this._element.classList.add(CLASS_NAME_COLLAPSING)\n\n this._element.style[dimension] = 0\n\n this._addAriaAndCollapsedClass(this._triggerArray, true)\n this._isTransitioning = true\n\n const complete = () => {\n this._isTransitioning = false\n\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW)\n\n this._element.style[dimension] = ''\n\n EventHandler.trigger(this._element, EVENT_SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n\n this._queueCallback(complete, this._element, true)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning || !this._isShown()) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(CLASS_NAME_COLLAPSING)\n this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW)\n\n for (const trigger of this._triggerArray) {\n const element = SelectorEngine.getElementFromSelector(trigger)\n\n if (element && !this._isShown(element)) {\n this._addAriaAndCollapsedClass([trigger], false)\n }\n }\n\n this._isTransitioning = true\n\n const complete = () => {\n this._isTransitioning = false\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_COLLAPSE)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.style[dimension] = ''\n\n this._queueCallback(complete, this._element, true)\n }\n\n _isShown(element = this._element) {\n return element.classList.contains(CLASS_NAME_SHOW)\n }\n\n // Private\n _configAfterMerge(config) {\n config.toggle = Boolean(config.toggle) // Coerce string values\n config.parent = getElement(config.parent)\n return config\n }\n\n _getDimension() {\n return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT\n }\n\n _initializeChildren() {\n if (!this._config.parent) {\n return\n }\n\n const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE)\n\n for (const element of children) {\n const selected = SelectorEngine.getElementFromSelector(element)\n\n if (selected) {\n this._addAriaAndCollapsedClass([element], this._isShown(selected))\n }\n }\n }\n\n _getFirstLevelChildren(selector) {\n const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent)\n // remove children if greater depth\n return SelectorEngine.find(selector, this._config.parent).filter(element => !children.includes(element))\n }\n\n _addAriaAndCollapsedClass(triggerArray, isOpen) {\n if (!triggerArray.length) {\n return\n }\n\n for (const element of triggerArray) {\n element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen)\n element.setAttribute('aria-expanded', isOpen)\n }\n }\n\n // Static\n static jQueryInterface(config) {\n const _config = {}\n if (typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n return this.each(function () {\n const data = Collapse.getOrCreateInstance(this, _config)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A' || (event.delegateTarget && event.delegateTarget.tagName === 'A')) {\n event.preventDefault()\n }\n\n for (const element of SelectorEngine.getMultipleElementsFromSelector(this)) {\n Collapse.getOrCreateInstance(element, { toggle: false }).toggle()\n }\n})\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Collapse)\n\nexport default Collapse\n","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref, win) {\n var x = _ref.x,\n y = _ref.y;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }, getWindow(popper)) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on <html>\n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n });\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref) {\n var name = _ref.name,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n effect = _ref.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow };","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","/**\n * --------------------------------------------------------------------------\n * Bootstrap dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport * as Popper from '@popperjs/core'\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport {\n defineJQueryPlugin,\n execute,\n getElement,\n getNextActiveElement,\n isDisabled,\n isElement,\n isRTL,\n isVisible,\n noop\n} from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'dropdown'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ESCAPE_KEY = 'Escape'\nconst TAB_KEY = 'Tab'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\nconst RIGHT_MOUSE_BUTTON = 2 // MouseEvent.button value for the secondary button, usually the right button\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPEND = 'dropend'\nconst CLASS_NAME_DROPSTART = 'dropstart'\nconst CLASS_NAME_DROPUP_CENTER = 'dropup-center'\nconst CLASS_NAME_DROPDOWN_CENTER = 'dropdown-center'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"dropdown\"]:not(.disabled):not(:disabled)'\nconst SELECTOR_DATA_TOGGLE_SHOWN = `${SELECTOR_DATA_TOGGLE}.${CLASS_NAME_SHOW}`\nconst SELECTOR_MENU = '.dropdown-menu'\nconst SELECTOR_NAVBAR = '.navbar'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n\nconst PLACEMENT_TOP = isRTL() ? 'top-end' : 'top-start'\nconst PLACEMENT_TOPEND = isRTL() ? 'top-start' : 'top-end'\nconst PLACEMENT_BOTTOM = isRTL() ? 'bottom-end' : 'bottom-start'\nconst PLACEMENT_BOTTOMEND = isRTL() ? 'bottom-start' : 'bottom-end'\nconst PLACEMENT_RIGHT = isRTL() ? 'left-start' : 'right-start'\nconst PLACEMENT_LEFT = isRTL() ? 'right-start' : 'left-start'\nconst PLACEMENT_TOPCENTER = 'top'\nconst PLACEMENT_BOTTOMCENTER = 'bottom'\n\nconst Default = {\n autoClose: true,\n boundary: 'clippingParents',\n display: 'dynamic',\n offset: [0, 2],\n popperConfig: null,\n reference: 'toggle'\n}\n\nconst DefaultType = {\n autoClose: '(boolean|string)',\n boundary: '(string|element)',\n display: 'string',\n offset: '(array|string|function)',\n popperConfig: '(null|object|function)',\n reference: '(string|element|object)'\n}\n\n/**\n * Class definition\n */\n\nclass Dropdown extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._popper = null\n this._parent = this._element.parentNode // dropdown wrapper\n // TODO: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/\n this._menu = SelectorEngine.next(this._element, SELECTOR_MENU)[0] ||\n SelectorEngine.prev(this._element, SELECTOR_MENU)[0] ||\n SelectorEngine.findOne(SELECTOR_MENU, this._parent)\n this._inNavbar = this._detectNavbar()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n return this._isShown() ? this.hide() : this.show()\n }\n\n show() {\n if (isDisabled(this._element) || this._isShown()) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._createPopper()\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement && !this._parent.closest(SELECTOR_NAVBAR_NAV)) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.on(element, 'mouseover', noop)\n }\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n this._menu.classList.add(CLASS_NAME_SHOW)\n this._element.classList.add(CLASS_NAME_SHOW)\n EventHandler.trigger(this._element, EVENT_SHOWN, relatedTarget)\n }\n\n hide() {\n if (isDisabled(this._element) || !this._isShown()) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n this._completeHide(relatedTarget)\n }\n\n dispose() {\n if (this._popper) {\n this._popper.destroy()\n }\n\n super.dispose()\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper) {\n this._popper.update()\n }\n }\n\n // Private\n _completeHide(relatedTarget) {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.off(element, 'mouseover', noop)\n }\n }\n\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._menu.classList.remove(CLASS_NAME_SHOW)\n this._element.classList.remove(CLASS_NAME_SHOW)\n this._element.setAttribute('aria-expanded', 'false')\n Manipulator.removeDataAttribute(this._menu, 'popper')\n EventHandler.trigger(this._element, EVENT_HIDDEN, relatedTarget)\n }\n\n _getConfig(config) {\n config = super._getConfig(config)\n\n if (typeof config.reference === 'object' && !isElement(config.reference) &&\n typeof config.reference.getBoundingClientRect !== 'function'\n ) {\n // Popper virtual elements require a getBoundingClientRect method\n throw new TypeError(`${NAME.toUpperCase()}: Option \"reference\" provided type \"object\" without a required \"getBoundingClientRect\" method.`)\n }\n\n return config\n }\n\n _createPopper() {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = this._parent\n } else if (isElement(this._config.reference)) {\n referenceElement = getElement(this._config.reference)\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference\n }\n\n const popperConfig = this._getPopperConfig()\n this._popper = Popper.createPopper(referenceElement, this._menu, popperConfig)\n }\n\n _isShown() {\n return this._menu.classList.contains(CLASS_NAME_SHOW)\n }\n\n _getPlacement() {\n const parentDropdown = this._parent\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {\n return PLACEMENT_RIGHT\n }\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {\n return PLACEMENT_LEFT\n }\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP_CENTER)) {\n return PLACEMENT_TOPCENTER\n }\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPDOWN_CENTER)) {\n return PLACEMENT_BOTTOMCENTER\n }\n\n // We need to trim the value because custom properties can also include spaces\n const isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end'\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP\n }\n\n return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM\n }\n\n _detectNavbar() {\n return this._element.closest(SELECTOR_NAVBAR) !== null\n }\n\n _getOffset() {\n const { offset } = this._config\n\n if (typeof offset === 'string') {\n return offset.split(',').map(value => Number.parseInt(value, 10))\n }\n\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element)\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const defaultBsPopperConfig = {\n placement: this._getPlacement(),\n modifiers: [{\n name: 'preventOverflow',\n options: {\n boundary: this._config.boundary\n }\n },\n {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n }]\n }\n\n // Disable Popper if we have a static display or Dropdown is in Navbar\n if (this._inNavbar || this._config.display === 'static') {\n Manipulator.setDataAttribute(this._menu, 'popper', 'static') // TODO: v6 remove\n defaultBsPopperConfig.modifiers = [{\n name: 'applyStyles',\n enabled: false\n }]\n }\n\n return {\n ...defaultBsPopperConfig,\n ...execute(this._config.popperConfig, [defaultBsPopperConfig])\n }\n }\n\n _selectMenuItem({ key, target }) {\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(element => isVisible(element))\n\n if (!items.length) {\n return\n }\n\n // if target isn't included in items (e.g. when expanding the dropdown)\n // allow cycling to get the last item in case key equals ARROW_UP_KEY\n getNextActiveElement(items, target, key === ARROW_DOWN_KEY, !items.includes(target)).focus()\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Dropdown.getOrCreateInstance(this, config)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n })\n }\n\n static clearMenus(event) {\n if (event.button === RIGHT_MOUSE_BUTTON || (event.type === 'keyup' && event.key !== TAB_KEY)) {\n return\n }\n\n const openToggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE_SHOWN)\n\n for (const toggle of openToggles) {\n const context = Dropdown.getInstance(toggle)\n if (!context || context._config.autoClose === false) {\n continue\n }\n\n const composedPath = event.composedPath()\n const isMenuTarget = composedPath.includes(context._menu)\n if (\n composedPath.includes(context._element) ||\n (context._config.autoClose === 'inside' && !isMenuTarget) ||\n (context._config.autoClose === 'outside' && isMenuTarget)\n ) {\n continue\n }\n\n // Tab navigation through the dropdown menu or events from contained inputs shouldn't close the menu\n if (context._menu.contains(event.target) && ((event.type === 'keyup' && event.key === TAB_KEY) || /input|select|option|textarea|form/i.test(event.target.tagName))) {\n continue\n }\n\n const relatedTarget = { relatedTarget: context._element }\n\n if (event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n context._completeHide(relatedTarget)\n }\n }\n\n static dataApiKeydownHandler(event) {\n // If not an UP | DOWN | ESCAPE key => not a dropdown command\n // If input/textarea && if key is other than ESCAPE => not a dropdown command\n\n const isInput = /input|textarea/i.test(event.target.tagName)\n const isEscapeEvent = event.key === ESCAPE_KEY\n const isUpOrDownEvent = [ARROW_UP_KEY, ARROW_DOWN_KEY].includes(event.key)\n\n if (!isUpOrDownEvent && !isEscapeEvent) {\n return\n }\n\n if (isInput && !isEscapeEvent) {\n return\n }\n\n event.preventDefault()\n\n // TODO: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/\n const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE) ?\n this :\n (SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0] ||\n SelectorEngine.next(this, SELECTOR_DATA_TOGGLE)[0] ||\n SelectorEngine.findOne(SELECTOR_DATA_TOGGLE, event.delegateTarget.parentNode))\n\n const instance = Dropdown.getOrCreateInstance(getToggleButton)\n\n if (isUpOrDownEvent) {\n event.stopPropagation()\n instance.show()\n instance._selectMenuItem(event)\n return\n }\n\n if (instance._isShown()) { // else is escape and we check if it is shown\n event.stopPropagation()\n instance.hide()\n getToggleButton.focus()\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Dropdown.dataApiKeydownHandler)\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler)\nEventHandler.on(document, EVENT_CLICK_DATA_API, Dropdown.clearMenus)\nEventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus)\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n Dropdown.getOrCreateInstance(this).toggle()\n})\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Dropdown)\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/backdrop.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport EventHandler from '../dom/event-handler.js'\nimport Config from './config.js'\nimport {\n execute, executeAfterTransition, getElement, reflow\n} from './index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'backdrop'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst EVENT_MOUSEDOWN = `mousedown.bs.${NAME}`\n\nconst Default = {\n className: 'modal-backdrop',\n clickCallback: null,\n isAnimated: false,\n isVisible: true, // if false, we use the backdrop helper without adding any element to the dom\n rootElement: 'body' // give the choice to place backdrop under different elements\n}\n\nconst DefaultType = {\n className: 'string',\n clickCallback: '(function|null)',\n isAnimated: 'boolean',\n isVisible: 'boolean',\n rootElement: '(element|string)'\n}\n\n/**\n * Class definition\n */\n\nclass Backdrop extends Config {\n constructor(config) {\n super()\n this._config = this._getConfig(config)\n this._isAppended = false\n this._element = null\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n show(callback) {\n if (!this._config.isVisible) {\n execute(callback)\n return\n }\n\n this._append()\n\n const element = this._getElement()\n if (this._config.isAnimated) {\n reflow(element)\n }\n\n element.classList.add(CLASS_NAME_SHOW)\n\n this._emulateAnimation(() => {\n execute(callback)\n })\n }\n\n hide(callback) {\n if (!this._config.isVisible) {\n execute(callback)\n return\n }\n\n this._getElement().classList.remove(CLASS_NAME_SHOW)\n\n this._emulateAnimation(() => {\n this.dispose()\n execute(callback)\n })\n }\n\n dispose() {\n if (!this._isAppended) {\n return\n }\n\n EventHandler.off(this._element, EVENT_MOUSEDOWN)\n\n this._element.remove()\n this._isAppended = false\n }\n\n // Private\n _getElement() {\n if (!this._element) {\n const backdrop = document.createElement('div')\n backdrop.className = this._config.className\n if (this._config.isAnimated) {\n backdrop.classList.add(CLASS_NAME_FADE)\n }\n\n this._element = backdrop\n }\n\n return this._element\n }\n\n _configAfterMerge(config) {\n // use getElement() with the default \"body\" to get a fresh Element on each instantiation\n config.rootElement = getElement(config.rootElement)\n return config\n }\n\n _append() {\n if (this._isAppended) {\n return\n }\n\n const element = this._getElement()\n this._config.rootElement.append(element)\n\n EventHandler.on(element, EVENT_MOUSEDOWN, () => {\n execute(this._config.clickCallback)\n })\n\n this._isAppended = true\n }\n\n _emulateAnimation(callback) {\n executeAfterTransition(callback, this._getElement(), this._config.isAnimated)\n }\n}\n\nexport default Backdrop\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/focustrap.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport EventHandler from '../dom/event-handler.js'\nimport SelectorEngine from '../dom/selector-engine.js'\nimport Config from './config.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'focustrap'\nconst DATA_KEY = 'bs.focustrap'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_KEYDOWN_TAB = `keydown.tab${EVENT_KEY}`\n\nconst TAB_KEY = 'Tab'\nconst TAB_NAV_FORWARD = 'forward'\nconst TAB_NAV_BACKWARD = 'backward'\n\nconst Default = {\n autofocus: true,\n trapElement: null // The element to trap focus inside of\n}\n\nconst DefaultType = {\n autofocus: 'boolean',\n trapElement: 'element'\n}\n\n/**\n * Class definition\n */\n\nclass FocusTrap extends Config {\n constructor(config) {\n super()\n this._config = this._getConfig(config)\n this._isActive = false\n this._lastTabNavDirection = null\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n activate() {\n if (this._isActive) {\n return\n }\n\n if (this._config.autofocus) {\n this._config.trapElement.focus()\n }\n\n EventHandler.off(document, EVENT_KEY) // guard against infinite focus loop\n EventHandler.on(document, EVENT_FOCUSIN, event => this._handleFocusin(event))\n EventHandler.on(document, EVENT_KEYDOWN_TAB, event => this._handleKeydown(event))\n\n this._isActive = true\n }\n\n deactivate() {\n if (!this._isActive) {\n return\n }\n\n this._isActive = false\n EventHandler.off(document, EVENT_KEY)\n }\n\n // Private\n _handleFocusin(event) {\n const { trapElement } = this._config\n\n if (event.target === document || event.target === trapElement || trapElement.contains(event.target)) {\n return\n }\n\n const elements = SelectorEngine.focusableChildren(trapElement)\n\n if (elements.length === 0) {\n trapElement.focus()\n } else if (this._lastTabNavDirection === TAB_NAV_BACKWARD) {\n elements[elements.length - 1].focus()\n } else {\n elements[0].focus()\n }\n }\n\n _handleKeydown(event) {\n if (event.key !== TAB_KEY) {\n return\n }\n\n this._lastTabNavDirection = event.shiftKey ? TAB_NAV_BACKWARD : TAB_NAV_FORWARD\n }\n}\n\nexport default FocusTrap\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/scrollBar.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Manipulator from '../dom/manipulator.js'\nimport SelectorEngine from '../dom/selector-engine.js'\nimport { isElement } from './index.js'\n\n/**\n * Constants\n */\n\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\nconst PROPERTY_PADDING = 'padding-right'\nconst PROPERTY_MARGIN = 'margin-right'\n\n/**\n * Class definition\n */\n\nclass ScrollBarHelper {\n constructor() {\n this._element = document.body\n }\n\n // Public\n getWidth() {\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes\n const documentWidth = document.documentElement.clientWidth\n return Math.abs(window.innerWidth - documentWidth)\n }\n\n hide() {\n const width = this.getWidth()\n this._disableOverFlow()\n // give padding to element to balance the hidden scrollbar width\n this._setElementAttributes(this._element, PROPERTY_PADDING, calculatedValue => calculatedValue + width)\n // trick: We adjust positive paddingRight and negative marginRight to sticky-top elements to keep showing fullwidth\n this._setElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING, calculatedValue => calculatedValue + width)\n this._setElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN, calculatedValue => calculatedValue - width)\n }\n\n reset() {\n this._resetElementAttributes(this._element, 'overflow')\n this._resetElementAttributes(this._element, PROPERTY_PADDING)\n this._resetElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING)\n this._resetElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN)\n }\n\n isOverflowing() {\n return this.getWidth() > 0\n }\n\n // Private\n _disableOverFlow() {\n this._saveInitialAttribute(this._element, 'overflow')\n this._element.style.overflow = 'hidden'\n }\n\n _setElementAttributes(selector, styleProperty, callback) {\n const scrollbarWidth = this.getWidth()\n const manipulationCallBack = element => {\n if (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) {\n return\n }\n\n this._saveInitialAttribute(element, styleProperty)\n const calculatedValue = window.getComputedStyle(element).getPropertyValue(styleProperty)\n element.style.setProperty(styleProperty, `${callback(Number.parseFloat(calculatedValue))}px`)\n }\n\n this._applyManipulationCallback(selector, manipulationCallBack)\n }\n\n _saveInitialAttribute(element, styleProperty) {\n const actualValue = element.style.getPropertyValue(styleProperty)\n if (actualValue) {\n Manipulator.setDataAttribute(element, styleProperty, actualValue)\n }\n }\n\n _resetElementAttributes(selector, styleProperty) {\n const manipulationCallBack = element => {\n const value = Manipulator.getDataAttribute(element, styleProperty)\n // We only want to remove the property if the value is `null`; the value can also be zero\n if (value === null) {\n element.style.removeProperty(styleProperty)\n return\n }\n\n Manipulator.removeDataAttribute(element, styleProperty)\n element.style.setProperty(styleProperty, value)\n }\n\n this._applyManipulationCallback(selector, manipulationCallBack)\n }\n\n _applyManipulationCallback(selector, callBack) {\n if (isElement(selector)) {\n callBack(selector)\n return\n }\n\n for (const sel of SelectorEngine.find(selector, this._element)) {\n callBack(sel)\n }\n }\n}\n\nexport default ScrollBarHelper\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport Backdrop from './util/backdrop.js'\nimport { enableDismissTrigger } from './util/component-functions.js'\nimport FocusTrap from './util/focustrap.js'\nimport {\n defineJQueryPlugin, isRTL, isVisible, reflow\n} from './util/index.js'\nimport ScrollBarHelper from './util/scrollbar.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'modal'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEY = 'Escape'\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst OPEN_SELECTOR = '.modal.show'\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"modal\"]'\n\nconst Default = {\n backdrop: true,\n focus: true,\n keyboard: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n focus: 'boolean',\n keyboard: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Modal extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element)\n this._backdrop = this._initializeBackDrop()\n this._focustrap = this._initializeFocusTrap()\n this._isShown = false\n this._isTransitioning = false\n this._scrollBar = new ScrollBarHelper()\n\n this._addEventListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\n relatedTarget\n })\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n this._isTransitioning = true\n\n this._scrollBar.hide()\n\n document.body.classList.add(CLASS_NAME_OPEN)\n\n this._adjustDialog()\n\n this._backdrop.show(() => this._showElement(relatedTarget))\n }\n\n hide() {\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._isShown = false\n this._isTransitioning = true\n this._focustrap.deactivate()\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n this._queueCallback(() => this._hideModal(), this._element, this._isAnimated())\n }\n\n dispose() {\n EventHandler.off(window, EVENT_KEY)\n EventHandler.off(this._dialog, EVENT_KEY)\n\n this._backdrop.dispose()\n this._focustrap.deactivate()\n\n super.dispose()\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n _initializeBackDrop() {\n return new Backdrop({\n isVisible: Boolean(this._config.backdrop), // 'static' option will be translated to true, and booleans will keep their value,\n isAnimated: this._isAnimated()\n })\n }\n\n _initializeFocusTrap() {\n return new FocusTrap({\n trapElement: this._element\n })\n }\n\n _showElement(relatedTarget) {\n // try to append dynamic modal\n if (!document.body.contains(this._element)) {\n document.body.append(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n this._element.setAttribute('role', 'dialog')\n this._element.scrollTop = 0\n\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog)\n if (modalBody) {\n modalBody.scrollTop = 0\n }\n\n reflow(this._element)\n\n this._element.classList.add(CLASS_NAME_SHOW)\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._focustrap.activate()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget\n })\n }\n\n this._queueCallback(transitionComplete, this._dialog, this._isAnimated())\n }\n\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (event.key !== ESCAPE_KEY) {\n return\n }\n\n if (this._config.keyboard) {\n this.hide()\n return\n }\n\n this._triggerBackdropTransition()\n })\n\n EventHandler.on(window, EVENT_RESIZE, () => {\n if (this._isShown && !this._isTransitioning) {\n this._adjustDialog()\n }\n })\n\n EventHandler.on(this._element, EVENT_MOUSEDOWN_DISMISS, event => {\n // a bad trick to segregate clicks that may start inside dialog but end outside, and avoid listen to scrollbar clicks\n EventHandler.one(this._element, EVENT_CLICK_DISMISS, event2 => {\n if (this._element !== event.target || this._element !== event2.target) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._triggerBackdropTransition()\n return\n }\n\n if (this._config.backdrop) {\n this.hide()\n }\n })\n })\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n this._isTransitioning = false\n\n this._backdrop.hide(() => {\n document.body.classList.remove(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._scrollBar.reset()\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n })\n }\n\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_FADE)\n }\n\n _triggerBackdropTransition() {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n const initialOverflowY = this._element.style.overflowY\n // return if the following background transition hasn't yet completed\n if (initialOverflowY === 'hidden' || this._element.classList.contains(CLASS_NAME_STATIC)) {\n return\n }\n\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden'\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n this._queueCallback(() => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n this._queueCallback(() => {\n this._element.style.overflowY = initialOverflowY\n }, this._dialog)\n }, this._dialog)\n\n this._element.focus()\n }\n\n /**\n * The following methods are used to handle overflowing modals\n */\n\n _adjustDialog() {\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n const scrollbarWidth = this._scrollBar.getWidth()\n const isBodyOverflowing = scrollbarWidth > 0\n\n if (isBodyOverflowing && !isModalOverflowing) {\n const property = isRTL() ? 'paddingLeft' : 'paddingRight'\n this._element.style[property] = `${scrollbarWidth}px`\n }\n\n if (!isBodyOverflowing && isModalOverflowing) {\n const property = isRTL() ? 'paddingRight' : 'paddingLeft'\n this._element.style[property] = `${scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n // Static\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n const data = Modal.getOrCreateInstance(this, config)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = SelectorEngine.getElementFromSelector(this)\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n EventHandler.one(target, EVENT_SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n // avoid conflict when clicking modal toggler while another one is open\n const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR)\n if (alreadyOpen) {\n Modal.getInstance(alreadyOpen).hide()\n }\n\n const data = Modal.getOrCreateInstance(target)\n\n data.toggle(this)\n})\n\nenableDismissTrigger(Modal)\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Modal)\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap offcanvas.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport Backdrop from './util/backdrop.js'\nimport { enableDismissTrigger } from './util/component-functions.js'\nimport FocusTrap from './util/focustrap.js'\nimport {\n defineJQueryPlugin,\n isDisabled,\n isVisible\n} from './util/index.js'\nimport ScrollBarHelper from './util/scrollbar.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'offcanvas'\nconst DATA_KEY = 'bs.offcanvas'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst ESCAPE_KEY = 'Escape'\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SHOWING = 'showing'\nconst CLASS_NAME_HIDING = 'hiding'\nconst CLASS_NAME_BACKDROP = 'offcanvas-backdrop'\nconst OPEN_SELECTOR = '.offcanvas.show'\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"offcanvas\"]'\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n scroll: false\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n scroll: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Offcanvas extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._isShown = false\n this._backdrop = this._initializeBackDrop()\n this._focustrap = this._initializeFocusTrap()\n this._addEventListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, { relatedTarget })\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n this._backdrop.show()\n\n if (!this._config.scroll) {\n new ScrollBarHelper().hide()\n }\n\n this._element.setAttribute('aria-modal', true)\n this._element.setAttribute('role', 'dialog')\n this._element.classList.add(CLASS_NAME_SHOWING)\n\n const completeCallBack = () => {\n if (!this._config.scroll || this._config.backdrop) {\n this._focustrap.activate()\n }\n\n this._element.classList.add(CLASS_NAME_SHOW)\n this._element.classList.remove(CLASS_NAME_SHOWING)\n EventHandler.trigger(this._element, EVENT_SHOWN, { relatedTarget })\n }\n\n this._queueCallback(completeCallBack, this._element, true)\n }\n\n hide() {\n if (!this._isShown) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._focustrap.deactivate()\n this._element.blur()\n this._isShown = false\n this._element.classList.add(CLASS_NAME_HIDING)\n this._backdrop.hide()\n\n const completeCallback = () => {\n this._element.classList.remove(CLASS_NAME_SHOW, CLASS_NAME_HIDING)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n\n if (!this._config.scroll) {\n new ScrollBarHelper().reset()\n }\n\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._queueCallback(completeCallback, this._element, true)\n }\n\n dispose() {\n this._backdrop.dispose()\n this._focustrap.deactivate()\n super.dispose()\n }\n\n // Private\n _initializeBackDrop() {\n const clickCallback = () => {\n if (this._config.backdrop === 'static') {\n EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED)\n return\n }\n\n this.hide()\n }\n\n // 'static' option will be translated to true, and booleans will keep their value\n const isVisible = Boolean(this._config.backdrop)\n\n return new Backdrop({\n className: CLASS_NAME_BACKDROP,\n isVisible,\n isAnimated: true,\n rootElement: this._element.parentNode,\n clickCallback: isVisible ? clickCallback : null\n })\n }\n\n _initializeFocusTrap() {\n return new FocusTrap({\n trapElement: this._element\n })\n }\n\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (event.key !== ESCAPE_KEY) {\n return\n }\n\n if (this._config.keyboard) {\n this.hide()\n return\n }\n\n EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED)\n })\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Offcanvas.getOrCreateInstance(this, config)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = SelectorEngine.getElementFromSelector(this)\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n // focus on trigger when it is closed\n if (isVisible(this)) {\n this.focus()\n }\n })\n\n // avoid conflict when clicking a toggler of an offcanvas, while another is open\n const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR)\n if (alreadyOpen && alreadyOpen !== target) {\n Offcanvas.getInstance(alreadyOpen).hide()\n }\n\n const data = Offcanvas.getOrCreateInstance(target)\n data.toggle(this)\n})\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n for (const selector of SelectorEngine.find(OPEN_SELECTOR)) {\n Offcanvas.getOrCreateInstance(selector).show()\n }\n})\n\nEventHandler.on(window, EVENT_RESIZE, () => {\n for (const element of SelectorEngine.find('[aria-modal][class*=show][class*=offcanvas-]')) {\n if (getComputedStyle(element).position !== 'fixed') {\n Offcanvas.getOrCreateInstance(element).hide()\n }\n }\n})\n\nenableDismissTrigger(Offcanvas)\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Offcanvas)\n\nexport default Offcanvas\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n// js-docs-start allow-list\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\nexport const DefaultAllowlist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n dd: [],\n div: [],\n dl: [],\n dt: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n// js-docs-end allow-list\n\nconst uriAttributes = new Set([\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n])\n\n/**\n * A pattern that recognizes URLs that are safe wrt. XSS in URL navigation\n * contexts.\n *\n * Shout-out to Angular https://github.com/angular/angular/blob/15.2.8/packages/core/src/sanitization/url_sanitizer.ts#L38\n */\n// eslint-disable-next-line unicorn/better-regex\nconst SAFE_URL_PATTERN = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i\n\nconst allowedAttribute = (attribute, allowedAttributeList) => {\n const attributeName = attribute.nodeName.toLowerCase()\n\n if (allowedAttributeList.includes(attributeName)) {\n if (uriAttributes.has(attributeName)) {\n return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue))\n }\n\n return true\n }\n\n // Check if a regular expression validates the attribute.\n return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp)\n .some(regex => regex.test(attributeName))\n}\n\nexport function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFunction && typeof sanitizeFunction === 'function') {\n return sanitizeFunction(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const elements = [].concat(...createdDocument.body.querySelectorAll('*'))\n\n for (const element of elements) {\n const elementName = element.nodeName.toLowerCase()\n\n if (!Object.keys(allowList).includes(elementName)) {\n element.remove()\n continue\n }\n\n const attributeList = [].concat(...element.attributes)\n const allowedAttributes = [].concat(allowList['*'] || [], allowList[elementName] || [])\n\n for (const attribute of attributeList) {\n if (!allowedAttribute(attribute, allowedAttributes)) {\n element.removeAttribute(attribute.nodeName)\n }\n }\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/template-factory.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport SelectorEngine from '../dom/selector-engine.js'\nimport Config from './config.js'\nimport { DefaultAllowlist, sanitizeHtml } from './sanitizer.js'\nimport { execute, getElement, isElement } from './index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'TemplateFactory'\n\nconst Default = {\n allowList: DefaultAllowlist,\n content: {}, // { selector : text , selector2 : text2 , }\n extraClass: '',\n html: false,\n sanitize: true,\n sanitizeFn: null,\n template: '<div></div>'\n}\n\nconst DefaultType = {\n allowList: 'object',\n content: 'object',\n extraClass: '(string|function)',\n html: 'boolean',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n template: 'string'\n}\n\nconst DefaultContentType = {\n entry: '(string|element|function|null)',\n selector: '(string|element)'\n}\n\n/**\n * Class definition\n */\n\nclass TemplateFactory extends Config {\n constructor(config) {\n super()\n this._config = this._getConfig(config)\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n getContent() {\n return Object.values(this._config.content)\n .map(config => this._resolvePossibleFunction(config))\n .filter(Boolean)\n }\n\n hasContent() {\n return this.getContent().length > 0\n }\n\n changeContent(content) {\n this._checkContent(content)\n this._config.content = { ...this._config.content, ...content }\n return this\n }\n\n toHtml() {\n const templateWrapper = document.createElement('div')\n templateWrapper.innerHTML = this._maybeSanitize(this._config.template)\n\n for (const [selector, text] of Object.entries(this._config.content)) {\n this._setContent(templateWrapper, text, selector)\n }\n\n const template = templateWrapper.children[0]\n const extraClass = this._resolvePossibleFunction(this._config.extraClass)\n\n if (extraClass) {\n template.classList.add(...extraClass.split(' '))\n }\n\n return template\n }\n\n // Private\n _typeCheckConfig(config) {\n super._typeCheckConfig(config)\n this._checkContent(config.content)\n }\n\n _checkContent(arg) {\n for (const [selector, content] of Object.entries(arg)) {\n super._typeCheckConfig({ selector, entry: content }, DefaultContentType)\n }\n }\n\n _setContent(template, content, selector) {\n const templateElement = SelectorEngine.findOne(selector, template)\n\n if (!templateElement) {\n return\n }\n\n content = this._resolvePossibleFunction(content)\n\n if (!content) {\n templateElement.remove()\n return\n }\n\n if (isElement(content)) {\n this._putElementInTemplate(getElement(content), templateElement)\n return\n }\n\n if (this._config.html) {\n templateElement.innerHTML = this._maybeSanitize(content)\n return\n }\n\n templateElement.textContent = content\n }\n\n _maybeSanitize(arg) {\n return this._config.sanitize ? sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg\n }\n\n _resolvePossibleFunction(arg) {\n return execute(arg, [this])\n }\n\n _putElementInTemplate(element, templateElement) {\n if (this._config.html) {\n templateElement.innerHTML = ''\n templateElement.append(element)\n return\n }\n\n templateElement.textContent = element.textContent\n }\n}\n\nexport default TemplateFactory\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport * as Popper from '@popperjs/core'\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport {\n defineJQueryPlugin, execute, findShadowRoot, getElement, getUID, isRTL, noop\n} from './util/index.js'\nimport { DefaultAllowlist } from './util/sanitizer.js'\nimport TemplateFactory from './util/template-factory.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'tooltip'\nconst DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn'])\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_MODAL = 'modal'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\nconst SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`\n\nconst EVENT_MODAL_HIDE = 'hide.bs.modal'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\nconst EVENT_HIDE = 'hide'\nconst EVENT_HIDDEN = 'hidden'\nconst EVENT_SHOW = 'show'\nconst EVENT_SHOWN = 'shown'\nconst EVENT_INSERTED = 'inserted'\nconst EVENT_CLICK = 'click'\nconst EVENT_FOCUSIN = 'focusin'\nconst EVENT_FOCUSOUT = 'focusout'\nconst EVENT_MOUSEENTER = 'mouseenter'\nconst EVENT_MOUSELEAVE = 'mouseleave'\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: isRTL() ? 'left' : 'right',\n BOTTOM: 'bottom',\n LEFT: isRTL() ? 'right' : 'left'\n}\n\nconst Default = {\n allowList: DefaultAllowlist,\n animation: true,\n boundary: 'clippingParents',\n container: false,\n customClass: '',\n delay: 0,\n fallbackPlacements: ['top', 'right', 'bottom', 'left'],\n html: false,\n offset: [0, 6],\n placement: 'top',\n popperConfig: null,\n sanitize: true,\n sanitizeFn: null,\n selector: false,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div>' +\n '</div>',\n title: '',\n trigger: 'hover focus'\n}\n\nconst DefaultType = {\n allowList: 'object',\n animation: 'boolean',\n boundary: '(string|element)',\n container: '(string|element|boolean)',\n customClass: '(string|function)',\n delay: '(number|object)',\n fallbackPlacements: 'array',\n html: 'boolean',\n offset: '(array|string|function)',\n placement: '(string|function)',\n popperConfig: '(null|object|function)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n selector: '(string|boolean)',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string'\n}\n\n/**\n * Class definition\n */\n\nclass Tooltip extends BaseComponent {\n constructor(element, config) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper (https://popper.js.org)')\n }\n\n super(element, config)\n\n // Private\n this._isEnabled = true\n this._timeout = 0\n this._isHovered = null\n this._activeTrigger = {}\n this._popper = null\n this._templateFactory = null\n this._newContent = null\n\n // Protected\n this.tip = null\n\n this._setListeners()\n\n if (!this._config.selector) {\n this._fixTitle()\n }\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle() {\n if (!this._isEnabled) {\n return\n }\n\n this._activeTrigger.click = !this._activeTrigger.click\n if (this._isShown()) {\n this._leave()\n return\n }\n\n this._enter()\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler)\n\n if (this._element.getAttribute('data-bs-original-title')) {\n this._element.setAttribute('title', this._element.getAttribute('data-bs-original-title'))\n }\n\n this._disposePopper()\n super.dispose()\n }\n\n show() {\n if (this._element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (!(this._isWithContent() && this._isEnabled)) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOW))\n const shadowRoot = findShadowRoot(this._element)\n const isInTheDom = (shadowRoot || this._element.ownerDocument.documentElement).contains(this._element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n // TODO: v6 remove this or make it optional\n this._disposePopper()\n\n const tip = this._getTipElement()\n\n this._element.setAttribute('aria-describedby', tip.getAttribute('id'))\n\n const { container } = this._config\n\n if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\n container.append(tip)\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED))\n }\n\n this._popper = this._createPopper(tip)\n\n tip.classList.add(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.on(element, 'mouseover', noop)\n }\n }\n\n const complete = () => {\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN))\n\n if (this._isHovered === false) {\n this._leave()\n }\n\n this._isHovered = false\n }\n\n this._queueCallback(complete, this.tip, this._isAnimated())\n }\n\n hide() {\n if (!this._isShown()) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDE))\n if (hideEvent.defaultPrevented) {\n return\n }\n\n const tip = this._getTipElement()\n tip.classList.remove(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.off(element, 'mouseover', noop)\n }\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false\n this._activeTrigger[TRIGGER_FOCUS] = false\n this._activeTrigger[TRIGGER_HOVER] = false\n this._isHovered = null // it is a trick to support manual triggering\n\n const complete = () => {\n if (this._isWithActiveTrigger()) {\n return\n }\n\n if (!this._isHovered) {\n this._disposePopper()\n }\n\n this._element.removeAttribute('aria-describedby')\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN))\n }\n\n this._queueCallback(complete, this.tip, this._isAnimated())\n }\n\n update() {\n if (this._popper) {\n this._popper.update()\n }\n }\n\n // Protected\n _isWithContent() {\n return Boolean(this._getTitle())\n }\n\n _getTipElement() {\n if (!this.tip) {\n this.tip = this._createTipElement(this._newContent || this._getContentForTemplate())\n }\n\n return this.tip\n }\n\n _createTipElement(content) {\n const tip = this._getTemplateFactory(content).toHtml()\n\n // TODO: remove this check in v6\n if (!tip) {\n return null\n }\n\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n // TODO: v6 the following can be achieved with CSS only\n tip.classList.add(`bs-${this.constructor.NAME}-auto`)\n\n const tipId = getUID(this.constructor.NAME).toString()\n\n tip.setAttribute('id', tipId)\n\n if (this._isAnimated()) {\n tip.classList.add(CLASS_NAME_FADE)\n }\n\n return tip\n }\n\n setContent(content) {\n this._newContent = content\n if (this._isShown()) {\n this._disposePopper()\n this.show()\n }\n }\n\n _getTemplateFactory(content) {\n if (this._templateFactory) {\n this._templateFactory.changeContent(content)\n } else {\n this._templateFactory = new TemplateFactory({\n ...this._config,\n // the `content` var has to be after `this._config`\n // to override config.content in case of popover\n content,\n extraClass: this._resolvePossibleFunction(this._config.customClass)\n })\n }\n\n return this._templateFactory\n }\n\n _getContentForTemplate() {\n return {\n [SELECTOR_TOOLTIP_INNER]: this._getTitle()\n }\n }\n\n _getTitle() {\n return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute('data-bs-original-title')\n }\n\n // Private\n _initializeOnDelegatedTarget(event) {\n return this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig())\n }\n\n _isAnimated() {\n return this._config.animation || (this.tip && this.tip.classList.contains(CLASS_NAME_FADE))\n }\n\n _isShown() {\n return this.tip && this.tip.classList.contains(CLASS_NAME_SHOW)\n }\n\n _createPopper(tip) {\n const placement = execute(this._config.placement, [this, tip, this._element])\n const attachment = AttachmentMap[placement.toUpperCase()]\n return Popper.createPopper(this._element, tip, this._getPopperConfig(attachment))\n }\n\n _getOffset() {\n const { offset } = this._config\n\n if (typeof offset === 'string') {\n return offset.split(',').map(value => Number.parseInt(value, 10))\n }\n\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element)\n }\n\n return offset\n }\n\n _resolvePossibleFunction(arg) {\n return execute(arg, [this._element])\n }\n\n _getPopperConfig(attachment) {\n const defaultBsPopperConfig = {\n placement: attachment,\n modifiers: [\n {\n name: 'flip',\n options: {\n fallbackPlacements: this._config.fallbackPlacements\n }\n },\n {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n },\n {\n name: 'preventOverflow',\n options: {\n boundary: this._config.boundary\n }\n },\n {\n name: 'arrow',\n options: {\n element: `.${this.constructor.NAME}-arrow`\n }\n },\n {\n name: 'preSetPlacement',\n enabled: true,\n phase: 'beforeMain',\n fn: data => {\n // Pre-set Popper's placement attribute in order to read the arrow sizes properly.\n // Otherwise, Popper mixes up the width and height dimensions since the initial arrow style is for top placement\n this._getTipElement().setAttribute('data-popper-placement', data.state.placement)\n }\n }\n ]\n }\n\n return {\n ...defaultBsPopperConfig,\n ...execute(this._config.popperConfig, [defaultBsPopperConfig])\n }\n }\n\n _setListeners() {\n const triggers = this._config.trigger.split(' ')\n\n for (const trigger of triggers) {\n if (trigger === 'click') {\n EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK), this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event)\n context.toggle()\n })\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER ?\n this.constructor.eventName(EVENT_MOUSEENTER) :\n this.constructor.eventName(EVENT_FOCUSIN)\n const eventOut = trigger === TRIGGER_HOVER ?\n this.constructor.eventName(EVENT_MOUSELEAVE) :\n this.constructor.eventName(EVENT_FOCUSOUT)\n\n EventHandler.on(this._element, eventIn, this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event)\n context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true\n context._enter()\n })\n EventHandler.on(this._element, eventOut, this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event)\n context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] =\n context._element.contains(event.relatedTarget)\n\n context._leave()\n })\n }\n }\n\n this._hideModalHandler = () => {\n if (this._element) {\n this.hide()\n }\n }\n\n EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler)\n }\n\n _fixTitle() {\n const title = this._element.getAttribute('title')\n\n if (!title) {\n return\n }\n\n if (!this._element.getAttribute('aria-label') && !this._element.textContent.trim()) {\n this._element.setAttribute('aria-label', title)\n }\n\n this._element.setAttribute('data-bs-original-title', title) // DO NOT USE IT. Is only for backwards compatibility\n this._element.removeAttribute('title')\n }\n\n _enter() {\n if (this._isShown() || this._isHovered) {\n this._isHovered = true\n return\n }\n\n this._isHovered = true\n\n this._setTimeout(() => {\n if (this._isHovered) {\n this.show()\n }\n }, this._config.delay.show)\n }\n\n _leave() {\n if (this._isWithActiveTrigger()) {\n return\n }\n\n this._isHovered = false\n\n this._setTimeout(() => {\n if (!this._isHovered) {\n this.hide()\n }\n }, this._config.delay.hide)\n }\n\n _setTimeout(handler, timeout) {\n clearTimeout(this._timeout)\n this._timeout = setTimeout(handler, timeout)\n }\n\n _isWithActiveTrigger() {\n return Object.values(this._activeTrigger).includes(true)\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this._element)\n\n for (const dataAttribute of Object.keys(dataAttributes)) {\n if (DISALLOWED_ATTRIBUTES.has(dataAttribute)) {\n delete dataAttributes[dataAttribute]\n }\n }\n\n config = {\n ...dataAttributes,\n ...(typeof config === 'object' && config ? config : {})\n }\n config = this._mergeConfigObj(config)\n config = this._configAfterMerge(config)\n this._typeCheckConfig(config)\n return config\n }\n\n _configAfterMerge(config) {\n config.container = config.container === false ? document.body : getElement(config.container)\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n for (const [key, value] of Object.entries(this._config)) {\n if (this.constructor.Default[key] !== value) {\n config[key] = value\n }\n }\n\n config.selector = false\n config.trigger = 'manual'\n\n // In the future can be replaced with:\n // const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]])\n // `Object.fromEntries(keysWithDifferentValues)`\n return config\n }\n\n _disposePopper() {\n if (this._popper) {\n this._popper.destroy()\n this._popper = null\n }\n\n if (this.tip) {\n this.tip.remove()\n this.tip = null\n }\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Tooltip.getOrCreateInstance(this, config)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n })\n }\n}\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Tooltip)\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Tooltip from './tooltip.js'\nimport { defineJQueryPlugin } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'popover'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\n\nconst Default = {\n ...Tooltip.Default,\n content: '',\n offset: [0, 8],\n placement: 'right',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"popover-arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div>' +\n '</div>',\n trigger: 'click'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(null|string|element|function)'\n}\n\n/**\n * Class definition\n */\n\nclass Popover extends Tooltip {\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Overrides\n _isWithContent() {\n return this._getTitle() || this._getContent()\n }\n\n // Private\n _getContentForTemplate() {\n return {\n [SELECTOR_TITLE]: this._getTitle(),\n [SELECTOR_CONTENT]: this._getContent()\n }\n }\n\n _getContent() {\n return this._resolvePossibleFunction(this._config.content)\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Popover.getOrCreateInstance(this, config)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n })\n }\n}\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Popover)\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport {\n defineJQueryPlugin, getElement, isDisabled, isVisible\n} from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'scrollspy'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_SPY = '[data-bs-spy=\"scroll\"]'\nconst SELECTOR_TARGET_LINKS = '[href]'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_NAV_LINKS = '.nav-link'\nconst SELECTOR_NAV_ITEMS = '.nav-item'\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\nconst SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_NAV_ITEMS} > ${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst Default = {\n offset: null, // TODO: v6 @deprecated, keep it for backwards compatibility reasons\n rootMargin: '0px 0px -25%',\n smoothScroll: false,\n target: null,\n threshold: [0.1, 0.5, 1]\n}\n\nconst DefaultType = {\n offset: '(number|null)', // TODO v6 @deprecated, keep it for backwards compatibility reasons\n rootMargin: 'string',\n smoothScroll: 'boolean',\n target: 'element',\n threshold: 'array'\n}\n\n/**\n * Class definition\n */\n\nclass ScrollSpy extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n // this._element is the observablesContainer and config.target the menu links wrapper\n this._targetLinks = new Map()\n this._observableSections = new Map()\n this._rootElement = getComputedStyle(this._element).overflowY === 'visible' ? null : this._element\n this._activeTarget = null\n this._observer = null\n this._previousScrollData = {\n visibleEntryTop: 0,\n parentScrollTop: 0\n }\n this.refresh() // initialize\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n refresh() {\n this._initializeTargetsAndObservables()\n this._maybeEnableSmoothScroll()\n\n if (this._observer) {\n this._observer.disconnect()\n } else {\n this._observer = this._getNewObserver()\n }\n\n for (const section of this._observableSections.values()) {\n this._observer.observe(section)\n }\n }\n\n dispose() {\n this._observer.disconnect()\n super.dispose()\n }\n\n // Private\n _configAfterMerge(config) {\n // TODO: on v6 target should be given explicitly & remove the {target: 'ss-target'} case\n config.target = getElement(config.target) || document.body\n\n // TODO: v6 Only for backwards compatibility reasons. Use rootMargin only\n config.rootMargin = config.offset ? `${config.offset}px 0px -30%` : config.rootMargin\n\n if (typeof config.threshold === 'string') {\n config.threshold = config.threshold.split(',').map(value => Number.parseFloat(value))\n }\n\n return config\n }\n\n _maybeEnableSmoothScroll() {\n if (!this._config.smoothScroll) {\n return\n }\n\n // unregister any previous listeners\n EventHandler.off(this._config.target, EVENT_CLICK)\n\n EventHandler.on(this._config.target, EVENT_CLICK, SELECTOR_TARGET_LINKS, event => {\n const observableSection = this._observableSections.get(event.target.hash)\n if (observableSection) {\n event.preventDefault()\n const root = this._rootElement || window\n const height = observableSection.offsetTop - this._element.offsetTop\n if (root.scrollTo) {\n root.scrollTo({ top: height, behavior: 'smooth' })\n return\n }\n\n // Chrome 60 doesn't support `scrollTo`\n root.scrollTop = height\n }\n })\n }\n\n _getNewObserver() {\n const options = {\n root: this._rootElement,\n threshold: this._config.threshold,\n rootMargin: this._config.rootMargin\n }\n\n return new IntersectionObserver(entries => this._observerCallback(entries), options)\n }\n\n // The logic of selection\n _observerCallback(entries) {\n const targetElement = entry => this._targetLinks.get(`#${entry.target.id}`)\n const activate = entry => {\n this._previousScrollData.visibleEntryTop = entry.target.offsetTop\n this._process(targetElement(entry))\n }\n\n const parentScrollTop = (this._rootElement || document.documentElement).scrollTop\n const userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop\n this._previousScrollData.parentScrollTop = parentScrollTop\n\n for (const entry of entries) {\n if (!entry.isIntersecting) {\n this._activeTarget = null\n this._clearActiveClass(targetElement(entry))\n\n continue\n }\n\n const entryIsLowerThanPrevious = entry.target.offsetTop >= this._previousScrollData.visibleEntryTop\n // if we are scrolling down, pick the bigger offsetTop\n if (userScrollsDown && entryIsLowerThanPrevious) {\n activate(entry)\n // if parent isn't scrolled, let's keep the first visible item, breaking the iteration\n if (!parentScrollTop) {\n return\n }\n\n continue\n }\n\n // if we are scrolling up, pick the smallest offsetTop\n if (!userScrollsDown && !entryIsLowerThanPrevious) {\n activate(entry)\n }\n }\n }\n\n _initializeTargetsAndObservables() {\n this._targetLinks = new Map()\n this._observableSections = new Map()\n\n const targetLinks = SelectorEngine.find(SELECTOR_TARGET_LINKS, this._config.target)\n\n for (const anchor of targetLinks) {\n // ensure that the anchor has an id and is not disabled\n if (!anchor.hash || isDisabled(anchor)) {\n continue\n }\n\n const observableSection = SelectorEngine.findOne(decodeURI(anchor.hash), this._element)\n\n // ensure that the observableSection exists & is visible\n if (isVisible(observableSection)) {\n this._targetLinks.set(decodeURI(anchor.hash), anchor)\n this._observableSections.set(anchor.hash, observableSection)\n }\n }\n }\n\n _process(target) {\n if (this._activeTarget === target) {\n return\n }\n\n this._clearActiveClass(this._config.target)\n this._activeTarget = target\n target.classList.add(CLASS_NAME_ACTIVE)\n this._activateParents(target)\n\n EventHandler.trigger(this._element, EVENT_ACTIVATE, { relatedTarget: target })\n }\n\n _activateParents(target) {\n // Activate dropdown parents\n if (target.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {\n SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE, target.closest(SELECTOR_DROPDOWN))\n .classList.add(CLASS_NAME_ACTIVE)\n return\n }\n\n for (const listGroup of SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)) {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n for (const item of SelectorEngine.prev(listGroup, SELECTOR_LINK_ITEMS)) {\n item.classList.add(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n _clearActiveClass(parent) {\n parent.classList.remove(CLASS_NAME_ACTIVE)\n\n const activeNodes = SelectorEngine.find(`${SELECTOR_TARGET_LINKS}.${CLASS_NAME_ACTIVE}`, parent)\n for (const node of activeNodes) {\n node.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = ScrollSpy.getOrCreateInstance(this, config)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n for (const spy of SelectorEngine.find(SELECTOR_DATA_SPY)) {\n ScrollSpy.getOrCreateInstance(spy)\n }\n})\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(ScrollSpy)\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport { defineJQueryPlugin, getNextActiveElement, isDisabled } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'tab'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}`\n\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\nconst HOME_KEY = 'Home'\nconst END_KEY = 'End'\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_DROPDOWN = 'dropdown'\n\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\nconst SELECTOR_DROPDOWN_MENU = '.dropdown-menu'\nconst NOT_SELECTOR_DROPDOWN_TOGGLE = `:not(${SELECTOR_DROPDOWN_TOGGLE})`\n\nconst SELECTOR_TAB_PANEL = '.list-group, .nav, [role=\"tablist\"]'\nconst SELECTOR_OUTER = '.nav-item, .list-group-item'\nconst SELECTOR_INNER = `.nav-link${NOT_SELECTOR_DROPDOWN_TOGGLE}, .list-group-item${NOT_SELECTOR_DROPDOWN_TOGGLE}, [role=\"tab\"]${NOT_SELECTOR_DROPDOWN_TOGGLE}`\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"tab\"], [data-bs-toggle=\"pill\"], [data-bs-toggle=\"list\"]' // TODO: could only be `tab` in v6\nconst SELECTOR_INNER_ELEM = `${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE}`\n\nconst SELECTOR_DATA_TOGGLE_ACTIVE = `.${CLASS_NAME_ACTIVE}[data-bs-toggle=\"tab\"], .${CLASS_NAME_ACTIVE}[data-bs-toggle=\"pill\"], .${CLASS_NAME_ACTIVE}[data-bs-toggle=\"list\"]`\n\n/**\n * Class definition\n */\n\nclass Tab extends BaseComponent {\n constructor(element) {\n super(element)\n this._parent = this._element.closest(SELECTOR_TAB_PANEL)\n\n if (!this._parent) {\n return\n // TODO: should throw exception in v6\n // throw new TypeError(`${element.outerHTML} has not a valid parent ${SELECTOR_INNER_ELEM}`)\n }\n\n // Set up initial aria attributes\n this._setInitialAttributes(this._parent, this._getChildren())\n\n EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event))\n }\n\n // Getters\n static get NAME() {\n return NAME\n }\n\n // Public\n show() { // Shows this elem and deactivate the active sibling if exists\n const innerElem = this._element\n if (this._elemIsActive(innerElem)) {\n return\n }\n\n // Search for active tab on same parent to deactivate it\n const active = this._getActiveElem()\n\n const hideEvent = active ?\n EventHandler.trigger(active, EVENT_HIDE, { relatedTarget: innerElem }) :\n null\n\n const showEvent = EventHandler.trigger(innerElem, EVENT_SHOW, { relatedTarget: active })\n\n if (showEvent.defaultPrevented || (hideEvent && hideEvent.defaultPrevented)) {\n return\n }\n\n this._deactivate(active, innerElem)\n this._activate(innerElem, active)\n }\n\n // Private\n _activate(element, relatedElem) {\n if (!element) {\n return\n }\n\n element.classList.add(CLASS_NAME_ACTIVE)\n\n this._activate(SelectorEngine.getElementFromSelector(element)) // Search and activate/show the proper section\n\n const complete = () => {\n if (element.getAttribute('role') !== 'tab') {\n element.classList.add(CLASS_NAME_SHOW)\n return\n }\n\n element.removeAttribute('tabindex')\n element.setAttribute('aria-selected', true)\n this._toggleDropDown(element, true)\n EventHandler.trigger(element, EVENT_SHOWN, {\n relatedTarget: relatedElem\n })\n }\n\n this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE))\n }\n\n _deactivate(element, relatedElem) {\n if (!element) {\n return\n }\n\n element.classList.remove(CLASS_NAME_ACTIVE)\n element.blur()\n\n this._deactivate(SelectorEngine.getElementFromSelector(element)) // Search and deactivate the shown section too\n\n const complete = () => {\n if (element.getAttribute('role') !== 'tab') {\n element.classList.remove(CLASS_NAME_SHOW)\n return\n }\n\n element.setAttribute('aria-selected', false)\n element.setAttribute('tabindex', '-1')\n this._toggleDropDown(element, false)\n EventHandler.trigger(element, EVENT_HIDDEN, { relatedTarget: relatedElem })\n }\n\n this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE))\n }\n\n _keydown(event) {\n if (!([ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY, HOME_KEY, END_KEY].includes(event.key))) {\n return\n }\n\n event.stopPropagation()// stopPropagation/preventDefault both added to support up/down keys without scrolling the page\n event.preventDefault()\n\n const children = this._getChildren().filter(element => !isDisabled(element))\n let nextActiveElement\n\n if ([HOME_KEY, END_KEY].includes(event.key)) {\n nextActiveElement = children[event.key === HOME_KEY ? 0 : children.length - 1]\n } else {\n const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key)\n nextActiveElement = getNextActiveElement(children, event.target, isNext, true)\n }\n\n if (nextActiveElement) {\n nextActiveElement.focus({ preventScroll: true })\n Tab.getOrCreateInstance(nextActiveElement).show()\n }\n }\n\n _getChildren() { // collection of inner elements\n return SelectorEngine.find(SELECTOR_INNER_ELEM, this._parent)\n }\n\n _getActiveElem() {\n return this._getChildren().find(child => this._elemIsActive(child)) || null\n }\n\n _setInitialAttributes(parent, children) {\n this._setAttributeIfNotExists(parent, 'role', 'tablist')\n\n for (const child of children) {\n this._setInitialAttributesOnChild(child)\n }\n }\n\n _setInitialAttributesOnChild(child) {\n child = this._getInnerElement(child)\n const isActive = this._elemIsActive(child)\n const outerElem = this._getOuterElement(child)\n child.setAttribute('aria-selected', isActive)\n\n if (outerElem !== child) {\n this._setAttributeIfNotExists(outerElem, 'role', 'presentation')\n }\n\n if (!isActive) {\n child.setAttribute('tabindex', '-1')\n }\n\n this._setAttributeIfNotExists(child, 'role', 'tab')\n\n // set attributes to the related panel too\n this._setInitialAttributesOnTargetPanel(child)\n }\n\n _setInitialAttributesOnTargetPanel(child) {\n const target = SelectorEngine.getElementFromSelector(child)\n\n if (!target) {\n return\n }\n\n this._setAttributeIfNotExists(target, 'role', 'tabpanel')\n\n if (child.id) {\n this._setAttributeIfNotExists(target, 'aria-labelledby', `${child.id}`)\n }\n }\n\n _toggleDropDown(element, open) {\n const outerElem = this._getOuterElement(element)\n if (!outerElem.classList.contains(CLASS_DROPDOWN)) {\n return\n }\n\n const toggle = (selector, className) => {\n const element = SelectorEngine.findOne(selector, outerElem)\n if (element) {\n element.classList.toggle(className, open)\n }\n }\n\n toggle(SELECTOR_DROPDOWN_TOGGLE, CLASS_NAME_ACTIVE)\n toggle(SELECTOR_DROPDOWN_MENU, CLASS_NAME_SHOW)\n outerElem.setAttribute('aria-expanded', open)\n }\n\n _setAttributeIfNotExists(element, attribute, value) {\n if (!element.hasAttribute(attribute)) {\n element.setAttribute(attribute, value)\n }\n }\n\n _elemIsActive(elem) {\n return elem.classList.contains(CLASS_NAME_ACTIVE)\n }\n\n // Try to get the inner element (usually the .nav-link)\n _getInnerElement(elem) {\n return elem.matches(SELECTOR_INNER_ELEM) ? elem : SelectorEngine.findOne(SELECTOR_INNER_ELEM, elem)\n }\n\n // Try to get the outer element (usually the .nav-item)\n _getOuterElement(elem) {\n return elem.closest(SELECTOR_OUTER) || elem\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Tab.getOrCreateInstance(this)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n Tab.getOrCreateInstance(this).show()\n})\n\n/**\n * Initialize on focus\n */\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n for (const element of SelectorEngine.find(SELECTOR_DATA_TOGGLE_ACTIVE)) {\n Tab.getOrCreateInstance(element)\n }\n})\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Tab)\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport { enableDismissTrigger } from './util/component-functions.js'\nimport { defineJQueryPlugin, reflow } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'toast'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_MOUSEOVER = `mouseover${EVENT_KEY}`\nconst EVENT_MOUSEOUT = `mouseout${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_FOCUSOUT = `focusout${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_HIDE = 'hide' // @deprecated - kept here only for backwards compatibility\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SHOWING = 'showing'\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 5000\n}\n\n/**\n * Class definition\n */\n\nclass Toast extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._timeout = null\n this._hasMouseInteraction = false\n this._hasKeyboardInteraction = false\n this._setListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n show() {\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._clearTimeout()\n\n if (this._config.animation) {\n this._element.classList.add(CLASS_NAME_FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_SHOWING)\n EventHandler.trigger(this._element, EVENT_SHOWN)\n\n this._maybeScheduleHide()\n }\n\n this._element.classList.remove(CLASS_NAME_HIDE) // @deprecated\n reflow(this._element)\n this._element.classList.add(CLASS_NAME_SHOW, CLASS_NAME_SHOWING)\n\n this._queueCallback(complete, this._element, this._config.animation)\n }\n\n hide() {\n if (!this.isShown()) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n const complete = () => {\n this._element.classList.add(CLASS_NAME_HIDE) // @deprecated\n this._element.classList.remove(CLASS_NAME_SHOWING, CLASS_NAME_SHOW)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.classList.add(CLASS_NAME_SHOWING)\n this._queueCallback(complete, this._element, this._config.animation)\n }\n\n dispose() {\n this._clearTimeout()\n\n if (this.isShown()) {\n this._element.classList.remove(CLASS_NAME_SHOW)\n }\n\n super.dispose()\n }\n\n isShown() {\n return this._element.classList.contains(CLASS_NAME_SHOW)\n }\n\n // Private\n\n _maybeScheduleHide() {\n if (!this._config.autohide) {\n return\n }\n\n if (this._hasMouseInteraction || this._hasKeyboardInteraction) {\n return\n }\n\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n\n _onInteraction(event, isInteracting) {\n switch (event.type) {\n case 'mouseover':\n case 'mouseout': {\n this._hasMouseInteraction = isInteracting\n break\n }\n\n case 'focusin':\n case 'focusout': {\n this._hasKeyboardInteraction = isInteracting\n break\n }\n\n default: {\n break\n }\n }\n\n if (isInteracting) {\n this._clearTimeout()\n return\n }\n\n const nextElement = event.relatedTarget\n if (this._element === nextElement || this._element.contains(nextElement)) {\n return\n }\n\n this._maybeScheduleHide()\n }\n\n _setListeners() {\n EventHandler.on(this._element, EVENT_MOUSEOVER, event => this._onInteraction(event, true))\n EventHandler.on(this._element, EVENT_MOUSEOUT, event => this._onInteraction(event, false))\n EventHandler.on(this._element, EVENT_FOCUSIN, event => this._onInteraction(event, true))\n EventHandler.on(this._element, EVENT_FOCUSOUT, event => this._onInteraction(event, false))\n }\n\n _clearTimeout() {\n clearTimeout(this._timeout)\n this._timeout = null\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Toast.getOrCreateInstance(this, config)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\nenableDismissTrigger(Toast)\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Toast)\n\nexport default Toast\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap index.umd.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Alert from './src/alert.js'\nimport Button from './src/button.js'\nimport Carousel from './src/carousel.js'\nimport Collapse from './src/collapse.js'\nimport Dropdown from './src/dropdown.js'\nimport Modal from './src/modal.js'\nimport Offcanvas from './src/offcanvas.js'\nimport Popover from './src/popover.js'\nimport ScrollSpy from './src/scrollspy.js'\nimport Tab from './src/tab.js'\nimport Toast from './src/toast.js'\nimport Tooltip from './src/tooltip.js'\n\nexport default {\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Offcanvas,\n Popover,\n ScrollSpy,\n Tab,\n Toast,\n Tooltip\n}\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}var da=new Set,ea={};function fa(a,b){ha(a,b);ha(a+\"Capture\",b)}\nfunction ha(a,b){ea[a]=b;for(a=0;a<b.length;a++)da.add(b[a])}\nvar ia=!(\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement),ja=Object.prototype.hasOwnProperty,ka=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,la=\n{},ma={};function oa(a){if(ja.call(ma,a))return!0;if(ja.call(la,a))return!1;if(ka.test(a))return ma[a]=!0;la[a]=!0;return!1}function pa(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction qa(a,b,c,d){if(null===b||\"undefined\"===typeof b||pa(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2<b.length)||\"o\"!==b[0]&&\"O\"!==b[0]||\"n\"!==b[1]&&\"N\"!==b[1])qa(b,c,e,d)&&(c=null),d||null===e?oa(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,\"\"+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:\"\":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?\"\":\"\"+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c)))}\nvar ua=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,va=Symbol.for(\"react.element\"),wa=Symbol.for(\"react.portal\"),ya=Symbol.for(\"react.fragment\"),za=Symbol.for(\"react.strict_mode\"),Aa=Symbol.for(\"react.profiler\"),Ba=Symbol.for(\"react.provider\"),Ca=Symbol.for(\"react.context\"),Da=Symbol.for(\"react.forward_ref\"),Ea=Symbol.for(\"react.suspense\"),Fa=Symbol.for(\"react.suspense_list\"),Ga=Symbol.for(\"react.memo\"),Ha=Symbol.for(\"react.lazy\");Symbol.for(\"react.scope\");Symbol.for(\"react.debug_trace_mode\");\nvar Ia=Symbol.for(\"react.offscreen\");Symbol.for(\"react.legacy_hidden\");Symbol.for(\"react.cache\");Symbol.for(\"react.tracing_marker\");var Ja=Symbol.iterator;function Ka(a){if(null===a||\"object\"!==typeof a)return null;a=Ja&&a[Ja]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}var A=Object.assign,La;function Ma(a){if(void 0===La)try{throw Error();}catch(c){var b=c.stack.trim().match(/\\n( *(at )?)/);La=b&&b[1]||\"\"}return\"\\n\"+La+a}var Na=!1;\nfunction Oa(a,b){if(!a||Na)return\"\";Na=!0;var c=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(b)if(b=function(){throw Error();},Object.defineProperty(b.prototype,\"props\",{set:function(){throw Error();}}),\"object\"===typeof Reflect&&Reflect.construct){try{Reflect.construct(b,[])}catch(l){var d=l}Reflect.construct(a,[],b)}else{try{b.call()}catch(l){d=l}a.call(b.prototype)}else{try{throw Error();}catch(l){d=l}a()}}catch(l){if(l&&d&&\"string\"===typeof l.stack){for(var e=l.stack.split(\"\\n\"),\nf=d.stack.split(\"\\n\"),g=e.length-1,h=f.length-1;1<=g&&0<=h&&e[g]!==f[h];)h--;for(;1<=g&&0<=h;g--,h--)if(e[g]!==f[h]){if(1!==g||1!==h){do if(g--,h--,0>h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"<anonymous>\")&&(k=k.replace(\"<anonymous>\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+Sa(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction gb(a,b){if(null!=b.dangerouslySetInnerHTML)throw Error(p(91));return A({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function hb(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(p(92));if(eb(c)){if(1<c.length)throw Error(p(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}function kb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}\nfunction lb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?kb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar mb,nb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(\"http://www.w3.org/2000/svg\"!==a.namespaceURI||\"innerHTML\"in a)a.innerHTML=b;else{mb=mb||document.createElement(\"div\");mb.innerHTML=\"<svg>\"+b.valueOf().toString()+\"</svg>\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a<b.length;a++)Bb(b[a])}}function Gb(a,b){return a(b)}function Hb(){}var Ib=!1;function Jb(a,b,c){if(Ib)return a(b,c);Ib=!0;try{return Gb(a,b,c)}finally{if(Ib=!1,null!==zb||null!==Ab)Hb(),Fb()}}\nfunction Kb(a,b){var c=a.stateNode;if(null===c)return null;var d=Db(c);if(null===d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==\ntypeof c)throw Error(p(231,b,typeof c));return c}var Lb=!1;if(ia)try{var Mb={};Object.defineProperty(Mb,\"passive\",{get:function(){Lb=!0}});window.addEventListener(\"test\",Mb,Mb);window.removeEventListener(\"test\",Mb,Mb)}catch(a){Lb=!1}function Nb(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(m){this.onError(m)}}var Ob=!1,Pb=null,Qb=!1,Rb=null,Sb={onError:function(a){Ob=!0;Pb=a}};function Tb(a,b,c,d,e,f,g,h,k){Ob=!1;Pb=null;Nb.apply(Sb,arguments)}\nfunction Ub(a,b,c,d,e,f,g,h,k){Tb.apply(this,arguments);if(Ob){if(Ob){var l=Pb;Ob=!1;Pb=null}else throw Error(p(198));Qb||(Qb=!0,Rb=l)}}function Vb(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.flags&4098)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function Wb(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function Xb(a){if(Vb(a)!==a)throw Error(p(188));}\nfunction Yb(a){var b=a.alternate;if(!b){b=Vb(a);if(null===b)throw Error(p(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return Xb(e),a;if(f===d)return Xb(e),b;f=f.sibling}throw Error(p(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(p(189));}}if(c.alternate!==d)throw Error(p(190));}if(3!==c.tag)throw Error(p(188));return c.stateNode.current===c?a:b}function Zb(a){a=Yb(a);return null!==a?$b(a):null}function $b(a){if(5===a.tag||6===a.tag)return a;for(a=a.child;null!==a;){var b=$b(a);if(null!==b)return b;a=a.sibling}return null}\nvar ac=ca.unstable_scheduleCallback,bc=ca.unstable_cancelCallback,cc=ca.unstable_shouldYield,dc=ca.unstable_requestPaint,B=ca.unstable_now,ec=ca.unstable_getCurrentPriorityLevel,fc=ca.unstable_ImmediatePriority,gc=ca.unstable_UserBlockingPriority,hc=ca.unstable_NormalPriority,ic=ca.unstable_LowPriority,jc=ca.unstable_IdlePriority,kc=null,lc=null;function mc(a){if(lc&&\"function\"===typeof lc.onCommitFiberRoot)try{lc.onCommitFiberRoot(kc,a,void 0,128===(a.current.flags&128))}catch(b){}}\nvar oc=Math.clz32?Math.clz32:nc,pc=Math.log,qc=Math.LN2;function nc(a){a>>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0<b;)c=31-oc(b),e=1<<c,d|=a[c],b&=~e;return d}\nfunction vc(a,b){switch(a){case 1:case 2:case 4:return b+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return b+5E3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}\nfunction wc(a,b){for(var c=a.suspendedLanes,d=a.pingedLanes,e=a.expirationTimes,f=a.pendingLanes;0<f;){var g=31-oc(f),h=1<<g,k=e[g];if(-1===k){if(0===(h&c)||0!==(h&d))e[g]=vc(h,b)}else k<=b&&(a.expiredLanes|=h);f&=~h}}function xc(a){a=a.pendingLanes&-1073741825;return 0!==a?a:a&1073741824?1073741824:0}function yc(){var a=rc;rc<<=1;0===(rc&4194240)&&(rc=64);return a}function zc(a){for(var b=[],c=0;31>c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0<c;){var e=31-oc(c),f=1<<e;b[e]=0;d[e]=-1;a[e]=-1;c&=~f}}\nfunction Cc(a,b){var c=a.entangledLanes|=b;for(a=a.entanglements;c;){var d=31-oc(c),e=1<<d;e&b|a[d]&b&&(a[d]|=b);c&=~e}}var C=0;function Dc(a){a&=-a;return 1<a?4<a?0!==(a&268435455)?16:536870912:4:1}var Ec,Fc,Gc,Hc,Ic,Jc=!1,Kc=[],Lc=null,Mc=null,Nc=null,Oc=new Map,Pc=new Map,Qc=[],Rc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit\".split(\" \");\nfunction Sc(a,b){switch(a){case \"focusin\":case \"focusout\":Lc=null;break;case \"dragenter\":case \"dragleave\":Mc=null;break;case \"mouseover\":case \"mouseout\":Nc=null;break;case \"pointerover\":case \"pointerout\":Oc.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":Pc.delete(b.pointerId)}}\nfunction Tc(a,b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a={blockedOn:b,domEventName:c,eventSystemFlags:d,nativeEvent:f,targetContainers:[e]},null!==b&&(b=Cb(b),null!==b&&Fc(b)),a;a.eventSystemFlags|=d;b=a.targetContainers;null!==e&&-1===b.indexOf(e)&&b.push(e);return a}\nfunction Uc(a,b,c,d,e){switch(b){case \"focusin\":return Lc=Tc(Lc,a,b,c,d,e),!0;case \"dragenter\":return Mc=Tc(Mc,a,b,c,d,e),!0;case \"mouseover\":return Nc=Tc(Nc,a,b,c,d,e),!0;case \"pointerover\":var f=e.pointerId;Oc.set(f,Tc(Oc.get(f)||null,a,b,c,d,e));return!0;case \"gotpointercapture\":return f=e.pointerId,Pc.set(f,Tc(Pc.get(f)||null,a,b,c,d,e)),!0}return!1}\nfunction Vc(a){var b=Wc(a.target);if(null!==b){var c=Vb(b);if(null!==c)if(b=c.tag,13===b){if(b=Wb(c),null!==b){a.blockedOn=b;Ic(a.priority,function(){Gc(c)});return}}else if(3===b&&c.stateNode.current.memoizedState.isDehydrated){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}\nfunction Xc(a){if(null!==a.blockedOn)return!1;for(var b=a.targetContainers;0<b.length;){var c=Yc(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null===c){c=a.nativeEvent;var d=new c.constructor(c.type,c);wb=d;c.target.dispatchEvent(d);wb=null}else return b=Cb(c),null!==b&&Fc(b),a.blockedOn=c,!1;b.shift()}return!0}function Zc(a,b,c){Xc(a)&&c.delete(b)}function $c(){Jc=!1;null!==Lc&&Xc(Lc)&&(Lc=null);null!==Mc&&Xc(Mc)&&(Mc=null);null!==Nc&&Xc(Nc)&&(Nc=null);Oc.forEach(Zc);Pc.forEach(Zc)}\nfunction ad(a,b){a.blockedOn===b&&(a.blockedOn=null,Jc||(Jc=!0,ca.unstable_scheduleCallback(ca.unstable_NormalPriority,$c)))}\nfunction bd(a){function b(b){return ad(b,a)}if(0<Kc.length){ad(Kc[0],a);for(var c=1;c<Kc.length;c++){var d=Kc[c];d.blockedOn===a&&(d.blockedOn=null)}}null!==Lc&&ad(Lc,a);null!==Mc&&ad(Mc,a);null!==Nc&&ad(Nc,a);Oc.forEach(b);Pc.forEach(b);for(c=0;c<Qc.length;c++)d=Qc[c],d.blockedOn===a&&(d.blockedOn=null);for(;0<Qc.length&&(c=Qc[0],null===c.blockedOn);)Vc(c),null===c.blockedOn&&Qc.shift()}var cd=ua.ReactCurrentBatchConfig,dd=!0;\nfunction ed(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=1,fd(a,b,c,d)}finally{C=e,cd.transition=f}}function gd(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=4,fd(a,b,c,d)}finally{C=e,cd.transition=f}}\nfunction fd(a,b,c,d){if(dd){var e=Yc(a,b,c,d);if(null===e)hd(a,b,d,id,c),Sc(a,d);else if(Uc(e,a,b,c,d))d.stopPropagation();else if(Sc(a,d),b&4&&-1<Rc.indexOf(a)){for(;null!==e;){var f=Cb(e);null!==f&&Ec(f);f=Yc(a,b,c,d);null===f&&hd(a,b,d,id,c);if(f===e)break;e=f}null!==e&&d.stopPropagation()}else hd(a,b,d,null,c)}}var id=null;\nfunction Yc(a,b,c,d){id=null;a=xb(d);a=Wc(a);if(null!==a)if(b=Vb(a),null===b)a=null;else if(c=b.tag,13===c){a=Wb(b);if(null!==a)return a;a=null}else if(3===c){if(b.stateNode.current.memoizedState.isDehydrated)return 3===b.tag?b.stateNode.containerInfo:null;a=null}else b!==a&&(a=null);id=a;return null}\nfunction jd(a){switch(a){case \"cancel\":case \"click\":case \"close\":case \"contextmenu\":case \"copy\":case \"cut\":case \"auxclick\":case \"dblclick\":case \"dragend\":case \"dragstart\":case \"drop\":case \"focusin\":case \"focusout\":case \"input\":case \"invalid\":case \"keydown\":case \"keypress\":case \"keyup\":case \"mousedown\":case \"mouseup\":case \"paste\":case \"pause\":case \"play\":case \"pointercancel\":case \"pointerdown\":case \"pointerup\":case \"ratechange\":case \"reset\":case \"resize\":case \"seeked\":case \"submit\":case \"touchcancel\":case \"touchend\":case \"touchstart\":case \"volumechange\":case \"change\":case \"selectionchange\":case \"textInput\":case \"compositionstart\":case \"compositionend\":case \"compositionupdate\":case \"beforeblur\":case \"afterblur\":case \"beforeinput\":case \"blur\":case \"fullscreenchange\":case \"focus\":case \"hashchange\":case \"popstate\":case \"select\":case \"selectstart\":return 1;case \"drag\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"mousemove\":case \"mouseout\":case \"mouseover\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"scroll\":case \"toggle\":case \"touchmove\":case \"wheel\":case \"mouseenter\":case \"mouseleave\":case \"pointerenter\":case \"pointerleave\":return 4;\ncase \"message\":switch(ec()){case fc:return 1;case gc:return 4;case hc:case ic:return 16;case jc:return 536870912;default:return 16}default:return 16}}var kd=null,ld=null,md=null;function nd(){if(md)return md;var a,b=ld,c=b.length,d,e=\"value\"in kd?kd.value:kd.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return md=e.slice(a,1<d?1-d:void 0)}\nfunction od(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}function pd(){return!0}function qd(){return!1}\nfunction rd(a){function b(b,d,e,f,g){this._reactName=b;this._targetInst=e;this.type=d;this.nativeEvent=f;this.target=g;this.currentTarget=null;for(var c in a)a.hasOwnProperty(c)&&(b=a[c],this[c]=b?b(f):f[c]);this.isDefaultPrevented=(null!=f.defaultPrevented?f.defaultPrevented:!1===f.returnValue)?pd:qd;this.isPropagationStopped=qd;return this}A(b.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&\n(a.returnValue=!1),this.isDefaultPrevented=pd)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=pd)},persist:function(){},isPersistent:pd});return b}\nvar sd={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},td=rd(sd),ud=A({},sd,{view:0,detail:0}),vd=rd(ud),wd,xd,yd,Ad=A({},ud,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:zd,button:0,buttons:0,relatedTarget:function(a){return void 0===a.relatedTarget?a.fromElement===a.srcElement?a.toElement:a.fromElement:a.relatedTarget},movementX:function(a){if(\"movementX\"in\na)return a.movementX;a!==yd&&(yd&&\"mousemove\"===a.type?(wd=a.screenX-yd.screenX,xd=a.screenY-yd.screenY):xd=wd=0,yd=a);return wd},movementY:function(a){return\"movementY\"in a?a.movementY:xd}}),Bd=rd(Ad),Cd=A({},Ad,{dataTransfer:0}),Dd=rd(Cd),Ed=A({},ud,{relatedTarget:0}),Fd=rd(Ed),Gd=A({},sd,{animationName:0,elapsedTime:0,pseudoElement:0}),Hd=rd(Gd),Id=A({},sd,{clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),Jd=rd(Id),Kd=A({},sd,{data:0}),Ld=rd(Kd),Md={Esc:\"Escape\",\nSpacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},Nd={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",\n119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},Od={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Pd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Od[a])?!!b[a]:!1}function zd(){return Pd}\nvar Qd=A({},ud,{key:function(a){if(a.key){var b=Md[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=od(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?Nd[a.keyCode]||\"Unidentified\":\"\"},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:zd,charCode:function(a){return\"keypress\"===a.type?od(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===\na.type?od(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),Rd=rd(Qd),Sd=A({},Ad,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Td=rd(Sd),Ud=A({},ud,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:zd}),Vd=rd(Ud),Wd=A({},sd,{propertyName:0,elapsedTime:0,pseudoElement:0}),Xd=rd(Wd),Yd=A({},Ad,{deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},\ndeltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:0,deltaMode:0}),Zd=rd(Yd),$d=[9,13,27,32],ae=ia&&\"CompositionEvent\"in window,be=null;ia&&\"documentMode\"in document&&(be=document.documentMode);var ce=ia&&\"TextEvent\"in window&&!be,de=ia&&(!ae||be&&8<be&&11>=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"compositionend\":return de&&\"ko\"!==b.locale?null:b.data;default:return null}}\nvar le={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function me(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!le[a.type]:\"textarea\"===b?!0:!1}function ne(a,b,c,d){Eb(d);b=oe(b,\"onChange\");0<b.length&&(c=new td(\"onChange\",\"change\",null,c,d),a.push({event:c,listeners:b}))}var pe=null,qe=null;function re(a){se(a,0)}function te(a){var b=ue(a);if(Wa(b))return a}\nfunction ve(a,b){if(\"change\"===a)return b}var we=!1;if(ia){var xe;if(ia){var ye=\"oninput\"in document;if(!ye){var ze=document.createElement(\"div\");ze.setAttribute(\"oninput\",\"return;\");ye=\"function\"===typeof ze.oninput}xe=ye}else xe=!1;we=xe&&(!document.documentMode||9<document.documentMode)}function Ae(){pe&&(pe.detachEvent(\"onpropertychange\",Be),qe=pe=null)}function Be(a){if(\"value\"===a.propertyName&&te(qe)){var b=[];ne(b,qe,a,xb(a));Jb(re,b)}}\nfunction Ce(a,b,c){\"focusin\"===a?(Ae(),pe=b,qe=c,pe.attachEvent(\"onpropertychange\",Be)):\"focusout\"===a&&Ae()}function De(a){if(\"selectionchange\"===a||\"keyup\"===a||\"keydown\"===a)return te(qe)}function Ee(a,b){if(\"click\"===a)return te(b)}function Fe(a,b){if(\"input\"===a||\"change\"===a)return te(b)}function Ge(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var He=\"function\"===typeof Object.is?Object.is:Ge;\nfunction Ie(a,b){if(He(a,b))return!0;if(\"object\"!==typeof a||null===a||\"object\"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++){var e=c[d];if(!ja.call(b,e)||!He(a[e],b[e]))return!1}return!0}function Je(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Ke(a,b){var c=Je(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c<b.length;c++)a=b[c],a.element.scrollLeft=a.left,a.element.scrollTop=a.top}}\nvar Pe=ia&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0<d.length&&(b=new td(\"onSelect\",\"select\",null,b,c),a.push({event:b,listeners:d}),b.target=Qe)))}\nfunction Ve(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var We={animationend:Ve(\"Animation\",\"AnimationEnd\"),animationiteration:Ve(\"Animation\",\"AnimationIteration\"),animationstart:Ve(\"Animation\",\"AnimationStart\"),transitionend:Ve(\"Transition\",\"TransitionEnd\")},Xe={},Ye={};\nia&&(Ye=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete We.animationend.animation,delete We.animationiteration.animation,delete We.animationstart.animation),\"TransitionEvent\"in window||delete We.transitionend.transition);function Ze(a){if(Xe[a])return Xe[a];if(!We[a])return a;var b=We[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Ye)return Xe[a]=b[c];return a}var $e=Ze(\"animationend\"),af=Ze(\"animationiteration\"),bf=Ze(\"animationstart\"),cf=Ze(\"transitionend\"),df=new Map,ef=\"abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\" \");\nfunction ff(a,b){df.set(a,b);fa(b,[a])}for(var gf=0;gf<ef.length;gf++){var hf=ef[gf],jf=hf.toLowerCase(),kf=hf[0].toUpperCase()+hf.slice(1);ff(jf,\"on\"+kf)}ff($e,\"onAnimationEnd\");ff(af,\"onAnimationIteration\");ff(bf,\"onAnimationStart\");ff(\"dblclick\",\"onDoubleClick\");ff(\"focusin\",\"onFocus\");ff(\"focusout\",\"onBlur\");ff(cf,\"onTransitionEnd\");ha(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]);ha(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]);ha(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]);\nha(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]);fa(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \"));fa(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \"));fa(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]);fa(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \"));fa(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \"));\nfa(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var lf=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),mf=new Set(\"cancel close invalid load scroll toggle\".split(\" \").concat(lf));\nfunction nf(a,b,c){var d=a.type||\"unknown-event\";a.currentTarget=c;Ub(d,b,void 0,a);a.currentTarget=null}\nfunction se(a,b){b=0!==(b&4);for(var c=0;c<a.length;c++){var d=a[c],e=d.event;d=d.listeners;a:{var f=void 0;if(b)for(var g=d.length-1;0<=g;g--){var h=d[g],k=h.instance,l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}else for(g=0;g<d.length;g++){h=d[g];k=h.instance;l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}}}if(Qb)throw a=Rb,Qb=!1,Rb=null,a;}\nfunction D(a,b){var c=b[of];void 0===c&&(c=b[of]=new Set);var d=a+\"__bubble\";c.has(d)||(pf(b,a,2,!1),c.add(d))}function qf(a,b,c){var d=0;b&&(d|=4);pf(c,a,d,b)}var rf=\"_reactListening\"+Math.random().toString(36).slice(2);function sf(a){if(!a[rf]){a[rf]=!0;da.forEach(function(b){\"selectionchange\"!==b&&(mf.has(b)||qf(b,!1,a),qf(b,!0,a))});var b=9===a.nodeType?a:a.ownerDocument;null===b||b[rf]||(b[rf]=!0,qf(\"selectionchange\",!1,b))}}\nfunction pf(a,b,c,d){switch(jd(b)){case 1:var e=ed;break;case 4:e=gd;break;default:e=fd}c=e.bind(null,b,c,a);e=void 0;!Lb||\"touchstart\"!==b&&\"touchmove\"!==b&&\"wheel\"!==b||(e=!0);d?void 0!==e?a.addEventListener(b,c,{capture:!0,passive:e}):a.addEventListener(b,c,!0):void 0!==e?a.addEventListener(b,c,{passive:e}):a.addEventListener(b,c,!1)}\nfunction hd(a,b,c,d,e){var f=d;if(0===(b&1)&&0===(b&2)&&null!==d)a:for(;;){if(null===d)return;var g=d.tag;if(3===g||4===g){var h=d.stateNode.containerInfo;if(h===e||8===h.nodeType&&h.parentNode===e)break;if(4===g)for(g=d.return;null!==g;){var k=g.tag;if(3===k||4===k)if(k=g.stateNode.containerInfo,k===e||8===k.nodeType&&k.parentNode===e)return;g=g.return}for(;null!==h;){g=Wc(h);if(null===g)return;k=g.tag;if(5===k||6===k){d=f=g;continue a}h=h.parentNode}}d=d.return}Jb(function(){var d=f,e=xb(c),g=[];\na:{var h=df.get(a);if(void 0!==h){var k=td,n=a;switch(a){case \"keypress\":if(0===od(c))break a;case \"keydown\":case \"keyup\":k=Rd;break;case \"focusin\":n=\"focus\";k=Fd;break;case \"focusout\":n=\"blur\";k=Fd;break;case \"beforeblur\":case \"afterblur\":k=Fd;break;case \"click\":if(2===c.button)break a;case \"auxclick\":case \"dblclick\":case \"mousedown\":case \"mousemove\":case \"mouseup\":case \"mouseout\":case \"mouseover\":case \"contextmenu\":k=Bd;break;case \"drag\":case \"dragend\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"dragstart\":case \"drop\":k=\nDd;break;case \"touchcancel\":case \"touchend\":case \"touchmove\":case \"touchstart\":k=Vd;break;case $e:case af:case bf:k=Hd;break;case cf:k=Xd;break;case \"scroll\":k=vd;break;case \"wheel\":k=Zd;break;case \"copy\":case \"cut\":case \"paste\":k=Jd;break;case \"gotpointercapture\":case \"lostpointercapture\":case \"pointercancel\":case \"pointerdown\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"pointerup\":k=Td}var t=0!==(b&4),J=!t&&\"scroll\"===a,x=t?null!==h?h+\"Capture\":null:h;t=[];for(var w=d,u;null!==\nw;){u=w;var F=u.stateNode;5===u.tag&&null!==F&&(u=F,null!==x&&(F=Kb(w,x),null!=F&&t.push(tf(w,F,u))));if(J)break;w=w.return}0<t.length&&(h=new k(h,n,null,c,e),g.push({event:h,listeners:t}))}}if(0===(b&7)){a:{h=\"mouseover\"===a||\"pointerover\"===a;k=\"mouseout\"===a||\"pointerout\"===a;if(h&&c!==wb&&(n=c.relatedTarget||c.fromElement)&&(Wc(n)||n[uf]))break a;if(k||h){h=e.window===e?e:(h=e.ownerDocument)?h.defaultView||h.parentWindow:window;if(k){if(n=c.relatedTarget||c.toElement,k=d,n=n?Wc(n):null,null!==\nn&&(J=Vb(n),n!==J||5!==n.tag&&6!==n.tag))n=null}else k=null,n=d;if(k!==n){t=Bd;F=\"onMouseLeave\";x=\"onMouseEnter\";w=\"mouse\";if(\"pointerout\"===a||\"pointerover\"===a)t=Td,F=\"onPointerLeave\",x=\"onPointerEnter\",w=\"pointer\";J=null==k?h:ue(k);u=null==n?h:ue(n);h=new t(F,w+\"leave\",k,c,e);h.target=J;h.relatedTarget=u;F=null;Wc(e)===d&&(t=new t(x,w+\"enter\",n,c,e),t.target=u,t.relatedTarget=J,F=t);J=F;if(k&&n)b:{t=k;x=n;w=0;for(u=t;u;u=vf(u))w++;u=0;for(F=x;F;F=vf(F))u++;for(;0<w-u;)t=vf(t),w--;for(;0<u-w;)x=\nvf(x),u--;for(;w--;){if(t===x||null!==x&&t===x.alternate)break b;t=vf(t);x=vf(x)}t=null}else t=null;null!==k&&wf(g,h,k,t,!1);null!==n&&null!==J&&wf(g,J,n,t,!0)}}}a:{h=d?ue(d):window;k=h.nodeName&&h.nodeName.toLowerCase();if(\"select\"===k||\"input\"===k&&\"file\"===h.type)var na=ve;else if(me(h))if(we)na=Fe;else{na=De;var xa=Ce}else(k=h.nodeName)&&\"input\"===k.toLowerCase()&&(\"checkbox\"===h.type||\"radio\"===h.type)&&(na=Ee);if(na&&(na=na(a,d))){ne(g,na,c,e);break a}xa&&xa(a,h,d);\"focusout\"===a&&(xa=h._wrapperState)&&\nxa.controlled&&\"number\"===h.type&&cb(h,\"number\",h.value)}xa=d?ue(d):window;switch(a){case \"focusin\":if(me(xa)||\"true\"===xa.contentEditable)Qe=xa,Re=d,Se=null;break;case \"focusout\":Se=Re=Qe=null;break;case \"mousedown\":Te=!0;break;case \"contextmenu\":case \"mouseup\":case \"dragend\":Te=!1;Ue(g,c,e);break;case \"selectionchange\":if(Pe)break;case \"keydown\":case \"keyup\":Ue(g,c,e)}var $a;if(ae)b:{switch(a){case \"compositionstart\":var ba=\"onCompositionStart\";break b;case \"compositionend\":ba=\"onCompositionEnd\";\nbreak b;case \"compositionupdate\":ba=\"onCompositionUpdate\";break b}ba=void 0}else ie?ge(a,c)&&(ba=\"onCompositionEnd\"):\"keydown\"===a&&229===c.keyCode&&(ba=\"onCompositionStart\");ba&&(de&&\"ko\"!==c.locale&&(ie||\"onCompositionStart\"!==ba?\"onCompositionEnd\"===ba&&ie&&($a=nd()):(kd=e,ld=\"value\"in kd?kd.value:kd.textContent,ie=!0)),xa=oe(d,ba),0<xa.length&&(ba=new Ld(ba,a,null,c,e),g.push({event:ba,listeners:xa}),$a?ba.data=$a:($a=he(c),null!==$a&&(ba.data=$a))));if($a=ce?je(a,c):ke(a,c))d=oe(d,\"onBeforeInput\"),\n0<d.length&&(e=new Ld(\"onBeforeInput\",\"beforeinput\",null,c,e),g.push({event:e,listeners:d}),e.data=$a)}se(g,b)})}function tf(a,b,c){return{instance:a,listener:b,currentTarget:c}}function oe(a,b){for(var c=b+\"Capture\",d=[];null!==a;){var e=a,f=e.stateNode;5===e.tag&&null!==f&&(e=f,f=Kb(a,c),null!=f&&d.unshift(tf(a,f,e)),f=Kb(a,b),null!=f&&d.push(tf(a,f,e)));a=a.return}return d}function vf(a){if(null===a)return null;do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction wf(a,b,c,d,e){for(var f=b._reactName,g=[];null!==c&&c!==d;){var h=c,k=h.alternate,l=h.stateNode;if(null!==k&&k===d)break;5===h.tag&&null!==l&&(h=l,e?(k=Kb(c,f),null!=k&&g.unshift(tf(c,k,h))):e||(k=Kb(c,f),null!=k&&g.push(tf(c,k,h))));c=c.return}0!==g.length&&a.push({event:b,listeners:g})}var xf=/\\r\\n?/g,yf=/\\u0000|\\uFFFD/g;function zf(a){return(\"string\"===typeof a?a:\"\"+a).replace(xf,\"\\n\").replace(yf,\"\")}function Af(a,b,c){b=zf(b);if(zf(a)!==b&&c)throw Error(p(425));}function Bf(){}\nvar Cf=null,Df=null;function Ef(a,b){return\"textarea\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}\nvar Ff=\"function\"===typeof setTimeout?setTimeout:void 0,Gf=\"function\"===typeof clearTimeout?clearTimeout:void 0,Hf=\"function\"===typeof Promise?Promise:void 0,Jf=\"function\"===typeof queueMicrotask?queueMicrotask:\"undefined\"!==typeof Hf?function(a){return Hf.resolve(null).then(a).catch(If)}:Ff;function If(a){setTimeout(function(){throw a;})}\nfunction Kf(a,b){var c=b,d=0;do{var e=c.nextSibling;a.removeChild(c);if(e&&8===e.nodeType)if(c=e.data,\"/$\"===c){if(0===d){a.removeChild(e);bd(b);return}d--}else\"$\"!==c&&\"$?\"!==c&&\"$!\"!==c||d++;c=e}while(c);bd(b)}function Lf(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break;if(8===b){b=a.data;if(\"$\"===b||\"$!\"===b||\"$?\"===b)break;if(\"/$\"===b)return null}}return a}\nfunction Mf(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(\"$\"===c||\"$!\"===c||\"$?\"===c){if(0===b)return a;b--}else\"/$\"===c&&b++}a=a.previousSibling}return null}var Nf=Math.random().toString(36).slice(2),Of=\"__reactFiber$\"+Nf,Pf=\"__reactProps$\"+Nf,uf=\"__reactContainer$\"+Nf,of=\"__reactEvents$\"+Nf,Qf=\"__reactListeners$\"+Nf,Rf=\"__reactHandles$\"+Nf;\nfunction Wc(a){var b=a[Of];if(b)return b;for(var c=a.parentNode;c;){if(b=c[uf]||c[Of]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Mf(a);null!==a;){if(c=a[Of])return c;a=Mf(a)}return b}a=c;c=a.parentNode}return null}function Cb(a){a=a[Of]||a[uf];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function ue(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(p(33));}function Db(a){return a[Pf]||null}var Sf=[],Tf=-1;function Uf(a){return{current:a}}\nfunction E(a){0>Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a<c.length;a++){var d=c[a];do d=d(!0);while(null!==d)}eg=null;fg=!1}catch(e){throw null!==eg&&(eg=eg.slice(a+1)),ac(fc,jg),e;}finally{C=b,gg=!1}}return null}var kg=[],lg=0,mg=null,ng=0,og=[],pg=0,qg=null,rg=1,sg=\"\";function tg(a,b){kg[lg++]=ng;kg[lg++]=mg;mg=a;ng=b}\nfunction ug(a,b,c){og[pg++]=rg;og[pg++]=sg;og[pg++]=qg;qg=a;var d=rg;a=sg;var e=32-oc(d)-1;d&=~(1<<e);c+=1;var f=32-oc(b)+e;if(30<f){var g=e-e%5;f=(d&(1<<g)-1).toString(32);d>>=g;e-=g;rg=1<<32-oc(b)+e|c<<e|d;sg=f+a}else rg=1<<f|c<<e|d,sg=a}function vg(a){null!==a.return&&(tg(a,1),ug(a,1,0))}function wg(a){for(;a===mg;)mg=kg[--lg],kg[lg]=null,ng=kg[--lg],kg[lg]=null;for(;a===qg;)qg=og[--pg],og[pg]=null,sg=og[--pg],og[pg]=null,rg=og[--pg],og[pg]=null}var xg=null,yg=null,I=!1,zg=null;\nfunction Ag(a,b){var c=Bg(5,null,null,0);c.elementType=\"DELETED\";c.stateNode=b;c.return=a;b=a.deletions;null===b?(a.deletions=[c],a.flags|=16):b.push(c)}\nfunction Cg(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,xg=a,yg=Lf(b.firstChild),!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,xg=a,yg=null,!0):!1;case 13:return b=8!==b.nodeType?null:b,null!==b?(c=null!==qg?{id:rg,overflow:sg}:null,a.memoizedState={dehydrated:b,treeContext:c,retryLane:1073741824},c=Bg(18,null,null,0),c.stateNode=b,c.return=a,a.child=c,xg=a,yg=\nnull,!0):!1;default:return!1}}function Dg(a){return 0!==(a.mode&1)&&0===(a.flags&128)}function Eg(a){if(I){var b=yg;if(b){var c=b;if(!Cg(a,b)){if(Dg(a))throw Error(p(418));b=Lf(c.nextSibling);var d=xg;b&&Cg(a,b)?Ag(d,c):(a.flags=a.flags&-4097|2,I=!1,xg=a)}}else{if(Dg(a))throw Error(p(418));a.flags=a.flags&-4097|2;I=!1;xg=a}}}function Fg(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;xg=a}\nfunction Gg(a){if(a!==xg)return!1;if(!I)return Fg(a),I=!0,!1;var b;(b=3!==a.tag)&&!(b=5!==a.tag)&&(b=a.type,b=\"head\"!==b&&\"body\"!==b&&!Ef(a.type,a.memoizedProps));if(b&&(b=yg)){if(Dg(a))throw Hg(),Error(p(418));for(;b;)Ag(a,b),b=Lf(b.nextSibling)}Fg(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(p(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){yg=Lf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}yg=\nnull}}else yg=xg?Lf(a.stateNode.nextSibling):null;return!0}function Hg(){for(var a=yg;a;)a=Lf(a.nextSibling)}function Ig(){yg=xg=null;I=!1}function Jg(a){null===zg?zg=[a]:zg.push(a)}var Kg=ua.ReactCurrentBatchConfig;function Lg(a,b){if(a&&a.defaultProps){b=A({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c]);return b}return b}var Mg=Uf(null),Ng=null,Og=null,Pg=null;function Qg(){Pg=Og=Ng=null}function Rg(a){var b=Mg.current;E(Mg);a._currentValue=b}\nfunction Sg(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}function Tg(a,b){Ng=a;Pg=Og=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(Ug=!0),a.firstContext=null)}\nfunction Vg(a){var b=a._currentValue;if(Pg!==a)if(a={context:a,memoizedValue:b,next:null},null===Og){if(null===Ng)throw Error(p(308));Og=a;Ng.dependencies={lanes:0,firstContext:a}}else Og=Og.next=a;return b}var Wg=null;function Xg(a){null===Wg?Wg=[a]:Wg.push(a)}function Yg(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,Xg(b)):(c.next=e.next,e.next=c);b.interleaved=c;return Zg(a,d)}\nfunction Zg(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var $g=!1;function ah(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction bh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function ch(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction dh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return Zg(a,c)}e=d.interleaved;null===e?(b.next=b,Xg(d)):(b.next=e.next,e.next=b);d.interleaved=b;return Zg(a,c)}function eh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction fh(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction gh(a,b,c,d){var e=a.updateQueue;$g=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:$g=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);hh|=g;a.lanes=g;a.memoizedState=q}}\nfunction ih(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=c;if(\"function\"!==typeof e)throw Error(p(191,e));e.call(d)}}}var jh=(new aa.Component).refs;function kh(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:A({},b,c);a.memoizedState=c;0===a.lanes&&(a.updateQueue.baseState=c)}\nvar nh={isMounted:function(a){return(a=a._reactInternals)?Vb(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternals;var d=L(),e=lh(a),f=ch(d,e);f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=dh(a,f,e);null!==b&&(mh(b,a,e,d),eh(b,a,e))},enqueueReplaceState:function(a,b,c){a=a._reactInternals;var d=L(),e=lh(a),f=ch(d,e);f.tag=1;f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=dh(a,f,e);null!==b&&(mh(b,a,e,d),eh(b,a,e))},enqueueForceUpdate:function(a,b){a=a._reactInternals;var c=L(),d=\nlh(a),e=ch(c,d);e.tag=2;void 0!==b&&null!==b&&(e.callback=b);b=dh(a,e,d);null!==b&&(mh(b,a,d,c),eh(b,a,d))}};function oh(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!Ie(c,d)||!Ie(e,f):!0}\nfunction ph(a,b,c){var d=!1,e=Vf;var f=b.contextType;\"object\"===typeof f&&null!==f?f=Vg(f):(e=Zf(b)?Xf:H.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Yf(a,e):Vf);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=nh;a.stateNode=b;b._reactInternals=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction qh(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&nh.enqueueReplaceState(b,b.state,null)}\nfunction rh(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs=jh;ah(a);var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=Vg(f):(f=Zf(b)?Xf:H.current,e.context=Yf(a,f));e.state=a.memoizedState;f=b.getDerivedStateFromProps;\"function\"===typeof f&&(kh(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof e.componentWillMount||(b=e.state,\n\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&nh.enqueueReplaceState(e,e.state,null),gh(a,c,e,d),e.state=a.memoizedState);\"function\"===typeof e.componentDidMount&&(a.flags|=4194308)}\nfunction sh(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(p(309));var d=c.stateNode}if(!d)throw Error(p(147,a));var e=d,f=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===f)return b.ref;b=function(a){var b=e.refs;b===jh&&(b=e.refs={});null===a?delete b[f]:b[f]=a};b._stringRef=f;return b}if(\"string\"!==typeof a)throw Error(p(284));if(!c._owner)throw Error(p(290,a));}return a}\nfunction th(a,b){a=Object.prototype.toString.call(b);throw Error(p(31,\"[object Object]\"===a?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":a));}function uh(a){var b=a._init;return b(a._payload)}\nfunction vh(a){function b(b,c){if(a){var d=b.deletions;null===d?(b.deletions=[c],b.flags|=16):d.push(c)}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=wh(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return b.flags|=1048576,c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.flags|=2,c):d;b.flags|=2;return c}function g(b){a&&\nnull===b.alternate&&(b.flags|=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=xh(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){var f=c.type;if(f===ya)return m(a,b,c.props.children,d,c.key);if(null!==b&&(b.elementType===f||\"object\"===typeof f&&null!==f&&f.$$typeof===Ha&&uh(f)===b.type))return d=e(b,c.props),d.ref=sh(a,b,c),d.return=a,d;d=yh(c.type,c.key,c.props,null,a.mode,d);d.ref=sh(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||\nb.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=zh(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function m(a,b,c,d,f){if(null===b||7!==b.tag)return b=Ah(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function q(a,b,c){if(\"string\"===typeof b&&\"\"!==b||\"number\"===typeof b)return b=xh(\"\"+b,a.mode,c),b.return=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case va:return c=yh(b.type,b.key,b.props,null,a.mode,c),\nc.ref=sh(a,null,b),c.return=a,c;case wa:return b=zh(b,a.mode,c),b.return=a,b;case Ha:var d=b._init;return q(a,d(b._payload),c)}if(eb(b)||Ka(b))return b=Ah(b,a.mode,c,null),b.return=a,b;th(a,b)}return null}function r(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c&&\"\"!==c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case va:return c.key===e?k(a,b,c,d):null;case wa:return c.key===e?l(a,b,c,d):null;case Ha:return e=c._init,r(a,\nb,e(c._payload),d)}if(eb(c)||Ka(c))return null!==e?null:m(a,b,c,d,null);th(a,c)}return null}function y(a,b,c,d,e){if(\"string\"===typeof d&&\"\"!==d||\"number\"===typeof d)return a=a.get(c)||null,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case va:return a=a.get(null===d.key?c:d.key)||null,k(b,a,d,e);case wa:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e);case Ha:var f=d._init;return y(a,b,c,f(d._payload),e)}if(eb(d)||Ka(d))return a=a.get(c)||null,m(b,a,d,e,null);th(b,d)}return null}\nfunction n(e,g,h,k){for(var l=null,m=null,u=g,w=g=0,x=null;null!==u&&w<h.length;w++){u.index>w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;w<h.length;w++)u=q(e,h[w],k),null!==u&&(g=f(u,g,w),null===m?l=u:m.sibling=u,m=u);I&&tg(e,w);return l}for(u=d(e,u);w<h.length;w++)x=y(u,e,w,h[w],k),null!==x&&(a&&null!==x.alternate&&u.delete(null===\nx.key?w:x.key),g=f(x,g,w),null===m?l=x:m.sibling=x,m=x);a&&u.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function t(e,g,h,k){var l=Ka(h);if(\"function\"!==typeof l)throw Error(p(150));h=l.call(h);if(null==h)throw Error(p(151));for(var u=l=null,m=g,w=g=0,x=null,n=h.next();null!==m&&!n.done;w++,n=h.next()){m.index>w?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;a<Nh.length;a++)Nh[a]._workInProgressVersionPrimary=null;Nh.length=0}var Ph=ua.ReactCurrentDispatcher,Qh=ua.ReactCurrentBatchConfig,Rh=0,N=null,O=null,P=null,Sh=!1,Th=!1,Uh=0,Vh=0;function Q(){throw Error(p(321));}function Wh(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!He(a[c],b[c]))return!1;return!0}\nfunction Xh(a,b,c,d,e,f){Rh=f;N=b;b.memoizedState=null;b.updateQueue=null;b.lanes=0;Ph.current=null===a||null===a.memoizedState?Yh:Zh;a=c(d,e);if(Th){f=0;do{Th=!1;Uh=0;if(25<=f)throw Error(p(301));f+=1;P=O=null;b.updateQueue=null;Ph.current=$h;a=c(d,e)}while(Th)}Ph.current=ai;b=null!==O&&null!==O.next;Rh=0;P=O=N=null;Sh=!1;if(b)throw Error(p(300));return a}function bi(){var a=0!==Uh;Uh=0;return a}\nfunction ci(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===P?N.memoizedState=P=a:P=P.next=a;return P}function di(){if(null===O){var a=N.alternate;a=null!==a?a.memoizedState:null}else a=O.next;var b=null===P?N.memoizedState:P.next;if(null!==b)P=b,O=a;else{if(null===a)throw Error(p(310));O=a;a={memoizedState:O.memoizedState,baseState:O.baseState,baseQueue:O.baseQueue,queue:O.queue,next:null};null===P?N.memoizedState=P=a:P=P.next=a}return P}\nfunction ei(a,b){return\"function\"===typeof b?b(a):b}\nfunction fi(a){var b=di(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=O,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){f=e.next;d=d.baseState;var h=g=null,k=null,l=f;do{var m=l.lane;if((Rh&m)===m)null!==k&&(k=k.next={lane:0,action:l.action,hasEagerState:l.hasEagerState,eagerState:l.eagerState,next:null}),d=l.hasEagerState?l.eagerState:a(d,l.action);else{var q={lane:m,action:l.action,hasEagerState:l.hasEagerState,\neagerState:l.eagerState,next:null};null===k?(h=k=q,g=d):k=k.next=q;N.lanes|=m;hh|=m}l=l.next}while(null!==l&&l!==f);null===k?g=d:k.next=h;He(d,b.memoizedState)||(Ug=!0);b.memoizedState=d;b.baseState=g;b.baseQueue=k;c.lastRenderedState=d}a=c.interleaved;if(null!==a){e=a;do f=e.lane,N.lanes|=f,hh|=f,e=e.next;while(e!==a)}else null===e&&(c.lanes=0);return[b.memoizedState,c.dispatch]}\nfunction gi(a){var b=di(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(Ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}function hi(){}\nfunction ii(a,b){var c=N,d=di(),e=b(),f=!He(d.memoizedState,e);f&&(d.memoizedState=e,Ug=!0);d=d.queue;ji(ki.bind(null,c,d,a),[a]);if(d.getSnapshot!==b||f||null!==P&&P.memoizedState.tag&1){c.flags|=2048;li(9,mi.bind(null,c,d,e,b),void 0,null);if(null===R)throw Error(p(349));0!==(Rh&30)||ni(c,b,e)}return e}function ni(a,b,c){a.flags|=16384;a={getSnapshot:b,value:c};b=N.updateQueue;null===b?(b={lastEffect:null,stores:null},N.updateQueue=b,b.stores=[a]):(c=b.stores,null===c?b.stores=[a]:c.push(a))}\nfunction mi(a,b,c,d){b.value=c;b.getSnapshot=d;oi(b)&&pi(a)}function ki(a,b,c){return c(function(){oi(b)&&pi(a)})}function oi(a){var b=a.getSnapshot;a=a.value;try{var c=b();return!He(a,c)}catch(d){return!0}}function pi(a){var b=Zg(a,1);null!==b&&mh(b,a,1,-1)}\nfunction qi(a){var b=ci();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:ei,lastRenderedState:a};b.queue=a;a=a.dispatch=ri.bind(null,N,a);return[b.memoizedState,a]}\nfunction li(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=N.updateQueue;null===b?(b={lastEffect:null,stores:null},N.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}function si(){return di().memoizedState}function ti(a,b,c,d){var e=ci();N.flags|=a;e.memoizedState=li(1|b,c,void 0,void 0===d?null:d)}\nfunction ui(a,b,c,d){var e=di();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&Wh(d,g.deps)){e.memoizedState=li(b,c,f,d);return}}N.flags|=a;e.memoizedState=li(1|b,c,f,d)}function vi(a,b){return ti(8390656,8,a,b)}function ji(a,b){return ui(2048,8,a,b)}function wi(a,b){return ui(4,2,a,b)}function xi(a,b){return ui(4,4,a,b)}\nfunction yi(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function zi(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ui(4,4,yi.bind(null,b,a),c)}function Ai(){}function Bi(a,b){var c=di();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Wh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Ci(a,b){var c=di();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Wh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function Di(a,b,c){if(0===(Rh&21))return a.baseState&&(a.baseState=!1,Ug=!0),a.memoizedState=c;He(c,b)||(c=yc(),N.lanes|=c,hh|=c,a.baseState=!0);return b}function Ei(a,b){var c=C;C=0!==c&&4>c?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0<c&&(b+=\"H\"+c.toString(32));b+=\":\"}else c=Vh++,b=\":\"+b+\"r\"+c.toString(32)+\":\";return a.memoizedState=b},unstable_isNewReconciler:!1},Zh={readContext:Vg,useCallback:Bi,useContext:Vg,useEffect:ji,useImperativeHandle:zi,useInsertionEffect:wi,useLayoutEffect:xi,useMemo:Ci,useReducer:fi,useRef:si,useState:function(){return fi(ei)},\nuseDebugValue:Ai,useDeferredValue:function(a){var b=di();return Di(b,O.memoizedState,a)},useTransition:function(){var a=fi(ei)[0],b=di().memoizedState;return[a,b]},useMutableSource:hi,useSyncExternalStore:ii,useId:Fi,unstable_isNewReconciler:!1},$h={readContext:Vg,useCallback:Bi,useContext:Vg,useEffect:ji,useImperativeHandle:zi,useInsertionEffect:wi,useLayoutEffect:xi,useMemo:Ci,useReducer:gi,useRef:si,useState:function(){return gi(ei)},useDebugValue:Ai,useDeferredValue:function(a){var b=di();return null===\nO?b.memoizedState=a:Di(b,O.memoizedState,a)},useTransition:function(){var a=gi(ei)[0],b=di().memoizedState;return[a,b]},useMutableSource:hi,useSyncExternalStore:ii,useId:Fi,unstable_isNewReconciler:!1};function Ki(a,b){try{var c=\"\",d=b;do c+=Pa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e,digest:null}}function Li(a,b,c){return{value:a,source:null,stack:null!=c?c:null,digest:null!=b?b:null}}\nfunction Mi(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Ni=\"function\"===typeof WeakMap?WeakMap:Map;function Oi(a,b,c){c=ch(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Pi||(Pi=!0,Qi=d);Mi(a,b)};return c}\nfunction Ri(a,b,c){c=ch(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){return d(e)};c.callback=function(){Mi(a,b)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){Mi(a,b);\"function\"!==typeof d&&(null===Si?Si=new Set([this]):Si.add(this));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}\nfunction Ti(a,b,c){var d=a.pingCache;if(null===d){d=a.pingCache=new Ni;var e=new Set;d.set(b,e)}else e=d.get(b),void 0===e&&(e=new Set,d.set(b,e));e.has(c)||(e.add(c),a=Ui.bind(null,a,b,c),b.then(a,a))}function Vi(a){do{var b;if(b=13===a.tag)b=a.memoizedState,b=null!==b?null!==b.dehydrated?!0:!1:!0;if(b)return a;a=a.return}while(null!==a);return null}\nfunction Wi(a,b,c,d,e){if(0===(a.mode&1))return a===b?a.flags|=65536:(a.flags|=128,c.flags|=131072,c.flags&=-52805,1===c.tag&&(null===c.alternate?c.tag=17:(b=ch(-1,1),b.tag=2,dh(c,b,1))),c.lanes|=1),a;a.flags|=65536;a.lanes=e;return a}var Xi=ua.ReactCurrentOwner,Ug=!1;function Yi(a,b,c,d){b.child=null===a?Ch(b,null,c,d):Bh(b,a.child,c,d)}\nfunction Zi(a,b,c,d,e){c=c.render;var f=b.ref;Tg(b,e);d=Xh(a,b,c,d,f,e);c=bi();if(null!==a&&!Ug)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,$i(a,b,e);I&&c&&vg(b);b.flags|=1;Yi(a,b,d,e);return b.child}\nfunction aj(a,b,c,d,e){if(null===a){var f=c.type;if(\"function\"===typeof f&&!bj(f)&&void 0===f.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=f,cj(a,b,f,d,e);a=yh(c.type,null,d,b,b.mode,e);a.ref=b.ref;a.return=b;return b.child=a}f=a.child;if(0===(a.lanes&e)){var g=f.memoizedProps;c=c.compare;c=null!==c?c:Ie;if(c(g,d)&&a.ref===b.ref)return $i(a,b,e)}b.flags|=1;a=wh(f,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction cj(a,b,c,d,e){if(null!==a){var f=a.memoizedProps;if(Ie(f,d)&&a.ref===b.ref)if(Ug=!1,b.pendingProps=d=f,0!==(a.lanes&e))0!==(a.flags&131072)&&(Ug=!0);else return b.lanes=a.lanes,$i(a,b,e)}return dj(a,b,c,d,e)}\nfunction ej(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if(\"hidden\"===d.mode)if(0===(b.mode&1))b.memoizedState={baseLanes:0,cachePool:null,transitions:null},G(fj,gj),gj|=c;else{if(0===(c&1073741824))return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a,cachePool:null,transitions:null},b.updateQueue=null,G(fj,gj),gj|=a,null;b.memoizedState={baseLanes:0,cachePool:null,transitions:null};d=null!==f?f.baseLanes:c;G(fj,gj);gj|=d}else null!==\nf?(d=f.baseLanes|c,b.memoizedState=null):d=c,G(fj,gj),gj|=d;Yi(a,b,e,c);return b.child}function hj(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=512,b.flags|=2097152}function dj(a,b,c,d,e){var f=Zf(c)?Xf:H.current;f=Yf(b,f);Tg(b,e);c=Xh(a,b,c,d,f,e);d=bi();if(null!==a&&!Ug)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,$i(a,b,e);I&&d&&vg(b);b.flags|=1;Yi(a,b,c,e);return b.child}\nfunction ij(a,b,c,d,e){if(Zf(c)){var f=!0;cg(b)}else f=!1;Tg(b,e);if(null===b.stateNode)jj(a,b),ph(b,c,d),rh(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=Vg(l):(l=Zf(c)?Xf:H.current,l=Yf(b,l));var m=c.getDerivedStateFromProps,q=\"function\"===typeof m||\"function\"===typeof g.getSnapshotBeforeUpdate;q||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||\n(h!==d||k!==l)&&qh(b,g,d,l);$g=!1;var r=b.memoizedState;g.state=r;gh(b,d,g,e);k=b.memoizedState;h!==d||r!==k||Wf.current||$g?(\"function\"===typeof m&&(kh(b,c,m,d),k=b.memoizedState),(h=$g||oh(b,c,h,d,r,k,l))?(q||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===typeof g.componentDidMount&&(b.flags|=4194308)):\n(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),d=!1)}else{g=b.stateNode;bh(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:Lg(b.type,h);g.props=l;q=b.pendingProps;r=g.context;k=c.contextType;\"object\"===typeof k&&null!==k?k=Vg(k):(k=Zf(c)?Xf:H.current,k=Yf(b,k));var y=c.getDerivedStateFromProps;(m=\"function\"===typeof y||\"function\"===typeof g.getSnapshotBeforeUpdate)||\n\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==q||r!==k)&&qh(b,g,d,k);$g=!1;r=b.memoizedState;g.state=r;gh(b,d,g,e);var n=b.memoizedState;h!==q||r!==n||Wf.current||$g?(\"function\"===typeof y&&(kh(b,c,y,d),n=b.memoizedState),(l=$g||oh(b,c,l,d,r,n,k)||!1)?(m||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,n,k),\"function\"===typeof g.UNSAFE_componentWillUpdate&&\ng.UNSAFE_componentWillUpdate(d,n,k)),\"function\"===typeof g.componentDidUpdate&&(b.flags|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=1024)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),b.memoizedProps=d,b.memoizedState=n),g.props=d,g.state=n,g.context=k,d=l):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===\na.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),d=!1)}return kj(a,b,c,d,f,e)}\nfunction kj(a,b,c,d,e,f){hj(a,b);var g=0!==(b.flags&128);if(!d&&!g)return e&&dg(b,c,!1),$i(a,b,f);d=b.stateNode;Xi.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=Bh(b,a.child,null,f),b.child=Bh(b,null,h,f)):Yi(a,b,h,f);b.memoizedState=d.state;e&&dg(b,c,!0);return b.child}function lj(a){var b=a.stateNode;b.pendingContext?ag(a,b.pendingContext,b.pendingContext!==b.context):b.context&&ag(a,b.context,!1);Ih(a,b.containerInfo)}\nfunction mj(a,b,c,d,e){Ig();Jg(e);b.flags|=256;Yi(a,b,c,d);return b.child}var nj={dehydrated:null,treeContext:null,retryLane:0};function oj(a){return{baseLanes:a,cachePool:null,transitions:null}}\nfunction pj(a,b,c){var d=b.pendingProps,e=M.current,f=!1,g=0!==(b.flags&128),h;(h=g)||(h=null!==a&&null===a.memoizedState?!1:0!==(e&2));if(h)f=!0,b.flags&=-129;else if(null===a||null!==a.memoizedState)e|=1;G(M,e&1);if(null===a){Eg(b);a=b.memoizedState;if(null!==a&&(a=a.dehydrated,null!==a))return 0===(b.mode&1)?b.lanes=1:\"$!\"===a.data?b.lanes=8:b.lanes=1073741824,null;g=d.children;a=d.fallback;return f?(d=b.mode,f=b.child,g={mode:\"hidden\",children:g},0===(d&1)&&null!==f?(f.childLanes=0,f.pendingProps=\ng):f=qj(g,d,0,null),a=Ah(a,d,c,null),f.return=b,a.return=b,f.sibling=a,b.child=f,b.child.memoizedState=oj(c),b.memoizedState=nj,a):rj(b,g)}e=a.memoizedState;if(null!==e&&(h=e.dehydrated,null!==h))return sj(a,b,g,d,h,e,c);if(f){f=d.fallback;g=b.mode;e=a.child;h=e.sibling;var k={mode:\"hidden\",children:d.children};0===(g&1)&&b.child!==e?(d=b.child,d.childLanes=0,d.pendingProps=k,b.deletions=null):(d=wh(e,k),d.subtreeFlags=e.subtreeFlags&14680064);null!==h?f=wh(h,f):(f=Ah(f,g,c,null),f.flags|=2);f.return=\nb;d.return=b;d.sibling=f;b.child=d;d=f;f=b.child;g=a.child.memoizedState;g=null===g?oj(c):{baseLanes:g.baseLanes|c,cachePool:null,transitions:g.transitions};f.memoizedState=g;f.childLanes=a.childLanes&~c;b.memoizedState=nj;return d}f=a.child;a=f.sibling;d=wh(f,{mode:\"visible\",children:d.children});0===(b.mode&1)&&(d.lanes=c);d.return=b;d.sibling=null;null!==a&&(c=b.deletions,null===c?(b.deletions=[a],b.flags|=16):c.push(a));b.child=d;b.memoizedState=null;return d}\nfunction rj(a,b){b=qj({mode:\"visible\",children:b},a.mode,0,null);b.return=a;return a.child=b}function tj(a,b,c,d){null!==d&&Jg(d);Bh(b,a.child,null,c);a=rj(b,b.pendingProps.children);a.flags|=2;b.memoizedState=null;return a}\nfunction sj(a,b,c,d,e,f,g){if(c){if(b.flags&256)return b.flags&=-257,d=Li(Error(p(422))),tj(a,b,g,d);if(null!==b.memoizedState)return b.child=a.child,b.flags|=128,null;f=d.fallback;e=b.mode;d=qj({mode:\"visible\",children:d.children},e,0,null);f=Ah(f,e,g,null);f.flags|=2;d.return=b;f.return=b;d.sibling=f;b.child=d;0!==(b.mode&1)&&Bh(b,a.child,null,g);b.child.memoizedState=oj(g);b.memoizedState=nj;return f}if(0===(b.mode&1))return tj(a,b,g,null);if(\"$!\"===e.data){d=e.nextSibling&&e.nextSibling.dataset;\nif(d)var h=d.dgst;d=h;f=Error(p(419));d=Li(f,d,void 0);return tj(a,b,g,d)}h=0!==(g&a.childLanes);if(Ug||h){d=R;if(null!==d){switch(g&-g){case 4:e=2;break;case 16:e=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:e=32;break;case 536870912:e=268435456;break;default:e=0}e=0!==(e&(d.suspendedLanes|g))?0:e;\n0!==e&&e!==f.retryLane&&(f.retryLane=e,Zg(a,e),mh(d,a,e,-1))}uj();d=Li(Error(p(421)));return tj(a,b,g,d)}if(\"$?\"===e.data)return b.flags|=128,b.child=a.child,b=vj.bind(null,a),e._reactRetry=b,null;a=f.treeContext;yg=Lf(e.nextSibling);xg=b;I=!0;zg=null;null!==a&&(og[pg++]=rg,og[pg++]=sg,og[pg++]=qg,rg=a.id,sg=a.overflow,qg=b);b=rj(b,d.children);b.flags|=4096;return b}function wj(a,b,c){a.lanes|=b;var d=a.alternate;null!==d&&(d.lanes|=b);Sg(a.return,b,c)}\nfunction xj(a,b,c,d,e){var f=a.memoizedState;null===f?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e}:(f.isBackwards=b,f.rendering=null,f.renderingStartTime=0,f.last=d,f.tail=c,f.tailMode=e)}\nfunction yj(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;Yi(a,b,d.children,c);d=M.current;if(0!==(d&2))d=d&1|2,b.flags|=128;else{if(null!==a&&0!==(a.flags&128))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&wj(a,c,b);else if(19===a.tag)wj(a,c,b);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}G(M,d);if(0===(b.mode&1))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===Mh(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);xj(b,!1,e,c,f);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===Mh(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}xj(b,!0,c,null,f);break;case \"together\":xj(b,!1,null,null,void 0);break;default:b.memoizedState=null}return b.child}\nfunction jj(a,b){0===(b.mode&1)&&null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2)}function $i(a,b,c){null!==a&&(b.dependencies=a.dependencies);hh|=b.lanes;if(0===(c&b.childLanes))return null;if(null!==a&&b.child!==a.child)throw Error(p(153));if(null!==b.child){a=b.child;c=wh(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=wh(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}\nfunction zj(a,b,c){switch(b.tag){case 3:lj(b);Ig();break;case 5:Kh(b);break;case 1:Zf(b.type)&&cg(b);break;case 4:Ih(b,b.stateNode.containerInfo);break;case 10:var d=b.type._context,e=b.memoizedProps.value;G(Mg,d._currentValue);d._currentValue=e;break;case 13:d=b.memoizedState;if(null!==d){if(null!==d.dehydrated)return G(M,M.current&1),b.flags|=128,null;if(0!==(c&b.child.childLanes))return pj(a,b,c);G(M,M.current&1);a=$i(a,b,c);return null!==a?a.sibling:null}G(M,M.current&1);break;case 19:d=0!==(c&\nb.childLanes);if(0!==(a.flags&128)){if(d)return yj(a,b,c);b.flags|=128}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);G(M,M.current);if(d)break;else return null;case 22:case 23:return b.lanes=0,ej(a,b,c)}return $i(a,b,c)}var Aj,Bj,Cj,Dj;\nAj=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};Bj=function(){};\nCj=function(a,b,c,d){var e=a.memoizedProps;if(e!==d){a=b.stateNode;Hh(Eh.current);var f=null;switch(c){case \"input\":e=Ya(a,e);d=Ya(a,d);f=[];break;case \"select\":e=A({},e,{value:void 0});d=A({},d,{value:void 0});f=[];break;case \"textarea\":e=gb(a,e);d=gb(a,d);f=[];break;default:\"function\"!==typeof e.onClick&&\"function\"===typeof d.onClick&&(a.onclick=Bf)}ub(c,d);var g;c=null;for(l in e)if(!d.hasOwnProperty(l)&&e.hasOwnProperty(l)&&null!=e[l])if(\"style\"===l){var h=e[l];for(g in h)h.hasOwnProperty(g)&&\n(c||(c={}),c[g]=\"\")}else\"dangerouslySetInnerHTML\"!==l&&\"children\"!==l&&\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&\"autoFocus\"!==l&&(ea.hasOwnProperty(l)?f||(f=[]):(f=f||[]).push(l,null));for(l in d){var k=d[l];h=null!=e?e[l]:void 0;if(d.hasOwnProperty(l)&&k!==h&&(null!=k||null!=h))if(\"style\"===l)if(h){for(g in h)!h.hasOwnProperty(g)||k&&k.hasOwnProperty(g)||(c||(c={}),c[g]=\"\");for(g in k)k.hasOwnProperty(g)&&h[g]!==k[g]&&(c||(c={}),c[g]=k[g])}else c||(f||(f=[]),f.push(l,\nc)),c=k;else\"dangerouslySetInnerHTML\"===l?(k=k?k.__html:void 0,h=h?h.__html:void 0,null!=k&&h!==k&&(f=f||[]).push(l,k)):\"children\"===l?\"string\"!==typeof k&&\"number\"!==typeof k||(f=f||[]).push(l,\"\"+k):\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&(ea.hasOwnProperty(l)?(null!=k&&\"onScroll\"===l&&D(\"scroll\",a),f||h===k||(f=[])):(f=f||[]).push(l,k))}c&&(f=f||[]).push(\"style\",c);var l=f;if(b.updateQueue=l)b.flags|=4}};Dj=function(a,b,c,d){c!==d&&(b.flags|=4)};\nfunction Ej(a,b){if(!I)switch(a.tailMode){case \"hidden\":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case \"collapsed\":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}\nfunction S(a){var b=null!==a.alternate&&a.alternate.child===a.child,c=0,d=0;if(b)for(var e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags&14680064,d|=e.flags&14680064,e.return=a,e=e.sibling;else for(e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags,d|=e.flags,e.return=a,e=e.sibling;a.subtreeFlags|=d;a.childLanes=c;return b}\nfunction Fj(a,b,c){var d=b.pendingProps;wg(b);switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return S(b),null;case 1:return Zf(b.type)&&$f(),S(b),null;case 3:d=b.stateNode;Jh();E(Wf);E(H);Oh();d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null);if(null===a||null===a.child)Gg(b)?b.flags|=4:null===a||a.memoizedState.isDehydrated&&0===(b.flags&256)||(b.flags|=1024,null!==zg&&(Gj(zg),zg=null));Bj(a,b);S(b);return null;case 5:Lh(b);var e=Hh(Gh.current);\nc=b.type;if(null!==a&&null!=b.stateNode)Cj(a,b,c,d,e),a.ref!==b.ref&&(b.flags|=512,b.flags|=2097152);else{if(!d){if(null===b.stateNode)throw Error(p(166));S(b);return null}a=Hh(Eh.current);if(Gg(b)){d=b.stateNode;c=b.type;var f=b.memoizedProps;d[Of]=b;d[Pf]=f;a=0!==(b.mode&1);switch(c){case \"dialog\":D(\"cancel\",d);D(\"close\",d);break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",d);break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],d);break;case \"source\":D(\"error\",d);break;case \"img\":case \"image\":case \"link\":D(\"error\",\nd);D(\"load\",d);break;case \"details\":D(\"toggle\",d);break;case \"input\":Za(d,f);D(\"invalid\",d);break;case \"select\":d._wrapperState={wasMultiple:!!f.multiple};D(\"invalid\",d);break;case \"textarea\":hb(d,f),D(\"invalid\",d)}ub(c,f);e=null;for(var g in f)if(f.hasOwnProperty(g)){var h=f[g];\"children\"===g?\"string\"===typeof h?d.textContent!==h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,h,a),e=[\"children\",h]):\"number\"===typeof h&&d.textContent!==\"\"+h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,\nh,a),e=[\"children\",\"\"+h]):ea.hasOwnProperty(g)&&null!=h&&\"onScroll\"===g&&D(\"scroll\",d)}switch(c){case \"input\":Va(d);db(d,f,!0);break;case \"textarea\":Va(d);jb(d);break;case \"select\":case \"option\":break;default:\"function\"===typeof f.onClick&&(d.onclick=Bf)}d=e;b.updateQueue=d;null!==d&&(b.flags|=4)}else{g=9===e.nodeType?e:e.ownerDocument;\"http://www.w3.org/1999/xhtml\"===a&&(a=kb(c));\"http://www.w3.org/1999/xhtml\"===a?\"script\"===c?(a=g.createElement(\"div\"),a.innerHTML=\"<script>\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],a);e=d;break;case \"source\":D(\"error\",a);e=d;break;case \"img\":case \"image\":case \"link\":D(\"error\",\na);D(\"load\",a);e=d;break;case \"details\":D(\"toggle\",a);e=d;break;case \"input\":Za(a,d);e=Ya(a,d);D(\"invalid\",a);break;case \"option\":e=d;break;case \"select\":a._wrapperState={wasMultiple:!!d.multiple};e=A({},d,{value:void 0});D(\"invalid\",a);break;case \"textarea\":hb(a,d);e=gb(a,d);D(\"invalid\",a);break;default:e=d}ub(c,e);h=e;for(f in h)if(h.hasOwnProperty(f)){var k=h[f];\"style\"===f?sb(a,k):\"dangerouslySetInnerHTML\"===f?(k=k?k.__html:void 0,null!=k&&nb(a,k)):\"children\"===f?\"string\"===typeof k?(\"textarea\"!==\nc||\"\"!==k)&&ob(a,k):\"number\"===typeof k&&ob(a,\"\"+k):\"suppressContentEditableWarning\"!==f&&\"suppressHydrationWarning\"!==f&&\"autoFocus\"!==f&&(ea.hasOwnProperty(f)?null!=k&&\"onScroll\"===f&&D(\"scroll\",a):null!=k&&ta(a,f,k,g))}switch(c){case \"input\":Va(a);db(a,d,!1);break;case \"textarea\":Va(a);jb(a);break;case \"option\":null!=d.value&&a.setAttribute(\"value\",\"\"+Sa(d.value));break;case \"select\":a.multiple=!!d.multiple;f=d.value;null!=f?fb(a,!!d.multiple,f,!1):null!=d.defaultValue&&fb(a,!!d.multiple,d.defaultValue,\n!0);break;default:\"function\"===typeof e.onClick&&(a.onclick=Bf)}switch(c){case \"button\":case \"input\":case \"select\":case \"textarea\":d=!!d.autoFocus;break a;case \"img\":d=!0;break a;default:d=!1}}d&&(b.flags|=4)}null!==b.ref&&(b.flags|=512,b.flags|=2097152)}S(b);return null;case 6:if(a&&null!=b.stateNode)Dj(a,b,a.memoizedProps,d);else{if(\"string\"!==typeof d&&null===b.stateNode)throw Error(p(166));c=Hh(Gh.current);Hh(Eh.current);if(Gg(b)){d=b.stateNode;c=b.memoizedProps;d[Of]=b;if(f=d.nodeValue!==c)if(a=\nxg,null!==a)switch(a.tag){case 3:Af(d.nodeValue,c,0!==(a.mode&1));break;case 5:!0!==a.memoizedProps.suppressHydrationWarning&&Af(d.nodeValue,c,0!==(a.mode&1))}f&&(b.flags|=4)}else d=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),d[Of]=b,b.stateNode=d}S(b);return null;case 13:E(M);d=b.memoizedState;if(null===a||null!==a.memoizedState&&null!==a.memoizedState.dehydrated){if(I&&null!==yg&&0!==(b.mode&1)&&0===(b.flags&128))Hg(),Ig(),b.flags|=98560,f=!1;else if(f=Gg(b),null!==d&&null!==d.dehydrated){if(null===\na){if(!f)throw Error(p(318));f=b.memoizedState;f=null!==f?f.dehydrated:null;if(!f)throw Error(p(317));f[Of]=b}else Ig(),0===(b.flags&128)&&(b.memoizedState=null),b.flags|=4;S(b);f=!1}else null!==zg&&(Gj(zg),zg=null),f=!0;if(!f)return b.flags&65536?b:null}if(0!==(b.flags&128))return b.lanes=c,b;d=null!==d;d!==(null!==a&&null!==a.memoizedState)&&d&&(b.child.flags|=8192,0!==(b.mode&1)&&(null===a||0!==(M.current&1)?0===T&&(T=3):uj()));null!==b.updateQueue&&(b.flags|=4);S(b);return null;case 4:return Jh(),\nBj(a,b),null===a&&sf(b.stateNode.containerInfo),S(b),null;case 10:return Rg(b.type._context),S(b),null;case 17:return Zf(b.type)&&$f(),S(b),null;case 19:E(M);f=b.memoizedState;if(null===f)return S(b),null;d=0!==(b.flags&128);g=f.rendering;if(null===g)if(d)Ej(f,!1);else{if(0!==T||null!==a&&0!==(a.flags&128))for(a=b.child;null!==a;){g=Mh(a);if(null!==g){b.flags|=128;Ej(f,!1);d=g.updateQueue;null!==d&&(b.updateQueue=d,b.flags|=4);b.subtreeFlags=0;d=c;for(c=b.child;null!==c;)f=c,a=d,f.flags&=14680066,\ng=f.alternate,null===g?(f.childLanes=0,f.lanes=a,f.child=null,f.subtreeFlags=0,f.memoizedProps=null,f.memoizedState=null,f.updateQueue=null,f.dependencies=null,f.stateNode=null):(f.childLanes=g.childLanes,f.lanes=g.lanes,f.child=g.child,f.subtreeFlags=0,f.deletions=null,f.memoizedProps=g.memoizedProps,f.memoizedState=g.memoizedState,f.updateQueue=g.updateQueue,f.type=g.type,a=g.dependencies,f.dependencies=null===a?null:{lanes:a.lanes,firstContext:a.firstContext}),c=c.sibling;G(M,M.current&1|2);return b.child}a=\na.sibling}null!==f.tail&&B()>Hj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;d<c.length;d++){var e=c[d];try{var f=a,g=b,h=g;a:for(;null!==h;){switch(h.tag){case 5:X=h.stateNode;Yj=!1;break a;case 3:X=h.stateNode.containerInfo;Yj=!0;break a;case 4:X=h.stateNode.containerInfo;Yj=!0;break a}h=h.return}if(null===X)throw Error(p(160));ak(f,g,e);X=null;Yj=!1;var k=e.alternate;null!==k&&(k.return=null);e.return=null}catch(l){W(e,b,l)}}if(b.subtreeFlags&12854)for(b=b.child;null!==b;)ek(b,a),b=b.sibling}\nfunction ek(a,b){var c=a.alternate,d=a.flags;switch(a.tag){case 0:case 11:case 14:case 15:dk(b,a);fk(a);if(d&4){try{Qj(3,a,a.return),Rj(3,a)}catch(t){W(a,a.return,t)}try{Qj(5,a,a.return)}catch(t){W(a,a.return,t)}}break;case 1:dk(b,a);fk(a);d&512&&null!==c&&Mj(c,c.return);break;case 5:dk(b,a);fk(a);d&512&&null!==c&&Mj(c,c.return);if(a.flags&32){var e=a.stateNode;try{ob(e,\"\")}catch(t){W(a,a.return,t)}}if(d&4&&(e=a.stateNode,null!=e)){var f=a.memoizedProps,g=null!==c?c.memoizedProps:f,h=a.type,k=a.updateQueue;\na.updateQueue=null;if(null!==k)try{\"input\"===h&&\"radio\"===f.type&&null!=f.name&&ab(e,f);vb(h,g);var l=vb(h,f);for(g=0;g<k.length;g+=2){var m=k[g],q=k[g+1];\"style\"===m?sb(e,q):\"dangerouslySetInnerHTML\"===m?nb(e,q):\"children\"===m?ob(e,q):ta(e,m,q,l)}switch(h){case \"input\":bb(e,f);break;case \"textarea\":ib(e,f);break;case \"select\":var r=e._wrapperState.wasMultiple;e._wrapperState.wasMultiple=!!f.multiple;var y=f.value;null!=y?fb(e,!!f.multiple,y,!1):r!==!!f.multiple&&(null!=f.defaultValue?fb(e,!!f.multiple,\nf.defaultValue,!0):fb(e,!!f.multiple,f.multiple?[]:\"\",!1))}e[Pf]=f}catch(t){W(a,a.return,t)}}break;case 6:dk(b,a);fk(a);if(d&4){if(null===a.stateNode)throw Error(p(162));e=a.stateNode;f=a.memoizedProps;try{e.nodeValue=f}catch(t){W(a,a.return,t)}}break;case 3:dk(b,a);fk(a);if(d&4&&null!==c&&c.memoizedState.isDehydrated)try{bd(b.containerInfo)}catch(t){W(a,a.return,t)}break;case 4:dk(b,a);fk(a);break;case 13:dk(b,a);fk(a);e=a.child;e.flags&8192&&(f=null!==e.memoizedState,e.stateNode.isHidden=f,!f||\nnull!==e.alternate&&null!==e.alternate.memoizedState||(gk=B()));d&4&&bk(a);break;case 22:m=null!==c&&null!==c.memoizedState;a.mode&1?(U=(l=U)||m,dk(b,a),U=l):dk(b,a);fk(a);if(d&8192){l=null!==a.memoizedState;if((a.stateNode.isHidden=l)&&!m&&0!==(a.mode&1))for(V=a,m=a.child;null!==m;){for(q=V=m;null!==V;){r=V;y=r.child;switch(r.tag){case 0:case 11:case 14:case 15:Qj(4,r,r.return);break;case 1:Mj(r,r.return);var n=r.stateNode;if(\"function\"===typeof n.componentWillUnmount){d=r;c=r.return;try{b=d,n.props=\nb.memoizedProps,n.state=b.memoizedState,n.componentWillUnmount()}catch(t){W(d,c,t)}}break;case 5:Mj(r,r.return);break;case 22:if(null!==r.memoizedState){hk(q);continue}}null!==y?(y.return=r,V=y):hk(q)}m=m.sibling}a:for(m=null,q=a;;){if(5===q.tag){if(null===m){m=q;try{e=q.stateNode,l?(f=e.style,\"function\"===typeof f.setProperty?f.setProperty(\"display\",\"none\",\"important\"):f.display=\"none\"):(h=q.stateNode,k=q.memoizedProps.style,g=void 0!==k&&null!==k&&k.hasOwnProperty(\"display\")?k.display:null,h.style.display=\nrb(\"display\",g))}catch(t){W(a,a.return,t)}}}else if(6===q.tag){if(null===m)try{q.stateNode.nodeValue=l?\"\":q.memoizedProps}catch(t){W(a,a.return,t)}}else if((22!==q.tag&&23!==q.tag||null===q.memoizedState||q===a)&&null!==q.child){q.child.return=q;q=q.child;continue}if(q===a)break a;for(;null===q.sibling;){if(null===q.return||q.return===a)break a;m===q&&(m=null);q=q.return}m===q&&(m=null);q.sibling.return=q.return;q=q.sibling}}break;case 19:dk(b,a);fk(a);d&4&&bk(a);break;case 21:break;default:dk(b,\na),fk(a)}}function fk(a){var b=a.flags;if(b&2){try{a:{for(var c=a.return;null!==c;){if(Uj(c)){var d=c;break a}c=c.return}throw Error(p(160));}switch(d.tag){case 5:var e=d.stateNode;d.flags&32&&(ob(e,\"\"),d.flags&=-33);var f=Vj(a);Xj(a,f,e);break;case 3:case 4:var g=d.stateNode.containerInfo,h=Vj(a);Wj(a,h,g);break;default:throw Error(p(161));}}catch(k){W(a,a.return,k)}a.flags&=-3}b&4096&&(a.flags&=-4097)}function ik(a,b,c){V=a;jk(a,b,c)}\nfunction jk(a,b,c){for(var d=0!==(a.mode&1);null!==V;){var e=V,f=e.child;if(22===e.tag&&d){var g=null!==e.memoizedState||Kj;if(!g){var h=e.alternate,k=null!==h&&null!==h.memoizedState||U;h=Kj;var l=U;Kj=g;if((U=k)&&!l)for(V=e;null!==V;)g=V,k=g.child,22===g.tag&&null!==g.memoizedState?kk(e):null!==k?(k.return=g,V=k):kk(e);for(;null!==f;)V=f,jk(f,b,c),f=f.sibling;V=e;Kj=h;U=l}lk(a,b,c)}else 0!==(e.subtreeFlags&8772)&&null!==f?(f.return=e,V=f):lk(a,b,c)}}\nfunction lk(a){for(;null!==V;){var b=V;if(0!==(b.flags&8772)){var c=b.alternate;try{if(0!==(b.flags&8772))switch(b.tag){case 0:case 11:case 15:U||Rj(5,b);break;case 1:var d=b.stateNode;if(b.flags&4&&!U)if(null===c)d.componentDidMount();else{var e=b.elementType===b.type?c.memoizedProps:Lg(b.type,c.memoizedProps);d.componentDidUpdate(e,c.memoizedState,d.__reactInternalSnapshotBeforeUpdate)}var f=b.updateQueue;null!==f&&ih(b,f,d);break;case 3:var g=b.updateQueue;if(null!==g){c=null;if(null!==b.child)switch(b.child.tag){case 5:c=\nb.child.stateNode;break;case 1:c=b.child.stateNode}ih(b,g,c)}break;case 5:var h=b.stateNode;if(null===c&&b.flags&4){c=h;var k=b.memoizedProps;switch(b.type){case \"button\":case \"input\":case \"select\":case \"textarea\":k.autoFocus&&c.focus();break;case \"img\":k.src&&(c.src=k.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(null===b.memoizedState){var l=b.alternate;if(null!==l){var m=l.memoizedState;if(null!==m){var q=m.dehydrated;null!==q&&bd(q)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;\ndefault:throw Error(p(163));}U||b.flags&512&&Sj(b)}catch(r){W(b,b.return,r)}}if(b===a){V=null;break}c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}function hk(a){for(;null!==V;){var b=V;if(b===a){V=null;break}var c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}\nfunction kk(a){for(;null!==V;){var b=V;try{switch(b.tag){case 0:case 11:case 15:var c=b.return;try{Rj(4,b)}catch(k){W(b,c,k)}break;case 1:var d=b.stateNode;if(\"function\"===typeof d.componentDidMount){var e=b.return;try{d.componentDidMount()}catch(k){W(b,e,k)}}var f=b.return;try{Sj(b)}catch(k){W(b,f,k)}break;case 5:var g=b.return;try{Sj(b)}catch(k){W(b,g,k)}}}catch(k){W(b,b.return,k)}if(b===a){V=null;break}var h=b.sibling;if(null!==h){h.return=b.return;V=h;break}V=b.return}}\nvar mk=Math.ceil,nk=ua.ReactCurrentDispatcher,ok=ua.ReactCurrentOwner,pk=ua.ReactCurrentBatchConfig,K=0,R=null,Y=null,Z=0,gj=0,fj=Uf(0),T=0,qk=null,hh=0,rk=0,sk=0,tk=null,uk=null,gk=0,Hj=Infinity,vk=null,Pi=!1,Qi=null,Si=null,wk=!1,xk=null,yk=0,zk=0,Ak=null,Bk=-1,Ck=0;function L(){return 0!==(K&6)?B():-1!==Bk?Bk:Bk=B()}\nfunction lh(a){if(0===(a.mode&1))return 1;if(0!==(K&2)&&0!==Z)return Z&-Z;if(null!==Kg.transition)return 0===Ck&&(Ck=yc()),Ck;a=C;if(0!==a)return a;a=window.event;a=void 0===a?16:jd(a.type);return a}function mh(a,b,c,d){if(50<zk)throw zk=0,Ak=null,Error(p(185));Ac(a,c,d);if(0===(K&2)||a!==R)a===R&&(0===(K&2)&&(rk|=c),4===T&&Dk(a,Z)),Ek(a,d),1===c&&0===K&&0===(b.mode&1)&&(Hj=B()+500,fg&&jg())}\nfunction Ek(a,b){var c=a.callbackNode;wc(a,b);var d=uc(a,a===R?Z:0);if(0===d)null!==c&&bc(c),a.callbackNode=null,a.callbackPriority=0;else if(b=d&-d,a.callbackPriority!==b){null!=c&&bc(c);if(1===b)0===a.tag?ig(Fk.bind(null,a)):hg(Fk.bind(null,a)),Jf(function(){0===(K&6)&&jg()}),c=null;else{switch(Dc(d)){case 1:c=fc;break;case 4:c=gc;break;case 16:c=hc;break;case 536870912:c=jc;break;default:c=hc}c=Gk(c,Hk.bind(null,a))}a.callbackPriority=b;a.callbackNode=c}}\nfunction Hk(a,b){Bk=-1;Ck=0;if(0!==(K&6))throw Error(p(327));var c=a.callbackNode;if(Ik()&&a.callbackNode!==c)return null;var d=uc(a,a===R?Z:0);if(0===d)return null;if(0!==(d&30)||0!==(d&a.expiredLanes)||b)b=Jk(a,d);else{b=d;var e=K;K|=2;var f=Kk();if(R!==a||Z!==b)vk=null,Hj=B()+500,Lk(a,b);do try{Mk();break}catch(h){Nk(a,h)}while(1);Qg();nk.current=f;K=e;null!==Y?b=0:(R=null,Z=0,b=T)}if(0!==b){2===b&&(e=xc(a),0!==e&&(d=e,b=Ok(a,e)));if(1===b)throw c=qk,Lk(a,0),Dk(a,d),Ek(a,B()),c;if(6===b)Dk(a,d);\nelse{e=a.current.alternate;if(0===(d&30)&&!Pk(e)&&(b=Jk(a,d),2===b&&(f=xc(a),0!==f&&(d=f,b=Ok(a,f))),1===b))throw c=qk,Lk(a,0),Dk(a,d),Ek(a,B()),c;a.finishedWork=e;a.finishedLanes=d;switch(b){case 0:case 1:throw Error(p(345));case 2:Qk(a,uk,vk);break;case 3:Dk(a,d);if((d&130023424)===d&&(b=gk+500-B(),10<b)){if(0!==uc(a,0))break;e=a.suspendedLanes;if((e&d)!==d){L();a.pingedLanes|=a.suspendedLanes&e;break}a.timeoutHandle=Ff(Qk.bind(null,a,uk,vk),b);break}Qk(a,uk,vk);break;case 4:Dk(a,d);if((d&4194240)===\nd)break;b=a.eventTimes;for(e=-1;0<d;){var g=31-oc(d);f=1<<g;g=b[g];g>e&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10<d){a.timeoutHandle=Ff(Qk.bind(null,a,uk,vk),d);break}Qk(a,uk,vk);break;case 5:Qk(a,uk,vk);break;default:throw Error(p(329));}}}Ek(a,B());return a.callbackNode===c?Hk.bind(null,a):null}\nfunction Ok(a,b){var c=tk;a.current.memoizedState.isDehydrated&&(Lk(a,b).flags|=256);a=Jk(a,b);2!==a&&(b=uk,uk=c,null!==b&&Gj(b));return a}function Gj(a){null===uk?uk=a:uk.push.apply(uk,a)}\nfunction Pk(a){for(var b=a;;){if(b.flags&16384){var c=b.updateQueue;if(null!==c&&(c=c.stores,null!==c))for(var d=0;d<c.length;d++){var e=c[d],f=e.getSnapshot;e=e.value;try{if(!He(f(),e))return!1}catch(g){return!1}}}c=b.child;if(b.subtreeFlags&16384&&null!==c)c.return=b,b=c;else{if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return!0;b=b.return}b.sibling.return=b.return;b=b.sibling}}return!0}\nfunction Dk(a,b){b&=~sk;b&=~rk;a.suspendedLanes|=b;a.pingedLanes&=~b;for(a=a.expirationTimes;0<b;){var c=31-oc(b),d=1<<c;a[c]=-1;b&=~d}}function Fk(a){if(0!==(K&6))throw Error(p(327));Ik();var b=uc(a,0);if(0===(b&1))return Ek(a,B()),null;var c=Jk(a,b);if(0!==a.tag&&2===c){var d=xc(a);0!==d&&(b=d,c=Ok(a,d))}if(1===c)throw c=qk,Lk(a,0),Dk(a,b),Ek(a,B()),c;if(6===c)throw Error(p(345));a.finishedWork=a.current.alternate;a.finishedLanes=b;Qk(a,uk,vk);Ek(a,B());return null}\nfunction Rk(a,b){var c=K;K|=1;try{return a(b)}finally{K=c,0===K&&(Hj=B()+500,fg&&jg())}}function Sk(a){null!==xk&&0===xk.tag&&0===(K&6)&&Ik();var b=K;K|=1;var c=pk.transition,d=C;try{if(pk.transition=null,C=1,a)return a()}finally{C=d,pk.transition=c,K=b,0===(K&6)&&jg()}}function Ij(){gj=fj.current;E(fj)}\nfunction Lk(a,b){a.finishedWork=null;a.finishedLanes=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,Gf(c));if(null!==Y)for(c=Y.return;null!==c;){var d=c;wg(d);switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&$f();break;case 3:Jh();E(Wf);E(H);Oh();break;case 5:Lh(d);break;case 4:Jh();break;case 13:E(M);break;case 19:E(M);break;case 10:Rg(d.type._context);break;case 22:case 23:Ij()}c=c.return}R=a;Y=a=wh(a.current,null);Z=gj=b;T=0;qk=null;sk=rk=hh=0;uk=tk=null;if(null!==Wg){for(b=\n0;b<Wg.length;b++)if(c=Wg[b],d=c.interleaved,null!==d){c.interleaved=null;var e=d.next,f=c.pending;if(null!==f){var g=f.next;f.next=e;d.next=g}c.pending=d}Wg=null}return a}\nfunction Nk(a,b){do{var c=Y;try{Qg();Ph.current=ai;if(Sh){for(var d=N.memoizedState;null!==d;){var e=d.queue;null!==e&&(e.pending=null);d=d.next}Sh=!1}Rh=0;P=O=N=null;Th=!1;Uh=0;ok.current=null;if(null===c||null===c.return){T=1;qk=b;Y=null;break}a:{var f=a,g=c.return,h=c,k=b;b=Z;h.flags|=32768;if(null!==k&&\"object\"===typeof k&&\"function\"===typeof k.then){var l=k,m=h,q=m.tag;if(0===(m.mode&1)&&(0===q||11===q||15===q)){var r=m.alternate;r?(m.updateQueue=r.updateQueue,m.memoizedState=r.memoizedState,\nm.lanes=r.lanes):(m.updateQueue=null,m.memoizedState=null)}var y=Vi(g);if(null!==y){y.flags&=-257;Wi(y,g,h,f,b);y.mode&1&&Ti(f,l,b);b=y;k=l;var n=b.updateQueue;if(null===n){var t=new Set;t.add(k);b.updateQueue=t}else n.add(k);break a}else{if(0===(b&1)){Ti(f,l,b);uj();break a}k=Error(p(426))}}else if(I&&h.mode&1){var J=Vi(g);if(null!==J){0===(J.flags&65536)&&(J.flags|=256);Wi(J,g,h,f,b);Jg(Ki(k,h));break a}}f=k=Ki(k,h);4!==T&&(T=2);null===tk?tk=[f]:tk.push(f);f=g;do{switch(f.tag){case 3:f.flags|=65536;\nb&=-b;f.lanes|=b;var x=Oi(f,k,b);fh(f,x);break a;case 1:h=k;var w=f.type,u=f.stateNode;if(0===(f.flags&128)&&(\"function\"===typeof w.getDerivedStateFromError||null!==u&&\"function\"===typeof u.componentDidCatch&&(null===Si||!Si.has(u)))){f.flags|=65536;b&=-b;f.lanes|=b;var F=Ri(f,h,b);fh(f,F);break a}}f=f.return}while(null!==f)}Tk(c)}catch(na){b=na;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}function Kk(){var a=nk.current;nk.current=ai;return null===a?ai:a}\nfunction uj(){if(0===T||3===T||2===T)T=4;null===R||0===(hh&268435455)&&0===(rk&268435455)||Dk(R,Z)}function Jk(a,b){var c=K;K|=2;var d=Kk();if(R!==a||Z!==b)vk=null,Lk(a,b);do try{Uk();break}catch(e){Nk(a,e)}while(1);Qg();K=c;nk.current=d;if(null!==Y)throw Error(p(261));R=null;Z=0;return T}function Uk(){for(;null!==Y;)Vk(Y)}function Mk(){for(;null!==Y&&!cc();)Vk(Y)}function Vk(a){var b=Wk(a.alternate,a,gj);a.memoizedProps=a.pendingProps;null===b?Tk(a):Y=b;ok.current=null}\nfunction Tk(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&32768)){if(c=Fj(c,b,gj),null!==c){Y=c;return}}else{c=Jj(c,b);if(null!==c){c.flags&=32767;Y=c;return}if(null!==a)a.flags|=32768,a.subtreeFlags=0,a.deletions=null;else{T=6;Y=null;return}}b=b.sibling;if(null!==b){Y=b;return}Y=b=a}while(null!==b);0===T&&(T=5)}function Qk(a,b,c){var d=C,e=pk.transition;try{pk.transition=null,C=1,Xk(a,b,c,d)}finally{pk.transition=e,C=d}return null}\nfunction Xk(a,b,c,d){do Ik();while(null!==xk);if(0!==(K&6))throw Error(p(327));c=a.finishedWork;var e=a.finishedLanes;if(null===c)return null;a.finishedWork=null;a.finishedLanes=0;if(c===a.current)throw Error(p(177));a.callbackNode=null;a.callbackPriority=0;var f=c.lanes|c.childLanes;Bc(a,f);a===R&&(Y=R=null,Z=0);0===(c.subtreeFlags&2064)&&0===(c.flags&2064)||wk||(wk=!0,Gk(hc,function(){Ik();return null}));f=0!==(c.flags&15990);if(0!==(c.subtreeFlags&15990)||f){f=pk.transition;pk.transition=null;\nvar g=C;C=1;var h=K;K|=4;ok.current=null;Pj(a,c);ek(c,a);Oe(Df);dd=!!Cf;Df=Cf=null;a.current=c;ik(c,a,e);dc();K=h;C=g;pk.transition=f}else a.current=c;wk&&(wk=!1,xk=a,yk=e);f=a.pendingLanes;0===f&&(Si=null);mc(c.stateNode,d);Ek(a,B());if(null!==b)for(d=a.onRecoverableError,c=0;c<b.length;c++)e=b[c],d(e.value,{componentStack:e.stack,digest:e.digest});if(Pi)throw Pi=!1,a=Qi,Qi=null,a;0!==(yk&1)&&0!==a.tag&&Ik();f=a.pendingLanes;0!==(f&1)?a===Ak?zk++:(zk=0,Ak=a):zk=0;jg();return null}\nfunction Ik(){if(null!==xk){var a=Dc(yk),b=pk.transition,c=C;try{pk.transition=null;C=16>a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;k<h.length;k++){var l=h[k];for(V=l;null!==V;){var m=V;switch(m.tag){case 0:case 11:case 15:Qj(8,m,f)}var q=m.child;if(null!==q)q.return=m,V=q;else for(;null!==V;){m=V;var r=m.sibling,y=m.return;Tj(m);if(m===\nl){V=null;break}if(null!==r){r.return=y;V=r;break}V=y}}}var n=f.alternate;if(null!==n){var t=n.child;if(null!==t){n.child=null;do{var J=t.sibling;t.sibling=null;t=J}while(null!==t)}}V=f}}if(0!==(f.subtreeFlags&2064)&&null!==g)g.return=f,V=g;else b:for(;null!==V;){f=V;if(0!==(f.flags&2048))switch(f.tag){case 0:case 11:case 15:Qj(9,f,f.return)}var x=f.sibling;if(null!==x){x.return=f.return;V=x;break b}V=f.return}}var w=a.current;for(V=w;null!==V;){g=V;var u=g.child;if(0!==(g.subtreeFlags&2064)&&null!==\nu)u.return=g,V=u;else b:for(g=w;null!==V;){h=V;if(0!==(h.flags&2048))try{switch(h.tag){case 0:case 11:case 15:Rj(9,h)}}catch(na){W(h,h.return,na)}if(h===g){V=null;break b}var F=h.sibling;if(null!==F){F.return=h.return;V=F;break b}V=h.return}}K=e;jg();if(lc&&\"function\"===typeof lc.onPostCommitFiberRoot)try{lc.onPostCommitFiberRoot(kc,a)}catch(na){}d=!0}return d}finally{C=c,pk.transition=b}}return!1}function Yk(a,b,c){b=Ki(c,b);b=Oi(a,b,1);a=dh(a,b,1);b=L();null!==a&&(Ac(a,1,b),Ek(a,b))}\nfunction W(a,b,c){if(3===a.tag)Yk(a,a,c);else for(;null!==b;){if(3===b.tag){Yk(b,a,c);break}else if(1===b.tag){var d=b.stateNode;if(\"function\"===typeof b.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===Si||!Si.has(d))){a=Ki(c,a);a=Ri(b,a,1);b=dh(b,a,1);a=L();null!==b&&(Ac(b,1,a),Ek(b,a));break}}b=b.return}}\nfunction Ui(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);b=L();a.pingedLanes|=a.suspendedLanes&c;R===a&&(Z&c)===c&&(4===T||3===T&&(Z&130023424)===Z&&500>B()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:wa,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}\nfunction el(a){if(!a)return Vf;a=a._reactInternals;a:{if(Vb(a)!==a||1!==a.tag)throw Error(p(170));var b=a;do{switch(b.tag){case 3:b=b.stateNode.context;break a;case 1:if(Zf(b.type)){b=b.stateNode.__reactInternalMemoizedMergedChildContext;break a}}b=b.return}while(null!==b);throw Error(p(171));}if(1===a.tag){var c=a.type;if(Zf(c))return bg(a,c,b)}return b}\nfunction fl(a,b,c,d,e,f,g,h,k){a=cl(c,d,!0,a,e,f,g,h,k);a.context=el(null);c=a.current;d=L();e=lh(c);f=ch(d,e);f.callback=void 0!==b&&null!==b?b:null;dh(c,f,e);a.current.lanes=e;Ac(a,e,d);Ek(a,d);return a}function gl(a,b,c,d){var e=b.current,f=L(),g=lh(e);c=el(c);null===b.context?b.context=c:b.pendingContext=c;b=ch(f,g);b.payload={element:a};d=void 0===d?null:d;null!==d&&(b.callback=d);a=dh(e,b,g);null!==a&&(mh(a,e,g,f),eh(a,e,g));return g}\nfunction hl(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function il(a,b){a=a.memoizedState;if(null!==a&&null!==a.dehydrated){var c=a.retryLane;a.retryLane=0!==c&&c<b?c:b}}function jl(a,b){il(a,b);(a=a.alternate)&&il(a,b)}function kl(){return null}var ll=\"function\"===typeof reportError?reportError:function(a){console.error(a)};function ml(a){this._internalRoot=a}\nnl.prototype.render=ml.prototype.render=function(a){var b=this._internalRoot;if(null===b)throw Error(p(409));gl(a,b,null,null)};nl.prototype.unmount=ml.prototype.unmount=function(){var a=this._internalRoot;if(null!==a){this._internalRoot=null;var b=a.containerInfo;Sk(function(){gl(null,a,null,null)});b[uf]=null}};function nl(a){this._internalRoot=a}\nnl.prototype.unstable_scheduleHydration=function(a){if(a){var b=Hc();a={blockedOn:null,target:a,priority:b};for(var c=0;c<Qc.length&&0!==b&&b<Qc[c].priority;c++);Qc.splice(c,0,a);0===c&&Vc(a)}};function ol(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType)}function pl(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}function ql(){}\nfunction rl(a,b,c,d,e){if(e){if(\"function\"===typeof d){var f=d;d=function(){var a=hl(g);f.call(a)}}var g=fl(b,d,a,0,null,!1,!1,\"\",ql);a._reactRootContainer=g;a[uf]=g.current;sf(8===a.nodeType?a.parentNode:a);Sk();return g}for(;e=a.lastChild;)a.removeChild(e);if(\"function\"===typeof d){var h=d;d=function(){var a=hl(k);h.call(a)}}var k=cl(a,0,!1,null,null,!1,!1,\"\",ql);a._reactRootContainer=k;a[uf]=k.current;sf(8===a.nodeType?a.parentNode:a);Sk(function(){gl(b,k,c,d)});return k}\nfunction sl(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f;if(\"function\"===typeof e){var h=e;e=function(){var a=hl(g);h.call(a)}}gl(b,g,a,e)}else g=rl(c,b,a,e,d);return hl(g)}Ec=function(a){switch(a.tag){case 3:var b=a.stateNode;if(b.current.memoizedState.isDehydrated){var c=tc(b.pendingLanes);0!==c&&(Cc(b,c|1),Ek(b,B()),0===(K&6)&&(Hj=B()+500,jg()))}break;case 13:Sk(function(){var b=Zg(a,1);if(null!==b){var c=L();mh(b,a,1,c)}}),jl(a,1)}};\nFc=function(a){if(13===a.tag){var b=Zg(a,134217728);if(null!==b){var c=L();mh(b,a,134217728,c)}jl(a,134217728)}};Gc=function(a){if(13===a.tag){var b=lh(a),c=Zg(a,b);if(null!==c){var d=L();mh(c,a,b,d)}jl(a,b)}};Hc=function(){return C};Ic=function(a,b){var c=C;try{return C=a,b()}finally{C=c}};\nyb=function(a,b,c){switch(b){case \"input\":bb(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+b)+'][type=\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Db(d);if(!e)throw Error(p(90));Wa(d);bb(d,e)}}}break;case \"textarea\":ib(a,c);break;case \"select\":b=c.value,null!=b&&fb(a,!!c.multiple,b,!1)}};Gb=Rk;Hb=Sk;\nvar tl={usingClientEntryPoint:!1,Events:[Cb,ue,Db,Eb,Fb,Rk]},ul={findFiberByHostInstance:Wc,bundleType:0,version:\"18.2.0\",rendererPackageName:\"react-dom\"};\nvar vl={bundleType:ul.bundleType,version:ul.version,rendererPackageName:ul.rendererPackageName,rendererConfig:ul.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ua.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=Zb(a);return null===a?null:a.stateNode},findFiberByHostInstance:ul.findFiberByHostInstance||\nkl,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:\"18.2.0-next-9e3b772b8-20220608\"};if(\"undefined\"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var wl=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!wl.isDisabled&&wl.supportsFiber)try{kc=wl.inject(vl),lc=wl}catch(a){}}exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=tl;\nexports.createPortal=function(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!ol(b))throw Error(p(200));return dl(a,b,null,c)};exports.createRoot=function(a,b){if(!ol(a))throw Error(p(299));var c=!1,d=\"\",e=ll;null!==b&&void 0!==b&&(!0===b.unstable_strictMode&&(c=!0),void 0!==b.identifierPrefix&&(d=b.identifierPrefix),void 0!==b.onRecoverableError&&(e=b.onRecoverableError));b=cl(a,1,!1,null,null,c,!1,d,e);a[uf]=b.current;sf(8===a.nodeType?a.parentNode:a);return new ml(b)};\nexports.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternals;if(void 0===b){if(\"function\"===typeof a.render)throw Error(p(188));a=Object.keys(a).join(\",\");throw Error(p(268,a));}a=Zb(b);a=null===a?null:a.stateNode;return a};exports.flushSync=function(a){return Sk(a)};exports.hydrate=function(a,b,c){if(!pl(b))throw Error(p(200));return sl(null,a,b,!0,c)};\nexports.hydrateRoot=function(a,b,c){if(!ol(a))throw Error(p(405));var d=null!=c&&c.hydratedSources||null,e=!1,f=\"\",g=ll;null!==c&&void 0!==c&&(!0===c.unstable_strictMode&&(e=!0),void 0!==c.identifierPrefix&&(f=c.identifierPrefix),void 0!==c.onRecoverableError&&(g=c.onRecoverableError));b=fl(b,null,a,1,null!=c?c:null,e,!1,f,g);a[uf]=b.current;sf(a);if(d)for(a=0;a<d.length;a++)c=d[a],e=c._getVersion,e=e(c._source),null==b.mutableSourceEagerHydrationData?b.mutableSourceEagerHydrationData=[c,e]:b.mutableSourceEagerHydrationData.push(c,\ne);return new nl(b)};exports.render=function(a,b,c){if(!pl(b))throw Error(p(200));return sl(null,a,b,!1,c)};exports.unmountComponentAtNode=function(a){if(!pl(a))throw Error(p(40));return a._reactRootContainer?(Sk(function(){sl(null,null,a,!1,function(){a._reactRootContainer=null;a[uf]=null})}),!0):!1};exports.unstable_batchedUpdates=Rk;\nexports.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!pl(c))throw Error(p(200));if(null==a||void 0===a._reactInternals)throw Error(p(38));return sl(a,b,c,!1,d)};exports.version=\"18.2.0-next-9e3b772b8-20220608\";\n","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];c.children=f}if(a&&a.defaultProps)for(d in g=a.defaultProps,g)void 0===c[d]&&(c[d]=g[d]);return{$$typeof:l,type:a,key:k,ref:h,props:c,_owner:K.current}}\nfunction N(a,b){return{$$typeof:l,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===l}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g;function Q(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction R(a,b,e,d,c){var k=typeof a;if(\"undefined\"===k||\"boolean\"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case l:case n:h=!0}}if(h)return h=a,c=c(h),a=\"\"===d?\".\"+Q(h,0):d,I(c)?(e=\"\",null!=a&&(e=a.replace(P,\"$&/\")+\"/\"),R(c,b,e,\"\",function(a){return a})):null!=c&&(O(c)&&(c=N(c,e+(!c.key||h&&h.key===c.key?\"\":(\"\"+c.key).replace(P,\"$&/\")+\"/\")+a)),b.push(c)),1;h=0;d=\"\"===d?\".\":d+\":\";if(I(a))for(var g=0;g<a.length;g++){k=\na[g];var f=d+Q(k,g);h+=R(k,b,e,f,c)}else if(f=A(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=d+Q(k,g++),h+=R(k,b,e,f,c);else if(\"object\"===k)throw b=String(a),Error(\"Objects are not valid as a React child (found: \"+(\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b)+\"). If you meant to render a collection of children, use an array instead.\");return h}\nfunction S(a,b,e){if(null==a)return a;var d=[],c=0;R(a,d,\"\",\"\",function(a){return b.call(e,a,c++)});return d}function T(a){if(-1===a._status){var b=a._result;b=b();b.then(function(b){if(0===a._status||-1===a._status)a._status=1,a._result=b},function(b){if(0===a._status||-1===a._status)a._status=2,a._result=b});-1===a._status&&(a._status=0,a._result=b)}if(1===a._status)return a._result.default;throw a._result;}\nvar U={current:null},V={transition:null},W={ReactCurrentDispatcher:U,ReactCurrentBatchConfig:V,ReactCurrentOwner:K};exports.Children={map:S,forEach:function(a,b,e){S(a,function(){b.apply(this,arguments)},e)},count:function(a){var b=0;S(a,function(){b++});return b},toArray:function(a){return S(a,function(a){return a})||[]},only:function(a){if(!O(a))throw Error(\"React.Children.only expected to receive a single React element child.\");return a}};exports.Component=E;exports.Fragment=p;\nexports.Profiler=r;exports.PureComponent=G;exports.StrictMode=q;exports.Suspense=w;exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=W;\nexports.cloneElement=function(a,b,e){if(null===a||void 0===a)throw Error(\"React.cloneElement(...): The argument must be a React element, but you passed \"+a+\".\");var d=C({},a.props),c=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=K.current);void 0!==b.key&&(c=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)J.call(b,f)&&!L.hasOwnProperty(f)&&(d[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){g=Array(f);\nfor(var m=0;m<f;m++)g[m]=arguments[m+2];d.children=g}return{$$typeof:l,type:a.type,key:c,ref:k,props:d,_owner:h}};exports.createContext=function(a){a={$$typeof:u,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};a.Provider={$$typeof:t,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};\nexports.forwardRef=function(a){return{$$typeof:v,render:a}};exports.isValidElement=O;exports.lazy=function(a){return{$$typeof:y,_payload:{_status:-1,_result:a},_init:T}};exports.memo=function(a,b){return{$$typeof:x,type:a,compare:void 0===b?null:b}};exports.startTransition=function(a){var b=V.transition;V.transition={};try{a()}finally{V.transition=b}};exports.unstable_act=function(){throw Error(\"act(...) is not supported in production builds of React.\");};\nexports.useCallback=function(a,b){return U.current.useCallback(a,b)};exports.useContext=function(a){return U.current.useContext(a)};exports.useDebugValue=function(){};exports.useDeferredValue=function(a){return U.current.useDeferredValue(a)};exports.useEffect=function(a,b){return U.current.useEffect(a,b)};exports.useId=function(){return U.current.useId()};exports.useImperativeHandle=function(a,b,e){return U.current.useImperativeHandle(a,b,e)};\nexports.useInsertionEffect=function(a,b){return U.current.useInsertionEffect(a,b)};exports.useLayoutEffect=function(a,b){return U.current.useLayoutEffect(a,b)};exports.useMemo=function(a,b){return U.current.useMemo(a,b)};exports.useReducer=function(a,b,e){return U.current.useReducer(a,b,e)};exports.useRef=function(a){return U.current.useRef(a)};exports.useState=function(a){return U.current.useState(a)};exports.useSyncExternalStore=function(a,b,e){return U.current.useSyncExternalStore(a,b,e)};\nexports.useTransition=function(){return U.current.useTransition()};exports.version=\"18.2.0\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0<c;){var d=c-1>>>1,e=a[d];if(0<g(e,b))a[d]=b,a[c]=e,c=d;else break a}}function h(a){return 0===a.length?null:a[0]}function k(a){if(0===a.length)return null;var b=a[0],c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length,w=e>>>1;d<w;){var m=2*(d+1)-1,C=a[m],n=m+1,x=a[n];if(0>g(C,c))n<e&&0>g(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(n<e&&0>g(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Q<P?!1:!0}function R(){if(null!==O){var a=exports.unstable_now();Q=a;var b=!0;try{b=O(!0,a)}finally{b?S():(N=!1,O=null)}}else N=!1}var S;if(\"function\"===typeof F)S=function(){F(R)};else if(\"undefined\"!==typeof MessageChannel){var T=new MessageChannel,U=T.port2;T.port1.onmessage=R;S=function(){U.postMessage(null)}}else S=function(){D(R,0)};function I(a){O=a;N||(N=!0,S())}function K(a,b){L=D(function(){a(exports.unstable_now())},b)}\nexports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){A||z||(A=!0,I(J))};\nexports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):P=0<a?Math.floor(1E3/a):5};exports.unstable_getCurrentPriorityLevel=function(){return y};exports.unstable_getFirstCallbackNode=function(){return h(r)};exports.unstable_next=function(a){switch(y){case 1:case 2:case 3:var b=3;break;default:b=y}var c=y;y=b;try{return a()}finally{y=c}};exports.unstable_pauseExecution=function(){};\nexports.unstable_requestPaint=function(){};exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=y;y=a;try{return b()}finally{y=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0<c?d+c:d):c=d;switch(a){case 1:var e=-1;break;case 2:e=250;break;case 5:e=1073741823;break;case 4:e=1E4;break;default:e=5E3}e=c+e;a={id:u++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/**\n * @license React\n * use-sync-external-store-shim.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var e=require(\"react\");function h(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var k=\"function\"===typeof Object.is?Object.is:h,l=e.useState,m=e.useEffect,n=e.useLayoutEffect,p=e.useDebugValue;function q(a,b){var d=b(),f=l({inst:{value:d,getSnapshot:b}}),c=f[0].inst,g=f[1];n(function(){c.value=d;c.getSnapshot=b;r(c)&&g({inst:c})},[a,d,b]);m(function(){r(c)&&g({inst:c});return a(function(){r(c)&&g({inst:c})})},[a]);p(d);return d}\nfunction r(a){var b=a.getSnapshot;a=a.value;try{var d=b();return!k(a,d)}catch(f){return!0}}function t(a,b){return b()}var u=\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement?t:q;exports.useSyncExternalStore=void 0!==e.useSyncExternalStore?e.useSyncExternalStore:u;\n","/**\n * @license React\n * use-sync-external-store-shim/with-selector.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var h=require(\"react\"),n=require(\"use-sync-external-store/shim\");function p(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var q=\"function\"===typeof Object.is?Object.is:p,r=n.useSyncExternalStore,t=h.useRef,u=h.useEffect,v=h.useMemo,w=h.useDebugValue;\nexports.useSyncExternalStoreWithSelector=function(a,b,e,l,g){var c=t(null);if(null===c.current){var f={hasValue:!1,value:null};c.current=f}else f=c.current;c=v(function(){function a(a){if(!c){c=!0;d=a;a=l(a);if(void 0!==g&&f.hasValue){var b=f.value;if(g(b,a))return k=b}return k=a}b=k;if(q(d,a))return b;var e=l(a);if(void 0!==g&&g(b,e))return b;d=a;return k=e}var c=!1,d,k,m=void 0===e?null:e;return[function(){return a(b())},null===m?void 0:function(){return a(m())}]},[b,e,l,g]);var d=r(a,c[0],c[1]);\nu(function(){f.hasValue=!0;f.value=d},[d]);w(d);return d};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.development.js');\n}\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + {\"379\":\"0235988e\",\"498\":\"053976ea\",\"703\":\"0b1c3a6d\",\"787\":\"72f87496\"}[chunkId] + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"dbhdid.ky.gov:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t179: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkdbhdid_ky_gov\"] = self[\"webpackChunkdbhdid_ky_gov\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: any;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n\n /**\n * The delta between this location and the former location in the history stack\n */\n delta: number | null;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. May be either a URL or the pieces of a\n * URL path.\n */\nexport type To = string | Partial<Path>;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an <a href> attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial<Location>;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant<T>(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport function warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly<Location> {\n let location: Readonly<Location> = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial<Path>) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial<Path> {\n let parsedPath: Partial<Path> = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n let index = getIndex()!;\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\n let href = typeof to === \"string\" ? to : createPath(to);\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { warning, invariant, parsePath } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: any;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n status: number;\n location: string;\n revalidate: boolean;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: any;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\nexport type MutationFormMethod = \"post\" | \"put\" | \"patch\" | \"delete\";\nexport type FormMethod = \"get\" | MutationFormMethod;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\";\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport interface Submission {\n formMethod: FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n}\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: any;\n}\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs extends DataFunctionArgs {}\n\n/**\n * Route loader function signature\n */\nexport interface LoaderFunction {\n (args: LoaderFunctionArgs): Promise<Response> | Response | Promise<any> | any;\n}\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (args: ActionFunctionArgs): Promise<Response> | Response | Promise<any> | any;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n formData?: Submission[\"formData\"];\n actionResult?: DataResult;\n defaultShouldRevalidate: boolean;\n }): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set<ImmutableRouteKey>([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction<R extends AgnosticRouteObject> {\n (): Promise<Omit<R, ImmutableRouteKey>>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction;\n action?: ActionFunction;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction<AgnosticBaseRouteObject>;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record<string, AgnosticDataRouteObject | undefined>;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam<Path extends string> =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam<L> | _PathParam<R>\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\ntype PathParam<Path extends string> =\n // check if path is just a wildcard\n Path extends \"*\" | \"/*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam<Rest>\n : // look for params in the absence of wildcards\n _PathParam<Path>;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey<Segment extends string> =\n // if could not find path params, fallback to `string`\n [PathParam<Segment>] extends [never] ? string : PathParam<Segment>;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params<Key extends string = string> = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params<ParamKey>;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch<string, AgnosticDataRouteObject> {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n detectErrorBoundary: DetectErrorBoundaryFunction,\n parentPath: number[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, index];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n hasErrorBoundary: detectErrorBoundary(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n id,\n hasErrorBoundary: detectErrorBoundary(route),\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n detectErrorBoundary,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial<Location> | string,\n basename = \"/\"\n): AgnosticRouteMatch<string, RouteObjectType>[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n matches = matchRouteBranch<string, RouteObjectType>(\n branches[i],\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n safelyDecodeURI(pathname)\n );\n }\n\n return matches;\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta<RouteObjectType>[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch<RouteObjectType>[] = [],\n parentsMeta: RouteMeta<RouteObjectType>[] = [],\n parentPath = \"\"\n): RouteBranch<RouteObjectType>[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta<RouteObjectType> = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explodes _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:\\w+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch<RouteObjectType>,\n pathname: string\n): AgnosticRouteMatch<ParamKey, RouteObjectType>[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch<ParamKey, RouteObjectType>[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params<ParamKey>,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath<Path extends string>(\n originalPath: Path,\n params: {\n [key in PathParam<Path>]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam<Path>;\n const starParam = params[star];\n\n // Apply the splat\n return starParam;\n }\n\n const keyMatch = segment.match(/^:(\\w+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam<Path>];\n\n if (optional === \"?\") {\n return param == null ? \"\" : param;\n }\n\n if (param == null) {\n invariant(false, `Missing \":${key}\" param`);\n }\n\n return param;\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern<Path extends string = string> {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch<ParamKey extends string = string> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params<ParamKey>;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable<T> = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey<Path>,\n Path extends string\n>(\n pattern: PathPattern<Path> | Path,\n pathname: string\n): PathMatch<ParamKey> | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, paramNames] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = paramNames.reduce<Mutable<Params>>(\n (memo, paramName, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n memo[paramName] = safelyDecodeURIComponent(\n captureGroups[index] || \"\",\n paramName\n );\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, string[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let paramNames: string[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^$?{}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(/\\/:(\\w+)/g, (_: string, paramName: string) => {\n paramNames.push(paramName);\n return \"/([^\\\\/]+)\";\n });\n\n if (path.endsWith(\"*\")) {\n paramNames.push(\"*\");\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, paramNames];\n}\n\nfunction safelyDecodeURI(value: string) {\n try {\n return decodeURI(value);\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\nfunction safelyDecodeURIComponent(value: string, paramName: string) {\n try {\n return decodeURIComponent(value);\n } catch (error) {\n warning(\n false,\n `The value for the URL param \"${paramName}\" will not be decoded because` +\n ` the string \"${value}\" is a malformed URL segment. This is probably` +\n ` due to a bad percent encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial<Path>\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in <Link to=\"...\"> and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * <Route path=\"/\">\n * <Route path=\"accounts\" element={<Link to=\"..\"}>\n * </Route>\n *\n * <Route path=\"/\">\n * <Route path=\"accounts\">\n * <Route element={<AccountsLayout />}> // <-- Does not contribute\n * <Route index element={<Link to=\"..\"} /> // <-- Does not contribute\n * </Route\n * </Route>\n * </Route>\n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial<Path>;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `<Link to>` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (isPathRelative || toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n if (toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n // Each leading .. segment means \"go up one route\" instead of \"go up one\n // URL segment\". This is a key difference from how <a href> works and a\n // major reason we call this a \"to\" value instead of a \"href\".\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n // If there are more \"..\" segments than parent routes, resolve relative to\n // the root / URL.\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = <Data>(\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport interface TrackedPromise extends Promise<any> {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set<string> = new Set<string>();\n private controller: AbortController;\n private abortPromise: Promise<void>;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record<string, unknown>;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record<string, unknown>, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise<unknown> | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, null, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n if (error) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record<string, unknown>,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n */\nexport class ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n error?: Error;\n internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n DataResult,\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DeferredResult,\n ErrorResult,\n FormEncType,\n FormMethod,\n DetectErrorBoundaryFunction,\n RedirectResult,\n RouteData,\n AgnosticRouteObject,\n Submission,\n SuccessResult,\n AgnosticRouteMatch,\n MutationFormMethod,\n ShouldRevalidateFunction,\n RouteManifest,\n ImmutableRouteKey,\n ActionFunction,\n LoaderFunction,\n} from \"./utils\";\nimport {\n DeferredData,\n ErrorResponse,\n ResultType,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record<string, number>,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise<void>;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To, opts?: RouterNavigateOptions): Promise<void>;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string,\n opts?: RouterNavigateOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher<TData = any>(key?: string): Fetcher<TData>;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key?: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map<string, AbortController>;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map<string, DeferredData>;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map<string, Fetcher>;\n\n /**\n * Map of current blockers\n */\n blockers: Map<string, Blocker>;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick<RouterState, \"loaderData\" | \"actionData\" | \"errors\">\n>;\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n basename?: string;\n routes: AgnosticRouteObject[];\n history: History;\n hydrationData?: HydrationState;\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record<string, Headers>;\n actionHeaders: Record<string, Headers>;\n activeDeferreds: Record<string, DeferredData> | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: { requestContext?: unknown }\n ): Promise<StaticHandlerContext | Response>;\n queryRoute(\n request: Request,\n opts?: { routeId?: string; requestContext?: unknown }\n ): Promise<any>;\n}\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (state: RouterState): void;\n}\n\ninterface UseMatchesMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: unknown;\n handle: unknown;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UseMatchesMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\n/**\n * Options for a navigate() call for a Link navigation\n */\ntype LinkNavigateOptions = {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n};\n\n/**\n * Options for a navigate() call for a Form navigation\n */\ntype SubmissionNavigateOptions = {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n formMethod?: FormMethod;\n formEncType?: FormEncType;\n formData: FormData;\n};\n\n/**\n * Options to pass to navigate() for either a Link or Form navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions =\n | Omit<LinkNavigateOptions, \"replace\">\n | Omit<SubmissionNavigateOptions, \"replace\">;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: FormMethod | undefined;\n formAction: string | undefined;\n formEncType: FormEncType | undefined;\n formData: FormData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates<TData = any> = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n data: TData | undefined;\n \" _hasFetcherDoneAnything \"?: boolean;\n };\n Loading: {\n state: \"loading\";\n formMethod: FormMethod | undefined;\n formAction: string | undefined;\n formEncType: FormEncType | undefined;\n formData: FormData | undefined;\n data: TData | undefined;\n \" _hasFetcherDoneAnything \"?: boolean;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n data: TData | undefined;\n \" _hasFetcherDoneAnything \"?: boolean;\n };\n};\n\nexport type Fetcher<TData = any> =\n FetcherStates<TData>[keyof FetcherStates<TData>];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Error thrown from the current action, keyed by the route containing the\n * error boundary to render the error. To be committed to the state after\n * loaders have completed\n */\n pendingActionError?: RouteData;\n /**\n * Data returned from the current action, keyed by the route owning the action.\n * To be committed to the state after loaders have completed\n */\n pendingActionData?: RouteData;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n}\n\n/**\n * Wrapper object to allow us to throw any response out from callLoaderOrAction\n * for queryRouter while preserving whether or not it was thrown or returned\n * from the loader/action\n */\ninterface QueryRouteResponse {\n type: ResultType.data | ResultType.error;\n response: Response;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set<MutationFormMethod>(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set<FormMethod>(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst isBrowser =\n typeof window !== \"undefined\" &&\n typeof window.document !== \"undefined\" &&\n typeof window.document.createElement !== \"undefined\";\nconst isServer = !isBrowser;\n\nconst defaultDetectErrorBoundary = (route: AgnosticRouteObject) =>\n Boolean(route.hasErrorBoundary);\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let detectErrorBoundary =\n init.detectErrorBoundary || defaultDetectErrorBoundary;\n\n // Routes keyed by ID\n let manifest: RouteManifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n detectErrorBoundary,\n undefined,\n manifest\n );\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set<RouterSubscriber>();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record<string, number> | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from <ScrollRestoration /> until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(\n dataRoutes,\n init.history.location,\n init.basename\n );\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n let initialized =\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n !initialMatches.some((m) => m.route.lazy) &&\n // And we have to either have no loaders or have been provided hydrationData\n (!initialMatches.some((m) => m.route.loader) || init.hydrationData != null);\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidate()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: string[] = [];\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map<string, AbortController>();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map<string, number>();\n\n // Fetchers that triggered redirect navigations from their actions\n let fetchRedirectIds = new Set<string>();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map<string, FetchLoadMatch>();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map<string, DeferredData>();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map<string, BlockerFunction>();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let ignoreNextHistoryUpdate = false;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n ignoreNextHistoryUpdate = true;\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked\n init.history.go(delta);\n },\n reset() {\n deleteBlocker(blockerKey!);\n updateState({ blockers: new Map(router.state.blockers) });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n if (state.initialized) {\n return router;\n }\n\n let lazyMatches = state.matches.filter((m) => m.route.lazy);\n\n if (lazyMatches.length === 0) {\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n startNavigation(HistoryAction.Pop, state.location);\n return router;\n }\n\n // Load lazy modules, then kick off initial data load if needed\n let lazyPromises = lazyMatches.map((m) =>\n loadLazyRouteModule(m.route, detectErrorBoundary, manifest)\n );\n Promise.all(lazyPromises).then(() => {\n let initialized =\n !state.matches.some((m) => m.route.loader) ||\n init.hydrationData != null;\n if (initialized) {\n // We already have required loaderData so we can just set initialized\n updateState({ initialized: true });\n } else {\n // We still need to kick off initial data loads\n startNavigation(HistoryAction.Pop, state.location);\n }\n });\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(newState: Partial<RouterState>): void {\n state = {\n ...state,\n ...newState,\n };\n subscribers.forEach((subscriber) => subscriber(state));\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial<Omit<RouterState, \"action\" | \"location\" | \"navigation\">>\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n for (let [key] of blockerFunctions) {\n deleteBlocker(key);\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n updateState({\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers: new Map(state.blockers),\n });\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To,\n opts?: RouterNavigateOptions\n ): Promise<void> {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(to, opts);\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n deleteBlocker(blockerKey!);\n updateState({ blockers: new Map(state.blockers) });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n { overrideNavigation: state.navigation }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n submission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponse;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n }\n ): Promise<void> {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, init.basename);\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(routesToUse);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n completeNavigation(location, {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n });\n return;\n }\n\n // Short circuit if it's only a hash change and not a mutation submission\n // For example, on /page#hash and submit a <Form method=\"post\"> which will\n // default to a navigation to /page\n if (\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionData: RouteData | undefined;\n let pendingError: RouteData | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingError = {\n [findNearestBoundary(matches).route.id]: opts.pendingError,\n };\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionOutput = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n { replace: opts.replace }\n );\n\n if (actionOutput.shortCircuited) {\n return;\n }\n\n pendingActionData = actionOutput.pendingActionData;\n pendingError = actionOutput.pendingActionError;\n\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n ...opts.submission,\n };\n loadingNavigation = navigation;\n\n // Create a GET request for the loaders\n request = new Request(request.url, { signal: request.signal });\n }\n\n // Call loaders\n let { shortCircuited, loaderData, errors } = await handleLoaders(\n request,\n location,\n matches,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.replace,\n pendingActionData,\n pendingError\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n opts?: { replace?: boolean }\n ): Promise<HandleActionResult> {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n ...submission,\n };\n updateState({ navigation });\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n manifest,\n detectErrorBoundary,\n router.basename\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n replace =\n result.location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(state, result, { submission, replace });\n return { shortCircuited: true };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n // Send back an empty object we can use to clear out any prior actionData\n pendingActionData: {},\n pendingActionError: { [boundaryMatch.route.id]: result.error },\n };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n return {\n pendingActionData: { [actionMatch.route.id]: result.data },\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n overrideNavigation?: Navigation,\n submission?: Submission,\n replace?: boolean,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n ): Promise<HandleLoadersResult> {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation = overrideNavigation;\n if (!loadingNavigation) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n ...submission,\n };\n loadingNavigation = navigation;\n }\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission = submission\n ? submission\n : loadingNavigation.formMethod &&\n loadingNavigation.formAction &&\n loadingNavigation.formData &&\n loadingNavigation.formEncType\n ? {\n formMethod: loadingNavigation.formMethod,\n formAction: loadingNavigation.formAction,\n formData: loadingNavigation.formData,\n formEncType: loadingNavigation.formEncType,\n }\n : undefined;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n fetchLoadMatches,\n routesToUse,\n init.basename,\n pendingActionData,\n pendingError\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n completeNavigation(location, {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors: pendingError || null,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n });\n return { shortCircuited: true };\n }\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n if (!isUninterruptedRevalidation) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n data: fetcher && fetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n let actionData = pendingActionData || state.actionData;\n updateState({\n navigation: loadingNavigation,\n ...(actionData\n ? Object.keys(actionData).length === 0\n ? { actionData: null }\n : { actionData }\n : {}),\n ...(revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n });\n }\n\n pendingNavigationLoadId = ++incrementingLoadId;\n revalidatingFetchers.forEach((rf) =>\n fetchControllers.set(rf.key, pendingNavigationController!)\n );\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(results);\n if (redirect) {\n await startRedirectNavigation(state, redirect, { replace });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingError,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n\n return {\n loaderData,\n errors,\n ...(didAbortFetchLoads || revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n };\n }\n\n function getFetcher<TData = any>(key: string): Fetcher<TData> {\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches = matchRoutes(routesToUse, href, init.basename);\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: href })\n );\n return;\n }\n\n let { path, submission } = normalizeNavigateOptions(href, opts, true);\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(key, routeId, path, match, matches, submission);\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(key, routeId, path, match, matches, submission);\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n if (!match.route.action && !match.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error);\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n ...submission,\n data: existingFetcher && existingFetcher.data,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, fetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n // Call the action for the fetcher\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n fetchControllers.set(key, abortController);\n\n let actionResult = await callLoaderOrAction(\n \"action\",\n fetchRequest,\n match,\n requestMatches,\n manifest,\n detectErrorBoundary,\n router.basename\n );\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by ou our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n fetchRedirectIds.add(key);\n let loadingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n ...submission,\n data: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, loadingFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n return startRedirectNavigation(state, actionResult, {\n isFetchActionRedirect: true,\n });\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, init.basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n data: actionResult.data,\n ...submission,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n fetchLoadMatches,\n routesToUse,\n init.basename,\n { [match.route.id]: actionResult.data },\n undefined // No need to send through errors since we short circuit above\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n data: existingFetcher && existingFetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(staleKey, revalidatingFetcher);\n fetchControllers.set(staleKey, abortController);\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect(results);\n if (redirect) {\n return startRedirectNavigation(state, redirect);\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n state.matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: actionResult.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, doneFetcher);\n\n let didAbortFetchLoads = abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n ...(didAbortFetchLoads ? { fetchers: new Map(state.fetchers) } : {}),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n // Put this fetcher into it's loading state\n let loadingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n ...submission,\n data: existingFetcher && existingFetcher.data,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, loadingFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n // Call the loader for this fetcher route match\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n fetchControllers.set(key, abortController);\n\n let result: DataResult = await callLoaderOrAction(\n \"loader\",\n fetchRequest,\n match,\n matches,\n manifest,\n detectErrorBoundary,\n router.basename\n );\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by ou our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n await startRedirectNavigation(state, result);\n return;\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n state.fetchers.delete(key);\n // TODO: In remix, this would reset to IDLE_NAVIGATION if it was a catch -\n // do we need to behave any differently with our non-redirect errors?\n // What if it was a non-redirect Response?\n updateState({\n fetchers: new Map(state.fetchers),\n errors: {\n [boundaryMatch.route.id]: result.error,\n },\n });\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: result.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, doneFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n state: RouterState,\n redirect: RedirectResult,\n {\n submission,\n replace,\n isFetchActionRedirect,\n }: {\n submission?: Submission;\n replace?: boolean;\n isFetchActionRedirect?: boolean;\n } = {}\n ) {\n if (redirect.revalidate) {\n isRevalidationRequired = true;\n }\n\n let redirectLocation = createLocation(\n state.location,\n redirect.location,\n // TODO: This can be removed once we get rid of useTransition in Remix v2\n {\n _isRedirect: true,\n ...(isFetchActionRedirect ? { _isFetchActionRedirect: true } : {}),\n }\n );\n invariant(\n redirectLocation,\n \"Expected a location on the redirect navigation\"\n );\n // Check if this an absolute external redirect that goes to a new origin\n if (\n ABSOLUTE_URL_REGEX.test(redirect.location) &&\n isBrowser &&\n typeof window?.location !== \"undefined\"\n ) {\n let url = init.history.createURL(redirect.location);\n let isDifferentBasename =\n stripBasename(url.pathname, init.basename || \"/\") == null;\n\n if (window.location.origin !== url.origin || isDifferentBasename) {\n if (replace) {\n window.location.replace(redirect.location);\n } else {\n window.location.assign(redirect.location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true ? HistoryAction.Replace : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType, formData } = state.navigation;\n if (!submission && formMethod && formAction && formData && formEncType) {\n submission = {\n formMethod,\n formAction,\n formEncType,\n formData,\n };\n }\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n if (\n redirectPreserveMethodStatusCodes.has(redirect.status) &&\n submission &&\n isMutationMethod(submission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...submission,\n formAction: redirect.location,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n } else {\n // Otherwise, we kick off a new loading navigation, preserving the\n // submission info for the duration of this navigation\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation: {\n state: \"loading\",\n location: redirectLocation,\n formMethod: submission ? submission.formMethod : undefined,\n formAction: submission ? submission.formAction : undefined,\n formEncType: submission ? submission.formEncType : undefined,\n formData: submission ? submission.formData : undefined,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n }\n }\n\n async function callLoadersAndMaybeResolveData(\n currentMatches: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n // Call all navigation loaders and revalidating fetcher loaders in parallel,\n // then slice off the results into separate arrays so we can handle them\n // accordingly\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n manifest,\n detectErrorBoundary,\n router.basename\n )\n ),\n ...fetchersToLoad.map((f) => {\n if (f.matches && f.match) {\n return callLoaderOrAction(\n \"loader\",\n createClientSideRequest(init.history, f.path, request.signal),\n f.match,\n f.matches,\n manifest,\n detectErrorBoundary,\n router.basename\n );\n } else {\n let error: ErrorResult = {\n type: ResultType.error,\n error: getInternalRouterError(404, { pathname: f.path }),\n };\n return error;\n }\n }),\n ]);\n let loaderResults = results.slice(0, matchesToLoad.length);\n let fetcherResults = results.slice(matchesToLoad.length);\n\n await Promise.all([\n resolveDeferredResults(\n currentMatches,\n matchesToLoad,\n loaderResults,\n request.signal,\n false,\n state.loaderData\n ),\n resolveDeferredResults(\n currentMatches,\n fetchersToLoad.map((f) => f.match),\n fetcherResults,\n request.signal,\n true\n ),\n ]);\n\n return { results, loaderResults, fetcherResults };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n\n function setFetcherError(key: string, routeId: string, error: any) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState({\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n });\n }\n\n function deleteFetcher(key: string): void {\n if (fetchControllers.has(key)) abortFetcher(key);\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n state.fetchers.delete(key);\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: fetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): void {\n let doneKeys = [];\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n }\n }\n markFetchersDone(doneKeys);\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n state.blockers.set(key, newBlocker);\n updateState({ blockers: new Map(state.blockers) });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the <ScrollRestoration> component\n function enableScrollRestoration(\n positions: Record<string, number>,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || ((location) => location.key);\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered <ScrollRestoration/>\n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollRestorationKey && getScrollPosition) {\n let userMatches = matches.map((m) =>\n createUseMatchesMatch(m, state.loaderData)\n );\n let key = getScrollRestorationKey(location, userMatches) || location.key;\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions && getScrollRestorationKey && getScrollPosition) {\n let userMatches = matches.map((m) =>\n createUseMatchesMatch(m, state.loaderData)\n );\n let key = getScrollRestorationKey(location, userMatches) || location.key;\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n inFlightDataRoutes = newRoutes;\n }\n\n router = {\n get basename() {\n return init.basename;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher,\n dispose,\n getBlocker,\n deleteBlocker,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let detectErrorBoundary =\n opts?.detectErrorBoundary || defaultDetectErrorBoundary;\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n detectErrorBoundary,\n undefined,\n manifest\n );\n let basename = (opts ? opts.basename : null) || \"/\";\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n */\n async function query(\n request: Request,\n { requestContext }: { requestContext?: unknown } = {}\n ): Promise<StaticHandlerContext | Response> {\n let url = new URL(request.url);\n let method = request.method.toLowerCase();\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"head\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(request, location, matches, requestContext);\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n }: { requestContext?: unknown; routeId?: string } = {}\n ): Promise<any> {\n let url = new URL(request.url);\n let method = request.method.toLowerCase();\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"head\" && method !== \"options\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n match\n );\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch\n ): Promise<Omit<StaticHandlerContext, \"location\" | \"basename\"> | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction, we throw\n // it to bail out and then return or throw here based on whether the user\n // returned or threw\n if (isQueryRouteResponse(e)) {\n if (e.type === ResultType.error && !isRedirectResponse(e.response)) {\n throw e.response;\n }\n return e.response;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n isRouteRequest: boolean\n ): Promise<Omit<StaticHandlerContext, \"location\" | \"basename\"> | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n manifest,\n detectErrorBoundary,\n basename,\n true,\n isRouteRequest,\n requestContext\n );\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted`);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.status,\n headers: {\n Location: result.location,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n let context = await loadRouteData(\n request,\n matches,\n requestContext,\n undefined,\n {\n [boundaryMatch.route.id]: result.error,\n }\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n let context = await loadRouteData(loaderRequest, matches, requestContext);\n\n return {\n ...context,\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch,\n pendingActionError?: RouteData\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : getLoaderMatchesUntilBoundary(\n matches,\n Object.keys(pendingActionError || {})[0]\n );\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors: pendingActionError || null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n manifest,\n detectErrorBoundary,\n basename,\n true,\n isRouteRequest,\n requestContext\n )\n ),\n ]);\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted`);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map<string, DeferredData>();\n let context = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionError,\n activeDeferreds\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set<string>(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction isSubmissionNavigation(\n opts: RouterNavigateOptions\n): opts is SubmissionNavigateOptions {\n return opts != null && \"formData\" in opts;\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n to: To,\n opts?: RouterNavigateOptions,\n isFetcher = false\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponse;\n} {\n let path = typeof to === \"string\" ? to : createPath(to);\n\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n // Create a Submission on non-GET navigations\n let submission: Submission | undefined;\n if (opts.formData) {\n submission = {\n formMethod: opts.formMethod || \"get\",\n formAction: stripHashFromPath(path),\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData: opts.formData,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n let searchParams = convertFormDataToSearchParams(opts.formData);\n // Since fetcher GET submissions only run a single loader (as opposed to\n // navigation GET submissions which run all loaders), we need to preserve\n // any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId?: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: string[],\n fetchLoadMatches: Map<string, FetchLoadMatch>,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingError\n ? Object.values(pendingError)[0]\n : pendingActionData\n ? Object.values(pendingActionData)[0]\n : undefined;\n\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n let defaultShouldRevalidate =\n // Forced revalidation due to submission, useRevalidate, or X-Remix-Revalidate\n isRevalidationRequired ||\n // Clicked the same link, resubmitted a GET form\n currentUrl.toString() === nextUrl.toString() ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search;\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId = pendingError ? Object.keys(pendingError)[0] : undefined;\n let boundaryMatches = getLoaderMatchesUntilBoundary(matches, boundaryId);\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n if (match.route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n if (match.route.loader == null) {\n return false;\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n defaultShouldRevalidate:\n defaultShouldRevalidate ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate if fetcher won't be present in the subsequent render\n if (!matches.some((m) => m.route.id === f.routeId)) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData\n if (!fetcherMatches) {\n revalidatingFetchers.push({ key, ...f, matches: null, match: null });\n return;\n }\n\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n if (cancelledFetcherLoads.includes(key)) {\n revalidatingFetchers.push({\n key,\n matches: fetcherMatches,\n match: fetcherMatch,\n ...f,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // hit a static href, so they _always_ check shouldRevalidate and the\n // default is strictly if a revalidation is explicitly required (action\n // submissions, useRevalidator, X-Remix-Revalidate).\n let shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n defaultShouldRevalidate,\n });\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n matches: fetcherMatches,\n match: fetcherMatch,\n ...f,\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: Parameters<ShouldRevalidateFunction>[0]\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n route: AgnosticDataRouteObject,\n detectErrorBoundary: DetectErrorBoundaryFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates: Record<string, any> = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\n }\n\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to detectErrorBoundary\n Object.assign(routeToUpdate, routeUpdates);\n\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `detectErrorBoundary` function to set the `hasErrorBoundary` route\n // property since the logic will differ between frameworks.\n hasErrorBoundary: detectErrorBoundary({ ...routeToUpdate }),\n lazy: undefined,\n });\n}\n\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n manifest: RouteManifest,\n detectErrorBoundary: DetectErrorBoundaryFunction,\n basename = \"/\",\n isStaticRequest: boolean = false,\n isRouteRequest: boolean = false,\n requestContext?: unknown\n): Promise<DataResult> {\n let resultType;\n let result;\n let onReject: (() => void) | undefined;\n\n let runHandler = (handler: ActionFunction | LoaderFunction) => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n return Promise.race([\n handler({ request, params: match.params, context: requestContext }),\n abortPromise,\n ]);\n };\n\n try {\n let handler = match.route[type];\n\n if (match.route.lazy) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let values = await Promise.all([\n runHandler(handler),\n loadLazyRouteModule(match.route, detectErrorBoundary, manifest),\n ]);\n result = values[0];\n } else {\n // Load lazy route module, then run any returned handler\n await loadLazyRouteModule(match.route, detectErrorBoundary, manifest);\n\n handler = match.route[type];\n if (handler) {\n // Handler still run even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n throw getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, data: undefined };\n }\n }\n } else {\n invariant<Function>(\n handler,\n `Could not find the ${type} to run on the \"${match.route.id}\" route`\n );\n\n result = await runHandler(handler);\n }\n\n invariant(\n result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n resultType = ResultType.error;\n result = e;\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n if (isResponse(result)) {\n let status = result.status;\n\n // Process redirects\n if (redirectStatusCodes.has(status)) {\n let location = result.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n // Support relative routing in internal redirects\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n let activeMatches = matches.slice(0, matches.indexOf(match) + 1);\n let routePathnames = getPathContributingMatches(activeMatches).map(\n (match) => match.pathnameBase\n );\n let resolvedLocation = resolveTo(\n location,\n routePathnames,\n new URL(request.url).pathname\n );\n invariant(\n createPath(resolvedLocation),\n `Unable to resolve redirect location: ${location}`\n );\n\n // Prepend the basename to the redirect location if we have one\n if (basename) {\n let path = resolvedLocation.pathname;\n resolvedLocation.pathname =\n path === \"/\" ? basename : joinPaths([basename, path]);\n }\n\n location = createPath(resolvedLocation);\n } else if (!isStaticRequest) {\n // Strip off the protocol+origin for same-origin + same-basename absolute\n // redirects. If this is a static request, we can let it go back to the\n // browser as-is\n let currentUrl = new URL(request.url);\n let url = location.startsWith(\"//\")\n ? new URL(currentUrl.protocol + location)\n : new URL(location);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n location = url.pathname + url.search + url.hash;\n }\n }\n\n // Don't process redirects in the router during static requests requests.\n // Instead, throw the Response and let the server handle it with an HTTP\n // redirect. We also update the Location header in place in this flow so\n // basename and relative routing is taken into account\n if (isStaticRequest) {\n result.headers.set(\"Location\", location);\n throw result;\n }\n\n return {\n type: ResultType.redirect,\n status,\n location,\n revalidate: result.headers.get(\"X-Remix-Revalidate\") !== null,\n };\n }\n\n // For SSR single-route requests, we want to hand Responses back directly\n // without unwrapping. We do this with the QueryRouteResponse wrapper\n // interface so we can know whether it was returned or thrown\n if (isRouteRequest) {\n // eslint-disable-next-line no-throw-literal\n throw {\n type: resultType || ResultType.data,\n response: result,\n };\n }\n\n let data: any;\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n data = await result.json();\n } else {\n data = await result.text();\n }\n\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: new ErrorResponse(status, result.statusText, data),\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (resultType === ResultType.error) {\n return { type: resultType, error: result };\n }\n\n if (result instanceof DeferredData) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n return { type: ResultType.data, data: result };\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType, formData } = submission;\n init.method = formMethod.toUpperCase();\n init.body =\n formEncType === \"application/x-www-form-urlencoded\"\n ? convertFormDataToSearchParams(formData)\n : formData;\n }\n\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, value instanceof File ? value.name : value);\n }\n\n return searchParams;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n activeDeferreds: Map<string, DeferredData>\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record<string, Headers>;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record<string, Headers> = {};\n\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n // Look upwards from the matched route for the closest ancestor\n // error boundary, defaulting to the root match\n let boundaryMatch = findNearestBoundary(matches, id);\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError) {\n error = Object.values(pendingError)[0];\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n // Prefer higher error values if lower errors bubble to the same boundary\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n } else {\n loaderData[id] = result.data;\n }\n\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError) {\n errors = pendingError;\n loaderData[Object.keys(pendingError)[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: DataResult[],\n activeDeferreds: Map<string, DeferredData>\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingError,\n activeDeferreds\n );\n\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, match } = revalidatingFetchers[index];\n invariant(\n fetcherResults !== undefined && fetcherResults[index] !== undefined,\n \"Did not find corresponding fetcher result\"\n );\n let result = fetcherResults[index];\n\n // Process fetcher non-redirect errors\n if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: result.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route = routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\";\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponse(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(results: DataResult[]): RedirectResult | undefined {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return result;\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n return (\n a.pathname === b.pathname && a.search === b.search && a.hash !== b.hash\n );\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isQueryRouteResponse(obj: any): obj is QueryRouteResponse {\n return (\n obj &&\n isResponse(obj.response) &&\n (obj.type === ResultType.data || ResultType.error)\n );\n}\n\nfunction isValidMethod(method: string): method is FormMethod {\n return validRequestMethods.has(method as FormMethod);\n}\n\nfunction isMutationMethod(method?: string): method is MutationFormMethod {\n return validMutationMethods.has(method as MutationFormMethod);\n}\n\nasync function resolveDeferredResults(\n currentMatches: AgnosticDataRouteMatch[],\n matchesToLoad: (AgnosticDataRouteMatch | null)[],\n results: DataResult[],\n signal: AbortSignal,\n isFetcher: boolean,\n currentLoaderData?: RouteData\n) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n await resolveDeferredData(result, signal, isFetcher).then((result) => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise<SuccessResult | ErrorResult | undefined> {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\n// Note: This should match the format exported by useMatches, so if you change\n// this please also change that :) Eventually we'll DRY this up\nfunction createUseMatchesMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UseMatchesMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id] as unknown,\n handle: route.handle as unknown,\n };\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n//#endregion\n","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport * as React from \"react\";\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction isPolyfill(x: any, y: any) {\n return (\n (x === y && (x !== 0 || 1 / x === 1 / y)) || (x !== x && y !== y) // eslint-disable-line no-self-compare\n );\n}\n\nconst is: (x: any, y: any) => boolean =\n typeof Object.is === \"function\" ? Object.is : isPolyfill;\n\n// Intentionally not using named imports because Rollup uses dynamic\n// dispatch for CommonJS interop named imports.\nconst { useState, useEffect, useLayoutEffect, useDebugValue } = React;\n\nlet didWarnOld18Alpha = false;\nlet didWarnUncachedGetSnapshot = false;\n\n// Disclaimer: This shim breaks many of the rules of React, and only works\n// because of a very particular set of implementation details and assumptions\n// -- change any one of them and it will break. The most important assumption\n// is that updates are always synchronous, because concurrent rendering is\n// only available in versions of React that also have a built-in\n// useSyncExternalStore API. And we only use this shim when the built-in API\n// does not exist.\n//\n// Do not assume that the clever hacks used by this hook also work in general.\n// The point of this shim is to replace the need for hacks by other libraries.\nexport function useSyncExternalStore<T>(\n subscribe: (fn: () => void) => () => void,\n getSnapshot: () => T,\n // Note: The shim does not use getServerSnapshot, because pre-18 versions of\n // React do not expose a way to check if we're hydrating. So users of the shim\n // will need to track that themselves and return the correct value\n // from `getSnapshot`.\n getServerSnapshot?: () => T\n): T {\n if (__DEV__) {\n if (!didWarnOld18Alpha) {\n if (\"startTransition\" in React) {\n didWarnOld18Alpha = true;\n console.error(\n \"You are using an outdated, pre-release alpha of React 18 that \" +\n \"does not support useSyncExternalStore. The \" +\n \"use-sync-external-store shim will not work correctly. Upgrade \" +\n \"to a newer pre-release.\"\n );\n }\n }\n }\n\n // Read the current snapshot from the store on every render. Again, this\n // breaks the rules of React, and only works here because of specific\n // implementation details, most importantly that updates are\n // always synchronous.\n const value = getSnapshot();\n if (__DEV__) {\n if (!didWarnUncachedGetSnapshot) {\n const cachedValue = getSnapshot();\n if (!is(value, cachedValue)) {\n console.error(\n \"The result of getSnapshot should be cached to avoid an infinite loop\"\n );\n didWarnUncachedGetSnapshot = true;\n }\n }\n }\n\n // Because updates are synchronous, we don't queue them. Instead we force a\n // re-render whenever the subscribed state changes by updating an some\n // arbitrary useState hook. Then, during render, we call getSnapshot to read\n // the current value.\n //\n // Because we don't actually use the state returned by the useState hook, we\n // can save a bit of memory by storing other stuff in that slot.\n //\n // To implement the early bailout, we need to track some things on a mutable\n // object. Usually, we would put that in a useRef hook, but we can stash it in\n // our useState hook instead.\n //\n // To force a re-render, we call forceUpdate({inst}). That works because the\n // new object always fails an equality check.\n const [{ inst }, forceUpdate] = useState({ inst: { value, getSnapshot } });\n\n // Track the latest getSnapshot function with a ref. This needs to be updated\n // in the layout phase so we can access it during the tearing check that\n // happens on subscribe.\n useLayoutEffect(() => {\n inst.value = value;\n inst.getSnapshot = getSnapshot;\n\n // Whenever getSnapshot or subscribe changes, we need to check in the\n // commit phase if there was an interleaved mutation. In concurrent mode\n // this can happen all the time, but even in synchronous mode, an earlier\n // effect may have mutated the store.\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({ inst });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [subscribe, value, getSnapshot]);\n\n useEffect(() => {\n // Check for changes right before subscribing. Subsequent changes will be\n // detected in the subscription handler.\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({ inst });\n }\n const handleStoreChange = () => {\n // TODO: Because there is no cross-renderer API for batching updates, it's\n // up to the consumer of this library to wrap their subscription event\n // with unstable_batchedUpdates. Should we try to detect when this isn't\n // the case and print a warning in development?\n\n // The store changed. Check if the snapshot changed since the last time we\n // read from the store.\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({ inst });\n }\n };\n // Subscribe to the store and return a clean-up function.\n return subscribe(handleStoreChange);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [subscribe]);\n\n useDebugValue(value);\n return value;\n}\n\nfunction checkIfSnapshotChanged(inst: any) {\n const latestGetSnapshot = inst.getSnapshot;\n const prevValue = inst.value;\n try {\n const nextValue = latestGetSnapshot();\n return !is(prevValue, nextValue);\n } catch (error) {\n return true;\n }\n}\n","/**\n * Inlined into the react-router repo since use-sync-external-store does not\n * provide a UMD-compatible package, so we need this to be able to distribute\n * UMD react-router bundles\n */\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport * as React from \"react\";\n\nimport { useSyncExternalStore as client } from \"./useSyncExternalStoreShimClient\";\nimport { useSyncExternalStore as server } from \"./useSyncExternalStoreShimServer\";\n\nconst canUseDOM: boolean = !!(\n typeof window !== \"undefined\" &&\n typeof window.document !== \"undefined\" &&\n typeof window.document.createElement !== \"undefined\"\n);\nconst isServerEnvironment = !canUseDOM;\nconst shim = isServerEnvironment ? server : client;\n\nexport const useSyncExternalStore =\n \"useSyncExternalStore\" in React\n ? ((module) => module.useSyncExternalStore)(React)\n : shim;\n","import * as React from \"react\";\nimport type {\n AgnosticRouteMatch,\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n History,\n Location,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n LazyRouteFunction,\n} from \"@remix-run/router\";\nimport type { Action as NavigationType } from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticIndexRouteObject[\"path\"];\n id?: AgnosticIndexRouteObject[\"id\"];\n loader?: AgnosticIndexRouteObject[\"loader\"];\n action?: AgnosticIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticIndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction<IndexRouteObject>;\n}\n\nexport interface NonIndexRouteObject {\n caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticNonIndexRouteObject[\"path\"];\n id?: AgnosticNonIndexRouteObject[\"id\"];\n loader?: AgnosticNonIndexRouteObject[\"loader\"];\n action?: AgnosticNonIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticNonIndexRouteObject[\"handle\"];\n index?: false;\n children?: RouteObject[];\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction<NonIndexRouteObject>;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n children?: DataRouteObject[];\n id: string;\n};\n\nexport interface RouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch<ParamKey, RouteObjectType> {}\n\nexport interface DataRouteMatch extends RouteMatch<string, DataRouteObject> {}\n\nexport interface DataRouterContextObject extends NavigationContextObject {\n router: Router;\n staticContext?: StaticHandlerContext;\n}\n\nexport const DataRouterContext =\n React.createContext<DataRouterContextObject | null>(null);\nif (__DEV__) {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext<TrackedPromise | null>(null);\nif (__DEV__) {\n AwaitContext.displayName = \"Await\";\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level <Router> API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport interface Navigator {\n createHref: History[\"createHref\"];\n // Optional for backwards-compat with Router/HistoryRouter usage (edge case)\n encodeLocation?: History[\"encodeLocation\"];\n go: History[\"go\"];\n push(to: To, state?: any, opts?: NavigateOptions): void;\n replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n}\n\nexport const NavigationContext = React.createContext<NavigationContextObject>(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext<LocationContextObject>(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n}\n\nexport const RouteContext = React.createContext<RouteContextObject>({\n outlet: null,\n matches: [],\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext<any>(null);\n\nif (__DEV__) {\n RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n Blocker,\n BlockerFunction,\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n Router as RemixRouter,\n To,\n} from \"@remix-run/router\";\nimport {\n Action as NavigationType,\n UNSAFE_invariant as invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n UNSAFE_getPathContributingMatches as getPathContributingMatches,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n DataRouteMatch,\n RelativeRoutingType,\n} from \"./context\";\nimport {\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n AwaitContext,\n} from \"./context\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nexport function useHref(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a <Router> component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to, { relative });\n\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname =\n pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a <Router>.\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a <Router> component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * <NavLink>.\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nexport function useMatch<\n ParamKey extends ParamParseKey<Path>,\n Path extends string\n>(pattern: PathPattern<Path> | Path): PathMatch<ParamKey> | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a <Router> component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath<ParamKey, Path>(pattern, pathname),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\n/**\n * Returns an imperative method for changing the location. Used by <Link>s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nexport function useNavigate(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a <Router> component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getPathContributingMatches(matches).map((match) => match.pathnameBase)\n );\n\n let activeRef = React.useRef(false);\n React.useEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(\n activeRef.current,\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`\n );\n\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history. If this is a root navigation, then we\n // navigate to the raw basename which allows the basename to have full\n // control over the presence of a trailing slash on root links\n if (basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [basename, navigator, routePathnamesJson, locationPathname]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext<unknown>(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nexport function useOutletContext<Context = unknown>(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by <Outlet> to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n <OutletContext.Provider value={context}>{outlet}</OutletContext.Provider>\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nexport function useParams<\n ParamsOrKey extends string | Record<string, string | undefined> = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params<ParamsOrKey> : Partial<ParamsOrKey>\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getPathContributingMatches(matches).map((match) => match.pathnameBase)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an <Outlet> to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial<Location> | string\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a <Router> component.`\n );\n\n let { navigator } = React.useContext(NavigationContext);\n let dataRouterStateContext = React.useContext(DataRouterStateContext);\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different <Routes> under a <Route>\n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // <Routes>\n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // <Route path=\"blog\" element={<Blog />} />\n // <Route path=\"blog/feed\" element={<BlogFeed />} />\n // </Routes>\n //\n // function Blog() {\n // return (\n // <Routes>\n // <Route path=\"post/:id\" element={<Post />} />\n // </Routes>\n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant <Routes> (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under <Route path=\"${parentPath}\">) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent <Route path=\"${parentPath}\"> to <Route ` +\n `path=\"${parentPath === \"/\" ? \"*\" : `${parentPath}/*`}\">.`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`<Routes location>\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n let remainingPathname =\n parentPathnameBase === \"/\"\n ? pathname\n : pathname.slice(parentPathnameBase.length) || \"/\";\n\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined ||\n matches[matches.length - 1].route.Component !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" ` +\n `does not have an element or Component. This means it will render an <Outlet /> with a ` +\n `null value by default resulting in an \"empty\" page.`\n );\n }\n\n let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathname).pathname\n : match.pathname,\n ]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathnameBase).pathname\n : match.pathnameBase,\n ]),\n })\n ),\n parentMatches,\n dataRouterStateContext || undefined\n );\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return (\n <LocationContext.Provider\n value={{\n location: {\n pathname: \"/\",\n search: \"\",\n hash: \"\",\n state: null,\n key: \"default\",\n ...location,\n },\n navigationType: NavigationType.Pop,\n }}\n >\n {renderedMatches}\n </LocationContext.Provider>\n );\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error)\n ? `${error.status} ${error.statusText}`\n : error instanceof Error\n ? error.message\n : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n\n let devInfo = null;\n if (__DEV__) {\n devInfo = (\n <>\n <p>💿 Hey developer 👋</p>\n <p>\n You can provide a way better UX than this when your app throws errors\n by providing your own \n <code style={codeStyles}>ErrorBoundary</code> prop on \n <code style={codeStyles}><Route></code>\n </p>\n </>\n );\n }\n\n return (\n <>\n <h2>Unexpected Application Error!</h2>\n <h3 style={{ fontStyle: \"italic\" }}>{message}</h3>\n {stack ? <pre style={preStyles}>{stack}</pre> : null}\n {devInfo}\n </>\n );\n}\n\ntype RenderErrorBoundaryProps = React.PropsWithChildren<{\n location: Location;\n error: any;\n component: React.ReactNode;\n routeContext: RouteContextObject;\n}>;\n\ntype RenderErrorBoundaryState = {\n location: Location;\n error: any;\n};\n\nexport class RenderErrorBoundary extends React.Component<\n RenderErrorBoundaryProps,\n RenderErrorBoundaryState\n> {\n constructor(props: RenderErrorBoundaryProps) {\n super(props);\n this.state = {\n location: props.location,\n error: props.error,\n };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error: error };\n }\n\n static getDerivedStateFromProps(\n props: RenderErrorBoundaryProps,\n state: RenderErrorBoundaryState\n ) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (state.location !== props.location) {\n return {\n error: props.error,\n location: props.location,\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error || state.error,\n location: state.location,\n };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"React Router caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n return this.state.error ? (\n <RouteContext.Provider value={this.props.routeContext}>\n <RouteErrorContext.Provider\n value={this.state.error}\n children={this.props.component}\n />\n </RouteContext.Provider>\n ) : (\n this.props.children\n );\n }\n}\n\ninterface RenderedRouteProps {\n routeContext: RouteContextObject;\n match: RouteMatch<string, RouteObject>;\n children: React.ReactNode | null;\n}\n\nfunction RenderedRoute({ routeContext, match, children }: RenderedRouteProps) {\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (\n dataRouterContext &&\n dataRouterContext.static &&\n dataRouterContext.staticContext &&\n (match.route.errorElement || match.route.ErrorBoundary)\n ) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n\n return (\n <RouteContext.Provider value={routeContext}>\n {children}\n </RouteContext.Provider>\n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = [],\n dataRouterState?: RemixRouter[\"state\"]\n): React.ReactElement | null {\n if (matches == null) {\n if (dataRouterState?.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches as DataRouteMatch[];\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = dataRouterState?.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(\n (m) => m.route.id && errors?.[m.route.id]\n );\n invariant(\n errorIndex >= 0,\n `Could not find a matching route for the current errors: ${errors}`\n );\n renderedMatches = renderedMatches.slice(\n 0,\n Math.min(renderedMatches.length, errorIndex + 1)\n );\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n let error = match.route.id ? errors?.[match.route.id] : null;\n // Only data routers handle errors\n let errorElement: React.ReactNode | null = null;\n if (dataRouterState) {\n if (match.route.ErrorBoundary) {\n errorElement = <match.route.ErrorBoundary />;\n } else if (match.route.errorElement) {\n errorElement = match.route.errorElement;\n } else {\n errorElement = <DefaultErrorComponent />;\n }\n }\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children: React.ReactNode = outlet;\n if (error) {\n children = errorElement;\n } else if (match.route.Component) {\n children = <match.route.Component />;\n } else if (match.route.element) {\n children = match.route.element;\n }\n return (\n <RenderedRoute\n match={match}\n routeContext={{ outlet, matches }}\n children={children}\n />\n );\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState &&\n (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? (\n <RenderErrorBoundary\n location={dataRouterState.location}\n component={errorElement}\n error={error}\n children={getChildren()}\n routeContext={{ outlet: null, matches }}\n />\n ) : (\n getChildren()\n );\n }, null as React.ReactElement | null);\n}\n\nenum DataRouterHook {\n UseBlocker = \"useBlocker\",\n UseRevalidator = \"useRevalidator\",\n}\n\nenum DataRouterStateHook {\n UseBlocker = \"useBlocker\",\n UseLoaderData = \"useLoaderData\",\n UseActionData = \"useActionData\",\n UseRouteError = \"useRouteError\",\n UseNavigation = \"useNavigation\",\n UseRouteLoaderData = \"useRouteLoaderData\",\n UseMatches = \"useMatches\",\n UseRevalidator = \"useRevalidator\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\nfunction useRouteContext(hookName: DataRouterStateHook) {\n let route = React.useContext(RouteContext);\n invariant(route, getDataRouterConsoleError(hookName));\n return route;\n}\n\nfunction useCurrentRouteId(hookName: DataRouterStateHook) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n invariant(\n thisRoute.route.id,\n `${hookName} can only be used on routes that contain a unique \"id\"`\n );\n return thisRoute.route.id;\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nexport function useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nexport function useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return {\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation,\n };\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nexport function useMatches() {\n let { matches, loaderData } = useDataRouterState(\n DataRouterStateHook.UseMatches\n );\n return React.useMemo(\n () =>\n matches.map((match) => {\n let { pathname, params } = match;\n // Note: This structure matches that created by createUseMatchesMatch\n // in the @remix-run/router , so if you change this please also change\n // that :) Eventually we'll DRY this up\n return {\n id: match.route.id,\n pathname,\n params,\n data: loaderData[match.route.id] as unknown,\n handle: match.route.handle as unknown,\n };\n }),\n [matches, loaderData]\n );\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nexport function useLoaderData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n\n if (state.errors && state.errors[routeId] != null) {\n console.error(\n `You cannot \\`useLoaderData\\` in an errorElement (routeId: ${routeId})`\n );\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nexport function useRouteLoaderData(routeId: string): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nexport function useActionData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n\n let route = React.useContext(RouteContext);\n invariant(route, `useActionData must be used inside a RouteContext`);\n\n return Object.values(state?.actionData || {})[0];\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nexport function useRouteError(): unknown {\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return state.errors?.[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor <Await /> value\n */\nexport function useAsyncValue(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._data;\n}\n\n/**\n * Returns the error from the nearest ancestor <Await /> value\n */\nexport function useAsyncError(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._error;\n}\n\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nexport function useBlocker(shouldBlock: boolean | BlockerFunction): Blocker {\n let { router } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n let [blockerKey] = React.useState(() => String(++blockerId));\n\n let blockerFunction = React.useCallback<BlockerFunction>(\n (args) => {\n return typeof shouldBlock === \"function\"\n ? !!shouldBlock(args)\n : !!shouldBlock;\n },\n [shouldBlock]\n );\n\n let blocker = router.getBlocker(blockerKey, blockerFunction);\n\n // Cleanup on unmount\n React.useEffect(\n () => () => router.deleteBlocker(blockerKey),\n [router, blockerKey]\n );\n\n // Prefer the blocker from state since DataRouterContext is memoized so this\n // ensures we update on blocker state updates\n return state.blockers.get(blockerKey) || blocker;\n}\n\nconst alreadyWarned: Record<string, boolean> = {};\n\nfunction warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n","import * as React from \"react\";\nimport type {\n TrackedPromise,\n InitialEntry,\n Location,\n MemoryHistory,\n Router as RemixRouter,\n RouterState,\n To,\n LazyRouteFunction,\n} from \"@remix-run/router\";\nimport {\n Action as NavigationType,\n AbortedDeferredError,\n createMemoryHistory,\n UNSAFE_invariant as invariant,\n parsePath,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\nimport { useSyncExternalStore as useSyncExternalStoreShim } from \"./use-sync-external-store-shim\";\n\nimport type {\n DataRouteObject,\n IndexRouteObject,\n RouteMatch,\n RouteObject,\n Navigator,\n NonIndexRouteObject,\n RelativeRoutingType,\n} from \"./context\";\nimport {\n LocationContext,\n NavigationContext,\n DataRouterContext,\n DataRouterStateContext,\n AwaitContext,\n} from \"./context\";\nimport {\n useAsyncValue,\n useInRouterContext,\n useNavigate,\n useOutlet,\n useRoutes,\n _renderMatches,\n} from \"./hooks\";\n\nexport interface RouterProviderProps {\n fallbackElement?: React.ReactNode;\n router: RemixRouter;\n}\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nexport function RouterProvider({\n fallbackElement,\n router,\n}: RouterProviderProps): React.ReactElement {\n let getState = React.useCallback(() => router.state, [router]);\n\n // Sync router state to our component state to force re-renders\n let state: RouterState = useSyncExternalStoreShim(\n router.subscribe,\n getState,\n // We have to provide this so React@18 doesn't complain during hydration,\n // but we pass our serialized hydration data into the router so state here\n // is already synced with what the server saw\n getState\n );\n\n let navigator = React.useMemo((): Navigator => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: (n) => router.navigate(n),\n push: (to, state, opts) =>\n router.navigate(to, {\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n replace: (to, state, opts) =>\n router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n };\n }, [router]);\n\n let basename = router.basename || \"/\";\n\n let dataRouterContext = React.useMemo(\n () => ({\n router,\n navigator,\n static: false,\n basename,\n }),\n [router, navigator, basename]\n );\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a <script> here\n // containing the hydrated server-side staticContext (from StaticRouterProvider).\n // useId relies on the component tree structure to generate deterministic id's\n // so we need to ensure it remains the same on the client even though\n // we don't need the <script> tag\n return (\n <>\n <DataRouterContext.Provider value={dataRouterContext}>\n <DataRouterStateContext.Provider value={state}>\n <Router\n basename={router.basename}\n location={router.state.location}\n navigationType={router.state.historyAction}\n navigator={navigator}\n >\n {router.state.initialized ? <Routes /> : fallbackElement}\n </Router>\n </DataRouterStateContext.Provider>\n </DataRouterContext.Provider>\n {null}\n </>\n );\n}\n\nexport interface MemoryRouterProps {\n basename?: string;\n children?: React.ReactNode;\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n}\n\n/**\n * A <Router> that stores all entries in memory.\n *\n * @see https://reactrouter.com/router-components/memory-router\n */\nexport function MemoryRouter({\n basename,\n children,\n initialEntries,\n initialIndex,\n}: MemoryRouterProps): React.ReactElement {\n let historyRef = React.useRef<MemoryHistory>();\n if (historyRef.current == null) {\n historyRef.current = createMemoryHistory({\n initialEntries,\n initialIndex,\n v5Compat: true,\n });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n <Router\n basename={basename}\n children={children}\n location={state.location}\n navigationType={state.action}\n navigator={history}\n />\n );\n}\n\nexport interface NavigateProps {\n to: To;\n replace?: boolean;\n state?: any;\n relative?: RelativeRoutingType;\n}\n\n/**\n * Changes the current location.\n *\n * Note: This API is mostly useful in React.Component subclasses that are not\n * able to use hooks. In functional components, we recommend you use the\n * `useNavigate` hook instead.\n *\n * @see https://reactrouter.com/components/navigate\n */\nexport function Navigate({\n to,\n replace,\n state,\n relative,\n}: NavigateProps): null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of\n // the router loaded. We can help them understand how to avoid that.\n `<Navigate> may be used only in the context of a <Router> component.`\n );\n\n warning(\n !React.useContext(NavigationContext).static,\n `<Navigate> must not be used on the initial render in a <StaticRouter>. ` +\n `This is a no-op, but you should modify your code so the <Navigate> is ` +\n `only ever rendered in response to some user interaction or state change.`\n );\n\n let dataRouterState = React.useContext(DataRouterStateContext);\n let navigate = useNavigate();\n\n React.useEffect(() => {\n // Avoid kicking off multiple navigations if we're in the middle of a\n // data-router navigation, since components get re-rendered when we enter\n // a submitting/loading state\n if (dataRouterState && dataRouterState.navigation.state !== \"idle\") {\n return;\n }\n navigate(to, { replace, state, relative });\n });\n\n return null;\n}\n\nexport interface OutletProps {\n context?: unknown;\n}\n\n/**\n * Renders the child route's element, if there is one.\n *\n * @see https://reactrouter.com/components/outlet\n */\nexport function Outlet(props: OutletProps): React.ReactElement | null {\n return useOutlet(props.context);\n}\n\nexport interface PathRouteProps {\n caseSensitive?: NonIndexRouteObject[\"caseSensitive\"];\n path?: NonIndexRouteObject[\"path\"];\n id?: NonIndexRouteObject[\"id\"];\n lazy?: LazyRouteFunction<NonIndexRouteObject>;\n loader?: NonIndexRouteObject[\"loader\"];\n action?: NonIndexRouteObject[\"action\"];\n hasErrorBoundary?: NonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: NonIndexRouteObject[\"shouldRevalidate\"];\n handle?: NonIndexRouteObject[\"handle\"];\n index?: false;\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n}\n\nexport interface LayoutRouteProps extends PathRouteProps {}\n\nexport interface IndexRouteProps {\n caseSensitive?: IndexRouteObject[\"caseSensitive\"];\n path?: IndexRouteObject[\"path\"];\n id?: IndexRouteObject[\"id\"];\n lazy?: LazyRouteFunction<IndexRouteObject>;\n loader?: IndexRouteObject[\"loader\"];\n action?: IndexRouteObject[\"action\"];\n hasErrorBoundary?: IndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: IndexRouteObject[\"shouldRevalidate\"];\n handle?: IndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n}\n\nexport type RouteProps = PathRouteProps | LayoutRouteProps | IndexRouteProps;\n\n/**\n * Declares an element that should be rendered at a certain URL path.\n *\n * @see https://reactrouter.com/components/route\n */\nexport function Route(_props: RouteProps): React.ReactElement | null {\n invariant(\n false,\n `A <Route> is only ever to be used as the child of <Routes> element, ` +\n `never rendered directly. Please wrap your <Route> in a <Routes>.`\n );\n}\n\nexport interface RouterProps {\n basename?: string;\n children?: React.ReactNode;\n location: Partial<Location> | string;\n navigationType?: NavigationType;\n navigator: Navigator;\n static?: boolean;\n}\n\n/**\n * Provides location context for the rest of the app.\n *\n * Note: You usually won't render a <Router> directly. Instead, you'll render a\n * router that is more specific to your environment such as a <BrowserRouter>\n * in web browsers or a <StaticRouter> for server rendering.\n *\n * @see https://reactrouter.com/router-components/router\n */\nexport function Router({\n basename: basenameProp = \"/\",\n children = null,\n location: locationProp,\n navigationType = NavigationType.Pop,\n navigator,\n static: staticProp = false,\n}: RouterProps): React.ReactElement | null {\n invariant(\n !useInRouterContext(),\n `You cannot render a <Router> inside another <Router>.` +\n ` You should never have more than one in your app.`\n );\n\n // Preserve trailing slashes on basename, so we can let the user control\n // the enforcement of trailing slashes throughout the app\n let basename = basenameProp.replace(/^\\/*/, \"/\");\n let navigationContext = React.useMemo(\n () => ({ basename, navigator, static: staticProp }),\n [basename, navigator, staticProp]\n );\n\n if (typeof locationProp === \"string\") {\n locationProp = parsePath(locationProp);\n }\n\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n state = null,\n key = \"default\",\n } = locationProp;\n\n let locationContext = React.useMemo(() => {\n let trailingPathname = stripBasename(pathname, basename);\n\n if (trailingPathname == null) {\n return null;\n }\n\n return {\n location: {\n pathname: trailingPathname,\n search,\n hash,\n state,\n key,\n },\n navigationType,\n };\n }, [basename, pathname, search, hash, state, key, navigationType]);\n\n warning(\n locationContext != null,\n `<Router basename=\"${basename}\"> is not able to match the URL ` +\n `\"${pathname}${search}${hash}\" because it does not start with the ` +\n `basename, so the <Router> won't render anything.`\n );\n\n if (locationContext == null) {\n return null;\n }\n\n return (\n <NavigationContext.Provider value={navigationContext}>\n <LocationContext.Provider children={children} value={locationContext} />\n </NavigationContext.Provider>\n );\n}\n\nexport interface RoutesProps {\n children?: React.ReactNode;\n location?: Partial<Location> | string;\n}\n\n/**\n * A container for a nested tree of <Route> elements that renders the branch\n * that best matches the current location.\n *\n * @see https://reactrouter.com/components/routes\n */\nexport function Routes({\n children,\n location,\n}: RoutesProps): React.ReactElement | null {\n let dataRouterContext = React.useContext(DataRouterContext);\n // When in a DataRouterContext _without_ children, we use the router routes\n // directly. If we have children, then we're in a descendant tree and we\n // need to use child routes.\n let routes =\n dataRouterContext && !children\n ? (dataRouterContext.router.routes as DataRouteObject[])\n : createRoutesFromChildren(children);\n return useRoutes(routes, location);\n}\n\nexport interface AwaitResolveRenderFunction {\n (data: Awaited<any>): React.ReactNode;\n}\n\nexport interface AwaitProps {\n children: React.ReactNode | AwaitResolveRenderFunction;\n errorElement?: React.ReactNode;\n resolve: TrackedPromise | any;\n}\n\n/**\n * Component to use for rendering lazily loaded data from returning defer()\n * in a loader function\n */\nexport function Await({ children, errorElement, resolve }: AwaitProps) {\n return (\n <AwaitErrorBoundary resolve={resolve} errorElement={errorElement}>\n <ResolveAwait>{children}</ResolveAwait>\n </AwaitErrorBoundary>\n );\n}\n\ntype AwaitErrorBoundaryProps = React.PropsWithChildren<{\n errorElement?: React.ReactNode;\n resolve: TrackedPromise | any;\n}>;\n\ntype AwaitErrorBoundaryState = {\n error: any;\n};\n\nenum AwaitRenderStatus {\n pending,\n success,\n error,\n}\n\nconst neverSettledPromise = new Promise(() => {});\n\nclass AwaitErrorBoundary extends React.Component<\n AwaitErrorBoundaryProps,\n AwaitErrorBoundaryState\n> {\n constructor(props: AwaitErrorBoundaryProps) {\n super(props);\n this.state = { error: null };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"<Await> caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n let { children, errorElement, resolve } = this.props;\n\n let promise: TrackedPromise | null = null;\n let status: AwaitRenderStatus = AwaitRenderStatus.pending;\n\n if (!(resolve instanceof Promise)) {\n // Didn't get a promise - provide as a resolved promise\n status = AwaitRenderStatus.success;\n promise = Promise.resolve();\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n Object.defineProperty(promise, \"_data\", { get: () => resolve });\n } else if (this.state.error) {\n // Caught a render error, provide it as a rejected promise\n status = AwaitRenderStatus.error;\n let renderError = this.state.error;\n promise = Promise.reject().catch(() => {}); // Avoid unhandled rejection warnings\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n Object.defineProperty(promise, \"_error\", { get: () => renderError });\n } else if ((resolve as TrackedPromise)._tracked) {\n // Already tracked promise - check contents\n promise = resolve;\n status =\n promise._error !== undefined\n ? AwaitRenderStatus.error\n : promise._data !== undefined\n ? AwaitRenderStatus.success\n : AwaitRenderStatus.pending;\n } else {\n // Raw (untracked) promise - track it\n status = AwaitRenderStatus.pending;\n Object.defineProperty(resolve, \"_tracked\", { get: () => true });\n promise = resolve.then(\n (data: any) =>\n Object.defineProperty(resolve, \"_data\", { get: () => data }),\n (error: any) =>\n Object.defineProperty(resolve, \"_error\", { get: () => error })\n );\n }\n\n if (\n status === AwaitRenderStatus.error &&\n promise._error instanceof AbortedDeferredError\n ) {\n // Freeze the UI by throwing a never resolved promise\n throw neverSettledPromise;\n }\n\n if (status === AwaitRenderStatus.error && !errorElement) {\n // No errorElement, throw to the nearest route-level error boundary\n throw promise._error;\n }\n\n if (status === AwaitRenderStatus.error) {\n // Render via our errorElement\n return <AwaitContext.Provider value={promise} children={errorElement} />;\n }\n\n if (status === AwaitRenderStatus.success) {\n // Render children with resolved value\n return <AwaitContext.Provider value={promise} children={children} />;\n }\n\n // Throw to the suspense boundary\n throw promise;\n }\n}\n\n/**\n * @private\n * Indirection to leverage useAsyncValue for a render-prop API on <Await>\n */\nfunction ResolveAwait({\n children,\n}: {\n children: React.ReactNode | AwaitResolveRenderFunction;\n}) {\n let data = useAsyncValue();\n let toRender = typeof children === \"function\" ? children(data) : children;\n return <>{toRender}</>;\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// UTILS\n///////////////////////////////////////////////////////////////////////////////\n\n/**\n * Creates a route config from a React \"children\" object, which is usually\n * either a `<Route>` element or an array of them. Used internally by\n * `<Routes>` to create a route config from its children.\n *\n * @see https://reactrouter.com/utils/create-routes-from-children\n */\nexport function createRoutesFromChildren(\n children: React.ReactNode,\n parentPath: number[] = []\n): RouteObject[] {\n let routes: RouteObject[] = [];\n\n React.Children.forEach(children, (element, index) => {\n if (!React.isValidElement(element)) {\n // Ignore non-elements. This allows people to more easily inline\n // conditionals in their route config.\n return;\n }\n\n if (element.type === React.Fragment) {\n // Transparently support React.Fragment and its children.\n routes.push.apply(\n routes,\n createRoutesFromChildren(element.props.children, parentPath)\n );\n return;\n }\n\n invariant(\n element.type === Route,\n `[${\n typeof element.type === \"string\" ? element.type : element.type.name\n }] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>`\n );\n\n invariant(\n !element.props.index || !element.props.children,\n \"An index route cannot have child routes.\"\n );\n\n let treePath = [...parentPath, index];\n let route: RouteObject = {\n id: element.props.id || treePath.join(\"-\"),\n caseSensitive: element.props.caseSensitive,\n element: element.props.element,\n Component: element.props.Component,\n index: element.props.index,\n path: element.props.path,\n loader: element.props.loader,\n action: element.props.action,\n errorElement: element.props.errorElement,\n ErrorBoundary: element.props.ErrorBoundary,\n hasErrorBoundary:\n element.props.ErrorBoundary != null ||\n element.props.errorElement != null,\n shouldRevalidate: element.props.shouldRevalidate,\n handle: element.props.handle,\n lazy: element.props.lazy,\n };\n\n if (element.props.children) {\n route.children = createRoutesFromChildren(\n element.props.children,\n treePath\n );\n }\n\n routes.push(route);\n });\n\n return routes;\n}\n\n/**\n * Renders the result of `matchRoutes()` into a React element.\n */\nexport function renderMatches(\n matches: RouteMatch[] | null\n): React.ReactElement | null {\n return _renderMatches(matches);\n}\n","import React from \"react\";\r\nimport \"../assets/styles/pages/style.css\";\r\n\r\nfunction DepartmentHeader(props) {\r\n return (\r\n <>\r\n <div>\r\n <div >\r\n <h1 id={props.header} title={props.header} className=\" main-header-layout\">{props.header}<div className=\"green-underline\"></div></h1>\r\n </div>\r\n </div>\r\n </>\r\n );\r\n}\r\n\r\nexport default DepartmentHeader;","import classNames from 'classnames';\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst propTypes = {\n /**\n * Specify whether the feedback is for valid or invalid fields\n *\n * @type {('valid'|'invalid')}\n */\n type: PropTypes.string,\n /** Display feedback as a tooltip. */\n tooltip: PropTypes.bool,\n as: PropTypes.elementType\n};\nconst Feedback = /*#__PURE__*/React.forwardRef(\n// Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n({\n as: Component = 'div',\n className,\n type = 'valid',\n tooltip = false,\n ...props\n}, ref) => /*#__PURE__*/_jsx(Component, {\n ...props,\n ref: ref,\n className: classNames(className, `${type}-${tooltip ? 'tooltip' : 'feedback'}`)\n}));\nFeedback.displayName = 'Feedback';\nFeedback.propTypes = propTypes;\nexport default Feedback;","\"use client\";\n\nimport * as React from 'react';\n\n// TODO\n\nconst FormContext = /*#__PURE__*/React.createContext({});\nexport default FormContext;","\"use client\";\n\nimport * as React from 'react';\nimport { useContext, useMemo } from 'react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const DEFAULT_BREAKPOINTS = ['xxl', 'xl', 'lg', 'md', 'sm', 'xs'];\nexport const DEFAULT_MIN_BREAKPOINT = 'xs';\nconst ThemeContext = /*#__PURE__*/React.createContext({\n prefixes: {},\n breakpoints: DEFAULT_BREAKPOINTS,\n minBreakpoint: DEFAULT_MIN_BREAKPOINT\n});\nconst {\n Consumer,\n Provider\n} = ThemeContext;\nfunction ThemeProvider({\n prefixes = {},\n breakpoints = DEFAULT_BREAKPOINTS,\n minBreakpoint = DEFAULT_MIN_BREAKPOINT,\n dir,\n children\n}) {\n const contextValue = useMemo(() => ({\n prefixes: {\n ...prefixes\n },\n breakpoints,\n minBreakpoint,\n dir\n }), [prefixes, breakpoints, minBreakpoint, dir]);\n return /*#__PURE__*/_jsx(Provider, {\n value: contextValue,\n children: children\n });\n}\nexport function useBootstrapPrefix(prefix, defaultPrefix) {\n const {\n prefixes\n } = useContext(ThemeContext);\n return prefix || prefixes[defaultPrefix] || defaultPrefix;\n}\nexport function useBootstrapBreakpoints() {\n const {\n breakpoints\n } = useContext(ThemeContext);\n return breakpoints;\n}\nexport function useBootstrapMinBreakpoint() {\n const {\n minBreakpoint\n } = useContext(ThemeContext);\n return minBreakpoint;\n}\nexport function useIsRTL() {\n const {\n dir\n } = useContext(ThemeContext);\n return dir === 'rtl';\n}\nfunction createBootstrapComponent(Component, opts) {\n if (typeof opts === 'string') opts = {\n prefix: opts\n };\n const isClassy = Component.prototype && Component.prototype.isReactComponent;\n // If it's a functional component make sure we don't break it with a ref\n const {\n prefix,\n forwardRefAs = isClassy ? 'ref' : 'innerRef'\n } = opts;\n const Wrapped = /*#__PURE__*/React.forwardRef(({\n ...props\n }, ref) => {\n props[forwardRefAs] = ref;\n const bsPrefix = useBootstrapPrefix(props.bsPrefix, prefix);\n return /*#__PURE__*/_jsx(Component, {\n ...props,\n bsPrefix: bsPrefix\n });\n });\n Wrapped.displayName = `Bootstrap(${Component.displayName || Component.name})`;\n return Wrapped;\n}\nexport { createBootstrapComponent, Consumer as ThemeConsumer };\nexport default ThemeProvider;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport FormContext from './FormContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormCheckInput = /*#__PURE__*/React.forwardRef(({\n id,\n bsPrefix,\n className,\n type = 'checkbox',\n isValid = false,\n isInvalid = false,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'input',\n ...props\n}, ref) => {\n const {\n controlId\n } = useContext(FormContext);\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-check-input');\n return /*#__PURE__*/_jsx(Component, {\n ...props,\n ref: ref,\n type: type,\n id: id || controlId,\n className: classNames(className, bsPrefix, isValid && 'is-valid', isInvalid && 'is-invalid')\n });\n});\nFormCheckInput.displayName = 'FormCheckInput';\nexport default FormCheckInput;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport FormContext from './FormContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormCheckLabel = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n htmlFor,\n ...props\n}, ref) => {\n const {\n controlId\n } = useContext(FormContext);\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-check-label');\n return /*#__PURE__*/_jsx(\"label\", {\n ...props,\n ref: ref,\n htmlFor: htmlFor || controlId,\n className: classNames(className, bsPrefix)\n });\n});\nFormCheckLabel.displayName = 'FormCheckLabel';\nexport default FormCheckLabel;","import * as React from 'react';\n\n/**\n * Iterates through children that are typically specified as `props.children`,\n * but only maps over children that are \"valid elements\".\n *\n * The mapFunction provided index will be normalised to the components mapped,\n * so an invalid component would not increase the index.\n *\n */\nfunction map(children, func) {\n let index = 0;\n return React.Children.map(children, child => /*#__PURE__*/React.isValidElement(child) ? func(child, index++) : child);\n}\n\n/**\n * Iterates through children that are \"valid elements\".\n *\n * The provided forEachFunc(child, index) will be called for each\n * leaf child with the index reflecting the position relative to \"valid components\".\n */\nfunction forEach(children, func) {\n let index = 0;\n React.Children.forEach(children, child => {\n if ( /*#__PURE__*/React.isValidElement(child)) func(child, index++);\n });\n}\n\n/**\n * Finds whether a component's `children` prop includes a React element of the\n * specified type.\n */\nfunction hasChildOfType(children, type) {\n return React.Children.toArray(children).some(child => /*#__PURE__*/React.isValidElement(child) && child.type === type);\n}\nexport { map, forEach, hasChildOfType };","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext, useMemo } from 'react';\nimport Feedback from './Feedback';\nimport FormCheckInput from './FormCheckInput';\nimport FormCheckLabel from './FormCheckLabel';\nimport FormContext from './FormContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { hasChildOfType } from './ElementChildren';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst FormCheck = /*#__PURE__*/React.forwardRef(({\n id,\n bsPrefix,\n bsSwitchPrefix,\n inline = false,\n reverse = false,\n disabled = false,\n isValid = false,\n isInvalid = false,\n feedbackTooltip = false,\n feedback,\n feedbackType,\n className,\n style,\n title = '',\n type = 'checkbox',\n label,\n children,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as = 'input',\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-check');\n bsSwitchPrefix = useBootstrapPrefix(bsSwitchPrefix, 'form-switch');\n const {\n controlId\n } = useContext(FormContext);\n const innerFormContext = useMemo(() => ({\n controlId: id || controlId\n }), [controlId, id]);\n const hasLabel = !children && label != null && label !== false || hasChildOfType(children, FormCheckLabel);\n const input = /*#__PURE__*/_jsx(FormCheckInput, {\n ...props,\n type: type === 'switch' ? 'checkbox' : type,\n ref: ref,\n isValid: isValid,\n isInvalid: isInvalid,\n disabled: disabled,\n as: as\n });\n return /*#__PURE__*/_jsx(FormContext.Provider, {\n value: innerFormContext,\n children: /*#__PURE__*/_jsx(\"div\", {\n style: style,\n className: classNames(className, hasLabel && bsPrefix, inline && `${bsPrefix}-inline`, reverse && `${bsPrefix}-reverse`, type === 'switch' && bsSwitchPrefix),\n children: children || /*#__PURE__*/_jsxs(_Fragment, {\n children: [input, hasLabel && /*#__PURE__*/_jsx(FormCheckLabel, {\n title: title,\n children: label\n }), feedback && /*#__PURE__*/_jsx(Feedback, {\n type: feedbackType,\n tooltip: feedbackTooltip,\n children: feedback\n })]\n })\n })\n });\n});\nFormCheck.displayName = 'FormCheck';\nexport default Object.assign(FormCheck, {\n Input: FormCheckInput,\n Label: FormCheckLabel\n});","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport warning from 'warning';\nimport Feedback from './Feedback';\nimport FormContext from './FormContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormControl = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n type,\n size,\n htmlSize,\n id,\n className,\n isValid = false,\n isInvalid = false,\n plaintext,\n readOnly,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'input',\n ...props\n}, ref) => {\n const {\n controlId\n } = useContext(FormContext);\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-control');\n process.env.NODE_ENV !== \"production\" ? warning(controlId == null || !id, '`controlId` is ignored on `<FormControl>` when `id` is specified.') : void 0;\n return /*#__PURE__*/_jsx(Component, {\n ...props,\n type: type,\n size: htmlSize,\n ref: ref,\n readOnly: readOnly,\n id: id || controlId,\n className: classNames(className, plaintext ? `${bsPrefix}-plaintext` : bsPrefix, size && `${bsPrefix}-${size}`, type === 'color' && `${bsPrefix}-color`, isValid && 'is-valid', isInvalid && 'is-invalid')\n });\n});\nFormControl.displayName = 'FormControl';\nexport default Object.assign(FormControl, {\n Feedback\n});","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormFloating = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = 'div',\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-floating');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n ...props\n });\n});\nFormFloating.displayName = 'FormFloating';\nexport default FormFloating;","import * as React from 'react';\nimport { useMemo } from 'react';\nimport FormContext from './FormContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormGroup = /*#__PURE__*/React.forwardRef(({\n controlId,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n ...props\n}, ref) => {\n const context = useMemo(() => ({\n controlId\n }), [controlId]);\n return /*#__PURE__*/_jsx(FormContext.Provider, {\n value: context,\n children: /*#__PURE__*/_jsx(Component, {\n ...props,\n ref: ref\n })\n });\n});\nFormGroup.displayName = 'FormGroup';\nexport default FormGroup;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix, useBootstrapBreakpoints, useBootstrapMinBreakpoint } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function useCol({\n as,\n bsPrefix,\n className,\n ...props\n}) {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'col');\n const breakpoints = useBootstrapBreakpoints();\n const minBreakpoint = useBootstrapMinBreakpoint();\n const spans = [];\n const classes = [];\n breakpoints.forEach(brkPoint => {\n const propValue = props[brkPoint];\n delete props[brkPoint];\n let span;\n let offset;\n let order;\n if (typeof propValue === 'object' && propValue != null) {\n ({\n span,\n offset,\n order\n } = propValue);\n } else {\n span = propValue;\n }\n const infix = brkPoint !== minBreakpoint ? `-${brkPoint}` : '';\n if (span) spans.push(span === true ? `${bsPrefix}${infix}` : `${bsPrefix}${infix}-${span}`);\n if (order != null) classes.push(`order${infix}-${order}`);\n if (offset != null) classes.push(`offset${infix}-${offset}`);\n });\n return [{\n ...props,\n className: classNames(className, ...spans, ...classes)\n }, {\n as,\n bsPrefix,\n spans\n }];\n}\nconst Col = /*#__PURE__*/React.forwardRef(\n// Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n(props, ref) => {\n const [{\n className,\n ...colProps\n }, {\n as: Component = 'div',\n bsPrefix,\n spans\n }] = useCol(props);\n return /*#__PURE__*/_jsx(Component, {\n ...colProps,\n ref: ref,\n className: classNames(className, !spans.length && bsPrefix)\n });\n});\nCol.displayName = 'Col';\nexport default Col;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport warning from 'warning';\nimport Col from './Col';\nimport FormContext from './FormContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormLabel = /*#__PURE__*/React.forwardRef(({\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'label',\n bsPrefix,\n column = false,\n visuallyHidden = false,\n className,\n htmlFor,\n ...props\n}, ref) => {\n const {\n controlId\n } = useContext(FormContext);\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-label');\n let columnClass = 'col-form-label';\n if (typeof column === 'string') columnClass = `${columnClass} ${columnClass}-${column}`;\n const classes = classNames(className, bsPrefix, visuallyHidden && 'visually-hidden', column && columnClass);\n process.env.NODE_ENV !== \"production\" ? warning(controlId == null || !htmlFor, '`controlId` is ignored on `<FormLabel>` when `htmlFor` is specified.') : void 0;\n htmlFor = htmlFor || controlId;\n if (column) return /*#__PURE__*/_jsx(Col, {\n ref: ref,\n as: \"label\",\n className: classes,\n htmlFor: htmlFor,\n ...props\n });\n return (\n /*#__PURE__*/\n // eslint-disable-next-line jsx-a11y/label-has-for, jsx-a11y/label-has-associated-control\n _jsx(Component, {\n ref: ref,\n className: classes,\n htmlFor: htmlFor,\n ...props\n })\n );\n});\nFormLabel.displayName = 'FormLabel';\nexport default FormLabel;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport FormContext from './FormContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormRange = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n id,\n ...props\n}, ref) => {\n const {\n controlId\n } = useContext(FormContext);\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-range');\n return /*#__PURE__*/_jsx(\"input\", {\n ...props,\n type: \"range\",\n ref: ref,\n className: classNames(className, bsPrefix),\n id: id || controlId\n });\n});\nFormRange.displayName = 'FormRange';\nexport default FormRange;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport FormContext from './FormContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormSelect = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n size,\n htmlSize,\n className,\n isValid = false,\n isInvalid = false,\n id,\n ...props\n}, ref) => {\n const {\n controlId\n } = useContext(FormContext);\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-select');\n return /*#__PURE__*/_jsx(\"select\", {\n ...props,\n size: htmlSize,\n ref: ref,\n className: classNames(className, bsPrefix, size && `${bsPrefix}-${size}`, isValid && `is-valid`, isInvalid && `is-invalid`),\n id: id || controlId\n });\n});\nFormSelect.displayName = 'FormSelect';\nexport default FormSelect;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormText = /*#__PURE__*/React.forwardRef(\n// Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n({\n bsPrefix,\n className,\n as: Component = 'small',\n muted,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-text');\n return /*#__PURE__*/_jsx(Component, {\n ...props,\n ref: ref,\n className: classNames(className, bsPrefix, muted && 'text-muted')\n });\n});\nFormText.displayName = 'FormText';\nexport default FormText;","import * as React from 'react';\nimport FormCheck from './FormCheck';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Switch = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/_jsx(FormCheck, {\n ...props,\n ref: ref,\n type: \"switch\"\n}));\nSwitch.displayName = 'Switch';\nexport default Object.assign(Switch, {\n Input: FormCheck.Input,\n Label: FormCheck.Label\n});","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport FormGroup from './FormGroup';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst FloatingLabel = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n children,\n controlId,\n label,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-floating');\n return /*#__PURE__*/_jsxs(FormGroup, {\n ref: ref,\n className: classNames(className, bsPrefix),\n controlId: controlId,\n ...props,\n children: [children, /*#__PURE__*/_jsx(\"label\", {\n htmlFor: controlId,\n children: label\n })]\n });\n});\nFloatingLabel.displayName = 'FloatingLabel';\nexport default FloatingLabel;","import classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport FormCheck from './FormCheck';\nimport FormControl from './FormControl';\nimport FormFloating from './FormFloating';\nimport FormGroup from './FormGroup';\nimport FormLabel from './FormLabel';\nimport FormRange from './FormRange';\nimport FormSelect from './FormSelect';\nimport FormText from './FormText';\nimport Switch from './Switch';\nimport FloatingLabel from './FloatingLabel';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst propTypes = {\n /**\n * The Form `ref` will be forwarded to the underlying element,\n * which means, unless it's rendered `as` a composite component,\n * it will be a DOM node, when resolved.\n *\n * @type {ReactRef}\n * @alias ref\n */\n _ref: PropTypes.any,\n /**\n * Mark a form as having been validated. Setting it to `true` will\n * toggle any validation styles on the forms elements.\n */\n validated: PropTypes.bool,\n as: PropTypes.elementType\n};\nconst Form = /*#__PURE__*/React.forwardRef(({\n className,\n validated,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'form',\n ...props\n}, ref) => /*#__PURE__*/_jsx(Component, {\n ...props,\n ref: ref,\n className: classNames(className, validated && 'was-validated')\n}));\nForm.displayName = 'Form';\nForm.propTypes = propTypes;\nexport default Object.assign(Form, {\n Group: FormGroup,\n Control: FormControl,\n Floating: FormFloating,\n Check: FormCheck,\n Switch,\n Label: FormLabel,\n Text: FormText,\n Range: FormRange,\n Select: FormSelect,\n FloatingLabel\n});","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Table = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n striped,\n bordered,\n borderless,\n hover,\n size,\n variant,\n responsive,\n ...props\n}, ref) => {\n const decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'table');\n const classes = classNames(className, decoratedBsPrefix, variant && `${decoratedBsPrefix}-${variant}`, size && `${decoratedBsPrefix}-${size}`, striped && `${decoratedBsPrefix}-${typeof striped === 'string' ? `striped-${striped}` : 'striped'}`, bordered && `${decoratedBsPrefix}-bordered`, borderless && `${decoratedBsPrefix}-borderless`, hover && `${decoratedBsPrefix}-hover`);\n const table = /*#__PURE__*/_jsx(\"table\", {\n ...props,\n className: classes,\n ref: ref\n });\n if (responsive) {\n let responsiveClass = `${decoratedBsPrefix}-responsive`;\n if (typeof responsive === 'string') {\n responsiveClass = `${responsiveClass}-${responsive}`;\n }\n return /*#__PURE__*/_jsx(\"div\", {\n className: responsiveClass,\n children: table\n });\n }\n return table;\n});\nexport default Table;","import { useState } from 'react';\n\n/**\n * A convenience hook around `useState` designed to be paired with\n * the component [callback ref](https://reactjs.org/docs/refs-and-the-dom.html#callback-refs) api.\n * Callback refs are useful over `useRef()` when you need to respond to the ref being set\n * instead of lazily accessing it in an effect.\n *\n * ```ts\n * const [element, attachRef] = useCallbackRef<HTMLDivElement>()\n *\n * useEffect(() => {\n * if (!element) return\n *\n * const calendar = new FullCalendar.Calendar(element)\n *\n * return () => {\n * calendar.destroy()\n * }\n * }, [element])\n *\n * return <div ref={attachRef} />\n * ```\n *\n * @category refs\n */\nexport default function useCallbackRef() {\n return useState(null);\n}","import { useEffect, useRef } from 'react';\n\n/**\n * Creates a `Ref` whose value is updated in an effect, ensuring the most recent\n * value is the one rendered with. Generally only required for Concurrent mode usage\n * where previous work in `render()` may be discarded before being used.\n *\n * This is safe to access in an event handler.\n *\n * @param value The `Ref` value\n */\nfunction useCommittedRef(value) {\n const ref = useRef(value);\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref;\n}\nexport default useCommittedRef;","import { useCallback } from 'react';\nimport useCommittedRef from './useCommittedRef';\nexport default function useEventCallback(fn) {\n const ref = useCommittedRef(fn);\n return useCallback(function (...args) {\n return ref.current && ref.current(...args);\n }, [ref]);\n}","import { useRef, useEffect } from 'react';\n\n/**\n * Track whether a component is current mounted. Generally less preferable than\n * properlly canceling effects so they don't run after a component is unmounted,\n * but helpful in cases where that isn't feasible, such as a `Promise` resolution.\n *\n * @returns a function that returns the current isMounted state of the component\n *\n * ```ts\n * const [data, setData] = useState(null)\n * const isMounted = useMounted()\n *\n * useEffect(() => {\n * fetchdata().then((newData) => {\n * if (isMounted()) {\n * setData(newData);\n * }\n * })\n * })\n * ```\n */\nexport default function useMounted() {\n const mounted = useRef(true);\n const isMounted = useRef(() => mounted.current);\n useEffect(() => {\n mounted.current = true;\n return () => {\n mounted.current = false;\n };\n }, []);\n return isMounted.current;\n}","import { useEffect, useLayoutEffect } from 'react';\nconst isReactNative = typeof global !== 'undefined' &&\n// @ts-ignore\nglobal.navigator &&\n// @ts-ignore\nglobal.navigator.product === 'ReactNative';\nconst isDOM = typeof document !== 'undefined';\n\n/**\n * Is `useLayoutEffect` in a DOM or React Native environment, otherwise resolves to useEffect\n * Only useful to avoid the console warning.\n *\n * PREFER `useEffect` UNLESS YOU KNOW WHAT YOU ARE DOING.\n *\n * @category effects\n */\nexport default isDOM || isReactNative ? useLayoutEffect : useEffect;","import { useState } from 'react';\nimport useEffect from './useIsomorphicEffect';\nconst targetMap = new WeakMap();\nlet resizeObserver;\nfunction getResizeObserver() {\n // eslint-disable-next-line no-return-assign\n return resizeObserver = resizeObserver || new window.ResizeObserver(entries => {\n entries.forEach(entry => {\n const handler = targetMap.get(entry.target);\n if (handler) handler(entry.contentRect);\n });\n });\n}\n\n/**\n * Efficiently observe size changes on an element. Depends on the `ResizeObserver` api,\n * and polyfills are needed in older browsers.\n *\n * ```ts\n * const [ref, attachRef] = useCallbackRef(null);\n *\n * const rect = useResizeObserver(ref);\n *\n * return (\n * <div ref={attachRef}>\n * {JSON.stringify(rect)}\n * </div>\n * )\n * ```\n *\n * @param element The DOM element to observe\n */\nexport default function useResizeObserver(element) {\n const [rect, setRect] = useState(null);\n useEffect(() => {\n if (!element) return;\n getResizeObserver().observe(element);\n setRect(element.getBoundingClientRect());\n targetMap.set(element, rect => {\n setRect(rect);\n });\n return () => {\n targetMap.delete(element);\n };\n }, [element]);\n return rect;\n}","const _excluded = [\"as\", \"disabled\"];\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from 'react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function isTrivialHref(href) {\n return !href || href.trim() === '#';\n}\nexport function useButtonProps({\n tagName,\n disabled,\n href,\n target,\n rel,\n role,\n onClick,\n tabIndex = 0,\n type\n}) {\n if (!tagName) {\n if (href != null || target != null || rel != null) {\n tagName = 'a';\n } else {\n tagName = 'button';\n }\n }\n const meta = {\n tagName\n };\n if (tagName === 'button') {\n return [{\n type: type || 'button',\n disabled\n }, meta];\n }\n const handleClick = event => {\n if (disabled || tagName === 'a' && isTrivialHref(href)) {\n event.preventDefault();\n }\n if (disabled) {\n event.stopPropagation();\n return;\n }\n onClick == null ? void 0 : onClick(event);\n };\n const handleKeyDown = event => {\n if (event.key === ' ') {\n event.preventDefault();\n handleClick(event);\n }\n };\n if (tagName === 'a') {\n // Ensure there's a href so Enter can trigger anchor button.\n href || (href = '#');\n if (disabled) {\n href = undefined;\n }\n }\n return [{\n role: role != null ? role : 'button',\n // explicitly undefined so that it overrides the props disabled in a spread\n // e.g. <Tag {...props} {...hookProps} />\n disabled: undefined,\n tabIndex: disabled ? undefined : tabIndex,\n href,\n target: tagName === 'a' ? target : undefined,\n 'aria-disabled': !disabled ? undefined : disabled,\n rel: tagName === 'a' ? rel : undefined,\n onClick: handleClick,\n onKeyDown: handleKeyDown\n }, meta];\n}\nconst Button = /*#__PURE__*/React.forwardRef((_ref, ref) => {\n let {\n as: asProp,\n disabled\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n const [buttonProps, {\n tagName: Component\n }] = useButtonProps(Object.assign({\n tagName: asProp,\n disabled\n }, props));\n return /*#__PURE__*/_jsx(Component, Object.assign({}, props, buttonProps, {\n ref: ref\n }));\n});\nButton.displayName = 'Button';\nexport default Button;","const _excluded = [\"onKeyDown\"];\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/anchor-has-content */\n\nimport * as React from 'react';\nimport { useEventCallback } from '@restart/hooks';\nimport { useButtonProps } from './Button';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function isTrivialHref(href) {\n return !href || href.trim() === '#';\n}\n/**\n * An generic `<a>` component that covers a few A11y cases, ensuring that\n * cases where the `href` is missing or trivial like \"#\" are treated like buttons.\n */\nconst Anchor = /*#__PURE__*/React.forwardRef((_ref, ref) => {\n let {\n onKeyDown\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n const [buttonProps] = useButtonProps(Object.assign({\n tagName: 'a'\n }, props));\n const handleKeyDown = useEventCallback(e => {\n buttonProps.onKeyDown(e);\n onKeyDown == null ? void 0 : onKeyDown(e);\n });\n if (isTrivialHref(props.href) || props.role === 'button') {\n return /*#__PURE__*/_jsx(\"a\", Object.assign({\n ref: ref\n }, props, buttonProps, {\n onKeyDown: handleKeyDown\n }));\n }\n return /*#__PURE__*/_jsx(\"a\", Object.assign({\n ref: ref\n }, props, {\n onKeyDown: onKeyDown\n }));\n});\nAnchor.displayName = 'Anchor';\nexport default Anchor;","/* eslint-disable react/no-multi-comp */\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport Anchor from '@restart/ui/Anchor';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst PageItem = /*#__PURE__*/React.forwardRef(({\n active = false,\n disabled = false,\n className,\n style,\n activeLabel = '(current)',\n children,\n linkStyle,\n linkClassName,\n as = Anchor,\n ...props\n}, ref) => {\n const Component = active || disabled ? 'span' : as;\n return /*#__PURE__*/_jsx(\"li\", {\n ref: ref,\n style: style,\n className: classNames(className, 'page-item', {\n active,\n disabled\n }),\n children: /*#__PURE__*/_jsxs(Component, {\n className: classNames('page-link', linkClassName),\n style: linkStyle,\n ...props,\n children: [children, active && activeLabel && /*#__PURE__*/_jsx(\"span\", {\n className: \"visually-hidden\",\n children: activeLabel\n })]\n })\n });\n});\nPageItem.displayName = 'PageItem';\nexport default PageItem;\nfunction createButton(name, defaultValue, label = name) {\n const Button = /*#__PURE__*/React.forwardRef(({\n children,\n ...props\n }, ref) => /*#__PURE__*/_jsxs(PageItem, {\n ...props,\n ref: ref,\n children: [/*#__PURE__*/_jsx(\"span\", {\n \"aria-hidden\": \"true\",\n children: children || defaultValue\n }), /*#__PURE__*/_jsx(\"span\", {\n className: \"visually-hidden\",\n children: label\n })]\n }));\n Button.displayName = name;\n return Button;\n}\nexport const First = createButton('First', '«');\nexport const Prev = createButton('Prev', '‹', 'Previous');\nexport const Ellipsis = createButton('Ellipsis', '…', 'More');\nexport const Next = createButton('Next', '›');\nexport const Last = createButton('Last', '»');","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport PageItem, { Ellipsis, First, Last, Next, Prev } from './PageItem';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Pagination = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n size,\n ...props\n}, ref) => {\n const decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'pagination');\n return /*#__PURE__*/_jsx(\"ul\", {\n ref: ref,\n ...props,\n className: classNames(className, decoratedBsPrefix, size && `${decoratedBsPrefix}-${size}`)\n });\n});\nPagination.displayName = 'Pagination';\nexport default Object.assign(Pagination, {\n First,\n Prev,\n Ellipsis,\n Item: PageItem,\n Next,\n Last\n});","const createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const getInitialState = () => initialState;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const destroy = () => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n console.warn(\n \"[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected.\"\n );\n }\n listeners.clear();\n };\n const api = { setState, getState, getInitialState, subscribe, destroy };\n const initialState = state = createState(setState, getState, api);\n return api;\n};\nconst createStore = (createState) => createState ? createStoreImpl(createState) : createStoreImpl;\nvar vanilla = (createState) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n console.warn(\n \"[DEPRECATED] Default export is deprecated. Instead use import { createStore } from 'zustand/vanilla'.\"\n );\n }\n return createStore(createState);\n};\n\nexport { createStore, vanilla as default };\n","import { createStore } from 'zustand/vanilla';\nexport * from 'zustand/vanilla';\nimport ReactExports from 'react';\nimport useSyncExternalStoreExports from 'use-sync-external-store/shim/with-selector.js';\n\nconst { useDebugValue } = ReactExports;\nconst { useSyncExternalStoreWithSelector } = useSyncExternalStoreExports;\nlet didWarnAboutEqualityFn = false;\nconst identity = (arg) => arg;\nfunction useStore(api, selector = identity, equalityFn) {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && equalityFn && !didWarnAboutEqualityFn) {\n console.warn(\n \"[DEPRECATED] Use `createWithEqualityFn` instead of `create` or use `useStoreWithEqualityFn` instead of `useStore`. They can be imported from 'zustand/traditional'. https://github.com/pmndrs/zustand/discussions/1937\"\n );\n didWarnAboutEqualityFn = true;\n }\n const slice = useSyncExternalStoreWithSelector(\n api.subscribe,\n api.getState,\n api.getServerState || api.getInitialState,\n selector,\n equalityFn\n );\n useDebugValue(slice);\n return slice;\n}\nconst createImpl = (createState) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && typeof createState !== \"function\") {\n console.warn(\n \"[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`.\"\n );\n }\n const api = typeof createState === \"function\" ? createStore(createState) : createState;\n const useBoundStore = (selector, equalityFn) => useStore(api, selector, equalityFn);\n Object.assign(useBoundStore, api);\n return useBoundStore;\n};\nconst create = (createState) => createState ? createImpl(createState) : createImpl;\nvar react = (createState) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n console.warn(\n \"[DEPRECATED] Default export is deprecated. Instead use `import { create } from 'zustand'`.\"\n );\n }\n return create(createState);\n};\n\nexport { create, react as default, useStore };\n","import { create } from 'zustand';\r\n\r\n//zustand: https://github.com/pmndrs/zustand\r\n//Set the base URL to used by other comp.\r\n//Comp examples being ussed: \r\nconst aPIURLStore = create((set, get) => ({\r\n baseURL: '',\r\n setBaseURL: (value) => set({ baseURL: value })\r\n})\r\n);\r\n\r\nexport default aPIURLStore \r\n","import { useState } from \"react\";\r\nimport Axios from 'axios';\r\nimport aPIURLStore from \"./stores/aPIURLStore\";\r\n// import endpointMap from \"../util/api-endpoint-map\";\r\n// import useUserStore from \"../stores/user-store\";\r\n\r\n// Server Context for website.\r\nconst useApi = () => {\r\n\r\n \r\n const baseUrl = aPIURLStore( state => state.baseURL);\r\n //const baseUrl = \"https://localhost:3000/\";\r\n // const baseUrl = \"https://dbhdidtest.ky.gov/api/\";\r\n // const baseUrl = \"https://dbhdid.ky.gov/api/\";\r\n //const baseUrl = \"https://fims.dbhdid.ky.gov/api/\";\r\n // const sleep = (milliseconds=1000) => new Promise(resolve => setTimeout(resolve, milliseconds));\r\n\r\n // const jwt = useUserStore((state) => state.jwt);\r\n const [error, setError] = useState(null);\r\n const [processing, setProcessing] = useState(false);\r\n // const mapEndpoints = endpointMap;\r\n const methods = {\r\n get: \"get\",\r\n post: \"post\",\r\n put: \"put\",\r\n delete: \"delete\"\r\n };\r\n\r\n const procRequest = async (indata, params, method, endpoint) => {\r\n setError(null);\r\n setProcessing(true);\r\n\r\n // await sleep();\r\n // setProcessing(false);\r\n // return [null, 200];\r\n\r\n return Axios({\r\n method: method,\r\n url: baseUrl + endpoint,\r\n data: indata,\r\n params: params,\r\n responseType: \"json\",\r\n \r\n }\r\n ).then((response) => {\r\n setProcessing(false);\r\n //console.log(response);\r\n return [response.data, response.status];\r\n }).catch((error) => {\r\n if (error.response) {\r\n // The request was made and the server responded with a status code\r\n // that falls out of the range of 2xx\r\n if (error.response.data.message) {\r\n setError(error.response.data.message);\r\n } else {\r\n setError(error.message);\r\n }\r\n\r\n setProcessing(false);\r\n return [null, error.response.status];\r\n // console.log(error.response.data);\r\n // console.log(error.response.status);\r\n // console.log(error.response.headers);\r\n } else if (error.request) {\r\n // The request was made but no response was received\r\n // `error.request` is an instance of XMLHttpRequest in the browser and an instance of\r\n // http.ClientRequest in node.js\r\n //console.log(error.request);\r\n setError(error.request);\r\n } else {\r\n // Something happened in setting up the request that triggered an Error\r\n //console.log('Error', error.message);\r\n setError(error.message);\r\n }\r\n setProcessing(false);\r\n return [null, 999];\r\n });\r\n\r\n };\r\n\r\n // Process the processes POST request\r\n const procPostRequest = async (indata, endpointKey) => {\r\n return await procRequest(indata, null, methods.post, endpointKey);\r\n };\r\n // Process the processes GET request\r\n const procGetRequest = async (params,endpoint) => {\r\n return await procRequest(null, params, methods.get,endpoint);\r\n };\r\n\r\n // const procGetRequestNoAuth = async (endpointKey, params) => {\r\n // return await procRequest(endpointKey, null, params, methods.get, false);\r\n // };\r\n\r\n // const procPutRequest = async (endpointKey, indata) => {\r\n // return await procRequest(endpointKey, indata, null, methods.put, true);\r\n // };\r\n\r\n // const procDeleteRequest = async (endpointKey, indata) => {\r\n // return await procRequest(endpointKey, indata, null, methods.delete, true);\r\n // };\r\n\r\n return {\r\n error: error,\r\n processing: processing,\r\n postRequest : procPostRequest,\r\n getRequest: procGetRequest,\r\n // getRequestNoAuth: procGetRequestNoAuth,\r\n // putRequest: procPutRequest,\r\n // deleteRequest: procDeleteRequest\r\n };\r\n\r\n};\r\n\r\nexport default useApi;\r\n","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Spinner = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n variant,\n animation = 'border',\n size,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n className,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'spinner');\n const bsSpinnerPrefix = `${bsPrefix}-${animation}`;\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, bsSpinnerPrefix, size && `${bsSpinnerPrefix}-${size}`, variant && `text-${variant}`)\n });\n});\nSpinner.displayName = 'Spinner';\nexport default Spinner;","import React, { useState, useEffect } from 'react';\r\nimport { Table, Form, Pagination } from 'react-bootstrap';\r\nimport useApi from \"../../utils/UseAPI\";\r\n\r\n// React loading spinner\r\nimport Spinner from 'react-bootstrap/Spinner';\r\n\r\n\r\nconst IBITableTwo = ({ endpointKey, columns, dataProcessingAction, searchPredicate }) => {\r\n\r\n const [data, setData] = useState([]);\r\n const [filteredData, setFilteredData] = useState([]);\r\n const [sortBy, setSortBy] = useState(\"\");\r\n const [sortDirection, setSortDirection] = useState('asc');\r\n const [currentPage, setCurrentPage] = useState(1);\r\n const [itemsPerPage] = useState(15);\r\n const { processing, error, getRequest } = useApi();\r\n let tempLink = '';\r\n \r\n\r\n const get = async () => {\r\n if (endpointKey != null) {\r\n const [data, status] = await getRequest(null, endpointKey);\r\n if (status == 200) {\r\n\r\n if (dataProcessingAction != null && dataProcessingAction != undefined && typeof dataProcessingAction == \"function\") {\r\n dataProcessingAction(data.data);\r\n }\r\n setData(data.data);\r\n setFilteredData(data.data);\r\n }\r\n }\r\n };\r\n\r\n // Fetch data asynchronously\r\n // Separate effect to account not require a refresh prop\r\n useEffect(() => {\r\n get();\r\n }, []);\r\n\r\n\r\n\r\n\r\n // Apply filtering based on user input\r\n const handleFilter = (value) => {\r\n\r\n const validSearch = value != null && value.replace(/\\s/g, \"\").length > 0;\r\n\r\n if (searchPredicate != null && searchPredicate != undefined && typeof searchPredicate == \"function\" && validSearch) {\r\n const trimmed = value.trim();\r\n const filtered = data.filter((item) =>\r\n searchPredicate(item, trimmed)\r\n );\r\n setFilteredData(filtered);\r\n }\r\n\r\n\r\n };\r\n\r\n // Apply sorting based on column header click\r\n const handleSort = (column) => {\r\n if (column === sortBy) {\r\n setSortDirection(sortDirection === 'asc' ? 'desc' : 'asc');\r\n } else {\r\n setSortBy(column);\r\n setSortDirection('asc');\r\n }\r\n };\r\n\r\n // Paginate data\r\n const handlePageChange = (pageNumber) => {\r\n setCurrentPage(pageNumber);\r\n };\r\n\r\n const tableSort = (a, b, sortBy, direction) => {\r\n\r\n // console.log(`a: ${a[sortBy]}`);\r\n // console.log(`b: ${b[sortBy]}`);\r\n // console.log(`sortBy: ${sortBy}`);\r\n // console.log(`direction: ${direction}`);\r\n\r\n const options = {\r\n numeric: true,\r\n ignorePunctuation: true\r\n };\r\n\r\n if (a[sortBy] == null && b[sortBy] == null) {\r\n return 0;\r\n }\r\n\r\n const switchKey = a[sortBy] == null ? typeof b[sortBy] : typeof a[sortBy];\r\n\r\n try {\r\n switch (switchKey) {\r\n case \"string\":\r\n const valueA = a[sortBy] == null ? \"\\0\" : a[sortBy];\r\n const valueB = b[sortBy] == null ? \"\\0\" : b[sortBy];\r\n const dateA = Date.parse(valueA);\r\n const dateB = Date.parse(valueB);\r\n if (!isNaN(dateA) && !isNaN(dateB)) {\r\n\r\n // console.log(`Date A: ${dateA}`);\r\n // console.log(`Date B: ${dateB}`);\r\n return direction == \"asc\" ? dateA - dateB : dateB - dateA;\r\n } else {\r\n return direction == \"asc\" ? valueA.localeCompare(valueB, \"en\", options) : valueB.localeCompare(valueA, \"en\", options);\r\n }\r\n case \"number\":\r\n return direction == \"asc\" ? a[sortBy] - b[sortBy] : b[sortBy] - a[sortBy];\r\n default:\r\n return 0;\r\n }\r\n } catch (error) {\r\n return 0;\r\n }\r\n };\r\n const arrayFilter = (linkURL) => {\r\n // console.log(linkURL);\r\n const linkURLArray = linkURL.split(\" \");\r\n // console.log(linkURLArray);\r\n for (let index = 0; index < linkURLArray.length; index++) {\r\n if (linkURLArray[index].includes('-')){ \r\n tempLink = \"tel:\"+ linkURLArray[index]; \r\n } \r\n else if(linkURLArray[index].includes('http://') || linkURLArray[index].includes('https://')){\r\n tempLink = linkURLArray[index];\r\n } \r\n } \r\n }\r\n // Get paginated items\r\n const indexOfLastItem = currentPage * itemsPerPage;\r\n const indexOfFirstItem = indexOfLastItem - itemsPerPage;\r\n const sortedItems = filteredData.sort((a, b) => tableSort(a, b, sortBy, sortDirection));\r\n const currentItems = sortedItems.slice(indexOfFirstItem, indexOfLastItem);\r\n\r\n return processing ? <Spinner animation=\"border\" variant=\"success\" /> :\r\n <>\r\n\r\n <div>\r\n <Form.Group controlId=\"searchForm\">\r\n <Form.Control\r\n type=\"text\"\r\n placeholder=\"Search for the nearest location by entering your county name \"\r\n onChange={(e) => handleFilter(e.target.value)}\r\n />\r\n </Form.Group>\r\n\r\n <Table responsive size=\"sm\">\r\n <thead>\r\n <tr>\r\n {\r\n columns.sort((a, b) => a.order - b.order).map((column) => {\r\n const handleSortWrapper = () => {\r\n handleSort(column.property);\r\n };\r\n return (\r\n <th key={column.order} onClick={handleSortWrapper}>\r\n <div >{column.display} {sortBy === column.property && (sortDirection === 'asc' ? '▲' : '▼')}</div>\r\n </th>\r\n );\r\n })\r\n }\r\n </tr>\r\n </thead>\r\n <tbody className='table-group-divider'>\r\n {currentItems.map((item, index) => {\r\n return (\r\n <tr key={index}>\r\n {\r\n columns.sort((a, b) => a.order - b.order).map((column) => {\r\n arrayFilter(item[column.property]);\r\n return (\r\n <td key={column.order}><div><a href={tempLink}>{item[column.property]}</a></div></td>\r\n );\r\n })\r\n }\r\n </tr>\r\n );\r\n })}\r\n </tbody>\r\n </Table>\r\n\r\n {/* Pagination */}\r\n <Pagination>\r\n {data.length > itemsPerPage &&\r\n Array.from({ length: Math.ceil(filteredData.length / itemsPerPage) }).map((_, index) => (\r\n <Pagination.Item\r\n key={index}\r\n active={index + 1 === currentPage}\r\n onClick={() => handlePageChange(index + 1)}\r\n >\r\n {index + 1}\r\n </Pagination.Item>\r\n ))}\r\n </Pagination>\r\n </div>\r\n </>\r\n ;\r\n};\r\n\r\nexport default IBITableTwo;\r\n","/**\n * NOTE: If you refactor this to split up the modules into separate files,\n * you'll need to update the rollup config for react-router-dom-v5-compat.\n */\nimport * as React from \"react\";\nimport type {\n NavigateOptions,\n RelativeRoutingType,\n RouteObject,\n To,\n} from \"react-router\";\nimport {\n Router,\n createPath,\n useHref,\n useLocation,\n useMatches,\n useNavigate,\n useNavigation,\n useResolvedPath,\n unstable_useBlocker as useBlocker,\n UNSAFE_DataRouterContext as DataRouterContext,\n UNSAFE_DataRouterStateContext as DataRouterStateContext,\n UNSAFE_NavigationContext as NavigationContext,\n UNSAFE_RouteContext as RouteContext,\n UNSAFE_detectErrorBoundary as detectErrorBoundary,\n} from \"react-router\";\nimport type {\n BrowserHistory,\n Fetcher,\n FormEncType,\n FormMethod,\n GetScrollRestorationKeyFunction,\n HashHistory,\n History,\n HydrationState,\n Router as RemixRouter,\n} from \"@remix-run/router\";\nimport {\n createRouter,\n createBrowserHistory,\n createHashHistory,\n joinPaths,\n stripBasename,\n ErrorResponse,\n UNSAFE_invariant as invariant,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n SubmitOptions,\n ParamKeyValuePair,\n URLSearchParamsInit,\n} from \"./dom\";\nimport {\n createSearchParams,\n defaultMethod,\n getFormSubmissionInfo,\n getSearchParamsForLocation,\n shouldProcessLinkClick,\n} from \"./dom\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Re-exports\n////////////////////////////////////////////////////////////////////////////////\n\nexport type {\n FormEncType,\n FormMethod,\n GetScrollRestorationKeyFunction,\n ParamKeyValuePair,\n SubmitOptions,\n URLSearchParamsInit,\n};\nexport { createSearchParams };\n\n// Note: Keep in sync with react-router exports!\nexport type {\n ActionFunction,\n ActionFunctionArgs,\n AwaitProps,\n unstable_Blocker,\n unstable_BlockerFunction,\n DataRouteMatch,\n DataRouteObject,\n Fetcher,\n Hash,\n IndexRouteObject,\n IndexRouteProps,\n JsonFunction,\n LazyRouteFunction,\n LayoutRouteProps,\n LoaderFunction,\n LoaderFunctionArgs,\n Location,\n MemoryRouterProps,\n NavigateFunction,\n NavigateOptions,\n NavigateProps,\n Navigation,\n Navigator,\n NonIndexRouteObject,\n OutletProps,\n Params,\n ParamParseKey,\n Path,\n PathMatch,\n Pathname,\n PathPattern,\n PathRouteProps,\n RedirectFunction,\n RelativeRoutingType,\n RouteMatch,\n RouteObject,\n RouteProps,\n RouterProps,\n RouterProviderProps,\n RoutesProps,\n Search,\n ShouldRevalidateFunction,\n To,\n} from \"react-router\";\nexport {\n AbortedDeferredError,\n Await,\n MemoryRouter,\n Navigate,\n NavigationType,\n Outlet,\n Route,\n Router,\n RouterProvider,\n Routes,\n createMemoryRouter,\n createPath,\n createRoutesFromChildren,\n createRoutesFromElements,\n defer,\n isRouteErrorResponse,\n generatePath,\n json,\n matchPath,\n matchRoutes,\n parsePath,\n redirect,\n renderMatches,\n resolvePath,\n useActionData,\n useAsyncError,\n useAsyncValue,\n unstable_useBlocker,\n useHref,\n useInRouterContext,\n useLoaderData,\n useLocation,\n useMatch,\n useMatches,\n useNavigate,\n useNavigation,\n useNavigationType,\n useOutlet,\n useOutletContext,\n useParams,\n useResolvedPath,\n useRevalidator,\n useRouteError,\n useRouteLoaderData,\n useRoutes,\n} from \"react-router\";\n\n///////////////////////////////////////////////////////////////////////////////\n// DANGER! PLEASE READ ME!\n// We provide these exports as an escape hatch in the event that you need any\n// routing data that we don't provide an explicit API for. With that said, we\n// want to cover your use case if we can, so if you feel the need to use these\n// we want to hear from you. Let us know what you're building and we'll do our\n// best to make sure we can support you!\n//\n// We consider these exports an implementation detail and do not guarantee\n// against any breaking changes, regardless of the semver release. Use with\n// extreme caution and only if you understand the consequences. Godspeed.\n///////////////////////////////////////////////////////////////////////////////\n\n/** @internal */\nexport {\n UNSAFE_DataRouterContext,\n UNSAFE_DataRouterStateContext,\n UNSAFE_NavigationContext,\n UNSAFE_LocationContext,\n UNSAFE_RouteContext,\n} from \"react-router\";\n//#endregion\n\ndeclare global {\n var __staticRouterHydrationData: HydrationState | undefined;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Routers\n////////////////////////////////////////////////////////////////////////////////\n\nexport function createBrowserRouter(\n routes: RouteObject[],\n opts?: {\n basename?: string;\n hydrationData?: HydrationState;\n window?: Window;\n }\n): RemixRouter {\n return createRouter({\n basename: opts?.basename,\n history: createBrowserHistory({ window: opts?.window }),\n hydrationData: opts?.hydrationData || parseHydrationData(),\n routes,\n detectErrorBoundary,\n }).initialize();\n}\n\nexport function createHashRouter(\n routes: RouteObject[],\n opts?: {\n basename?: string;\n hydrationData?: HydrationState;\n window?: Window;\n }\n): RemixRouter {\n return createRouter({\n basename: opts?.basename,\n history: createHashHistory({ window: opts?.window }),\n hydrationData: opts?.hydrationData || parseHydrationData(),\n routes,\n detectErrorBoundary,\n }).initialize();\n}\n\nfunction parseHydrationData(): HydrationState | undefined {\n let state = window?.__staticRouterHydrationData;\n if (state && state.errors) {\n state = {\n ...state,\n errors: deserializeErrors(state.errors),\n };\n }\n return state;\n}\n\nfunction deserializeErrors(\n errors: RemixRouter[\"state\"][\"errors\"]\n): RemixRouter[\"state\"][\"errors\"] {\n if (!errors) return null;\n let entries = Object.entries(errors);\n let serialized: RemixRouter[\"state\"][\"errors\"] = {};\n for (let [key, val] of entries) {\n // Hey you! If you change this, please change the corresponding logic in\n // serializeErrors in react-router-dom/server.tsx :)\n if (val && val.__type === \"RouteErrorResponse\") {\n serialized[key] = new ErrorResponse(\n val.status,\n val.statusText,\n val.data,\n val.internal === true\n );\n } else if (val && val.__type === \"Error\") {\n let error = new Error(val.message);\n // Wipe away the client-side stack trace. Nothing to fill it in with\n // because we don't serialize SSR stack traces for security reasons\n error.stack = \"\";\n serialized[key] = error;\n } else {\n serialized[key] = val;\n }\n }\n return serialized;\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Components\n////////////////////////////////////////////////////////////////////////////////\n\nexport interface BrowserRouterProps {\n basename?: string;\n children?: React.ReactNode;\n window?: Window;\n}\n\n/**\n * A `<Router>` for use in web browsers. Provides the cleanest URLs.\n */\nexport function BrowserRouter({\n basename,\n children,\n window,\n}: BrowserRouterProps) {\n let historyRef = React.useRef<BrowserHistory>();\n if (historyRef.current == null) {\n historyRef.current = createBrowserHistory({ window, v5Compat: true });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n <Router\n basename={basename}\n children={children}\n location={state.location}\n navigationType={state.action}\n navigator={history}\n />\n );\n}\n\nexport interface HashRouterProps {\n basename?: string;\n children?: React.ReactNode;\n window?: Window;\n}\n\n/**\n * A `<Router>` for use in web browsers. Stores the location in the hash\n * portion of the URL so it is not sent to the server.\n */\nexport function HashRouter({ basename, children, window }: HashRouterProps) {\n let historyRef = React.useRef<HashHistory>();\n if (historyRef.current == null) {\n historyRef.current = createHashHistory({ window, v5Compat: true });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n <Router\n basename={basename}\n children={children}\n location={state.location}\n navigationType={state.action}\n navigator={history}\n />\n );\n}\n\nexport interface HistoryRouterProps {\n basename?: string;\n children?: React.ReactNode;\n history: History;\n}\n\n/**\n * A `<Router>` that accepts a pre-instantiated history object. It's important\n * to note that using your own history object is highly discouraged and may add\n * two versions of the history library to your bundles unless you use the same\n * version of the history library that React Router uses internally.\n */\nfunction HistoryRouter({ basename, children, history }: HistoryRouterProps) {\n const [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n <Router\n basename={basename}\n children={children}\n location={state.location}\n navigationType={state.action}\n navigator={history}\n />\n );\n}\n\nif (__DEV__) {\n HistoryRouter.displayName = \"unstable_HistoryRouter\";\n}\n\nexport { HistoryRouter as unstable_HistoryRouter };\n\nexport interface LinkProps\n extends Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, \"href\"> {\n reloadDocument?: boolean;\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n to: To;\n}\n\nconst isBrowser =\n typeof window !== \"undefined\" &&\n typeof window.document !== \"undefined\" &&\n typeof window.document.createElement !== \"undefined\";\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\n/**\n * The public API for rendering a history-aware <a>.\n */\nexport const Link = React.forwardRef<HTMLAnchorElement, LinkProps>(\n function LinkWithRef(\n {\n onClick,\n relative,\n reloadDocument,\n replace,\n state,\n target,\n to,\n preventScrollReset,\n ...rest\n },\n ref\n ) {\n let { basename } = React.useContext(NavigationContext);\n\n // Rendered into <a href> for absolute URLs\n let absoluteHref;\n let isExternal = false;\n\n if (typeof to === \"string\" && ABSOLUTE_URL_REGEX.test(to)) {\n // Render the absolute href server- and client-side\n absoluteHref = to;\n\n // Only check for external origins client-side\n if (isBrowser) {\n let currentUrl = new URL(window.location.href);\n let targetUrl = to.startsWith(\"//\")\n ? new URL(currentUrl.protocol + to)\n : new URL(to);\n let path = stripBasename(targetUrl.pathname, basename);\n\n if (targetUrl.origin === currentUrl.origin && path != null) {\n // Strip the protocol/origin/basename for same-origin absolute URLs\n to = path + targetUrl.search + targetUrl.hash;\n } else {\n isExternal = true;\n }\n }\n }\n\n // Rendered into <a href> for relative URLs\n let href = useHref(to, { relative });\n\n let internalOnClick = useLinkClickHandler(to, {\n replace,\n state,\n target,\n preventScrollReset,\n relative,\n });\n function handleClick(\n event: React.MouseEvent<HTMLAnchorElement, MouseEvent>\n ) {\n if (onClick) onClick(event);\n if (!event.defaultPrevented) {\n internalOnClick(event);\n }\n }\n\n return (\n // eslint-disable-next-line jsx-a11y/anchor-has-content\n <a\n {...rest}\n href={absoluteHref || href}\n onClick={isExternal || reloadDocument ? onClick : handleClick}\n ref={ref}\n target={target}\n />\n );\n }\n);\n\nif (__DEV__) {\n Link.displayName = \"Link\";\n}\n\nexport interface NavLinkProps\n extends Omit<LinkProps, \"className\" | \"style\" | \"children\"> {\n children?:\n | React.ReactNode\n | ((props: { isActive: boolean; isPending: boolean }) => React.ReactNode);\n caseSensitive?: boolean;\n className?:\n | string\n | ((props: {\n isActive: boolean;\n isPending: boolean;\n }) => string | undefined);\n end?: boolean;\n style?:\n | React.CSSProperties\n | ((props: {\n isActive: boolean;\n isPending: boolean;\n }) => React.CSSProperties | undefined);\n}\n\n/**\n * A <Link> wrapper that knows if it's \"active\" or not.\n */\nexport const NavLink = React.forwardRef<HTMLAnchorElement, NavLinkProps>(\n function NavLinkWithRef(\n {\n \"aria-current\": ariaCurrentProp = \"page\",\n caseSensitive = false,\n className: classNameProp = \"\",\n end = false,\n style: styleProp,\n to,\n children,\n ...rest\n },\n ref\n ) {\n let path = useResolvedPath(to, { relative: rest.relative });\n let location = useLocation();\n let routerState = React.useContext(DataRouterStateContext);\n let { navigator } = React.useContext(NavigationContext);\n\n let toPathname = navigator.encodeLocation\n ? navigator.encodeLocation(path).pathname\n : path.pathname;\n let locationPathname = location.pathname;\n let nextLocationPathname =\n routerState && routerState.navigation && routerState.navigation.location\n ? routerState.navigation.location.pathname\n : null;\n\n if (!caseSensitive) {\n locationPathname = locationPathname.toLowerCase();\n nextLocationPathname = nextLocationPathname\n ? nextLocationPathname.toLowerCase()\n : null;\n toPathname = toPathname.toLowerCase();\n }\n\n let isActive =\n locationPathname === toPathname ||\n (!end &&\n locationPathname.startsWith(toPathname) &&\n locationPathname.charAt(toPathname.length) === \"/\");\n\n let isPending =\n nextLocationPathname != null &&\n (nextLocationPathname === toPathname ||\n (!end &&\n nextLocationPathname.startsWith(toPathname) &&\n nextLocationPathname.charAt(toPathname.length) === \"/\"));\n\n let ariaCurrent = isActive ? ariaCurrentProp : undefined;\n\n let className: string | undefined;\n if (typeof classNameProp === \"function\") {\n className = classNameProp({ isActive, isPending });\n } else {\n // If the className prop is not a function, we use a default `active`\n // class for <NavLink />s that are active. In v5 `active` was the default\n // value for `activeClassName`, but we are removing that API and can still\n // use the old default behavior for a cleaner upgrade path and keep the\n // simple styling rules working as they currently do.\n className = [\n classNameProp,\n isActive ? \"active\" : null,\n isPending ? \"pending\" : null,\n ]\n .filter(Boolean)\n .join(\" \");\n }\n\n let style =\n typeof styleProp === \"function\"\n ? styleProp({ isActive, isPending })\n : styleProp;\n\n return (\n <Link\n {...rest}\n aria-current={ariaCurrent}\n className={className}\n ref={ref}\n style={style}\n to={to}\n >\n {typeof children === \"function\"\n ? children({ isActive, isPending })\n : children}\n </Link>\n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n}\n\nexport interface FormProps extends React.FormHTMLAttributes<HTMLFormElement> {\n /**\n * The HTTP verb to use when the form is submit. Supports \"get\", \"post\",\n * \"put\", \"delete\", \"patch\".\n */\n method?: FormMethod;\n\n /**\n * Normal `<form action>` but supports React Router's relative paths.\n */\n action?: string;\n\n /**\n * Forces a full document navigation instead of a fetch.\n */\n reloadDocument?: boolean;\n\n /**\n * Replaces the current entry in the browser history stack when the form\n * navigates. Use this if you don't want the user to be able to click \"back\"\n * to the page with the form on it.\n */\n replace?: boolean;\n\n /**\n * Determines whether the form action is relative to the route hierarchy or\n * the pathname. Use this if you want to opt out of navigating the route\n * hierarchy and want to instead route based on /-delimited URL segments\n */\n relative?: RelativeRoutingType;\n\n /**\n * Prevent the scroll position from resetting to the top of the viewport on\n * completion of the navigation when using the <ScrollRestoration> component\n */\n preventScrollReset?: boolean;\n\n /**\n * A function to call when the form is submitted. If you call\n * `event.preventDefault()` then this form will not do anything.\n */\n onSubmit?: React.FormEventHandler<HTMLFormElement>;\n}\n\n/**\n * A `@remix-run/router`-aware `<form>`. It behaves like a normal form except\n * that the interaction with the server is with `fetch` instead of new document\n * requests, allowing components to add nicer UX to the page as the form is\n * submitted and returns with data.\n */\nexport const Form = React.forwardRef<HTMLFormElement, FormProps>(\n (props, ref) => {\n return <FormImpl {...props} ref={ref} />;\n }\n);\n\nif (__DEV__) {\n Form.displayName = \"Form\";\n}\n\ntype HTMLSubmitEvent = React.BaseSyntheticEvent<\n SubmitEvent,\n Event,\n HTMLFormElement\n>;\n\ntype HTMLFormSubmitter = HTMLButtonElement | HTMLInputElement;\n\ninterface FormImplProps extends FormProps {\n fetcherKey?: string;\n routeId?: string;\n}\n\nconst FormImpl = React.forwardRef<HTMLFormElement, FormImplProps>(\n (\n {\n reloadDocument,\n replace,\n method = defaultMethod,\n action,\n onSubmit,\n fetcherKey,\n routeId,\n relative,\n preventScrollReset,\n ...props\n },\n forwardedRef\n ) => {\n let submit = useSubmitImpl(fetcherKey, routeId);\n let formMethod: FormMethod =\n method.toLowerCase() === \"get\" ? \"get\" : \"post\";\n let formAction = useFormAction(action, { relative });\n let submitHandler: React.FormEventHandler<HTMLFormElement> = (event) => {\n onSubmit && onSubmit(event);\n if (event.defaultPrevented) return;\n event.preventDefault();\n\n let submitter = (event as unknown as HTMLSubmitEvent).nativeEvent\n .submitter as HTMLFormSubmitter | null;\n\n let submitMethod =\n (submitter?.getAttribute(\"formmethod\") as FormMethod | undefined) ||\n method;\n\n submit(submitter || event.currentTarget, {\n method: submitMethod,\n replace,\n relative,\n preventScrollReset,\n });\n };\n\n return (\n <form\n ref={forwardedRef}\n method={formMethod}\n action={formAction}\n onSubmit={reloadDocument ? onSubmit : submitHandler}\n {...props}\n />\n );\n }\n);\n\nif (__DEV__) {\n FormImpl.displayName = \"FormImpl\";\n}\n\nexport interface ScrollRestorationProps {\n getKey?: GetScrollRestorationKeyFunction;\n storageKey?: string;\n}\n\n/**\n * This component will emulate the browser's scroll restoration on location\n * changes.\n */\nexport function ScrollRestoration({\n getKey,\n storageKey,\n}: ScrollRestorationProps) {\n useScrollRestoration({ getKey, storageKey });\n return null;\n}\n\nif (__DEV__) {\n ScrollRestoration.displayName = \"ScrollRestoration\";\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hooks\n////////////////////////////////////////////////////////////////////////////////\n\nenum DataRouterHook {\n UseScrollRestoration = \"useScrollRestoration\",\n UseSubmitImpl = \"useSubmitImpl\",\n UseFetcher = \"useFetcher\",\n}\n\nenum DataRouterStateHook {\n UseFetchers = \"useFetchers\",\n UseScrollRestoration = \"useScrollRestoration\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\n/**\n * Handles the click behavior for router `<Link>` components. This is useful if\n * you need to create custom `<Link>` components with the same click behavior we\n * use in our exported `<Link>`.\n */\nexport function useLinkClickHandler<E extends Element = HTMLAnchorElement>(\n to: To,\n {\n target,\n replace: replaceProp,\n state,\n preventScrollReset,\n relative,\n }: {\n target?: React.HTMLAttributeAnchorTarget;\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n } = {}\n): (event: React.MouseEvent<E, MouseEvent>) => void {\n let navigate = useNavigate();\n let location = useLocation();\n let path = useResolvedPath(to, { relative });\n\n return React.useCallback(\n (event: React.MouseEvent<E, MouseEvent>) => {\n if (shouldProcessLinkClick(event, target)) {\n event.preventDefault();\n\n // If the URL hasn't changed, a regular <a> will do a replace instead of\n // a push, so do the same here unless the replace prop is explicitly set\n let replace =\n replaceProp !== undefined\n ? replaceProp\n : createPath(location) === createPath(path);\n\n navigate(to, { replace, state, preventScrollReset, relative });\n }\n },\n [\n location,\n navigate,\n path,\n replaceProp,\n state,\n target,\n to,\n preventScrollReset,\n relative,\n ]\n );\n}\n\n/**\n * A convenient wrapper for reading and writing search parameters via the\n * URLSearchParams interface.\n */\nexport function useSearchParams(\n defaultInit?: URLSearchParamsInit\n): [URLSearchParams, SetURLSearchParams] {\n warning(\n typeof URLSearchParams !== \"undefined\",\n `You cannot use the \\`useSearchParams\\` hook in a browser that does not ` +\n `support the URLSearchParams API. If you need to support Internet ` +\n `Explorer 11, we recommend you load a polyfill such as ` +\n `https://github.com/ungap/url-search-params\\n\\n` +\n `If you're unsure how to load polyfills, we recommend you check out ` +\n `https://polyfill.io/v3/ which provides some recommendations about how ` +\n `to load polyfills only for users that need them, instead of for every ` +\n `user.`\n );\n\n let defaultSearchParamsRef = React.useRef(createSearchParams(defaultInit));\n let hasSetSearchParamsRef = React.useRef(false);\n\n let location = useLocation();\n let searchParams = React.useMemo(\n () =>\n // Only merge in the defaults if we haven't yet called setSearchParams.\n // Once we call that we want those to take precedence, otherwise you can't\n // remove a param with setSearchParams({}) if it has an initial value\n getSearchParamsForLocation(\n location.search,\n hasSetSearchParamsRef.current ? null : defaultSearchParamsRef.current\n ),\n [location.search]\n );\n\n let navigate = useNavigate();\n let setSearchParams = React.useCallback<SetURLSearchParams>(\n (nextInit, navigateOptions) => {\n const newSearchParams = createSearchParams(\n typeof nextInit === \"function\" ? nextInit(searchParams) : nextInit\n );\n hasSetSearchParamsRef.current = true;\n navigate(\"?\" + newSearchParams, navigateOptions);\n },\n [navigate, searchParams]\n );\n\n return [searchParams, setSearchParams];\n}\n\ntype SetURLSearchParams = (\n nextInit?:\n | URLSearchParamsInit\n | ((prev: URLSearchParams) => URLSearchParamsInit),\n navigateOpts?: NavigateOptions\n) => void;\n\ntype SubmitTarget =\n | HTMLFormElement\n | HTMLButtonElement\n | HTMLInputElement\n | FormData\n | URLSearchParams\n | { [name: string]: string }\n | null;\n\n/**\n * Submits a HTML `<form>` to the server without reloading the page.\n */\nexport interface SubmitFunction {\n (\n /**\n * Specifies the `<form>` to be submitted to the server, a specific\n * `<button>` or `<input type=\"submit\">` to use to submit the form, or some\n * arbitrary data to submit.\n *\n * Note: When using a `<button>` its `name` and `value` will also be\n * included in the form data that is submitted.\n */\n target: SubmitTarget,\n\n /**\n * Options that override the `<form>`'s own attributes. Required when\n * submitting arbitrary data without a backing `<form>`.\n */\n options?: SubmitOptions\n ): void;\n}\n\n/**\n * Returns a function that may be used to programmatically submit a form (or\n * some arbitrary data) to the server.\n */\nexport function useSubmit(): SubmitFunction {\n return useSubmitImpl();\n}\n\nfunction useSubmitImpl(fetcherKey?: string, routeId?: string): SubmitFunction {\n let { router } = useDataRouterContext(DataRouterHook.UseSubmitImpl);\n let defaultAction = useFormAction();\n\n return React.useCallback(\n (target, options = {}) => {\n if (typeof document === \"undefined\") {\n throw new Error(\n \"You are calling submit during the server render. \" +\n \"Try calling submit within a `useEffect` or callback instead.\"\n );\n }\n\n let { method, encType, formData, url } = getFormSubmissionInfo(\n target,\n defaultAction,\n options\n );\n\n let href = url.pathname + url.search;\n let opts = {\n replace: options.replace,\n preventScrollReset: options.preventScrollReset,\n formData,\n formMethod: method as FormMethod,\n formEncType: encType as FormEncType,\n };\n if (fetcherKey) {\n invariant(routeId != null, \"No routeId available for useFetcher()\");\n router.fetch(fetcherKey, routeId, href, opts);\n } else {\n router.navigate(href, opts);\n }\n },\n [defaultAction, router, fetcherKey, routeId]\n );\n}\n\nexport function useFormAction(\n action?: string,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n let { basename } = React.useContext(NavigationContext);\n let routeContext = React.useContext(RouteContext);\n invariant(routeContext, \"useFormAction must be used inside a RouteContext\");\n\n let [match] = routeContext.matches.slice(-1);\n // Shallow clone path so we can modify it below, otherwise we modify the\n // object referenced by useMemo inside useResolvedPath\n let path = { ...useResolvedPath(action ? action : \".\", { relative }) };\n\n // Previously we set the default action to \".\". The problem with this is that\n // `useResolvedPath(\".\")` excludes search params and the hash of the resolved\n // URL. This is the intended behavior of when \".\" is specifically provided as\n // the form action, but inconsistent w/ browsers when the action is omitted.\n // https://github.com/remix-run/remix/issues/927\n let location = useLocation();\n if (action == null) {\n // Safe to write to these directly here since if action was undefined, we\n // would have called useResolvedPath(\".\") which will never include a search\n // or hash\n path.search = location.search;\n path.hash = location.hash;\n\n // When grabbing search params from the URL, remove the automatically\n // inserted ?index param so we match the useResolvedPath search behavior\n // which would not include ?index\n if (match.route.index) {\n let params = new URLSearchParams(path.search);\n params.delete(\"index\");\n path.search = params.toString() ? `?${params.toString()}` : \"\";\n }\n }\n\n if ((!action || action === \".\") && match.route.index) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the form action. If this is a root navigation, then just use\n // the raw basename which allows the basename to have full control over the\n // presence of a trailing slash on root actions\n if (basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\nfunction createFetcherForm(fetcherKey: string, routeId: string) {\n let FetcherForm = React.forwardRef<HTMLFormElement, FormProps>(\n (props, ref) => {\n return (\n <FormImpl\n {...props}\n ref={ref}\n fetcherKey={fetcherKey}\n routeId={routeId}\n />\n );\n }\n );\n if (__DEV__) {\n FetcherForm.displayName = \"fetcher.Form\";\n }\n return FetcherForm;\n}\n\nlet fetcherId = 0;\n\nexport type FetcherWithComponents<TData> = Fetcher<TData> & {\n Form: ReturnType<typeof createFetcherForm>;\n submit: (\n target: SubmitTarget,\n // Fetchers cannot replace/preventScrollReset because they are not\n // navigation events\n options?: Omit<SubmitOptions, \"replace\" | \"preventScrollReset\">\n ) => void;\n load: (href: string) => void;\n};\n\n/**\n * Interacts with route loaders and actions without causing a navigation. Great\n * for any interaction that stays on the same page.\n */\nexport function useFetcher<TData = any>(): FetcherWithComponents<TData> {\n let { router } = useDataRouterContext(DataRouterHook.UseFetcher);\n\n let route = React.useContext(RouteContext);\n invariant(route, `useFetcher must be used inside a RouteContext`);\n\n let routeId = route.matches[route.matches.length - 1]?.route.id;\n invariant(\n routeId != null,\n `useFetcher can only be used on routes that contain a unique \"id\"`\n );\n\n let [fetcherKey] = React.useState(() => String(++fetcherId));\n let [Form] = React.useState(() => {\n invariant(routeId, `No routeId available for fetcher.Form()`);\n return createFetcherForm(fetcherKey, routeId);\n });\n let [load] = React.useState(() => (href: string) => {\n invariant(router, \"No router available for fetcher.load()\");\n invariant(routeId, \"No routeId available for fetcher.load()\");\n router.fetch(fetcherKey, routeId, href);\n });\n let submit = useSubmitImpl(fetcherKey, routeId);\n\n let fetcher = router.getFetcher<TData>(fetcherKey);\n\n let fetcherWithComponents = React.useMemo(\n () => ({\n Form,\n submit,\n load,\n ...fetcher,\n }),\n [fetcher, Form, submit, load]\n );\n\n React.useEffect(() => {\n // Is this busted when the React team gets real weird and calls effects\n // twice on mount? We really just need to garbage collect here when this\n // fetcher is no longer around.\n return () => {\n if (!router) {\n console.warn(`No fetcher available to clean up from useFetcher()`);\n return;\n }\n router.deleteFetcher(fetcherKey);\n };\n }, [router, fetcherKey]);\n\n return fetcherWithComponents;\n}\n\n/**\n * Provides all fetchers currently on the page. Useful for layouts and parent\n * routes that need to provide pending/optimistic UI regarding the fetch.\n */\nexport function useFetchers(): Fetcher[] {\n let state = useDataRouterState(DataRouterStateHook.UseFetchers);\n return [...state.fetchers.values()];\n}\n\nconst SCROLL_RESTORATION_STORAGE_KEY = \"react-router-scroll-positions\";\nlet savedScrollPositions: Record<string, number> = {};\n\n/**\n * When rendered inside a RouterProvider, will restore scroll positions on navigations\n */\nfunction useScrollRestoration({\n getKey,\n storageKey,\n}: {\n getKey?: GetScrollRestorationKeyFunction;\n storageKey?: string;\n} = {}) {\n let { router } = useDataRouterContext(DataRouterHook.UseScrollRestoration);\n let { restoreScrollPosition, preventScrollReset } = useDataRouterState(\n DataRouterStateHook.UseScrollRestoration\n );\n let location = useLocation();\n let matches = useMatches();\n let navigation = useNavigation();\n\n // Trigger manual scroll restoration while we're active\n React.useEffect(() => {\n window.history.scrollRestoration = \"manual\";\n return () => {\n window.history.scrollRestoration = \"auto\";\n };\n }, []);\n\n // Save positions on pagehide\n usePageHide(\n React.useCallback(() => {\n if (navigation.state === \"idle\") {\n let key = (getKey ? getKey(location, matches) : null) || location.key;\n savedScrollPositions[key] = window.scrollY;\n }\n sessionStorage.setItem(\n storageKey || SCROLL_RESTORATION_STORAGE_KEY,\n JSON.stringify(savedScrollPositions)\n );\n window.history.scrollRestoration = \"auto\";\n }, [storageKey, getKey, navigation.state, location, matches])\n );\n\n // Read in any saved scroll locations\n if (typeof document !== \"undefined\") {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(() => {\n try {\n let sessionPositions = sessionStorage.getItem(\n storageKey || SCROLL_RESTORATION_STORAGE_KEY\n );\n if (sessionPositions) {\n savedScrollPositions = JSON.parse(sessionPositions);\n }\n } catch (e) {\n // no-op, use default empty object\n }\n }, [storageKey]);\n\n // Enable scroll restoration in the router\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(() => {\n let disableScrollRestoration = router?.enableScrollRestoration(\n savedScrollPositions,\n () => window.scrollY,\n getKey\n );\n return () => disableScrollRestoration && disableScrollRestoration();\n }, [router, getKey]);\n\n // Restore scrolling when state.restoreScrollPosition changes\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(() => {\n // Explicit false means don't do anything (used for submissions)\n if (restoreScrollPosition === false) {\n return;\n }\n\n // been here before, scroll to it\n if (typeof restoreScrollPosition === \"number\") {\n window.scrollTo(0, restoreScrollPosition);\n return;\n }\n\n // try to scroll to the hash\n if (location.hash) {\n let el = document.getElementById(location.hash.slice(1));\n if (el) {\n el.scrollIntoView();\n return;\n }\n }\n\n // Don't reset if this navigation opted out\n if (preventScrollReset === true) {\n return;\n }\n\n // otherwise go to the top on new locations\n window.scrollTo(0, 0);\n }, [location, restoreScrollPosition, preventScrollReset]);\n }\n}\n\nexport { useScrollRestoration as UNSAFE_useScrollRestoration };\n\n/**\n * Setup a callback to be fired on the window's `beforeunload` event. This is\n * useful for saving some data to `window.localStorage` just before the page\n * refreshes.\n *\n * Note: The `callback` argument should be a function created with\n * `React.useCallback()`.\n */\nexport function useBeforeUnload(\n callback: (event: BeforeUnloadEvent) => any,\n options?: { capture?: boolean }\n): void {\n let { capture } = options || {};\n React.useEffect(() => {\n let opts = capture != null ? { capture } : undefined;\n window.addEventListener(\"beforeunload\", callback, opts);\n return () => {\n window.removeEventListener(\"beforeunload\", callback, opts);\n };\n }, [callback, capture]);\n}\n\n/**\n * Setup a callback to be fired on the window's `pagehide` event. This is\n * useful for saving some data to `window.localStorage` just before the page\n * refreshes. This event is better supported than beforeunload across browsers.\n *\n * Note: The `callback` argument should be a function created with\n * `React.useCallback()`.\n */\nfunction usePageHide(\n callback: (event: PageTransitionEvent) => any,\n options?: { capture?: boolean }\n): void {\n let { capture } = options || {};\n React.useEffect(() => {\n let opts = capture != null ? { capture } : undefined;\n window.addEventListener(\"pagehide\", callback, opts);\n return () => {\n window.removeEventListener(\"pagehide\", callback, opts);\n };\n }, [callback, capture]);\n}\n\n/**\n * Wrapper around useBlocker to show a window.confirm prompt to users instead\n * of building a custom UI with useBlocker.\n *\n * Warning: This has *a lot of rough edges* and behaves very differently (and\n * very incorrectly in some cases) across browsers if user click addition\n * back/forward navigations while the confirm is open. Use at your own risk.\n */\nfunction usePrompt({ when, message }: { when: boolean; message: string }) {\n let blocker = useBlocker(when);\n\n React.useEffect(() => {\n if (blocker.state === \"blocked\" && !when) {\n blocker.reset();\n }\n }, [blocker, when]);\n\n React.useEffect(() => {\n if (blocker.state === \"blocked\") {\n let proceed = window.confirm(message);\n if (proceed) {\n setTimeout(blocker.proceed, 0);\n } else {\n blocker.reset();\n }\n }\n }, [blocker, message]);\n}\n\nexport { usePrompt as unstable_usePrompt };\n\n//#endregion\n","import type { FormEncType, FormMethod } from \"@remix-run/router\";\nimport type { RelativeRoutingType } from \"react-router\";\n\nexport const defaultMethod = \"get\";\nconst defaultEncType = \"application/x-www-form-urlencoded\";\n\nexport function isHtmlElement(object: any): object is HTMLElement {\n return object != null && typeof object.tagName === \"string\";\n}\n\nexport function isButtonElement(object: any): object is HTMLButtonElement {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"button\";\n}\n\nexport function isFormElement(object: any): object is HTMLFormElement {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"form\";\n}\n\nexport function isInputElement(object: any): object is HTMLInputElement {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"input\";\n}\n\ntype LimitedMouseEvent = Pick<\n MouseEvent,\n \"button\" | \"metaKey\" | \"altKey\" | \"ctrlKey\" | \"shiftKey\"\n>;\n\nfunction isModifiedEvent(event: LimitedMouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport function shouldProcessLinkClick(\n event: LimitedMouseEvent,\n target?: string\n) {\n return (\n event.button === 0 && // Ignore everything but left clicks\n (!target || target === \"_self\") && // Let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // Ignore clicks with modifier keys\n );\n}\n\nexport type ParamKeyValuePair = [string, string];\n\nexport type URLSearchParamsInit =\n | string\n | ParamKeyValuePair[]\n | Record<string, string | string[]>\n | URLSearchParams;\n\n/**\n * Creates a URLSearchParams object using the given initializer.\n *\n * This is identical to `new URLSearchParams(init)` except it also\n * supports arrays as values in the object form of the initializer\n * instead of just strings. This is convenient when you need multiple\n * values for a given key, but don't want to use an array initializer.\n *\n * For example, instead of:\n *\n * let searchParams = new URLSearchParams([\n * ['sort', 'name'],\n * ['sort', 'price']\n * ]);\n *\n * you can do:\n *\n * let searchParams = createSearchParams({\n * sort: ['name', 'price']\n * });\n */\nexport function createSearchParams(\n init: URLSearchParamsInit = \"\"\n): URLSearchParams {\n return new URLSearchParams(\n typeof init === \"string\" ||\n Array.isArray(init) ||\n init instanceof URLSearchParams\n ? init\n : Object.keys(init).reduce((memo, key) => {\n let value = init[key];\n return memo.concat(\n Array.isArray(value) ? value.map((v) => [key, v]) : [[key, value]]\n );\n }, [] as ParamKeyValuePair[])\n );\n}\n\nexport function getSearchParamsForLocation(\n locationSearch: string,\n defaultSearchParams: URLSearchParams | null\n) {\n let searchParams = createSearchParams(locationSearch);\n\n if (defaultSearchParams) {\n for (let key of defaultSearchParams.keys()) {\n if (!searchParams.has(key)) {\n defaultSearchParams.getAll(key).forEach((value) => {\n searchParams.append(key, value);\n });\n }\n }\n }\n\n return searchParams;\n}\n\nexport interface SubmitOptions {\n /**\n * The HTTP method used to submit the form. Overrides `<form method>`.\n * Defaults to \"GET\".\n */\n method?: FormMethod;\n\n /**\n * The action URL path used to submit the form. Overrides `<form action>`.\n * Defaults to the path of the current route.\n *\n * Note: It is assumed the path is already resolved. If you need to resolve a\n * relative path, use `useFormAction`.\n */\n action?: string;\n\n /**\n * The action URL used to submit the form. Overrides `<form encType>`.\n * Defaults to \"application/x-www-form-urlencoded\".\n */\n encType?: FormEncType;\n\n /**\n * Set `true` to replace the current entry in the browser's history stack\n * instead of creating a new one (i.e. stay on \"the same page\"). Defaults\n * to `false`.\n */\n replace?: boolean;\n\n /**\n * Determines whether the form action is relative to the route hierarchy or\n * the pathname. Use this if you want to opt out of navigating the route\n * hierarchy and want to instead route based on /-delimited URL segments\n */\n relative?: RelativeRoutingType;\n\n /**\n * In browser-based environments, prevent resetting scroll after this\n * navigation when using the <ScrollRestoration> component\n */\n preventScrollReset?: boolean;\n}\n\nexport function getFormSubmissionInfo(\n target:\n | HTMLFormElement\n | HTMLButtonElement\n | HTMLInputElement\n | FormData\n | URLSearchParams\n | { [name: string]: string }\n | null,\n defaultAction: string,\n options: SubmitOptions\n): {\n url: URL;\n method: string;\n encType: string;\n formData: FormData;\n} {\n let method: string;\n let action: string;\n let encType: string;\n let formData: FormData;\n\n if (isFormElement(target)) {\n let submissionTrigger: HTMLButtonElement | HTMLInputElement = (\n options as any\n ).submissionTrigger;\n\n method = options.method || target.getAttribute(\"method\") || defaultMethod;\n action = options.action || target.getAttribute(\"action\") || defaultAction;\n encType =\n options.encType || target.getAttribute(\"enctype\") || defaultEncType;\n\n formData = new FormData(target);\n\n if (submissionTrigger && submissionTrigger.name) {\n formData.append(submissionTrigger.name, submissionTrigger.value);\n }\n } else if (\n isButtonElement(target) ||\n (isInputElement(target) &&\n (target.type === \"submit\" || target.type === \"image\"))\n ) {\n let form = target.form;\n\n if (form == null) {\n throw new Error(\n `Cannot submit a <button> or <input type=\"submit\"> without a <form>`\n );\n }\n\n // <button>/<input type=\"submit\"> may override attributes of <form>\n\n method =\n options.method ||\n target.getAttribute(\"formmethod\") ||\n form.getAttribute(\"method\") ||\n defaultMethod;\n action =\n options.action ||\n target.getAttribute(\"formaction\") ||\n form.getAttribute(\"action\") ||\n defaultAction;\n encType =\n options.encType ||\n target.getAttribute(\"formenctype\") ||\n form.getAttribute(\"enctype\") ||\n defaultEncType;\n\n formData = new FormData(form);\n\n // Include name + value from a <button>, appending in case the button name\n // matches an existing input name\n if (target.name) {\n formData.append(target.name, target.value);\n }\n } else if (isHtmlElement(target)) {\n throw new Error(\n `Cannot submit element that is not <form>, <button>, or ` +\n `<input type=\"submit|image\">`\n );\n } else {\n method = options.method || defaultMethod;\n action = options.action || defaultAction;\n encType = options.encType || defaultEncType;\n\n if (target instanceof FormData) {\n formData = target;\n } else {\n formData = new FormData();\n\n if (target instanceof URLSearchParams) {\n for (let [name, value] of target) {\n formData.append(name, value);\n }\n } else if (target != null) {\n for (let name of Object.keys(target)) {\n formData.append(name, target[name]);\n }\n }\n }\n }\n\n let { protocol, host } = window.location;\n let url = new URL(action, `${protocol}//${host}`);\n\n return { url, method: method.toLowerCase(), encType, formData };\n}\n","//Using the react library\r\nimport React from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\n\r\nfunction Department(props) {\r\n return (\r\n <div title={props.department}><Link title={props.department} className=\"dropdown-item\" to={props.path}>{props.department}</Link></div>\r\n );\r\n}\r\n\r\nexport default Department;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgAnglesRightSolid(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 512 512\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M470.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 256 265.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160zm-352 160l160-160c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L210.7 256 73.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgAnglesRightSolid);\nexport default __webpack_public_path__ + \"static/media/angles-right-solid.03587a85b777d358fd32751d5d2e3e7e.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\r\n\r\nimport { useEffect } from 'react';\r\n\r\nconst GoogleTranslateBar = () => {\r\n\r\n const googleTranslateElementInit = () => {\r\n new window.google.translate.TranslateElement(\r\n {\r\n pageLanguage: \"en\",\r\n \r\n layout: window.google.translate.TranslateElement.InlineLayout.HORIZONTAL,\r\n // layout: window.google.translate.TranslateElement.InlineLayout.Vertical,\r\n },\r\n \"google_translate_element\"\r\n );\r\n };\r\n useEffect(() => {\r\n var addScript = document.createElement(\"script\");\r\n addScript.setAttribute(\r\n \"src\",\r\n \"//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit\"\r\n );\r\n document.body.appendChild(addScript);\r\n window.googleTranslateElementInit = googleTranslateElementInit;\r\n }, []);\r\n\r\n\r\n return (\r\n <>\r\n <div className='container mobile-google-align ' id='google_translate_element'></div>\r\n </>\r\n );\r\n};\r\n\r\nexport default GoogleTranslateBar;","const isNullOrWhiteSpace = (arg) => {\r\n if (arg == null || arg == undefined) {\r\n return true;\r\n }\r\n if (typeof arg != \"string\") {\r\n return true;\r\n }\r\n if (arg.trim() == \"\") {\r\n return true;\r\n }\r\n else{\r\n return false;\r\n }\r\n\r\n \r\n};\r\nexport {isNullOrWhiteSpace};","import { isNullOrWhiteSpace } from \"../utils/StringUtils\";\r\n\r\nfunction IsNullOrWhiteSpace({ arg, isNullComponent, notNullComponent }) {\r\n\r\n if (isNullComponent == undefined) {\r\n isNullComponent = null;\r\n }\r\n const component = notNullComponent == null ?\r\n <span>{arg}</span> :\r\n notNullComponent; \r\n return isNullOrWhiteSpace(arg) ? isNullComponent : component ;\r\n}\r\n\r\n\r\nexport default IsNullOrWhiteSpace;","import IsNullOrWhiteSpace from \"./IsNullOrWhiteSpace\";\r\n\r\n\r\nfunction ContactInfoPhone({phone}){\r\n\r\n const li = <><i className=\"fa-li fa fa-phone \" aria-hidden=\"true\"></i><a className=\"phone\" href={\"tel:\" + phone}>{phone}</a><br /></>;\r\n\r\n return <IsNullOrWhiteSpace arg={phone} notNullComponent={li} />\r\n\r\n}\r\n\r\nexport default ContactInfoPhone;","import IsNullOrWhiteSpace from \"./IsNullOrWhiteSpace\";\r\n\r\nfunction ContactInfoFax({fax}) {\r\n\r\n const li = <><i className=\"fa-li fa fa-fax\" aria-hidden=\"true\"></i><a className=\"fax\" href={\"tel:\" + fax}>{fax}</a><br />\r\n\r\n </>;\r\n\r\n return <IsNullOrWhiteSpace arg={fax} notNullComponent={li} />\r\n}\r\n\r\nexport default ContactInfoFax;","\r\n\r\nfunction ContactInfoAddress({street, city, state, zip}){\r\n const mapHref = `http://maps.google.com/?q=${street}${city}${state}${zip}`;\r\n return (\r\n <li>\r\n <i className=\"fa-li fa fa-address-book\" aria-hidden=\"true\"></i>\r\n <a href={mapHref} className=\"phone\" >\r\n {street} <br />\r\n {city}, {state} {zip} <br />\r\n </a>\r\n </li>\r\n );\r\n \r\n}\r\n\r\nexport default ContactInfoAddress;","import IsNullOrWhiteSpace from \"./IsNullOrWhiteSpace\";\r\n\r\n\r\nfunction ContactInfoPerson({ email, name, title, phone }) {\r\n\r\n return (\r\n <>\r\n <li>\r\n <i className=\"fa-li fa fa-user\" aria-hidden=\"true\"></i>\r\n <a title={name + \": \"+ email} className=\"person\" href={\"mailto:\" + email}>\r\n <IsNullOrWhiteSpace arg={title} notNullComponent={<>{title}<br /></>} />\r\n {name}<br />\r\n </a>\r\n <a className=\"phone\" href={\"tel:\" + phone}><IsNullOrWhiteSpace arg={phone} notNullComponent={<>{phone}</>}/></a>\r\n </li>\r\n </>\r\n\r\n\r\n );\r\n}\r\n\r\nexport default ContactInfoPerson;","import IsNullOrWhiteSpace from \"./IsNullOrWhiteSpace\";\r\n\r\n\r\n\r\nfunction ContactInfoTollFree({tollFree}){\r\n\r\n const li = <><i className=\"fa-li fa fa-phone\" aria-hidden=\"true\"></i><a className=\"phone\" href={\"tel:\" + tollFree}>{tollFree}</a><br /></>;\r\n\r\n return <IsNullOrWhiteSpace arg={tollFree} notNullComponent={li} />\r\n\r\n}\r\n\r\nexport default ContactInfoTollFree;","//Using the react library\r\nimport React from \"react\";\r\n//Using the react library:\r\nimport { useEffect, useState } from \"react\";\r\n//API Middle man\r\nimport useApi from \"../utils/UseAPI\";\r\n// React loading spinner\r\nimport Spinner from 'react-bootstrap/Spinner';\r\nimport ContactInfoPhone from \"./ContactInfoPhone\";\r\nimport ContactInfoFax from \"./ContactInfoFax\";\r\nimport ContactInfoAddress from \"./ContactInfoAddress\";\r\nimport ContactInfoPerson from \"./ContactInfoPerson\";\r\nimport ContactInfoTollFree from \"./ContactInfoTollFree\";\r\n\r\nfunction ContactInfo({ pageID }) {\r\n\r\n const {error, processing, getRequest } = useApi();\r\n // Store phone/fax info\r\n const [phoneInfo, setPhoneInfo] = useState([]);\r\n // Store TollFree info\r\n const [tollFreeInfo, setTollFreeInfo] = useState([]);\r\n // Store fax info\r\n const [faxInfo, setFaxInfo] = useState([]);\r\n // store Address info\r\n const [addressInfo, setAddressInfo] = useState([]);\r\n // Store Staff info\r\n const [contactInfo, setContactInfo] = useState([]);\r\n // const [responsibleStaff, setResponsibleStaff] = useState([]);\r\n\r\n useEffect(() => {\r\n\r\n const fetchLinks = async () => {\r\n const [data, status] = await getRequest(null, \"contact/\" + pageID); \r\n \r\n if (status == 200) {\r\n setPhoneInfo(data.data.phones);\r\n setTollFreeInfo(data.data.phones);\r\n setFaxInfo(data.data.phones);\r\n setContactInfo(data.data.contacts);\r\n setAddressInfo(data.data.addresses);\r\n }\r\n else {\r\n // console.log(error);\r\n }\r\n\r\n };\r\n fetchLinks();\r\n }, [pageID]);\r\n\r\n const phoneListItems = phoneInfo.map((data, index) => \r\n <li title={data.phone} key={index}>\r\n <ContactInfoPhone phone={data.phone}/> \r\n </li>\r\n );\r\n const faxListItem = faxInfo.map((data, index) => \r\n <li title={data.fax} key={index}>\r\n <ContactInfoFax fax={data.fax}/> \r\n </li>\r\n \r\n );\r\n const tollFreeListItem = tollFreeInfo.map((data, index) => \r\n <li title={data.tollFree} key={index}> \r\n <ContactInfoTollFree tollFree={data.tollFree}/> \r\n </li>\r\n );\r\n \r\n const addressListItems = addressInfo.map((data, index) => \r\n <ContactInfoAddress\r\n key={index}\r\n street={data.address} \r\n city={data.city} \r\n state={data.state} \r\n zip={data.zip}\r\n />\r\n );\r\n\r\n const personListItems = contactInfo.map((data, index) => \r\n <ContactInfoPerson \r\n key={index}\r\n email={data.staff.phone} \r\n name={`${data.staff.firstName} ${data.staff.lastName}`}\r\n title={data.title}\r\n phone={data.staff.email}\r\n />\r\n );\r\n\r\n return (\r\n <>\r\n {/* <div className=\"col-md-12 grid-cell-first\"> */}\r\n <b><p title=\"Contact Information\" className=\"sectionTitle bordered\">Contact Information</p></b>\r\n <div className=\"row grid-row-2 contacts\">\r\n <div className=\"col-md-11 grid-cell-first\">\r\n {\r\n processing ? \r\n <Spinner animation=\"border\" variant=\"success\" /> : \r\n <ul className=\"fa-ul\">\r\n {addressListItems}\r\n {phoneListItems}\r\n {faxListItem}\r\n {tollFreeListItem}\r\n {personListItems}\r\n </ul>\r\n }\r\n {/* </div> */}\r\n </div>\r\n </div>\r\n </>\r\n );\r\n}\r\n\r\nexport default ContactInfo;\r\n","import React from 'react';\r\nimport { useEffect, useState } from \"react\";\r\n//API Middle man\r\nimport useApi from \"../utils/UseAPI\";\r\n\r\n\r\nfunction EmergencyContact() {\r\n const [links, setLinks] = useState([]);\r\n const { error, processing, getRequest } = useApi();\r\n\r\n useEffect(() => {\r\n\r\n const fetchLinks = async () => {\r\n const [data, status] = await getRequest(null, \"link/791\");\r\n if (status == 200) {\r\n // console.log(data.data)\r\n setLinks(data.data.sort((a, b) => a.sort - b.sort))\r\n }\r\n else {\r\n console.log(error)\r\n }\r\n };\r\n fetchLinks();\r\n }, []);\r\n return (\r\n <>\r\n {links.map((data, index) => {\r\n return <a title={data.title} className=\"dropdown-item\" key={index} href={data.url}>{data.title}</a>\r\n })} \r\n </>\r\n );\r\n}\r\n\r\nexport default EmergencyContact;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix, useBootstrapBreakpoints, useBootstrapMinBreakpoint } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Row = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n ...props\n}, ref) => {\n const decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'row');\n const breakpoints = useBootstrapBreakpoints();\n const minBreakpoint = useBootstrapMinBreakpoint();\n const sizePrefix = `${decoratedBsPrefix}-cols`;\n const classes = [];\n breakpoints.forEach(brkPoint => {\n const propValue = props[brkPoint];\n delete props[brkPoint];\n let cols;\n if (propValue != null && typeof propValue === 'object') {\n ({\n cols\n } = propValue);\n } else {\n cols = propValue;\n }\n const infix = brkPoint !== minBreakpoint ? `-${brkPoint}` : '';\n if (cols != null) classes.push(`${sizePrefix}${infix}-${cols}`);\n });\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, decoratedBsPrefix, ...classes)\n });\n});\nRow.displayName = 'Row';\nexport default Row;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useButtonProps } from '@restart/ui/Button';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Button = /*#__PURE__*/React.forwardRef(({\n as,\n bsPrefix,\n variant = 'primary',\n size,\n active = false,\n disabled = false,\n className,\n ...props\n}, ref) => {\n const prefix = useBootstrapPrefix(bsPrefix, 'btn');\n const [buttonProps, {\n tagName\n }] = useButtonProps({\n tagName: as,\n disabled,\n ...props\n });\n const Component = tagName;\n return /*#__PURE__*/_jsx(Component, {\n ...buttonProps,\n ...props,\n ref: ref,\n disabled: disabled,\n className: classNames(className, prefix, active && 'active', variant && `${prefix}-${variant}`, size && `${prefix}-${size}`, props.href && disabled && 'disabled')\n });\n});\nButton.displayName = 'Button';\nexport default Button;","import React from 'react';\r\nimport { useState, useEffect } from 'react';\r\nimport Col from 'react-bootstrap/Col';\r\nimport Form from 'react-bootstrap/Form';\r\nimport InputGroup from 'react-bootstrap/InputGroup';\r\nimport Row from 'react-bootstrap/Row';\r\nimport Button from 'react-bootstrap/Button';\r\nimport useApi from '../utils/UseAPI';\r\n\r\n\r\n//React Bootstrap\r\nfunction ContactFormInput() {\r\n\r\n const [validated, setValidated] = useState(false);\r\n const { error, postRequest } = useApi();\r\n const [formError, setFormError] = useState({});\r\n const [isButtonDisabled, setButtonDisabled] = useState(false);\r\n const [formSubmitted, setFormSubmitted] = useState(false);\r\n\r\n const [formData, setFormData] = useState({\r\n\r\n pageID: '1',\r\n firstName: '',\r\n lastName: '',\r\n organization: 'n/a',\r\n address: 'n/a',\r\n addressTwo: 'n/a',\r\n city: 'n/a',\r\n state: 'n/a',\r\n zip: '00000',\r\n phone: '000-000-0000',\r\n fax: '000-000-0000',\r\n userEmail: '',\r\n subject: '',\r\n comment: ''\r\n\r\n })\r\n\r\n const handleSubmit = (e) => {\r\n disableButton();\r\n e.preventDefault();\r\n // console.log(formSubmitted);\r\n const getFormError = findFormErrors(formData);\r\n // console.log(formData);\r\n if (Object.keys(getFormError).length > 0) {\r\n setFormError(getFormError);\r\n // setTimeout(() => {\r\n // enableButton();\r\n // }, 3000);\r\n } else {\r\n postRequest(formData, \"email/contact-page\");\r\n setFormSubmitted(true);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (formSubmitted == true) {\r\n // \r\n alert(\"Thank you!\",\"Your form submission has been received.\");\r\n window.location.reload();\r\n }\r\n }, [formSubmitted])\r\n const disableButton = () => {\r\n setButtonDisabled(true);\r\n };\r\n\r\n const enableButton = () => {\r\n setButtonDisabled(false);\r\n };\r\n\r\n const findFormErrors = (form) => {\r\n const { firstName, lastName, organization, address, city, state, zip, phone, userEmail, subject, comment } = form\r\n const message = {}\r\n\r\n if (!firstName || firstName == '') message.firstName = 'Please provide a valid name.'\r\n else if (firstName.length > 30) message.firstName = 'Please provide a shorter name.'\r\n if (!lastName || lastName == '') message.lastName = 'Please provide a last name.'\r\n else if (lastName.length > 30) message.lastName = 'Please provide a shorter last name.'\r\n if (organization > 30) message.organization = 'Please provide a shorter organization name.'\r\n if (address.length > 60) message.address = 'Please provide a valid address.'\r\n // if (addressTwo.length > 60) message.addressTwo = 'Please provide a valid address.'\r\n // if (!city || city.length == '') message.city = 'Please provide a valid city.'\r\n else if (city.length > 30) message.city = 'Please provide a shorter city name.'\r\n // if (!state || state == '') message.state = 'Please provide a valid state.'\r\n if (state.length > 30) message.state = 'Please provide a valid state.'\r\n if (zip.length > 5 || zip.length < 5) message.zip = 'Please provide a valid zip code. (5 digits)'\r\n // if (!phone || phone == '') message.phone = 'Please provide a valid phone number.'\r\n // else if (phone.length > 10) message.phone = 'Please provide a valid Phone number.'\r\n if (!subject || subject == \"\") message.subject = 'Please provide a subject name.'\r\n else if (subject.length > 15) message.phone = 'Please provide a subject under 15 characters.'\r\n if (!userEmail || userEmail == \"\") message.userEmail = 'Please provide a valid email address.'\r\n // if ( userEmail == \"\") message.userEmail = 'Please provide a valid email address.'\r\n if (!comment || comment == '') message.comment = 'Please provide a reason.'\r\n else if (comment.length > 500) message.phone = 'Please provide a reason.'\r\n\r\n\r\n // console.log(message)\r\n\r\n return message\r\n }\r\n\r\n return (\r\n <>\r\n <Form noValidate validated={validated} onSubmit={handleSubmit}>\r\n <Row className=\"mb-4\">\r\n <Form.Group as={Col} md=\"10\" controlId=\"validationCustom01\">\r\n <Form.Label><b title='First Name'>*First Name:</b></Form.Label>\r\n <Form.Control\r\n required\r\n type='text'\r\n placeholder=\"First Name\"\r\n aria-describedby=\"inputGroupPrepend\"\r\n onChange={(e) => { setFormData({ ...formData, firstName: e.target.value }) }}\r\n isInvalid={!!formError.firstName}\r\n />\r\n <Form.Control.Feedback type='invalid'>{formError.firstName}</Form.Control.Feedback>\r\n\r\n </Form.Group>\r\n <Form.Group as={Col} md=\"10\" controlId=\"validationCustom02\">\r\n <Form.Label><b title='Last Name'>*Last Name:</b></Form.Label>\r\n <Form.Control\r\n required\r\n type=\"text\"\r\n placeholder=\"Last Name\"\r\n aria-describedby=\"inputGroupPrepend\"\r\n defaultValue=\"\"\r\n isInvalid={!!formError.lastName}\r\n onChange={(e) => { setFormData({ ...formData, lastName: e.target.value }) }}\r\n />\r\n\r\n <Form.Control.Feedback type='invalid'>{formError.lastName}</Form.Control.Feedback>\r\n </Form.Group>\r\n <Form.Group as={Col} md=\"10\" controlId=\"validationCustom03\">\r\n <Form.Label><b title='Organization'>Organization:</b></Form.Label>\r\n\r\n {/* <InputGroup.Text id=\"inputGroupPrepend\">@</InputGroup.Text> */}\r\n <Form.Control\r\n type=\"text\"\r\n placeholder=\"Organization\"\r\n aria-describedby=\"inputGroupPrepend\"\r\n isInvalid={!!formError.organization}\r\n // required\r\n\r\n onChange={(e) => { e.target.value == '' || e.target.value === null ? setFormData({ ...formData, organization: \"n/a\" }) : setFormData({ ...formData, organization: e.target.value }) }}\r\n />\r\n <Form.Control.Feedback type='invalid'>{formError.organization}</Form.Control.Feedback>\r\n\r\n </Form.Group>\r\n <Form.Group as={Col} md=\"10\" controlId=\"validationCustom04\">\r\n <Form.Label><b title='Address'>Address:</b></Form.Label>\r\n\r\n {/* <InputGroup.Text id=\"inputGroupPrepend\">@</InputGroup.Text> */}\r\n <Form.Control\r\n type=\"text\"\r\n placeholder=\"Address\"\r\n\r\n isInvalid={!!formError.address}\r\n aria-describedby=\"inputGroupPrepend\"\r\n\r\n onChange={(e) => { setFormData({ ...formData, address: e.target.value }) }}\r\n />\r\n <Form.Control.Feedback type='invalid'>{formError.address}</Form.Control.Feedback>\r\n\r\n </Form.Group>\r\n <Form.Group as={Col} md=\"10\" controlId=\"validationCustom05\">\r\n <Form.Label><b title=\"Address two\">Address 2:</b></Form.Label>\r\n\r\n {/* <InputGroup.Text id=\"inputGroupPrepend\">@</InputGroup.Text> */}\r\n <Form.Control\r\n type=\"text\"\r\n placeholder=\"Address Two\"\r\n\r\n isInvalid={!!formError.addressTwo}\r\n aria-describedby=\"inputGroupPrepend\"\r\n\r\n onChange={(e) => { setFormData({ ...formData, addressTwo: e.target.value }) }}\r\n />\r\n <Form.Control.Feedback type='invalid'>{formError.addressTwo}</Form.Control.Feedback>\r\n\r\n </Form.Group>\r\n </Row>\r\n <Row className=\"mb-4\">\r\n <Form.Group as={Col} md=\"10\" controlId=\"validationCustom06\">\r\n <Form.Label><b title='City'>City:</b></Form.Label>\r\n <Form.Control type=\"text\" placeholder=\"City\" isInvalid={!!formError.city}\r\n onChange={(e) => { setFormData({ ...formData, city: e.target.value }) }}\r\n />\r\n\r\n <Form.Control.Feedback type='invalid'>{formError.city}</Form.Control.Feedback>\r\n </Form.Group>\r\n <Form.Group as={Col} md=\"10\" controlId=\"validationCustom07\">\r\n <Form.Label><b title='State'>State:</b></Form.Label>\r\n <Form.Control type=\"text\" placeholder=\"State\" isInvalid={!!formError.state}\r\n onChange={(e) => { setFormData({ ...formData, state: e.target.value }) }} />\r\n <Form.Control.Feedback type='invalid'>{formError.state}</Form.Control.Feedback>\r\n\r\n </Form.Group>\r\n <Form.Group as={Col} md=\"10\" controlId=\"validationCustom08\">\r\n <Form.Label><b title='Zip Code'>Zip Code:</b></Form.Label>\r\n <Form.Control type=\"text\" placeholder=\"Zip Code\" isInvalid={!!formError.zip}\r\n minLength={5}\r\n\r\n onChange={(e) => { setFormData({ ...formData, zip: e.target.value }) }}\r\n />\r\n <Form.Control.Feedback type='invalid'>{formError.zip}</Form.Control.Feedback>\r\n\r\n </Form.Group>\r\n <Form.Group as={Col} md=\"10\" controlId=\"validationCustom09\">\r\n <Form.Label><b title='Phone'>Phone:</b></Form.Label>\r\n <Form.Control type=\"text\" placeholder=\"XXX-XXX-XXXX format\"\r\n isInvalid={!!formError.phone}\r\n onChange={(e) => { setFormData({ ...formData, phone: e.target.value }) }} />\r\n <Form.Control.Feedback type='invalid'>{formError.phone}</Form.Control.Feedback>\r\n\r\n </Form.Group>\r\n {/* <Form.Group as={Col} md=\"10\" controlId=\"validationCustom08\">\r\n <Form.Label><b>Fax:</b></Form.Label>\r\n <Form.Control type=\"text\" placeholder=\"XXX-XXX-XXXX format\"\r\n onChange={(e) => { setFormData({ ...formData, fax: e.target.value }) }}\r\n />\r\n <Form.Control.Feedback > */}\r\n {/* Please provide a valid Phone number */}\r\n {/* </Form.Control.Feedback>\r\n </Form.Group> */}\r\n <Form.Group as={Col} md=\"10\" controlId=\"validationCustom10\">\r\n <Form.Label><b title='Email'>*Email:</b></Form.Label>\r\n <Form.Control type=\"text\" placeholder=\"Email\" required isInvalid={!!formError.userEmail}\r\n onChange={(e) => { setFormData({ ...formData, userEmail: e.target.value }) }}\r\n />\r\n <Form.Control.Feedback type='invalid'>{formError.userEmail}</Form.Control.Feedback>\r\n\r\n </Form.Group>\r\n <Form.Group as={Col} md=\"10\" controlId=\"validationCustom11\">\r\n <Form.Label><b title='Subject'>*Subject:</b></Form.Label>\r\n <Form.Control type=\"text\" placeholder=\"Subject\" required isInvalid={!!formError.subject}\r\n onChange={(e) => { setFormData({ ...formData, subject: e.target.value }) }} />\r\n <Form.Control.Feedback type='invalid'>{formError.subject}</Form.Control.Feedback>\r\n\r\n </Form.Group>\r\n <Form.Group className=\"mb-3\" controlId=\"exampleForm.ControlTextarea1\">\r\n <Form.Label><b title='Comment'>*Comment:</b></Form.Label>\r\n <Form.Control as=\"textarea\" required rows={3} isInvalid={!!formError.comment}\r\n onChange={(e) => { setFormData({ ...formData, comment: e.target.value }) }}\r\n />\r\n <Form.Control.Feedback type='invalid'>{formError.comment}</Form.Control.Feedback>\r\n </Form.Group>\r\n </Row>\r\n <Form.Group className=\"mb-3\">\r\n <Form.Check\r\n required\r\n label=\"Agree to terms and conditions\"\r\n feedback=\"You must agree before submitting.\"\r\n feedbackType=\"invalid\"\r\n />\r\n </Form.Group>\r\n <Button\r\n title='Submit'\r\n type=\"submit\">Submit</Button>\r\n </Form>\r\n </>\r\n );\r\n}\r\n\r\nexport default ContactFormInput;","import useEffect from './useIsomorphicEffect';\nimport { useState } from 'react';\nconst matchersByWindow = new WeakMap();\nconst getMatcher = (query, targetWindow) => {\n if (!query || !targetWindow) return undefined;\n const matchers = matchersByWindow.get(targetWindow) || new Map();\n matchersByWindow.set(targetWindow, matchers);\n let mql = matchers.get(query);\n if (!mql) {\n mql = targetWindow.matchMedia(query);\n mql.refCount = 0;\n matchers.set(mql.media, mql);\n }\n return mql;\n};\n/**\n * Match a media query and get updates as the match changes. The media string is\n * passed directly to `window.matchMedia` and run as a Layout Effect, so initial\n * matches are returned before the browser has a chance to paint.\n *\n * ```tsx\n * function Page() {\n * const isWide = useMediaQuery('min-width: 1000px')\n *\n * return isWide ? \"very wide\" : 'not so wide'\n * }\n * ```\n *\n * Media query lists are also reused globally, hook calls for the same query\n * will only create a matcher once under the hood.\n *\n * @param query A media query\n * @param targetWindow The window to match against, uses the globally available one as a default.\n */\nexport default function useMediaQuery(query, targetWindow = typeof window === 'undefined' ? undefined : window) {\n const mql = getMatcher(query, targetWindow);\n const [matches, setMatches] = useState(() => mql ? mql.matches : false);\n useEffect(() => {\n let mql = getMatcher(query, targetWindow);\n if (!mql) {\n return setMatches(false);\n }\n let matchers = matchersByWindow.get(targetWindow);\n const handleChange = () => {\n setMatches(mql.matches);\n };\n mql.refCount++;\n mql.addListener(handleChange);\n handleChange();\n return () => {\n mql.removeListener(handleChange);\n mql.refCount--;\n if (mql.refCount <= 0) {\n matchers == null ? void 0 : matchers.delete(mql.media);\n }\n mql = undefined;\n };\n }, [query]);\n return matches;\n}","import useMediaQuery from './useMediaQuery';\nimport { useMemo } from 'react';\n/**\n * Create a responsive hook we a set of breakpoint names and widths.\n * You can use any valid css units as well as a numbers (for pixels).\n *\n * **NOTE:** The object key order is important! it's assumed to be in order from smallest to largest\n *\n * ```ts\n * const useBreakpoint = createBreakpointHook({\n * xs: 0,\n * sm: 576,\n * md: 768,\n * lg: 992,\n * xl: 1200,\n * })\n * ```\n *\n * **Watch out!** using string values will sometimes construct media queries using css `calc()` which\n * is NOT supported in media queries by all browsers at the moment. use numbers for\n * the widest range of browser support.\n *\n * @param breakpointValues A object hash of names to breakpoint dimensions\n */\nexport function createBreakpointHook(breakpointValues) {\n const names = Object.keys(breakpointValues);\n function and(query, next) {\n if (query === next) {\n return next;\n }\n return query ? `${query} and ${next}` : next;\n }\n function getNext(breakpoint) {\n return names[Math.min(names.indexOf(breakpoint) + 1, names.length - 1)];\n }\n function getMaxQuery(breakpoint) {\n const next = getNext(breakpoint);\n let value = breakpointValues[next];\n if (typeof value === 'number') value = `${value - 0.2}px`;else value = `calc(${value} - 0.2px)`;\n return `(max-width: ${value})`;\n }\n function getMinQuery(breakpoint) {\n let value = breakpointValues[breakpoint];\n if (typeof value === 'number') {\n value = `${value}px`;\n }\n return `(min-width: ${value})`;\n }\n\n /**\n * Match a set of breakpoints\n *\n * ```tsx\n * const MidSizeOnly = () => {\n * const isMid = useBreakpoint({ lg: 'down', sm: 'up' });\n *\n * if (isMid) return <div>On a Reasonable sized Screen!</div>\n * return null;\n * }\n * ```\n * @param breakpointMap An object map of breakpoints and directions, queries are constructed using \"and\" to join\n * breakpoints together\n * @param window Optionally specify the target window to match against (useful when rendering into iframes)\n */\n\n /**\n * Match a single breakpoint exactly, up, or down.\n *\n * ```tsx\n * const PhoneOnly = () => {\n * const isSmall = useBreakpoint('sm', 'down');\n *\n * if (isSmall) return <div>On a Small Screen!</div>\n * return null;\n * }\n * ```\n *\n * @param breakpoint The breakpoint key\n * @param direction A direction 'up' for a max, 'down' for min, true to match only the breakpoint\n * @param window Optionally specify the target window to match against (useful when rendering into iframes)\n */\n\n function useBreakpoint(breakpointOrMap, direction, window) {\n let breakpointMap;\n if (typeof breakpointOrMap === 'object') {\n breakpointMap = breakpointOrMap;\n window = direction;\n direction = true;\n } else {\n direction = direction || true;\n breakpointMap = {\n [breakpointOrMap]: direction\n };\n }\n let query = useMemo(() => Object.entries(breakpointMap).reduce((query, [key, direction]) => {\n if (direction === 'up' || direction === true) {\n query = and(query, getMinQuery(key));\n }\n if (direction === 'down' || direction === true) {\n query = and(query, getMaxQuery(key));\n }\n return query;\n }, ''), [JSON.stringify(breakpointMap)]);\n return useMediaQuery(query, window);\n }\n return useBreakpoint;\n}\nconst useBreakpoint = createBreakpointHook({\n xs: 0,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1400\n});\nexport default useBreakpoint;","/**\n * Returns the owner document of a given element.\n * \n * @param node the element\n */\nexport default function ownerDocument(node) {\n return node && node.ownerDocument || document;\n}","import ownerDocument from './ownerDocument';\n/**\n * Returns the actively focused element safely.\n *\n * @param doc the document to check\n */\n\nexport default function activeElement(doc) {\n if (doc === void 0) {\n doc = ownerDocument();\n }\n\n // Support: IE 9 only\n // IE9 throws an \"Unspecified error\" accessing document.activeElement from an <iframe>\n try {\n var active = doc.activeElement; // IE11 returns a seemingly empty object in some cases when accessing\n // document.activeElement from an <iframe>\n\n if (!active || !active.nodeName) return null;\n return active;\n } catch (e) {\n /* ie throws if no active element */\n return doc.body;\n }\n}","/* eslint-disable no-bitwise, no-cond-assign */\n\n/**\n * Checks if an element contains another given element.\n * \n * @param context the context element\n * @param node the element to check\n */\nexport default function contains(context, node) {\n // HTML DOM and SVG DOM may have different support levels,\n // so we need to check on context instead of a document root element.\n if (context.contains) return context.contains(node);\n if (context.compareDocumentPosition) return context === node || !!(context.compareDocumentPosition(node) & 16);\n}","export default !!(typeof window !== 'undefined' && window.document && window.document.createElement);","/* eslint-disable no-return-assign */\nimport canUseDOM from './canUseDOM';\nexport var optionsSupported = false;\nexport var onceSupported = false;\n\ntry {\n var options = {\n get passive() {\n return optionsSupported = true;\n },\n\n get once() {\n // eslint-disable-next-line no-multi-assign\n return onceSupported = optionsSupported = true;\n }\n\n };\n\n if (canUseDOM) {\n window.addEventListener('test', options, options);\n window.removeEventListener('test', options, true);\n }\n} catch (e) {\n /* */\n}\n\n/**\n * An `addEventListener` ponyfill, supports the `once` option\n * \n * @param node the element\n * @param eventName the event name\n * @param handle the handler\n * @param options event options\n */\nfunction addEventListener(node, eventName, handler, options) {\n if (options && typeof options !== 'boolean' && !onceSupported) {\n var once = options.once,\n capture = options.capture;\n var wrappedHandler = handler;\n\n if (!onceSupported && once) {\n wrappedHandler = handler.__once || function onceHandler(event) {\n this.removeEventListener(eventName, onceHandler, capture);\n handler.call(this, event);\n };\n\n handler.__once = wrappedHandler;\n }\n\n node.addEventListener(eventName, wrappedHandler, optionsSupported ? options : capture);\n }\n\n node.addEventListener(eventName, handler, options);\n}\n\nexport default addEventListener;","/**\n * A `removeEventListener` ponyfill\n * \n * @param node the element\n * @param eventName the event name\n * @param handle the handler\n * @param options event options\n */\nfunction removeEventListener(node, eventName, handler, options) {\n var capture = options && typeof options !== 'boolean' ? options.capture : options;\n node.removeEventListener(eventName, handler, capture);\n\n if (handler.__once) {\n node.removeEventListener(eventName, handler.__once, capture);\n }\n}\n\nexport default removeEventListener;","import addEventListener from './addEventListener';\nimport removeEventListener from './removeEventListener';\n\nfunction listen(node, eventName, handler, options) {\n addEventListener(node, eventName, handler, options);\n return function () {\n removeEventListener(node, eventName, handler, options);\n };\n}\n\nexport default listen;","import useUpdatedRef from './useUpdatedRef';\nimport { useEffect } from 'react';\n\n/**\n * Attach a callback that fires when a component unmounts\n *\n * @param fn Handler to run when the component unmounts\n * @category effects\n */\nexport default function useWillUnmount(fn) {\n const onUnmount = useUpdatedRef(fn);\n useEffect(() => () => onUnmount.current(), []);\n}","import { useRef } from 'react';\n\n/**\n * Returns a ref that is immediately updated with the new value\n *\n * @param value The Ref value\n * @category refs\n */\nexport default function useUpdatedRef(value) {\n const valueRef = useRef(value);\n valueRef.current = value;\n return valueRef;\n}","import ownerWindow from './ownerWindow';\n/**\n * Returns one or all computed style properties of an element.\n * \n * @param node the element\n * @param psuedoElement the style property\n */\n\nexport default function getComputedStyle(node, psuedoElement) {\n return ownerWindow(node).getComputedStyle(node, psuedoElement);\n}","import ownerDocument from './ownerDocument';\n/**\n * Returns the owner window of a given element.\n * \n * @param node the element\n */\n\nexport default function ownerWindow(node) {\n var doc = ownerDocument(node);\n return doc && doc.defaultView || window;\n}","var rUpper = /([A-Z])/g;\nexport default function hyphenate(string) {\n return string.replace(rUpper, '-$1').toLowerCase();\n}","/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n * https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/hyphenateStyleName.js\n */\nimport hyphenate from './hyphenate';\nvar msPattern = /^ms-/;\nexport default function hyphenateStyleName(string) {\n return hyphenate(string).replace(msPattern, '-ms-');\n}","var supportedTransforms = /^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i;\nexport default function isTransform(value) {\n return !!(value && supportedTransforms.test(value));\n}","import getComputedStyle from './getComputedStyle';\nimport hyphenate from './hyphenateStyle';\nimport isTransform from './isTransform';\n\nfunction style(node, property) {\n var css = '';\n var transforms = '';\n\n if (typeof property === 'string') {\n return node.style.getPropertyValue(hyphenate(property)) || getComputedStyle(node).getPropertyValue(hyphenate(property));\n }\n\n Object.keys(property).forEach(function (key) {\n var value = property[key];\n\n if (!value && value !== 0) {\n node.style.removeProperty(hyphenate(key));\n } else if (isTransform(key)) {\n transforms += key + \"(\" + value + \") \";\n } else {\n css += hyphenate(key) + \": \" + value + \";\";\n }\n });\n\n if (transforms) {\n css += \"transform: \" + transforms + \";\";\n }\n\n node.style.cssText += \";\" + css;\n}\n\nexport default style;","import css from 'dom-helpers/css';\nimport { dataAttr } from './DataKey';\nimport getBodyScrollbarWidth from './getScrollbarWidth';\nexport const OPEN_DATA_ATTRIBUTE = dataAttr('modal-open');\n\n/**\n * Manages a stack of Modals as well as ensuring\n * body scrolling is is disabled and padding accounted for\n */\nclass ModalManager {\n constructor({\n ownerDocument,\n handleContainerOverflow = true,\n isRTL = false\n } = {}) {\n this.handleContainerOverflow = handleContainerOverflow;\n this.isRTL = isRTL;\n this.modals = [];\n this.ownerDocument = ownerDocument;\n }\n getScrollbarWidth() {\n return getBodyScrollbarWidth(this.ownerDocument);\n }\n getElement() {\n return (this.ownerDocument || document).body;\n }\n setModalAttributes(_modal) {\n // For overriding\n }\n removeModalAttributes(_modal) {\n // For overriding\n }\n setContainerStyle(containerState) {\n const style = {\n overflow: 'hidden'\n };\n\n // we are only interested in the actual `style` here\n // because we will override it\n const paddingProp = this.isRTL ? 'paddingLeft' : 'paddingRight';\n const container = this.getElement();\n containerState.style = {\n overflow: container.style.overflow,\n [paddingProp]: container.style[paddingProp]\n };\n if (containerState.scrollBarWidth) {\n // use computed style, here to get the real padding\n // to add our scrollbar width\n style[paddingProp] = `${parseInt(css(container, paddingProp) || '0', 10) + containerState.scrollBarWidth}px`;\n }\n container.setAttribute(OPEN_DATA_ATTRIBUTE, '');\n css(container, style);\n }\n reset() {\n [...this.modals].forEach(m => this.remove(m));\n }\n removeContainerStyle(containerState) {\n const container = this.getElement();\n container.removeAttribute(OPEN_DATA_ATTRIBUTE);\n Object.assign(container.style, containerState.style);\n }\n add(modal) {\n let modalIdx = this.modals.indexOf(modal);\n if (modalIdx !== -1) {\n return modalIdx;\n }\n modalIdx = this.modals.length;\n this.modals.push(modal);\n this.setModalAttributes(modal);\n if (modalIdx !== 0) {\n return modalIdx;\n }\n this.state = {\n scrollBarWidth: this.getScrollbarWidth(),\n style: {}\n };\n if (this.handleContainerOverflow) {\n this.setContainerStyle(this.state);\n }\n return modalIdx;\n }\n remove(modal) {\n const modalIdx = this.modals.indexOf(modal);\n if (modalIdx === -1) {\n return;\n }\n this.modals.splice(modalIdx, 1);\n\n // if that was the last modal in a container,\n // clean up the container\n if (!this.modals.length && this.handleContainerOverflow) {\n this.removeContainerStyle(this.state);\n }\n this.removeModalAttributes(modal);\n }\n isTopModal(modal) {\n return !!this.modals.length && this.modals[this.modals.length - 1] === modal;\n }\n}\nexport default ModalManager;","export const ATTRIBUTE_PREFIX = `data-rr-ui-`;\nexport const PROPERTY_PREFIX = `rrUi`;\nexport function dataAttr(property) {\n return `${ATTRIBUTE_PREFIX}${property}`;\n}\nexport function dataProp(property) {\n return `${PROPERTY_PREFIX}${property}`;\n}","/**\n * Get the width of the vertical window scrollbar if it's visible\n */\nexport default function getBodyScrollbarWidth(ownerDocument = document) {\n const window = ownerDocument.defaultView;\n return Math.abs(window.innerWidth - ownerDocument.documentElement.clientWidth);\n}","import { createContext, useContext } from 'react';\nimport canUseDOM from 'dom-helpers/canUseDOM';\nconst Context = /*#__PURE__*/createContext(canUseDOM ? window : undefined);\nexport const WindowProvider = Context.Provider;\n\n/**\n * The document \"window\" placed in React context. Helpful for determining\n * SSR context, or when rendering into an iframe.\n *\n * @returns the current window\n */\nexport default function useWindow() {\n return useContext(Context);\n}","import ownerDocument from 'dom-helpers/ownerDocument';\nimport canUseDOM from 'dom-helpers/canUseDOM';\nimport { useState, useEffect } from 'react';\nimport useWindow from './useWindow';\nexport const resolveContainerRef = (ref, document) => {\n if (!canUseDOM) return null;\n if (ref == null) return (document || ownerDocument()).body;\n if (typeof ref === 'function') ref = ref();\n if (ref && 'current' in ref) ref = ref.current;\n if (ref && ('nodeType' in ref || ref.getBoundingClientRect)) return ref;\n return null;\n};\nexport default function useWaitForDOMRef(ref, onResolved) {\n const window = useWindow();\n const [resolvedRef, setRef] = useState(() => resolveContainerRef(ref, window == null ? void 0 : window.document));\n if (!resolvedRef) {\n const earlyRef = resolveContainerRef(ref);\n if (earlyRef) setRef(earlyRef);\n }\n useEffect(() => {\n if (onResolved && resolvedRef) {\n onResolved(resolvedRef);\n }\n }, [onResolved, resolvedRef]);\n useEffect(() => {\n const nextRef = resolveContainerRef(ref);\n if (nextRef !== resolvedRef) {\n setRef(nextRef);\n }\n }, [ref, resolvedRef]);\n return resolvedRef;\n}","import { useMemo } from 'react';\nconst toFnRef = ref => !ref || typeof ref === 'function' ? ref : value => {\n ref.current = value;\n};\nexport function mergeRefs(refA, refB) {\n const a = toFnRef(refA);\n const b = toFnRef(refB);\n return value => {\n if (a) a(value);\n if (b) b(value);\n };\n}\n\n/**\n * Create and returns a single callback ref composed from two other Refs.\n *\n * ```tsx\n * const Button = React.forwardRef((props, ref) => {\n * const [element, attachRef] = useCallbackRef<HTMLButtonElement>();\n * const mergedRef = useMergedRefs(ref, attachRef);\n *\n * return <button ref={mergedRef} {...props}/>\n * })\n * ```\n *\n * @param refA A Callback or mutable Ref\n * @param refB A Callback or mutable Ref\n * @category refs\n */\nfunction useMergedRefs(refA, refB) {\n return useMemo(() => mergeRefs(refA, refB), [refA, refB]);\n}\nexport default useMergedRefs;","import useEventCallback from '@restart/hooks/useEventCallback';\nimport useMergedRefs from '@restart/hooks/useMergedRefs';\nimport { cloneElement, useEffect, useRef } from 'react';\nfunction NoopTransition({\n children,\n in: inProp,\n onExited,\n mountOnEnter,\n unmountOnExit\n}) {\n const ref = useRef(null);\n const hasEnteredRef = useRef(inProp);\n const handleExited = useEventCallback(onExited);\n useEffect(() => {\n if (inProp) hasEnteredRef.current = true;else {\n handleExited(ref.current);\n }\n }, [inProp, handleExited]);\n const combinedRef = useMergedRefs(ref, children.ref);\n const child = /*#__PURE__*/cloneElement(children, {\n ref: combinedRef\n });\n if (inProp) return child;\n if (unmountOnExit) {\n return null;\n }\n if (!hasEnteredRef.current && mountOnEnter) {\n return null;\n }\n return child;\n}\nexport default NoopTransition;","const _excluded = [\"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"addEndListener\", \"children\"];\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport { cloneElement, useCallback, useRef } from 'react';\nimport useMergedRefs from '@restart/hooks/useMergedRefs';\n/**\n * Normalizes RTG transition callbacks with nodeRef to better support\n * strict mode.\n *\n * @param props Transition props.\n * @returns Normalized transition props.\n */\nexport default function useRTGTransitionProps(_ref) {\n let {\n onEnter,\n onEntering,\n onEntered,\n onExit,\n onExiting,\n onExited,\n addEndListener,\n children\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n const nodeRef = useRef(null);\n const mergedRef = useMergedRefs(nodeRef, typeof children === 'function' ? null : children.ref);\n const normalize = callback => param => {\n if (callback && nodeRef.current) {\n callback(nodeRef.current, param);\n }\n };\n\n /* eslint-disable react-hooks/exhaustive-deps */\n const handleEnter = useCallback(normalize(onEnter), [onEnter]);\n const handleEntering = useCallback(normalize(onEntering), [onEntering]);\n const handleEntered = useCallback(normalize(onEntered), [onEntered]);\n const handleExit = useCallback(normalize(onExit), [onExit]);\n const handleExiting = useCallback(normalize(onExiting), [onExiting]);\n const handleExited = useCallback(normalize(onExited), [onExited]);\n const handleAddEndListener = useCallback(normalize(addEndListener), [addEndListener]);\n /* eslint-enable react-hooks/exhaustive-deps */\n\n return Object.assign({}, props, {\n nodeRef\n }, onEnter && {\n onEnter: handleEnter\n }, onEntering && {\n onEntering: handleEntering\n }, onEntered && {\n onEntered: handleEntered\n }, onExit && {\n onExit: handleExit\n }, onExiting && {\n onExiting: handleExiting\n }, onExited && {\n onExited: handleExited\n }, addEndListener && {\n addEndListener: handleAddEndListener\n }, {\n children: typeof children === 'function' ? (status, innerProps) =>\n // TODO: Types for RTG missing innerProps, so need to cast.\n children(status, Object.assign({}, innerProps, {\n ref: mergedRef\n })) : /*#__PURE__*/cloneElement(children, {\n ref: mergedRef\n })\n });\n}","const _excluded = [\"component\"];\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from 'react';\nimport useRTGTransitionProps from './useRTGTransitionProps';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n// Normalizes Transition callbacks when nodeRef is used.\nconst RTGTransition = /*#__PURE__*/React.forwardRef((_ref, ref) => {\n let {\n component: Component\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n const transitionProps = useRTGTransitionProps(props);\n return /*#__PURE__*/_jsx(Component, Object.assign({\n ref: ref\n }, transitionProps));\n});\nexport default RTGTransition;","import useMergedRefs from '@restart/hooks/useMergedRefs';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport useIsomorphicEffect from '@restart/hooks/useIsomorphicEffect';\nimport React, { useRef, cloneElement, useState } from 'react';\nimport NoopTransition from './NoopTransition';\nimport RTGTransition from './RTGTransition';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function useTransition({\n in: inProp,\n onTransition\n}) {\n const ref = useRef(null);\n const isInitialRef = useRef(true);\n const handleTransition = useEventCallback(onTransition);\n useIsomorphicEffect(() => {\n if (!ref.current) {\n return undefined;\n }\n let stale = false;\n handleTransition({\n in: inProp,\n element: ref.current,\n initial: isInitialRef.current,\n isStale: () => stale\n });\n return () => {\n stale = true;\n };\n }, [inProp, handleTransition]);\n useIsomorphicEffect(() => {\n isInitialRef.current = false;\n // this is for strict mode\n return () => {\n isInitialRef.current = true;\n };\n }, []);\n return ref;\n}\n/**\n * Adapts an imperative transition function to a subset of the RTG `<Transition>` component API.\n *\n * ImperativeTransition does not support mounting options or `appear` at the moment, meaning\n * that it always acts like: `mountOnEnter={true} unmountOnExit={true} appear={true}`\n */\nexport default function ImperativeTransition({\n children,\n in: inProp,\n onExited,\n onEntered,\n transition\n}) {\n const [exited, setExited] = useState(!inProp);\n\n // TODO: I think this needs to be in an effect\n if (inProp && exited) {\n setExited(false);\n }\n const ref = useTransition({\n in: !!inProp,\n onTransition: options => {\n const onFinish = () => {\n if (options.isStale()) return;\n if (options.in) {\n onEntered == null ? void 0 : onEntered(options.element, options.initial);\n } else {\n setExited(true);\n onExited == null ? void 0 : onExited(options.element);\n }\n };\n Promise.resolve(transition(options)).then(onFinish, error => {\n if (!options.in) setExited(true);\n throw error;\n });\n }\n });\n const combinedRef = useMergedRefs(ref, children.ref);\n return exited && !inProp ? null : /*#__PURE__*/cloneElement(children, {\n ref: combinedRef\n });\n}\nexport function renderTransition(component, runTransition, props) {\n if (component) {\n return /*#__PURE__*/_jsx(RTGTransition, Object.assign({}, props, {\n component: component\n }));\n }\n if (runTransition) {\n return /*#__PURE__*/_jsx(ImperativeTransition, Object.assign({}, props, {\n transition: runTransition\n }));\n }\n return /*#__PURE__*/_jsx(NoopTransition, Object.assign({}, props));\n}","/* eslint-disable import/prefer-default-export */\nexport function isEscKey(e) {\n return e.code === 'Escape' || e.keyCode === 27;\n}","const _excluded = [\"show\", \"role\", \"className\", \"style\", \"children\", \"backdrop\", \"keyboard\", \"onBackdropClick\", \"onEscapeKeyDown\", \"transition\", \"runTransition\", \"backdropTransition\", \"runBackdropTransition\", \"autoFocus\", \"enforceFocus\", \"restoreFocus\", \"restoreFocusOptions\", \"renderDialog\", \"renderBackdrop\", \"manager\", \"container\", \"onShow\", \"onHide\", \"onExit\", \"onExited\", \"onExiting\", \"onEnter\", \"onEntering\", \"onEntered\"];\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/* eslint-disable @typescript-eslint/no-use-before-define, react/prop-types */\n\nimport activeElement from 'dom-helpers/activeElement';\nimport contains from 'dom-helpers/contains';\nimport canUseDOM from 'dom-helpers/canUseDOM';\nimport listen from 'dom-helpers/listen';\nimport { useState, useRef, useCallback, useImperativeHandle, forwardRef, useEffect } from 'react';\nimport * as React from 'react';\nimport ReactDOM from 'react-dom';\nimport useMounted from '@restart/hooks/useMounted';\nimport useWillUnmount from '@restart/hooks/useWillUnmount';\nimport usePrevious from '@restart/hooks/usePrevious';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport ModalManager from './ModalManager';\nimport useWaitForDOMRef from './useWaitForDOMRef';\nimport useWindow from './useWindow';\nimport { renderTransition } from './ImperativeTransition';\nimport { isEscKey } from './utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nlet manager;\nfunction getManager(window) {\n if (!manager) manager = new ModalManager({\n ownerDocument: window == null ? void 0 : window.document\n });\n return manager;\n}\nfunction useModalManager(provided) {\n const window = useWindow();\n const modalManager = provided || getManager(window);\n const modal = useRef({\n dialog: null,\n backdrop: null\n });\n return Object.assign(modal.current, {\n add: () => modalManager.add(modal.current),\n remove: () => modalManager.remove(modal.current),\n isTopModal: () => modalManager.isTopModal(modal.current),\n setDialogRef: useCallback(ref => {\n modal.current.dialog = ref;\n }, []),\n setBackdropRef: useCallback(ref => {\n modal.current.backdrop = ref;\n }, [])\n });\n}\nconst Modal = /*#__PURE__*/forwardRef((_ref, ref) => {\n let {\n show = false,\n role = 'dialog',\n className,\n style,\n children,\n backdrop = true,\n keyboard = true,\n onBackdropClick,\n onEscapeKeyDown,\n transition,\n runTransition,\n backdropTransition,\n runBackdropTransition,\n autoFocus = true,\n enforceFocus = true,\n restoreFocus = true,\n restoreFocusOptions,\n renderDialog,\n renderBackdrop = props => /*#__PURE__*/_jsx(\"div\", Object.assign({}, props)),\n manager: providedManager,\n container: containerRef,\n onShow,\n onHide = () => {},\n onExit,\n onExited,\n onExiting,\n onEnter,\n onEntering,\n onEntered\n } = _ref,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n const ownerWindow = useWindow();\n const container = useWaitForDOMRef(containerRef);\n const modal = useModalManager(providedManager);\n const isMounted = useMounted();\n const prevShow = usePrevious(show);\n const [exited, setExited] = useState(!show);\n const lastFocusRef = useRef(null);\n useImperativeHandle(ref, () => modal, [modal]);\n if (canUseDOM && !prevShow && show) {\n lastFocusRef.current = activeElement(ownerWindow == null ? void 0 : ownerWindow.document);\n }\n\n // TODO: I think this needs to be in an effect\n if (show && exited) {\n setExited(false);\n }\n const handleShow = useEventCallback(() => {\n modal.add();\n removeKeydownListenerRef.current = listen(document, 'keydown', handleDocumentKeyDown);\n removeFocusListenerRef.current = listen(document, 'focus',\n // the timeout is necessary b/c this will run before the new modal is mounted\n // and so steals focus from it\n () => setTimeout(handleEnforceFocus), true);\n if (onShow) {\n onShow();\n }\n\n // autofocus after onShow to not trigger a focus event for previous\n // modals before this one is shown.\n if (autoFocus) {\n var _modal$dialog$ownerDo, _modal$dialog;\n const currentActiveElement = activeElement((_modal$dialog$ownerDo = (_modal$dialog = modal.dialog) == null ? void 0 : _modal$dialog.ownerDocument) != null ? _modal$dialog$ownerDo : ownerWindow == null ? void 0 : ownerWindow.document);\n if (modal.dialog && currentActiveElement && !contains(modal.dialog, currentActiveElement)) {\n lastFocusRef.current = currentActiveElement;\n modal.dialog.focus();\n }\n }\n });\n const handleHide = useEventCallback(() => {\n modal.remove();\n removeKeydownListenerRef.current == null ? void 0 : removeKeydownListenerRef.current();\n removeFocusListenerRef.current == null ? void 0 : removeFocusListenerRef.current();\n if (restoreFocus) {\n var _lastFocusRef$current;\n // Support: <=IE11 doesn't support `focus()` on svg elements (RB: #917)\n (_lastFocusRef$current = lastFocusRef.current) == null ? void 0 : _lastFocusRef$current.focus == null ? void 0 : _lastFocusRef$current.focus(restoreFocusOptions);\n lastFocusRef.current = null;\n }\n });\n\n // TODO: try and combine these effects: https://github.com/react-bootstrap/react-overlays/pull/794#discussion_r409954120\n\n // Show logic when:\n // - show is `true` _and_ `container` has resolved\n useEffect(() => {\n if (!show || !container) return;\n handleShow();\n }, [show, container, /* should never change: */handleShow]);\n\n // Hide cleanup logic when:\n // - `exited` switches to true\n // - component unmounts;\n useEffect(() => {\n if (!exited) return;\n handleHide();\n }, [exited, handleHide]);\n useWillUnmount(() => {\n handleHide();\n });\n\n // --------------------------------\n\n const handleEnforceFocus = useEventCallback(() => {\n if (!enforceFocus || !isMounted() || !modal.isTopModal()) {\n return;\n }\n const currentActiveElement = activeElement(ownerWindow == null ? void 0 : ownerWindow.document);\n if (modal.dialog && currentActiveElement && !contains(modal.dialog, currentActiveElement)) {\n modal.dialog.focus();\n }\n });\n const handleBackdropClick = useEventCallback(e => {\n if (e.target !== e.currentTarget) {\n return;\n }\n onBackdropClick == null ? void 0 : onBackdropClick(e);\n if (backdrop === true) {\n onHide();\n }\n });\n const handleDocumentKeyDown = useEventCallback(e => {\n if (keyboard && isEscKey(e) && modal.isTopModal()) {\n onEscapeKeyDown == null ? void 0 : onEscapeKeyDown(e);\n if (!e.defaultPrevented) {\n onHide();\n }\n }\n });\n const removeFocusListenerRef = useRef();\n const removeKeydownListenerRef = useRef();\n const handleHidden = (...args) => {\n setExited(true);\n onExited == null ? void 0 : onExited(...args);\n };\n if (!container) {\n return null;\n }\n const dialogProps = Object.assign({\n role,\n ref: modal.setDialogRef,\n // apparently only works on the dialog role element\n 'aria-modal': role === 'dialog' ? true : undefined\n }, rest, {\n style,\n className,\n tabIndex: -1\n });\n let dialog = renderDialog ? renderDialog(dialogProps) : /*#__PURE__*/_jsx(\"div\", Object.assign({}, dialogProps, {\n children: /*#__PURE__*/React.cloneElement(children, {\n role: 'document'\n })\n }));\n dialog = renderTransition(transition, runTransition, {\n unmountOnExit: true,\n mountOnEnter: true,\n appear: true,\n in: !!show,\n onExit,\n onExiting,\n onExited: handleHidden,\n onEnter,\n onEntering,\n onEntered,\n children: dialog\n });\n let backdropElement = null;\n if (backdrop) {\n backdropElement = renderBackdrop({\n ref: modal.setBackdropRef,\n onClick: handleBackdropClick\n });\n backdropElement = renderTransition(backdropTransition, runBackdropTransition, {\n in: !!show,\n appear: true,\n mountOnEnter: true,\n unmountOnExit: true,\n children: backdropElement\n });\n }\n return /*#__PURE__*/_jsx(_Fragment, {\n children: /*#__PURE__*/ReactDOM.createPortal( /*#__PURE__*/_jsxs(_Fragment, {\n children: [backdropElement, dialog]\n }), container)\n });\n});\nModal.displayName = 'Modal';\nexport default Object.assign(Modal, {\n Manager: ModalManager\n});","import { useEffect, useRef } from 'react';\n\n/**\n * Store the last of some value. Tracked via a `Ref` only updating it\n * after the component renders.\n *\n * Helpful if you need to compare a prop value to it's previous value during render.\n *\n * ```ts\n * function Component(props) {\n * const lastProps = usePrevious(props)\n *\n * if (lastProps.foo !== props.foo)\n * resetValueFromProps(props.foo)\n * }\n * ```\n *\n * @param value the value to track\n */\nexport default function usePrevious(value) {\n const ref = useRef(null);\n useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","export default {\n disabled: false\n};","import React from 'react';\nexport default React.createContext(null);","export var forceReflow = function forceReflow(node) {\n return node.scrollTop;\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { forceReflow } from './utils/reflow';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * <Transition in={inProp} timeout={duration}>\n * {state => (\n * <div style={{\n * ...defaultStyle,\n * ...transitionStyles[state]\n * }}>\n * I'm a fade Transition!\n * </div>\n * )}\n * </Transition>\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n * <div>\n * <Transition in={inProp} timeout={500}>\n * {state => (\n * // ...\n * )}\n * </Transition>\n * <button onClick={() => setInProp(true)}>\n * Click to Enter\n * </button>\n * </div>\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n if (this.props.unmountOnExit || this.props.mountOnEnter) {\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n // To make the animation happen, we have to separate each rendering and avoid being processed as batched.\n\n if (node) forceReflow(node);\n }\n\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * <Transition in={this.state.in} timeout={150}>\n * {state => (\n * <MyComponent className={`fade fade-${state}`} />\n * )}\n * </Transition>\n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `<CSSTransition>` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\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 return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","import css from './css';\nimport listen from './listen';\nimport triggerEvent from './triggerEvent';\n\nfunction parseDuration(node) {\n var str = css(node, 'transitionDuration') || '';\n var mult = str.indexOf('ms') === -1 ? 1000 : 1;\n return parseFloat(str) * mult;\n}\n\nfunction emulateTransitionEnd(element, duration, padding) {\n if (padding === void 0) {\n padding = 5;\n }\n\n var called = false;\n var handle = setTimeout(function () {\n if (!called) triggerEvent(element, 'transitionend', true);\n }, duration + padding);\n var remove = listen(element, 'transitionend', function () {\n called = true;\n }, {\n once: true\n });\n return function () {\n clearTimeout(handle);\n remove();\n };\n}\n\nexport default function transitionEnd(element, handler, duration, padding) {\n if (duration == null) duration = parseDuration(element) || 0;\n var removeEmulate = emulateTransitionEnd(element, duration, padding);\n var remove = listen(element, 'transitionend', handler);\n return function () {\n removeEmulate();\n remove();\n };\n}","/**\n * Triggers an event on a given element.\n * \n * @param node the element\n * @param eventName the event name to trigger\n * @param bubbles whether the event should bubble up\n * @param cancelable whether the event should be cancelable\n */\nexport default function triggerEvent(node, eventName, bubbles, cancelable) {\n if (bubbles === void 0) {\n bubbles = false;\n }\n\n if (cancelable === void 0) {\n cancelable = true;\n }\n\n if (node) {\n var event = document.createEvent('HTMLEvents');\n event.initEvent(eventName, bubbles, cancelable);\n node.dispatchEvent(event);\n }\n}","import css from 'dom-helpers/css';\nimport transitionEnd from 'dom-helpers/transitionEnd';\nfunction parseDuration(node, property) {\n const str = css(node, property) || '';\n const mult = str.indexOf('ms') === -1 ? 1000 : 1;\n return parseFloat(str) * mult;\n}\nexport default function transitionEndListener(element, handler) {\n const duration = parseDuration(element, 'transitionDuration');\n const delay = parseDuration(element, 'transitionDelay');\n const remove = transitionEnd(element, e => {\n if (e.target === element) {\n remove();\n handler(e);\n }\n }, duration + delay);\n}","// reading a dimension prop will cause the browser to recalculate,\n// which will let our animations work\nexport default function triggerBrowserReflow(node) {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n node.offsetHeight;\n}","import ReactDOM from 'react-dom';\nexport default function safeFindDOMNode(componentOrElement) {\n if (componentOrElement && 'setState' in componentOrElement) {\n return ReactDOM.findDOMNode(componentOrElement);\n }\n return componentOrElement != null ? componentOrElement : null;\n}","\"use client\";\n\nimport React, { useCallback, useRef } from 'react';\nimport Transition from 'react-transition-group/Transition';\nimport useMergedRefs from '@restart/hooks/useMergedRefs';\nimport safeFindDOMNode from './safeFindDOMNode';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n// Normalizes Transition callbacks when nodeRef is used.\nconst TransitionWrapper = /*#__PURE__*/React.forwardRef(({\n onEnter,\n onEntering,\n onEntered,\n onExit,\n onExiting,\n onExited,\n addEndListener,\n children,\n childRef,\n ...props\n}, ref) => {\n const nodeRef = useRef(null);\n const mergedRef = useMergedRefs(nodeRef, childRef);\n const attachRef = r => {\n mergedRef(safeFindDOMNode(r));\n };\n const normalize = callback => param => {\n if (callback && nodeRef.current) {\n callback(nodeRef.current, param);\n }\n };\n\n /* eslint-disable react-hooks/exhaustive-deps */\n const handleEnter = useCallback(normalize(onEnter), [onEnter]);\n const handleEntering = useCallback(normalize(onEntering), [onEntering]);\n const handleEntered = useCallback(normalize(onEntered), [onEntered]);\n const handleExit = useCallback(normalize(onExit), [onExit]);\n const handleExiting = useCallback(normalize(onExiting), [onExiting]);\n const handleExited = useCallback(normalize(onExited), [onExited]);\n const handleAddEndListener = useCallback(normalize(addEndListener), [addEndListener]);\n /* eslint-enable react-hooks/exhaustive-deps */\n\n return /*#__PURE__*/_jsx(Transition, {\n ref: ref,\n ...props,\n onEnter: handleEnter,\n onEntered: handleEntered,\n onEntering: handleEntering,\n onExit: handleExit,\n onExited: handleExited,\n onExiting: handleExiting,\n addEndListener: handleAddEndListener,\n nodeRef: nodeRef,\n children: typeof children === 'function' ? (status, innerProps) =>\n // TODO: Types for RTG missing innerProps, so need to cast.\n children(status, {\n ...innerProps,\n ref: attachRef\n }) : /*#__PURE__*/React.cloneElement(children, {\n ref: attachRef\n })\n });\n});\nexport default TransitionWrapper;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useCallback } from 'react';\nimport { ENTERED, ENTERING } from 'react-transition-group/Transition';\nimport transitionEndListener from './transitionEndListener';\nimport triggerBrowserReflow from './triggerBrowserReflow';\nimport TransitionWrapper from './TransitionWrapper';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst fadeStyles = {\n [ENTERING]: 'show',\n [ENTERED]: 'show'\n};\nconst Fade = /*#__PURE__*/React.forwardRef(({\n className,\n children,\n transitionClasses = {},\n onEnter,\n ...rest\n}, ref) => {\n const props = {\n in: false,\n timeout: 300,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n ...rest\n };\n const handleEnter = useCallback((node, isAppearing) => {\n triggerBrowserReflow(node);\n onEnter == null ? void 0 : onEnter(node, isAppearing);\n }, [onEnter]);\n return /*#__PURE__*/_jsx(TransitionWrapper, {\n ref: ref,\n addEndListener: transitionEndListener,\n ...props,\n onEnter: handleEnter,\n childRef: children.ref,\n children: (status, innerProps) => /*#__PURE__*/React.cloneElement(children, {\n ...innerProps,\n className: classNames('fade', className, children.props.className, fadeStyles[status], transitionClasses[status])\n })\n });\n});\nFade.displayName = 'Fade';\nexport default Fade;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst OffcanvasBody = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = 'div',\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'offcanvas-body');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n ...props\n });\n});\nOffcanvasBody.displayName = 'OffcanvasBody';\nexport default OffcanvasBody;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ENTERED, ENTERING, EXITING } from 'react-transition-group/Transition';\nimport transitionEndListener from './transitionEndListener';\nimport TransitionWrapper from './TransitionWrapper';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst transitionStyles = {\n [ENTERING]: 'show',\n [ENTERED]: 'show'\n};\nconst OffcanvasToggling = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n children,\n in: inProp = false,\n mountOnEnter = false,\n unmountOnExit = false,\n appear = false,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'offcanvas');\n return /*#__PURE__*/_jsx(TransitionWrapper, {\n ref: ref,\n addEndListener: transitionEndListener,\n in: inProp,\n mountOnEnter: mountOnEnter,\n unmountOnExit: unmountOnExit,\n appear: appear,\n ...props,\n childRef: children.ref,\n children: (status, innerProps) => /*#__PURE__*/React.cloneElement(children, {\n ...innerProps,\n className: classNames(className, children.props.className, (status === ENTERING || status === EXITING) && `${bsPrefix}-toggling`, transitionStyles[status])\n })\n });\n});\nOffcanvasToggling.displayName = 'OffcanvasToggling';\nexport default OffcanvasToggling;","\"use client\";\n\nimport * as React from 'react';\nconst ModalContext = /*#__PURE__*/React.createContext({\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onHide() {}\n});\nexport default ModalContext;","\"use client\";\n\nimport * as React from 'react';\n\n// TODO: check\n\nconst context = /*#__PURE__*/React.createContext(null);\ncontext.displayName = 'NavbarContext';\nexport default context;","import PropTypes from 'prop-types';\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst propTypes = {\n /** An accessible label indicating the relevant information about the Close Button. */\n 'aria-label': PropTypes.string,\n /** A callback fired after the Close Button is clicked. */\n onClick: PropTypes.func,\n /**\n * Render different color variant for the button.\n *\n * Omitting this will render the default dark color.\n */\n variant: PropTypes.oneOf(['white'])\n};\nconst CloseButton = /*#__PURE__*/React.forwardRef(({\n className,\n variant,\n 'aria-label': ariaLabel = 'Close',\n ...props\n}, ref) => /*#__PURE__*/_jsx(\"button\", {\n ref: ref,\n type: \"button\",\n className: classNames('btn-close', variant && `btn-close-${variant}`, className),\n \"aria-label\": ariaLabel,\n ...props\n}));\nCloseButton.displayName = 'CloseButton';\nCloseButton.propTypes = propTypes;\nexport default CloseButton;","\"use client\";\n\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport CloseButton from './CloseButton';\nimport ModalContext from './ModalContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst AbstractModalHeader = /*#__PURE__*/React.forwardRef(({\n closeLabel = 'Close',\n closeVariant,\n closeButton = false,\n onHide,\n children,\n ...props\n}, ref) => {\n const context = useContext(ModalContext);\n const handleClick = useEventCallback(() => {\n context == null ? void 0 : context.onHide();\n onHide == null ? void 0 : onHide();\n });\n return /*#__PURE__*/_jsxs(\"div\", {\n ref: ref,\n ...props,\n children: [children, closeButton && /*#__PURE__*/_jsx(CloseButton, {\n \"aria-label\": closeLabel,\n variant: closeVariant,\n onClick: handleClick\n })]\n });\n});\nexport default AbstractModalHeader;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport AbstractModalHeader from './AbstractModalHeader';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst OffcanvasHeader = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n closeLabel = 'Close',\n closeButton = false,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'offcanvas-header');\n return /*#__PURE__*/_jsx(AbstractModalHeader, {\n ref: ref,\n ...props,\n className: classNames(className, bsPrefix),\n closeLabel: closeLabel,\n closeButton: closeButton\n });\n});\nOffcanvasHeader.displayName = 'OffcanvasHeader';\nexport default OffcanvasHeader;","import * as React from 'react';\nimport classNames from 'classnames';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default (className => /*#__PURE__*/React.forwardRef((p, ref) => /*#__PURE__*/_jsx(\"div\", {\n ...p,\n ref: ref,\n className: classNames(p.className, className)\n})));","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport divWithClassName from './divWithClassName';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DivStyledAsH5 = divWithClassName('h5');\nconst OffcanvasTitle = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = DivStyledAsH5,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'offcanvas-title');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n ...props\n });\n});\nOffcanvasTitle.displayName = 'OffcanvasTitle';\nexport default OffcanvasTitle;","/**\n * Checks if a given element has a CSS class.\n * \n * @param element the element\n * @param className the CSS class name\n */\nexport default function hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);\n return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}","var toArray = Function.prototype.bind.call(Function.prototype.call, [].slice);\n/**\n * Runs `querySelectorAll` on a given element.\n * \n * @param element the element\n * @param selector the selector\n */\n\nexport default function qsa(element, selector) {\n return toArray(element.querySelectorAll(selector));\n}","function replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp(\"(^|\\\\s)\" + classToRemove + \"(?:\\\\s|$)\", 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n/**\n * Removes a CSS class from a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\n\nexport default function removeClass(element, className) {\n if (element.classList) {\n element.classList.remove(className);\n } else if (typeof element.className === 'string') {\n element.className = replaceClassName(element.className, className);\n } else {\n element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n }\n}","import addClass from 'dom-helpers/addClass';\nimport css from 'dom-helpers/css';\nimport qsa from 'dom-helpers/querySelectorAll';\nimport removeClass from 'dom-helpers/removeClass';\nimport ModalManager from '@restart/ui/ModalManager';\nconst Selector = {\n FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT: '.sticky-top',\n NAVBAR_TOGGLER: '.navbar-toggler'\n};\nclass BootstrapModalManager extends ModalManager {\n adjustAndStore(prop, element, adjust) {\n const actual = element.style[prop];\n // TODO: DOMStringMap and CSSStyleDeclaration aren't strictly compatible\n // @ts-ignore\n element.dataset[prop] = actual;\n css(element, {\n [prop]: `${parseFloat(css(element, prop)) + adjust}px`\n });\n }\n restore(prop, element) {\n const value = element.dataset[prop];\n if (value !== undefined) {\n delete element.dataset[prop];\n css(element, {\n [prop]: value\n });\n }\n }\n setContainerStyle(containerState) {\n super.setContainerStyle(containerState);\n const container = this.getElement();\n addClass(container, 'modal-open');\n if (!containerState.scrollBarWidth) return;\n const paddingProp = this.isRTL ? 'paddingLeft' : 'paddingRight';\n const marginProp = this.isRTL ? 'marginLeft' : 'marginRight';\n qsa(container, Selector.FIXED_CONTENT).forEach(el => this.adjustAndStore(paddingProp, el, containerState.scrollBarWidth));\n qsa(container, Selector.STICKY_CONTENT).forEach(el => this.adjustAndStore(marginProp, el, -containerState.scrollBarWidth));\n qsa(container, Selector.NAVBAR_TOGGLER).forEach(el => this.adjustAndStore(marginProp, el, containerState.scrollBarWidth));\n }\n removeContainerStyle(containerState) {\n super.removeContainerStyle(containerState);\n const container = this.getElement();\n removeClass(container, 'modal-open');\n const paddingProp = this.isRTL ? 'paddingLeft' : 'paddingRight';\n const marginProp = this.isRTL ? 'marginLeft' : 'marginRight';\n qsa(container, Selector.FIXED_CONTENT).forEach(el => this.restore(paddingProp, el));\n qsa(container, Selector.STICKY_CONTENT).forEach(el => this.restore(marginProp, el));\n qsa(container, Selector.NAVBAR_TOGGLER).forEach(el => this.restore(marginProp, el));\n }\n}\nlet sharedManager;\nexport function getSharedManager(options) {\n if (!sharedManager) sharedManager = new BootstrapModalManager(options);\n return sharedManager;\n}\nexport default BootstrapModalManager;","import hasClass from './hasClass';\n/**\n * Adds a CSS class to a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\nexport default function addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!hasClass(element, className)) if (typeof element.className === 'string') element.className = element.className + \" \" + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + \" \" + className);\n}","\"use client\";\n\nimport classNames from 'classnames';\nimport useBreakpoint from '@restart/hooks/useBreakpoint';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport * as React from 'react';\nimport { useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport BaseModal from '@restart/ui/Modal';\nimport Fade from './Fade';\nimport OffcanvasBody from './OffcanvasBody';\nimport OffcanvasToggling from './OffcanvasToggling';\nimport ModalContext from './ModalContext';\nimport NavbarContext from './NavbarContext';\nimport OffcanvasHeader from './OffcanvasHeader';\nimport OffcanvasTitle from './OffcanvasTitle';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport BootstrapModalManager, { getSharedManager } from './BootstrapModalManager';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction DialogTransition(props) {\n return /*#__PURE__*/_jsx(OffcanvasToggling, {\n ...props\n });\n}\nfunction BackdropTransition(props) {\n return /*#__PURE__*/_jsx(Fade, {\n ...props\n });\n}\nconst Offcanvas = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n children,\n 'aria-labelledby': ariaLabelledby,\n placement = 'start',\n responsive,\n /* BaseModal props */\n\n show = false,\n backdrop = true,\n keyboard = true,\n scroll = false,\n onEscapeKeyDown,\n onShow,\n onHide,\n container,\n autoFocus = true,\n enforceFocus = true,\n restoreFocus = true,\n restoreFocusOptions,\n onEntered,\n onExit,\n onExiting,\n onEnter,\n onEntering,\n onExited,\n backdropClassName,\n manager: propsManager,\n renderStaticNode = false,\n ...props\n}, ref) => {\n const modalManager = useRef();\n bsPrefix = useBootstrapPrefix(bsPrefix, 'offcanvas');\n const {\n onToggle\n } = useContext(NavbarContext) || {};\n const [showOffcanvas, setShowOffcanvas] = useState(false);\n const hideResponsiveOffcanvas = useBreakpoint(responsive || 'xs', 'up');\n useEffect(() => {\n // Handles the case where screen is resized while the responsive\n // offcanvas is shown. If `responsive` not provided, just use `show`.\n setShowOffcanvas(responsive ? show && !hideResponsiveOffcanvas : show);\n }, [show, responsive, hideResponsiveOffcanvas]);\n const handleHide = useEventCallback(() => {\n onToggle == null ? void 0 : onToggle();\n onHide == null ? void 0 : onHide();\n });\n const modalContext = useMemo(() => ({\n onHide: handleHide\n }), [handleHide]);\n function getModalManager() {\n if (propsManager) return propsManager;\n if (scroll) {\n // Have to use a different modal manager since the shared\n // one handles overflow.\n if (!modalManager.current) modalManager.current = new BootstrapModalManager({\n handleContainerOverflow: false\n });\n return modalManager.current;\n }\n return getSharedManager();\n }\n const handleEnter = (node, ...args) => {\n if (node) node.style.visibility = 'visible';\n onEnter == null ? void 0 : onEnter(node, ...args);\n };\n const handleExited = (node, ...args) => {\n if (node) node.style.visibility = '';\n onExited == null ? void 0 : onExited(...args);\n };\n const renderBackdrop = useCallback(backdropProps => /*#__PURE__*/_jsx(\"div\", {\n ...backdropProps,\n className: classNames(`${bsPrefix}-backdrop`, backdropClassName)\n }), [backdropClassName, bsPrefix]);\n const renderDialog = dialogProps => /*#__PURE__*/_jsx(\"div\", {\n ...dialogProps,\n ...props,\n className: classNames(className, responsive ? `${bsPrefix}-${responsive}` : bsPrefix, `${bsPrefix}-${placement}`),\n \"aria-labelledby\": ariaLabelledby,\n children: children\n });\n return /*#__PURE__*/_jsxs(_Fragment, {\n children: [!showOffcanvas && (responsive || renderStaticNode) && renderDialog({}), /*#__PURE__*/_jsx(ModalContext.Provider, {\n value: modalContext,\n children: /*#__PURE__*/_jsx(BaseModal, {\n show: showOffcanvas,\n ref: ref,\n backdrop: backdrop,\n container: container,\n keyboard: keyboard,\n autoFocus: autoFocus,\n enforceFocus: enforceFocus && !scroll,\n restoreFocus: restoreFocus,\n restoreFocusOptions: restoreFocusOptions,\n onEscapeKeyDown: onEscapeKeyDown,\n onShow: onShow,\n onHide: handleHide,\n onEnter: handleEnter,\n onEntering: onEntering,\n onEntered: onEntered,\n onExit: onExit,\n onExiting: onExiting,\n onExited: handleExited,\n manager: getModalManager(),\n transition: DialogTransition,\n backdropTransition: BackdropTransition,\n renderBackdrop: renderBackdrop,\n renderDialog: renderDialog\n })\n })]\n });\n});\nOffcanvas.displayName = 'Offcanvas';\nexport default Object.assign(Offcanvas, {\n Body: OffcanvasBody,\n Header: OffcanvasHeader,\n Title: OffcanvasTitle\n});","import React from \"react\";\r\nimport { useEffect, useState } from \"react\";\r\nimport useApi from \"../utils/UseAPI\";\r\nimport ContactFormInput from \"./ContactFormInput\";\r\nimport Button from 'react-bootstrap/Button';\r\nimport Offcanvas from 'react-bootstrap/Offcanvas';\r\n\r\nconst ContactUsForm = () => {\r\n\r\n const [show, setShow] = useState(false);\r\n const handleClose = () => setShow(false);\r\n const handleShow = () => setShow(true);\r\n\r\n return (\r\n <>\r\n <Button variant=\"primary\" onClick={handleShow}>\r\n Send Contact Form\r\n </Button>\r\n\r\n <Offcanvas className=\"w-50\" show={show} onHide={handleClose}>\r\n <Offcanvas.Header closeButton>\r\n <Offcanvas.Title>Contact Us</Offcanvas.Title>\r\n </Offcanvas.Header>\r\n <Offcanvas.Body>\r\n <p>\r\n Please complete the form below and click the Submit button when you are ready to send your question or request.\r\n </p>\r\n <p>\r\n <b>The department cannot guarantee the security of any personally identifying information that you choose to provide</b> in an electronic mail message or over the Internet by electronic means. Please do not include confidential and personal information such as your social security number, date of birth or medical information in this form. You may wish to phone our department if you need to share personally identifying information.\r\n </p>\r\n <p>\r\n {/* <b>Items with bold titles are required.</b> To access an input box directly, hold down the Alt key and press the underlined letter. */}\r\n </p>\r\n {/* Input form here: */}\r\n <ContactFormInput />\r\n </Offcanvas.Body>\r\n </Offcanvas>\r\n\r\n </>\r\n )\r\n}\r\nexport default ContactUsForm;","//===================== Libraries ================================\r\n//Using the react library\r\nimport React from \"react\";\r\nimport { useState } from \"react\";\r\n// ===================== Components ==============================\r\n// import Department Button\r\nimport Department from \"../components/buttons/Department\";\r\n// ===================== Assets =================================\r\n//css\r\nimport \"../assets/styles/layout/navbar.css\";\r\n//import assets: Grabbing the the CHFS Logo\r\nimport logo from \"../assets/img/logos/kentucky-icons/Team-Kentucky_CHFS-Branding_blue_50.png\";\r\nimport crisisNumber from \"../assets/img/logos/988/988-horizontal-white-black.jpg\"\r\nimport arrows from \"../assets/img/logos/988/angles-right-solid.svg\"\r\n//import data (json)\r\nimport data from \"../data/data.json\";\r\nimport GoogleTranslateBar from \"../components/GoogleTranslateBar\";\r\nimport ContactInfo from \"../components/ContactInfo\"\r\n// Check if Contact info is null\r\nimport EmergencyContact from \"../components/EmergencyContact\";\r\nimport ContactUsForm from \"../components/ContactUsForm\";\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nfunction Navbar(props) {\r\n\r\n const [searchInput, setSearchInput] = useState(\"\");\r\n\r\n\r\n\r\n const handleChange = (e) => {\r\n e.preventDefault();\r\n setSearchInput(e.target.value);\r\n\r\n\r\n };\r\n\r\n\r\n const handleKeyDown = (event) => {\r\n if (event.key === 'Enter') {\r\n searchForService();\r\n }\r\n }\r\n\r\n const searchForService = () => {\r\n\r\n window.open(\"//\" + \"www.google.com/search?q=ky_dbhdid_\" + searchInput, '_blank');\r\n\r\n }\r\n return (\r\n\r\n <>\r\n <nav className=' bottom-nav'>\r\n <nav className=\" navbar-text-info\">\r\n <div className=\"container-fluid\">\r\n <div className=\"top-page-nav-text\">\r\n <div className=\"container-fluid\">\r\n {/* <i className='fa-solid fa-exclamation' style={{'font-size':'36px'}}/> */}\r\n <a title=\"Learn more about 988 and the resources and services offered.\" href=\"https://www.samhsa.gov/sites/default/files/988-around-the-us.mp4\">Learn more about 988 and the resources and services offered.</a> <br/>\r\n <a title=\"988 Suicide & Crisis Lifeline\" href=\"https://www.samhsa.gov/find-support/in-crisis\"><img style={{ maxWidth: \"23.3%\", width: \"120px\"}} title=\"988 Suicide & Crisis Lifeline\" className='' src={crisisNumber} /> </a><b>In Crisis? <a className=\"\" title=\"Call 988\" href=\"tel: 988\">Call</a> or <a title=\"Text 988\" href=\"sms:988\">Text</a> 988 </b> <a href=\"https://www.samhsa.gov/find-support/in-crisis\"><img style={{ maxWidth: \"1.10.3%\", marginBottom: \"4px\", width: \"20px\" }} src={arrows} /></a> <br/>\r\n \r\n \r\n {window.location.href.includes(\"ddid\") ?<><div className=\" horizontal-line\"/> <a title=\"Are you looking for services for someone with a Developmental or Intellectual Disability?\" href=\"ddid/access-and-referral\">Are you looking for services for someone with a Developmental or Intellectual Disability?</a></>\r\n : null }\r\n \r\n </div>\r\n </div>\r\n </div>\r\n </nav>\r\n {/* The start of the nav content */}\r\n <nav className=\"official-nav-logo-text-bar\">\r\n <div className=\"container-fluid\">\r\n <div className='navbar-header'>\r\n <span className=\"official-ky-text\"><a style={{color:\"white\", textDecoration:\"none\" }} title=\"Kentucky.gov\" href=\"https://www.kentucky.gov/Pages/home.aspx\">Ky.<small>gov </small></a><div title=\"An Official Website of the Commonwealth of Kentucky\" className='slogan-hide'>An Official Website of the Commonwealth of Kentucky</div> </span>\r\n </div>\r\n </div>\r\n </nav>\r\n <div class=\" central-nav-container button-nav middle-nav-formation justify-content-center\">\r\n <div className='lower-navs-layout flex-vcenter'>\r\n <nav className=\"navbar \">\r\n <a title=\"Department for Behavioral Health, Developmental and Intellectual Disabilities\" className=\"navbar-brand department-text-logo\">Department for Behavioral Health, Developmental and Intellectual Disabilities</a>\r\n <div title=\"Google Translator\" className=\"google-widget-translate\" role=\"language\">\r\n <GoogleTranslateBar />\r\n </div>\r\n </nav>\r\n </div>\r\n </div>\r\n <div className='line-separation'></div>\r\n <div className=\"bg-white navbar-expand-lg navbar-light bg-light\">\r\n <div className='container button-nav'>\r\n <div className=\" central-nav-container\">\r\n <a className=\" container navbar-brand \" href=\"/\"><img className='container-fluid dbhdid-logo' title=\"Team Kentucky: Cabinet For Health and Family Services\" src={logo} /></a>\r\n <button title=\"Menu\" className=\"navbar-toggler btn-btn-primary nav-button-design\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#navbarSupportedContent\" aria-controls=\"navbarSupportedContent\" aria-expanded=\"false\" aria-label=\"Toggle navigation\">\r\n {/* <span className=\"navbar-toggler-icon\"></span> */}\r\n <div className=\"move-menu-word\">Menu</div>\r\n </button>\r\n <div className=\"collapse navbar-collapse\" id=\"navbarSupportedContent\">\r\n <ul className=\" navbar-nav nav-layout department-nav\">\r\n <li className=\" nav-item dropdown\">\r\n <a className=\" nav-link dropdown-toggle font-custom\" title=\"Divisions\" href=\"#\" id=\"navbarDropdown\" role=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\r\n Divisions\r\n </a>\r\n <ul className=\"dropdown-menu \" aria-labelledby=\"navbarDropdown\">\r\n {data.departmentNames.map((data, index) => {\r\n return <Department key={index} path={data.path} department={data.title} />\r\n })}\r\n </ul>\r\n </li>\r\n <li className=\" nav-item dropdown\">\r\n <a className=\"nav-link center-nav-tabs dropdown-toggle font-custom\" title=\"Reports\" href=\"#\" id=\"navbarDropdown\" role=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\r\n Reports\r\n </a>\r\n <ul className=\"dropdown-menu \" aria-labelledby=\"navbarDropdown\">\r\n\r\n {data.cmhc.map((data, index) => {\r\n return <Department key={index} path={data.path} department={data.title} />\r\n })}\r\n </ul>\r\n </li>\r\n <li className=\" nav-item dropdown\">\r\n <a className=\"nav-link center-nav-tabs dropdown-toggle font-custom\" title=\"Facilities\" href=\"#\" id=\"navbarDropdown\" role=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\r\n Facilities\r\n </a>\r\n <ul className=\"dropdown-menu \" aria-labelledby=\"navbarDropdown\">\r\n\r\n {data.facilities.map((data, index) => {\r\n return <Department key={index} path={data.path} department={data.title} />\r\n })}\r\n </ul>\r\n </li>\r\n <li className=\" nav-item dropdown\">\r\n <a className=\"nav-link center-nav-tabs dropdown-toggle font-custom\" title=\"Community Mental Health Centers\" href=\"#\" id=\"navbarDropdown\" role=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\r\n CMHC\r\n </a>\r\n <ul className=\"dropdown-menu \" aria-labelledby=\"navbarDropdown\">\r\n\r\n {data.reports.map((data, index) => {\r\n return <Department key={index} path={data.path} department={data.title} />\r\n })}\r\n </ul>\r\n </li>\r\n <li className=\" nav-item center-nav-tabs\">\r\n <a className=\"nav-link font-custom\" title=\"Calendar of Events\" aria-current=\"page\" href=\"/calendar\">Calendar</a>\r\n </li>\r\n <li className=\" nav-item center-nav-tabs\">\r\n {/* <a className=\"nav-link font-custom\" aria-current=\"page\" href=\"/providerdirectory\">Provider Directory</a> */}\r\n <a className=\"nav-link font-custom\" title=\"Provider Directory\" aria-current=\"page\" href=\"/providerdirectory\">Provider Directory</a>\r\n </li>\r\n <li className=\" nav-item dropdown dropdown-width\">\r\n <a className=\" nav-link center-nav-tabs dropdown-toggle font-custom \" title=\"Contact Us\" href=\"#\" id=\"navbarDropdown\" role=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\r\n Contact Us\r\n </a>\r\n <ul className=\" dropdown-menu dropdown-width \" aria-labelledby=\"navbarDropdown \">\r\n <ContactInfo pageID={props.iD} />\r\n <EmergencyContact />\r\n <div className=\"contact-us-tab-space\"><ContactUsForm /></div>\r\n </ul>\r\n </li>\r\n </ul>\r\n <div className=\" \">\r\n \r\n <form className=\"container d-flex searchbar\">\r\n \r\n <input className=\" form-control me-2\" title=\"Search for Services\" onKeyDown={handleKeyDown} onChange={handleChange} value={searchInput} type=\"search\" placeholder=\"Search for Services... \" size=\"\" aria-label=\"Search\" />\r\n <button className=\"btn btn-primary btn-size\" onClick={searchForService} title=\"Search\" type=\"submit\">Search</button>\r\n </form>\r\n </div>\r\n\r\n \r\n </div>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n </nav>\r\n </>\r\n\r\n );\r\n}\r\n\r\nexport default Navbar;\r\n","import { isNullOrWhiteSpace } from \"./StringUtils\";\r\n\r\n\r\n// This sets and gets the breadcrumb for a page.\r\nconst breadCrumbMap = new Map([\r\n ['mh','Mental Health'],\r\n ['ddid', 'Developmental and Intellectual Disabilities'],\r\n ['afm', 'Administration and Financial Management'],\r\n ['sud','Substance Use Disorder'],\r\n ['cmhc','Community Mental Health Centers'],\r\n ['dpi', 'Program Integrity'],\r\n ['facilities', 'Facilities']\r\n]);\r\n\r\n\r\nconst getBreadCrumb = (key) => {\r\n\r\n if(isNullOrWhiteSpace(key)){\r\n\r\n return key;\r\n\r\n }\r\n\r\n key = key.toLowerCase();\r\n \r\n if (breadCrumbMap.has(key)) {\r\n\r\n return breadCrumbMap.get(key);\r\n }\r\n else {\r\n return key;\r\n }\r\n\r\n};\r\n\r\n\r\nexport default getBreadCrumb;","\r\nimport { create } from 'zustand';\r\n\r\nconst currentPageStore = create((set,get) => ({\r\n currentPage: '', \r\n setCurrentPage: (value) => set({currentPage: value})\r\n})); \r\n\r\n\r\nexport default currentPageStore","// Cleans the Comp.'s URL and checks if the request is from localhost, dbhdidtest, dbhdid.\r\n// From localhost, you are not able to access the documents without this comp. \r\nconst SanitizeHref = (href) => {\r\n // console.log(href)\r\n // Checks for null hrefs\r\n if(href == undefined || href == null){\r\n return \"\"; \r\n }\r\n if (href.startsWith(\"http\") || !href.includes(\"documents/\")) {\r\n return href;\r\n }\r\n const testDomain = \"https://dbhdidtest.ky.gov/\";\r\n const domain = \"https://dbhdid.ky.gov/\";\r\n const windowUrl = window.location.href;\r\n /*Important to note: \"localhost\" and \"dbhdidtest\" access resources from the test server and not the production server.\r\n If you are making changes from to the production server make sure you are not on test.\r\n */\r\n if (windowUrl.includes(\"localhost\") || windowUrl.includes(\"dbhdidtest\")) {\r\n // \\\\VWSWEBA01BHDID\\iis-sites\\dbhdidtest.ky.gov\r\n return testDomain + href;\r\n } else {\r\n // \\\\VWSWEBP01BHDID\\iis-sites\\dbhdid.ky.gov\r\n return domain + href;\r\n }\r\n};\r\n\r\nexport default SanitizeHref;","import React from 'react';\r\nimport { Link, useLocation } from 'react-router-dom';\r\nimport getBreadCrumb from '../../utils/BreadcrumbMap';\r\n// Css\r\nimport \"../../assets/styles/pages/style.css\";\r\nimport currentPageStore from '../../utils/stores/currentPageStore';\r\nimport SanitizeHref from '../../utils/SanitizeHref';\r\n\r\n\r\nfunction Breadcrumbs() {\r\n \r\n const currentPage = currentPageStore((state) => state.currentPage);\r\n // Store the breadcrumb information\r\n const location = useLocation();\r\n \r\n // console.log(location);\r\n // Keep track of the link of each \"crumb\"\r\n let currentLink = '';\r\n // store the pathname property and split the array with '/' (forward slash)\r\n const crumbs = location.pathname.split('/')\r\n\r\n // filters out array element that's equal to an empty string\r\n .filter(crumb => crumb !== '')\r\n // return output\r\n .map((crumb,index,{length}) => {\r\n // console.log(crumb)\r\n \r\n \r\n const isLast = length-1 == index;\r\n currentLink += `/${crumb}`\r\n return (\r\n <> \r\n <div className='crumb' key={crumb} >\r\n {/* output Links to the page */}\r\n <Link title={crumb} className=\"container button-nav breadcrumbs\" to={SanitizeHref(currentLink)}>{isLast ? currentPage : getBreadCrumb(crumb) }</Link>\r\n </div>\r\n\r\n </>\r\n )\r\n })\r\n return (\r\n <>\r\n <div className='full-breadcrumb '>\r\n <ol class=\"breadcrumbs layout-crumb\" >\r\n <Link to={\"/\"}>Home {' > '} </Link> <div></div> \r\n {crumbs}\r\n </ol>\r\n <div className=' '></div>\r\n\r\n\r\n </div>\r\n\r\n </>\r\n );\r\n}\r\n\r\nexport default Breadcrumbs;","// Libraries\r\nimport React from \"react\";\r\n// Assets: \r\n// CSS\r\nimport \"../assets/styles/layout/footer.css\";\r\nimport logo from \"../assets/img/logos/kentucky-icons/Team-Kentucky-Blue_286x150.png\";\r\n\r\n// Data\r\nimport data from \"../data/data.json\";\r\n\r\nimport { Link } from \"react-router-dom\";\r\n\r\nfunction Footer() {\r\n return (\r\n\r\n <div className=\"generalFooterStyle\">\r\n\r\n \r\n\r\n <section className=\"subscribeCTA\">\r\n <div className=\"container\">\r\n <div className=\"row\">\r\n <div className=\"col-sm-12 subFooter\">\r\n <p style={{fontWeight: \"bolder\", fontSize: \"25px\"}} id=\"Looking for Service?\" title=\"Looking for Service?\" className=\"top-title-footer\">Looking for Service?</p> \r\n <p title=\"To receive Press Releases and updates on Families, Wellness and Medical information, subscribe below.\">To receive Press Releases and updates on Families, Wellness and Medical information, subscribe below.</p>\r\n </div>\r\n {/* <div class=\"col-sm-6\">\r\n <a href=\"https://public.govdelivery.com/accounts/KYCHFS/subscriber/new\" class=\"btn btn-success\" role=\"button\" target=\"_blank\">Subscribe</a>\r\n </div> */}\r\n <div className=\"col\">\r\n <Link to={\"/\"} className=\"btn btn-primary\" title=\"Learn More\" role=\"button\" target=\"_blank\">Learn More</Link>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </section>\r\n\r\n\r\n <div className=\"outerContainer footerRow\">\r\n <div className=\"container\">\r\n <div title=\"Commonwealth of Kentucky Cabinet for Health and Family Services\" className=\"footer-brand\">\r\n\r\n Commonwealth of Kentucky\r\n\r\n Cabinet for Health and Family Services\r\n </div>\r\n <div className=\"portal-FooterInsert\">\r\n <div className=\"outerContainer enterpriseFooterRow\">\r\n <nav className=\"enterprise-footer-links\">\r\n <ul className=\"list-unstyled list-inline\">\r\n <li>\r\n <a title=\"Policies\" href=\"https://kentucky.gov/policies/Pages/default.aspx\">Policies</a>\r\n </li>\r\n <li>\r\n <a title=\"Security\" href=\"https://kentucky.gov/policies/Pages/security.aspx\">Security</a>\r\n </li>\r\n <li>\r\n <a title=\"Disclaimer\" href=\"https://kentucky.gov/policies/Pages/disclaimer.aspx\">Disclaimer</a>\r\n </li>\r\n <li>\r\n <a title=\"Accessibility\" href=\"https://kentucky.gov/policies/Pages/accessibility.aspx\">Accessibility</a>\r\n </li>\r\n\r\n </ul>\r\n </nav>\r\n </div>\r\n <div className=\"outerContainer unbridledRow\">\r\n <img src={logo} />\r\n\r\n </div>\r\n\r\n <div class=\"outerContainer copyrightRow\">\r\n\r\n <p><span title=\"© 2024 Commonwealth of Kentucky. All rights reserved.\" class=\"copyright-text\">© 2024 Commonwealth of Kentucky.</span><span class=\"all-rights-text\"> All rights reserved.<span></span></span></p>\r\n\r\n <p><span title=\"Kentucky.gov\" class=\"kentuckygov-text\"><a href=\"http://www.kentucky.gov\">Kentucky.gov</a><span></span></span></p>\r\n\r\n\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n\r\n </div>\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default Footer;","// Libs:\r\nimport React from 'react';\r\nimport { useEffect } from 'react';\r\n// css:\r\nimport \"../assets/styles/pages/style.css\"\r\n// Header\r\nimport DepartmentHeader from '../components/DepartmentHeader';\r\n// Layout\r\nimport IBITable from '../components/IBI_ReactTools/IBITable';\r\nimport Navbar from '../layouts/Navbar';\r\nimport Breadcrumbs from '../components/buttons/Breadcrumbs';\r\nimport Footer from '../layouts/Footer';\r\nimport currentPageStore from '../utils/stores/currentPageStore';\r\n\r\nfunction Crisisnos({ pageHeader }) {\r\n\r\n const setCurrentPage = currentPageStore((state) => state.setCurrentPage);\r\n\r\n useEffect(() => {\r\n setCurrentPage(pageHeader);\r\n // console.log(pageHeader)\r\n }, [pageHeader])\r\n\r\n const endpointKey = \"crisisnos\";\r\n // const exampleColumn = {\r\n // display: \"Display\",\r\n // order: 1,\r\n // property: \"propertyOne\"\r\n // }\r\n const columns = [\r\n {\r\n display: \"CMHC County\",\r\n order: 10,\r\n property: 'regionString'\r\n },\r\n {\r\n display: \"CMHC Region # - CMHC Name \\n CMHC Website\",\r\n order: 20,\r\n property: \"RegionNameAndWebsite\"\r\n },\r\n {\r\n //old display title: \"Administrative Office Number \\n 24-Hour Crisis Phone Number \\n TTY Crisis Phone Number\"\r\n display: \" \\n 24-Hour Crisis Phone Number \\n TTY Crisis Phone Number\",\r\n order: 30,\r\n property: \"officeNumber\"\r\n },\r\n {\r\n display: \"Hospital Name \\n Hospital Phone\",\r\n order: 40,\r\n property: \"hospitalNameAndPhone\"\r\n },\r\n ]\r\n const processor = (data) => {\r\n\r\n data.forEach(element => {\r\n element.regionString = element.county + \": \" + element.countyPhone;\r\n element.RegionNameAndWebsite = element.regionNumber + \" \" + element.regionName + \"\\n \" +\r\n \" \" + element.regionUrl;\r\n\r\n element.officeNumber = \" \" +/*element.phone + */ element.crisisLine;\r\n element.hospitalNameAndPhone = element.hospital + \" \\n\" + element.hospitalPhone;\r\n });\r\n }\r\n const search = (item, value) => {\r\n const hasRegionString = Object.hasOwn(item, \"regionString\") && item.regionString != null;\r\n const hasHospital = Object.hasOwn(item, \"hospital\") && item.hospital != null;\r\n if (item != null && hasRegionString && hasHospital && value != null) {\r\n return item.regionString.toLowerCase().includes(value.toLowerCase()) || item.hospital.toLowerCase().includes(value.toLowerCase());\r\n }\r\n return false;\r\n }\r\n return (\r\n <>\r\n\r\n <Navbar iD={1} />\r\n <div className=\"central-nav-container wrapper\">\r\n <Breadcrumbs />\r\n <div className=\"\" id=\"bodyContent\">\r\n <div>\r\n <div className=''>\r\n <DepartmentHeader header=\"Community Mental Health Centers (CMHCs) and Adult State-Operated or State-Contracted Psychiatric Hospitals Alphabetically by County\" />\r\n <div class=\"row\">\r\n <div className='bodyText'>\r\n <b title='Please note: If you think you may have a medical or life-threatening behavioral health emergency or your condition becomes life-threatening, please call 911 or go to the nearest hospital immediately. For all other behavioral health crises, please call 988 or the 24-Hour Crisis Number listed below for your county.' style={{ color: \"red\" }}>Please note: If you think you may have a medical or life-threatening behavioral health emergency or your condition becomes life-threatening, please call 911 or go to the nearest hospital immediately. For all other behavioral health crises, please call 988 or the 24-Hour Crisis Number listed below for your county.</b>\r\n <br /> <br />\r\n <b title='Individuals who are Deaf or Hard of Hearing are encouraged to call through Video Relay Services (VRS) amplified or captioned phones, or TTY Relay (7-1-1).'>*Individuals who are Deaf or Hard of Hearing are encouraged to call through Video Relay Services (VRS) amplified or captioned phones, or TTY Relay (7-1-1).</b>\r\n <br /> <br />\r\n <div className=\"subTitle\">\r\n <div className='crisis'>\r\n <IBITable endpointKey={endpointKey} columns={columns} dataProcessingAction={processor} searchPredicate={search} />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <Footer />\r\n </>\r\n );\r\n};\r\nexport default Crisisnos;","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Link, NavLink } from 'react-router-dom';\n\nlet hashFragment = '';\nlet observer = null;\nlet asyncTimerId = null;\nlet scrollFunction = null;\n\nfunction reset() {\n hashFragment = '';\n if (observer !== null) observer.disconnect();\n if (asyncTimerId !== null) {\n window.clearTimeout(asyncTimerId);\n asyncTimerId = null;\n }\n}\n\nfunction isInteractiveElement(element) {\n const formTags = ['BUTTON', 'INPUT', 'SELECT', 'TEXTAREA'];\n const linkTags = ['A', 'AREA'];\n return (\n (formTags.includes(element.tagName) && !element.hasAttribute('disabled')) ||\n (linkTags.includes(element.tagName) && element.hasAttribute('href'))\n );\n}\n\nfunction getElAndScroll() {\n let element = null;\n if (hashFragment === '#') {\n // use document.body instead of document.documentElement because of a bug in smoothscroll-polyfill in safari\n // see https://github.com/iamdustan/smoothscroll/issues/138\n // while smoothscroll-polyfill is not included, it is the recommended way to implement smoothscroll\n // in browsers that don't natively support el.scrollIntoView({ behavior: 'smooth' })\n element = document.body;\n } else {\n // check for element with matching id before assume '#top' is the top of the document\n // see https://html.spec.whatwg.org/multipage/browsing-the-web.html#target-element\n const id = hashFragment.replace('#', '');\n element = document.getElementById(id);\n if (element === null && hashFragment === '#top') {\n // see above comment for why document.body instead of document.documentElement\n element = document.body;\n }\n }\n\n if (element !== null) {\n scrollFunction(element);\n\n // update focus to where the page is scrolled to\n // unfortunately this doesn't work in safari (desktop and iOS) when blur() is called\n let originalTabIndex = element.getAttribute('tabindex');\n if (originalTabIndex === null && !isInteractiveElement(element)) {\n element.setAttribute('tabindex', -1);\n }\n element.focus({ preventScroll: true });\n if (originalTabIndex === null && !isInteractiveElement(element)) {\n // for some reason calling blur() in safari resets the focus region to where it was previously,\n // if blur() is not called it works in safari, but then are stuck with default focus styles\n // on an element that otherwise might never had focus styles applied, so not an option\n element.blur();\n element.removeAttribute('tabindex');\n }\n\n reset();\n return true;\n }\n return false;\n}\n\nfunction hashLinkScroll(timeout) {\n // Push onto callback queue so it runs after the DOM is updated\n window.setTimeout(() => {\n if (getElAndScroll() === false) {\n if (observer === null) {\n observer = new MutationObserver(getElAndScroll);\n }\n observer.observe(document, {\n attributes: true,\n childList: true,\n subtree: true,\n });\n // if the element doesn't show up in specified timeout or 10 seconds, stop checking\n asyncTimerId = window.setTimeout(() => {\n reset();\n }, timeout || 10000);\n }\n }, 0);\n}\n\nexport function genericHashLink(As) {\n return React.forwardRef((props, ref) => {\n let linkHash = '';\n if (typeof props.to === 'string' && props.to.includes('#')) {\n linkHash = `#${props.to.split('#').slice(1).join('#')}`;\n } else if (\n typeof props.to === 'object' &&\n typeof props.to.hash === 'string'\n ) {\n linkHash = props.to.hash;\n }\n\n const passDownProps = {};\n if (As === NavLink) {\n passDownProps.isActive = (match, location) =>\n match && match.isExact && location.hash === linkHash;\n }\n\n function handleClick(e) {\n reset();\n hashFragment = props.elementId ? `#${props.elementId}` : linkHash;\n if (props.onClick) props.onClick(e);\n if (\n hashFragment !== '' &&\n // ignore non-vanilla click events, same as react-router\n // below logic adapted from react-router: https://github.com/ReactTraining/react-router/blob/fc91700e08df8147bd2bb1be19a299cbb14dbcaa/packages/react-router-dom/modules/Link.js#L43-L48\n !e.defaultPrevented && // onClick prevented default\n e.button === 0 && // ignore everything but left clicks\n (!props.target || props.target === '_self') && // let browser handle \"target=_blank\" etc\n !(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) // ignore clicks with modifier keys\n ) {\n scrollFunction =\n props.scroll ||\n ((el) =>\n props.smooth\n ? el.scrollIntoView({ behavior: 'smooth' })\n : el.scrollIntoView());\n hashLinkScroll(props.timeout);\n }\n }\n const { scroll, smooth, timeout, elementId, ...filteredProps } = props;\n return (\n <As {...passDownProps} {...filteredProps} onClick={handleClick} ref={ref}>\n {props.children}\n </As>\n );\n });\n}\n\nexport const HashLink = genericHashLink(Link);\n\nexport const NavHashLink = genericHashLink(NavLink);\n\nif (process.env.NODE_ENV !== 'production') {\n HashLink.displayName = 'HashLink';\n NavHashLink.displayName = 'NavHashLink';\n\n const propTypes = {\n onClick: PropTypes.func,\n children: PropTypes.node,\n scroll: PropTypes.func,\n timeout: PropTypes.number,\n elementId: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n };\n\n HashLink.propTypes = propTypes;\n NavHashLink.propTypes = propTypes;\n}\n","// Purpose of this component is to grab grab \"parent\" and \"children\" related links\r\nimport React from \"react\";\r\n//Using the react library:\r\nimport { useEffect, useState } from \"react\";\r\n//API Middle man\r\nimport useApi from \"../utils/UseAPI\";\r\n// React loading spinner\r\nimport Spinner from 'react-bootstrap/Spinner';\r\nimport SanitizeHref from \"../utils/SanitizeHref\";\r\n// import IsNullOrWhiteSpace from \"./IsNullOrWhiteSpace\";\r\n\r\nfunction RelatedLink({ pageID, ...props }) {\r\n // The API will be stored in related links\r\n const [relatedLinks, setRelatedLinks] = useState([]);\r\n const { error, processing, getRequest } = useApi();\r\n const apiObject = useApi();\r\n \r\n const isNull = \"\";\r\n\r\n useEffect(() => {\r\n const fetchLinks = async () => {\r\n const [data, status] = await getRequest(null, \"page/\" + pageID + \"/related-links\");\r\n if (status == 200) {\r\n setRelatedLinks(data.data.sort((a, b) => a.sort - b.sort));\r\n if(data == null){\r\n isNull = \"\";\r\n }\r\n }\r\n else {\r\n console.log(error);\r\n }\r\n };\r\n fetchLinks();\r\n }, [pageID]);\r\n return (\r\n <>\r\n <p style={{\"fontSize\": \"22px\",\"margin-top\":\"0px\"}}><b title=\"Related Links\">Related Links</b></p>\r\n <div className=\"\">\r\n <div className=\"col\">\r\n <ul className=\"no-bullet\">\r\n {/* Return Related Links */}\r\n {processing ? <Spinner animation=\"border\" variant=\"success\" /> : relatedLinks.map((data, index) => {\r\n return (\r\n <li><a target=\"_blank\" key={index} title={data.name} className=\"quick-links-body\" href={SanitizeHref(data.url)}>{data.name}</a>\r\n {/* Grabs Child links */}\r\n {data.children.map((data, index) => {\r\n return (\r\n <li><a target=\"_blank\" title={data.name} key={index} className=\"quick-links-body indented-list\" href={SanitizeHref(data.url)}> - {data.name}</a></li>\r\n )\r\n }\r\n )}\r\n </li>\r\n )\r\n })\r\n }\r\n </ul>\r\n </div>\r\n </div>\r\n </>\r\n );\r\n}\r\n\r\nexport default RelatedLink;","// libs:\r\nimport React from 'react';\r\nimport \"../assets/styles/pages/style.css\"\r\nimport { useEffect, useState } from \"react\";\r\nimport { useLocation } from \"react-router-dom\"\r\n\r\n// Link to where I got the code: https://v5.reactrouter.com/web/guides/scroll-restoration\r\nfunction ScrollToTop() {\r\n const [backToTopButton, setBackToTopButton] = useState(false);\r\n const { pathname } = useLocation();\r\n useEffect(() => {\r\n window.addEventListener(\"scroll\", () => {\r\n if (window.scrollY > 100) {\r\n setBackToTopButton(true)\r\n } else {\r\n setBackToTopButton(false)\r\n }\r\n })\r\n }, [])\r\n\r\n const scrollUp = () => {\r\n window.scrollTo({\r\n top: 0,\r\n behavior: \"smooth\"\r\n })\r\n }\r\n return (\r\n <>\r\n <div className='container text-center'>\r\n {backToTopButton && (<i className='fa fa-chevron-up up' onClick={scrollUp}><br/><div title='Scroll To Top' className='scroll-text'>Scroll To Top</div></i>)}\r\n </div>\r\n </>\r\n )\r\n\r\n}\r\n\r\nexport default ScrollToTop;","import { useEffect, useRef } from 'react';\n\n/**\n * Runs an effect only when the dependencies have changed, skipping the\n * initial \"on mount\" run. Caution, if the dependency list never changes,\n * the effect is **never run**\n *\n * ```ts\n * const ref = useRef<HTMLInput>(null);\n *\n * // focuses an element only if the focus changes, and not on mount\n * useUpdateEffect(() => {\n * const element = ref.current?.children[focusedIdx] as HTMLElement\n *\n * element?.focus()\n *\n * }, [focusedIndex])\n * ```\n * @param effect An effect to run on mount\n *\n * @category effects\n */\nfunction useUpdateEffect(fn, deps) {\n const isFirst = useRef(true);\n useEffect(() => {\n if (isFirst.current) {\n isFirst.current = false;\n return;\n }\n return fn();\n }, deps);\n}\nexport default useUpdateEffect;","import { useMemo, useRef } from 'react';\nimport useMounted from './useMounted';\nimport useWillUnmount from './useWillUnmount';\n\n/*\n * Browsers including Internet Explorer, Chrome, Safari, and Firefox store the\n * delay as a 32-bit signed integer internally. This causes an integer overflow\n * when using delays larger than 2,147,483,647 ms (about 24.8 days),\n * resulting in the timeout being executed immediately.\n *\n * via: https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout\n */\nconst MAX_DELAY_MS = 2 ** 31 - 1;\nfunction setChainedTimeout(handleRef, fn, timeoutAtMs) {\n const delayMs = timeoutAtMs - Date.now();\n handleRef.current = delayMs <= MAX_DELAY_MS ? setTimeout(fn, delayMs) : setTimeout(() => setChainedTimeout(handleRef, fn, timeoutAtMs), MAX_DELAY_MS);\n}\n\n/**\n * Returns a controller object for setting a timeout that is properly cleaned up\n * once the component unmounts. New timeouts cancel and replace existing ones.\n *\n *\n *\n * ```tsx\n * const { set, clear } = useTimeout();\n * const [hello, showHello] = useState(false);\n * //Display hello after 5 seconds\n * set(() => showHello(true), 5000);\n * return (\n * <div className=\"App\">\n * {hello ? <h3>Hello</h3> : null}\n * </div>\n * );\n * ```\n */\nexport default function useTimeout() {\n const isMounted = useMounted();\n\n // types are confused between node and web here IDK\n const handleRef = useRef();\n useWillUnmount(() => clearTimeout(handleRef.current));\n return useMemo(() => {\n const clear = () => clearTimeout(handleRef.current);\n function set(fn, delayMs = 0) {\n if (!isMounted()) return;\n clear();\n if (delayMs <= MAX_DELAY_MS) {\n // For simplicity, if the timeout is short, just set a normal timeout.\n handleRef.current = setTimeout(fn, delayMs);\n } else {\n setChainedTimeout(handleRef, fn, Date.now() + delayMs);\n }\n }\n return {\n set,\n clear,\n handleRef\n };\n }, []);\n}","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","import invariant from 'invariant';\n\nvar noop = function noop() {};\n\nfunction readOnlyPropType(handler, name) {\n return function (props, propName) {\n if (props[propName] !== undefined) {\n if (!props[handler]) {\n return new Error(\"You have provided a `\" + propName + \"` prop to `\" + name + \"` \" + (\"without an `\" + handler + \"` handler prop. This will render a read-only field. \") + (\"If the field should be mutable use `\" + defaultKey(propName) + \"`. \") + (\"Otherwise, set `\" + handler + \"`.\"));\n }\n }\n };\n}\n\nexport function uncontrolledPropTypes(controlledValues, displayName) {\n var propTypes = {};\n Object.keys(controlledValues).forEach(function (prop) {\n // add default propTypes for folks that use runtime checks\n propTypes[defaultKey(prop)] = noop;\n\n if (process.env.NODE_ENV !== 'production') {\n var handler = controlledValues[prop];\n !(typeof handler === 'string' && handler.trim().length) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Uncontrollable - [%s]: the prop `%s` needs a valid handler key name in order to make it uncontrollable', displayName, prop) : invariant(false) : void 0;\n propTypes[prop] = readOnlyPropType(handler, displayName);\n }\n });\n return propTypes;\n}\nexport function isProp(props, prop) {\n return props[prop] !== undefined;\n}\nexport function defaultKey(key) {\n return 'default' + key.charAt(0).toUpperCase() + key.substr(1);\n}\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nexport function canAcceptRef(component) {\n return !!component && (typeof component !== 'function' || component.prototype && component.prototype.isReactComponent);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\n\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\n\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n\nimport { useCallback, useRef, useState } from 'react';\nimport * as Utils from './utils';\n\nfunction useUncontrolledProp(propValue, defaultValue, handler) {\n var wasPropRef = useRef(propValue !== undefined);\n\n var _useState = useState(defaultValue),\n stateValue = _useState[0],\n setState = _useState[1];\n\n var isProp = propValue !== undefined;\n var wasProp = wasPropRef.current;\n wasPropRef.current = isProp;\n /**\n * If a prop switches from controlled to Uncontrolled\n * reset its value to the defaultValue\n */\n\n if (!isProp && wasProp && stateValue !== defaultValue) {\n setState(defaultValue);\n }\n\n return [isProp ? propValue : stateValue, useCallback(function (value) {\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 if (handler) handler.apply(void 0, [value].concat(args));\n setState(value);\n }, [handler])];\n}\n\nexport { useUncontrolledProp };\nexport default function useUncontrolled(props, config) {\n return Object.keys(config).reduce(function (result, fieldName) {\n var _extends2;\n\n var _ref = result,\n defaultValue = _ref[Utils.defaultKey(fieldName)],\n propsValue = _ref[fieldName],\n rest = _objectWithoutPropertiesLoose(_ref, [Utils.defaultKey(fieldName), fieldName].map(_toPropertyKey));\n\n var handlerName = config[fieldName];\n\n var _useUncontrolledProp = useUncontrolledProp(propsValue, defaultValue, props[handlerName]),\n value = _useUncontrolledProp[0],\n handler = _useUncontrolledProp[1];\n\n return _extends({}, rest, (_extends2 = {}, _extends2[fieldName] = value, _extends2[handlerName] = handler, _extends2));\n }, props);\n}","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst CarouselCaption = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = 'div',\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'carousel-caption');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n ...props\n });\n});\nCarouselCaption.displayName = 'CarouselCaption';\nexport default CarouselCaption;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst CarouselItem = /*#__PURE__*/React.forwardRef(({\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n bsPrefix,\n className,\n ...props\n}, ref) => {\n const finalClassName = classNames(className, useBootstrapPrefix(bsPrefix, 'carousel-item'));\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: finalClassName\n });\n});\nCarouselItem.displayName = 'CarouselItem';\nexport default CarouselItem;","\"use client\";\n\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport useUpdateEffect from '@restart/hooks/useUpdateEffect';\nimport useCommittedRef from '@restart/hooks/useCommittedRef';\nimport useTimeout from '@restart/hooks/useTimeout';\nimport Anchor from '@restart/ui/Anchor';\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';\nimport { useUncontrolled } from 'uncontrollable';\nimport CarouselCaption from './CarouselCaption';\nimport CarouselItem from './CarouselItem';\nimport { map, forEach } from './ElementChildren';\nimport { useBootstrapPrefix, useIsRTL } from './ThemeProvider';\nimport transitionEndListener from './transitionEndListener';\nimport triggerBrowserReflow from './triggerBrowserReflow';\nimport TransitionWrapper from './TransitionWrapper';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nconst SWIPE_THRESHOLD = 40;\nfunction isVisible(element) {\n if (!element || !element.style || !element.parentNode || !element.parentNode.style) {\n return false;\n }\n const elementStyle = getComputedStyle(element);\n return elementStyle.display !== 'none' && elementStyle.visibility !== 'hidden' && getComputedStyle(element.parentNode).display !== 'none';\n}\nconst Carousel = /*#__PURE__*/React.forwardRef(({\n defaultActiveIndex = 0,\n ...uncontrolledProps\n}, ref) => {\n const {\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n bsPrefix,\n slide = true,\n fade = false,\n controls = true,\n indicators = true,\n indicatorLabels = [],\n activeIndex,\n onSelect,\n onSlide,\n onSlid,\n interval = 5000,\n keyboard = true,\n onKeyDown,\n pause = 'hover',\n onMouseOver,\n onMouseOut,\n wrap = true,\n touch = true,\n onTouchStart,\n onTouchMove,\n onTouchEnd,\n prevIcon = /*#__PURE__*/_jsx(\"span\", {\n \"aria-hidden\": \"true\",\n className: \"carousel-control-prev-icon\"\n }),\n prevLabel = 'Previous',\n nextIcon = /*#__PURE__*/_jsx(\"span\", {\n \"aria-hidden\": \"true\",\n className: \"carousel-control-next-icon\"\n }),\n nextLabel = 'Next',\n variant,\n className,\n children,\n ...props\n } = useUncontrolled({\n defaultActiveIndex,\n ...uncontrolledProps\n }, {\n activeIndex: 'onSelect'\n });\n const prefix = useBootstrapPrefix(bsPrefix, 'carousel');\n const isRTL = useIsRTL();\n const nextDirectionRef = useRef(null);\n const [direction, setDirection] = useState('next');\n const [paused, setPaused] = useState(false);\n const [isSliding, setIsSliding] = useState(false);\n const [renderedActiveIndex, setRenderedActiveIndex] = useState(activeIndex || 0);\n useEffect(() => {\n if (!isSliding && activeIndex !== renderedActiveIndex) {\n if (nextDirectionRef.current) {\n setDirection(nextDirectionRef.current);\n } else {\n setDirection((activeIndex || 0) > renderedActiveIndex ? 'next' : 'prev');\n }\n if (slide) {\n setIsSliding(true);\n }\n setRenderedActiveIndex(activeIndex || 0);\n }\n }, [activeIndex, isSliding, renderedActiveIndex, slide]);\n useEffect(() => {\n if (nextDirectionRef.current) {\n nextDirectionRef.current = null;\n }\n });\n let numChildren = 0;\n let activeChildInterval;\n\n // Iterate to grab all of the children's interval values\n // (and count them, too)\n forEach(children, (child, index) => {\n ++numChildren;\n if (index === activeIndex) {\n activeChildInterval = child.props.interval;\n }\n });\n const activeChildIntervalRef = useCommittedRef(activeChildInterval);\n const prev = useCallback(event => {\n if (isSliding) {\n return;\n }\n let nextActiveIndex = renderedActiveIndex - 1;\n if (nextActiveIndex < 0) {\n if (!wrap) {\n return;\n }\n nextActiveIndex = numChildren - 1;\n }\n nextDirectionRef.current = 'prev';\n onSelect == null ? void 0 : onSelect(nextActiveIndex, event);\n }, [isSliding, renderedActiveIndex, onSelect, wrap, numChildren]);\n\n // This is used in the setInterval, so it should not invalidate.\n const next = useEventCallback(event => {\n if (isSliding) {\n return;\n }\n let nextActiveIndex = renderedActiveIndex + 1;\n if (nextActiveIndex >= numChildren) {\n if (!wrap) {\n return;\n }\n nextActiveIndex = 0;\n }\n nextDirectionRef.current = 'next';\n onSelect == null ? void 0 : onSelect(nextActiveIndex, event);\n });\n const elementRef = useRef();\n useImperativeHandle(ref, () => ({\n element: elementRef.current,\n prev,\n next\n }));\n\n // This is used in the setInterval, so it should not invalidate.\n const nextWhenVisible = useEventCallback(() => {\n if (!document.hidden && isVisible(elementRef.current)) {\n if (isRTL) {\n prev();\n } else {\n next();\n }\n }\n });\n const slideDirection = direction === 'next' ? 'start' : 'end';\n useUpdateEffect(() => {\n if (slide) {\n // These callbacks will be handled by the <Transition> callbacks.\n return;\n }\n onSlide == null ? void 0 : onSlide(renderedActiveIndex, slideDirection);\n onSlid == null ? void 0 : onSlid(renderedActiveIndex, slideDirection);\n }, [renderedActiveIndex]);\n const orderClassName = `${prefix}-item-${direction}`;\n const directionalClassName = `${prefix}-item-${slideDirection}`;\n const handleEnter = useCallback(node => {\n triggerBrowserReflow(node);\n onSlide == null ? void 0 : onSlide(renderedActiveIndex, slideDirection);\n }, [onSlide, renderedActiveIndex, slideDirection]);\n const handleEntered = useCallback(() => {\n setIsSliding(false);\n onSlid == null ? void 0 : onSlid(renderedActiveIndex, slideDirection);\n }, [onSlid, renderedActiveIndex, slideDirection]);\n const handleKeyDown = useCallback(event => {\n if (keyboard && !/input|textarea/i.test(event.target.tagName)) {\n switch (event.key) {\n case 'ArrowLeft':\n event.preventDefault();\n if (isRTL) {\n next(event);\n } else {\n prev(event);\n }\n return;\n case 'ArrowRight':\n event.preventDefault();\n if (isRTL) {\n prev(event);\n } else {\n next(event);\n }\n return;\n default:\n }\n }\n onKeyDown == null ? void 0 : onKeyDown(event);\n }, [keyboard, onKeyDown, prev, next, isRTL]);\n const handleMouseOver = useCallback(event => {\n if (pause === 'hover') {\n setPaused(true);\n }\n onMouseOver == null ? void 0 : onMouseOver(event);\n }, [pause, onMouseOver]);\n const handleMouseOut = useCallback(event => {\n setPaused(false);\n onMouseOut == null ? void 0 : onMouseOut(event);\n }, [onMouseOut]);\n const touchStartXRef = useRef(0);\n const touchDeltaXRef = useRef(0);\n const touchUnpauseTimeout = useTimeout();\n const handleTouchStart = useCallback(event => {\n touchStartXRef.current = event.touches[0].clientX;\n touchDeltaXRef.current = 0;\n if (pause === 'hover') {\n setPaused(true);\n }\n onTouchStart == null ? void 0 : onTouchStart(event);\n }, [pause, onTouchStart]);\n const handleTouchMove = useCallback(event => {\n if (event.touches && event.touches.length > 1) {\n touchDeltaXRef.current = 0;\n } else {\n touchDeltaXRef.current = event.touches[0].clientX - touchStartXRef.current;\n }\n onTouchMove == null ? void 0 : onTouchMove(event);\n }, [onTouchMove]);\n const handleTouchEnd = useCallback(event => {\n if (touch) {\n const touchDeltaX = touchDeltaXRef.current;\n if (Math.abs(touchDeltaX) > SWIPE_THRESHOLD) {\n if (touchDeltaX > 0) {\n prev(event);\n } else {\n next(event);\n }\n }\n }\n if (pause === 'hover') {\n touchUnpauseTimeout.set(() => {\n setPaused(false);\n }, interval || undefined);\n }\n onTouchEnd == null ? void 0 : onTouchEnd(event);\n }, [touch, pause, prev, next, touchUnpauseTimeout, interval, onTouchEnd]);\n const shouldPlay = interval != null && !paused && !isSliding;\n const intervalHandleRef = useRef();\n useEffect(() => {\n var _ref, _activeChildIntervalR;\n if (!shouldPlay) {\n return undefined;\n }\n const nextFunc = isRTL ? prev : next;\n intervalHandleRef.current = window.setInterval(document.visibilityState ? nextWhenVisible : nextFunc, (_ref = (_activeChildIntervalR = activeChildIntervalRef.current) != null ? _activeChildIntervalR : interval) != null ? _ref : undefined);\n return () => {\n if (intervalHandleRef.current !== null) {\n clearInterval(intervalHandleRef.current);\n }\n };\n }, [shouldPlay, prev, next, activeChildIntervalRef, interval, nextWhenVisible, isRTL]);\n const indicatorOnClicks = useMemo(() => indicators && Array.from({\n length: numChildren\n }, (_, index) => event => {\n onSelect == null ? void 0 : onSelect(index, event);\n }), [indicators, numChildren, onSelect]);\n return /*#__PURE__*/_jsxs(Component, {\n ref: elementRef,\n ...props,\n onKeyDown: handleKeyDown,\n onMouseOver: handleMouseOver,\n onMouseOut: handleMouseOut,\n onTouchStart: handleTouchStart,\n onTouchMove: handleTouchMove,\n onTouchEnd: handleTouchEnd,\n className: classNames(className, prefix, slide && 'slide', fade && `${prefix}-fade`, variant && `${prefix}-${variant}`),\n children: [indicators && /*#__PURE__*/_jsx(\"div\", {\n className: `${prefix}-indicators`,\n children: map(children, (_, index) => /*#__PURE__*/_jsx(\"button\", {\n type: \"button\",\n \"data-bs-target\": \"\" // Bootstrap requires this in their css.\n ,\n \"aria-label\": indicatorLabels != null && indicatorLabels.length ? indicatorLabels[index] : `Slide ${index + 1}`,\n className: index === renderedActiveIndex ? 'active' : undefined,\n onClick: indicatorOnClicks ? indicatorOnClicks[index] : undefined,\n \"aria-current\": index === renderedActiveIndex\n }, index))\n }), /*#__PURE__*/_jsx(\"div\", {\n className: `${prefix}-inner`,\n children: map(children, (child, index) => {\n const isActive = index === renderedActiveIndex;\n return slide ? /*#__PURE__*/_jsx(TransitionWrapper, {\n in: isActive,\n onEnter: isActive ? handleEnter : undefined,\n onEntered: isActive ? handleEntered : undefined,\n addEndListener: transitionEndListener,\n children: (status, innerProps) => /*#__PURE__*/React.cloneElement(child, {\n ...innerProps,\n className: classNames(child.props.className, isActive && status !== 'entered' && orderClassName, (status === 'entered' || status === 'exiting') && 'active', (status === 'entering' || status === 'exiting') && directionalClassName)\n })\n }) : ( /*#__PURE__*/React.cloneElement(child, {\n className: classNames(child.props.className, isActive && 'active')\n }));\n })\n }), controls && /*#__PURE__*/_jsxs(_Fragment, {\n children: [(wrap || activeIndex !== 0) && /*#__PURE__*/_jsxs(Anchor, {\n className: `${prefix}-control-prev`,\n onClick: prev,\n children: [prevIcon, prevLabel && /*#__PURE__*/_jsx(\"span\", {\n className: \"visually-hidden\",\n children: prevLabel\n })]\n }), (wrap || activeIndex !== numChildren - 1) && /*#__PURE__*/_jsxs(Anchor, {\n className: `${prefix}-control-next`,\n onClick: next,\n children: [nextIcon, nextLabel && /*#__PURE__*/_jsx(\"span\", {\n className: \"visually-hidden\",\n children: nextLabel\n })]\n })]\n })]\n });\n});\nCarousel.displayName = 'Carousel';\nexport default Object.assign(Carousel, {\n Caption: CarouselCaption,\n Item: CarouselItem\n});","// @flow \r\nimport * as React from 'react';\r\nimport Carousel from 'react-bootstrap/Carousel';\r\nimport WomanPlayingUno from '../assets/img/slideshow_pictures/WomanPlayingUno.jpg';\r\nimport LadiesWithTablet from '../assets/img/slideshow_pictures/extra_large_photos/Ladies_using_tablet_xl.jpg';\r\nimport girlDrawing from '../assets/img/slideshow_pictures/extra_large_photos/girlDrawing.jpg';\r\nimport GirlAndDrawing from '../assets/img/slideshow_pictures/girl_and_drawing.jpg';\r\nimport FatherAndDaughter from '../assets/img/FatherSittingWithDaughters.jpg';\r\nfunction CarouselFade() {\r\n return (\r\n <div className='container slideshow-image'>\r\n <div className=''>\r\n <Carousel fade>\r\n <Carousel.Item>\r\n {/* <ExampleCarouselImage text=\"First slide\" /> */}\r\n <div className=' ' > {/*<img\r\n className='d-block w-100 height-adjust-pic' src={GirlWithFlower} /> \r\n <div className='d-block w-100 p3' > */}<img\r\n className='d-block height-adjust-pic' src={girlDrawing} /> \r\n </div>\r\n <Carousel.Caption>\r\n \r\n {/* <h2 className=\"hero-header\">Building a Stronger Community</h2> */}\r\n </Carousel.Caption>\r\n </Carousel.Item>\r\n <Carousel.Item>\r\n <div ><img title='Ladies with a tablet' className='d-block w-100 height-adjust-pic' src={LadiesWithTablet} /></div>\r\n <Carousel.Caption>\r\n \r\n \r\n </Carousel.Caption>\r\n </Carousel.Item>\r\n <Carousel.Item>\r\n <div ><img title='' className='d-block w-100 height-adjust-pic' src={WomanPlayingUno} /></div>\r\n <Carousel.Caption>\r\n \r\n \r\n </Carousel.Caption>\r\n </Carousel.Item>\r\n <Carousel.Item>\r\n <div ><img className='d-block w-100 height-adjust-pic' src={GirlAndDrawing} /></div>\r\n <Carousel.Caption>\r\n \r\n </Carousel.Caption>\r\n </Carousel.Item>\r\n <Carousel.Item>\r\n <div ><img className='d-block w-100 height-adjust-pic' src={FatherAndDaughter} /></div>\r\n <Carousel.Caption>\r\n \r\n </Carousel.Caption>\r\n </Carousel.Item>\r\n </Carousel>\r\n\r\n </div>\r\n\r\n </div>\r\n );\r\n}\r\n\r\nexport default CarouselFade;\r\n\r\n","import React from \"react\";\r\n// Css\r\nimport \"../assets/styles/pages/style.css\";\r\n// React-Router\r\nimport { Link } from \"react-router-dom\";\r\nimport { HashLink } from 'react-router-hash-link';\r\n//useState\r\nimport { useState } from \"react\";\r\n// Components:\r\nimport RelatedLink from \"../components/RelatedLink\";\r\nimport GrandFatherPlayingWithDaughter from \"../assets/img/GrandFatherPlaywithKids.jpg\";\r\nimport GirlOnABikeWithHerMom from \"../assets/img/GirlRidingBikeLarge.jpg\";\r\nimport Family from \"../assets/img/FamilyWalkingInTheWoods.jpg\";\r\nimport Navbar from \"../layouts/Navbar\";\r\nimport Footer from \"../layouts/Footer\";\r\nimport ScrollToTop from \"../components/ScrollToTop\";\r\nimport CarouselFade from \"../components/CarouselFade\";\r\n\r\nconst Home = () => {\r\n\r\n const [searchInput, setSearchInput] = useState(\"\");\r\n const handleChange = (e) => {\r\n e.preventDefault();\r\n setSearchInput(e.target.value);\r\n };\r\n const handleKeyDown = (event) => {\r\n if (event.key === 'Enter') {\r\n searchForService();\r\n }\r\n }\r\n const searchForService = () => {\r\n window.open(\"//\" + \"www.google.com/search?q=ky_dbhdid_\" + searchInput, '_blank');\r\n }\r\n return (\r\n <>\r\n <Navbar iD={\"1\"} />\r\n {/* Search Bar */}\r\n <article className=\"container wrapper slider\">\r\n <CarouselFade />\r\n </article>\r\n <div className=\"outerContainer bodyRow\">\r\n <h2 title=\"Building a Stronger Community\" className=\"hero-header\">Building a Stronger Community</h2>\r\n\r\n <div className=\"mainContentArea mainContent\" id=\"bodyContent\">\r\n <div>\r\n {/* <DepartmentHeader header=\"Department for Behavioral Health, Developmental and Intellectual Disabilities\" /> */}\r\n <div className=\"container\">\r\n <div className='bodyText'>\r\n <div className=\"subTitle \">\r\n {/* <h1> Who We Are?</h1> */}\r\n <div className=\"container overlap-box\">\r\n <div className=\"clearfix\">\r\n <img src={GrandFatherPlayingWithDaughter} className=\"container col-md-6 float-md-end mb-3 ms-md-3 Home-Image-Top-Box\" alt=\"...\" />\r\n\r\n <p title=\"Thank you for visiting the Kentucky Department for Behavioral Health, Developmental, and Intellectual Disabilities home page. The Department is responsible for administering state and federally funded mental health, substance use disorder, developmental, and intellectual disability programs and services throughout the Commonwealth.\">\r\n Thank you for visiting the Kentucky Department for Behavioral Health, Developmental, and Intellectual Disabilities home page. The Department is responsible for administering state and federally funded mental health, substance use disorder, developmental, and intellectual disability programs and services throughout the Commonwealth.\r\n </p>\r\n {/* <p>\r\n Promote health and well-being by facilitating recovery for people whose lives have been affected by mental illness and substance use, supporting people with intellectual or other developmental disabilities, and building resilience for all.\r\n </p> */}\r\n <p title=\"Our mission is to promote health, well-being, and resilience for all, facilitate recovery for people affected by mental illness and substance use, and support people with intellectual or other developmental disabilities.\">\r\n Our mission is to promote health, well-being, and resilience for all, facilitate recovery for people affected by mental illness and substance use, and support people with intellectual or other developmental disabilities.\r\n </p>\r\n\r\n <p title=\"Our vision is that all Kentuckians have access to quality services and supports to live full and healthy lives.\">\r\n Our vision is that all Kentuckians have access to quality services and supports to live full and healthy lives.\r\n </p>\r\n\r\n {/* <p>\r\n All Kentuckians have access to quality services and supports to live full and healthy lives.\r\n </p> */}\r\n </div>\r\n\r\n </div>\r\n <div className=\" mb-4 value-card-home\" >\r\n <div className=\"row g-3\">\r\n <div className=\"col-md-4\">\r\n <img src={GirlOnABikeWithHerMom} className=\"img-fluid rounded-start second-box-image \" alt=\"...\" />\r\n <img src={Family} className=\"img-fluid rounded-start second-box-image \" alt=\"...\" />\r\n </div>\r\n <div class=\"col-md-8\">\r\n <div class=\"card-body\">\r\n <h4 title=\"Values\" class=\"card-title values-title\">Values</h4>\r\n <p class=\"card-text card-text-body\">\r\n\r\n <ul>\r\n\r\n <li title=\"Collaboration. We believe collaboration is essential to achieve our work.\"><b>C</b>ollaboration. We believe collaboration is essential to achieve our work.</li>\r\n\r\n <li title=\"Choice. We believe all people should have the fullest possible control over their own lives.\"><b>C</b>hoice. We believe all people should have the fullest possible control over their own lives.</li>\r\n <li title=\"Respect. We believe all people are valuable and have the right to lead meaningful, productive lives.\"><b>R</b>espect. We believe all people are valuable and have the right to lead meaningful, productive lives.</li>\r\n <li title=\"Equity. We believe in equity and eradication of disparities to ensure all people have access to quality services.\"><b>E</b>quity. We believe in equity and eradication of disparities to ensure all people have access to quality services.</li>\r\n <li title=\"Advocacy. We believe in supporting all people to advocate for themselves and others; diverse voices should be sought, heard, and considered in making decisions.\"><b>A</b>dvocacy. We believe in supporting all people to advocate for themselves and others; diverse voices should be sought, heard, and considered in making decisions.</li>\r\n <li title=\"Trauma-Informed & Resilience-Oriented Approaches. We believe in trauma-informed systems that promote individual, community and organizational resilience.\"><b>T</b>rauma-Informed & Resilience-Oriented Approaches. We believe in trauma-informed systems that promote individual, community and organizational resilience.</li>\r\n <li title=\"Excellence. We believe that service is collaborative, represents consumer needs, assures optimal use of public resources, and achieves the highest possible standard.\"><b>E</b>xcellence. We believe that service is collaborative, represents consumer needs, assures optimal use of public resources, and achieves the highest possible standard.</li>\r\n </ul>\r\n <div className=\"hero\" id=\"mysearch\">\r\n {/* <h1 className=\"pageTitle sr-only\">DBHDID Homepage</h1> */}\r\n <div className=\"container\">\r\n <div className=\"wellness\">\r\n <h2 title=\"How can we help?\" className=\"search-text\">How can we help?</h2>\r\n <div className=\"input-group home-search\">\r\n <input className=\"form-control\" title=\"Search for...\" onKeyDown={handleKeyDown} onChange={handleChange} value={searchInput} placeholder=\"Search for...\" type=\"text\" id=\"homeSearchInput\" />\r\n <span className=\"input-group-btn\">\r\n <button className=\"btn btn-primary\" id=\"homeSearchBtn\" title=\"Search\" onClick={searchForService} type=\"button\">Search</button>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n {/* Quick Tabs */}\r\n <div id=\"toplinks\" className=\"notices\">\r\n <div className=\"container\">\r\n <div className=\"homepage-quick\">\r\n {/* <h2 className=\"helper-title\">\r\n Need Help?\r\n </h2> */}\r\n <div className=\"row\">\r\n {/* <div className=\"col-sm-6 col-md-3\">\r\n <div className=\"homepage-quick-cta\">\r\n <h2>Report Suspected Abuse, Neglect and Exploitation</h2>\r\n <ul className=\"no-bullet\">\r\n \r\n <li>\r\n <a className=\"quick-links\" href=\"https://chfs.ky.gov/agencies/dcbs/dpp/apb/Pages/default.aspx\">Adult Abuse</a>\r\n </li>\r\n <li>\r\n <a className=\"quick-links\" href=\"https://chfs.ky.gov/agencies/dcbs/dpp/cpb/Pages/default.aspx\">Child Abuse</a>\r\n </li>\r\n \r\n </ul>\r\n </div>\r\n </div> */}\r\n <div className=\"col-sm-6 col-md-3\">\r\n <div className=\"homepage-quick-cta\">\r\n <h2 title=\"Programs and Services\">Programs and Services</h2>\r\n <ul className=\"no-bullet\" >\r\n <li>\r\n <Link className=\"quick-links\" to={\"mh/adultmh\"}>\r\n <div title=\"Adult Mental Health Treatment and Recovery\">Adult Mental Health Treatment and Recovery</div>\r\n </Link>\r\n </li>\r\n <li>\r\n <Link className=\"quick-links\" to={\"mh/children\"}>\r\n <div title=\"Children’s Behavioral Health and Recovery Services\">Children’s Mental Health and Recovery Services</div>\r\n </Link>\r\n </li>\r\n <li>\r\n <Link className=\"quick-links\" to={\"/ddid\"}>\r\n <div title=\"Developmental and Intellectual Disabilities\">Developmental and Intellectual Disabilities</div>\r\n </Link>\r\n </li>\r\n <li>\r\n <Link className=\"quick-links\" to={\"mh/ppp\"}>\r\n <div title=\"Mental Health Promotion, Prevention and Preparedness\">Mental Health Promotion, Prevention and Preparedness</div>\r\n </Link>\r\n </li>\r\n <li>\r\n <Link className=\"quick-links\" to={\"/sud\"}>\r\n <div title=\"Substance Use Disorder Treatment and Recovery\">Substance Use Disorder Treatment and Recovery</div>\r\n </Link>\r\n </li>\r\n <li>\r\n <Link className=\"quick-links\" to={\"/providerDirectory\"}>\r\n <div title=\"AODE Provider listing\">AODE Provider listing</div>\r\n </Link>\r\n </li>\r\n\r\n\r\n <li>\r\n <Link className=\"quick-links\" to={\"/sud/bhpp\"}>\r\n <div title=\"Substance Use Prevention\">Substance Use Prevention</div>\r\n </Link>\r\n </li>\r\n {/* <li>\r\n <Link className=\"quick-links\" to={\"/cmhc\"}>\r\n <div>Community Mental Health Centers</div>\r\n </Link>\r\n </li> */}\r\n {/* <li>\r\n <Link className=\"quick-links\" to={\"/dpi\"}>\r\n <div>Program Integrity </div>\r\n </Link>\r\n </li> */}\r\n {/* <li>\r\n <Link className=\"quick-links\" to={\"/kbhdid/ccc.aspx\"}>\r\n <div>Commissions, Councils, and Committees </div>\r\n </Link>\r\n </li> */}\r\n {/* <li>\r\n <a className=\"quick-links\" href=\"https://ccdd.ky.gov/Pages/index.aspx\">\r\n <div>Commonwealth Council on Developmental Disabilities</div>\r\n </a>\r\n </li> */}\r\n {/* <li>\r\n <Link className=\"quick-links\" to={\"/facilities\"}>\r\n <div>Facilites</div>\r\n </Link>\r\n </li> */}\r\n </ul>\r\n\r\n </div>\r\n </div>\r\n <div className=\"col-sm-6 col-md-3\">\r\n <div className=\"homepage-quick-cta\">\r\n <h2 title=\"Crisis Numbers and Hotlines\">Crisis Numbers and Hotlines</h2>\r\n <ul className=\"no-bullet\">\r\n {/* <li >\r\n <a className=\"quick-links\" href=\"https://dbhdid.ky.gov/crisisnos.aspx\">Crisis Lines by County</a>\r\n </li> */}\r\n {/* <li>\r\n <Link className=\"quick-links\" to={\"/hotlines\"}>National Hotlines and Other Contacts</Link>\r\n </li> */}\r\n <li>\r\n <a className=\"quick-links\" title=\"Suicide Prevention Hotline\" href=\"https://988lifeline.org/\">Suicide Prevention Hotline</a>\r\n </li>\r\n <li>\r\n <a className=\"quick-links\" title=\"County Contacts\" href=\"/crisisnos\">County Contacts</a>\r\n </li>\r\n <li>\r\n <a className=\"quick-links\" title=\"988 Suicide & Crisis\" href=\"https://988lifeline.org/\">988 Suicide & Crisis</a>\r\n </li>\r\n <li>\r\n <a className=\"quick-links\" title=\"Hotlines/ Other Contacts Lifeline\" href=\"https://dbhdid.ky.gov/documents/ddid/HotlinesAndOtherContacts.pdf\">Hotlines/ Other Contacts Lifeline</a>\r\n </li>\r\n <li>\r\n <a className=\"quick-links\" title=\"National Domestic Violence Hotline\" href=\"https://www.thehotline.org/\">National Domestic Violence Hotline</a>\r\n </li>\r\n <li>\r\n <a className=\"quick-links\" title=\"National Sexual Assault Hotline\" href=\"https://hotline.rainn.org/online\">National Sexual Assault Hotline</a>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div className=\" col-sm-6 col-md-3\">\r\n <div className=\"homepage-quick-cta\">\r\n <h2 title=\"I am looking for...\">I am looking for...</h2>\r\n <ul className=\"no-bullet\">\r\n {/* <li>\r\n <Link className=\"quick-links\" to={\"/kdbhdid/case-management\"} >Case Management</Link>\r\n </li>\r\n <li>\r\n <Link className=\"quick-links\" to={\"/dbh/dhhs\"}>Deaf and Hard of Hearing Services</Link>\r\n </li>\r\n <li>\r\n <Link className=\"quick-links\" to={\"/afm\"}>Division of Administration and Financial Management</Link>\r\n </li>\r\n <li>\r\n <Link className=\"quick-links\" to={\"/dbh\"}>Division of Behavioral Health</Link>\r\n </li>\r\n <li>\r\n <Link className=\"quick-links\" to={\"/ddid\"}>Division of Developmental and Intellectual Disabilities</Link>\r\n </li> */}\r\n <li>\r\n <Link className=\"quick-links\" title=\"Crisis Intervention Teams\" to={\"/crisis\"}>Crisis Intervention Teams</Link>\r\n </li>\r\n\r\n <li>\r\n <a className=\"quick-links\" title=\"Hart-Supported Living\" href=\"https://chfs.ky.gov/agencies/dail/Pages/hslp.aspx\">Hart-Supported Living</a>\r\n </li>\r\n <li>\r\n <Link className=\"quick-links\" title=\"Local Resources\" to={\"https://providerdirectory.dbhdid.ky.gov/\"}>Local Resources</Link>\r\n </li>\r\n <li>\r\n <Link className=\"quick-links\" title=\"Respite\" to={\"/kdbhdid/respite\"}>Respite</Link>\r\n </li>\r\n <li>\r\n <Link className=\"quick-links\" title=\"Suicide Prevention\" to={\"/mh/sp\"}>Suicide Prevention</Link>\r\n </li>\r\n <li>\r\n <Link className=\"quick-links\" title=\"Training Information\" to={\"/calendar\"}>Training Information</Link>\r\n </li>\r\n\r\n <li><a className=\"quick-links\" href=\"https://veterans.ky.gov/Pages/index.aspx?gad_source=1&gclid=Cj0KCQjwzZmwBhD8ARIsAH4v1gXDCNCLzk6IrBtm276qKdLGZv1SjncWn5M4__0oDkNlyqN2Dfov_T8aAnVrEALw_wcB\">ZeroV</a> </li>\r\n <li><a className=\"quick-links\" href=\"/mh/soca\">System of Care Academy</a></li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div className=\"col-sm-6 col-md-3\">\r\n <div className=\"homepage-quick-cta\">\r\n <h2 title=\"I need to...\">I need to...</h2>\r\n <ul className=\"no-bullet\">\r\n <li>\r\n <Link className=\"quick-links\" title=\"Find services for someone with an intellectual or developmental disability\" to={\"/ddid\"}>Find services for someone with an intellectual or developmental disability</Link>\r\n </li>\r\n <li>\r\n <Link className=\"quick-links\" title=\"Find services for someone with a substance use disorder\" to={\"/sud\"}>Find services for someone with a substance use disorder</Link>\r\n </li>\r\n <li>\r\n <Link className=\"quick-links\" title=\"Find services for someone with mental health issues\" to={\"/mh\"}>Find services for someone with mental health issues</Link>\r\n </li>\r\n <li>\r\n <Link className=\"quick-links\" title=\"Find services for eating disorders\" to={\"/mh/kedc\"}>Find services for eating disorders</Link>\r\n </li>\r\n <li>\r\n <Link className=\"quick-links\" title=\"Apply for the SCL or Michelle P Waiver\" to={\"/ddid/scl-forms-general\"}>Apply for the SCL or Michelle P Waiver</Link>\r\n </li>\r\n <li>\r\n <Link className=\"quick-links\" title=\"Find a provider for substance use disorder treatment\" to={\"https://providerdirectory.dbhdid.ky.gov/\"}>Find a provider for substance use disorder treatment</Link>\r\n </li>\r\n <li>\r\n <Link className=\"quick-links\" title=\"Find a provider for mental health services\" to={\"https://providerdirectory.dbhdid.ky.gov/\"}>Find a provider for mental health services</Link>\r\n </li>\r\n {/* <li>\r\n <Link className=\"quick-links\" to={\"/Contact\"}>Report a complaint</Link>\r\n </li> */}\r\n <li>\r\n <Link className=\"quick-links\" title=\"Find help for my crisis\" to={\"/crisisnos\"}>Find help for my crisis</Link>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-sm-6 col-md-3\">\r\n <div className=\"panel panel-default\">\r\n <h2 className=\"panel-heading\" title=\"How do I?\">How do I? </h2>\r\n <div className=\"dfwp-column\">\r\n <div className=\"slm-layout-main groupmaker\">\r\n <ul className=\"no-bullet\">\r\n {/* \r\n <li><a className=\"quick-links\" href=\"https://prd.webapps.chfs.ky.gov/kyfaces\">Become a foster parent</a> </li> */}\r\n {/* <li><a className=\"quick-links\" href=\"https://chfs.ky.gov/agencies/dcbs/dcc/Pages/ccap.aspx\">Apply for child care assistance</a> </li> */}\r\n <li><HashLink className=\"quick-links\" title=\"Become a Peer Support Specialist\" to=\"/dpi/cap#How to Become a Peer Support Specialist (PSS) in Kentucky\" smooth>Become a Peer Support Specialist</HashLink> </li>\r\n <li><HashLink className=\"quick-links\" title=\"Become a Targeted Case Manager\" to=\"/dpi/cap#How to Become a Targeted Case Manager (TCM) in Kentucky\" smooth>Become a Targeted Case Manager</HashLink> </li>\r\n <li><HashLink className=\"quick-links\" title=\"Become a Community Support Associate\" to=\"/dpi/cap#How to Become a Community Support Associate (CSA) in Kentucky\" smooth>Become a Community Support Associate</HashLink> </li>\r\n <li><Link className=\"quick-links\" title=\"Become an Approved Training Provider for TCM\" to=\"/mh/tcm\">Become an Approved Training Provider for TCM</Link> </li>\r\n <li><Link className=\"quick-links\" title=\"Become an Approved Training Provider for CSA\" to=\"/mh/csa\">Become an Approved Training Provider for CSA</Link> </li>\r\n <li><Link className=\"quick-links\" title=\"Become an Approved Training Provider for PSS\" to=\"/mh/pss\">Become an Approved Training Provider for PSS</Link> </li>\r\n <li><Link className=\"quick-links\" title=\"Become an SCL Provider\" to=\"/ddid/scl-newprovider\">Become an SCL Provider</Link> </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"col-sm-6 col-md-3\">\r\n <div className=\"panel panel-default\">\r\n <h2 title=\"Connect with Cabinet for Health and Family Services\" className=\"panel-heading\">Connect with CHFS</h2>\r\n <div className=\"list-group\">\r\n <div className=\"dfwp-column\">\r\n <div className=\"slm-layout-main groupmarker\">\r\n <ul className=\"no-bullet\">\r\n <li><a className=\"quick-links\" title=\"Cabinet for Health and Family Services Homepage\" href=\"https://chfs.ky.gov/Pages/index.aspx\">CHFS HOME</a> </li>\r\n <li><a className=\"quick-links\" title=\"Department/Agencies\" href=\"https://chfs.ky.gov/agencies/Pages/default.aspx\">Department/Agencies</a> </li>\r\n <li><a className=\"quick-links\" title=\"Site Map\" href=\"https://chfs.ky.gov/Pages/sitemap.aspx\">Site Map</a> </li>\r\n <li><a className=\"quick-links\" title=\"Contact\" href=\"https://chfs.ky.gov/Pages/contact.aspx\">Contact</a> </li>\r\n <li><a className=\"quick-links\" title=\"Kentucky Opioid Response Effort (KORE)\" href=\"https://www.chfs.ky.gov/agencies/dbhdid/Pages/kore.aspx\">KORE</a> </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n {/* <div className=\"col-sm-6 col-md-3\">\r\n <div className=\"panel panel-default\">\r\n <h4 className=\"panel-heading\">Kentucky Department of Veterans Affairs</h4>\r\n <div className=\"list-group\">\r\n <div className=\"dfwp-column\">\r\n <div className=\"slm-layout-main groupmarker\">\r\n <ul className=\"no-bullet\">\r\n <li><a className=\"quick-links\" href=\"https://chfs.ky.gov/Pages/index.aspx\">KDVA Homepage</a> </li>\r\n <li><a className=\"quick-links\" href=\"https://veterans.ky.gov/Pages/contact.aspx\">Contact</a> </li>\r\n <li><a className=\"quick-links\" href=\"https://veterans.ky.gov/Pages/Calendar.aspx\">Calendar</a> </li>\r\n <li><a className=\"quick-links\" href=\"https://veterans.ky.gov/Benefits/Pages/default.aspx\">Benefits</a> </li>\r\n\r\n\r\n </ul>\r\n\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n </div> */}\r\n <div className=\"col-lg-6 col-md-3\">\r\n <RelatedLink pageID={\"1\"} />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <ScrollToTop />\r\n <Footer />\r\n </>\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n )\r\n}\r\n\r\nexport default Home;","import React from \"react\";\r\nimport { useEffect } from \"react\";\r\nimport DepartmentHeader from \"../components/DepartmentHeader\";\r\nimport Navbar from \"../layouts/Navbar\";\r\nimport Breadcrumbs from \"../components/buttons/Breadcrumbs\";\r\nimport Footer from \"../layouts/Footer\";\r\nimport currentPageStore from \"../utils/stores/currentPageStore\";\r\n\r\n\r\n\r\nfunction Calendar({ pageHeader }) {\r\n \r\n const setCurrentPage = currentPageStore((state) => state.setCurrentPage);\r\n\r\n useEffect(() => {\r\n setCurrentPage(pageHeader);\r\n // console.log(pageHeader)\r\n }, [pageHeader])\r\n return (\r\n\r\n <>\r\n <Navbar iD={1} />\r\n {/* // Tockify Calendar Application */}\r\n <div className=\"central-nav-container wrapper \">\r\n <Breadcrumbs />\r\n <DepartmentHeader header=\"Calendar of Events\" />\r\n <div data-tockify-component=\"calendar\" data-tockify-calendar=\"dbhdid\"></div>\r\n </div>\r\n <Footer />\r\n </>\r\n\r\n )\r\n}\r\n\r\nexport default Calendar;","import * as React from 'react';\nexport class BsPrefixComponent extends React.Component {}\n\n// Need to use this instead of typeof Component to get proper type checking.\n\nexport function getOverlayDirection(placement, isRTL) {\n let bsDirection = placement;\n if (placement === 'left') {\n bsDirection = isRTL ? 'end' : 'start';\n } else if (placement === 'right') {\n bsDirection = isRTL ? 'start' : 'end';\n }\n return bsDirection;\n}","export default function getInitialPopperStyles(position = 'absolute') {\n return {\n position,\n top: '0',\n left: '0',\n opacity: '0',\n pointerEvents: 'none'\n };\n}","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix, useIsRTL } from './ThemeProvider';\nimport { getOverlayDirection } from './helpers';\nimport getInitialPopperStyles from './getInitialPopperStyles';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst Tooltip = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n placement = 'right',\n className,\n style,\n children,\n arrowProps,\n hasDoneInitialMeasure,\n popper,\n show,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'tooltip');\n const isRTL = useIsRTL();\n const [primaryPlacement] = (placement == null ? void 0 : placement.split('-')) || [];\n const bsDirection = getOverlayDirection(primaryPlacement, isRTL);\n let computedStyle = style;\n if (show && !hasDoneInitialMeasure) {\n computedStyle = {\n ...style,\n ...getInitialPopperStyles(popper == null ? void 0 : popper.strategy)\n };\n }\n return /*#__PURE__*/_jsxs(\"div\", {\n ref: ref,\n style: computedStyle,\n role: \"tooltip\",\n \"x-placement\": primaryPlacement,\n className: classNames(className, bsPrefix, `bs-tooltip-${bsDirection}`),\n ...props,\n children: [/*#__PURE__*/_jsx(\"div\", {\n className: \"tooltip-arrow\",\n ...arrowProps\n }), /*#__PURE__*/_jsx(\"div\", {\n className: `${bsPrefix}-inner`,\n children: children\n })]\n });\n});\nTooltip.displayName = 'Tooltip';\nexport default Object.assign(Tooltip, {\n // Default tooltip offset.\n // https://github.com/twbs/bootstrap/blob/beca2a6c7f6bc88b6449339fc76edcda832c59e5/js/src/tooltip.js#L65\n TOOLTIP_OFFSET: [0, 6]\n});","var has = Object.prototype.hasOwnProperty;\n\nfunction find(iter, tar, key) {\n\tfor (key of iter.keys()) {\n\t\tif (dequal(key, tar)) return key;\n\t}\n}\n\nexport function dequal(foo, bar) {\n\tvar ctor, len, tmp;\n\tif (foo === bar) return true;\n\n\tif (foo && bar && (ctor=foo.constructor) === bar.constructor) {\n\t\tif (ctor === Date) return foo.getTime() === bar.getTime();\n\t\tif (ctor === RegExp) return foo.toString() === bar.toString();\n\n\t\tif (ctor === Array) {\n\t\t\tif ((len=foo.length) === bar.length) {\n\t\t\t\twhile (len-- && dequal(foo[len], bar[len]));\n\t\t\t}\n\t\t\treturn len === -1;\n\t\t}\n\n\t\tif (ctor === Set) {\n\t\t\tif (foo.size !== bar.size) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tfor (len of foo) {\n\t\t\t\ttmp = len;\n\t\t\t\tif (tmp && typeof tmp === 'object') {\n\t\t\t\t\ttmp = find(bar, tmp);\n\t\t\t\t\tif (!tmp) return false;\n\t\t\t\t}\n\t\t\t\tif (!bar.has(tmp)) return false;\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\n\t\tif (ctor === Map) {\n\t\t\tif (foo.size !== bar.size) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tfor (len of foo) {\n\t\t\t\ttmp = len[0];\n\t\t\t\tif (tmp && typeof tmp === 'object') {\n\t\t\t\t\ttmp = find(bar, tmp);\n\t\t\t\t\tif (!tmp) return false;\n\t\t\t\t}\n\t\t\t\tif (!dequal(len[1], bar.get(tmp))) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\n\t\tif (ctor === ArrayBuffer) {\n\t\t\tfoo = new Uint8Array(foo);\n\t\t\tbar = new Uint8Array(bar);\n\t\t} else if (ctor === DataView) {\n\t\t\tif ((len=foo.byteLength) === bar.byteLength) {\n\t\t\t\twhile (len-- && foo.getInt8(len) === bar.getInt8(len));\n\t\t\t}\n\t\t\treturn len === -1;\n\t\t}\n\n\t\tif (ArrayBuffer.isView(foo)) {\n\t\t\tif ((len=foo.byteLength) === bar.byteLength) {\n\t\t\t\twhile (len-- && foo[len] === bar[len]);\n\t\t\t}\n\t\t\treturn len === -1;\n\t\t}\n\n\t\tif (!ctor || typeof foo === 'object') {\n\t\t\tlen = 0;\n\t\t\tfor (ctor in foo) {\n\t\t\t\tif (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;\n\t\t\t\tif (!(ctor in bar) || !dequal(foo[ctor], bar[ctor])) return false;\n\t\t\t}\n\t\t\treturn Object.keys(bar).length === len;\n\t\t}\n\t}\n\n\treturn foo !== foo && bar !== bar;\n}\n","import { useCallback } from 'react';\nimport useMounted from './useMounted';\n\n/**\n * `useSafeState` takes the return value of a `useState` hook and wraps the\n * setter to prevent updates onces the component has unmounted. Can used\n * with `useMergeState` and `useStateAsync` as well\n *\n * @param state The return value of a useStateHook\n *\n * ```ts\n * const [show, setShow] = useSafeState(useState(true));\n * ```\n */\n\nfunction useSafeState(state) {\n const isMounted = useMounted();\n return [state[0], useCallback(nextState => {\n if (!isMounted()) return;\n return state[1](nextState);\n }, [isMounted, state[1]])];\n}\nexport default useSafeState;","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref, win) {\n var x = _ref.x,\n y = _ref.y;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }, getWindow(popper)) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on <html>\n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n });\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref) {\n var name = _ref.name,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n effect = _ref.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import arrow from '@popperjs/core/lib/modifiers/arrow';\nimport computeStyles from '@popperjs/core/lib/modifiers/computeStyles';\nimport eventListeners from '@popperjs/core/lib/modifiers/eventListeners';\nimport flip from '@popperjs/core/lib/modifiers/flip';\nimport hide from '@popperjs/core/lib/modifiers/hide';\nimport offset from '@popperjs/core/lib/modifiers/offset';\nimport popperOffsets from '@popperjs/core/lib/modifiers/popperOffsets';\nimport preventOverflow from '@popperjs/core/lib/modifiers/preventOverflow';\nimport { placements } from '@popperjs/core/lib/enums';\nimport { popperGenerator } from '@popperjs/core/lib/popper-base';\n\n// For the common JS build we will turn this file into a bundle with no imports.\n// This is b/c the Popper lib is all esm files, and would break in a common js only environment\nexport const createPopper = popperGenerator({\n defaultModifiers: [hide, popperOffsets, computeStyles, eventListeners, offset, flip, preventOverflow, arrow]\n});\nexport { placements };","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","const _excluded = [\"enabled\", \"placement\", \"strategy\", \"modifiers\"];\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { dequal } from 'dequal';\nimport useSafeState from '@restart/hooks/useSafeState';\nimport { createPopper } from './popper';\nconst disabledApplyStylesModifier = {\n name: 'applyStyles',\n enabled: false,\n phase: 'afterWrite',\n fn: () => undefined\n};\n\n// until docjs supports type exports...\n\nconst ariaDescribedByModifier = {\n name: 'ariaDescribedBy',\n enabled: true,\n phase: 'afterWrite',\n effect: ({\n state\n }) => () => {\n const {\n reference,\n popper\n } = state.elements;\n if ('removeAttribute' in reference) {\n const ids = (reference.getAttribute('aria-describedby') || '').split(',').filter(id => id.trim() !== popper.id);\n if (!ids.length) reference.removeAttribute('aria-describedby');else reference.setAttribute('aria-describedby', ids.join(','));\n }\n },\n fn: ({\n state\n }) => {\n var _popper$getAttribute;\n const {\n popper,\n reference\n } = state.elements;\n const role = (_popper$getAttribute = popper.getAttribute('role')) == null ? void 0 : _popper$getAttribute.toLowerCase();\n if (popper.id && role === 'tooltip' && 'setAttribute' in reference) {\n const ids = reference.getAttribute('aria-describedby');\n if (ids && ids.split(',').indexOf(popper.id) !== -1) {\n return;\n }\n reference.setAttribute('aria-describedby', ids ? `${ids},${popper.id}` : popper.id);\n }\n }\n};\nconst EMPTY_MODIFIERS = [];\n/**\n * Position an element relative some reference element using Popper.js\n *\n * @param referenceElement\n * @param popperElement\n * @param {object} options\n * @param {object=} options.modifiers Popper.js modifiers\n * @param {boolean=} options.enabled toggle the popper functionality on/off\n * @param {string=} options.placement The popper element placement relative to the reference element\n * @param {string=} options.strategy the positioning strategy\n * @param {function=} options.onCreate called when the popper is created\n * @param {function=} options.onUpdate called when the popper is updated\n *\n * @returns {UsePopperState} The popper state\n */\nfunction usePopper(referenceElement, popperElement, _ref = {}) {\n let {\n enabled = true,\n placement = 'bottom',\n strategy = 'absolute',\n modifiers = EMPTY_MODIFIERS\n } = _ref,\n config = _objectWithoutPropertiesLoose(_ref, _excluded);\n const prevModifiers = useRef(modifiers);\n const popperInstanceRef = useRef();\n const update = useCallback(() => {\n var _popperInstanceRef$cu;\n (_popperInstanceRef$cu = popperInstanceRef.current) == null ? void 0 : _popperInstanceRef$cu.update();\n }, []);\n const forceUpdate = useCallback(() => {\n var _popperInstanceRef$cu2;\n (_popperInstanceRef$cu2 = popperInstanceRef.current) == null ? void 0 : _popperInstanceRef$cu2.forceUpdate();\n }, []);\n const [popperState, setState] = useSafeState(useState({\n placement,\n update,\n forceUpdate,\n attributes: {},\n styles: {\n popper: {},\n arrow: {}\n }\n }));\n const updateModifier = useMemo(() => ({\n name: 'updateStateModifier',\n enabled: true,\n phase: 'write',\n requires: ['computeStyles'],\n fn: ({\n state\n }) => {\n const styles = {};\n const attributes = {};\n Object.keys(state.elements).forEach(element => {\n styles[element] = state.styles[element];\n attributes[element] = state.attributes[element];\n });\n setState({\n state,\n styles,\n attributes,\n update,\n forceUpdate,\n placement: state.placement\n });\n }\n }), [update, forceUpdate, setState]);\n const nextModifiers = useMemo(() => {\n if (!dequal(prevModifiers.current, modifiers)) {\n prevModifiers.current = modifiers;\n }\n return prevModifiers.current;\n }, [modifiers]);\n useEffect(() => {\n if (!popperInstanceRef.current || !enabled) return;\n popperInstanceRef.current.setOptions({\n placement,\n strategy,\n modifiers: [...nextModifiers, updateModifier, disabledApplyStylesModifier]\n });\n }, [strategy, placement, updateModifier, enabled, nextModifiers]);\n useEffect(() => {\n if (!enabled || referenceElement == null || popperElement == null) {\n return undefined;\n }\n popperInstanceRef.current = createPopper(referenceElement, popperElement, Object.assign({}, config, {\n placement,\n strategy,\n modifiers: [...nextModifiers, ariaDescribedByModifier, updateModifier]\n }));\n return () => {\n if (popperInstanceRef.current != null) {\n popperInstanceRef.current.destroy();\n popperInstanceRef.current = undefined;\n setState(s => Object.assign({}, s, {\n attributes: {},\n styles: {\n popper: {}\n }\n }));\n }\n };\n // This is only run once to _create_ the popper\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [enabled, referenceElement, popperElement]);\n return popperState;\n}\nexport default usePopper;","import contains from 'dom-helpers/contains';\nimport listen from 'dom-helpers/listen';\nimport ownerDocument from 'dom-helpers/ownerDocument';\nimport { useCallback, useEffect, useRef } from 'react';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport warning from 'warning';\nconst noop = () => {};\nfunction isLeftClickEvent(event) {\n return event.button === 0;\n}\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\nexport const getRefTarget = ref => ref && ('current' in ref ? ref.current : ref);\nconst InitialTriggerEvents = {\n click: 'mousedown',\n mouseup: 'mousedown',\n pointerup: 'pointerdown'\n};\n\n/**\n * The `useClickOutside` hook registers your callback on the document that fires\n * when a pointer event is registered outside of the provided ref or element.\n *\n * @param {Ref<HTMLElement>| HTMLElement} ref The element boundary\n * @param {function} onClickOutside\n * @param {object=} options\n * @param {boolean=} options.disabled\n * @param {string=} options.clickTrigger The DOM event name (click, mousedown, etc) to attach listeners on\n */\nfunction useClickOutside(ref, onClickOutside = noop, {\n disabled,\n clickTrigger = 'click'\n} = {}) {\n const preventMouseClickOutsideRef = useRef(false);\n const waitingForTrigger = useRef(false);\n const handleMouseCapture = useCallback(e => {\n const currentTarget = getRefTarget(ref);\n warning(!!currentTarget, 'ClickOutside captured a close event but does not have a ref to compare it to. ' + 'useClickOutside(), should be passed a ref that resolves to a DOM node');\n preventMouseClickOutsideRef.current = !currentTarget || isModifiedEvent(e) || !isLeftClickEvent(e) || !!contains(currentTarget, e.target) || waitingForTrigger.current;\n waitingForTrigger.current = false;\n }, [ref]);\n const handleInitialMouse = useEventCallback(e => {\n const currentTarget = getRefTarget(ref);\n if (currentTarget && contains(currentTarget, e.target)) {\n waitingForTrigger.current = true;\n }\n });\n const handleMouse = useEventCallback(e => {\n if (!preventMouseClickOutsideRef.current) {\n onClickOutside(e);\n }\n });\n useEffect(() => {\n var _ownerWindow$event, _ownerWindow$parent;\n if (disabled || ref == null) return undefined;\n const doc = ownerDocument(getRefTarget(ref));\n const ownerWindow = doc.defaultView || window;\n\n // Store the current event to avoid triggering handlers immediately\n // For things rendered in an iframe, the event might originate on the parent window\n // so we should fall back to that global event if the local one doesn't exist\n // https://github.com/facebook/react/issues/20074\n let currentEvent = (_ownerWindow$event = ownerWindow.event) != null ? _ownerWindow$event : (_ownerWindow$parent = ownerWindow.parent) == null ? void 0 : _ownerWindow$parent.event;\n let removeInitialTriggerListener = null;\n if (InitialTriggerEvents[clickTrigger]) {\n removeInitialTriggerListener = listen(doc, InitialTriggerEvents[clickTrigger], handleInitialMouse, true);\n }\n\n // Use capture for this listener so it fires before React's listener, to\n // avoid false positives in the contains() check below if the target DOM\n // element is removed in the React mouse callback.\n const removeMouseCaptureListener = listen(doc, clickTrigger, handleMouseCapture, true);\n const removeMouseListener = listen(doc, clickTrigger, e => {\n // skip if this event is the same as the one running when we added the handlers\n if (e === currentEvent) {\n currentEvent = undefined;\n return;\n }\n handleMouse(e);\n });\n let mobileSafariHackListeners = [];\n if ('ontouchstart' in doc.documentElement) {\n mobileSafariHackListeners = [].slice.call(doc.body.children).map(el => listen(el, 'mousemove', noop));\n }\n return () => {\n removeInitialTriggerListener == null ? void 0 : removeInitialTriggerListener();\n removeMouseCaptureListener();\n removeMouseListener();\n mobileSafariHackListeners.forEach(remove => remove());\n };\n }, [ref, disabled, clickTrigger, handleMouseCapture, handleInitialMouse, handleMouse]);\n}\nexport default useClickOutside;","import listen from 'dom-helpers/listen';\nimport ownerDocument from 'dom-helpers/ownerDocument';\nimport { useEffect } from 'react';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport useClickOutside, { getRefTarget } from './useClickOutside';\nimport { isEscKey } from './utils';\nconst noop = () => {};\n/**\n * The `useRootClose` hook registers your callback on the document\n * when rendered. Powers the `<Overlay/>` component. This is used achieve modal\n * style behavior where your callback is triggered when the user tries to\n * interact with the rest of the document or hits the `esc` key.\n *\n * @param {Ref<HTMLElement>| HTMLElement} ref The element boundary\n * @param {function} onRootClose\n * @param {object=} options\n * @param {boolean=} options.disabled\n * @param {string=} options.clickTrigger The DOM event name (click, mousedown, etc) to attach listeners on\n */\nfunction useRootClose(ref, onRootClose, {\n disabled,\n clickTrigger\n} = {}) {\n const onClose = onRootClose || noop;\n useClickOutside(ref, onClose, {\n disabled,\n clickTrigger\n });\n const handleKeyUp = useEventCallback(e => {\n if (isEscKey(e)) {\n onClose(e);\n }\n });\n useEffect(() => {\n if (disabled || ref == null) return undefined;\n const doc = ownerDocument(getRefTarget(ref));\n\n // Store the current event to avoid triggering handlers immediately\n // https://github.com/facebook/react/issues/20074\n let currentEvent = (doc.defaultView || window).event;\n const removeKeyupListener = listen(doc, 'keyup', e => {\n // skip if this event is the same as the one running when we added the handlers\n if (e === currentEvent) {\n currentEvent = undefined;\n return;\n }\n handleKeyUp(e);\n });\n return () => {\n removeKeyupListener();\n };\n }, [ref, disabled, handleKeyUp]);\n}\nexport default useRootClose;","export function toModifierMap(modifiers) {\n const result = {};\n if (!Array.isArray(modifiers)) {\n return modifiers || result;\n }\n\n // eslint-disable-next-line no-unused-expressions\n modifiers == null ? void 0 : modifiers.forEach(m => {\n result[m.name] = m;\n });\n return result;\n}\nexport function toModifierArray(map = {}) {\n if (Array.isArray(map)) return map;\n return Object.keys(map).map(k => {\n map[k].name = k;\n return map[k];\n });\n}\nexport default function mergeOptionsWithPopperConfig({\n enabled,\n enableEvents,\n placement,\n flip,\n offset,\n fixed,\n containerPadding,\n arrowElement,\n popperConfig = {}\n}) {\n var _modifiers$eventListe, _modifiers$preventOve, _modifiers$preventOve2, _modifiers$offset, _modifiers$arrow;\n const modifiers = toModifierMap(popperConfig.modifiers);\n return Object.assign({}, popperConfig, {\n placement,\n enabled,\n strategy: fixed ? 'fixed' : popperConfig.strategy,\n modifiers: toModifierArray(Object.assign({}, modifiers, {\n eventListeners: {\n enabled: enableEvents,\n options: (_modifiers$eventListe = modifiers.eventListeners) == null ? void 0 : _modifiers$eventListe.options\n },\n preventOverflow: Object.assign({}, modifiers.preventOverflow, {\n options: containerPadding ? Object.assign({\n padding: containerPadding\n }, (_modifiers$preventOve = modifiers.preventOverflow) == null ? void 0 : _modifiers$preventOve.options) : (_modifiers$preventOve2 = modifiers.preventOverflow) == null ? void 0 : _modifiers$preventOve2.options\n }),\n offset: {\n options: Object.assign({\n offset\n }, (_modifiers$offset = modifiers.offset) == null ? void 0 : _modifiers$offset.options)\n },\n arrow: Object.assign({}, modifiers.arrow, {\n enabled: !!arrowElement,\n options: Object.assign({}, (_modifiers$arrow = modifiers.arrow) == null ? void 0 : _modifiers$arrow.options, {\n element: arrowElement\n })\n }),\n flip: Object.assign({\n enabled: !!flip\n }, modifiers.flip)\n }))\n });\n}","import * as React from 'react';\nimport ReactDOM from 'react-dom';\nimport useCallbackRef from '@restart/hooks/useCallbackRef';\nimport useMergedRefs from '@restart/hooks/useMergedRefs';\nimport { useState } from 'react';\nimport usePopper from './usePopper';\nimport useRootClose from './useRootClose';\nimport useWaitForDOMRef from './useWaitForDOMRef';\nimport mergeOptionsWithPopperConfig from './mergeOptionsWithPopperConfig';\nimport { renderTransition } from './ImperativeTransition';\n/**\n * Built on top of `Popper.js`, the overlay component is\n * great for custom tooltip overlays.\n */\nconst Overlay = /*#__PURE__*/React.forwardRef((props, outerRef) => {\n const {\n flip,\n offset,\n placement,\n containerPadding,\n popperConfig = {},\n transition: Transition,\n runTransition\n } = props;\n const [rootElement, attachRef] = useCallbackRef();\n const [arrowElement, attachArrowRef] = useCallbackRef();\n const mergedRef = useMergedRefs(attachRef, outerRef);\n const container = useWaitForDOMRef(props.container);\n const target = useWaitForDOMRef(props.target);\n const [exited, setExited] = useState(!props.show);\n const popper = usePopper(target, rootElement, mergeOptionsWithPopperConfig({\n placement,\n enableEvents: !!props.show,\n containerPadding: containerPadding || 5,\n flip,\n offset,\n arrowElement,\n popperConfig\n }));\n\n // TODO: I think this needs to be in an effect\n if (props.show && exited) {\n setExited(false);\n }\n const handleHidden = (...args) => {\n setExited(true);\n if (props.onExited) {\n props.onExited(...args);\n }\n };\n\n // Don't un-render the overlay while it's transitioning out.\n const mountOverlay = props.show || !exited;\n useRootClose(rootElement, props.onHide, {\n disabled: !props.rootClose || props.rootCloseDisabled,\n clickTrigger: props.rootCloseEvent\n });\n if (!mountOverlay) {\n // Don't bother showing anything if we don't have to.\n return null;\n }\n const {\n onExit,\n onExiting,\n onEnter,\n onEntering,\n onEntered\n } = props;\n let child = props.children(Object.assign({}, popper.attributes.popper, {\n style: popper.styles.popper,\n ref: mergedRef\n }), {\n popper,\n placement,\n show: !!props.show,\n arrowProps: Object.assign({}, popper.attributes.arrow, {\n style: popper.styles.arrow,\n ref: attachArrowRef\n })\n });\n child = renderTransition(Transition, runTransition, {\n in: !!props.show,\n appear: true,\n mountOnEnter: true,\n unmountOnExit: true,\n children: child,\n onExit,\n onExiting,\n onExited: handleHidden,\n onEnter,\n onEntering,\n onEntered\n });\n return container ? /*#__PURE__*/ReactDOM.createPortal(child, container) : null;\n});\nOverlay.displayName = 'Overlay';\nexport default Overlay;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst PopoverHeader = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = 'div',\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'popover-header');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n ...props\n });\n});\nPopoverHeader.displayName = 'PopoverHeader';\nexport default PopoverHeader;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst PopoverBody = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = 'div',\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'popover-body');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n ...props\n });\n});\nPopoverBody.displayName = 'PopoverBody';\nexport default PopoverBody;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix, useIsRTL } from './ThemeProvider';\nimport PopoverHeader from './PopoverHeader';\nimport PopoverBody from './PopoverBody';\nimport { getOverlayDirection } from './helpers';\nimport getInitialPopperStyles from './getInitialPopperStyles';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst Popover = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n placement = 'right',\n className,\n style,\n children,\n body,\n arrowProps,\n hasDoneInitialMeasure,\n popper,\n show,\n ...props\n}, ref) => {\n const decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'popover');\n const isRTL = useIsRTL();\n const [primaryPlacement] = (placement == null ? void 0 : placement.split('-')) || [];\n const bsDirection = getOverlayDirection(primaryPlacement, isRTL);\n let computedStyle = style;\n if (show && !hasDoneInitialMeasure) {\n computedStyle = {\n ...style,\n ...getInitialPopperStyles(popper == null ? void 0 : popper.strategy)\n };\n }\n return /*#__PURE__*/_jsxs(\"div\", {\n ref: ref,\n role: \"tooltip\",\n style: computedStyle,\n \"x-placement\": primaryPlacement,\n className: classNames(className, decoratedBsPrefix, primaryPlacement && `bs-popover-${bsDirection}`),\n ...props,\n children: [/*#__PURE__*/_jsx(\"div\", {\n className: \"popover-arrow\",\n ...arrowProps\n }), body ? /*#__PURE__*/_jsx(PopoverBody, {\n children: children\n }) : children]\n });\n});\nexport default Object.assign(Popover, {\n Header: PopoverHeader,\n Body: PopoverBody,\n // Default popover offset.\n // https://github.com/twbs/bootstrap/blob/5c32767e0e0dbac2d934bcdee03719a65d3f1187/js/src/popover.js#L28\n POPPER_OFFSET: [0, 8]\n});","\"use client\";\n\nimport * as React from 'react';\nimport { useEffect, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport BaseOverlay from '@restart/ui/Overlay';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport useIsomorphicEffect from '@restart/hooks/useIsomorphicEffect';\nimport useMergedRefs from '@restart/hooks/useMergedRefs';\nimport useOverlayOffset from './useOverlayOffset';\nimport Fade from './Fade';\nimport safeFindDOMNode from './safeFindDOMNode';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction wrapRefs(props, arrowProps) {\n const {\n ref\n } = props;\n const {\n ref: aRef\n } = arrowProps;\n props.ref = ref.__wrapped || (ref.__wrapped = r => ref(safeFindDOMNode(r)));\n arrowProps.ref = aRef.__wrapped || (aRef.__wrapped = r => aRef(safeFindDOMNode(r)));\n}\nconst Overlay = /*#__PURE__*/React.forwardRef(({\n children: overlay,\n transition = Fade,\n popperConfig = {},\n rootClose = false,\n placement = 'top',\n show: outerShow = false,\n ...outerProps\n}, outerRef) => {\n const popperRef = useRef({});\n const [firstRenderedState, setFirstRenderedState] = useState(null);\n const [ref, modifiers] = useOverlayOffset(outerProps.offset);\n const mergedRef = useMergedRefs(outerRef, ref);\n const actualTransition = transition === true ? Fade : transition || undefined;\n const handleFirstUpdate = useEventCallback(state => {\n setFirstRenderedState(state);\n popperConfig == null ? void 0 : popperConfig.onFirstUpdate == null ? void 0 : popperConfig.onFirstUpdate(state);\n });\n useIsomorphicEffect(() => {\n if (firstRenderedState && outerProps.target) {\n // Must wait for target element to resolve before updating popper.\n popperRef.current.scheduleUpdate == null ? void 0 : popperRef.current.scheduleUpdate();\n }\n }, [firstRenderedState, outerProps.target]);\n useEffect(() => {\n if (!outerShow) {\n setFirstRenderedState(null);\n }\n }, [outerShow]);\n return /*#__PURE__*/_jsx(BaseOverlay, {\n ...outerProps,\n ref: mergedRef,\n popperConfig: {\n ...popperConfig,\n modifiers: modifiers.concat(popperConfig.modifiers || []),\n onFirstUpdate: handleFirstUpdate\n },\n transition: actualTransition,\n rootClose: rootClose,\n placement: placement,\n show: outerShow,\n children: (overlayProps, {\n arrowProps,\n popper: popperObj,\n show\n }) => {\n var _popperObj$state, _popperObj$state$modi;\n wrapRefs(overlayProps, arrowProps);\n // Need to get placement from popper object, handling case when overlay is flipped using 'flip' prop\n const updatedPlacement = popperObj == null ? void 0 : popperObj.placement;\n const popper = Object.assign(popperRef.current, {\n state: popperObj == null ? void 0 : popperObj.state,\n scheduleUpdate: popperObj == null ? void 0 : popperObj.update,\n placement: updatedPlacement,\n outOfBoundaries: (popperObj == null ? void 0 : (_popperObj$state = popperObj.state) == null ? void 0 : (_popperObj$state$modi = _popperObj$state.modifiersData.hide) == null ? void 0 : _popperObj$state$modi.isReferenceHidden) || false,\n strategy: popperConfig.strategy\n });\n const hasDoneInitialMeasure = !!firstRenderedState;\n if (typeof overlay === 'function') return overlay({\n ...overlayProps,\n placement: updatedPlacement,\n show,\n ...(!transition && show && {\n className: 'show'\n }),\n popper,\n arrowProps,\n hasDoneInitialMeasure\n });\n return /*#__PURE__*/React.cloneElement(overlay, {\n ...overlayProps,\n placement: updatedPlacement,\n arrowProps,\n popper,\n hasDoneInitialMeasure,\n className: classNames(overlay.props.className, !transition && show && 'show'),\n style: {\n ...overlay.props.style,\n ...overlayProps.style\n }\n });\n }\n });\n});\nOverlay.displayName = 'Overlay';\nexport default Overlay;","\"use client\";\n\nimport { useMemo, useRef } from 'react';\nimport hasClass from 'dom-helpers/hasClass';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport Popover from './Popover';\nimport Tooltip from './Tooltip';\n\n// This is meant for internal use.\n// This applies a custom offset to the overlay if it's a popover or tooltip.\nexport default function useOverlayOffset(customOffset) {\n const overlayRef = useRef(null);\n const popoverClass = useBootstrapPrefix(undefined, 'popover');\n const tooltipClass = useBootstrapPrefix(undefined, 'tooltip');\n const offset = useMemo(() => ({\n name: 'offset',\n options: {\n offset: () => {\n if (customOffset) {\n return customOffset;\n }\n if (overlayRef.current) {\n if (hasClass(overlayRef.current, popoverClass)) {\n return Popover.POPPER_OFFSET;\n }\n if (hasClass(overlayRef.current, tooltipClass)) {\n return Tooltip.TOOLTIP_OFFSET;\n }\n }\n return [0, 0];\n }\n }\n }), [customOffset, popoverClass, tooltipClass]);\n return [overlayRef, [offset]];\n}","\"use client\";\n\nimport contains from 'dom-helpers/contains';\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport { cloneElement, useCallback, useRef } from 'react';\nimport useTimeout from '@restart/hooks/useTimeout';\nimport warning from 'warning';\nimport { useUncontrolledProp } from 'uncontrollable';\nimport useMergedRefs from '@restart/hooks/useMergedRefs';\nimport Overlay from './Overlay';\nimport safeFindDOMNode from './safeFindDOMNode';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction normalizeDelay(delay) {\n return delay && typeof delay === 'object' ? delay : {\n show: delay,\n hide: delay\n };\n}\n\n// Simple implementation of mouseEnter and mouseLeave.\n// React's built version is broken: https://github.com/facebook/react/issues/4251\n// for cases when the trigger is disabled and mouseOut/Over can cause flicker\n// moving from one child element to another.\nfunction handleMouseOverOut(\n// eslint-disable-next-line @typescript-eslint/no-shadow\nhandler, args, relatedNative) {\n const [e] = args;\n const target = e.currentTarget;\n const related = e.relatedTarget || e.nativeEvent[relatedNative];\n if ((!related || related !== target) && !contains(target, related)) {\n handler(...args);\n }\n}\nconst triggerType = PropTypes.oneOf(['click', 'hover', 'focus']);\nconst OverlayTrigger = ({\n trigger = ['hover', 'focus'],\n overlay,\n children,\n popperConfig = {},\n show: propsShow,\n defaultShow = false,\n onToggle,\n delay: propsDelay,\n placement,\n flip = placement && placement.indexOf('auto') !== -1,\n ...props\n}) => {\n const triggerNodeRef = useRef(null);\n const mergedRef = useMergedRefs(triggerNodeRef, children.ref);\n const timeout = useTimeout();\n const hoverStateRef = useRef('');\n const [show, setShow] = useUncontrolledProp(propsShow, defaultShow, onToggle);\n const delay = normalizeDelay(propsDelay);\n const {\n onFocus,\n onBlur,\n onClick\n } = typeof children !== 'function' ? React.Children.only(children).props : {};\n const attachRef = r => {\n mergedRef(safeFindDOMNode(r));\n };\n const handleShow = useCallback(() => {\n timeout.clear();\n hoverStateRef.current = 'show';\n if (!delay.show) {\n setShow(true);\n return;\n }\n timeout.set(() => {\n if (hoverStateRef.current === 'show') setShow(true);\n }, delay.show);\n }, [delay.show, setShow, timeout]);\n const handleHide = useCallback(() => {\n timeout.clear();\n hoverStateRef.current = 'hide';\n if (!delay.hide) {\n setShow(false);\n return;\n }\n timeout.set(() => {\n if (hoverStateRef.current === 'hide') setShow(false);\n }, delay.hide);\n }, [delay.hide, setShow, timeout]);\n const handleFocus = useCallback((...args) => {\n handleShow();\n onFocus == null ? void 0 : onFocus(...args);\n }, [handleShow, onFocus]);\n const handleBlur = useCallback((...args) => {\n handleHide();\n onBlur == null ? void 0 : onBlur(...args);\n }, [handleHide, onBlur]);\n const handleClick = useCallback((...args) => {\n setShow(!show);\n onClick == null ? void 0 : onClick(...args);\n }, [onClick, setShow, show]);\n const handleMouseOver = useCallback((...args) => {\n handleMouseOverOut(handleShow, args, 'fromElement');\n }, [handleShow]);\n const handleMouseOut = useCallback((...args) => {\n handleMouseOverOut(handleHide, args, 'toElement');\n }, [handleHide]);\n const triggers = trigger == null ? [] : [].concat(trigger);\n const triggerProps = {\n ref: attachRef\n };\n if (triggers.indexOf('click') !== -1) {\n triggerProps.onClick = handleClick;\n }\n if (triggers.indexOf('focus') !== -1) {\n triggerProps.onFocus = handleFocus;\n triggerProps.onBlur = handleBlur;\n }\n if (triggers.indexOf('hover') !== -1) {\n process.env.NODE_ENV !== \"production\" ? warning(triggers.length > 1, '[react-bootstrap] Specifying only the `\"hover\"` trigger limits the visibility of the overlay to just mouse users. Consider also including the `\"focus\"` trigger so that touch and keyboard only users can see the overlay as well.') : void 0;\n triggerProps.onMouseOver = handleMouseOver;\n triggerProps.onMouseOut = handleMouseOut;\n }\n return /*#__PURE__*/_jsxs(_Fragment, {\n children: [typeof children === 'function' ? children(triggerProps) : /*#__PURE__*/cloneElement(children, triggerProps), /*#__PURE__*/_jsx(Overlay, {\n ...props,\n show: show,\n onHide: handleHide,\n flip: flip,\n placement: placement,\n popperConfig: popperConfig,\n target: triggerNodeRef.current,\n children: overlay\n })]\n });\n};\nexport default OverlayTrigger;","import React, { useEffect, useState } from 'react';\r\nimport { Form, FormGroup, OverlayTrigger, Tooltip } from 'react-bootstrap';\r\nimport axios from 'axios';\r\nimport kyCountyMap from '../assets/img/KYCountymap.png';\r\n\r\nfunction ProviderMap({ formData, setFormData, onSubmit, onReset, noResults }) {\r\n const [counties, setCounties] = useState([]);\r\n const [validationMessage, setValidationMessage] = useState(\"\");\r\n const [loading, setLoading] = useState(false); // To manage loading state\r\n\r\n useEffect(() => {\r\n const fetchCounties = async () => {\r\n try {\r\n //const response = await axios.get('https://localhost:7245/providers/counties');\r\n //const response = await axios.get('https://providerdirectory.dbhdidtest.ky.gov/api/providers/counties');\r\n // const response = await axios.get('https://dbhdidtest.ky.gov/provdirapi/providers/counties');\r\n const response = await axios.get('https://dbhdid.ky.gov/provdirapi/providers/counties');\r\n //console.log('Counties:', response.data); // Debug log\r\n setCounties(Array.isArray(response.data) ? response.data : []);\r\n } catch (error) {\r\n console.error('Error fetching counties:', error);\r\n }\r\n };\r\n fetchCounties();\r\n }, []);\r\n\r\n const handleCountyChange = (e) => {\r\n const selectedCounties = Array.from(e.target.selectedOptions, option => option.value);\r\n setFormData(prev => ({ ...prev, counties: selectedCounties, isStateWide: selectedCounties.length === counties.length }));\r\n };\r\n\r\n const handleMapClick = (countyDesc) => {\r\n const newSelection = formData.counties.includes(countyDesc) ?\r\n formData.counties.filter(county => county !== countyDesc) :\r\n [...formData.counties, countyDesc];\r\n setFormData(prev => ({ ...prev, counties: newSelection, isStateWide: newSelection.length === counties.length }));\r\n };\r\n\r\n const renderTooltip1 = (props) => (\r\n <Tooltip id=\"button-tooltip\" {...props} className=\"tooltip-custom\">\r\n None of the counties selected equivalent to statewide.\r\n </Tooltip>\r\n );\r\n\r\n const renderTooltip2 = (props) => (\r\n <Tooltip id=\"button-tooltip\" {...props} className=\"tooltip-custom\">\r\n To choose your desired counties, hold down Ctrl for PC or Command on MAC while making your selections.\r\n </Tooltip>\r\n );\r\n\r\n const handleFormSubmit = async (e) => {\r\n e.preventDefault();\r\n if (\r\n (!formData.counties || formData.counties.length === 0) &&\r\n (!formData.groups || formData.groups.length === 0) &&\r\n (!formData.services || formData.services.length === 0) &&\r\n (!formData.otherProviders || formData.otherProviders.length === 0)\r\n ) {\r\n setValidationMessage(\"Please select your desired options.\");\r\n } else {\r\n setValidationMessage(\"\");\r\n setLoading(true); // Set loading to true before the API call\r\n\r\n try {\r\n await onSubmit(formData);\r\n } finally {\r\n setLoading(false); // Set loading to false after the API call\r\n }\r\n }\r\n };\r\n\r\n return (\r\n <div>\r\n <div className=\"image-map\">\r\n <img src={kyCountyMap} alt=\"Kentucky County Map\" useMap=\"#countyMap\" />\r\n <map name=\"countyMap\">\r\n {Array.isArray(counties) && counties.map((county) => (\r\n <area key={county.countyId} alt={county.countyDesc} title={county.countyDesc} coords={county.hotSpots} shape=\"poly\" onClick={() => handleMapClick(county.countyDesc)} className=\"county-area\" />\r\n ))}\r\n </map>\r\n </div>\r\n\r\n <Form onSubmit={handleFormSubmit}> \r\n <FormGroup className=\"form-group provider-map-section\">\r\n <Form.Check\r\n type=\"checkbox\"\r\n label={\r\n <>\r\n <strong>Statewide\r\n <OverlayTrigger\r\n placement=\"auto\"\r\n delay={{ show: 250, hide: 400 }}\r\n overlay={renderTooltip1}\r\n >\r\n <span className=\"info-icon\">i</span>\r\n </OverlayTrigger>\r\n </strong>\r\n </>\r\n }\r\n checked={formData.isStateWide}\r\n onChange={(e) => setFormData(prev => ({\r\n ...prev,\r\n isStateWide: e.target.checked,\r\n counties: e.target.checked ? counties.map(county => county.countyDesc) : []\r\n }))}\r\n />\r\n </FormGroup>\r\n\r\n <FormGroup className=\"form-group provider-map-section\">\r\n <OverlayTrigger\r\n placement=\"auto\"\r\n delay={{ show: 250, hide: 400 }}\r\n overlay={renderTooltip2}\r\n >\r\n <strong>Counties:<span className=\"info-icon\">i</span><br /></strong>\r\n </OverlayTrigger>\r\n <select multiple={true} value={formData.counties} onChange={handleCountyChange} className=\"county-select\">\r\n {Array.isArray(counties) && counties.map((county) => (\r\n <option key={county.countyId} value={county.countyDesc}>{county.countyDesc}</option>\r\n ))}\r\n </select>\r\n <br />\r\n {formData.isStateWide ?\r\n <span className=\"statewide-selection\">All</span>\r\n :\r\n (formData.counties.length > 0 &&\r\n <span className=\"county-selection\">Selected: {formData.counties.join(', ')}</span>\r\n )\r\n }\r\n </FormGroup>\r\n\r\n <div className=\"form-actions\">\r\n <button type=\"button\" className=\"btn btn-primary btn-custom\" onClick={onReset}>Reset</button>\r\n \r\n <button className=\"btn btn-primary btn-custom\" type=\"submit\" disabled={loading}>\r\n {loading ? \"Searching...\" : \"Submit\"}\r\n </button>\r\n {validationMessage && (\r\n <div className=\"validation-message\">\r\n {validationMessage}\r\n </div>\r\n )}\r\n {noResults && !validationMessage && (\r\n <div className=\"no-results-message\">\r\n No results for your search criteria.\r\n </div>\r\n )}\r\n </div>\r\n </Form>\r\n </div>\r\n );\r\n}\r\n\r\nexport default ProviderMap;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Tooltip, OverlayTrigger } from 'react-bootstrap';\r\nimport axios from 'axios';\r\n\r\nfunction ProviderOptions({ formData, setFormData }) {\r\n const [healthPlans, setHealthPlans] = useState([]);\r\n const [otherProviders, setOtherProviders] = useState([]);\r\n const [ipServices, setIpServices] = useState([]);\r\n const [currentSubOptions, setCurrentSubOptions] = useState([]);\r\n\r\n useEffect(() => {\r\n const fetchHealthPlans = async () => {\r\n try {\r\n //const response = await axios.get('https://localhost:7245/providers/health-plans');\r\n //const response = await axios.get('https://providerdirectory.dbhdidtest.ky.gov/api/providers/health-plans');\r\n // const response = await axios.get('https://dbhdidtest.ky.gov/provdirapi/providers/health-plans');\r\n const response = await axios.get('https://dbhdid.ky.gov/provdirapi/providers/health-plans');\r\n //console.log('Health Plans:', response.data); // Debug log\r\n setHealthPlans(Array.isArray(response.data) ? response.data : []);\r\n } catch (error) {\r\n console.error('Error fetching health plans:', error);\r\n }\r\n };\r\n fetchHealthPlans();\r\n }, []);\r\n\r\n useEffect(() => {\r\n const fetchServices = async () => {\r\n try {\r\n //const response = await axios.get('https://localhost:7245/providers/services');\r\n //const response = await axios.get('https://providerdirectory.dbhdidtest.ky.gov/api/providers/services');\r\n // const response = await axios.get('https://dbhdidtest.ky.gov/provdirapi/providers/services');\r\n const response = await axios.get('https://dbhdid.ky.gov/provdirapi/providers/services');\r\n //console.log('Services:', response.data); // Debug log\r\n setIpServices(Array.isArray(response.data) ? response.data : []);\r\n } catch (error) {\r\n console.error('Error fetching services:', error);\r\n }\r\n };\r\n fetchServices();\r\n }, []);\r\n\r\n useEffect(() => {\r\n const fetchOtherProviders = async () => {\r\n try {\r\n //const response = await axios.get('https://localhost:7245/providers/other-providers');\r\n //const response = await axios.get('https://providerdirectory.dbhdidtest.ky.gov/api/providers/other-providers');\r\n // const response = await axios.get('https://dbhdidtest.ky.gov/provdirapi/providers/other-providers');\r\n const response = await axios.get('https://dbhdid.ky.gov/provdirapi/providers/other-providers');\r\n //console.log('Other Providers:', response.data); // Debug log\r\n setOtherProviders(Array.isArray(response.data) ? response.data : []);\r\n } catch (error) {\r\n console.error('Error fetching other providers:', error);\r\n }\r\n };\r\n fetchOtherProviders();\r\n }, []);\r\n \r\n useEffect(() => {\r\n const fetchSubOptions = async () => {\r\n if (formData.otherProviders && formData.otherProviders.length > 0) {\r\n const selectedOtherProvider = formData.otherProviders[0];\r\n if (selectedOtherProvider) {\r\n try {\r\n //console.log(`Fetching sub options for: ${selectedOtherProvider}`);\r\n //const response = await axios.get(`https://localhost:7245/providers/services-by-provider-type/${selectedOtherProvider}`);\r\n //const response = await axios.get(`https://providerdirectory.dbhdidtest.ky.gov/api/providers/services-by-provider-type/${selectedOtherProvider}`);\r\n // const response = await axios.get(`https://dbhdidtest.ky.gov/provdirapi/providers/services-by-provider-type/${selectedOtherProvider}`);\r\n const response = await axios.get(`https://dbhdid.ky.gov/provdirapi/providers/services-by-provider-type/${selectedOtherProvider}`);\r\n //console.log('Sub options fetched:', response.data); // Debug log\r\n setCurrentSubOptions(Array.isArray(response.data) ? response.data : []);\r\n } catch (error) {\r\n console.error('Error fetching sub options:', error);\r\n }\r\n }\r\n } else {\r\n setCurrentSubOptions([]);\r\n }\r\n };\r\n fetchSubOptions();\r\n }, [formData.otherProviders]);\r\n\r\n const handleHealthPlanChange = (e) => {\r\n setFormData(prev => ({ ...prev, groups: [e.target.value] }));\r\n };\r\n\r\n const handleOtherProviderChange = (e) => {\r\n const value = e.target.value;\r\n //console.log('Other provider selected:', value);\r\n \r\n // Clear the previously selected sub-services\r\n setCurrentSubOptions([]);\r\n setFormData(prev => ({\r\n ...prev,\r\n otherProviders: [value],\r\n // Clear the selected services (services: []). If Services are selected to begin with, and then choosing from the Other Providers and Select Services (optional), \r\n // there are no search results with this combination in the new PD. \r\n // There are search results if choosing from the Other Providers and Select Services (optional) in the new PD.\r\n // In testing the old PD, it doesn't matter if one or all Services are selected and then options from Other Providers and Select Services (optional) \r\n // are selected, the provider record count is the same as the new PD when no Services are selected. \r\n \r\n services: [], \r\n selectServices: [] // Clear the sub-services if any were selected\r\n }));\r\n };\r\n \r\n const handleIpServiceChange = (e) => {\r\n const value = Array.from(e.target.selectedOptions, option => option.value);\r\n setFormData(prev => ({ ...prev, services: value })); \r\n };\r\n\r\n const handleSubOptionChange = (e) => {\r\n const value = Array.from(e.target.selectedOptions, option => option.value);\r\n setFormData(prev => ({ ...prev, selectServices: value }));\r\n };\r\n\r\n const renderTooltip1 = (props) => (\r\n <Tooltip id=\"button-tooltip\" {...props} className=\"tooltip-custom\">\r\n Select your desired health plan.\r\n </Tooltip>\r\n );\r\n\r\n const renderTooltip2 = (props) => (\r\n <Tooltip id=\"button-tooltip\" {...props} className=\"tooltip-custom\">\r\n Choose one or more Service.\r\n </Tooltip>\r\n );\r\n\r\n const renderTooltip3 = (props) => (\r\n <Tooltip id=\"button-tooltip\" {...props} className=\"tooltip-custom\">\r\n The 'Select Services (optional)' sub-menu will not appear on some 'Other Providers' selections.\r\n </Tooltip>\r\n );\r\n\r\n return (\r\n <div className=\"provider-options-container\">\r\n <div className=\"provider-options-section\">\r\n <OverlayTrigger\r\n placement=\"auto\"\r\n delay={{ show: 250, hide: 400 }}\r\n overlay={renderTooltip1}\r\n >\r\n <strong>Health Plan<span className=\"info-icon\">i</span><br /></strong>\r\n </OverlayTrigger>\r\n <select value={formData.groups[0] || ''} onChange={handleHealthPlanChange} className=\"provider-options-select\">\r\n <option value=\"\">Select a Health Plan</option>\r\n {Array.isArray(healthPlans) && healthPlans.map(plan => (\r\n <option key={plan.groupId} value={plan.groupName}>{plan.groupName}</option>\r\n ))}\r\n </select>\r\n </div>\r\n\r\n <div className=\"provider-options-section\">\r\n <OverlayTrigger\r\n placement=\"auto\"\r\n delay={{ show: 250, hide: 400 }}\r\n overlay={renderTooltip2}\r\n >\r\n <strong>Services<span className=\"info-icon\">i</span><br /></strong>\r\n </OverlayTrigger>\r\n <select multiple={true} value={formData.services || []} onChange={handleIpServiceChange} className=\"provider-options-select\">\r\n {Array.isArray(ipServices) && ipServices.map(service => (\r\n <option key={service.serviceUid} value={service.serviceUid}>{service.serviceDesc}</option>\r\n ))}\r\n </select>\r\n </div>\r\n\r\n <div className=\"provider-options-section\">\r\n <OverlayTrigger\r\n placement=\"auto\"\r\n delay={{ show: 250, hide: 400 }}\r\n overlay={renderTooltip3}\r\n >\r\n <strong>Other Providers<span className=\"info-icon\">i</span><br /></strong>\r\n </OverlayTrigger>\r\n <select value={formData.otherProviders[0] || ''} onChange={handleOtherProviderChange} className=\"provider-options-select\">\r\n <option value=\"\">Select a Provider</option>\r\n {Array.isArray(otherProviders) && otherProviders.map(provider => (\r\n <option key={provider.providerTypeId} value={provider.providerTypeId}>{provider.providerTypeDesc}</option>\r\n ))}\r\n </select>\r\n </div>\r\n\r\n {currentSubOptions.length > 0 && (\r\n <div className=\"provider-options-section provider-options-sub-section\">\r\n <label><strong>Select Services (optional)</strong></label>\r\n <br />\r\n <select multiple={true} value={formData.selectServices || []} onChange={handleSubOptionChange} className=\"provider-options-select\">\r\n {Array.isArray(currentSubOptions) && currentSubOptions.map((subOption) => (\r\n <option key={subOption.serviceUid} value={subOption.serviceUid}>{subOption.serviceDesc}</option>\r\n ))}\r\n </select>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\n\r\nexport default ProviderOptions;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Tooltip, OverlayTrigger } from 'react-bootstrap';\r\nimport axios from 'axios';\r\n\r\nfunction ProviderSearch({ providerName, setProviderName, onSearch, resetError }) {\r\n const [errorMessage, setErrorMessage] = useState(\"\"); // To display error messages\r\n const [loading, setLoading] = useState(false); // To manage loading state\r\n\r\n // Effect to reset error message when resetError changes\r\n useEffect(() => {\r\n setErrorMessage(\"\");\r\n }, [resetError]);\r\n\r\n const handleSubmit = async (event) => {\r\n event.preventDefault();\r\n \r\n // If no provider name entered, set an error message\r\n if (!providerName.trim()) {\r\n setErrorMessage(\"Enter a provider first, last, or full name.\");\r\n return;\r\n } else {\r\n setErrorMessage(\"\"); // Clear error message if there's any\r\n }\r\n \r\n setLoading(true); // Set loading to true before the API call\r\n \r\n try {\r\n //const response = await axios.post('https://localhost:7245/providers/search', { ProviderDesc: providerName });\r\n //const response = await axios.post('https://providerdirectory.dbhdidtest.ky.gov/api/providers/search', { ProviderDesc: providerName });\r\n // const response = await axios.post('https://dbhdidtest.ky.gov/provdirapi/providers/search', { ProviderDesc: providerName });\r\n const response = await axios.post('https://dbhdid.ky.gov/provdirapi/providers/search', { ProviderDesc: providerName });\r\n const results = response.data;\r\n\r\n //console.log('Search Results:', results); // Debug log\r\n \r\n if (Array.isArray(results) && results.length === 0) {\r\n setErrorMessage(\"No providers found.\"); // Set error message if no providers are found\r\n } else if (Array.isArray(results)) {\r\n setErrorMessage(\"\"); // Clear the error message if providers are found\r\n onSearch(results); // Send the results to the ProviderDirectory.js parent component.\r\n } else {\r\n setErrorMessage(\"Unexpected response format.\"); // Handle unexpected response format\r\n }\r\n } catch (error) {\r\n //console.error('Error searching providers:', error);\r\n \r\n // Check if the error response indicates no providers were found\r\n if (error.response && error.response.status === 404) {\r\n setErrorMessage(\"No providers found.\");\r\n } else {\r\n setErrorMessage(\"An error occurred while searching for providers.\");\r\n }\r\n } finally {\r\n setLoading(false); // Set loading to false after the API call\r\n } \r\n };\r\n\r\n const renderTooltip = (props) => (\r\n <Tooltip id=\"button-tooltip\" {...props} className=\"tooltip-custom\">\r\n Enter the provider's first, last, or full name to search.\r\n </Tooltip>\r\n );\r\n\r\n return (\r\n <div className=\"provider-search-section\">\r\n <hr />\r\n <br />\r\n <br />\r\n <form onSubmit={handleSubmit} className=\"provider-search-form\">\r\n <OverlayTrigger\r\n placement=\"auto\"\r\n delay={{ show: 250, hide: 400 }}\r\n overlay={renderTooltip}\r\n >\r\n <label htmlFor=\"providerName\" className=\"provider-search-label\">\r\n <strong>Search by Provider Name Only:<span className=\"info-icon\">i</span></strong>\r\n </label>\r\n </OverlayTrigger>\r\n <input\r\n type=\"text\"\r\n className=\"providersearch\"\r\n id=\"providerName\"\r\n value={providerName}\r\n onChange={(e) => setProviderName(e.target.value)}\r\n placeholder=\"Enter provider first, last, or full name...\"\r\n />\r\n <button type=\"submit\" className=\"btn btn-primary btn-custom provider-search-button\" disabled={loading}>\r\n {loading ? \"Searching...\" : \"Search\"}\r\n </button>\r\n {errorMessage && <span className=\"provider-search-error\">{errorMessage}</span>}\r\n </form>\r\n </div>\r\n );\r\n}\r\n\r\nexport default ProviderSearch;\r\n","import React from 'react';\r\n//import EmailreCAPTCHA from '../components/EmailreCAPTCHA.js';\r\n\r\nfunction ProviderContact() {\r\n const sectionStyle = {\r\n //border: '1px solid #2f4050',\r\n padding: '15px',\r\n margin: '5px 0'\r\n };\r\n return (\r\n <div style={sectionStyle}>\r\n <div>\r\n <hr />\r\n <h5>Provider Update Contact <br />(For Provider Use Only)</h5>\r\n For assistance in updating your Provider information or to be added to this webpage:\r\n <br /><br/>\r\n {/* <a href=\"mailto:Provider.Service@ky.gov?subject=Provider Update Request\">Provider.Service@ky.gov</a><br/><br/> */}\r\n {/* <EmailreCAPTCHA /> */}\r\n Click <a href='https://dbhdid.ky.gov/cmhc/dataguide'>here</a> and follow instructions indicated on the most recent Appendix A1 - Provider Site Update Form.\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default ProviderContact;\r\n\r\n\r\n","// DEFLATE is a complex format; to read this code, you should probably check the RFC first:\n// https://tools.ietf.org/html/rfc1951\n// You may also wish to take a look at the guide I made about this program:\n// https://gist.github.com/101arrowz/253f31eb5abc3d9275ab943003ffecad\n// Much of the following code is similar to that of UZIP.js:\n// https://github.com/photopea/UZIP.js\n// Many optimizations have been made, so the bundle size is ultimately smaller but performance is similar.\n// Sometimes 0 will appear where -1 would be more appropriate. This is because using a uint\n// is better for memory in most engines (I *think*).\nvar ch2 = {};\nvar wk = (function (c, id, msg, transfer, cb) {\n var u = ch2[id] || (ch2[id] = URL.createObjectURL(new Blob([c], { type: 'text/javascript' })));\n var w = new Worker(u);\n w.onerror = function (e) { return cb(e.error, null); };\n w.onmessage = function (e) { return cb(null, e.data); };\n w.postMessage(msg, transfer);\n return w;\n});\n\n// aliases for shorter compressed code (most minifers don't do this)\nvar u8 = Uint8Array, u16 = Uint16Array, u32 = Uint32Array;\n// fixed length extra bits\nvar fleb = new u8([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, /* unused */ 0, 0, /* impossible */ 0]);\n// fixed distance extra bits\n// see fleb note\nvar fdeb = new u8([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, /* unused */ 0, 0]);\n// code length index map\nvar clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\n// get base, reverse index map from extra bits\nvar freb = function (eb, start) {\n var b = new u16(31);\n for (var i = 0; i < 31; ++i) {\n b[i] = start += 1 << eb[i - 1];\n }\n // numbers here are at max 18 bits\n var r = new u32(b[30]);\n for (var i = 1; i < 30; ++i) {\n for (var j = b[i]; j < b[i + 1]; ++j) {\n r[j] = ((j - b[i]) << 5) | i;\n }\n }\n return [b, r];\n};\nvar _a = freb(fleb, 2), fl = _a[0], revfl = _a[1];\n// we can ignore the fact that the other numbers are wrong; they never happen anyway\nfl[28] = 258, revfl[258] = 28;\nvar _b = freb(fdeb, 0), fd = _b[0], revfd = _b[1];\n// map of value to reverse (assuming 16 bits)\nvar rev = new u16(32768);\nfor (var i = 0; i < 32768; ++i) {\n // reverse table algorithm from SO\n var x = ((i & 0xAAAA) >>> 1) | ((i & 0x5555) << 1);\n x = ((x & 0xCCCC) >>> 2) | ((x & 0x3333) << 2);\n x = ((x & 0xF0F0) >>> 4) | ((x & 0x0F0F) << 4);\n rev[i] = (((x & 0xFF00) >>> 8) | ((x & 0x00FF) << 8)) >>> 1;\n}\n// create huffman tree from u8 \"map\": index -> code length for code index\n// mb (max bits) must be at most 15\n// TODO: optimize/split up?\nvar hMap = (function (cd, mb, r) {\n var s = cd.length;\n // index\n var i = 0;\n // u16 \"map\": index -> # of codes with bit length = index\n var l = new u16(mb);\n // length of cd must be 288 (total # of codes)\n for (; i < s; ++i)\n ++l[cd[i] - 1];\n // u16 \"map\": index -> minimum code for bit length = index\n var le = new u16(mb);\n for (i = 0; i < mb; ++i) {\n le[i] = (le[i - 1] + l[i - 1]) << 1;\n }\n var co;\n if (r) {\n // u16 \"map\": index -> number of actual bits, symbol for code\n co = new u16(1 << mb);\n // bits to remove for reverser\n var rvb = 15 - mb;\n for (i = 0; i < s; ++i) {\n // ignore 0 lengths\n if (cd[i]) {\n // num encoding both symbol and bits read\n var sv = (i << 4) | cd[i];\n // free bits\n var r_1 = mb - cd[i];\n // start value\n var v = le[cd[i] - 1]++ << r_1;\n // m is end value\n for (var m = v | ((1 << r_1) - 1); v <= m; ++v) {\n // every 16 bit value starting with the code yields the same result\n co[rev[v] >>> rvb] = sv;\n }\n }\n }\n }\n else {\n co = new u16(s);\n for (i = 0; i < s; ++i)\n co[i] = rev[le[cd[i] - 1]++] >>> (15 - cd[i]);\n }\n return co;\n});\n// fixed length tree\nvar flt = new u8(288);\nfor (var i = 0; i < 144; ++i)\n flt[i] = 8;\nfor (var i = 144; i < 256; ++i)\n flt[i] = 9;\nfor (var i = 256; i < 280; ++i)\n flt[i] = 7;\nfor (var i = 280; i < 288; ++i)\n flt[i] = 8;\n// fixed distance tree\nvar fdt = new u8(32);\nfor (var i = 0; i < 32; ++i)\n fdt[i] = 5;\n// fixed length map\nvar flm = /*#__PURE__*/ hMap(flt, 9, 0), flrm = /*#__PURE__*/ hMap(flt, 9, 1);\n// fixed distance map\nvar fdm = /*#__PURE__*/ hMap(fdt, 5, 0), fdrm = /*#__PURE__*/ hMap(fdt, 5, 1);\n// find max of array\nvar max = function (a) {\n var m = a[0];\n for (var i = 1; i < a.length; ++i) {\n if (a[i] > m)\n m = a[i];\n }\n return m;\n};\n// read d, starting at bit p and mask with m\nvar bits = function (d, p, m) {\n var o = (p / 8) >> 0;\n return ((d[o] | (d[o + 1] << 8)) >>> (p & 7)) & m;\n};\n// read d, starting at bit p continuing for at least 16 bits\nvar bits16 = function (d, p) {\n var o = (p / 8) >> 0;\n return ((d[o] | (d[o + 1] << 8) | (d[o + 2] << 16)) >>> (p & 7));\n};\n// get end of byte\nvar shft = function (p) { return ((p / 8) >> 0) + (p & 7 && 1); };\n// typed array slice - allows garbage collector to free original reference,\n// while being more compatible than .slice\nvar slc = function (v, s, e) {\n if (s == null || s < 0)\n s = 0;\n if (e == null || e > v.length)\n e = v.length;\n // can't use .constructor in case user-supplied\n var n = new (v instanceof u16 ? u16 : v instanceof u32 ? u32 : u8)(e - s);\n n.set(v.subarray(s, e));\n return n;\n};\n// expands raw DEFLATE data\nvar inflt = function (dat, buf, st) {\n // source length\n var sl = dat.length;\n // have to estimate size\n var noBuf = !buf || st;\n // no state\n var noSt = !st || st.i;\n if (!st)\n st = {};\n // Assumes roughly 33% compression ratio average\n if (!buf)\n buf = new u8(sl * 3);\n // ensure buffer can fit at least l elements\n var cbuf = function (l) {\n var bl = buf.length;\n // need to increase size to fit\n if (l > bl) {\n // Double or set to necessary, whichever is greater\n var nbuf = new u8(Math.max(bl * 2, l));\n nbuf.set(buf);\n buf = nbuf;\n }\n };\n // last chunk bitpos bytes\n var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;\n // total bits\n var tbts = sl * 8;\n do {\n if (!lm) {\n // BFINAL - this is only 1 when last chunk is next\n st.f = final = bits(dat, pos, 1);\n // type: 0 = no compression, 1 = fixed huffman, 2 = dynamic huffman\n var type = bits(dat, pos + 1, 3);\n pos += 3;\n if (!type) {\n // go to end of byte boundary\n var s = shft(pos) + 4, l = dat[s - 4] | (dat[s - 3] << 8), t = s + l;\n if (t > sl) {\n if (noSt)\n throw 'unexpected EOF';\n break;\n }\n // ensure size\n if (noBuf)\n cbuf(bt + l);\n // Copy over uncompressed data\n buf.set(dat.subarray(s, t), bt);\n // Get new bitpos, update byte count\n st.b = bt += l, st.p = pos = t * 8;\n continue;\n }\n else if (type == 1)\n lm = flrm, dm = fdrm, lbt = 9, dbt = 5;\n else if (type == 2) {\n // literal lengths\n var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;\n var tl = hLit + bits(dat, pos + 5, 31) + 1;\n pos += 14;\n // length+distance tree\n var ldt = new u8(tl);\n // code length tree\n var clt = new u8(19);\n for (var i = 0; i < hcLen; ++i) {\n // use index map to get real code\n clt[clim[i]] = bits(dat, pos + i * 3, 7);\n }\n pos += hcLen * 3;\n // code lengths bits\n var clb = max(clt), clbmsk = (1 << clb) - 1;\n if (!noSt && pos + tl * (clb + 7) > tbts)\n break;\n // code lengths map\n var clm = hMap(clt, clb, 1);\n for (var i = 0; i < tl;) {\n var r = clm[bits(dat, pos, clbmsk)];\n // bits read\n pos += r & 15;\n // symbol\n var s = r >>> 4;\n // code length to copy\n if (s < 16) {\n ldt[i++] = s;\n }\n else {\n // copy count\n var c = 0, n = 0;\n if (s == 16)\n n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1];\n else if (s == 17)\n n = 3 + bits(dat, pos, 7), pos += 3;\n else if (s == 18)\n n = 11 + bits(dat, pos, 127), pos += 7;\n while (n--)\n ldt[i++] = c;\n }\n }\n // length tree distance tree\n var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);\n // max length bits\n lbt = max(lt);\n // max dist bits\n dbt = max(dt);\n lm = hMap(lt, lbt, 1);\n dm = hMap(dt, dbt, 1);\n }\n else\n throw 'invalid block type';\n if (pos > tbts)\n throw 'unexpected EOF';\n }\n // Make sure the buffer can hold this + the largest possible addition\n // Maximum chunk size (practically, theoretically infinite) is 2^17;\n if (noBuf)\n cbuf(bt + 131072);\n var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;\n var mxa = lbt + dbt + 18;\n while (noSt || pos + mxa < tbts) {\n // bits read, code\n var c = lm[bits16(dat, pos) & lms], sym = c >>> 4;\n pos += c & 15;\n if (pos > tbts)\n throw 'unexpected EOF';\n if (!c)\n throw 'invalid length/literal';\n if (sym < 256)\n buf[bt++] = sym;\n else if (sym == 256) {\n lm = null;\n break;\n }\n else {\n var add = sym - 254;\n // no extra bits needed if less\n if (sym > 264) {\n // index\n var i = sym - 257, b = fleb[i];\n add = bits(dat, pos, (1 << b) - 1) + fl[i];\n pos += b;\n }\n // dist\n var d = dm[bits16(dat, pos) & dms], dsym = d >>> 4;\n if (!d)\n throw 'invalid distance';\n pos += d & 15;\n var dt = fd[dsym];\n if (dsym > 3) {\n var b = fdeb[dsym];\n dt += bits16(dat, pos) & ((1 << b) - 1), pos += b;\n }\n if (pos > tbts)\n throw 'unexpected EOF';\n if (noBuf)\n cbuf(bt + 131072);\n var end = bt + add;\n for (; bt < end; bt += 4) {\n buf[bt] = buf[bt - dt];\n buf[bt + 1] = buf[bt + 1 - dt];\n buf[bt + 2] = buf[bt + 2 - dt];\n buf[bt + 3] = buf[bt + 3 - dt];\n }\n bt = end;\n }\n }\n st.l = lm, st.p = pos, st.b = bt;\n if (lm)\n final = 1, st.m = lbt, st.d = dm, st.n = dbt;\n } while (!final);\n return bt == buf.length ? buf : slc(buf, 0, bt);\n};\n// starting at p, write the minimum number of bits that can hold v to d\nvar wbits = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) >> 0;\n d[o] |= v;\n d[o + 1] |= v >>> 8;\n};\n// starting at p, write the minimum number of bits (>8) that can hold v to d\nvar wbits16 = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) >> 0;\n d[o] |= v;\n d[o + 1] |= v >>> 8;\n d[o + 2] |= v >>> 16;\n};\n// creates code lengths from a frequency table\nvar hTree = function (d, mb) {\n // Need extra info to make a tree\n var t = [];\n for (var i = 0; i < d.length; ++i) {\n if (d[i])\n t.push({ s: i, f: d[i] });\n }\n var s = t.length;\n var t2 = t.slice();\n if (!s)\n return [new u8(0), 0];\n if (s == 1) {\n var v = new u8(t[0].s + 1);\n v[t[0].s] = 1;\n return [v, 1];\n }\n t.sort(function (a, b) { return a.f - b.f; });\n // after i2 reaches last ind, will be stopped\n // freq must be greater than largest possible number of symbols\n t.push({ s: -1, f: 25001 });\n var l = t[0], r = t[1], i0 = 0, i1 = 1, i2 = 2;\n t[0] = { s: -1, f: l.f + r.f, l: l, r: r };\n // efficient algorithm from UZIP.js\n // i0 is lookbehind, i2 is lookahead - after processing two low-freq\n // symbols that combined have high freq, will start processing i2 (high-freq,\n // non-composite) symbols instead\n // see https://reddit.com/r/photopea/comments/ikekht/uzipjs_questions/\n while (i1 != s - 1) {\n l = t[t[i0].f < t[i2].f ? i0++ : i2++];\n r = t[i0 != i1 && t[i0].f < t[i2].f ? i0++ : i2++];\n t[i1++] = { s: -1, f: l.f + r.f, l: l, r: r };\n }\n var maxSym = t2[0].s;\n for (var i = 1; i < s; ++i) {\n if (t2[i].s > maxSym)\n maxSym = t2[i].s;\n }\n // code lengths\n var tr = new u16(maxSym + 1);\n // max bits in tree\n var mbt = ln(t[i1 - 1], tr, 0);\n if (mbt > mb) {\n // more algorithms from UZIP.js\n // TODO: find out how this code works (debt)\n // ind debt\n var i = 0, dt = 0;\n // left cost\n var lft = mbt - mb, cst = 1 << lft;\n t2.sort(function (a, b) { return tr[b.s] - tr[a.s] || a.f - b.f; });\n for (; i < s; ++i) {\n var i2_1 = t2[i].s;\n if (tr[i2_1] > mb) {\n dt += cst - (1 << (mbt - tr[i2_1]));\n tr[i2_1] = mb;\n }\n else\n break;\n }\n dt >>>= lft;\n while (dt > 0) {\n var i2_2 = t2[i].s;\n if (tr[i2_2] < mb)\n dt -= 1 << (mb - tr[i2_2]++ - 1);\n else\n ++i;\n }\n for (; i >= 0 && dt; --i) {\n var i2_3 = t2[i].s;\n if (tr[i2_3] == mb) {\n --tr[i2_3];\n ++dt;\n }\n }\n mbt = mb;\n }\n return [new u8(tr), mbt];\n};\n// get the max length and assign length codes\nvar ln = function (n, l, d) {\n return n.s == -1\n ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1))\n : (l[n.s] = d);\n};\n// length codes generation\nvar lc = function (c) {\n var s = c.length;\n // Note that the semicolon was intentional\n while (s && !c[--s])\n ;\n var cl = new u16(++s);\n // ind num streak\n var cli = 0, cln = c[0], cls = 1;\n var w = function (v) { cl[cli++] = v; };\n for (var i = 1; i <= s; ++i) {\n if (c[i] == cln && i != s)\n ++cls;\n else {\n if (!cln && cls > 2) {\n for (; cls > 138; cls -= 138)\n w(32754);\n if (cls > 2) {\n w(cls > 10 ? ((cls - 11) << 5) | 28690 : ((cls - 3) << 5) | 12305);\n cls = 0;\n }\n }\n else if (cls > 3) {\n w(cln), --cls;\n for (; cls > 6; cls -= 6)\n w(8304);\n if (cls > 2)\n w(((cls - 3) << 5) | 8208), cls = 0;\n }\n while (cls--)\n w(cln);\n cls = 1;\n cln = c[i];\n }\n }\n return [cl.subarray(0, cli), s];\n};\n// calculate the length of output from tree, code lengths\nvar clen = function (cf, cl) {\n var l = 0;\n for (var i = 0; i < cl.length; ++i)\n l += cf[i] * cl[i];\n return l;\n};\n// writes a fixed block\n// returns the new bit pos\nvar wfblk = function (out, pos, dat) {\n // no need to write 00 as type: TypedArray defaults to 0\n var s = dat.length;\n var o = shft(pos + 2);\n out[o] = s & 255;\n out[o + 1] = s >>> 8;\n out[o + 2] = out[o] ^ 255;\n out[o + 3] = out[o + 1] ^ 255;\n for (var i = 0; i < s; ++i)\n out[o + i + 4] = dat[i];\n return (o + 4 + s) * 8;\n};\n// writes a block\nvar wblk = function (dat, out, final, syms, lf, df, eb, li, bs, bl, p) {\n wbits(out, p++, final);\n ++lf[256];\n var _a = hTree(lf, 15), dlt = _a[0], mlb = _a[1];\n var _b = hTree(df, 15), ddt = _b[0], mdb = _b[1];\n var _c = lc(dlt), lclt = _c[0], nlc = _c[1];\n var _d = lc(ddt), lcdt = _d[0], ndc = _d[1];\n var lcfreq = new u16(19);\n for (var i = 0; i < lclt.length; ++i)\n lcfreq[lclt[i] & 31]++;\n for (var i = 0; i < lcdt.length; ++i)\n lcfreq[lcdt[i] & 31]++;\n var _e = hTree(lcfreq, 7), lct = _e[0], mlcb = _e[1];\n var nlcc = 19;\n for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc)\n ;\n var flen = (bl + 5) << 3;\n var ftlen = clen(lf, flt) + clen(df, fdt) + eb;\n var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + (2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18]);\n if (flen <= ftlen && flen <= dtlen)\n return wfblk(out, p, dat.subarray(bs, bs + bl));\n var lm, ll, dm, dl;\n wbits(out, p, 1 + (dtlen < ftlen)), p += 2;\n if (dtlen < ftlen) {\n lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt;\n var llm = hMap(lct, mlcb, 0);\n wbits(out, p, nlc - 257);\n wbits(out, p + 5, ndc - 1);\n wbits(out, p + 10, nlcc - 4);\n p += 14;\n for (var i = 0; i < nlcc; ++i)\n wbits(out, p + 3 * i, lct[clim[i]]);\n p += 3 * nlcc;\n var lcts = [lclt, lcdt];\n for (var it = 0; it < 2; ++it) {\n var clct = lcts[it];\n for (var i = 0; i < clct.length; ++i) {\n var len = clct[i] & 31;\n wbits(out, p, llm[len]), p += lct[len];\n if (len > 15)\n wbits(out, p, (clct[i] >>> 5) & 127), p += clct[i] >>> 12;\n }\n }\n }\n else {\n lm = flm, ll = flt, dm = fdm, dl = fdt;\n }\n for (var i = 0; i < li; ++i) {\n if (syms[i] > 255) {\n var len = (syms[i] >>> 18) & 31;\n wbits16(out, p, lm[len + 257]), p += ll[len + 257];\n if (len > 7)\n wbits(out, p, (syms[i] >>> 23) & 31), p += fleb[len];\n var dst = syms[i] & 31;\n wbits16(out, p, dm[dst]), p += dl[dst];\n if (dst > 3)\n wbits16(out, p, (syms[i] >>> 5) & 8191), p += fdeb[dst];\n }\n else {\n wbits16(out, p, lm[syms[i]]), p += ll[syms[i]];\n }\n }\n wbits16(out, p, lm[256]);\n return p + ll[256];\n};\n// deflate options (nice << 13) | chain\nvar deo = /*#__PURE__*/ new u32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]);\n// empty\nvar et = /*#__PURE__*/ new u8(0);\n// compresses data into a raw DEFLATE buffer\nvar dflt = function (dat, lvl, plvl, pre, post, lst) {\n var s = dat.length;\n var o = new u8(pre + s + 5 * (1 + Math.floor(s / 7000)) + post);\n // writing to this writes to the output buffer\n var w = o.subarray(pre, o.length - post);\n var pos = 0;\n if (!lvl || s < 8) {\n for (var i = 0; i <= s; i += 65535) {\n // end\n var e = i + 65535;\n if (e < s) {\n // write full block\n pos = wfblk(w, pos, dat.subarray(i, e));\n }\n else {\n // write final block\n w[i] = lst;\n pos = wfblk(w, pos, dat.subarray(i, s));\n }\n }\n }\n else {\n var opt = deo[lvl - 1];\n var n = opt >>> 13, c = opt & 8191;\n var msk_1 = (1 << plvl) - 1;\n // prev 2-byte val map curr 2-byte val map\n var prev = new u16(32768), head = new u16(msk_1 + 1);\n var bs1_1 = Math.ceil(plvl / 3), bs2_1 = 2 * bs1_1;\n var hsh = function (i) { return (dat[i] ^ (dat[i + 1] << bs1_1) ^ (dat[i + 2] << bs2_1)) & msk_1; };\n // 24576 is an arbitrary number of maximum symbols per block\n // 424 buffer for last block\n var syms = new u32(25000);\n // length/literal freq distance freq\n var lf = new u16(288), df = new u16(32);\n // l/lcnt exbits index l/lind waitdx bitpos\n var lc_1 = 0, eb = 0, i = 0, li = 0, wi = 0, bs = 0;\n for (; i < s; ++i) {\n // hash value\n var hv = hsh(i);\n // index mod 32768\n var imod = i & 32767;\n // previous index with this value\n var pimod = head[hv];\n prev[imod] = pimod;\n head[hv] = imod;\n // We always should modify head and prev, but only add symbols if\n // this data is not yet processed (\"wait\" for wait index)\n if (wi <= i) {\n // bytes remaining\n var rem = s - i;\n if ((lc_1 > 7000 || li > 24576) && rem > 423) {\n pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos);\n li = lc_1 = eb = 0, bs = i;\n for (var j = 0; j < 286; ++j)\n lf[j] = 0;\n for (var j = 0; j < 30; ++j)\n df[j] = 0;\n }\n // len dist chain\n var l = 2, d = 0, ch_1 = c, dif = (imod - pimod) & 32767;\n if (rem > 2 && hv == hsh(i - dif)) {\n var maxn = Math.min(n, rem) - 1;\n var maxd = Math.min(32767, i);\n // max possible length\n // not capped at dif because decompressors implement \"rolling\" index population\n var ml = Math.min(258, rem);\n while (dif <= maxd && --ch_1 && imod != pimod) {\n if (dat[i + l] == dat[i + l - dif]) {\n var nl = 0;\n for (; nl < ml && dat[i + nl] == dat[i + nl - dif]; ++nl)\n ;\n if (nl > l) {\n l = nl, d = dif;\n // break out early when we reach \"nice\" (we are satisfied enough)\n if (nl > maxn)\n break;\n // now, find the rarest 2-byte sequence within this\n // length of literals and search for that instead.\n // Much faster than just using the start\n var mmd = Math.min(dif, nl - 2);\n var md = 0;\n for (var j = 0; j < mmd; ++j) {\n var ti = (i - dif + j + 32768) & 32767;\n var pti = prev[ti];\n var cd = (ti - pti + 32768) & 32767;\n if (cd > md)\n md = cd, pimod = ti;\n }\n }\n }\n // check the previous match\n imod = pimod, pimod = prev[imod];\n dif += (imod - pimod + 32768) & 32767;\n }\n }\n // d will be nonzero only when a match was found\n if (d) {\n // store both dist and len data in one Uint32\n // Make sure this is recognized as a len/dist with 28th bit (2^28)\n syms[li++] = 268435456 | (revfl[l] << 18) | revfd[d];\n var lin = revfl[l] & 31, din = revfd[d] & 31;\n eb += fleb[lin] + fdeb[din];\n ++lf[257 + lin];\n ++df[din];\n wi = i + l;\n ++lc_1;\n }\n else {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n }\n }\n pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos);\n // this is the easiest way to avoid needing to maintain state\n if (!lst)\n pos = wfblk(w, pos, et);\n }\n return slc(o, 0, pre + shft(pos) + post);\n};\n// CRC32 table\nvar crct = /*#__PURE__*/ (function () {\n var t = new u32(256);\n for (var i = 0; i < 256; ++i) {\n var c = i, k = 9;\n while (--k)\n c = ((c & 1) && 0xEDB88320) ^ (c >>> 1);\n t[i] = c;\n }\n return t;\n})();\n// CRC32\nvar crc = function () {\n var c = 0xFFFFFFFF;\n return {\n p: function (d) {\n // closures have awful performance\n var cr = c;\n for (var i = 0; i < d.length; ++i)\n cr = crct[(cr & 255) ^ d[i]] ^ (cr >>> 8);\n c = cr;\n },\n d: function () { return c ^ 0xFFFFFFFF; }\n };\n};\n// Alder32\nvar adler = function () {\n var a = 1, b = 0;\n return {\n p: function (d) {\n // closures have awful performance\n var n = a, m = b;\n var l = d.length;\n for (var i = 0; i != l;) {\n var e = Math.min(i + 5552, l);\n for (; i < e; ++i)\n n += d[i], m += n;\n n %= 65521, m %= 65521;\n }\n a = n, b = m;\n },\n d: function () { return ((a >>> 8) << 16 | (b & 255) << 8 | (b >>> 8)) + ((a & 255) << 23) * 2; }\n };\n};\n;\n// deflate with opts\nvar dopt = function (dat, opt, pre, post, st) {\n return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : (12 + opt.mem), pre, post, !st);\n};\n// Walmart object spread\nvar mrg = function (a, b) {\n var o = {};\n for (var k in a)\n o[k] = a[k];\n for (var k in b)\n o[k] = b[k];\n return o;\n};\n// worker clone\n// This is possibly the craziest part of the entire codebase, despite how simple it may seem.\n// The only parameter to this function is a closure that returns an array of variables outside of the function scope.\n// We're going to try to figure out the variable names used in the closure as strings because that is crucial for workerization.\n// We will return an object mapping of true variable name to value (basically, the current scope as a JS object).\n// The reason we can't just use the original variable names is minifiers mangling the toplevel scope.\n// This took me three weeks to figure out how to do.\nvar wcln = function (fn, fnStr, td) {\n var dt = fn();\n var st = fn.toString();\n var ks = st.slice(st.indexOf('[') + 1, st.lastIndexOf(']')).replace(/ /g, '').split(',');\n for (var i = 0; i < dt.length; ++i) {\n var v = dt[i], k = ks[i];\n if (typeof v == 'function') {\n fnStr += ';' + k + '=';\n var st_1 = v.toString();\n if (v.prototype) {\n // for global objects\n if (st_1.indexOf('[native code]') != -1) {\n var spInd = st_1.indexOf(' ', 8) + 1;\n fnStr += st_1.slice(spInd, st_1.indexOf('(', spInd));\n }\n else {\n fnStr += st_1;\n for (var t in v.prototype)\n fnStr += ';' + k + '.prototype.' + t + '=' + v.prototype[t].toString();\n }\n }\n else\n fnStr += st_1;\n }\n else\n td[k] = v;\n }\n return [fnStr, td];\n};\nvar ch = [];\n// clone bufs\nvar cbfs = function (v) {\n var tl = [];\n for (var k in v) {\n if (v[k] instanceof u8 || v[k] instanceof u16 || v[k] instanceof u32)\n tl.push((v[k] = new v[k].constructor(v[k])).buffer);\n }\n return tl;\n};\n// use a worker to execute code\nvar wrkr = function (fns, init, id, cb) {\n var _a;\n if (!ch[id]) {\n var fnStr = '', td_1 = {}, m = fns.length - 1;\n for (var i = 0; i < m; ++i)\n _a = wcln(fns[i], fnStr, td_1), fnStr = _a[0], td_1 = _a[1];\n ch[id] = wcln(fns[m], fnStr, td_1);\n }\n var td = mrg({}, ch[id][1]);\n return wk(ch[id][0] + ';onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage=' + init.toString() + '}', id, td, cbfs(td), cb);\n};\n// base async inflate fn\nvar bInflt = function () { return [u8, u16, u32, fleb, fdeb, clim, fl, fd, flrm, fdrm, rev, hMap, max, bits, bits16, shft, slc, inflt, inflateSync, pbf, gu8]; };\nvar bDflt = function () { return [u8, u16, u32, fleb, fdeb, clim, revfl, revfd, flm, flt, fdm, fdt, rev, deo, et, hMap, wbits, wbits16, hTree, ln, lc, clen, wfblk, wblk, shft, slc, dflt, dopt, deflateSync, pbf]; };\n// gzip extra\nvar gze = function () { return [gzh, gzhl, wbytes, crc, crct]; };\n// gunzip extra\nvar guze = function () { return [gzs, gzl]; };\n// zlib extra\nvar zle = function () { return [zlh, wbytes, adler]; };\n// unzlib extra\nvar zule = function () { return [zlv]; };\n// post buf\nvar pbf = function (msg) { return postMessage(msg, [msg.buffer]); };\n// get u8\nvar gu8 = function (o) { return o && o.size && new u8(o.size); };\n// async helper\nvar cbify = function (dat, opts, fns, init, id, cb) {\n var w = wrkr(fns, init, id, function (err, dat) {\n w.terminate();\n cb(err, dat);\n });\n if (!opts.consume)\n dat = new u8(dat);\n w.postMessage([dat, opts], [dat.buffer]);\n return function () { w.terminate(); };\n};\n// auto stream\nvar astrm = function (strm) {\n strm.ondata = function (dat, final) { return postMessage([dat, final], [dat.buffer]); };\n return function (ev) { return strm.push(ev.data[0], ev.data[1]); };\n};\n// async stream attach\nvar astrmify = function (fns, strm, opts, init, id) {\n var t;\n var w = wrkr(fns, init, id, function (err, dat) {\n if (err)\n w.terminate(), strm.ondata.call(strm, err);\n else {\n if (dat[1])\n w.terminate();\n strm.ondata.call(strm, err, dat[0], dat[1]);\n }\n });\n w.postMessage(opts);\n strm.push = function (d, f) {\n if (t)\n throw 'stream finished';\n if (!strm.ondata)\n throw 'no stream handler';\n w.postMessage([d, t = f], [d.buffer]);\n };\n strm.terminate = function () { w.terminate(); };\n};\n// read 2 bytes\nvar b2 = function (d, b) { return d[b] | (d[b + 1] << 8); };\n// read 4 bytes\nvar b4 = function (d, b) { return (d[b] | (d[b + 1] << 8) | (d[b + 2] << 16)) + (d[b + 3] << 23) * 2; };\n// write bytes\nvar wbytes = function (d, b, v) {\n for (; v; ++b)\n d[b] = v, v >>>= 8;\n};\n// gzip header\nvar gzh = function (c, o) {\n var fn = o.filename;\n c[0] = 31, c[1] = 139, c[2] = 8, c[8] = o.level < 2 ? 4 : o.level == 9 ? 2 : 0, c[9] = 3; // assume Unix\n if (o.mtime != 0)\n wbytes(c, 4, Math.floor(new Date(o.mtime || Date.now()) / 1000));\n if (fn) {\n c[3] = 8;\n for (var i = 0; i <= fn.length; ++i)\n c[i + 10] = fn.charCodeAt(i);\n }\n};\n// gzip footer: -8 to -4 = CRC, -4 to -0 is length\n// gzip start\nvar gzs = function (d) {\n if (d[0] != 31 || d[1] != 139 || d[2] != 8)\n throw 'invalid gzip data';\n var flg = d[3];\n var st = 10;\n if (flg & 4)\n st += d[10] | (d[11] << 8) + 2;\n for (var zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d[st++])\n ;\n return st + (flg & 2);\n};\n// gzip length\nvar gzl = function (d) {\n var l = d.length;\n return (d[l - 4] | d[l - 3] << 8 | d[l - 2] << 16) + (2 * (d[l - 1] << 23));\n};\n// gzip header length\nvar gzhl = function (o) { return 10 + ((o.filename && (o.filename.length + 1)) || 0); };\n// zlib header\nvar zlh = function (c, o) {\n var lv = o.level, fl = lv == 0 ? 0 : lv < 6 ? 1 : lv == 9 ? 3 : 2;\n c[0] = 120, c[1] = (fl << 6) | (fl ? (32 - 2 * fl) : 1);\n};\n// zlib valid\nvar zlv = function (d) {\n if ((d[0] & 15) != 8 || (d[0] >>> 4) > 7 || ((d[0] << 8 | d[1]) % 31))\n throw 'invalid zlib data';\n if (d[1] & 32)\n throw 'invalid zlib data: preset dictionaries not supported';\n};\nfunction AsyncCmpStrm(opts, cb) {\n if (!cb && typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n return opts;\n}\n// zlib footer: -4 to -0 is Adler32\n/**\n * Streaming DEFLATE compression\n */\nvar Deflate = /*#__PURE__*/ (function () {\n function Deflate(opts, cb) {\n if (!cb && typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n this.o = opts || {};\n }\n Deflate.prototype.p = function (c, f) {\n this.ondata(dopt(c, this.o, 0, 0, !f), f);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Deflate.prototype.push = function (chunk, final) {\n if (this.d)\n throw 'stream finished';\n if (!this.ondata)\n throw 'no stream handler';\n this.d = final;\n this.p(chunk, final || false);\n };\n return Deflate;\n}());\nexport { Deflate };\n/**\n * Asynchronous streaming DEFLATE compression\n */\nvar AsyncDeflate = /*#__PURE__*/ (function () {\n function AsyncDeflate(opts, cb) {\n astrmify([\n bDflt,\n function () { return [astrm, Deflate]; }\n ], this, AsyncCmpStrm.call(this, opts, cb), function (ev) {\n var strm = new Deflate(ev.data);\n onmessage = astrm(strm);\n }, 6);\n }\n return AsyncDeflate;\n}());\nexport { AsyncDeflate };\nexport function deflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n return cbify(data, opts, [\n bDflt,\n ], function (ev) { return pbf(deflateSync(ev.data[0], ev.data[1])); }, 0, cb);\n}\n/**\n * Compresses data with DEFLATE without any wrapper\n * @param data The data to compress\n * @param opts The compression options\n * @returns The deflated version of the data\n */\nexport function deflateSync(data, opts) {\n if (opts === void 0) { opts = {}; }\n return dopt(data, opts, 0, 0);\n}\n/**\n * Streaming DEFLATE decompression\n */\nvar Inflate = /*#__PURE__*/ (function () {\n /**\n * Creates an inflation stream\n * @param cb The callback to call whenever data is inflated\n */\n function Inflate(cb) {\n this.s = {};\n this.p = new u8(0);\n this.ondata = cb;\n }\n Inflate.prototype.e = function (c) {\n if (this.d)\n throw 'stream finished';\n if (!this.ondata)\n throw 'no stream handler';\n var l = this.p.length;\n var n = new u8(l + c.length);\n n.set(this.p), n.set(c, l), this.p = n;\n };\n Inflate.prototype.c = function (final) {\n this.d = this.s.i = final || false;\n var bts = this.s.b;\n var dt = inflt(this.p, this.o, this.s);\n this.ondata(slc(dt, bts, this.s.b), this.d);\n this.o = slc(dt, this.s.b - 32768), this.s.b = this.o.length;\n this.p = slc(this.p, (this.s.p / 8) >> 0), this.s.p &= 7;\n };\n /**\n * Pushes a chunk to be inflated\n * @param chunk The chunk to push\n * @param final Whether this is the final chunk\n */\n Inflate.prototype.push = function (chunk, final) {\n this.e(chunk), this.c(final);\n };\n return Inflate;\n}());\nexport { Inflate };\n/**\n * Asynchronous streaming DEFLATE decompression\n */\nvar AsyncInflate = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous inflation stream\n * @param cb The callback to call whenever data is deflated\n */\n function AsyncInflate(cb) {\n this.ondata = cb;\n astrmify([\n bInflt,\n function () { return [astrm, Inflate]; }\n ], this, 0, function () {\n var strm = new Inflate();\n onmessage = astrm(strm);\n }, 7);\n }\n return AsyncInflate;\n}());\nexport { AsyncInflate };\nexport function inflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n return cbify(data, opts, [\n bInflt\n ], function (ev) { return pbf(inflateSync(ev.data[0], gu8(ev.data[1]))); }, 1, cb);\n}\n/**\n * Expands DEFLATE data with no wrapper\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\nexport function inflateSync(data, out) {\n return inflt(data, out);\n}\n// before you yell at me for not just using extends, my reason is that TS inheritance is hard to workerize.\n/**\n * Streaming GZIP compression\n */\nvar Gzip = /*#__PURE__*/ (function () {\n function Gzip(opts, cb) {\n this.c = crc();\n this.l = 0;\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gzip.prototype.push = function (chunk, final) {\n Deflate.prototype.push.call(this, chunk, final);\n };\n Gzip.prototype.p = function (c, f) {\n this.c.p(c);\n this.l += c.length;\n var raw = dopt(c, this.o, this.v && gzhl(this.o), f && 8, !f);\n if (this.v)\n gzh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 8, this.c.d()), wbytes(raw, raw.length - 4, this.l);\n this.ondata(raw, f);\n };\n return Gzip;\n}());\nexport { Gzip };\n/**\n * Asynchronous streaming GZIP compression\n */\nvar AsyncGzip = /*#__PURE__*/ (function () {\n function AsyncGzip(opts, cb) {\n astrmify([\n bDflt,\n gze,\n function () { return [astrm, Deflate, Gzip]; }\n ], this, AsyncCmpStrm.call(this, opts, cb), function (ev) {\n var strm = new Gzip(ev.data);\n onmessage = astrm(strm);\n }, 8);\n }\n return AsyncGzip;\n}());\nexport { AsyncGzip };\nexport function gzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n return cbify(data, opts, [\n bDflt,\n gze,\n function () { return [gzipSync]; }\n ], function (ev) { return pbf(gzipSync(ev.data[0], ev.data[1])); }, 2, cb);\n}\n/**\n * Compresses data with GZIP\n * @param data The data to compress\n * @param opts The compression options\n * @returns The gzipped version of the data\n */\nexport function gzipSync(data, opts) {\n if (opts === void 0) { opts = {}; }\n var c = crc(), l = data.length;\n c.p(data);\n var d = dopt(data, opts, gzhl(opts), 8), s = d.length;\n return gzh(d, opts), wbytes(d, s - 8, c.d()), wbytes(d, s - 4, l), d;\n}\n/**\n * Streaming GZIP decompression\n */\nvar Gunzip = /*#__PURE__*/ (function () {\n /**\n * Creates a GUNZIP stream\n * @param cb The callback to call whenever data is inflated\n */\n function Gunzip(cb) {\n this.v = 1;\n Inflate.call(this, cb);\n }\n /**\n * Pushes a chunk to be GUNZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gunzip.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n if (this.v) {\n var s = gzs(this.p);\n if (s >= this.p.length && !final)\n return;\n this.p = this.p.subarray(s), this.v = 0;\n }\n if (final) {\n if (this.p.length < 8)\n throw 'invalid gzip stream';\n this.p = this.p.subarray(0, -8);\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n };\n return Gunzip;\n}());\nexport { Gunzip };\n/**\n * Asynchronous streaming GZIP decompression\n */\nvar AsyncGunzip = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous GUNZIP stream\n * @param cb The callback to call whenever data is deflated\n */\n function AsyncGunzip(cb) {\n this.ondata = cb;\n astrmify([\n bInflt,\n guze,\n function () { return [astrm, Inflate, Gunzip]; }\n ], this, 0, function () {\n var strm = new Gunzip();\n onmessage = astrm(strm);\n }, 9);\n }\n return AsyncGunzip;\n}());\nexport { AsyncGunzip };\nexport function gunzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n return cbify(data, opts, [\n bInflt,\n guze,\n function () { return [gunzipSync]; }\n ], function (ev) { return pbf(gunzipSync(ev.data[0])); }, 3, cb);\n}\n/**\n * Expands GZIP data\n * @param data The data to decompress\n * @param out Where to write the data. GZIP already encodes the output size, so providing this doesn't save memory.\n * @returns The decompressed version of the data\n */\nexport function gunzipSync(data, out) {\n return inflt(data.subarray(gzs(data), -8), out || new u8(gzl(data)));\n}\n/**\n * Streaming Zlib compression\n */\nvar Zlib = /*#__PURE__*/ (function () {\n function Zlib(opts, cb) {\n this.c = adler();\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be zlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Zlib.prototype.push = function (chunk, final) {\n Deflate.prototype.push.call(this, chunk, final);\n };\n Zlib.prototype.p = function (c, f) {\n this.c.p(c);\n var raw = dopt(c, this.o, this.v && 2, f && 4, !f);\n if (this.v)\n zlh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 4, this.c.d());\n this.ondata(raw, f);\n };\n return Zlib;\n}());\nexport { Zlib };\n/**\n * Asynchronous streaming Zlib compression\n */\nvar AsyncZlib = /*#__PURE__*/ (function () {\n function AsyncZlib(opts, cb) {\n astrmify([\n bDflt,\n zle,\n function () { return [astrm, Deflate, Zlib]; }\n ], this, AsyncCmpStrm.call(this, opts, cb), function (ev) {\n var strm = new Zlib(ev.data);\n onmessage = astrm(strm);\n }, 10);\n }\n return AsyncZlib;\n}());\nexport { AsyncZlib };\nexport function zlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n return cbify(data, opts, [\n bDflt,\n zle,\n function () { return [zlibSync]; }\n ], function (ev) { return pbf(zlibSync(ev.data[0], ev.data[1])); }, 4, cb);\n}\n/**\n * Compress data with Zlib\n * @param data The data to compress\n * @param opts The compression options\n * @returns The zlib-compressed version of the data\n */\nexport function zlibSync(data, opts) {\n if (opts === void 0) { opts = {}; }\n var a = adler();\n a.p(data);\n var d = dopt(data, opts, 2, 4);\n return zlh(d, opts), wbytes(d, d.length - 4, a.d()), d;\n}\n/**\n * Streaming Zlib decompression\n */\nvar Unzlib = /*#__PURE__*/ (function () {\n /**\n * Creates a Zlib decompression stream\n * @param cb The callback to call whenever data is inflated\n */\n function Unzlib(cb) {\n this.v = 1;\n Inflate.call(this, cb);\n }\n /**\n * Pushes a chunk to be unzlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzlib.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n if (this.v) {\n if (this.p.length < 2 && !final)\n return;\n this.p = this.p.subarray(2), this.v = 0;\n }\n if (final) {\n if (this.p.length < 4)\n throw 'invalid zlib stream';\n this.p = this.p.subarray(0, -4);\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n };\n return Unzlib;\n}());\nexport { Unzlib };\n/**\n * Asynchronous streaming Zlib decompression\n */\nvar AsyncUnzlib = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous Zlib decompression stream\n * @param cb The callback to call whenever data is deflated\n */\n function AsyncUnzlib(cb) {\n this.ondata = cb;\n astrmify([\n bInflt,\n zule,\n function () { return [astrm, Inflate, Unzlib]; }\n ], this, 0, function () {\n var strm = new Unzlib();\n onmessage = astrm(strm);\n }, 11);\n }\n return AsyncUnzlib;\n}());\nexport { AsyncUnzlib };\nexport function unzlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n return cbify(data, opts, [\n bInflt,\n zule,\n function () { return [unzlibSync]; }\n ], function (ev) { return pbf(unzlibSync(ev.data[0], gu8(ev.data[1]))); }, 5, cb);\n}\n/**\n * Expands Zlib data\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\nexport function unzlibSync(data, out) {\n return inflt((zlv(data), data.subarray(2, -4)), out);\n}\n// Default algorithm for compression (used because having a known output size allows faster decompression)\nexport { gzip as compress, AsyncGzip as AsyncCompress };\n// Default algorithm for compression (used because having a known output size allows faster decompression)\nexport { gzipSync as compressSync, Gzip as Compress };\n/**\n * Streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar Decompress = /*#__PURE__*/ (function () {\n /**\n * Creates a decompression stream\n * @param cb The callback to call whenever data is decompressed\n */\n function Decompress(cb) {\n this.G = Gunzip;\n this.I = Inflate;\n this.Z = Unzlib;\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Decompress.prototype.push = function (chunk, final) {\n if (!this.ondata)\n throw 'no stream handler';\n if (!this.s) {\n if (this.p && this.p.length) {\n var n = new u8(this.p.length + chunk.length);\n n.set(this.p), n.set(chunk, this.p.length);\n }\n else\n this.p = chunk;\n if (this.p.length > 2) {\n var _this_1 = this;\n var cb = function () { _this_1.ondata.apply(_this_1, arguments); };\n this.s = (this.p[0] == 31 && this.p[1] == 139 && this.p[2] == 8)\n ? new this.G(cb)\n : ((this.p[0] & 15) != 8 || (this.p[0] >> 4) > 7 || ((this.p[0] << 8 | this.p[1]) % 31))\n ? new this.I(cb)\n : new this.Z(cb);\n this.s.push(this.p, final);\n this.p = null;\n }\n }\n else\n this.s.push(chunk, final);\n };\n return Decompress;\n}());\nexport { Decompress };\n/**\n * Asynchronous streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar AsyncDecompress = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous decompression stream\n * @param cb The callback to call whenever data is decompressed\n */\n function AsyncDecompress(cb) {\n this.G = AsyncGunzip;\n this.I = AsyncInflate;\n this.Z = AsyncUnzlib;\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncDecompress.prototype.push = function (chunk, final) {\n Decompress.prototype.push.call(this, chunk, final);\n };\n return AsyncDecompress;\n}());\nexport { AsyncDecompress };\nexport function decompress(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzip(data, opts, cb)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflate(data, opts, cb)\n : unzlib(data, opts, cb);\n}\n/**\n * Expands compressed GZIP, Zlib, or raw DEFLATE data, automatically detecting the format\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\nexport function decompressSync(data, out) {\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzipSync(data, out)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflateSync(data, out)\n : unzlibSync(data, out);\n}\n// flatten a directory structure\nvar fltn = function (d, p, t, o) {\n for (var k in d) {\n var val = d[k], n = p + k;\n if (val instanceof u8)\n t[n] = [val, o];\n else if (Array.isArray(val))\n t[n] = [val[0], mrg(o, val[1])];\n else\n fltn(val, n + '/', t, o);\n }\n};\n/**\n * Converts a string into a Uint8Array for use with compression/decompression methods\n * @param str The string to encode\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless decoding a binary string.\n * @returns The string encoded in UTF-8/Latin-1 binary\n */\nexport function strToU8(str, latin1) {\n var l = str.length;\n if (!latin1 && typeof TextEncoder != 'undefined')\n return new TextEncoder().encode(str);\n var ar = new u8(str.length + (str.length >>> 1));\n var ai = 0;\n var w = function (v) { ar[ai++] = v; };\n for (var i = 0; i < l; ++i) {\n if (ai + 5 > ar.length) {\n var n = new u8(ai + 8 + ((l - i) << 1));\n n.set(ar);\n ar = n;\n }\n var c = str.charCodeAt(i);\n if (c < 128 || latin1)\n w(c);\n else if (c < 2048)\n w(192 | (c >>> 6)), w(128 | (c & 63));\n else if (c > 55295 && c < 57344)\n c = 65536 + (c & 1023 << 10) | (str.charCodeAt(++i) & 1023),\n w(240 | (c >>> 18)), w(128 | ((c >>> 12) & 63)), w(128 | ((c >>> 6) & 63)), w(128 | (c & 63));\n else\n w(224 | (c >>> 12)), w(128 | ((c >>> 6) & 63)), w(128 | (c & 63));\n }\n return slc(ar, 0, ai);\n}\n/**\n * Converts a Uint8Array to a string\n * @param dat The data to decode to string\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless encoding to binary string.\n * @returns The original UTF-8/Latin-1 string\n */\nexport function strFromU8(dat, latin1) {\n var r = '';\n if (!latin1 && typeof TextDecoder != 'undefined')\n return new TextDecoder().decode(dat);\n for (var i = 0; i < dat.length;) {\n var c = dat[i++];\n if (c < 128 || latin1)\n r += String.fromCharCode(c);\n else if (c < 224)\n r += String.fromCharCode((c & 31) << 6 | (dat[i++] & 63));\n else if (c < 240)\n r += String.fromCharCode((c & 15) << 12 | (dat[i++] & 63) << 6 | (dat[i++] & 63));\n else\n c = ((c & 15) << 18 | (dat[i++] & 63) << 12 | (dat[i++] & 63) << 6 | (dat[i++] & 63)) - 65536,\n r += String.fromCharCode(55296 | (c >> 10), 56320 | (c & 1023));\n }\n return r;\n}\n;\n// skip local zip header\nvar slzh = function (d, b) { return b + 30 + b2(d, b + 26) + b2(d, b + 28); };\n// read zip header\nvar zh = function (d, b, z) {\n var fnl = b2(d, b + 28), fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)), es = b + 46 + fnl;\n var _a = z ? z64e(d, es) : [b4(d, b + 20), b4(d, b + 24), b4(d, b + 42)], sc = _a[0], su = _a[1], off = _a[2];\n return [b2(d, b + 10), sc, su, fn, es + b2(d, b + 30) + b2(d, b + 32), off];\n};\n// read zip64 extra field\nvar z64e = function (d, b) {\n for (; b2(d, b) != 1; b += 4 + b2(d, b + 2))\n ;\n return [b4(d, b + 12), b4(d, b + 4), b4(d, b + 20)];\n};\n// write zip header\nvar wzh = function (d, b, c, cmp, su, fn, u, o, ce, t) {\n var fl = fn.length, l = cmp.length;\n wbytes(d, b, ce != null ? 0x2014B50 : 0x4034B50), b += 4;\n if (ce != null)\n d[b] = 20, b += 2;\n d[b] = 20, b += 2; // spec compliance? what's that?\n d[b++] = (t == 8 && (o.level == 1 ? 6 : o.level < 6 ? 4 : o.level == 9 ? 2 : 0)), d[b++] = u && 8;\n d[b] = t, b += 2;\n var dt = new Date(o.mtime || Date.now()), y = dt.getFullYear() - 1980;\n if (y < 0 || y > 119)\n throw 'date not in range 1980-2099';\n wbytes(d, b, ((y << 24) * 2) | ((dt.getMonth() + 1) << 21) | (dt.getDate() << 16) | (dt.getHours() << 11) | (dt.getMinutes() << 5) | (dt.getSeconds() >>> 1));\n b += 4;\n wbytes(d, b, c);\n wbytes(d, b + 4, l);\n wbytes(d, b + 8, su);\n wbytes(d, b + 12, fl), b += 16; // skip extra field, comment\n if (ce != null)\n wbytes(d, b += 10, ce), b += 4;\n d.set(fn, b);\n b += fl;\n if (ce == null)\n d.set(cmp, b);\n};\n// write zip footer (end of central directory)\nvar wzf = function (o, b, c, d, e) {\n wbytes(o, b, 0x6054B50); // skip disk\n wbytes(o, b + 8, c);\n wbytes(o, b + 10, c);\n wbytes(o, b + 12, d);\n wbytes(o, b + 16, e);\n};\nexport function zip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n var r = {};\n fltn(data, '', r, opts);\n var k = Object.keys(r);\n var lft = k.length, o = 0, tot = 0;\n var slft = lft, files = new Array(lft);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var cbf = function () {\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n tot = 0;\n for (var i = 0; i < slft; ++i) {\n var f = files[i];\n try {\n wzh(out, tot, f.c, f.d, f.m, f.n, f.u, f.p, null, f.t);\n wzh(out, o, f.c, f.d, f.m, f.n, f.u, f.p, tot, f.t), o += 46 + f.n.length, tot += 30 + f.n.length + f.d.length;\n }\n catch (e) {\n return cb(e, null);\n }\n }\n wzf(out, o, files.length, cdl, oe);\n cb(null, out);\n };\n if (!lft)\n cbf();\n var _loop_1 = function (i) {\n var fn = k[i];\n var _a = r[fn], file = _a[0], p = _a[1];\n var c = crc(), m = file.length;\n c.p(file);\n var n = strToU8(fn), s = n.length;\n var t = p.level == 0 ? 0 : 8;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cb(e, null);\n }\n else {\n var l = d.length;\n files[i] = {\n t: t,\n d: d,\n m: m,\n c: c.d(),\n u: fn.length != l,\n n: n,\n p: p\n };\n o += 30 + s + l;\n tot += 76 + 2 * s + l;\n if (!--lft)\n cbf();\n }\n };\n if (n.length > 65535)\n cbl('filename too long', null);\n if (!t)\n cbl(null, file);\n else if (m < 160000) {\n try {\n cbl(null, deflateSync(file, p));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(deflate(file, p, cbl));\n };\n // Cannot use lft because it can decrease\n for (var i = 0; i < slft; ++i) {\n _loop_1(i);\n }\n return tAll;\n}\n/**\n * Synchronously creates a ZIP file. Prefer using `zip` for better performance\n * with more than one file.\n * @param data The directory structure for the ZIP archive\n * @param opts The main options, merged with per-file options\n * @returns The generated ZIP archive\n */\nexport function zipSync(data, opts) {\n if (opts === void 0) { opts = {}; }\n var r = {};\n var files = [];\n fltn(data, '', r, opts);\n var o = 0;\n var tot = 0;\n for (var fn in r) {\n var _a = r[fn], file = _a[0], p = _a[1];\n var t = p.level == 0 ? 0 : 8;\n var n = strToU8(fn), s = n.length;\n if (n.length > 65535)\n throw 'filename too long';\n var d = t ? deflateSync(file, p) : file, l = d.length;\n var c = crc();\n c.p(file);\n files.push({\n t: t,\n d: d,\n m: file.length,\n c: c.d(),\n u: fn.length != s,\n n: n,\n o: o,\n p: p\n });\n o += 30 + s + l;\n tot += 76 + 2 * s + l;\n }\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n for (var i = 0; i < files.length; ++i) {\n var f = files[i];\n wzh(out, f.o, f.c, f.d, f.m, f.n, f.u, f.p, null, f.t);\n wzh(out, o, f.c, f.d, f.m, f.n, f.u, f.p, f.o, f.t), o += 46 + f.n.length;\n }\n wzf(out, o, files.length, cdl, oe);\n return out;\n}\n/**\n * Asynchronously decompresses a ZIP archive\n * @param data The raw compressed ZIP file\n * @param cb The callback to call with the decompressed files\n * @returns A function that can be used to immediately terminate the unzipping\n */\nexport function unzip(data, cb) {\n if (typeof cb != 'function')\n throw 'no callback';\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var files = {};\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558) {\n cb('invalid zip file', null);\n return;\n }\n }\n ;\n var lft = b2(data, e + 8);\n if (!lft)\n cb(null, {});\n var c = lft;\n var o = b4(data, e + 16);\n var z = o == 4294967295;\n if (z) {\n e = b4(data, e - 12);\n if (b4(data, e) != 0x6064B50)\n throw 'invalid zip file';\n c = lft = b4(data, e + 32);\n o = b4(data, e + 48);\n }\n var _loop_2 = function (i) {\n var _a = zh(data, o, z), c_1 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cb(e, null);\n }\n else {\n files[fn] = d;\n if (!--lft)\n cb(null, files);\n }\n };\n if (!c_1)\n cbl(null, slc(data, b, b + sc));\n else if (c_1 == 8) {\n var infl = data.subarray(b, b + sc);\n if (sc < 320000) {\n try {\n cbl(null, inflateSync(infl, new u8(su)));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(inflate(infl, { size: su }, cbl));\n }\n else\n cbl('unknown compression type ' + c_1, null);\n };\n for (var i = 0; i < c; ++i) {\n _loop_2(i);\n }\n return tAll;\n}\n/**\n * Synchronously decompresses a ZIP archive. Prefer using `unzip` for better\n * performance with more than one file.\n * @param data The raw compressed ZIP file\n * @returns The decompressed files\n */\nexport function unzipSync(data) {\n var files = {};\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558)\n throw 'invalid zip file';\n }\n ;\n var c = b2(data, e + 8);\n if (!c)\n return {};\n var o = b4(data, e + 16);\n var z = o == 4294967295;\n if (z) {\n e = b4(data, e - 12);\n if (b4(data, e) != 0x6064B50)\n throw 'invalid zip file';\n c = b4(data, e + 32);\n o = b4(data, e + 48);\n }\n for (var i = 0; i < c; ++i) {\n var _a = zh(data, o, z), c_2 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n if (!c_2)\n files[fn] = slc(data, b, b + sc);\n else if (c_2 == 8)\n files[fn] = inflateSync(data.subarray(b, b + sc), new u8(su));\n else\n throw 'unknown compression type ' + c_2;\n }\n return files;\n}\n","export var globalObject = (function() {\n return \"undefined\" !== typeof window\n ? window\n : \"undefined\" !== typeof global\n ? global\n : \"undefined\" !== typeof self\n ? self\n : this;\n})();\n","import { globalObject } from \"./globalObject.js\";\n\nfunction consoleLog() {\n if (globalObject.console && typeof globalObject.console.log === \"function\") {\n globalObject.console.log.apply(globalObject.console, arguments);\n }\n}\n\nfunction consoleWarn(str) {\n if (globalObject.console) {\n if (typeof globalObject.console.warn === \"function\") {\n globalObject.console.warn.apply(globalObject.console, arguments);\n } else {\n consoleLog.call(null, arguments);\n }\n }\n}\n\nfunction consoleError(str) {\n if (globalObject.console) {\n if (typeof globalObject.console.error === \"function\") {\n globalObject.console.error.apply(globalObject.console, arguments);\n } else {\n consoleLog(str);\n }\n }\n}\nexport var console = {\n log: consoleLog,\n warn: consoleWarn,\n error: consoleError\n};\n","/**\n * @license\n * FileSaver.js\n * A saveAs() FileSaver implementation.\n *\n * By Eli Grey, http://eligrey.com\n *\n * License : https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md (MIT)\n * source : http://purl.eligrey.com/github/FileSaver.js\n */\n\nimport { globalObject as _global } from \"./globalObject.js\";\nimport { console } from \"./console.js\";\n\nfunction bom(blob, opts) {\n if (typeof opts === \"undefined\") opts = { autoBom: false };\n else if (typeof opts !== \"object\") {\n console.warn(\"Deprecated: Expected third argument to be a object\");\n opts = { autoBom: !opts };\n }\n\n // prepend BOM for UTF-8 XML and text/* types (including HTML)\n // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF\n if (\n opts.autoBom &&\n /^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(\n blob.type\n )\n ) {\n return new Blob([String.fromCharCode(0xfeff), blob], { type: blob.type });\n }\n return blob;\n}\n\nfunction download(url, name, opts) {\n var xhr = new XMLHttpRequest();\n xhr.open(\"GET\", url);\n xhr.responseType = \"blob\";\n xhr.onload = function() {\n saveAs(xhr.response, name, opts);\n };\n xhr.onerror = function() {\n console.error(\"could not download file\");\n };\n xhr.send();\n}\n\nfunction corsEnabled(url) {\n var xhr = new XMLHttpRequest();\n // use sync to avoid popup blocker\n xhr.open(\"HEAD\", url, false);\n try {\n xhr.send();\n } catch (e) {}\n return xhr.status >= 200 && xhr.status <= 299;\n}\n\n// `a.click()` doesn't work for all browsers (#465)\nfunction click(node) {\n try {\n node.dispatchEvent(new MouseEvent(\"click\"));\n } catch (e) {\n var evt = document.createEvent(\"MouseEvents\");\n evt.initMouseEvent(\n \"click\",\n true,\n true,\n window,\n 0,\n 0,\n 0,\n 80,\n 20,\n false,\n false,\n false,\n false,\n 0,\n null\n );\n node.dispatchEvent(evt);\n }\n}\n\nvar saveAs =\n _global.saveAs ||\n // probably in some web worker\n (typeof window !== \"object\" || window !== _global\n ? function saveAs() {\n /* noop */\n }\n : // Use download attribute first if possible (#193 Lumia mobile) unless this is a native app\n typeof HTMLAnchorElement !== \"undefined\" &&\n \"download\" in HTMLAnchorElement.prototype\n ? function saveAs(blob, name, opts) {\n var URL = _global.URL || _global.webkitURL;\n var a = document.createElement(\"a\");\n name = name || blob.name || \"download\";\n\n a.download = name;\n a.rel = \"noopener\"; // tabnabbing\n\n // TODO: detect chrome extensions & packaged apps\n // a.target = '_blank'\n\n if (typeof blob === \"string\") {\n // Support regular links\n a.href = blob;\n if (a.origin !== location.origin) {\n corsEnabled(a.href)\n ? download(blob, name, opts)\n : click(a, (a.target = \"_blank\"));\n } else {\n click(a);\n }\n } else {\n // Support blobs\n a.href = URL.createObjectURL(blob);\n setTimeout(function() {\n URL.revokeObjectURL(a.href);\n }, 4e4); // 40s\n setTimeout(function() {\n click(a);\n }, 0);\n }\n }\n : // Use msSaveOrOpenBlob as a second approach\n \"msSaveOrOpenBlob\" in navigator\n ? function saveAs(blob, name, opts) {\n name = name || blob.name || \"download\";\n\n if (typeof blob === \"string\") {\n if (corsEnabled(blob)) {\n download(blob, name, opts);\n } else {\n var a = document.createElement(\"a\");\n a.href = blob;\n a.target = \"_blank\";\n setTimeout(function() {\n click(a);\n });\n }\n } else {\n navigator.msSaveOrOpenBlob(bom(blob, opts), name);\n }\n }\n : // Fallback to using FileReader and a popup\n function saveAs(blob, name, opts, popup) {\n // Open a popup immediately do go around popup blocker\n // Mostly only available on user interaction and the fileReader is async so...\n popup = popup || open(\"\", \"_blank\");\n if (popup) {\n popup.document.title = popup.document.body.innerText =\n \"downloading...\";\n }\n\n if (typeof blob === \"string\") return download(blob, name, opts);\n\n var force = blob.type === \"application/octet-stream\";\n var isSafari =\n /constructor/i.test(_global.HTMLElement) || _global.safari;\n var isChromeIOS = /CriOS\\/[\\d]+/.test(navigator.userAgent);\n\n if (\n (isChromeIOS || (force && isSafari)) &&\n typeof FileReader === \"object\"\n ) {\n // Safari doesn't allow downloading of blob URLs\n var reader = new FileReader();\n reader.onloadend = function() {\n var url = reader.result;\n url = isChromeIOS\n ? url\n : url.replace(/^data:[^;]*;/, \"data:attachment/file;\");\n if (popup) popup.location.href = url;\n else location = url;\n popup = null; // reverse-tabnabbing #460\n };\n reader.readAsDataURL(blob);\n } else {\n var URL = _global.URL || _global.webkitURL;\n var url = URL.createObjectURL(blob);\n if (popup) popup.location = url;\n else location.href = url;\n popup = null; // reverse-tabnabbing #460\n setTimeout(function() {\n URL.revokeObjectURL(url);\n }, 4e4); // 40s\n }\n });\n\nexport { saveAs };\n","import { globalObject } from \"./globalObject.js\";\n\nvar atob, btoa;\n\n(function() {\n atob = globalObject.atob.bind(globalObject);\n btoa = globalObject.btoa.bind(globalObject);\n return;\n\n})();\n\nexport { atob, btoa };\n","/**\n * A class to parse color values\n * @author Stoyan Stefanov <sstoo@gmail.com>\n * {@link http://www.phpied.com/rgb-color-parser-in-javascript/}\n * @license Use it if you like it\n */\n\nfunction RGBColor(color_string) {\n color_string = color_string || \"\";\n this.ok = false;\n\n // strip any leading #\n if (color_string.charAt(0) == \"#\") {\n // remove # if any\n color_string = color_string.substr(1, 6);\n }\n\n color_string = color_string.replace(/ /g, \"\");\n color_string = color_string.toLowerCase();\n\n var channels;\n\n // before getting into regexps, try simple matches\n // and overwrite the input\n var simple_colors = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"00ffff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000000\",\n blanchedalmond: \"ffebcd\",\n blue: \"0000ff\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"00ffff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dodgerblue: \"1e90ff\",\n feldspar: \"d19275\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"ff00ff\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgrey: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslateblue: \"8470ff\",\n lightslategray: \"778899\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"00ff00\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"ff00ff\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370d8\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"d87093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n red: \"ff0000\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n violetred: \"d02090\",\n wheat: \"f5deb3\",\n white: \"ffffff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ffff00\",\n yellowgreen: \"9acd32\"\n };\n color_string = simple_colors[color_string] || color_string;\n\n // array of color definition objects\n var color_defs = [\n {\n re: /^rgb\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\)$/,\n example: [\"rgb(123, 234, 45)\", \"rgb(255,234,245)\"],\n process: function(bits) {\n return [parseInt(bits[1]), parseInt(bits[2]), parseInt(bits[3])];\n }\n },\n {\n re: /^(\\w{2})(\\w{2})(\\w{2})$/,\n example: [\"#00ff00\", \"336699\"],\n process: function(bits) {\n return [\n parseInt(bits[1], 16),\n parseInt(bits[2], 16),\n parseInt(bits[3], 16)\n ];\n }\n },\n {\n re: /^(\\w{1})(\\w{1})(\\w{1})$/,\n example: [\"#fb0\", \"f0f\"],\n process: function(bits) {\n return [\n parseInt(bits[1] + bits[1], 16),\n parseInt(bits[2] + bits[2], 16),\n parseInt(bits[3] + bits[3], 16)\n ];\n }\n }\n ];\n\n // search through the definitions to find a match\n for (var i = 0; i < color_defs.length; i++) {\n var re = color_defs[i].re;\n var processor = color_defs[i].process;\n var bits = re.exec(color_string);\n if (bits) {\n channels = processor(bits);\n this.r = channels[0];\n this.g = channels[1];\n this.b = channels[2];\n this.ok = true;\n }\n }\n\n // validate/cleanup values\n this.r = this.r < 0 || isNaN(this.r) ? 0 : this.r > 255 ? 255 : this.r;\n this.g = this.g < 0 || isNaN(this.g) ? 0 : this.g > 255 ? 255 : this.g;\n this.b = this.b < 0 || isNaN(this.b) ? 0 : this.b > 255 ? 255 : this.b;\n\n // some getters\n this.toRGB = function() {\n return \"rgb(\" + this.r + \", \" + this.g + \", \" + this.b + \")\";\n };\n this.toHex = function() {\n var r = this.r.toString(16);\n var g = this.g.toString(16);\n var b = this.b.toString(16);\n if (r.length == 1) r = \"0\" + r;\n if (g.length == 1) g = \"0\" + g;\n if (b.length == 1) b = \"0\" + b;\n return \"#\" + r + g + b;\n };\n}\n\nexport { RGBColor };\n","/**\n * @license\n * Joseph Myers does not specify a particular license for his work.\n *\n * Author: Joseph Myers\n * Accessed from: http://www.myersdaily.org/joseph/javascript/md5.js\n *\n * Modified by: Owen Leong\n */\n\nfunction md5cycle(x, k) {\n var a = x[0],\n b = x[1],\n c = x[2],\n d = x[3];\n\n a = ff(a, b, c, d, k[0], 7, -680876936);\n d = ff(d, a, b, c, k[1], 12, -389564586);\n c = ff(c, d, a, b, k[2], 17, 606105819);\n b = ff(b, c, d, a, k[3], 22, -1044525330);\n a = ff(a, b, c, d, k[4], 7, -176418897);\n d = ff(d, a, b, c, k[5], 12, 1200080426);\n c = ff(c, d, a, b, k[6], 17, -1473231341);\n b = ff(b, c, d, a, k[7], 22, -45705983);\n a = ff(a, b, c, d, k[8], 7, 1770035416);\n d = ff(d, a, b, c, k[9], 12, -1958414417);\n c = ff(c, d, a, b, k[10], 17, -42063);\n b = ff(b, c, d, a, k[11], 22, -1990404162);\n a = ff(a, b, c, d, k[12], 7, 1804603682);\n d = ff(d, a, b, c, k[13], 12, -40341101);\n c = ff(c, d, a, b, k[14], 17, -1502002290);\n b = ff(b, c, d, a, k[15], 22, 1236535329);\n\n a = gg(a, b, c, d, k[1], 5, -165796510);\n d = gg(d, a, b, c, k[6], 9, -1069501632);\n c = gg(c, d, a, b, k[11], 14, 643717713);\n b = gg(b, c, d, a, k[0], 20, -373897302);\n a = gg(a, b, c, d, k[5], 5, -701558691);\n d = gg(d, a, b, c, k[10], 9, 38016083);\n c = gg(c, d, a, b, k[15], 14, -660478335);\n b = gg(b, c, d, a, k[4], 20, -405537848);\n a = gg(a, b, c, d, k[9], 5, 568446438);\n d = gg(d, a, b, c, k[14], 9, -1019803690);\n c = gg(c, d, a, b, k[3], 14, -187363961);\n b = gg(b, c, d, a, k[8], 20, 1163531501);\n a = gg(a, b, c, d, k[13], 5, -1444681467);\n d = gg(d, a, b, c, k[2], 9, -51403784);\n c = gg(c, d, a, b, k[7], 14, 1735328473);\n b = gg(b, c, d, a, k[12], 20, -1926607734);\n\n a = hh(a, b, c, d, k[5], 4, -378558);\n d = hh(d, a, b, c, k[8], 11, -2022574463);\n c = hh(c, d, a, b, k[11], 16, 1839030562);\n b = hh(b, c, d, a, k[14], 23, -35309556);\n a = hh(a, b, c, d, k[1], 4, -1530992060);\n d = hh(d, a, b, c, k[4], 11, 1272893353);\n c = hh(c, d, a, b, k[7], 16, -155497632);\n b = hh(b, c, d, a, k[10], 23, -1094730640);\n a = hh(a, b, c, d, k[13], 4, 681279174);\n d = hh(d, a, b, c, k[0], 11, -358537222);\n c = hh(c, d, a, b, k[3], 16, -722521979);\n b = hh(b, c, d, a, k[6], 23, 76029189);\n a = hh(a, b, c, d, k[9], 4, -640364487);\n d = hh(d, a, b, c, k[12], 11, -421815835);\n c = hh(c, d, a, b, k[15], 16, 530742520);\n b = hh(b, c, d, a, k[2], 23, -995338651);\n\n a = ii(a, b, c, d, k[0], 6, -198630844);\n d = ii(d, a, b, c, k[7], 10, 1126891415);\n c = ii(c, d, a, b, k[14], 15, -1416354905);\n b = ii(b, c, d, a, k[5], 21, -57434055);\n a = ii(a, b, c, d, k[12], 6, 1700485571);\n d = ii(d, a, b, c, k[3], 10, -1894986606);\n c = ii(c, d, a, b, k[10], 15, -1051523);\n b = ii(b, c, d, a, k[1], 21, -2054922799);\n a = ii(a, b, c, d, k[8], 6, 1873313359);\n d = ii(d, a, b, c, k[15], 10, -30611744);\n c = ii(c, d, a, b, k[6], 15, -1560198380);\n b = ii(b, c, d, a, k[13], 21, 1309151649);\n a = ii(a, b, c, d, k[4], 6, -145523070);\n d = ii(d, a, b, c, k[11], 10, -1120210379);\n c = ii(c, d, a, b, k[2], 15, 718787259);\n b = ii(b, c, d, a, k[9], 21, -343485551);\n\n x[0] = add32(a, x[0]);\n x[1] = add32(b, x[1]);\n x[2] = add32(c, x[2]);\n x[3] = add32(d, x[3]);\n}\n\nfunction cmn(q, a, b, x, s, t) {\n a = add32(add32(a, q), add32(x, t));\n return add32((a << s) | (a >>> (32 - s)), b);\n}\n\nfunction ff(a, b, c, d, x, s, t) {\n return cmn((b & c) | (~b & d), a, b, x, s, t);\n}\n\nfunction gg(a, b, c, d, x, s, t) {\n return cmn((b & d) | (c & ~d), a, b, x, s, t);\n}\n\nfunction hh(a, b, c, d, x, s, t) {\n return cmn(b ^ c ^ d, a, b, x, s, t);\n}\n\nfunction ii(a, b, c, d, x, s, t) {\n return cmn(c ^ (b | ~d), a, b, x, s, t);\n}\n\nfunction md51(s) {\n // txt = '';\n var n = s.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i;\n for (i = 64; i <= s.length; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\n s = s.substring(i - 64);\n var tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n for (i = 0; i < s.length; i++)\n tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\n tail[i >> 2] |= 0x80 << (i % 4 << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i++) tail[i] = 0;\n }\n tail[14] = n * 8;\n md5cycle(state, tail);\n return state;\n}\n\n/* there needs to be support for Unicode here,\n * unless we pretend that we can redefine the MD-5\n * algorithm for multi-byte characters (perhaps\n * by adding every four 16-bit characters and\n * shortening the sum to 32 bits). Otherwise\n * I suggest performing MD-5 as if every character\n * was two bytes--e.g., 0040 0025 = @%--but then\n * how will an ordinary MD-5 sum be matched?\n * There is no way to standardize text to something\n * like UTF-8 before transformation; speed cost is\n * utterly prohibitive. The JavaScript standard\n * itself needs to look at this: it should start\n * providing access to strings as preformed UTF-8\n * 8-bit unsigned value arrays.\n */\nfunction md5blk(s) {\n /* I figured global was faster. */\n var md5blks = [],\n i; /* Andy King said do it this way. */\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] =\n s.charCodeAt(i) +\n (s.charCodeAt(i + 1) << 8) +\n (s.charCodeAt(i + 2) << 16) +\n (s.charCodeAt(i + 3) << 24);\n }\n return md5blks;\n}\n\nvar hex_chr = \"0123456789abcdef\".split(\"\");\n\nfunction rhex(n) {\n var s = \"\",\n j = 0;\n for (; j < 4; j++)\n s += hex_chr[(n >> (j * 8 + 4)) & 0x0f] + hex_chr[(n >> (j * 8)) & 0x0f];\n return s;\n}\n\nfunction hex(x) {\n for (var i = 0; i < x.length; i++) x[i] = rhex(x[i]);\n return x.join(\"\");\n}\n\n// Converts a 4-byte number to byte string\nfunction singleToByteString(n) {\n return String.fromCharCode(\n (n & 0xff) >> 0,\n (n & 0xff00) >> 8,\n (n & 0xff0000) >> 16,\n (n & 0xff000000) >> 24\n );\n}\n\n// Converts an array of numbers to a byte string\nfunction toByteString(x) {\n return x.map(singleToByteString).join(\"\");\n}\n\n// Returns the MD5 hash as a byte string\nfunction md5Bin(s) {\n return toByteString(md51(s));\n}\n\n// Returns MD5 hash as a hex string\nfunction md5(s) {\n return hex(md51(s));\n}\n\nvar md5Check = md5(\"hello\") != \"5d41402abc4b2a76b9719d911017c592\";\n\nfunction add32(a, b) {\n if (md5Check) {\n /* if the md5Check does not match\n the expected value, we're dealing\n with an old browser and need\n this function. */\n var lsw = (a & 0xffff) + (b & 0xffff),\n msw = (a >> 16) + (b >> 16) + (lsw >> 16);\n return (msw << 16) | (lsw & 0xffff);\n } else {\n /* this function is much faster,\n so if possible we use it. Some IEs\n are the only ones I know of that\n need the idiotic second function,\n generated by an if clause. */\n return (a + b) & 0xffffffff;\n }\n}\n\nexport { md5, md5Bin };\n","/**\r\n * @license\r\n * FPDF is released under a permissive license: there is no usage restriction.\r\n * You may embed it freely in your application (commercial or not), with or\r\n * without modifications.\r\n *\r\n * Reference: http://www.fpdf.org/en/script/script37.php\r\n */\r\n\r\nfunction repeat(str, num) {\r\n return new Array(num + 1).join(str);\r\n}\r\n\r\n/**\r\n * Converts a byte string to a hex string\r\n *\r\n * @name rc4\r\n * @function\r\n * @param {string} key Byte string of encryption key\r\n * @param {string} data Byte string of data to be encrypted\r\n * @returns {string} Encrypted string\r\n */\r\nfunction rc4(key, data) {\r\n var lastKey, lastState;\r\n if (key !== lastKey) {\r\n var k = repeat(key, ((256 / key.length) >> 0) + 1);\r\n var state = [];\r\n for (var i = 0; i < 256; i++) {\r\n state[i] = i;\r\n }\r\n var j = 0;\r\n for (var i = 0; i < 256; i++) {\r\n var t = state[i];\r\n j = (j + t + k.charCodeAt(i)) % 256;\r\n state[i] = state[j];\r\n state[j] = t;\r\n }\r\n lastKey = key;\r\n lastState = state;\r\n } else {\r\n state = lastState;\r\n }\r\n var length = data.length;\r\n var a = 0;\r\n var b = 0;\r\n var out = \"\";\r\n for (var i = 0; i < length; i++) {\r\n a = (a + 1) % 256;\r\n t = state[a];\r\n b = (b + t) % 256;\r\n state[a] = state[b];\r\n state[b] = t;\r\n k = state[(state[a] + state[b]) % 256];\r\n out += String.fromCharCode(data.charCodeAt(i) ^ k);\r\n }\r\n return out;\r\n}\r\n\r\nexport { rc4 };\r\n","/**\r\n * @license\r\n * Licensed under the MIT License.\r\n * http://opensource.org/licenses/mit-license\r\n * Author: Owen Leong (@owenl131)\r\n * Date: 15 Oct 2020\r\n * References:\r\n * https://www.cs.cmu.edu/~dst/Adobe/Gallery/anon21jul01-pdf-encryption.txt\r\n * https://github.com/foliojs/pdfkit/blob/master/lib/security.js\r\n * http://www.fpdf.org/en/script/script37.php\r\n */\r\n\r\nimport { md5Bin } from \"./md5.js\";\r\nimport { rc4 } from \"./rc4.js\";\r\n\r\nvar permissionOptions = {\r\n print: 4,\r\n modify: 8,\r\n copy: 16,\r\n \"annot-forms\": 32\r\n};\r\n\r\n/**\r\n * Initializes encryption settings\r\n *\r\n * @name constructor\r\n * @function\r\n * @param {Array} permissions Permissions allowed for user, \"print\", \"modify\", \"copy\" and \"annot-forms\".\r\n * @param {String} userPassword Permissions apply to this user. Leaving this empty means the document\r\n * is not password protected but viewer has the above permissions.\r\n * @param {String} ownerPassword Owner has full functionalities to the file.\r\n * @param {String} fileId As hex string, should be same as the file ID in the trailer.\r\n * @example\r\n * var security = new PDFSecurity([\"print\"])\r\n */\r\nfunction PDFSecurity(permissions, userPassword, ownerPassword, fileId) {\r\n this.v = 1; // algorithm 1, future work can add in more recent encryption schemes\r\n this.r = 2; // revision 2\r\n\r\n // set flags for what functionalities the user can access\r\n let protection = 192;\r\n permissions.forEach(function(perm) {\r\n if (typeof permissionOptions.perm !== \"undefined\") {\r\n throw new Error(\"Invalid permission: \" + perm);\r\n }\r\n protection += permissionOptions[perm];\r\n });\r\n\r\n // padding is used to pad the passwords to 32 bytes, also is hashed and stored in the final PDF\r\n this.padding =\r\n \"\\x28\\xBF\\x4E\\x5E\\x4E\\x75\\x8A\\x41\\x64\\x00\\x4E\\x56\\xFF\\xFA\\x01\\x08\" +\r\n \"\\x2E\\x2E\\x00\\xB6\\xD0\\x68\\x3E\\x80\\x2F\\x0C\\xA9\\xFE\\x64\\x53\\x69\\x7A\";\r\n let paddedUserPassword = (userPassword + this.padding).substr(0, 32);\r\n let paddedOwnerPassword = (ownerPassword + this.padding).substr(0, 32);\r\n\r\n this.O = this.processOwnerPassword(paddedUserPassword, paddedOwnerPassword);\r\n this.P = -((protection ^ 255) + 1);\r\n this.encryptionKey = md5Bin(\r\n paddedUserPassword +\r\n this.O +\r\n this.lsbFirstWord(this.P) +\r\n this.hexToBytes(fileId)\r\n ).substr(0, 5);\r\n this.U = rc4(this.encryptionKey, this.padding);\r\n}\r\n\r\n/**\r\n * Breaks down a 4-byte number into its individual bytes, with the least significant bit first\r\n *\r\n * @name lsbFirstWord\r\n * @function\r\n * @param {number} data 32-bit number\r\n * @returns {Array}\r\n */\r\nPDFSecurity.prototype.lsbFirstWord = function(data) {\r\n return String.fromCharCode(\r\n (data >> 0) & 0xff,\r\n (data >> 8) & 0xff,\r\n (data >> 16) & 0xff,\r\n (data >> 24) & 0xff\r\n );\r\n};\r\n\r\n/**\r\n * Converts a byte string to a hex string\r\n *\r\n * @name toHexString\r\n * @function\r\n * @param {String} byteString Byte string\r\n * @returns {String}\r\n */\r\nPDFSecurity.prototype.toHexString = function(byteString) {\r\n return byteString\r\n .split(\"\")\r\n .map(function(byte) {\r\n return (\"0\" + (byte.charCodeAt(0) & 0xff).toString(16)).slice(-2);\r\n })\r\n .join(\"\");\r\n};\r\n\r\n/**\r\n * Converts a hex string to a byte string\r\n *\r\n * @name hexToBytes\r\n * @function\r\n * @param {String} hex Hex string\r\n * @returns {String}\r\n */\r\nPDFSecurity.prototype.hexToBytes = function(hex) {\r\n for (var bytes = [], c = 0; c < hex.length; c += 2)\r\n bytes.push(String.fromCharCode(parseInt(hex.substr(c, 2), 16)));\r\n return bytes.join(\"\");\r\n};\r\n\r\n/**\r\n * Computes the 'O' field in the encryption dictionary\r\n *\r\n * @name processOwnerPassword\r\n * @function\r\n * @param {String} paddedUserPassword Byte string of padded user password\r\n * @param {String} paddedOwnerPassword Byte string of padded owner password\r\n * @returns {String}\r\n */\r\nPDFSecurity.prototype.processOwnerPassword = function(\r\n paddedUserPassword,\r\n paddedOwnerPassword\r\n) {\r\n let key = md5Bin(paddedOwnerPassword).substr(0, 5);\r\n return rc4(key, paddedUserPassword);\r\n};\r\n\r\n/**\r\n * Returns an encryptor function which can take in a byte string and returns the encrypted version\r\n *\r\n * @name encryptor\r\n * @function\r\n * @param {number} objectId\r\n * @param {number} generation Not sure what this is for, you can set it to 0\r\n * @returns {Function}\r\n * @example\r\n * out(\"stream\");\r\n * encryptor = security.encryptor(object.id, 0);\r\n * out(encryptor(data));\r\n * out(\"endstream\");\r\n */\r\nPDFSecurity.prototype.encryptor = function(objectId, generation) {\r\n let key = md5Bin(\r\n this.encryptionKey +\r\n String.fromCharCode(\r\n objectId & 0xff,\r\n (objectId >> 8) & 0xff,\r\n (objectId >> 16) & 0xff,\r\n generation & 0xff,\r\n (generation >> 8) & 0xff\r\n )\r\n ).substr(0, 10);\r\n return function(data) {\r\n return rc4(key, data);\r\n };\r\n};\r\n\r\nexport { PDFSecurity };\r\n","/**\n * Convert string to `PDF Name Object`.\n * Detail: PDF Reference 1.3 - Chapter 3.2.4 Name Object\n * @param str\n */\nfunction toPDFName(str) {\n // eslint-disable-next-line no-control-regex\n if (/[^\\u0000-\\u00ff]/.test(str)) {\n // non ascii string\n throw new Error(\n \"Invalid PDF Name Object: \" + str + \", Only accept ASCII characters.\"\n );\n }\n var result = \"\",\n strLength = str.length;\n for (var i = 0; i < strLength; i++) {\n var charCode = str.charCodeAt(i);\n if (\n charCode < 0x21 ||\n charCode === 0x23 /* # */ ||\n charCode === 0x25 /* % */ ||\n charCode === 0x28 /* ( */ ||\n charCode === 0x29 /* ) */ ||\n charCode === 0x2f /* / */ ||\n charCode === 0x3c /* < */ ||\n charCode === 0x3e /* > */ ||\n charCode === 0x5b /* [ */ ||\n charCode === 0x5d /* ] */ ||\n charCode === 0x7b /* { */ ||\n charCode === 0x7d /* } */ ||\n charCode > 0x7e\n ) {\n // Char CharCode hexStr paddingHexStr Result\n // \"\\t\" 9 9 09 #09\n // \" \" 32 20 20 #20\n // \"©\" 169 a9 a9 #a9\n var hexStr = charCode.toString(16),\n paddingHexStr = (\"0\" + hexStr).slice(-2);\n\n result += \"#\" + paddingHexStr;\n } else {\n // Other ASCII printable characters between 0x21 <= X <= 0x7e\n result += str[i];\n }\n }\n return result;\n}\n\nexport { toPDFName };\n","/* eslint-disable no-console */\r\n\r\nimport { saveAs } from \"./libs/FileSaver.js\";\r\nimport { globalObject } from \"./libs/globalObject.js\";\r\nimport { RGBColor } from \"./libs/rgbcolor.js\";\r\nimport { btoa } from \"./libs/AtobBtoa.js\";\r\nimport { console } from \"./libs/console.js\";\r\nimport { PDFSecurity } from \"./libs/pdfsecurity.js\";\r\nimport { toPDFName } from \"./libs/pdfname.js\";\r\n/**\r\n * jsPDF's Internal PubSub Implementation.\r\n * Backward compatible rewritten on 2014 by\r\n * Diego Casorran, https://github.com/diegocr\r\n *\r\n * @class\r\n * @name PubSub\r\n * @ignore\r\n */\r\nfunction PubSub(context) {\r\n if (typeof context !== \"object\") {\r\n throw new Error(\r\n \"Invalid Context passed to initialize PubSub (jsPDF-module)\"\r\n );\r\n }\r\n var topics = {};\r\n\r\n this.subscribe = function(topic, callback, once) {\r\n once = once || false;\r\n if (\r\n typeof topic !== \"string\" ||\r\n typeof callback !== \"function\" ||\r\n typeof once !== \"boolean\"\r\n ) {\r\n throw new Error(\r\n \"Invalid arguments passed to PubSub.subscribe (jsPDF-module)\"\r\n );\r\n }\r\n\r\n if (!topics.hasOwnProperty(topic)) {\r\n topics[topic] = {};\r\n }\r\n\r\n var token = Math.random().toString(35);\r\n topics[topic][token] = [callback, !!once];\r\n\r\n return token;\r\n };\r\n\r\n this.unsubscribe = function(token) {\r\n for (var topic in topics) {\r\n if (topics[topic][token]) {\r\n delete topics[topic][token];\r\n if (Object.keys(topics[topic]).length === 0) {\r\n delete topics[topic];\r\n }\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n this.publish = function(topic) {\r\n if (topics.hasOwnProperty(topic)) {\r\n var args = Array.prototype.slice.call(arguments, 1),\r\n tokens = [];\r\n\r\n for (var token in topics[topic]) {\r\n var sub = topics[topic][token];\r\n try {\r\n sub[0].apply(context, args);\r\n } catch (ex) {\r\n if (globalObject.console) {\r\n console.error(\"jsPDF PubSub Error\", ex.message, ex);\r\n }\r\n }\r\n if (sub[1]) tokens.push(token);\r\n }\r\n if (tokens.length) tokens.forEach(this.unsubscribe);\r\n }\r\n };\r\n\r\n this.getTopics = function() {\r\n return topics;\r\n };\r\n}\r\n\r\nfunction GState(parameters) {\r\n if (!(this instanceof GState)) {\r\n return new GState(parameters);\r\n }\r\n\r\n /**\r\n * @name GState#opacity\r\n * @type {any}\r\n */\r\n /**\r\n * @name GState#stroke-opacity\r\n * @type {any}\r\n */\r\n var supported = \"opacity,stroke-opacity\".split(\",\");\r\n for (var p in parameters) {\r\n if (parameters.hasOwnProperty(p) && supported.indexOf(p) >= 0) {\r\n this[p] = parameters[p];\r\n }\r\n }\r\n /**\r\n * @name GState#id\r\n * @type {string}\r\n */\r\n this.id = \"\"; // set by addGState()\r\n /**\r\n * @name GState#objectNumber\r\n * @type {number}\r\n */\r\n this.objectNumber = -1; // will be set by putGState()\r\n}\r\n\r\nGState.prototype.equals = function equals(other) {\r\n var ignore = \"id,objectNumber,equals\";\r\n var p;\r\n if (!other || typeof other !== typeof this) return false;\r\n var count = 0;\r\n for (p in this) {\r\n if (ignore.indexOf(p) >= 0) continue;\r\n if (this.hasOwnProperty(p) && !other.hasOwnProperty(p)) return false;\r\n if (this[p] !== other[p]) return false;\r\n count++;\r\n }\r\n for (p in other) {\r\n if (other.hasOwnProperty(p) && ignore.indexOf(p) < 0) count--;\r\n }\r\n return count === 0;\r\n};\r\n\r\nfunction Pattern(gState, matrix) {\r\n this.gState = gState;\r\n this.matrix = matrix;\r\n\r\n this.id = \"\"; // set by addPattern()\r\n this.objectNumber = -1; // will be set by putPattern()\r\n}\r\n\r\nfunction ShadingPattern(type, coords, colors, gState, matrix) {\r\n if (!(this instanceof ShadingPattern)) {\r\n return new ShadingPattern(type, coords, colors, gState, matrix);\r\n }\r\n\r\n // see putPattern() for information how they are realized\r\n this.type = type === \"axial\" ? 2 : 3;\r\n this.coords = coords;\r\n this.colors = colors;\r\n\r\n Pattern.call(this, gState, matrix);\r\n}\r\n\r\nfunction TilingPattern(boundingBox, xStep, yStep, gState, matrix) {\r\n if (!(this instanceof TilingPattern)) {\r\n return new TilingPattern(boundingBox, xStep, yStep, gState, matrix);\r\n }\r\n\r\n this.boundingBox = boundingBox;\r\n this.xStep = xStep;\r\n this.yStep = yStep;\r\n\r\n this.stream = \"\"; // set by endTilingPattern();\r\n\r\n this.cloneIndex = 0;\r\n\r\n Pattern.call(this, gState, matrix);\r\n}\r\n\r\n/**\r\n * Creates new jsPDF document object instance.\r\n * @name jsPDF\r\n * @class\r\n * @param {Object} [options] - Collection of settings initializing the jsPDF-instance\r\n * @param {string} [options.orientation=portrait] - Orientation of the first page. Possible values are \"portrait\" or \"landscape\" (or shortcuts \"p\" or \"l\").<br />\r\n * @param {string} [options.unit=mm] Measurement unit (base unit) to be used when coordinates are specified.<br />\r\n * Possible values are \"pt\" (points), \"mm\", \"cm\", \"in\", \"px\", \"pc\", \"em\" or \"ex\". Note that in order to get the correct scaling for \"px\"\r\n * units, you need to enable the hotfix \"px_scaling\" by setting options.hotfixes = [\"px_scaling\"].\r\n * @param {string/Array} [options.format=a4] The format of the first page. Can be:<ul><li>a0 - a10</li><li>b0 - b10</li><li>c0 - c10</li><li>dl</li><li>letter</li><li>government-letter</li><li>legal</li><li>junior-legal</li><li>ledger</li><li>tabloid</li><li>credit-card</li></ul><br />\r\n * Default is \"a4\". If you want to use your own format just pass instead of one of the above predefined formats the size as an number-array, e.g. [595.28, 841.89]\r\n * @param {boolean} [options.putOnlyUsedFonts=false] Only put fonts into the PDF, which were used.\r\n * @param {boolean} [options.compress=false] Compress the generated PDF.\r\n * @param {number} [options.precision=16] Precision of the element-positions.\r\n * @param {number} [options.userUnit=1.0] Not to be confused with the base unit. Please inform yourself before you use it.\r\n * @param {string[]} [options.hotfixes] An array of strings to enable hotfixes such as correct pixel scaling.\r\n * @param {Object} [options.encryption]\r\n * @param {string} [options.encryption.userPassword] Password for the user bound by the given permissions list.\r\n * @param {string} [options.encryption.ownerPassword] Both userPassword and ownerPassword should be set for proper authentication.\r\n * @param {string[]} [options.encryption.userPermissions] Array of permissions \"print\", \"modify\", \"copy\", \"annot-forms\", accessible by the user.\r\n * @param {number|\"smart\"} [options.floatPrecision=16]\r\n * @returns {jsPDF} jsPDF-instance\r\n * @description\r\n * ```\r\n * {\r\n * orientation: 'p',\r\n * unit: 'mm',\r\n * format: 'a4',\r\n * putOnlyUsedFonts:true,\r\n * floatPrecision: 16 // or \"smart\", default is 16\r\n * }\r\n * ```\r\n *\r\n * @constructor\r\n */\r\nfunction jsPDF(options) {\r\n var orientation = typeof arguments[0] === \"string\" ? arguments[0] : \"p\";\r\n var unit = arguments[1];\r\n var format = arguments[2];\r\n var compressPdf = arguments[3];\r\n var filters = [];\r\n var userUnit = 1.0;\r\n var precision;\r\n var floatPrecision = 16;\r\n var defaultPathOperation = \"S\";\r\n var encryptionOptions = null;\r\n\r\n options = options || {};\r\n\r\n if (typeof options === \"object\") {\r\n orientation = options.orientation;\r\n unit = options.unit || unit;\r\n format = options.format || format;\r\n compressPdf = options.compress || options.compressPdf || compressPdf;\r\n encryptionOptions = options.encryption || null;\r\n if (encryptionOptions !== null) {\r\n encryptionOptions.userPassword = encryptionOptions.userPassword || \"\";\r\n encryptionOptions.ownerPassword = encryptionOptions.ownerPassword || \"\";\r\n encryptionOptions.userPermissions =\r\n encryptionOptions.userPermissions || [];\r\n }\r\n userUnit =\r\n typeof options.userUnit === \"number\" ? Math.abs(options.userUnit) : 1.0;\r\n if (typeof options.precision !== \"undefined\") {\r\n precision = options.precision;\r\n }\r\n if (typeof options.floatPrecision !== \"undefined\") {\r\n floatPrecision = options.floatPrecision;\r\n }\r\n defaultPathOperation = options.defaultPathOperation || \"S\";\r\n }\r\n\r\n filters =\r\n options.filters || (compressPdf === true ? [\"FlateEncode\"] : filters);\r\n\r\n unit = unit || \"mm\";\r\n orientation = (\"\" + (orientation || \"P\")).toLowerCase();\r\n var putOnlyUsedFonts = options.putOnlyUsedFonts || false;\r\n var usedFonts = {};\r\n\r\n var API = {\r\n internal: {},\r\n __private__: {}\r\n };\r\n\r\n API.__private__.PubSub = PubSub;\r\n\r\n var pdfVersion = \"1.3\";\r\n var getPdfVersion = (API.__private__.getPdfVersion = function() {\r\n return pdfVersion;\r\n });\r\n\r\n API.__private__.setPdfVersion = function(value) {\r\n pdfVersion = value;\r\n };\r\n\r\n // Size in pt of various paper formats\r\n var pageFormats = {\r\n a0: [2383.94, 3370.39],\r\n a1: [1683.78, 2383.94],\r\n a2: [1190.55, 1683.78],\r\n a3: [841.89, 1190.55],\r\n a4: [595.28, 841.89],\r\n a5: [419.53, 595.28],\r\n a6: [297.64, 419.53],\r\n a7: [209.76, 297.64],\r\n a8: [147.4, 209.76],\r\n a9: [104.88, 147.4],\r\n a10: [73.7, 104.88],\r\n b0: [2834.65, 4008.19],\r\n b1: [2004.09, 2834.65],\r\n b2: [1417.32, 2004.09],\r\n b3: [1000.63, 1417.32],\r\n b4: [708.66, 1000.63],\r\n b5: [498.9, 708.66],\r\n b6: [354.33, 498.9],\r\n b7: [249.45, 354.33],\r\n b8: [175.75, 249.45],\r\n b9: [124.72, 175.75],\r\n b10: [87.87, 124.72],\r\n c0: [2599.37, 3676.54],\r\n c1: [1836.85, 2599.37],\r\n c2: [1298.27, 1836.85],\r\n c3: [918.43, 1298.27],\r\n c4: [649.13, 918.43],\r\n c5: [459.21, 649.13],\r\n c6: [323.15, 459.21],\r\n c7: [229.61, 323.15],\r\n c8: [161.57, 229.61],\r\n c9: [113.39, 161.57],\r\n c10: [79.37, 113.39],\r\n dl: [311.81, 623.62],\r\n letter: [612, 792],\r\n \"government-letter\": [576, 756],\r\n legal: [612, 1008],\r\n \"junior-legal\": [576, 360],\r\n ledger: [1224, 792],\r\n tabloid: [792, 1224],\r\n \"credit-card\": [153, 243]\r\n };\r\n\r\n API.__private__.getPageFormats = function() {\r\n return pageFormats;\r\n };\r\n\r\n var getPageFormat = (API.__private__.getPageFormat = function(value) {\r\n return pageFormats[value];\r\n });\r\n\r\n format = format || \"a4\";\r\n\r\n var ApiMode = {\r\n COMPAT: \"compat\",\r\n ADVANCED: \"advanced\"\r\n };\r\n var apiMode = ApiMode.COMPAT;\r\n\r\n function advancedAPI() {\r\n // prepend global change of basis matrix\r\n // (Now, instead of converting every coordinate to the pdf coordinate system, we apply a matrix\r\n // that does this job for us (however, texts, images and similar objects must be drawn bottom up))\r\n this.saveGraphicsState();\r\n out(\r\n new Matrix(\r\n scaleFactor,\r\n 0,\r\n 0,\r\n -scaleFactor,\r\n 0,\r\n getPageHeight() * scaleFactor\r\n ).toString() + \" cm\"\r\n );\r\n this.setFontSize(this.getFontSize() / scaleFactor);\r\n\r\n // The default in MrRio's implementation is \"S\" (stroke), whereas the default in the yWorks implementation\r\n // was \"n\" (none). Although this has nothing to do with transforms, we should use the API switch here.\r\n defaultPathOperation = \"n\";\r\n\r\n apiMode = ApiMode.ADVANCED;\r\n }\r\n\r\n function compatAPI() {\r\n this.restoreGraphicsState();\r\n defaultPathOperation = \"S\";\r\n apiMode = ApiMode.COMPAT;\r\n }\r\n\r\n /**\r\n * @function combineFontStyleAndFontWeight\r\n * @param {string} fontStyle Fontstyle or variant. Example: \"italic\".\r\n * @param {number | string} fontWeight Weight of the Font. Example: \"normal\" | 400\r\n * @returns {string}\r\n * @private\r\n */\r\n var combineFontStyleAndFontWeight = (API.__private__.combineFontStyleAndFontWeight = function(\r\n fontStyle,\r\n fontWeight\r\n ) {\r\n if (\r\n (fontStyle == \"bold\" && fontWeight == \"normal\") ||\r\n (fontStyle == \"bold\" && fontWeight == 400) ||\r\n (fontStyle == \"normal\" && fontWeight == \"italic\") ||\r\n (fontStyle == \"bold\" && fontWeight == \"italic\")\r\n ) {\r\n throw new Error(\"Invalid Combination of fontweight and fontstyle\");\r\n }\r\n if (fontWeight) {\r\n fontStyle =\r\n fontWeight == 400 || fontWeight === \"normal\"\r\n ? fontStyle === \"italic\"\r\n ? \"italic\"\r\n : \"normal\"\r\n : (fontWeight == 700 || fontWeight === \"bold\") &&\r\n fontStyle === \"normal\"\r\n ? \"bold\"\r\n : (fontWeight == 700 ? \"bold\" : fontWeight) + \"\" + fontStyle;\r\n }\r\n return fontStyle;\r\n });\r\n\r\n /**\r\n * @callback ApiSwitchBody\r\n * @param {jsPDF} pdf\r\n */\r\n\r\n /**\r\n * For compatibility reasons jsPDF offers two API modes which differ in the way they convert between the the usual\r\n * screen coordinates and the PDF coordinate system.\r\n * - \"compat\": Offers full compatibility across all plugins but does not allow arbitrary transforms\r\n * - \"advanced\": Allows arbitrary transforms and more advanced features like pattern fills. Some plugins might\r\n * not support this mode, though.\r\n * Initial mode is \"compat\".\r\n *\r\n * You can either provide a callback to the body argument, which means that jsPDF will automatically switch back to\r\n * the original API mode afterwards; or you can omit the callback and switch back manually using {@link compatAPI}.\r\n *\r\n * Note, that the calls to {@link saveGraphicsState} and {@link restoreGraphicsState} need to be balanced within the\r\n * callback or between calls of this method and its counterpart {@link compatAPI}. Calls to {@link beginFormObject}\r\n * or {@link beginTilingPattern} need to be closed by their counterparts before switching back to \"compat\" API mode.\r\n *\r\n * @param {ApiSwitchBody=} body When provided, this callback will be called after the API mode has been switched.\r\n * The API mode will be switched back automatically afterwards.\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name advancedAPI\r\n */\r\n API.advancedAPI = function(body) {\r\n var doSwitch = apiMode === ApiMode.COMPAT;\r\n\r\n if (doSwitch) {\r\n advancedAPI.call(this);\r\n }\r\n\r\n if (typeof body !== \"function\") {\r\n return this;\r\n }\r\n\r\n body(this);\r\n\r\n if (doSwitch) {\r\n compatAPI.call(this);\r\n }\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Switches to \"compat\" API mode. See {@link advancedAPI} for more details.\r\n *\r\n * @param {ApiSwitchBody=} body When provided, this callback will be called after the API mode has been switched.\r\n * The API mode will be switched back automatically afterwards.\r\n * @return {jsPDF}\r\n * @memberof jsPDF#\r\n * @name compatApi\r\n */\r\n API.compatAPI = function(body) {\r\n var doSwitch = apiMode === ApiMode.ADVANCED;\r\n\r\n if (doSwitch) {\r\n compatAPI.call(this);\r\n }\r\n\r\n if (typeof body !== \"function\") {\r\n return this;\r\n }\r\n\r\n body(this);\r\n\r\n if (doSwitch) {\r\n advancedAPI.call(this);\r\n }\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * @return {boolean} True iff the current API mode is \"advanced\". See {@link advancedAPI}.\r\n * @memberof jsPDF#\r\n * @name isAdvancedAPI\r\n */\r\n API.isAdvancedAPI = function() {\r\n return apiMode === ApiMode.ADVANCED;\r\n };\r\n\r\n var advancedApiModeTrap = function(methodName) {\r\n if (apiMode !== ApiMode.ADVANCED) {\r\n throw new Error(\r\n methodName +\r\n \" is only available in 'advanced' API mode. \" +\r\n \"You need to call advancedAPI() first.\"\r\n );\r\n }\r\n };\r\n\r\n var roundToPrecision = (API.roundToPrecision = API.__private__.roundToPrecision = function(\r\n number,\r\n parmPrecision\r\n ) {\r\n var tmpPrecision = precision || parmPrecision;\r\n if (isNaN(number) || isNaN(tmpPrecision)) {\r\n throw new Error(\"Invalid argument passed to jsPDF.roundToPrecision\");\r\n }\r\n return number.toFixed(tmpPrecision).replace(/0+$/, \"\");\r\n });\r\n\r\n // high precision float\r\n var hpf;\r\n if (typeof floatPrecision === \"number\") {\r\n hpf = API.hpf = API.__private__.hpf = function(number) {\r\n if (isNaN(number)) {\r\n throw new Error(\"Invalid argument passed to jsPDF.hpf\");\r\n }\r\n return roundToPrecision(number, floatPrecision);\r\n };\r\n } else if (floatPrecision === \"smart\") {\r\n hpf = API.hpf = API.__private__.hpf = function(number) {\r\n if (isNaN(number)) {\r\n throw new Error(\"Invalid argument passed to jsPDF.hpf\");\r\n }\r\n if (number > -1 && number < 1) {\r\n return roundToPrecision(number, 16);\r\n } else {\r\n return roundToPrecision(number, 5);\r\n }\r\n };\r\n } else {\r\n hpf = API.hpf = API.__private__.hpf = function(number) {\r\n if (isNaN(number)) {\r\n throw new Error(\"Invalid argument passed to jsPDF.hpf\");\r\n }\r\n return roundToPrecision(number, 16);\r\n };\r\n }\r\n var f2 = (API.f2 = API.__private__.f2 = function(number) {\r\n if (isNaN(number)) {\r\n throw new Error(\"Invalid argument passed to jsPDF.f2\");\r\n }\r\n return roundToPrecision(number, 2);\r\n });\r\n\r\n var f3 = (API.__private__.f3 = function(number) {\r\n if (isNaN(number)) {\r\n throw new Error(\"Invalid argument passed to jsPDF.f3\");\r\n }\r\n return roundToPrecision(number, 3);\r\n });\r\n\r\n var scale = (API.scale = API.__private__.scale = function(number) {\r\n if (isNaN(number)) {\r\n throw new Error(\"Invalid argument passed to jsPDF.scale\");\r\n }\r\n if (apiMode === ApiMode.COMPAT) {\r\n return number * scaleFactor;\r\n } else if (apiMode === ApiMode.ADVANCED) {\r\n return number;\r\n }\r\n });\r\n\r\n var transformY = function(y) {\r\n if (apiMode === ApiMode.COMPAT) {\r\n return getPageHeight() - y;\r\n } else if (apiMode === ApiMode.ADVANCED) {\r\n return y;\r\n }\r\n };\r\n\r\n var transformScaleY = function(y) {\r\n return scale(transformY(y));\r\n };\r\n\r\n /**\r\n * @name setPrecision\r\n * @memberof jsPDF#\r\n * @function\r\n * @instance\r\n * @param {string} precision\r\n * @returns {jsPDF}\r\n */\r\n API.__private__.setPrecision = API.setPrecision = function(value) {\r\n if (typeof parseInt(value, 10) === \"number\") {\r\n precision = parseInt(value, 10);\r\n }\r\n };\r\n\r\n var fileId = \"00000000000000000000000000000000\";\r\n\r\n var getFileId = (API.__private__.getFileId = function() {\r\n return fileId;\r\n });\r\n\r\n var setFileId = (API.__private__.setFileId = function(value) {\r\n if (typeof value !== \"undefined\" && /^[a-fA-F0-9]{32}$/.test(value)) {\r\n fileId = value.toUpperCase();\r\n } else {\r\n fileId = fileId\r\n .split(\"\")\r\n .map(function() {\r\n return \"ABCDEF0123456789\".charAt(Math.floor(Math.random() * 16));\r\n })\r\n .join(\"\");\r\n }\r\n\r\n if (encryptionOptions !== null) {\r\n encryption = new PDFSecurity(\r\n encryptionOptions.userPermissions,\r\n encryptionOptions.userPassword,\r\n encryptionOptions.ownerPassword,\r\n fileId\r\n );\r\n }\r\n return fileId;\r\n });\r\n\r\n /**\r\n * @name setFileId\r\n * @memberof jsPDF#\r\n * @function\r\n * @instance\r\n * @param {string} value GUID.\r\n * @returns {jsPDF}\r\n */\r\n API.setFileId = function(value) {\r\n setFileId(value);\r\n return this;\r\n };\r\n\r\n /**\r\n * @name getFileId\r\n * @memberof jsPDF#\r\n * @function\r\n * @instance\r\n *\r\n * @returns {string} GUID.\r\n */\r\n API.getFileId = function() {\r\n return getFileId();\r\n };\r\n\r\n var creationDate;\r\n\r\n var convertDateToPDFDate = (API.__private__.convertDateToPDFDate = function(\r\n parmDate\r\n ) {\r\n var result = \"\";\r\n var tzoffset = parmDate.getTimezoneOffset(),\r\n tzsign = tzoffset < 0 ? \"+\" : \"-\",\r\n tzhour = Math.floor(Math.abs(tzoffset / 60)),\r\n tzmin = Math.abs(tzoffset % 60),\r\n timeZoneString = [tzsign, padd2(tzhour), \"'\", padd2(tzmin), \"'\"].join(\"\");\r\n\r\n result = [\r\n \"D:\",\r\n parmDate.getFullYear(),\r\n padd2(parmDate.getMonth() + 1),\r\n padd2(parmDate.getDate()),\r\n padd2(parmDate.getHours()),\r\n padd2(parmDate.getMinutes()),\r\n padd2(parmDate.getSeconds()),\r\n timeZoneString\r\n ].join(\"\");\r\n return result;\r\n });\r\n\r\n var convertPDFDateToDate = (API.__private__.convertPDFDateToDate = function(\r\n parmPDFDate\r\n ) {\r\n var year = parseInt(parmPDFDate.substr(2, 4), 10);\r\n var month = parseInt(parmPDFDate.substr(6, 2), 10) - 1;\r\n var date = parseInt(parmPDFDate.substr(8, 2), 10);\r\n var hour = parseInt(parmPDFDate.substr(10, 2), 10);\r\n var minutes = parseInt(parmPDFDate.substr(12, 2), 10);\r\n var seconds = parseInt(parmPDFDate.substr(14, 2), 10);\r\n // var timeZoneHour = parseInt(parmPDFDate.substr(16, 2), 10);\r\n // var timeZoneMinutes = parseInt(parmPDFDate.substr(20, 2), 10);\r\n\r\n var resultingDate = new Date(year, month, date, hour, minutes, seconds, 0);\r\n return resultingDate;\r\n });\r\n\r\n var setCreationDate = (API.__private__.setCreationDate = function(date) {\r\n var tmpCreationDateString;\r\n var regexPDFCreationDate = /^D:(20[0-2][0-9]|203[0-7]|19[7-9][0-9])(0[0-9]|1[0-2])([0-2][0-9]|3[0-1])(0[0-9]|1[0-9]|2[0-3])(0[0-9]|[1-5][0-9])(0[0-9]|[1-5][0-9])(\\+0[0-9]|\\+1[0-4]|-0[0-9]|-1[0-1])'(0[0-9]|[1-5][0-9])'?$/;\r\n if (typeof date === \"undefined\") {\r\n date = new Date();\r\n }\r\n\r\n if (date instanceof Date) {\r\n tmpCreationDateString = convertDateToPDFDate(date);\r\n } else if (regexPDFCreationDate.test(date)) {\r\n tmpCreationDateString = date;\r\n } else {\r\n throw new Error(\"Invalid argument passed to jsPDF.setCreationDate\");\r\n }\r\n creationDate = tmpCreationDateString;\r\n return creationDate;\r\n });\r\n\r\n var getCreationDate = (API.__private__.getCreationDate = function(type) {\r\n var result = creationDate;\r\n if (type === \"jsDate\") {\r\n result = convertPDFDateToDate(creationDate);\r\n }\r\n return result;\r\n });\r\n\r\n /**\r\n * @name setCreationDate\r\n * @memberof jsPDF#\r\n * @function\r\n * @instance\r\n * @param {Object} date\r\n * @returns {jsPDF}\r\n */\r\n API.setCreationDate = function(date) {\r\n setCreationDate(date);\r\n return this;\r\n };\r\n\r\n /**\r\n * @name getCreationDate\r\n * @memberof jsPDF#\r\n * @function\r\n * @instance\r\n * @param {Object} type\r\n * @returns {Object}\r\n */\r\n API.getCreationDate = function(type) {\r\n return getCreationDate(type);\r\n };\r\n\r\n var padd2 = (API.__private__.padd2 = function(number) {\r\n return (\"0\" + parseInt(number)).slice(-2);\r\n });\r\n\r\n var padd2Hex = (API.__private__.padd2Hex = function(hexString) {\r\n hexString = hexString.toString();\r\n return (\"00\" + hexString).substr(hexString.length);\r\n });\r\n\r\n var objectNumber = 0; // 'n' Current object number\r\n var offsets = []; // List of offsets. Activated and reset by buildDocument(). Pupulated by various calls buildDocument makes.\r\n var content = [];\r\n var contentLength = 0;\r\n var additionalObjects = [];\r\n\r\n var pages = [];\r\n var currentPage;\r\n var hasCustomDestination = false;\r\n var outputDestination = content;\r\n\r\n var resetDocument = function() {\r\n //reset fields relevant for objectNumber generation and xref.\r\n objectNumber = 0;\r\n contentLength = 0;\r\n content = [];\r\n offsets = [];\r\n additionalObjects = [];\r\n\r\n rootDictionaryObjId = newObjectDeferred();\r\n resourceDictionaryObjId = newObjectDeferred();\r\n };\r\n\r\n API.__private__.setCustomOutputDestination = function(destination) {\r\n hasCustomDestination = true;\r\n outputDestination = destination;\r\n };\r\n var setOutputDestination = function(destination) {\r\n if (!hasCustomDestination) {\r\n outputDestination = destination;\r\n }\r\n };\r\n\r\n API.__private__.resetCustomOutputDestination = function() {\r\n hasCustomDestination = false;\r\n outputDestination = content;\r\n };\r\n\r\n var out = (API.__private__.out = function(string) {\r\n string = string.toString();\r\n contentLength += string.length + 1;\r\n outputDestination.push(string);\r\n\r\n return outputDestination;\r\n });\r\n\r\n var write = (API.__private__.write = function(value) {\r\n return out(\r\n arguments.length === 1\r\n ? value.toString()\r\n : Array.prototype.join.call(arguments, \" \")\r\n );\r\n });\r\n\r\n var getArrayBuffer = (API.__private__.getArrayBuffer = function(data) {\r\n var len = data.length,\r\n ab = new ArrayBuffer(len),\r\n u8 = new Uint8Array(ab);\r\n\r\n while (len--) u8[len] = data.charCodeAt(len);\r\n return ab;\r\n });\r\n\r\n var standardFonts = [\r\n [\"Helvetica\", \"helvetica\", \"normal\", \"WinAnsiEncoding\"],\r\n [\"Helvetica-Bold\", \"helvetica\", \"bold\", \"WinAnsiEncoding\"],\r\n [\"Helvetica-Oblique\", \"helvetica\", \"italic\", \"WinAnsiEncoding\"],\r\n [\"Helvetica-BoldOblique\", \"helvetica\", \"bolditalic\", \"WinAnsiEncoding\"],\r\n [\"Courier\", \"courier\", \"normal\", \"WinAnsiEncoding\"],\r\n [\"Courier-Bold\", \"courier\", \"bold\", \"WinAnsiEncoding\"],\r\n [\"Courier-Oblique\", \"courier\", \"italic\", \"WinAnsiEncoding\"],\r\n [\"Courier-BoldOblique\", \"courier\", \"bolditalic\", \"WinAnsiEncoding\"],\r\n [\"Times-Roman\", \"times\", \"normal\", \"WinAnsiEncoding\"],\r\n [\"Times-Bold\", \"times\", \"bold\", \"WinAnsiEncoding\"],\r\n [\"Times-Italic\", \"times\", \"italic\", \"WinAnsiEncoding\"],\r\n [\"Times-BoldItalic\", \"times\", \"bolditalic\", \"WinAnsiEncoding\"],\r\n [\"ZapfDingbats\", \"zapfdingbats\", \"normal\", null],\r\n [\"Symbol\", \"symbol\", \"normal\", null]\r\n ];\r\n\r\n API.__private__.getStandardFonts = function() {\r\n return standardFonts;\r\n };\r\n\r\n var activeFontSize = options.fontSize || 16;\r\n\r\n /**\r\n * Sets font size for upcoming text elements.\r\n *\r\n * @param {number} size Font size in points.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setFontSize\r\n */\r\n API.__private__.setFontSize = API.setFontSize = function(size) {\r\n if (apiMode === ApiMode.ADVANCED) {\r\n activeFontSize = size / scaleFactor;\r\n } else {\r\n activeFontSize = size;\r\n }\r\n return this;\r\n };\r\n\r\n /**\r\n * Gets the fontsize for upcoming text elements.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {number}\r\n * @memberof jsPDF#\r\n * @name getFontSize\r\n */\r\n var getFontSize = (API.__private__.getFontSize = API.getFontSize = function() {\r\n if (apiMode === ApiMode.COMPAT) {\r\n return activeFontSize;\r\n } else {\r\n return activeFontSize * scaleFactor;\r\n }\r\n });\r\n\r\n var R2L = options.R2L || false;\r\n\r\n /**\r\n * Set value of R2L functionality.\r\n *\r\n * @param {boolean} value\r\n * @function\r\n * @instance\r\n * @returns {jsPDF} jsPDF-instance\r\n * @memberof jsPDF#\r\n * @name setR2L\r\n */\r\n API.__private__.setR2L = API.setR2L = function(value) {\r\n R2L = value;\r\n return this;\r\n };\r\n\r\n /**\r\n * Get value of R2L functionality.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {boolean} jsPDF-instance\r\n * @memberof jsPDF#\r\n * @name getR2L\r\n */\r\n API.__private__.getR2L = API.getR2L = function() {\r\n return R2L;\r\n };\r\n\r\n var zoomMode; // default: 1;\r\n\r\n var setZoomMode = (API.__private__.setZoomMode = function(zoom) {\r\n var validZoomModes = [\r\n undefined,\r\n null,\r\n \"fullwidth\",\r\n \"fullheight\",\r\n \"fullpage\",\r\n \"original\"\r\n ];\r\n\r\n if (/^(?:\\d+\\.\\d*|\\d*\\.\\d+|\\d+)%$/.test(zoom)) {\r\n zoomMode = zoom;\r\n } else if (!isNaN(zoom)) {\r\n zoomMode = parseInt(zoom, 10);\r\n } else if (validZoomModes.indexOf(zoom) !== -1) {\r\n zoomMode = zoom;\r\n } else {\r\n throw new Error(\r\n 'zoom must be Integer (e.g. 2), a percentage Value (e.g. 300%) or fullwidth, fullheight, fullpage, original. \"' +\r\n zoom +\r\n '\" is not recognized.'\r\n );\r\n }\r\n });\r\n\r\n API.__private__.getZoomMode = function() {\r\n return zoomMode;\r\n };\r\n\r\n var pageMode; // default: 'UseOutlines';\r\n var setPageMode = (API.__private__.setPageMode = function(pmode) {\r\n var validPageModes = [\r\n undefined,\r\n null,\r\n \"UseNone\",\r\n \"UseOutlines\",\r\n \"UseThumbs\",\r\n \"FullScreen\"\r\n ];\r\n\r\n if (validPageModes.indexOf(pmode) == -1) {\r\n throw new Error(\r\n 'Page mode must be one of UseNone, UseOutlines, UseThumbs, or FullScreen. \"' +\r\n pmode +\r\n '\" is not recognized.'\r\n );\r\n }\r\n pageMode = pmode;\r\n });\r\n\r\n API.__private__.getPageMode = function() {\r\n return pageMode;\r\n };\r\n\r\n var layoutMode; // default: 'continuous';\r\n var setLayoutMode = (API.__private__.setLayoutMode = function(layout) {\r\n var validLayoutModes = [\r\n undefined,\r\n null,\r\n \"continuous\",\r\n \"single\",\r\n \"twoleft\",\r\n \"tworight\",\r\n \"two\"\r\n ];\r\n\r\n if (validLayoutModes.indexOf(layout) == -1) {\r\n throw new Error(\r\n 'Layout mode must be one of continuous, single, twoleft, tworight. \"' +\r\n layout +\r\n '\" is not recognized.'\r\n );\r\n }\r\n layoutMode = layout;\r\n });\r\n\r\n API.__private__.getLayoutMode = function() {\r\n return layoutMode;\r\n };\r\n\r\n /**\r\n * Set the display mode options of the page like zoom and layout.\r\n *\r\n * @name setDisplayMode\r\n * @memberof jsPDF#\r\n * @function\r\n * @instance\r\n * @param {integer|String} zoom You can pass an integer or percentage as\r\n * a string. 2 will scale the document up 2x, '200%' will scale up by the\r\n * same amount. You can also set it to 'fullwidth', 'fullheight',\r\n * 'fullpage', or 'original'.\r\n *\r\n * Only certain PDF readers support this, such as Adobe Acrobat.\r\n *\r\n * @param {string} layout Layout mode can be: 'continuous' - this is the\r\n * default continuous scroll. 'single' - the single page mode only shows one\r\n * page at a time. 'twoleft' - two column left mode, first page starts on\r\n * the left, and 'tworight' - pages are laid out in two columns, with the\r\n * first page on the right. This would be used for books.\r\n * @param {string} pmode 'UseOutlines' - it shows the\r\n * outline of the document on the left. 'UseThumbs' - shows thumbnails along\r\n * the left. 'FullScreen' - prompts the user to enter fullscreen mode.\r\n *\r\n * @returns {jsPDF}\r\n */\r\n API.__private__.setDisplayMode = API.setDisplayMode = function(\r\n zoom,\r\n layout,\r\n pmode\r\n ) {\r\n setZoomMode(zoom);\r\n setLayoutMode(layout);\r\n setPageMode(pmode);\r\n return this;\r\n };\r\n\r\n var documentProperties = {\r\n title: \"\",\r\n subject: \"\",\r\n author: \"\",\r\n keywords: \"\",\r\n creator: \"\"\r\n };\r\n\r\n API.__private__.getDocumentProperty = function(key) {\r\n if (Object.keys(documentProperties).indexOf(key) === -1) {\r\n throw new Error(\"Invalid argument passed to jsPDF.getDocumentProperty\");\r\n }\r\n return documentProperties[key];\r\n };\r\n\r\n API.__private__.getDocumentProperties = function() {\r\n return documentProperties;\r\n };\r\n\r\n /**\r\n * Adds a properties to the PDF document.\r\n *\r\n * @param {Object} A property_name-to-property_value object structure.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setDocumentProperties\r\n */\r\n API.__private__.setDocumentProperties = API.setProperties = API.setDocumentProperties = function(\r\n properties\r\n ) {\r\n // copying only those properties we can render.\r\n for (var property in documentProperties) {\r\n if (documentProperties.hasOwnProperty(property) && properties[property]) {\r\n documentProperties[property] = properties[property];\r\n }\r\n }\r\n return this;\r\n };\r\n\r\n API.__private__.setDocumentProperty = function(key, value) {\r\n if (Object.keys(documentProperties).indexOf(key) === -1) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.setDocumentProperty\");\r\n }\r\n return (documentProperties[key] = value);\r\n };\r\n\r\n var fonts = {}; // collection of font objects, where key is fontKey - a dynamically created label for a given font.\r\n var fontmap = {}; // mapping structure fontName > fontStyle > font key - performance layer. See addFont()\r\n var activeFontKey; // will be string representing the KEY of the font as combination of fontName + fontStyle\r\n var fontStateStack = []; //\r\n var patterns = {}; // collection of pattern objects\r\n var patternMap = {}; // see fonts\r\n var gStates = {}; // collection of graphic state objects\r\n var gStatesMap = {}; // see fonts\r\n var activeGState = null;\r\n var scaleFactor; // Scale factor\r\n var page = 0;\r\n var pagesContext = [];\r\n var events = new PubSub(API);\r\n var hotfixes = options.hotfixes || [];\r\n\r\n var renderTargets = {};\r\n var renderTargetMap = {};\r\n var renderTargetStack = [];\r\n var pageX;\r\n var pageY;\r\n var pageMatrix; // only used for FormObjects\r\n\r\n /**\r\n * A matrix object for 2D homogenous transformations: <br>\r\n * | a b 0 | <br>\r\n * | c d 0 | <br>\r\n * | e f 1 | <br>\r\n * pdf multiplies matrices righthand: v' = v x m1 x m2 x ...\r\n *\r\n * @class\r\n * @name Matrix\r\n * @param {number} sx\r\n * @param {number} shy\r\n * @param {number} shx\r\n * @param {number} sy\r\n * @param {number} tx\r\n * @param {number} ty\r\n * @constructor\r\n */\r\n var Matrix = function(sx, shy, shx, sy, tx, ty) {\r\n if (!(this instanceof Matrix)) {\r\n return new Matrix(sx, shy, shx, sy, tx, ty);\r\n }\r\n\r\n if (isNaN(sx)) sx = 1;\r\n if (isNaN(shy)) shy = 0;\r\n if (isNaN(shx)) shx = 0;\r\n if (isNaN(sy)) sy = 1;\r\n if (isNaN(tx)) tx = 0;\r\n if (isNaN(ty)) ty = 0;\r\n\r\n this._matrix = [sx, shy, shx, sy, tx, ty];\r\n };\r\n\r\n /**\r\n * @name sx\r\n * @memberof Matrix#\r\n */\r\n Object.defineProperty(Matrix.prototype, \"sx\", {\r\n get: function() {\r\n return this._matrix[0];\r\n },\r\n set: function(value) {\r\n this._matrix[0] = value;\r\n }\r\n });\r\n\r\n /**\r\n * @name shy\r\n * @memberof Matrix#\r\n */\r\n Object.defineProperty(Matrix.prototype, \"shy\", {\r\n get: function() {\r\n return this._matrix[1];\r\n },\r\n set: function(value) {\r\n this._matrix[1] = value;\r\n }\r\n });\r\n\r\n /**\r\n * @name shx\r\n * @memberof Matrix#\r\n */\r\n Object.defineProperty(Matrix.prototype, \"shx\", {\r\n get: function() {\r\n return this._matrix[2];\r\n },\r\n set: function(value) {\r\n this._matrix[2] = value;\r\n }\r\n });\r\n\r\n /**\r\n * @name sy\r\n * @memberof Matrix#\r\n */\r\n Object.defineProperty(Matrix.prototype, \"sy\", {\r\n get: function() {\r\n return this._matrix[3];\r\n },\r\n set: function(value) {\r\n this._matrix[3] = value;\r\n }\r\n });\r\n\r\n /**\r\n * @name tx\r\n * @memberof Matrix#\r\n */\r\n Object.defineProperty(Matrix.prototype, \"tx\", {\r\n get: function() {\r\n return this._matrix[4];\r\n },\r\n set: function(value) {\r\n this._matrix[4] = value;\r\n }\r\n });\r\n\r\n /**\r\n * @name ty\r\n * @memberof Matrix#\r\n */\r\n Object.defineProperty(Matrix.prototype, \"ty\", {\r\n get: function() {\r\n return this._matrix[5];\r\n },\r\n set: function(value) {\r\n this._matrix[5] = value;\r\n }\r\n });\r\n\r\n Object.defineProperty(Matrix.prototype, \"a\", {\r\n get: function() {\r\n return this._matrix[0];\r\n },\r\n set: function(value) {\r\n this._matrix[0] = value;\r\n }\r\n });\r\n\r\n Object.defineProperty(Matrix.prototype, \"b\", {\r\n get: function() {\r\n return this._matrix[1];\r\n },\r\n set: function(value) {\r\n this._matrix[1] = value;\r\n }\r\n });\r\n\r\n Object.defineProperty(Matrix.prototype, \"c\", {\r\n get: function() {\r\n return this._matrix[2];\r\n },\r\n set: function(value) {\r\n this._matrix[2] = value;\r\n }\r\n });\r\n\r\n Object.defineProperty(Matrix.prototype, \"d\", {\r\n get: function() {\r\n return this._matrix[3];\r\n },\r\n set: function(value) {\r\n this._matrix[3] = value;\r\n }\r\n });\r\n\r\n Object.defineProperty(Matrix.prototype, \"e\", {\r\n get: function() {\r\n return this._matrix[4];\r\n },\r\n set: function(value) {\r\n this._matrix[4] = value;\r\n }\r\n });\r\n\r\n Object.defineProperty(Matrix.prototype, \"f\", {\r\n get: function() {\r\n return this._matrix[5];\r\n },\r\n set: function(value) {\r\n this._matrix[5] = value;\r\n }\r\n });\r\n\r\n /**\r\n * @name rotation\r\n * @memberof Matrix#\r\n */\r\n Object.defineProperty(Matrix.prototype, \"rotation\", {\r\n get: function() {\r\n return Math.atan2(this.shx, this.sx);\r\n }\r\n });\r\n\r\n /**\r\n * @name scaleX\r\n * @memberof Matrix#\r\n */\r\n Object.defineProperty(Matrix.prototype, \"scaleX\", {\r\n get: function() {\r\n return this.decompose().scale.sx;\r\n }\r\n });\r\n\r\n /**\r\n * @name scaleY\r\n * @memberof Matrix#\r\n */\r\n Object.defineProperty(Matrix.prototype, \"scaleY\", {\r\n get: function() {\r\n return this.decompose().scale.sy;\r\n }\r\n });\r\n\r\n /**\r\n * @name isIdentity\r\n * @memberof Matrix#\r\n */\r\n Object.defineProperty(Matrix.prototype, \"isIdentity\", {\r\n get: function() {\r\n if (this.sx !== 1) {\r\n return false;\r\n }\r\n if (this.shy !== 0) {\r\n return false;\r\n }\r\n if (this.shx !== 0) {\r\n return false;\r\n }\r\n if (this.sy !== 1) {\r\n return false;\r\n }\r\n if (this.tx !== 0) {\r\n return false;\r\n }\r\n if (this.ty !== 0) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n });\r\n\r\n /**\r\n * Join the Matrix Values to a String\r\n *\r\n * @function join\r\n * @param {string} separator Specifies a string to separate each pair of adjacent elements of the array. The separator is converted to a string if necessary. If omitted, the array elements are separated with a comma (\",\"). If separator is an empty string, all elements are joined without any characters in between them.\r\n * @returns {string} A string with all array elements joined.\r\n * @memberof Matrix#\r\n */\r\n Matrix.prototype.join = function(separator) {\r\n return [this.sx, this.shy, this.shx, this.sy, this.tx, this.ty]\r\n .map(hpf)\r\n .join(separator);\r\n };\r\n\r\n /**\r\n * Multiply the matrix with given Matrix\r\n *\r\n * @function multiply\r\n * @param matrix\r\n * @returns {Matrix}\r\n * @memberof Matrix#\r\n */\r\n Matrix.prototype.multiply = function(matrix) {\r\n var sx = matrix.sx * this.sx + matrix.shy * this.shx;\r\n var shy = matrix.sx * this.shy + matrix.shy * this.sy;\r\n var shx = matrix.shx * this.sx + matrix.sy * this.shx;\r\n var sy = matrix.shx * this.shy + matrix.sy * this.sy;\r\n var tx = matrix.tx * this.sx + matrix.ty * this.shx + this.tx;\r\n var ty = matrix.tx * this.shy + matrix.ty * this.sy + this.ty;\r\n\r\n return new Matrix(sx, shy, shx, sy, tx, ty);\r\n };\r\n\r\n /**\r\n * @function decompose\r\n * @memberof Matrix#\r\n */\r\n Matrix.prototype.decompose = function() {\r\n var a = this.sx;\r\n var b = this.shy;\r\n var c = this.shx;\r\n var d = this.sy;\r\n var e = this.tx;\r\n var f = this.ty;\r\n\r\n var scaleX = Math.sqrt(a * a + b * b);\r\n a /= scaleX;\r\n b /= scaleX;\r\n\r\n var shear = a * c + b * d;\r\n c -= a * shear;\r\n d -= b * shear;\r\n\r\n var scaleY = Math.sqrt(c * c + d * d);\r\n c /= scaleY;\r\n d /= scaleY;\r\n shear /= scaleY;\r\n\r\n if (a * d < b * c) {\r\n a = -a;\r\n b = -b;\r\n shear = -shear;\r\n scaleX = -scaleX;\r\n }\r\n\r\n return {\r\n scale: new Matrix(scaleX, 0, 0, scaleY, 0, 0),\r\n translate: new Matrix(1, 0, 0, 1, e, f),\r\n rotate: new Matrix(a, b, -b, a, 0, 0),\r\n skew: new Matrix(1, 0, shear, 1, 0, 0)\r\n };\r\n };\r\n\r\n /**\r\n * @function toString\r\n * @memberof Matrix#\r\n */\r\n Matrix.prototype.toString = function(parmPrecision) {\r\n return this.join(\" \");\r\n };\r\n\r\n /**\r\n * @function inversed\r\n * @memberof Matrix#\r\n */\r\n Matrix.prototype.inversed = function() {\r\n var a = this.sx,\r\n b = this.shy,\r\n c = this.shx,\r\n d = this.sy,\r\n e = this.tx,\r\n f = this.ty;\r\n\r\n var quot = 1 / (a * d - b * c);\r\n\r\n var aInv = d * quot;\r\n var bInv = -b * quot;\r\n var cInv = -c * quot;\r\n var dInv = a * quot;\r\n var eInv = -aInv * e - cInv * f;\r\n var fInv = -bInv * e - dInv * f;\r\n\r\n return new Matrix(aInv, bInv, cInv, dInv, eInv, fInv);\r\n };\r\n\r\n /**\r\n * @function applyToPoint\r\n * @memberof Matrix#\r\n */\r\n Matrix.prototype.applyToPoint = function(pt) {\r\n var x = pt.x * this.sx + pt.y * this.shx + this.tx;\r\n var y = pt.x * this.shy + pt.y * this.sy + this.ty;\r\n return new Point(x, y);\r\n };\r\n\r\n /**\r\n * @function applyToRectangle\r\n * @memberof Matrix#\r\n */\r\n Matrix.prototype.applyToRectangle = function(rect) {\r\n var pt1 = this.applyToPoint(rect);\r\n var pt2 = this.applyToPoint(new Point(rect.x + rect.w, rect.y + rect.h));\r\n return new Rectangle(pt1.x, pt1.y, pt2.x - pt1.x, pt2.y - pt1.y);\r\n };\r\n\r\n /**\r\n * Clone the Matrix\r\n *\r\n * @function clone\r\n * @memberof Matrix#\r\n * @name clone\r\n * @instance\r\n */\r\n Matrix.prototype.clone = function() {\r\n var sx = this.sx;\r\n var shy = this.shy;\r\n var shx = this.shx;\r\n var sy = this.sy;\r\n var tx = this.tx;\r\n var ty = this.ty;\r\n\r\n return new Matrix(sx, shy, shx, sy, tx, ty);\r\n };\r\n\r\n API.Matrix = Matrix;\r\n\r\n /**\r\n * Multiplies two matrices. (see {@link Matrix})\r\n * @param {Matrix} m1\r\n * @param {Matrix} m2\r\n * @memberof jsPDF#\r\n * @name matrixMult\r\n */\r\n var matrixMult = (API.matrixMult = function(m1, m2) {\r\n return m2.multiply(m1);\r\n });\r\n\r\n /**\r\n * The identity matrix (equivalent to new Matrix(1, 0, 0, 1, 0, 0)).\r\n * @type {Matrix}\r\n * @memberof! jsPDF#\r\n * @name identityMatrix\r\n */\r\n var identityMatrix = new Matrix(1, 0, 0, 1, 0, 0);\r\n API.unitMatrix = API.identityMatrix = identityMatrix;\r\n\r\n /**\r\n * Adds a new pattern for later use.\r\n * @param {String} key The key by it can be referenced later. The keys must be unique!\r\n * @param {API.Pattern} pattern The pattern\r\n */\r\n var addPattern = function(key, pattern) {\r\n // only add it if it is not already present (the keys provided by the user must be unique!)\r\n if (patternMap[key]) return;\r\n\r\n var prefix = pattern instanceof ShadingPattern ? \"Sh\" : \"P\";\r\n var patternKey = prefix + (Object.keys(patterns).length + 1).toString(10);\r\n pattern.id = patternKey;\r\n\r\n patternMap[key] = patternKey;\r\n patterns[patternKey] = pattern;\r\n\r\n events.publish(\"addPattern\", pattern);\r\n };\r\n\r\n /**\r\n * A pattern describing a shading pattern.\r\n *\r\n * Only available in \"advanced\" API mode.\r\n *\r\n * @param {String} type One of \"axial\" or \"radial\"\r\n * @param {Array<Number>} coords Either [x1, y1, x2, y2] for \"axial\" type describing the two interpolation points\r\n * or [x1, y1, r, x2, y2, r2] for \"radial\" describing inner and the outer circle.\r\n * @param {Array<Object>} colors An array of objects with the fields \"offset\" and \"color\". \"offset\" describes\r\n * the offset in parameter space [0, 1]. \"color\" is an array of length 3 describing RGB values in [0, 255].\r\n * @param {GState=} gState An additional graphics state that gets applied to the pattern (optional).\r\n * @param {Matrix=} matrix A matrix that describes the transformation between the pattern coordinate system\r\n * and the use coordinate system (optional).\r\n * @constructor\r\n * @extends API.Pattern\r\n */\r\n API.ShadingPattern = ShadingPattern;\r\n\r\n /**\r\n * A PDF Tiling pattern.\r\n *\r\n * Only available in \"advanced\" API mode.\r\n *\r\n * @param {Array.<Number>} boundingBox The bounding box at which one pattern cell gets clipped.\r\n * @param {Number} xStep Horizontal spacing between pattern cells.\r\n * @param {Number} yStep Vertical spacing between pattern cells.\r\n * @param {API.GState=} gState An additional graphics state that gets applied to the pattern (optional).\r\n * @param {Matrix=} matrix A matrix that describes the transformation between the pattern coordinate system\r\n * and the use coordinate system (optional).\r\n * @constructor\r\n * @extends API.Pattern\r\n */\r\n API.TilingPattern = TilingPattern;\r\n\r\n /**\r\n * Adds a new {@link API.ShadingPattern} for later use. Only available in \"advanced\" API mode.\r\n * @param {String} key\r\n * @param {Pattern} pattern\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name addPattern\r\n */\r\n API.addShadingPattern = function(key, pattern) {\r\n advancedApiModeTrap(\"addShadingPattern()\");\r\n\r\n addPattern(key, pattern);\r\n return this;\r\n };\r\n\r\n /**\r\n * Begins a new tiling pattern. All subsequent render calls are drawn to this pattern until {@link API.endTilingPattern}\r\n * gets called. Only available in \"advanced\" API mode.\r\n * @param {API.Pattern} pattern\r\n * @memberof jsPDF#\r\n * @name beginTilingPattern\r\n */\r\n API.beginTilingPattern = function(pattern) {\r\n advancedApiModeTrap(\"beginTilingPattern()\");\r\n\r\n beginNewRenderTarget(\r\n pattern.boundingBox[0],\r\n pattern.boundingBox[1],\r\n pattern.boundingBox[2] - pattern.boundingBox[0],\r\n pattern.boundingBox[3] - pattern.boundingBox[1],\r\n pattern.matrix\r\n );\r\n };\r\n\r\n /**\r\n * Ends a tiling pattern and sets the render target to the one active before {@link API.beginTilingPattern} has been called.\r\n *\r\n * Only available in \"advanced\" API mode.\r\n *\r\n * @param {string} key A unique key that is used to reference this pattern at later use.\r\n * @param {API.Pattern} pattern The pattern to end.\r\n * @memberof jsPDF#\r\n * @name endTilingPattern\r\n */\r\n API.endTilingPattern = function(key, pattern) {\r\n advancedApiModeTrap(\"endTilingPattern()\");\r\n\r\n // retrieve the stream\r\n pattern.stream = pages[currentPage].join(\"\\n\");\r\n\r\n addPattern(key, pattern);\r\n\r\n events.publish(\"endTilingPattern\", pattern);\r\n\r\n // restore state from stack\r\n renderTargetStack.pop().restore();\r\n };\r\n\r\n var newObject = (API.__private__.newObject = function() {\r\n var oid = newObjectDeferred();\r\n newObjectDeferredBegin(oid, true);\r\n return oid;\r\n });\r\n\r\n // Does not output the object. The caller must call newObjectDeferredBegin(oid) before outputing any data\r\n var newObjectDeferred = (API.__private__.newObjectDeferred = function() {\r\n objectNumber++;\r\n offsets[objectNumber] = function() {\r\n return contentLength;\r\n };\r\n return objectNumber;\r\n });\r\n\r\n var newObjectDeferredBegin = function(oid, doOutput) {\r\n doOutput = typeof doOutput === \"boolean\" ? doOutput : false;\r\n offsets[oid] = contentLength;\r\n if (doOutput) {\r\n out(oid + \" 0 obj\");\r\n }\r\n return oid;\r\n };\r\n // Does not output the object until after the pages have been output.\r\n // Returns an object containing the objectId and content.\r\n // All pages have been added so the object ID can be estimated to start right after.\r\n // This does not modify the current objectNumber; It must be updated after the newObjects are output.\r\n var newAdditionalObject = (API.__private__.newAdditionalObject = function() {\r\n var objId = newObjectDeferred();\r\n var obj = {\r\n objId: objId,\r\n content: \"\"\r\n };\r\n additionalObjects.push(obj);\r\n return obj;\r\n });\r\n\r\n var rootDictionaryObjId = newObjectDeferred();\r\n var resourceDictionaryObjId = newObjectDeferred();\r\n\r\n /////////////////////\r\n // Private functions\r\n /////////////////////\r\n\r\n var decodeColorString = (API.__private__.decodeColorString = function(color) {\r\n var colorEncoded = color.split(\" \");\r\n if (\r\n colorEncoded.length === 2 &&\r\n (colorEncoded[1] === \"g\" || colorEncoded[1] === \"G\")\r\n ) {\r\n // convert grayscale value to rgb so that it can be converted to hex for consistency\r\n var floatVal = parseFloat(colorEncoded[0]);\r\n colorEncoded = [floatVal, floatVal, floatVal, \"r\"];\r\n } else if (\r\n colorEncoded.length === 5 &&\r\n (colorEncoded[4] === \"k\" || colorEncoded[4] === \"K\")\r\n ) {\r\n // convert CMYK values to rbg so that it can be converted to hex for consistency\r\n var red = (1.0 - colorEncoded[0]) * (1.0 - colorEncoded[3]);\r\n var green = (1.0 - colorEncoded[1]) * (1.0 - colorEncoded[3]);\r\n var blue = (1.0 - colorEncoded[2]) * (1.0 - colorEncoded[3]);\r\n\r\n colorEncoded = [red, green, blue, \"r\"];\r\n }\r\n var colorAsRGB = \"#\";\r\n for (var i = 0; i < 3; i++) {\r\n colorAsRGB += (\r\n \"0\" + Math.floor(parseFloat(colorEncoded[i]) * 255).toString(16)\r\n ).slice(-2);\r\n }\r\n return colorAsRGB;\r\n });\r\n\r\n var encodeColorString = (API.__private__.encodeColorString = function(\r\n options\r\n ) {\r\n var color;\r\n\r\n if (typeof options === \"string\") {\r\n options = {\r\n ch1: options\r\n };\r\n }\r\n var ch1 = options.ch1;\r\n var ch2 = options.ch2;\r\n var ch3 = options.ch3;\r\n var ch4 = options.ch4;\r\n var letterArray =\r\n options.pdfColorType === \"draw\" ? [\"G\", \"RG\", \"K\"] : [\"g\", \"rg\", \"k\"];\r\n\r\n if (typeof ch1 === \"string\" && ch1.charAt(0) !== \"#\") {\r\n var rgbColor = new RGBColor(ch1);\r\n if (rgbColor.ok) {\r\n ch1 = rgbColor.toHex();\r\n } else if (!/^\\d*\\.?\\d*$/.test(ch1)) {\r\n throw new Error(\r\n 'Invalid color \"' + ch1 + '\" passed to jsPDF.encodeColorString.'\r\n );\r\n }\r\n }\r\n //convert short rgb to long form\r\n if (typeof ch1 === \"string\" && /^#[0-9A-Fa-f]{3}$/.test(ch1)) {\r\n ch1 = \"#\" + ch1[1] + ch1[1] + ch1[2] + ch1[2] + ch1[3] + ch1[3];\r\n }\r\n\r\n if (typeof ch1 === \"string\" && /^#[0-9A-Fa-f]{6}$/.test(ch1)) {\r\n var hex = parseInt(ch1.substr(1), 16);\r\n ch1 = (hex >> 16) & 255;\r\n ch2 = (hex >> 8) & 255;\r\n ch3 = hex & 255;\r\n }\r\n\r\n if (\r\n typeof ch2 === \"undefined\" ||\r\n (typeof ch4 === \"undefined\" && ch1 === ch2 && ch2 === ch3)\r\n ) {\r\n // Gray color space.\r\n if (typeof ch1 === \"string\") {\r\n color = ch1 + \" \" + letterArray[0];\r\n } else {\r\n switch (options.precision) {\r\n case 2:\r\n color = f2(ch1 / 255) + \" \" + letterArray[0];\r\n break;\r\n case 3:\r\n default:\r\n color = f3(ch1 / 255) + \" \" + letterArray[0];\r\n }\r\n }\r\n } else if (typeof ch4 === \"undefined\" || typeof ch4 === \"object\") {\r\n // assume RGBA\r\n if (ch4 && !isNaN(ch4.a)) {\r\n //TODO Implement transparency.\r\n //WORKAROUND use white for now, if transparent, otherwise handle as rgb\r\n if (ch4.a === 0) {\r\n color = [\"1.\", \"1.\", \"1.\", letterArray[1]].join(\" \");\r\n return color;\r\n }\r\n }\r\n // assume RGB\r\n if (typeof ch1 === \"string\") {\r\n color = [ch1, ch2, ch3, letterArray[1]].join(\" \");\r\n } else {\r\n switch (options.precision) {\r\n case 2:\r\n color = [\r\n f2(ch1 / 255),\r\n f2(ch2 / 255),\r\n f2(ch3 / 255),\r\n letterArray[1]\r\n ].join(\" \");\r\n break;\r\n default:\r\n case 3:\r\n color = [\r\n f3(ch1 / 255),\r\n f3(ch2 / 255),\r\n f3(ch3 / 255),\r\n letterArray[1]\r\n ].join(\" \");\r\n }\r\n }\r\n } else {\r\n // assume CMYK\r\n if (typeof ch1 === \"string\") {\r\n color = [ch1, ch2, ch3, ch4, letterArray[2]].join(\" \");\r\n } else {\r\n switch (options.precision) {\r\n case 2:\r\n color = [f2(ch1), f2(ch2), f2(ch3), f2(ch4), letterArray[2]].join(\r\n \" \"\r\n );\r\n break;\r\n case 3:\r\n default:\r\n color = [f3(ch1), f3(ch2), f3(ch3), f3(ch4), letterArray[2]].join(\r\n \" \"\r\n );\r\n }\r\n }\r\n }\r\n return color;\r\n });\r\n\r\n var getFilters = (API.__private__.getFilters = function() {\r\n return filters;\r\n });\r\n\r\n var putStream = (API.__private__.putStream = function(options) {\r\n options = options || {};\r\n var data = options.data || \"\";\r\n var filters = options.filters || getFilters();\r\n var alreadyAppliedFilters = options.alreadyAppliedFilters || [];\r\n var addLength1 = options.addLength1 || false;\r\n var valueOfLength1 = data.length;\r\n var objectId = options.objectId;\r\n var encryptor = function(data) {\r\n return data;\r\n };\r\n if (encryptionOptions !== null && typeof objectId == \"undefined\") {\r\n throw new Error(\r\n \"ObjectId must be passed to putStream for file encryption\"\r\n );\r\n }\r\n if (encryptionOptions !== null) {\r\n encryptor = encryption.encryptor(objectId, 0);\r\n }\r\n\r\n var processedData = {};\r\n if (filters === true) {\r\n filters = [\"FlateEncode\"];\r\n }\r\n var keyValues = options.additionalKeyValues || [];\r\n if (typeof jsPDF.API.processDataByFilters !== \"undefined\") {\r\n processedData = jsPDF.API.processDataByFilters(data, filters);\r\n } else {\r\n processedData = { data: data, reverseChain: [] };\r\n }\r\n var filterAsString =\r\n processedData.reverseChain +\r\n (Array.isArray(alreadyAppliedFilters)\r\n ? alreadyAppliedFilters.join(\" \")\r\n : alreadyAppliedFilters.toString());\r\n\r\n if (processedData.data.length !== 0) {\r\n keyValues.push({\r\n key: \"Length\",\r\n value: processedData.data.length\r\n });\r\n if (addLength1 === true) {\r\n keyValues.push({\r\n key: \"Length1\",\r\n value: valueOfLength1\r\n });\r\n }\r\n }\r\n\r\n if (filterAsString.length != 0) {\r\n if (filterAsString.split(\"/\").length - 1 === 1) {\r\n keyValues.push({\r\n key: \"Filter\",\r\n value: filterAsString\r\n });\r\n } else {\r\n keyValues.push({\r\n key: \"Filter\",\r\n value: \"[\" + filterAsString + \"]\"\r\n });\r\n\r\n for (var j = 0; j < keyValues.length; j += 1) {\r\n if (keyValues[j].key === \"DecodeParms\") {\r\n var decodeParmsArray = [];\r\n\r\n for (\r\n var i = 0;\r\n i < processedData.reverseChain.split(\"/\").length - 1;\r\n i += 1\r\n ) {\r\n decodeParmsArray.push(\"null\");\r\n }\r\n\r\n decodeParmsArray.push(keyValues[j].value);\r\n keyValues[j].value = \"[\" + decodeParmsArray.join(\" \") + \"]\";\r\n }\r\n }\r\n }\r\n }\r\n\r\n out(\"<<\");\r\n for (var k = 0; k < keyValues.length; k++) {\r\n out(\"/\" + keyValues[k].key + \" \" + keyValues[k].value);\r\n }\r\n out(\">>\");\r\n if (processedData.data.length !== 0) {\r\n out(\"stream\");\r\n out(encryptor(processedData.data));\r\n out(\"endstream\");\r\n }\r\n });\r\n\r\n var putPage = (API.__private__.putPage = function(page) {\r\n var pageNumber = page.number;\r\n var data = page.data;\r\n var pageObjectNumber = page.objId;\r\n var pageContentsObjId = page.contentsObjId;\r\n\r\n newObjectDeferredBegin(pageObjectNumber, true);\r\n out(\"<</Type /Page\");\r\n out(\"/Parent \" + page.rootDictionaryObjId + \" 0 R\");\r\n out(\"/Resources \" + page.resourceDictionaryObjId + \" 0 R\");\r\n out(\r\n \"/MediaBox [\" +\r\n parseFloat(hpf(page.mediaBox.bottomLeftX)) +\r\n \" \" +\r\n parseFloat(hpf(page.mediaBox.bottomLeftY)) +\r\n \" \" +\r\n hpf(page.mediaBox.topRightX) +\r\n \" \" +\r\n hpf(page.mediaBox.topRightY) +\r\n \"]\"\r\n );\r\n if (page.cropBox !== null) {\r\n out(\r\n \"/CropBox [\" +\r\n hpf(page.cropBox.bottomLeftX) +\r\n \" \" +\r\n hpf(page.cropBox.bottomLeftY) +\r\n \" \" +\r\n hpf(page.cropBox.topRightX) +\r\n \" \" +\r\n hpf(page.cropBox.topRightY) +\r\n \"]\"\r\n );\r\n }\r\n\r\n if (page.bleedBox !== null) {\r\n out(\r\n \"/BleedBox [\" +\r\n hpf(page.bleedBox.bottomLeftX) +\r\n \" \" +\r\n hpf(page.bleedBox.bottomLeftY) +\r\n \" \" +\r\n hpf(page.bleedBox.topRightX) +\r\n \" \" +\r\n hpf(page.bleedBox.topRightY) +\r\n \"]\"\r\n );\r\n }\r\n\r\n if (page.trimBox !== null) {\r\n out(\r\n \"/TrimBox [\" +\r\n hpf(page.trimBox.bottomLeftX) +\r\n \" \" +\r\n hpf(page.trimBox.bottomLeftY) +\r\n \" \" +\r\n hpf(page.trimBox.topRightX) +\r\n \" \" +\r\n hpf(page.trimBox.topRightY) +\r\n \"]\"\r\n );\r\n }\r\n\r\n if (page.artBox !== null) {\r\n out(\r\n \"/ArtBox [\" +\r\n hpf(page.artBox.bottomLeftX) +\r\n \" \" +\r\n hpf(page.artBox.bottomLeftY) +\r\n \" \" +\r\n hpf(page.artBox.topRightX) +\r\n \" \" +\r\n hpf(page.artBox.topRightY) +\r\n \"]\"\r\n );\r\n }\r\n\r\n if (typeof page.userUnit === \"number\" && page.userUnit !== 1.0) {\r\n out(\"/UserUnit \" + page.userUnit);\r\n }\r\n\r\n events.publish(\"putPage\", {\r\n objId: pageObjectNumber,\r\n pageContext: pagesContext[pageNumber],\r\n pageNumber: pageNumber,\r\n page: data\r\n });\r\n out(\"/Contents \" + pageContentsObjId + \" 0 R\");\r\n out(\">>\");\r\n out(\"endobj\");\r\n // Page content\r\n var pageContent = data.join(\"\\n\");\r\n\r\n if (apiMode === ApiMode.ADVANCED) {\r\n // if the user forgot to switch back to COMPAT mode, we must balance the graphics stack again\r\n pageContent += \"\\nQ\";\r\n }\r\n\r\n newObjectDeferredBegin(pageContentsObjId, true);\r\n putStream({\r\n data: pageContent,\r\n filters: getFilters(),\r\n objectId: pageContentsObjId\r\n });\r\n out(\"endobj\");\r\n return pageObjectNumber;\r\n });\r\n\r\n var putPages = (API.__private__.putPages = function() {\r\n var n,\r\n i,\r\n pageObjectNumbers = [];\r\n\r\n for (n = 1; n <= page; n++) {\r\n pagesContext[n].objId = newObjectDeferred();\r\n pagesContext[n].contentsObjId = newObjectDeferred();\r\n }\r\n\r\n for (n = 1; n <= page; n++) {\r\n pageObjectNumbers.push(\r\n putPage({\r\n number: n,\r\n data: pages[n],\r\n objId: pagesContext[n].objId,\r\n contentsObjId: pagesContext[n].contentsObjId,\r\n mediaBox: pagesContext[n].mediaBox,\r\n cropBox: pagesContext[n].cropBox,\r\n bleedBox: pagesContext[n].bleedBox,\r\n trimBox: pagesContext[n].trimBox,\r\n artBox: pagesContext[n].artBox,\r\n userUnit: pagesContext[n].userUnit,\r\n rootDictionaryObjId: rootDictionaryObjId,\r\n resourceDictionaryObjId: resourceDictionaryObjId\r\n })\r\n );\r\n }\r\n newObjectDeferredBegin(rootDictionaryObjId, true);\r\n out(\"<</Type /Pages\");\r\n var kids = \"/Kids [\";\r\n for (i = 0; i < page; i++) {\r\n kids += pageObjectNumbers[i] + \" 0 R \";\r\n }\r\n out(kids + \"]\");\r\n out(\"/Count \" + page);\r\n out(\">>\");\r\n out(\"endobj\");\r\n events.publish(\"postPutPages\");\r\n });\r\n\r\n var putFont = function(font) {\r\n events.publish(\"putFont\", {\r\n font: font,\r\n out: out,\r\n newObject: newObject,\r\n putStream: putStream\r\n });\r\n\r\n if (font.isAlreadyPutted !== true) {\r\n font.objectNumber = newObject();\r\n out(\"<<\");\r\n out(\"/Type /Font\");\r\n out(\"/BaseFont /\" + toPDFName(font.postScriptName));\r\n out(\"/Subtype /Type1\");\r\n if (typeof font.encoding === \"string\") {\r\n out(\"/Encoding /\" + font.encoding);\r\n }\r\n out(\"/FirstChar 32\");\r\n out(\"/LastChar 255\");\r\n out(\">>\");\r\n out(\"endobj\");\r\n }\r\n };\r\n\r\n var putFonts = function() {\r\n for (var fontKey in fonts) {\r\n if (fonts.hasOwnProperty(fontKey)) {\r\n if (\r\n putOnlyUsedFonts === false ||\r\n (putOnlyUsedFonts === true && usedFonts.hasOwnProperty(fontKey))\r\n ) {\r\n putFont(fonts[fontKey]);\r\n }\r\n }\r\n }\r\n };\r\n\r\n var putXObject = function(xObject) {\r\n xObject.objectNumber = newObject();\r\n\r\n var options = [];\r\n options.push({ key: \"Type\", value: \"/XObject\" });\r\n options.push({ key: \"Subtype\", value: \"/Form\" });\r\n options.push({\r\n key: \"BBox\",\r\n value:\r\n \"[\" +\r\n [\r\n hpf(xObject.x),\r\n hpf(xObject.y),\r\n hpf(xObject.x + xObject.width),\r\n hpf(xObject.y + xObject.height)\r\n ].join(\" \") +\r\n \"]\"\r\n });\r\n options.push({\r\n key: \"Matrix\",\r\n value: \"[\" + xObject.matrix.toString() + \"]\"\r\n });\r\n // TODO: /Resources\r\n\r\n var stream = xObject.pages[1].join(\"\\n\");\r\n putStream({\r\n data: stream,\r\n additionalKeyValues: options,\r\n objectId: xObject.objectNumber\r\n });\r\n out(\"endobj\");\r\n };\r\n\r\n var putXObjects = function() {\r\n for (var xObjectKey in renderTargets) {\r\n if (renderTargets.hasOwnProperty(xObjectKey)) {\r\n putXObject(renderTargets[xObjectKey]);\r\n }\r\n }\r\n };\r\n\r\n var interpolateAndEncodeRGBStream = function(colors, numberSamples) {\r\n var tValues = [];\r\n var t;\r\n var dT = 1.0 / (numberSamples - 1);\r\n for (t = 0.0; t < 1.0; t += dT) {\r\n tValues.push(t);\r\n }\r\n tValues.push(1.0);\r\n // add first and last control point if not present\r\n if (colors[0].offset != 0.0) {\r\n var c0 = {\r\n offset: 0.0,\r\n color: colors[0].color\r\n };\r\n colors.unshift(c0);\r\n }\r\n if (colors[colors.length - 1].offset != 1.0) {\r\n var c1 = {\r\n offset: 1.0,\r\n color: colors[colors.length - 1].color\r\n };\r\n colors.push(c1);\r\n }\r\n var out = \"\";\r\n var index = 0;\r\n\r\n for (var i = 0; i < tValues.length; i++) {\r\n t = tValues[i];\r\n while (t > colors[index + 1].offset) index++;\r\n var a = colors[index].offset;\r\n var b = colors[index + 1].offset;\r\n var d = (t - a) / (b - a);\r\n\r\n var aColor = colors[index].color;\r\n var bColor = colors[index + 1].color;\r\n\r\n out +=\r\n padd2Hex(Math.round((1 - d) * aColor[0] + d * bColor[0]).toString(16)) +\r\n padd2Hex(Math.round((1 - d) * aColor[1] + d * bColor[1]).toString(16)) +\r\n padd2Hex(Math.round((1 - d) * aColor[2] + d * bColor[2]).toString(16));\r\n }\r\n return out.trim();\r\n };\r\n\r\n var putShadingPattern = function(pattern, numberSamples) {\r\n /*\r\n Axial patterns shade between the two points specified in coords, radial patterns between the inner\r\n and outer circle.\r\n The user can specify an array (colors) that maps t-Values in [0, 1] to RGB colors. These are now\r\n interpolated to equidistant samples and written to pdf as a sample (type 0) function.\r\n */\r\n // The number of color samples that should be used to describe the shading.\r\n // The higher, the more accurate the gradient will be.\r\n numberSamples || (numberSamples = 21);\r\n var funcObjectNumber = newObject();\r\n var stream = interpolateAndEncodeRGBStream(pattern.colors, numberSamples);\r\n\r\n var options = [];\r\n options.push({ key: \"FunctionType\", value: \"0\" });\r\n options.push({ key: \"Domain\", value: \"[0.0 1.0]\" });\r\n options.push({ key: \"Size\", value: \"[\" + numberSamples + \"]\" });\r\n options.push({ key: \"BitsPerSample\", value: \"8\" });\r\n options.push({ key: \"Range\", value: \"[0.0 1.0 0.0 1.0 0.0 1.0]\" });\r\n options.push({ key: \"Decode\", value: \"[0.0 1.0 0.0 1.0 0.0 1.0]\" });\r\n\r\n putStream({\r\n data: stream,\r\n additionalKeyValues: options,\r\n alreadyAppliedFilters: [\"/ASCIIHexDecode\"],\r\n objectId: funcObjectNumber\r\n });\r\n out(\"endobj\");\r\n\r\n pattern.objectNumber = newObject();\r\n out(\"<< /ShadingType \" + pattern.type);\r\n out(\"/ColorSpace /DeviceRGB\");\r\n var coords =\r\n \"/Coords [\" +\r\n hpf(parseFloat(pattern.coords[0])) +\r\n \" \" + // x1\r\n hpf(parseFloat(pattern.coords[1])) +\r\n \" \"; // y1\r\n if (pattern.type === 2) {\r\n // axial\r\n coords +=\r\n hpf(parseFloat(pattern.coords[2])) +\r\n \" \" + // x2\r\n hpf(parseFloat(pattern.coords[3])); // y2\r\n } else {\r\n // radial\r\n coords +=\r\n hpf(parseFloat(pattern.coords[2])) +\r\n \" \" + // r1\r\n hpf(parseFloat(pattern.coords[3])) +\r\n \" \" + // x2\r\n hpf(parseFloat(pattern.coords[4])) +\r\n \" \" + // y2\r\n hpf(parseFloat(pattern.coords[5])); // r2\r\n }\r\n coords += \"]\";\r\n out(coords);\r\n\r\n if (pattern.matrix) {\r\n out(\"/Matrix [\" + pattern.matrix.toString() + \"]\");\r\n }\r\n out(\"/Function \" + funcObjectNumber + \" 0 R\");\r\n out(\"/Extend [true true]\");\r\n out(\">>\");\r\n out(\"endobj\");\r\n };\r\n\r\n var putTilingPattern = function(pattern, deferredResourceDictionaryIds) {\r\n var resourcesObjectId = newObjectDeferred();\r\n var patternObjectId = newObject();\r\n\r\n deferredResourceDictionaryIds.push({\r\n resourcesOid: resourcesObjectId,\r\n objectOid: patternObjectId\r\n });\r\n\r\n pattern.objectNumber = patternObjectId;\r\n var options = [];\r\n options.push({ key: \"Type\", value: \"/Pattern\" });\r\n options.push({ key: \"PatternType\", value: \"1\" }); // tiling pattern\r\n options.push({ key: \"PaintType\", value: \"1\" }); // colored tiling pattern\r\n options.push({ key: \"TilingType\", value: \"1\" }); // constant spacing\r\n options.push({\r\n key: \"BBox\",\r\n value: \"[\" + pattern.boundingBox.map(hpf).join(\" \") + \"]\"\r\n });\r\n options.push({ key: \"XStep\", value: hpf(pattern.xStep) });\r\n options.push({ key: \"YStep\", value: hpf(pattern.yStep) });\r\n options.push({ key: \"Resources\", value: resourcesObjectId + \" 0 R\" });\r\n if (pattern.matrix) {\r\n options.push({\r\n key: \"Matrix\",\r\n value: \"[\" + pattern.matrix.toString() + \"]\"\r\n });\r\n }\r\n\r\n putStream({\r\n data: pattern.stream,\r\n additionalKeyValues: options,\r\n objectId: pattern.objectNumber\r\n });\r\n out(\"endobj\");\r\n };\r\n\r\n var putPatterns = function(deferredResourceDictionaryIds) {\r\n var patternKey;\r\n for (patternKey in patterns) {\r\n if (patterns.hasOwnProperty(patternKey)) {\r\n if (patterns[patternKey] instanceof ShadingPattern) {\r\n putShadingPattern(patterns[patternKey]);\r\n } else if (patterns[patternKey] instanceof TilingPattern) {\r\n putTilingPattern(patterns[patternKey], deferredResourceDictionaryIds);\r\n }\r\n }\r\n }\r\n };\r\n\r\n var putGState = function(gState) {\r\n gState.objectNumber = newObject();\r\n out(\"<<\");\r\n for (var p in gState) {\r\n switch (p) {\r\n case \"opacity\":\r\n out(\"/ca \" + f2(gState[p]));\r\n break;\r\n case \"stroke-opacity\":\r\n out(\"/CA \" + f2(gState[p]));\r\n break;\r\n }\r\n }\r\n out(\">>\");\r\n out(\"endobj\");\r\n };\r\n\r\n var putGStates = function() {\r\n var gStateKey;\r\n for (gStateKey in gStates) {\r\n if (gStates.hasOwnProperty(gStateKey)) {\r\n putGState(gStates[gStateKey]);\r\n }\r\n }\r\n };\r\n\r\n var putXobjectDict = function() {\r\n out(\"/XObject <<\");\r\n for (var xObjectKey in renderTargets) {\r\n if (\r\n renderTargets.hasOwnProperty(xObjectKey) &&\r\n renderTargets[xObjectKey].objectNumber >= 0\r\n ) {\r\n out(\r\n \"/\" +\r\n xObjectKey +\r\n \" \" +\r\n renderTargets[xObjectKey].objectNumber +\r\n \" 0 R\"\r\n );\r\n }\r\n }\r\n\r\n // Loop through images, or other data objects\r\n events.publish(\"putXobjectDict\");\r\n out(\">>\");\r\n };\r\n\r\n var putEncryptionDict = function() {\r\n encryption.oid = newObject();\r\n out(\"<<\");\r\n out(\"/Filter /Standard\");\r\n out(\"/V \" + encryption.v);\r\n out(\"/R \" + encryption.r);\r\n out(\"/U <\" + encryption.toHexString(encryption.U) + \">\");\r\n out(\"/O <\" + encryption.toHexString(encryption.O) + \">\");\r\n out(\"/P \" + encryption.P);\r\n out(\">>\");\r\n out(\"endobj\");\r\n };\r\n\r\n var putFontDict = function() {\r\n out(\"/Font <<\");\r\n\r\n for (var fontKey in fonts) {\r\n if (fonts.hasOwnProperty(fontKey)) {\r\n if (\r\n putOnlyUsedFonts === false ||\r\n (putOnlyUsedFonts === true && usedFonts.hasOwnProperty(fontKey))\r\n ) {\r\n out(\"/\" + fontKey + \" \" + fonts[fontKey].objectNumber + \" 0 R\");\r\n }\r\n }\r\n }\r\n out(\">>\");\r\n };\r\n\r\n var putShadingPatternDict = function() {\r\n if (Object.keys(patterns).length > 0) {\r\n out(\"/Shading <<\");\r\n for (var patternKey in patterns) {\r\n if (\r\n patterns.hasOwnProperty(patternKey) &&\r\n patterns[patternKey] instanceof ShadingPattern &&\r\n patterns[patternKey].objectNumber >= 0\r\n ) {\r\n out(\r\n \"/\" + patternKey + \" \" + patterns[patternKey].objectNumber + \" 0 R\"\r\n );\r\n }\r\n }\r\n\r\n events.publish(\"putShadingPatternDict\");\r\n out(\">>\");\r\n }\r\n };\r\n\r\n var putTilingPatternDict = function(objectOid) {\r\n if (Object.keys(patterns).length > 0) {\r\n out(\"/Pattern <<\");\r\n for (var patternKey in patterns) {\r\n if (\r\n patterns.hasOwnProperty(patternKey) &&\r\n patterns[patternKey] instanceof API.TilingPattern &&\r\n patterns[patternKey].objectNumber >= 0 &&\r\n patterns[patternKey].objectNumber < objectOid // prevent cyclic dependencies\r\n ) {\r\n out(\r\n \"/\" + patternKey + \" \" + patterns[patternKey].objectNumber + \" 0 R\"\r\n );\r\n }\r\n }\r\n events.publish(\"putTilingPatternDict\");\r\n out(\">>\");\r\n }\r\n };\r\n\r\n var putGStatesDict = function() {\r\n if (Object.keys(gStates).length > 0) {\r\n var gStateKey;\r\n out(\"/ExtGState <<\");\r\n for (gStateKey in gStates) {\r\n if (\r\n gStates.hasOwnProperty(gStateKey) &&\r\n gStates[gStateKey].objectNumber >= 0\r\n ) {\r\n out(\"/\" + gStateKey + \" \" + gStates[gStateKey].objectNumber + \" 0 R\");\r\n }\r\n }\r\n\r\n events.publish(\"putGStateDict\");\r\n out(\">>\");\r\n }\r\n };\r\n\r\n var putResourceDictionary = function(objectIds) {\r\n newObjectDeferredBegin(objectIds.resourcesOid, true);\r\n out(\"<<\");\r\n out(\"/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]\");\r\n putFontDict();\r\n putShadingPatternDict();\r\n putTilingPatternDict(objectIds.objectOid);\r\n putGStatesDict();\r\n putXobjectDict();\r\n out(\">>\");\r\n out(\"endobj\");\r\n };\r\n\r\n var putResources = function() {\r\n // FormObjects, Patterns etc. might use other FormObjects/Patterns/Images\r\n // which means their resource dictionaries must contain the already resolved\r\n // object ids. For this reason we defer the serialization of the resource\r\n // dicts until all objects have been serialized and have object ids.\r\n //\r\n // In order to prevent cyclic dependencies (which Adobe Reader doesn't like),\r\n // we only put all oids that are smaller than the oid of the object the\r\n // resource dict belongs to. This is correct behavior, since the streams\r\n // may only use other objects that have already been defined and thus appear\r\n // earlier in their respective collection.\r\n // Currently, this only affects tiling patterns, but a (more) correct\r\n // implementation of FormObjects would also define their own resource dicts.\r\n var deferredResourceDictionaryIds = [];\r\n\r\n putFonts();\r\n putGStates();\r\n putXObjects();\r\n putPatterns(deferredResourceDictionaryIds);\r\n\r\n events.publish(\"putResources\");\r\n deferredResourceDictionaryIds.forEach(putResourceDictionary);\r\n putResourceDictionary({\r\n resourcesOid: resourceDictionaryObjId,\r\n objectOid: Number.MAX_SAFE_INTEGER // output all objects\r\n });\r\n events.publish(\"postPutResources\");\r\n };\r\n\r\n var putAdditionalObjects = function() {\r\n events.publish(\"putAdditionalObjects\");\r\n for (var i = 0; i < additionalObjects.length; i++) {\r\n var obj = additionalObjects[i];\r\n newObjectDeferredBegin(obj.objId, true);\r\n out(obj.content);\r\n out(\"endobj\");\r\n }\r\n events.publish(\"postPutAdditionalObjects\");\r\n };\r\n\r\n var addFontToFontDictionary = function(font) {\r\n fontmap[font.fontName] = fontmap[font.fontName] || {};\r\n fontmap[font.fontName][font.fontStyle] = font.id;\r\n };\r\n\r\n var addFont = function(\r\n postScriptName,\r\n fontName,\r\n fontStyle,\r\n encoding,\r\n isStandardFont\r\n ) {\r\n var font = {\r\n id: \"F\" + (Object.keys(fonts).length + 1).toString(10),\r\n postScriptName: postScriptName,\r\n fontName: fontName,\r\n fontStyle: fontStyle,\r\n encoding: encoding,\r\n isStandardFont: isStandardFont || false,\r\n metadata: {}\r\n };\r\n\r\n events.publish(\"addFont\", {\r\n font: font,\r\n instance: this\r\n });\r\n\r\n fonts[font.id] = font;\r\n addFontToFontDictionary(font);\r\n return font.id;\r\n };\r\n\r\n var addFonts = function(arrayOfFonts) {\r\n for (var i = 0, l = standardFonts.length; i < l; i++) {\r\n var fontKey = addFont.call(\r\n this,\r\n arrayOfFonts[i][0],\r\n arrayOfFonts[i][1],\r\n arrayOfFonts[i][2],\r\n standardFonts[i][3],\r\n true\r\n );\r\n\r\n if (putOnlyUsedFonts === false) {\r\n usedFonts[fontKey] = true;\r\n }\r\n // adding aliases for standard fonts, this time matching the capitalization\r\n var parts = arrayOfFonts[i][0].split(\"-\");\r\n addFontToFontDictionary({\r\n id: fontKey,\r\n fontName: parts[0],\r\n fontStyle: parts[1] || \"\"\r\n });\r\n }\r\n events.publish(\"addFonts\", {\r\n fonts: fonts,\r\n dictionary: fontmap\r\n });\r\n };\r\n\r\n var SAFE = function __safeCall(fn) {\r\n fn.foo = function __safeCallWrapper() {\r\n try {\r\n return fn.apply(this, arguments);\r\n } catch (e) {\r\n var stack = e.stack || \"\";\r\n if (~stack.indexOf(\" at \")) stack = stack.split(\" at \")[1];\r\n var m =\r\n \"Error in function \" +\r\n stack.split(\"\\n\")[0].split(\"<\")[0] +\r\n \": \" +\r\n e.message;\r\n if (globalObject.console) {\r\n globalObject.console.error(m, e);\r\n if (globalObject.alert) alert(m);\r\n } else {\r\n throw new Error(m);\r\n }\r\n }\r\n };\r\n fn.foo.bar = fn;\r\n return fn.foo;\r\n };\r\n\r\n var to8bitStream = function(text, flags) {\r\n /**\r\n * PDF 1.3 spec:\r\n * \"For text strings encoded in Unicode, the first two bytes must be 254 followed by\r\n * 255, representing the Unicode byte order marker, U+FEFF. (This sequence conflicts\r\n * with the PDFDocEncoding character sequence thorn ydieresis, which is unlikely\r\n * to be a meaningful beginning of a word or phrase.) The remainder of the\r\n * string consists of Unicode character codes, according to the UTF-16 encoding\r\n * specified in the Unicode standard, version 2.0. Commonly used Unicode values\r\n * are represented as 2 bytes per character, with the high-order byte appearing first\r\n * in the string.\"\r\n *\r\n * In other words, if there are chars in a string with char code above 255, we\r\n * recode the string to UCS2 BE - string doubles in length and BOM is prepended.\r\n *\r\n * HOWEVER!\r\n * Actual *content* (body) text (as opposed to strings used in document properties etc)\r\n * does NOT expect BOM. There, it is treated as a literal GID (Glyph ID)\r\n *\r\n * Because of Adobe's focus on \"you subset your fonts!\" you are not supposed to have\r\n * a font that maps directly Unicode (UCS2 / UTF16BE) code to font GID, but you could\r\n * fudge it with \"Identity-H\" encoding and custom CIDtoGID map that mimics Unicode\r\n * code page. There, however, all characters in the stream are treated as GIDs,\r\n * including BOM, which is the reason we need to skip BOM in content text (i.e. that\r\n * that is tied to a font).\r\n *\r\n * To signal this \"special\" PDFEscape / to8bitStream handling mode,\r\n * API.text() function sets (unless you overwrite it with manual values\r\n * given to API.text(.., flags) )\r\n * flags.autoencode = true\r\n * flags.noBOM = true\r\n *\r\n * ===================================================================================\r\n * `flags` properties relied upon:\r\n * .sourceEncoding = string with encoding label.\r\n * \"Unicode\" by default. = encoding of the incoming text.\r\n * pass some non-existing encoding name\r\n * (ex: 'Do not touch my strings! I know what I am doing.')\r\n * to make encoding code skip the encoding step.\r\n * .outputEncoding = Either valid PDF encoding name\r\n * (must be supported by jsPDF font metrics, otherwise no encoding)\r\n * or a JS object, where key = sourceCharCode, value = outputCharCode\r\n * missing keys will be treated as: sourceCharCode === outputCharCode\r\n * .noBOM\r\n * See comment higher above for explanation for why this is important\r\n * .autoencode\r\n * See comment higher above for explanation for why this is important\r\n */\r\n\r\n var i,\r\n l,\r\n sourceEncoding,\r\n encodingBlock,\r\n outputEncoding,\r\n newtext,\r\n isUnicode,\r\n ch,\r\n bch;\r\n\r\n flags = flags || {};\r\n sourceEncoding = flags.sourceEncoding || \"Unicode\";\r\n outputEncoding = flags.outputEncoding;\r\n\r\n // This 'encoding' section relies on font metrics format\r\n // attached to font objects by, among others,\r\n // \"Willow Systems' standard_font_metrics plugin\"\r\n // see jspdf.plugin.standard_font_metrics.js for format\r\n // of the font.metadata.encoding Object.\r\n // It should be something like\r\n // .encoding = {'codePages':['WinANSI....'], 'WinANSI...':{code:code, ...}}\r\n // .widths = {0:width, code:width, ..., 'fof':divisor}\r\n // .kerning = {code:{previous_char_code:shift, ..., 'fof':-divisor},...}\r\n if (\r\n (flags.autoencode || outputEncoding) &&\r\n fonts[activeFontKey].metadata &&\r\n fonts[activeFontKey].metadata[sourceEncoding] &&\r\n fonts[activeFontKey].metadata[sourceEncoding].encoding\r\n ) {\r\n encodingBlock = fonts[activeFontKey].metadata[sourceEncoding].encoding;\r\n\r\n // each font has default encoding. Some have it clearly defined.\r\n if (!outputEncoding && fonts[activeFontKey].encoding) {\r\n outputEncoding = fonts[activeFontKey].encoding;\r\n }\r\n\r\n // Hmmm, the above did not work? Let's try again, in different place.\r\n if (!outputEncoding && encodingBlock.codePages) {\r\n outputEncoding = encodingBlock.codePages[0]; // let's say, first one is the default\r\n }\r\n\r\n if (typeof outputEncoding === \"string\") {\r\n outputEncoding = encodingBlock[outputEncoding];\r\n }\r\n // we want output encoding to be a JS Object, where\r\n // key = sourceEncoding's character code and\r\n // value = outputEncoding's character code.\r\n if (outputEncoding) {\r\n isUnicode = false;\r\n newtext = [];\r\n for (i = 0, l = text.length; i < l; i++) {\r\n ch = outputEncoding[text.charCodeAt(i)];\r\n if (ch) {\r\n newtext.push(String.fromCharCode(ch));\r\n } else {\r\n newtext.push(text[i]);\r\n }\r\n\r\n // since we are looping over chars anyway, might as well\r\n // check for residual unicodeness\r\n if (newtext[i].charCodeAt(0) >> 8) {\r\n /* more than 255 */\r\n isUnicode = true;\r\n }\r\n }\r\n text = newtext.join(\"\");\r\n }\r\n }\r\n\r\n i = text.length;\r\n // isUnicode may be set to false above. Hence the triple-equal to undefined\r\n while (isUnicode === undefined && i !== 0) {\r\n if (text.charCodeAt(i - 1) >> 8) {\r\n /* more than 255 */\r\n isUnicode = true;\r\n }\r\n i--;\r\n }\r\n if (!isUnicode) {\r\n return text;\r\n }\r\n\r\n newtext = flags.noBOM ? [] : [254, 255];\r\n for (i = 0, l = text.length; i < l; i++) {\r\n ch = text.charCodeAt(i);\r\n bch = ch >> 8; // divide by 256\r\n if (bch >> 8) {\r\n /* something left after dividing by 256 second time */\r\n throw new Error(\r\n \"Character at position \" +\r\n i +\r\n \" of string '\" +\r\n text +\r\n \"' exceeds 16bits. Cannot be encoded into UCS-2 BE\"\r\n );\r\n }\r\n newtext.push(bch);\r\n newtext.push(ch - (bch << 8));\r\n }\r\n return String.fromCharCode.apply(undefined, newtext);\r\n };\r\n\r\n var pdfEscape = (API.__private__.pdfEscape = API.pdfEscape = function(\r\n text,\r\n flags\r\n ) {\r\n /**\r\n * Replace '/', '(', and ')' with pdf-safe versions\r\n *\r\n * Doing to8bitStream does NOT make this PDF display unicode text. For that\r\n * we also need to reference a unicode font and embed it - royal pain in the rear.\r\n *\r\n * There is still a benefit to to8bitStream - PDF simply cannot handle 16bit chars,\r\n * which JavaScript Strings are happy to provide. So, while we still cannot display\r\n * 2-byte characters property, at least CONDITIONALLY converting (entire string containing)\r\n * 16bit chars to (USC-2-BE) 2-bytes per char + BOM streams we ensure that entire PDF\r\n * is still parseable.\r\n * This will allow immediate support for unicode in document properties strings.\r\n */\r\n return to8bitStream(text, flags)\r\n .replace(/\\\\/g, \"\\\\\\\\\")\r\n .replace(/\\(/g, \"\\\\(\")\r\n .replace(/\\)/g, \"\\\\)\");\r\n });\r\n\r\n var beginPage = (API.__private__.beginPage = function(format) {\r\n pages[++page] = [];\r\n pagesContext[page] = {\r\n objId: 0,\r\n contentsObjId: 0,\r\n userUnit: Number(userUnit),\r\n artBox: null,\r\n bleedBox: null,\r\n cropBox: null,\r\n trimBox: null,\r\n mediaBox: {\r\n bottomLeftX: 0,\r\n bottomLeftY: 0,\r\n topRightX: Number(format[0]),\r\n topRightY: Number(format[1])\r\n }\r\n };\r\n _setPage(page);\r\n setOutputDestination(pages[currentPage]);\r\n });\r\n\r\n var _addPage = function(parmFormat, parmOrientation) {\r\n var dimensions, width, height;\r\n\r\n orientation = parmOrientation || orientation;\r\n\r\n if (typeof parmFormat === \"string\") {\r\n dimensions = getPageFormat(parmFormat.toLowerCase());\r\n if (Array.isArray(dimensions)) {\r\n width = dimensions[0];\r\n height = dimensions[1];\r\n }\r\n }\r\n\r\n if (Array.isArray(parmFormat)) {\r\n width = parmFormat[0] * scaleFactor;\r\n height = parmFormat[1] * scaleFactor;\r\n }\r\n\r\n if (isNaN(width)) {\r\n width = format[0];\r\n height = format[1];\r\n }\r\n\r\n if (width > 14400 || height > 14400) {\r\n console.warn(\r\n \"A page in a PDF can not be wider or taller than 14400 userUnit. jsPDF limits the width/height to 14400\"\r\n );\r\n width = Math.min(14400, width);\r\n height = Math.min(14400, height);\r\n }\r\n\r\n format = [width, height];\r\n\r\n switch (orientation.substr(0, 1)) {\r\n case \"l\":\r\n if (height > width) {\r\n format = [height, width];\r\n }\r\n break;\r\n case \"p\":\r\n if (width > height) {\r\n format = [height, width];\r\n }\r\n break;\r\n }\r\n\r\n beginPage(format);\r\n\r\n // Set line width\r\n setLineWidth(lineWidth);\r\n // Set draw color\r\n out(strokeColor);\r\n // resurrecting non-default line caps, joins\r\n if (lineCapID !== 0) {\r\n out(lineCapID + \" J\");\r\n }\r\n if (lineJoinID !== 0) {\r\n out(lineJoinID + \" j\");\r\n }\r\n events.publish(\"addPage\", {\r\n pageNumber: page\r\n });\r\n };\r\n\r\n var _deletePage = function(n) {\r\n if (n > 0 && n <= page) {\r\n pages.splice(n, 1);\r\n pagesContext.splice(n, 1);\r\n page--;\r\n if (currentPage > page) {\r\n currentPage = page;\r\n }\r\n this.setPage(currentPage);\r\n }\r\n };\r\n\r\n var _setPage = function(n) {\r\n if (n > 0 && n <= page) {\r\n currentPage = n;\r\n }\r\n };\r\n\r\n var getNumberOfPages = (API.__private__.getNumberOfPages = API.getNumberOfPages = function() {\r\n return pages.length - 1;\r\n });\r\n\r\n /**\r\n * Returns a document-specific font key - a label assigned to a\r\n * font name + font type combination at the time the font was added\r\n * to the font inventory.\r\n *\r\n * Font key is used as label for the desired font for a block of text\r\n * to be added to the PDF document stream.\r\n * @private\r\n * @function\r\n * @param fontName {string} can be undefined on \"falthy\" to indicate \"use current\"\r\n * @param fontStyle {string} can be undefined on \"falthy\" to indicate \"use current\"\r\n * @returns {string} Font key.\r\n * @ignore\r\n */\r\n var getFont = function(fontName, fontStyle, options) {\r\n var key = undefined,\r\n fontNameLowerCase;\r\n options = options || {};\r\n\r\n fontName =\r\n fontName !== undefined ? fontName : fonts[activeFontKey].fontName;\r\n fontStyle =\r\n fontStyle !== undefined ? fontStyle : fonts[activeFontKey].fontStyle;\r\n fontNameLowerCase = fontName.toLowerCase();\r\n\r\n if (\r\n fontmap[fontNameLowerCase] !== undefined &&\r\n fontmap[fontNameLowerCase][fontStyle] !== undefined\r\n ) {\r\n key = fontmap[fontNameLowerCase][fontStyle];\r\n } else if (\r\n fontmap[fontName] !== undefined &&\r\n fontmap[fontName][fontStyle] !== undefined\r\n ) {\r\n key = fontmap[fontName][fontStyle];\r\n } else {\r\n if (options.disableWarning === false) {\r\n console.warn(\r\n \"Unable to look up font label for font '\" +\r\n fontName +\r\n \"', '\" +\r\n fontStyle +\r\n \"'. Refer to getFontList() for available fonts.\"\r\n );\r\n }\r\n }\r\n\r\n if (!key && !options.noFallback) {\r\n key = fontmap[\"times\"][fontStyle];\r\n if (key == null) {\r\n key = fontmap[\"times\"][\"normal\"];\r\n }\r\n }\r\n return key;\r\n };\r\n\r\n var putInfo = (API.__private__.putInfo = function() {\r\n var objectId = newObject();\r\n var encryptor = function(data) {\r\n return data;\r\n };\r\n if (encryptionOptions !== null) {\r\n encryptor = encryption.encryptor(objectId, 0);\r\n }\r\n out(\"<<\");\r\n out(\"/Producer (\" + pdfEscape(encryptor(\"jsPDF \" + jsPDF.version)) + \")\");\r\n for (var key in documentProperties) {\r\n if (documentProperties.hasOwnProperty(key) && documentProperties[key]) {\r\n out(\r\n \"/\" +\r\n key.substr(0, 1).toUpperCase() +\r\n key.substr(1) +\r\n \" (\" +\r\n pdfEscape(encryptor(documentProperties[key])) +\r\n \")\"\r\n );\r\n }\r\n }\r\n out(\"/CreationDate (\" + pdfEscape(encryptor(creationDate)) + \")\");\r\n out(\">>\");\r\n out(\"endobj\");\r\n });\r\n\r\n var putCatalog = (API.__private__.putCatalog = function(options) {\r\n options = options || {};\r\n var tmpRootDictionaryObjId =\r\n options.rootDictionaryObjId || rootDictionaryObjId;\r\n newObject();\r\n out(\"<<\");\r\n out(\"/Type /Catalog\");\r\n out(\"/Pages \" + tmpRootDictionaryObjId + \" 0 R\");\r\n // PDF13ref Section 7.2.1\r\n if (!zoomMode) zoomMode = \"fullwidth\";\r\n switch (zoomMode) {\r\n case \"fullwidth\":\r\n out(\"/OpenAction [3 0 R /FitH null]\");\r\n break;\r\n case \"fullheight\":\r\n out(\"/OpenAction [3 0 R /FitV null]\");\r\n break;\r\n case \"fullpage\":\r\n out(\"/OpenAction [3 0 R /Fit]\");\r\n break;\r\n case \"original\":\r\n out(\"/OpenAction [3 0 R /XYZ null null 1]\");\r\n break;\r\n default:\r\n var pcn = \"\" + zoomMode;\r\n if (pcn.substr(pcn.length - 1) === \"%\")\r\n zoomMode = parseInt(zoomMode) / 100;\r\n if (typeof zoomMode === \"number\") {\r\n out(\"/OpenAction [3 0 R /XYZ null null \" + f2(zoomMode) + \"]\");\r\n }\r\n }\r\n if (!layoutMode) layoutMode = \"continuous\";\r\n switch (layoutMode) {\r\n case \"continuous\":\r\n out(\"/PageLayout /OneColumn\");\r\n break;\r\n case \"single\":\r\n out(\"/PageLayout /SinglePage\");\r\n break;\r\n case \"two\":\r\n case \"twoleft\":\r\n out(\"/PageLayout /TwoColumnLeft\");\r\n break;\r\n case \"tworight\":\r\n out(\"/PageLayout /TwoColumnRight\");\r\n break;\r\n }\r\n if (pageMode) {\r\n /**\r\n * A name object specifying how the document should be displayed when opened:\r\n * UseNone : Neither document outline nor thumbnail images visible -- DEFAULT\r\n * UseOutlines : Document outline visible\r\n * UseThumbs : Thumbnail images visible\r\n * FullScreen : Full-screen mode, with no menu bar, window controls, or any other window visible\r\n */\r\n out(\"/PageMode /\" + pageMode);\r\n }\r\n events.publish(\"putCatalog\");\r\n out(\">>\");\r\n out(\"endobj\");\r\n });\r\n\r\n var putTrailer = (API.__private__.putTrailer = function() {\r\n out(\"trailer\");\r\n out(\"<<\");\r\n out(\"/Size \" + (objectNumber + 1));\r\n // Root and Info must be the last and second last objects written respectively\r\n out(\"/Root \" + objectNumber + \" 0 R\");\r\n out(\"/Info \" + (objectNumber - 1) + \" 0 R\");\r\n if (encryptionOptions !== null) {\r\n out(\"/Encrypt \" + encryption.oid + \" 0 R\");\r\n }\r\n out(\"/ID [ <\" + fileId + \"> <\" + fileId + \"> ]\");\r\n out(\">>\");\r\n });\r\n\r\n var putHeader = (API.__private__.putHeader = function() {\r\n out(\"%PDF-\" + pdfVersion);\r\n out(\"%\\xBA\\xDF\\xAC\\xE0\");\r\n });\r\n\r\n var putXRef = (API.__private__.putXRef = function() {\r\n var p = \"0000000000\";\r\n\r\n out(\"xref\");\r\n out(\"0 \" + (objectNumber + 1));\r\n out(\"0000000000 65535 f \");\r\n for (var i = 1; i <= objectNumber; i++) {\r\n var offset = offsets[i];\r\n if (typeof offset === \"function\") {\r\n out((p + offsets[i]()).slice(-10) + \" 00000 n \");\r\n } else {\r\n if (typeof offsets[i] !== \"undefined\") {\r\n out((p + offsets[i]).slice(-10) + \" 00000 n \");\r\n } else {\r\n out(\"0000000000 00000 n \");\r\n }\r\n }\r\n }\r\n });\r\n\r\n var buildDocument = (API.__private__.buildDocument = function() {\r\n resetDocument();\r\n setOutputDestination(content);\r\n\r\n events.publish(\"buildDocument\");\r\n\r\n putHeader();\r\n putPages();\r\n putAdditionalObjects();\r\n putResources();\r\n if (encryptionOptions !== null) putEncryptionDict();\r\n putInfo();\r\n putCatalog();\r\n\r\n var offsetOfXRef = contentLength;\r\n putXRef();\r\n putTrailer();\r\n out(\"startxref\");\r\n out(\"\" + offsetOfXRef);\r\n out(\"%%EOF\");\r\n\r\n setOutputDestination(pages[currentPage]);\r\n\r\n return content.join(\"\\n\");\r\n });\r\n\r\n var getBlob = (API.__private__.getBlob = function(data) {\r\n return new Blob([getArrayBuffer(data)], {\r\n type: \"application/pdf\"\r\n });\r\n });\r\n\r\n /**\r\n * Generates the PDF document.\r\n *\r\n * If `type` argument is undefined, output is raw body of resulting PDF returned as a string.\r\n *\r\n * @param {string} type A string identifying one of the possible output types.<br/>\r\n * Possible values are: <br/>\r\n * 'arraybuffer' -> (ArrayBuffer)<br/>\r\n * 'blob' -> (Blob)<br/>\r\n * 'bloburi'/'bloburl' -> (string)<br/>\r\n * 'datauristring'/'dataurlstring' -> (string)<br/>\r\n * 'datauri'/'dataurl' -> (undefined) -> change location to generated datauristring/dataurlstring<br/>\r\n * 'dataurlnewwindow' -> (window | null | undefined) throws error if global isn't a window object(node)<br/>\r\n * 'pdfobjectnewwindow' -> (window | null) throws error if global isn't a window object(node)<br/>\r\n * 'pdfjsnewwindow' -> (wind | null)\r\n * @param {Object|string} options An object providing some additional signalling to PDF generator.<br/>\r\n * Possible options are 'filename'.<br/>\r\n * A string can be passed instead of {filename:string} and defaults to 'generated.pdf'\r\n * @function\r\n * @instance\r\n * @returns {string|window|ArrayBuffer|Blob|jsPDF|null|undefined}\r\n * @memberof jsPDF#\r\n * @name output\r\n */\r\n var output = (API.output = API.__private__.output = SAFE(function output(\r\n type,\r\n options\r\n ) {\r\n options = options || {};\r\n\r\n if (typeof options === \"string\") {\r\n options = {\r\n filename: options\r\n };\r\n } else {\r\n options.filename = options.filename || \"generated.pdf\";\r\n }\r\n\r\n switch (type) {\r\n case undefined:\r\n return buildDocument();\r\n case \"save\":\r\n API.save(options.filename);\r\n break;\r\n case \"arraybuffer\":\r\n return getArrayBuffer(buildDocument());\r\n case \"blob\":\r\n return getBlob(buildDocument());\r\n case \"bloburi\":\r\n case \"bloburl\":\r\n // Developer is responsible of calling revokeObjectURL\r\n if (\r\n typeof globalObject.URL !== \"undefined\" &&\r\n typeof globalObject.URL.createObjectURL === \"function\"\r\n ) {\r\n return (\r\n (globalObject.URL &&\r\n globalObject.URL.createObjectURL(getBlob(buildDocument()))) ||\r\n void 0\r\n );\r\n } else {\r\n console.warn(\r\n \"bloburl is not supported by your system, because URL.createObjectURL is not supported by your browser.\"\r\n );\r\n }\r\n break;\r\n case \"datauristring\":\r\n case \"dataurlstring\":\r\n var dataURI = \"\";\r\n var pdfDocument = buildDocument();\r\n try {\r\n dataURI = btoa(pdfDocument);\r\n } catch (e) {\r\n dataURI = btoa(unescape(encodeURIComponent(pdfDocument)));\r\n }\r\n return (\r\n \"data:application/pdf;filename=\" +\r\n options.filename +\r\n \";base64,\" +\r\n dataURI\r\n );\r\n case \"pdfobjectnewwindow\":\r\n if (\r\n Object.prototype.toString.call(globalObject) === \"[object Window]\"\r\n ) {\r\n var pdfObjectUrl =\r\n \"https://cdnjs.cloudflare.com/ajax/libs/pdfobject/2.1.1/pdfobject.min.js\";\r\n var integrity =\r\n ' integrity=\"sha512-4ze/a9/4jqu+tX9dfOqJYSvyYd5M6qum/3HpCLr+/Jqf0whc37VUbkpNGHR7/8pSnCFw47T1fmIpwBV7UySh3g==\" crossorigin=\"anonymous\"';\r\n\r\n if (options.pdfObjectUrl) {\r\n pdfObjectUrl = options.pdfObjectUrl;\r\n integrity = \"\";\r\n }\r\n\r\n var htmlForNewWindow =\r\n \"<html>\" +\r\n '<style>html, body { padding: 0; margin: 0; } iframe { width: 100%; height: 100%; border: 0;} </style><body><script src=\"' +\r\n pdfObjectUrl +\r\n '\"' +\r\n integrity +\r\n '></script><script >PDFObject.embed(\"' +\r\n this.output(\"dataurlstring\") +\r\n '\", ' +\r\n JSON.stringify(options) +\r\n \");</script></body></html>\";\r\n var nW = globalObject.open();\r\n\r\n if (nW !== null) {\r\n nW.document.write(htmlForNewWindow);\r\n }\r\n return nW;\r\n } else {\r\n throw new Error(\r\n \"The option pdfobjectnewwindow just works in a browser-environment.\"\r\n );\r\n }\r\n case \"pdfjsnewwindow\":\r\n if (\r\n Object.prototype.toString.call(globalObject) === \"[object Window]\"\r\n ) {\r\n var pdfJsUrl = options.pdfJsUrl || \"examples/PDF.js/web/viewer.html\";\r\n var htmlForPDFjsNewWindow =\r\n \"<html>\" +\r\n \"<style>html, body { padding: 0; margin: 0; } iframe { width: 100%; height: 100%; border: 0;} </style>\" +\r\n '<body><iframe id=\"pdfViewer\" src=\"' +\r\n pdfJsUrl +\r\n \"?file=&downloadName=\" +\r\n options.filename +\r\n '\" width=\"500px\" height=\"400px\" />' +\r\n \"</body></html>\";\r\n var PDFjsNewWindow = globalObject.open();\r\n\r\n if (PDFjsNewWindow !== null) {\r\n PDFjsNewWindow.document.write(htmlForPDFjsNewWindow);\r\n var scope = this;\r\n PDFjsNewWindow.document.documentElement.querySelector(\r\n \"#pdfViewer\"\r\n ).onload = function() {\r\n PDFjsNewWindow.document.title = options.filename;\r\n PDFjsNewWindow.document.documentElement\r\n .querySelector(\"#pdfViewer\")\r\n .contentWindow.PDFViewerApplication.open(\r\n scope.output(\"bloburl\")\r\n );\r\n };\r\n }\r\n return PDFjsNewWindow;\r\n } else {\r\n throw new Error(\r\n \"The option pdfjsnewwindow just works in a browser-environment.\"\r\n );\r\n }\r\n case \"dataurlnewwindow\":\r\n if (\r\n Object.prototype.toString.call(globalObject) === \"[object Window]\"\r\n ) {\r\n var htmlForDataURLNewWindow =\r\n \"<html>\" +\r\n \"<style>html, body { padding: 0; margin: 0; } iframe { width: 100%; height: 100%; border: 0;} </style>\" +\r\n \"<body>\" +\r\n '<iframe src=\"' +\r\n this.output(\"datauristring\", options) +\r\n '\"></iframe>' +\r\n \"</body></html>\";\r\n var dataURLNewWindow = globalObject.open();\r\n if (dataURLNewWindow !== null) {\r\n dataURLNewWindow.document.write(htmlForDataURLNewWindow);\r\n dataURLNewWindow.document.title = options.filename;\r\n }\r\n if (dataURLNewWindow || typeof safari === \"undefined\")\r\n return dataURLNewWindow;\r\n } else {\r\n throw new Error(\r\n \"The option dataurlnewwindow just works in a browser-environment.\"\r\n );\r\n }\r\n break;\r\n case \"datauri\":\r\n case \"dataurl\":\r\n return (globalObject.document.location.href = this.output(\r\n \"datauristring\",\r\n options\r\n ));\r\n default:\r\n return null;\r\n }\r\n }));\r\n\r\n /**\r\n * Used to see if a supplied hotfix was requested when the pdf instance was created.\r\n * @param {string} hotfixName - The name of the hotfix to check.\r\n * @returns {boolean}\r\n */\r\n var hasHotfix = function(hotfixName) {\r\n return (\r\n Array.isArray(hotfixes) === true && hotfixes.indexOf(hotfixName) > -1\r\n );\r\n };\r\n\r\n switch (unit) {\r\n case \"pt\":\r\n scaleFactor = 1;\r\n break;\r\n case \"mm\":\r\n scaleFactor = 72 / 25.4;\r\n break;\r\n case \"cm\":\r\n scaleFactor = 72 / 2.54;\r\n break;\r\n case \"in\":\r\n scaleFactor = 72;\r\n break;\r\n case \"px\":\r\n if (hasHotfix(\"px_scaling\") == true) {\r\n scaleFactor = 72 / 96;\r\n } else {\r\n scaleFactor = 96 / 72;\r\n }\r\n break;\r\n case \"pc\":\r\n scaleFactor = 12;\r\n break;\r\n case \"em\":\r\n scaleFactor = 12;\r\n break;\r\n case \"ex\":\r\n scaleFactor = 6;\r\n break;\r\n default:\r\n if (typeof unit === \"number\") {\r\n scaleFactor = unit;\r\n } else {\r\n throw new Error(\"Invalid unit: \" + unit);\r\n }\r\n }\r\n\r\n var encryption = null;\r\n setCreationDate();\r\n setFileId();\r\n\r\n var getEncryptor = function(objectId) {\r\n if (encryptionOptions !== null) {\r\n return encryption.encryptor(objectId, 0);\r\n }\r\n return function(data) {\r\n return data;\r\n };\r\n };\r\n\r\n //---------------------------------------\r\n // Public API\r\n\r\n var getPageInfo = (API.__private__.getPageInfo = API.getPageInfo = function(\r\n pageNumberOneBased\r\n ) {\r\n if (isNaN(pageNumberOneBased) || pageNumberOneBased % 1 !== 0) {\r\n throw new Error(\"Invalid argument passed to jsPDF.getPageInfo\");\r\n }\r\n var objId = pagesContext[pageNumberOneBased].objId;\r\n return {\r\n objId: objId,\r\n pageNumber: pageNumberOneBased,\r\n pageContext: pagesContext[pageNumberOneBased]\r\n };\r\n });\r\n\r\n var getPageInfoByObjId = (API.__private__.getPageInfoByObjId = function(\r\n objId\r\n ) {\r\n if (isNaN(objId) || objId % 1 !== 0) {\r\n throw new Error(\"Invalid argument passed to jsPDF.getPageInfoByObjId\");\r\n }\r\n for (var pageNumber in pagesContext) {\r\n if (pagesContext[pageNumber].objId === objId) {\r\n break;\r\n }\r\n }\r\n return getPageInfo(pageNumber);\r\n });\r\n\r\n var getCurrentPageInfo = (API.__private__.getCurrentPageInfo = API.getCurrentPageInfo = function() {\r\n return {\r\n objId: pagesContext[currentPage].objId,\r\n pageNumber: currentPage,\r\n pageContext: pagesContext[currentPage]\r\n };\r\n });\r\n\r\n /**\r\n * Adds (and transfers the focus to) new page to the PDF document.\r\n * @param format {String/Array} The format of the new page. Can be: <ul><li>a0 - a10</li><li>b0 - b10</li><li>c0 - c10</li><li>dl</li><li>letter</li><li>government-letter</li><li>legal</li><li>junior-legal</li><li>ledger</li><li>tabloid</li><li>credit-card</li></ul><br />\r\n * Default is \"a4\". If you want to use your own format just pass instead of one of the above predefined formats the size as an number-array, e.g. [595.28, 841.89]\r\n * @param orientation {string} Orientation of the new page. Possible values are \"portrait\" or \"landscape\" (or shortcuts \"p\" (Default), \"l\").\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n *\r\n * @memberof jsPDF#\r\n * @name addPage\r\n */\r\n API.addPage = function() {\r\n _addPage.apply(this, arguments);\r\n return this;\r\n };\r\n /**\r\n * Adds (and transfers the focus to) new page to the PDF document.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n *\r\n * @memberof jsPDF#\r\n * @name setPage\r\n * @param {number} page Switch the active page to the page number specified (indexed starting at 1).\r\n * @example\r\n * doc = jsPDF()\r\n * doc.addPage()\r\n * doc.addPage()\r\n * doc.text('I am on page 3', 10, 10)\r\n * doc.setPage(1)\r\n * doc.text('I am on page 1', 10, 10)\r\n */\r\n API.setPage = function() {\r\n _setPage.apply(this, arguments);\r\n setOutputDestination.call(this, pages[currentPage]);\r\n return this;\r\n };\r\n\r\n /**\r\n * @name insertPage\r\n * @memberof jsPDF#\r\n *\r\n * @function\r\n * @instance\r\n * @param {Object} beforePage\r\n * @returns {jsPDF}\r\n */\r\n API.insertPage = function(beforePage) {\r\n this.addPage();\r\n this.movePage(currentPage, beforePage);\r\n return this;\r\n };\r\n\r\n /**\r\n * @name movePage\r\n * @memberof jsPDF#\r\n * @function\r\n * @instance\r\n * @param {number} targetPage\r\n * @param {number} beforePage\r\n * @returns {jsPDF}\r\n */\r\n API.movePage = function(targetPage, beforePage) {\r\n var tmpPages, tmpPagesContext;\r\n if (targetPage > beforePage) {\r\n tmpPages = pages[targetPage];\r\n tmpPagesContext = pagesContext[targetPage];\r\n for (var i = targetPage; i > beforePage; i--) {\r\n pages[i] = pages[i - 1];\r\n pagesContext[i] = pagesContext[i - 1];\r\n }\r\n pages[beforePage] = tmpPages;\r\n pagesContext[beforePage] = tmpPagesContext;\r\n this.setPage(beforePage);\r\n } else if (targetPage < beforePage) {\r\n tmpPages = pages[targetPage];\r\n tmpPagesContext = pagesContext[targetPage];\r\n for (var j = targetPage; j < beforePage; j++) {\r\n pages[j] = pages[j + 1];\r\n pagesContext[j] = pagesContext[j + 1];\r\n }\r\n pages[beforePage] = tmpPages;\r\n pagesContext[beforePage] = tmpPagesContext;\r\n this.setPage(beforePage);\r\n }\r\n return this;\r\n };\r\n\r\n /**\r\n * Deletes a page from the PDF.\r\n * @name deletePage\r\n * @memberof jsPDF#\r\n * @function\r\n * @param {number} targetPage\r\n * @instance\r\n * @returns {jsPDF}\r\n */\r\n API.deletePage = function() {\r\n _deletePage.apply(this, arguments);\r\n return this;\r\n };\r\n\r\n /**\r\n * Adds text to page. Supports adding multiline text when 'text' argument is an Array of Strings.\r\n *\r\n * @function\r\n * @instance\r\n * @param {String|Array} text String or array of strings to be added to the page. Each line is shifted one line down per font, spacing settings declared before this call.\r\n * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page.\r\n * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page.\r\n * @param {Object} [options] - Collection of settings signaling how the text must be encoded.\r\n * @param {string} [options.align=left] - The alignment of the text, possible values: left, center, right, justify.\r\n * @param {string} [options.baseline=alphabetic] - Sets text baseline used when drawing the text, possible values: alphabetic, ideographic, bottom, top, middle, hanging\r\n * @param {number|Matrix} [options.angle=0] - Rotate the text clockwise or counterclockwise. Expects the angle in degree.\r\n * @param {number} [options.rotationDirection=1] - Direction of the rotation. 0 = clockwise, 1 = counterclockwise.\r\n * @param {number} [options.charSpace=0] - The space between each letter.\r\n * @param {number} [options.horizontalScale=1] - Horizontal scale of the text as a factor of the regular size.\r\n * @param {number} [options.lineHeightFactor=1.15] - The lineheight of each line.\r\n * @param {Object} [options.flags] - Flags for to8bitStream.\r\n * @param {boolean} [options.flags.noBOM=true] - Don't add BOM to Unicode-text.\r\n * @param {boolean} [options.flags.autoencode=true] - Autoencode the Text.\r\n * @param {number} [options.maxWidth=0] - Split the text by given width, 0 = no split.\r\n * @param {string} [options.renderingMode=fill] - Set how the text should be rendered, possible values: fill, stroke, fillThenStroke, invisible, fillAndAddForClipping, strokeAndAddPathForClipping, fillThenStrokeAndAddToPathForClipping, addToPathForClipping.\r\n * @param {boolean} [options.isInputVisual] - Option for the BidiEngine\r\n * @param {boolean} [options.isOutputVisual] - Option for the BidiEngine\r\n * @param {boolean} [options.isInputRtl] - Option for the BidiEngine\r\n * @param {boolean} [options.isOutputRtl] - Option for the BidiEngine\r\n * @param {boolean} [options.isSymmetricSwapping] - Option for the BidiEngine\r\n * @param {number|Matrix} transform If transform is a number the text will be rotated by this value around the anchor set by x and y.\r\n *\r\n * If it is a Matrix, this matrix gets directly applied to the text, which allows shearing\r\n * effects etc.; the x and y offsets are then applied AFTER the coordinate system has been established by this\r\n * matrix. This means passing a rotation matrix that is equivalent to some rotation angle will in general yield a\r\n * DIFFERENT result. A matrix is only allowed in \"advanced\" API mode.\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name text\r\n */\r\n API.__private__.text = API.text = function(text, x, y, options, transform) {\r\n /*\r\n * Inserts something like this into PDF\r\n * BT\r\n * /F1 16 Tf % Font name + size\r\n * 16 TL % How many units down for next line in multiline text\r\n * 0 g % color\r\n * 28.35 813.54 Td % position\r\n * (line one) Tj\r\n * T* (line two) Tj\r\n * T* (line three) Tj\r\n * ET\r\n */\r\n options = options || {};\r\n var scope = options.scope || this;\r\n var payload, da, angle, align, charSpace, maxWidth, flags, horizontalScale;\r\n\r\n // Pre-August-2012 the order of arguments was function(x, y, text, flags)\r\n // in effort to make all calls have similar signature like\r\n // function(data, coordinates... , miscellaneous)\r\n // this method had its args flipped.\r\n // code below allows backward compatibility with old arg order.\r\n if (\r\n typeof text === \"number\" &&\r\n typeof x === \"number\" &&\r\n (typeof y === \"string\" || Array.isArray(y))\r\n ) {\r\n var tmp = y;\r\n y = x;\r\n x = text;\r\n text = tmp;\r\n }\r\n\r\n var transformationMatrix;\r\n\r\n if (arguments[3] instanceof Matrix === false) {\r\n flags = arguments[3];\r\n angle = arguments[4];\r\n align = arguments[5];\r\n\r\n if (typeof flags !== \"object\" || flags === null) {\r\n if (typeof angle === \"string\") {\r\n align = angle;\r\n angle = null;\r\n }\r\n if (typeof flags === \"string\") {\r\n align = flags;\r\n flags = null;\r\n }\r\n if (typeof flags === \"number\") {\r\n angle = flags;\r\n flags = null;\r\n }\r\n options = {\r\n flags: flags,\r\n angle: angle,\r\n align: align\r\n };\r\n }\r\n } else {\r\n advancedApiModeTrap(\r\n \"The transform parameter of text() with a Matrix value\"\r\n );\r\n transformationMatrix = transform;\r\n }\r\n\r\n if (isNaN(x) || isNaN(y) || typeof text === \"undefined\" || text === null) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.text\");\r\n }\r\n\r\n if (text.length === 0) {\r\n return scope;\r\n }\r\n\r\n var xtra = \"\";\r\n var isHex = false;\r\n var lineHeight =\r\n typeof options.lineHeightFactor === \"number\"\r\n ? options.lineHeightFactor\r\n : lineHeightFactor;\r\n var scaleFactor = scope.internal.scaleFactor;\r\n\r\n function ESC(s) {\r\n s = s.split(\"\\t\").join(Array(options.TabLen || 9).join(\" \"));\r\n return pdfEscape(s, flags);\r\n }\r\n\r\n function transformTextToSpecialArray(text) {\r\n //we don't want to destroy original text array, so cloning it\r\n var sa = text.concat();\r\n var da = [];\r\n var len = sa.length;\r\n var curDa;\r\n //we do array.join('text that must not be PDFescaped\")\r\n //thus, pdfEscape each component separately\r\n while (len--) {\r\n curDa = sa.shift();\r\n if (typeof curDa === \"string\") {\r\n da.push(curDa);\r\n } else {\r\n if (\r\n Array.isArray(text) &&\r\n (curDa.length === 1 ||\r\n (curDa[1] === undefined && curDa[2] === undefined))\r\n ) {\r\n da.push(curDa[0]);\r\n } else {\r\n da.push([curDa[0], curDa[1], curDa[2]]);\r\n }\r\n }\r\n }\r\n return da;\r\n }\r\n\r\n function processTextByFunction(text, processingFunction) {\r\n var result;\r\n if (typeof text === \"string\") {\r\n result = processingFunction(text)[0];\r\n } else if (Array.isArray(text)) {\r\n //we don't want to destroy original text array, so cloning it\r\n var sa = text.concat();\r\n var da = [];\r\n var len = sa.length;\r\n var curDa;\r\n var tmpResult;\r\n //we do array.join('text that must not be PDFescaped\")\r\n //thus, pdfEscape each component separately\r\n while (len--) {\r\n curDa = sa.shift();\r\n if (typeof curDa === \"string\") {\r\n da.push(processingFunction(curDa)[0]);\r\n } else if (Array.isArray(curDa) && typeof curDa[0] === \"string\") {\r\n tmpResult = processingFunction(curDa[0], curDa[1], curDa[2]);\r\n da.push([tmpResult[0], tmpResult[1], tmpResult[2]]);\r\n }\r\n }\r\n result = da;\r\n }\r\n return result;\r\n }\r\n\r\n //Check if text is of type String\r\n var textIsOfTypeString = false;\r\n var tmpTextIsOfTypeString = true;\r\n\r\n if (typeof text === \"string\") {\r\n textIsOfTypeString = true;\r\n } else if (Array.isArray(text)) {\r\n //we don't want to destroy original text array, so cloning it\r\n var sa = text.concat();\r\n da = [];\r\n var len = sa.length;\r\n var curDa;\r\n //we do array.join('text that must not be PDFescaped\")\r\n //thus, pdfEscape each component separately\r\n while (len--) {\r\n curDa = sa.shift();\r\n if (\r\n typeof curDa !== \"string\" ||\r\n (Array.isArray(curDa) && typeof curDa[0] !== \"string\")\r\n ) {\r\n tmpTextIsOfTypeString = false;\r\n }\r\n }\r\n textIsOfTypeString = tmpTextIsOfTypeString;\r\n }\r\n if (textIsOfTypeString === false) {\r\n throw new Error(\r\n 'Type of text must be string or Array. \"' +\r\n text +\r\n '\" is not recognized.'\r\n );\r\n }\r\n\r\n //If there are any newlines in text, we assume\r\n //the user wanted to print multiple lines, so break the\r\n //text up into an array. If the text is already an array,\r\n //we assume the user knows what they are doing.\r\n //Convert text into an array anyway to simplify\r\n //later code.\r\n\r\n if (typeof text === \"string\") {\r\n if (text.match(/[\\r?\\n]/)) {\r\n text = text.split(/\\r\\n|\\r|\\n/g);\r\n } else {\r\n text = [text];\r\n }\r\n }\r\n\r\n //baseline\r\n var height = activeFontSize / scope.internal.scaleFactor;\r\n var descent = height * (lineHeight - 1);\r\n\r\n switch (options.baseline) {\r\n case \"bottom\":\r\n y -= descent;\r\n break;\r\n case \"top\":\r\n y += height - descent;\r\n break;\r\n case \"hanging\":\r\n y += height - 2 * descent;\r\n break;\r\n case \"middle\":\r\n y += height / 2 - descent;\r\n break;\r\n case \"ideographic\":\r\n case \"alphabetic\":\r\n default:\r\n // do nothing, everything is fine\r\n break;\r\n }\r\n\r\n //multiline\r\n maxWidth = options.maxWidth || 0;\r\n\r\n if (maxWidth > 0) {\r\n if (typeof text === \"string\") {\r\n text = scope.splitTextToSize(text, maxWidth);\r\n } else if (Object.prototype.toString.call(text) === \"[object Array]\") {\r\n text = text.reduce(function(acc, textLine) {\r\n return acc.concat(scope.splitTextToSize(textLine, maxWidth));\r\n }, []);\r\n }\r\n }\r\n\r\n //creating Payload-Object to make text byRef\r\n payload = {\r\n text: text,\r\n x: x,\r\n y: y,\r\n options: options,\r\n mutex: {\r\n pdfEscape: pdfEscape,\r\n activeFontKey: activeFontKey,\r\n fonts: fonts,\r\n activeFontSize: activeFontSize\r\n }\r\n };\r\n events.publish(\"preProcessText\", payload);\r\n\r\n text = payload.text;\r\n options = payload.options;\r\n\r\n //angle\r\n angle = options.angle;\r\n\r\n if (\r\n transformationMatrix instanceof Matrix === false &&\r\n angle &&\r\n typeof angle === \"number\"\r\n ) {\r\n angle *= Math.PI / 180;\r\n\r\n if (options.rotationDirection === 0) {\r\n angle = -angle;\r\n }\r\n\r\n if (apiMode === ApiMode.ADVANCED) {\r\n angle = -angle;\r\n }\r\n\r\n var c = Math.cos(angle);\r\n var s = Math.sin(angle);\r\n transformationMatrix = new Matrix(c, s, -s, c, 0, 0);\r\n } else if (angle && angle instanceof Matrix) {\r\n transformationMatrix = angle;\r\n }\r\n\r\n if (apiMode === ApiMode.ADVANCED && !transformationMatrix) {\r\n transformationMatrix = identityMatrix;\r\n }\r\n\r\n //charSpace\r\n\r\n charSpace = options.charSpace || activeCharSpace;\r\n\r\n if (typeof charSpace !== \"undefined\") {\r\n xtra += hpf(scale(charSpace)) + \" Tc\\n\";\r\n this.setCharSpace(this.getCharSpace() || 0);\r\n }\r\n\r\n horizontalScale = options.horizontalScale;\r\n if (typeof horizontalScale !== \"undefined\") {\r\n xtra += hpf(horizontalScale * 100) + \" Tz\\n\";\r\n }\r\n\r\n //lang\r\n\r\n var lang = options.lang;\r\n\r\n if (lang) {\r\n // xtra += \"/Lang (\" + lang +\")\\n\";\r\n }\r\n\r\n //renderingMode\r\n var renderingMode = -1;\r\n var parmRenderingMode =\r\n typeof options.renderingMode !== \"undefined\"\r\n ? options.renderingMode\r\n : options.stroke;\r\n var pageContext = scope.internal.getCurrentPageInfo().pageContext;\r\n\r\n switch (parmRenderingMode) {\r\n case 0:\r\n case false:\r\n case \"fill\":\r\n renderingMode = 0;\r\n break;\r\n case 1:\r\n case true:\r\n case \"stroke\":\r\n renderingMode = 1;\r\n break;\r\n case 2:\r\n case \"fillThenStroke\":\r\n renderingMode = 2;\r\n break;\r\n case 3:\r\n case \"invisible\":\r\n renderingMode = 3;\r\n break;\r\n case 4:\r\n case \"fillAndAddForClipping\":\r\n renderingMode = 4;\r\n break;\r\n case 5:\r\n case \"strokeAndAddPathForClipping\":\r\n renderingMode = 5;\r\n break;\r\n case 6:\r\n case \"fillThenStrokeAndAddToPathForClipping\":\r\n renderingMode = 6;\r\n break;\r\n case 7:\r\n case \"addToPathForClipping\":\r\n renderingMode = 7;\r\n break;\r\n }\r\n\r\n var usedRenderingMode =\r\n typeof pageContext.usedRenderingMode !== \"undefined\"\r\n ? pageContext.usedRenderingMode\r\n : -1;\r\n\r\n //if the coder wrote it explicitly to use a specific\r\n //renderingMode, then use it\r\n if (renderingMode !== -1) {\r\n xtra += renderingMode + \" Tr\\n\";\r\n //otherwise check if we used the rendering Mode already\r\n //if so then set the rendering Mode...\r\n } else if (usedRenderingMode !== -1) {\r\n xtra += \"0 Tr\\n\";\r\n }\r\n\r\n if (renderingMode !== -1) {\r\n pageContext.usedRenderingMode = renderingMode;\r\n }\r\n\r\n //align\r\n align = options.align || \"left\";\r\n var leading = activeFontSize * lineHeight;\r\n var pageWidth = scope.internal.pageSize.getWidth();\r\n var activeFont = fonts[activeFontKey];\r\n charSpace = options.charSpace || activeCharSpace;\r\n maxWidth = options.maxWidth || 0;\r\n\r\n var lineWidths;\r\n flags = Object.assign({ autoencode: true, noBOM: true }, options.flags);\r\n\r\n var wordSpacingPerLine = [];\r\n\r\n if (Object.prototype.toString.call(text) === \"[object Array]\") {\r\n da = transformTextToSpecialArray(text);\r\n var newY;\r\n if (align !== \"left\") {\r\n lineWidths = da.map(function(v) {\r\n return (\r\n (scope.getStringUnitWidth(v, {\r\n font: activeFont,\r\n charSpace: charSpace,\r\n fontSize: activeFontSize,\r\n doKerning: false\r\n }) *\r\n activeFontSize) /\r\n scaleFactor\r\n );\r\n });\r\n }\r\n //The first line uses the \"main\" Td setting,\r\n //and the subsequent lines are offset by the\r\n //previous line's x coordinate.\r\n var prevWidth = 0;\r\n var newX;\r\n if (align === \"right\") {\r\n //The passed in x coordinate defines the\r\n //rightmost point of the text.\r\n x -= lineWidths[0];\r\n text = [];\r\n len = da.length;\r\n for (var i = 0; i < len; i++) {\r\n if (i === 0) {\r\n newX = getHorizontalCoordinate(x);\r\n newY = getVerticalCoordinate(y);\r\n } else {\r\n newX = scale(prevWidth - lineWidths[i]);\r\n newY = -leading;\r\n }\r\n text.push([da[i], newX, newY]);\r\n prevWidth = lineWidths[i];\r\n }\r\n } else if (align === \"center\") {\r\n //The passed in x coordinate defines\r\n //the center point.\r\n x -= lineWidths[0] / 2;\r\n text = [];\r\n len = da.length;\r\n for (var j = 0; j < len; j++) {\r\n if (j === 0) {\r\n newX = getHorizontalCoordinate(x);\r\n newY = getVerticalCoordinate(y);\r\n } else {\r\n newX = scale((prevWidth - lineWidths[j]) / 2);\r\n newY = -leading;\r\n }\r\n text.push([da[j], newX, newY]);\r\n prevWidth = lineWidths[j];\r\n }\r\n } else if (align === \"left\") {\r\n text = [];\r\n len = da.length;\r\n for (var h = 0; h < len; h++) {\r\n text.push(da[h]);\r\n }\r\n } else if (align === \"justify\") {\r\n text = [];\r\n len = da.length;\r\n maxWidth = maxWidth !== 0 ? maxWidth : pageWidth;\r\n\r\n for (var l = 0; l < len; l++) {\r\n newY = l === 0 ? getVerticalCoordinate(y) : -leading;\r\n newX = l === 0 ? getHorizontalCoordinate(x) : 0;\r\n if (l < len - 1) {\r\n wordSpacingPerLine.push(\r\n hpf(\r\n scale(\r\n (maxWidth - lineWidths[l]) / (da[l].split(\" \").length - 1)\r\n )\r\n )\r\n );\r\n } else {\r\n wordSpacingPerLine.push(0);\r\n }\r\n text.push([da[l], newX, newY]);\r\n }\r\n } else {\r\n throw new Error(\r\n 'Unrecognized alignment option, use \"left\", \"center\", \"right\" or \"justify\".'\r\n );\r\n }\r\n }\r\n\r\n //R2L\r\n var doReversing = typeof options.R2L === \"boolean\" ? options.R2L : R2L;\r\n if (doReversing === true) {\r\n text = processTextByFunction(text, function(text, posX, posY) {\r\n return [\r\n text\r\n .split(\"\")\r\n .reverse()\r\n .join(\"\"),\r\n posX,\r\n posY\r\n ];\r\n });\r\n }\r\n\r\n //creating Payload-Object to make text byRef\r\n payload = {\r\n text: text,\r\n x: x,\r\n y: y,\r\n options: options,\r\n mutex: {\r\n pdfEscape: pdfEscape,\r\n activeFontKey: activeFontKey,\r\n fonts: fonts,\r\n activeFontSize: activeFontSize\r\n }\r\n };\r\n events.publish(\"postProcessText\", payload);\r\n\r\n text = payload.text;\r\n isHex = payload.mutex.isHex || false;\r\n\r\n //Escaping\r\n var activeFontEncoding = fonts[activeFontKey].encoding;\r\n\r\n if (\r\n activeFontEncoding === \"WinAnsiEncoding\" ||\r\n activeFontEncoding === \"StandardEncoding\"\r\n ) {\r\n text = processTextByFunction(text, function(text, posX, posY) {\r\n return [ESC(text), posX, posY];\r\n });\r\n }\r\n\r\n da = transformTextToSpecialArray(text);\r\n\r\n text = [];\r\n var STRING = 0;\r\n var ARRAY = 1;\r\n var variant = Array.isArray(da[0]) ? ARRAY : STRING;\r\n var posX;\r\n var posY;\r\n var content;\r\n var wordSpacing = \"\";\r\n\r\n var generatePosition = function(\r\n parmPosX,\r\n parmPosY,\r\n parmTransformationMatrix\r\n ) {\r\n var position = \"\";\r\n if (parmTransformationMatrix instanceof Matrix) {\r\n // It is kind of more intuitive to apply a plain rotation around the text anchor set by x and y\r\n // but when the user supplies an arbitrary transformation matrix, the x and y offsets should be applied\r\n // in the coordinate system established by this matrix\r\n if (typeof options.angle === \"number\") {\r\n parmTransformationMatrix = matrixMult(\r\n parmTransformationMatrix,\r\n new Matrix(1, 0, 0, 1, parmPosX, parmPosY)\r\n );\r\n } else {\r\n parmTransformationMatrix = matrixMult(\r\n new Matrix(1, 0, 0, 1, parmPosX, parmPosY),\r\n parmTransformationMatrix\r\n );\r\n }\r\n\r\n if (apiMode === ApiMode.ADVANCED) {\r\n parmTransformationMatrix = matrixMult(\r\n new Matrix(1, 0, 0, -1, 0, 0),\r\n parmTransformationMatrix\r\n );\r\n }\r\n\r\n position = parmTransformationMatrix.join(\" \") + \" Tm\\n\";\r\n } else {\r\n position = hpf(parmPosX) + \" \" + hpf(parmPosY) + \" Td\\n\";\r\n }\r\n return position;\r\n };\r\n\r\n for (var lineIndex = 0; lineIndex < da.length; lineIndex++) {\r\n wordSpacing = \"\";\r\n\r\n switch (variant) {\r\n case ARRAY:\r\n content =\r\n (isHex ? \"<\" : \"(\") + da[lineIndex][0] + (isHex ? \">\" : \")\");\r\n posX = parseFloat(da[lineIndex][1]);\r\n posY = parseFloat(da[lineIndex][2]);\r\n break;\r\n case STRING:\r\n content = (isHex ? \"<\" : \"(\") + da[lineIndex] + (isHex ? \">\" : \")\");\r\n posX = getHorizontalCoordinate(x);\r\n posY = getVerticalCoordinate(y);\r\n break;\r\n }\r\n\r\n if (\r\n typeof wordSpacingPerLine !== \"undefined\" &&\r\n typeof wordSpacingPerLine[lineIndex] !== \"undefined\"\r\n ) {\r\n wordSpacing = wordSpacingPerLine[lineIndex] + \" Tw\\n\";\r\n }\r\n\r\n if (lineIndex === 0) {\r\n text.push(\r\n wordSpacing +\r\n generatePosition(posX, posY, transformationMatrix) +\r\n content\r\n );\r\n } else if (variant === STRING) {\r\n text.push(wordSpacing + content);\r\n } else if (variant === ARRAY) {\r\n text.push(\r\n wordSpacing +\r\n generatePosition(posX, posY, transformationMatrix) +\r\n content\r\n );\r\n }\r\n }\r\n\r\n text = variant === STRING ? text.join(\" Tj\\nT* \") : text.join(\" Tj\\n\");\r\n text += \" Tj\\n\";\r\n\r\n var result = \"BT\\n/\";\r\n result += activeFontKey + \" \" + activeFontSize + \" Tf\\n\"; // font face, style, size\r\n result += hpf(activeFontSize * lineHeight) + \" TL\\n\"; // line spacing\r\n result += textColor + \"\\n\";\r\n result += xtra;\r\n result += text;\r\n result += \"ET\";\r\n\r\n out(result);\r\n usedFonts[activeFontKey] = true;\r\n return scope;\r\n };\r\n\r\n // PDF supports these path painting and clip path operators:\r\n //\r\n // S - stroke\r\n // s - close/stroke\r\n // f (F) - fill non-zero\r\n // f* - fill evenodd\r\n // B - fill stroke nonzero\r\n // B* - fill stroke evenodd\r\n // b - close fill stroke nonzero\r\n // b* - close fill stroke evenodd\r\n // n - nothing (consume path)\r\n // W - clip nonzero\r\n // W* - clip evenodd\r\n //\r\n // In order to keep the API small, we omit the close-and-fill/stroke operators and provide a separate close()\r\n // method.\r\n /**\r\n *\r\n * @name clip\r\n * @function\r\n * @instance\r\n * @param {string} rule Only possible value is 'evenodd'\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @description All .clip() after calling drawing ops with a style argument of null.\r\n */\r\n var clip = (API.__private__.clip = API.clip = function(rule) {\r\n // Call .clip() after calling drawing ops with a style argument of null\r\n // W is the PDF clipping op\r\n if (\"evenodd\" === rule) {\r\n out(\"W*\");\r\n } else {\r\n out(\"W\");\r\n }\r\n return this;\r\n });\r\n\r\n /**\r\n * @name clipEvenOdd\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @description Modify the current clip path by intersecting it with the current path using the even-odd rule. Note\r\n * that this will NOT consume the current path. In order to only use this path for clipping call\r\n * {@link API.discardPath} afterwards.\r\n */\r\n API.clipEvenOdd = function() {\r\n return clip(\"evenodd\");\r\n };\r\n\r\n /**\r\n * Consumes the current path without any effect. Mainly used in combination with {@link clip} or\r\n * {@link clipEvenOdd}. The PDF \"n\" operator.\r\n * @name discardPath\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.__private__.discardPath = API.discardPath = function() {\r\n out(\"n\");\r\n return this;\r\n };\r\n\r\n var isValidStyle = (API.__private__.isValidStyle = function(style) {\r\n var validStyleVariants = [\r\n undefined,\r\n null,\r\n \"S\",\r\n \"D\",\r\n \"F\",\r\n \"DF\",\r\n \"FD\",\r\n \"f\",\r\n \"f*\",\r\n \"B\",\r\n \"B*\",\r\n \"n\"\r\n ];\r\n var result = false;\r\n if (validStyleVariants.indexOf(style) !== -1) {\r\n result = true;\r\n }\r\n return result;\r\n });\r\n\r\n API.__private__.setDefaultPathOperation = API.setDefaultPathOperation = function(\r\n operator\r\n ) {\r\n if (isValidStyle(operator)) {\r\n defaultPathOperation = operator;\r\n }\r\n return this;\r\n };\r\n\r\n var getStyle = (API.__private__.getStyle = API.getStyle = function(style) {\r\n // see path-painting operators in PDF spec\r\n var op = defaultPathOperation; // stroke\r\n\r\n switch (style) {\r\n case \"D\":\r\n case \"S\":\r\n op = \"S\"; // stroke\r\n break;\r\n case \"F\":\r\n op = \"f\"; // fill\r\n break;\r\n case \"FD\":\r\n case \"DF\":\r\n op = \"B\";\r\n break;\r\n case \"f\":\r\n case \"f*\":\r\n case \"B\":\r\n case \"B*\":\r\n /*\r\n Allow direct use of these PDF path-painting operators:\r\n - f fill using nonzero winding number rule\r\n - f* fill using even-odd rule\r\n - B fill then stroke with fill using non-zero winding number rule\r\n - B* fill then stroke with fill using even-odd rule\r\n */\r\n op = style;\r\n break;\r\n }\r\n return op;\r\n });\r\n\r\n /**\r\n * Close the current path. The PDF \"h\" operator.\r\n * @name close\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n var close = (API.close = function() {\r\n out(\"h\");\r\n return this;\r\n });\r\n\r\n /**\r\n * Stroke the path. The PDF \"S\" operator.\r\n * @name stroke\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.stroke = function() {\r\n out(\"S\");\r\n return this;\r\n };\r\n\r\n /**\r\n * Fill the current path using the nonzero winding number rule. If a pattern is provided, the path will be filled\r\n * with this pattern, otherwise with the current fill color. Equivalent to the PDF \"f\" operator.\r\n * @name fill\r\n * @function\r\n * @instance\r\n * @param {PatternData=} pattern If provided the path will be filled with this pattern\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.fill = function(pattern) {\r\n fillWithOptionalPattern(\"f\", pattern);\r\n return this;\r\n };\r\n\r\n /**\r\n * Fill the current path using the even-odd rule. The PDF f* operator.\r\n * @see API.fill\r\n * @name fillEvenOdd\r\n * @function\r\n * @instance\r\n * @param {PatternData=} pattern If provided the path will be filled with this pattern\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.fillEvenOdd = function(pattern) {\r\n fillWithOptionalPattern(\"f*\", pattern);\r\n return this;\r\n };\r\n\r\n /**\r\n * Fill using the nonzero winding number rule and then stroke the current Path. The PDF \"B\" operator.\r\n * @see API.fill\r\n * @name fillStroke\r\n * @function\r\n * @instance\r\n * @param {PatternData=} pattern If provided the path will be stroked with this pattern\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.fillStroke = function(pattern) {\r\n fillWithOptionalPattern(\"B\", pattern);\r\n return this;\r\n };\r\n\r\n /**\r\n * Fill using the even-odd rule and then stroke the current Path. The PDF \"B\" operator.\r\n * @see API.fill\r\n * @name fillStrokeEvenOdd\r\n * @function\r\n * @instance\r\n * @param {PatternData=} pattern If provided the path will be fill-stroked with this pattern\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.fillStrokeEvenOdd = function(pattern) {\r\n fillWithOptionalPattern(\"B*\", pattern);\r\n return this;\r\n };\r\n\r\n var fillWithOptionalPattern = function(style, pattern) {\r\n if (typeof pattern === \"object\") {\r\n fillWithPattern(pattern, style);\r\n } else {\r\n out(style);\r\n }\r\n };\r\n\r\n var putStyle = function(style) {\r\n if (\r\n style === null ||\r\n (apiMode === ApiMode.ADVANCED && style === undefined)\r\n ) {\r\n return;\r\n }\r\n\r\n style = getStyle(style);\r\n\r\n // stroking / filling / both the path\r\n out(style);\r\n };\r\n\r\n function cloneTilingPattern(patternKey, boundingBox, xStep, yStep, matrix) {\r\n var clone = new TilingPattern(\r\n boundingBox || this.boundingBox,\r\n xStep || this.xStep,\r\n yStep || this.yStep,\r\n this.gState,\r\n matrix || this.matrix\r\n );\r\n clone.stream = this.stream;\r\n var key = patternKey + \"$$\" + this.cloneIndex++ + \"$$\";\r\n addPattern(key, clone);\r\n return clone;\r\n }\r\n\r\n var fillWithPattern = function(patternData, style) {\r\n var patternId = patternMap[patternData.key];\r\n var pattern = patterns[patternId];\r\n\r\n if (pattern instanceof ShadingPattern) {\r\n out(\"q\");\r\n\r\n out(clipRuleFromStyle(style));\r\n\r\n if (pattern.gState) {\r\n API.setGState(pattern.gState);\r\n }\r\n out(patternData.matrix.toString() + \" cm\");\r\n out(\"/\" + patternId + \" sh\");\r\n out(\"Q\");\r\n } else if (pattern instanceof TilingPattern) {\r\n // pdf draws patterns starting at the bottom left corner and they are not affected by the global transformation,\r\n // so we must flip them\r\n var matrix = new Matrix(1, 0, 0, -1, 0, getPageHeight());\r\n\r\n if (patternData.matrix) {\r\n matrix = matrix.multiply(patternData.matrix || identityMatrix);\r\n // we cannot apply a matrix to the pattern on use so we must abuse the pattern matrix and create new instances\r\n // for each use\r\n patternId = cloneTilingPattern.call(\r\n pattern,\r\n patternData.key,\r\n patternData.boundingBox,\r\n patternData.xStep,\r\n patternData.yStep,\r\n matrix\r\n ).id;\r\n }\r\n\r\n out(\"q\");\r\n out(\"/Pattern cs\");\r\n out(\"/\" + patternId + \" scn\");\r\n\r\n if (pattern.gState) {\r\n API.setGState(pattern.gState);\r\n }\r\n\r\n out(style);\r\n out(\"Q\");\r\n }\r\n };\r\n\r\n var clipRuleFromStyle = function(style) {\r\n switch (style) {\r\n case \"f\":\r\n case \"F\":\r\n return \"W n\";\r\n case \"f*\":\r\n return \"W* n\";\r\n case \"B\":\r\n return \"W S\";\r\n case \"B*\":\r\n return \"W* S\";\r\n\r\n // these two are for compatibility reasons (in the past, calling any primitive method with a shading pattern\r\n // and \"n\"/\"S\" as style would still fill/fill and stroke the path)\r\n case \"S\":\r\n return \"W S\";\r\n case \"n\":\r\n return \"W n\";\r\n }\r\n };\r\n\r\n /**\r\n * Begin a new subpath by moving the current point to coordinates (x, y). The PDF \"m\" operator.\r\n * @param {number} x\r\n * @param {number} y\r\n * @name moveTo\r\n * @function\r\n * @instance\r\n * @memberof jsPDF#\r\n * @returns {jsPDF}\r\n */\r\n var moveTo = (API.moveTo = function(x, y) {\r\n out(hpf(scale(x)) + \" \" + hpf(transformScaleY(y)) + \" m\");\r\n return this;\r\n });\r\n\r\n /**\r\n * Append a straight line segment from the current point to the point (x, y). The PDF \"l\" operator.\r\n * @param {number} x\r\n * @param {number} y\r\n * @memberof jsPDF#\r\n * @name lineTo\r\n * @function\r\n * @instance\r\n * @memberof jsPDF#\r\n * @returns {jsPDF}\r\n */\r\n var lineTo = (API.lineTo = function(x, y) {\r\n out(hpf(scale(x)) + \" \" + hpf(transformScaleY(y)) + \" l\");\r\n return this;\r\n });\r\n\r\n /**\r\n * Append a cubic Bézier curve to the current path. The curve shall extend from the current point to the point\r\n * (x3, y3), using (x1, y1) and (x2, y2) as Bézier control points. The new current point shall be (x3, x3).\r\n * @param {number} x1\r\n * @param {number} y1\r\n * @param {number} x2\r\n * @param {number} y2\r\n * @param {number} x3\r\n * @param {number} y3\r\n * @memberof jsPDF#\r\n * @name curveTo\r\n * @function\r\n * @instance\r\n * @memberof jsPDF#\r\n * @returns {jsPDF}\r\n */\r\n var curveTo = (API.curveTo = function(x1, y1, x2, y2, x3, y3) {\r\n out(\r\n [\r\n hpf(scale(x1)),\r\n hpf(transformScaleY(y1)),\r\n hpf(scale(x2)),\r\n hpf(transformScaleY(y2)),\r\n hpf(scale(x3)),\r\n hpf(transformScaleY(y3)),\r\n \"c\"\r\n ].join(\" \")\r\n );\r\n return this;\r\n });\r\n\r\n /**\r\n * Draw a line on the current page.\r\n *\r\n * @name line\r\n * @function\r\n * @instance\r\n * @param {number} x1\r\n * @param {number} y1\r\n * @param {number} x2\r\n * @param {number} y2\r\n * @param {string} style A string specifying the painting style or null. Valid styles include: 'S' [default] - stroke, 'F' - fill, and 'DF' (or 'FD') - fill then stroke. A null value postpones setting the style so that a shape may be composed using multiple method calls. The last drawing method call used to define the shape should not have a null style argument. default: 'S'\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.__private__.line = API.line = function(x1, y1, x2, y2, style) {\r\n if (\r\n isNaN(x1) ||\r\n isNaN(y1) ||\r\n isNaN(x2) ||\r\n isNaN(y2) ||\r\n !isValidStyle(style)\r\n ) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.line\");\r\n }\r\n if (apiMode === ApiMode.COMPAT) {\r\n return this.lines([[x2 - x1, y2 - y1]], x1, y1, [1, 1], style || \"S\");\r\n } else {\r\n return this.lines([[x2 - x1, y2 - y1]], x1, y1, [1, 1]).stroke();\r\n }\r\n };\r\n\r\n /**\r\n * @typedef {Object} PatternData\r\n * {Matrix|undefined} matrix\r\n * {Number|undefined} xStep\r\n * {Number|undefined} yStep\r\n * {Array.<Number>|undefined} boundingBox\r\n */\r\n\r\n /**\r\n * Adds series of curves (straight lines or cubic bezier curves) to canvas, starting at `x`, `y` coordinates.\r\n * All data points in `lines` are relative to last line origin.\r\n * `x`, `y` become x1,y1 for first line / curve in the set.\r\n * For lines you only need to specify [x2, y2] - (ending point) vector against x1, y1 starting point.\r\n * For bezier curves you need to specify [x2,y2,x3,y3,x4,y4] - vectors to control points 1, 2, ending point. All vectors are against the start of the curve - x1,y1.\r\n *\r\n * @example .lines([[2,2],[-2,2],[1,1,2,2,3,3],[2,1]], 212,110, [1,1], 'F', false) // line, line, bezier curve, line\r\n * @param {Array} lines Array of *vector* shifts as pairs (lines) or sextets (cubic bezier curves).\r\n * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {number} scale (Defaults to [1.0,1.0]) x,y Scaling factor for all vectors. Elements can be any floating number Sub-one makes drawing smaller. Over-one grows the drawing. Negative flips the direction.\r\n * @param {string=} style A string specifying the painting style or null. Valid styles include:\r\n * 'S' [default] - stroke,\r\n * 'F' - fill,\r\n * and 'DF' (or 'FD') - fill then stroke.\r\n * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\r\n * method calls. The last drawing method call used to define the shape should not have a null style argument.\r\n *\r\n * In \"advanced\" API mode this parameter is deprecated.\r\n * @param {Boolean=} closed If true, the path is closed with a straight line from the end of the last curve to the starting point.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name lines\r\n */\r\n API.__private__.lines = API.lines = function(\r\n lines,\r\n x,\r\n y,\r\n scale,\r\n style,\r\n closed\r\n ) {\r\n var scalex, scaley, i, l, leg, x2, y2, x3, y3, x4, y4, tmp;\r\n\r\n // Pre-August-2012 the order of arguments was function(x, y, lines, scale, style)\r\n // in effort to make all calls have similar signature like\r\n // function(content, coordinateX, coordinateY , miscellaneous)\r\n // this method had its args flipped.\r\n // code below allows backward compatibility with old arg order.\r\n if (typeof lines === \"number\") {\r\n tmp = y;\r\n y = x;\r\n x = lines;\r\n lines = tmp;\r\n }\r\n\r\n scale = scale || [1, 1];\r\n closed = closed || false;\r\n\r\n if (\r\n isNaN(x) ||\r\n isNaN(y) ||\r\n !Array.isArray(lines) ||\r\n !Array.isArray(scale) ||\r\n !isValidStyle(style) ||\r\n typeof closed !== \"boolean\"\r\n ) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.lines\");\r\n }\r\n\r\n // starting point\r\n moveTo(x, y);\r\n\r\n scalex = scale[0];\r\n scaley = scale[1];\r\n l = lines.length;\r\n //, x2, y2 // bezier only. In page default measurement \"units\", *after* scaling\r\n //, x3, y3 // bezier only. In page default measurement \"units\", *after* scaling\r\n // ending point for all, lines and bezier. . In page default measurement \"units\", *after* scaling\r\n x4 = x; // last / ending point = starting point for first item.\r\n y4 = y; // last / ending point = starting point for first item.\r\n\r\n for (i = 0; i < l; i++) {\r\n leg = lines[i];\r\n if (leg.length === 2) {\r\n // simple line\r\n x4 = leg[0] * scalex + x4; // here last x4 was prior ending point\r\n y4 = leg[1] * scaley + y4; // here last y4 was prior ending point\r\n lineTo(x4, y4);\r\n } else {\r\n // bezier curve\r\n x2 = leg[0] * scalex + x4; // here last x4 is prior ending point\r\n y2 = leg[1] * scaley + y4; // here last y4 is prior ending point\r\n x3 = leg[2] * scalex + x4; // here last x4 is prior ending point\r\n y3 = leg[3] * scaley + y4; // here last y4 is prior ending point\r\n x4 = leg[4] * scalex + x4; // here last x4 was prior ending point\r\n y4 = leg[5] * scaley + y4; // here last y4 was prior ending point\r\n curveTo(x2, y2, x3, y3, x4, y4);\r\n }\r\n }\r\n\r\n if (closed) {\r\n close();\r\n }\r\n\r\n putStyle(style);\r\n return this;\r\n };\r\n\r\n /**\r\n * Similar to {@link API.lines} but all coordinates are interpreted as absolute coordinates instead of relative.\r\n * @param {Array<Object>} lines An array of {op: operator, c: coordinates} object, where op is one of \"m\" (move to), \"l\" (line to)\r\n * \"c\" (cubic bezier curve) and \"h\" (close (sub)path)). c is an array of coordinates. \"m\" and \"l\" expect two, \"c\"\r\n * six and \"h\" an empty array (or undefined).\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name path\r\n */\r\n API.path = function(lines) {\r\n for (var i = 0; i < lines.length; i++) {\r\n var leg = lines[i];\r\n var coords = leg.c;\r\n switch (leg.op) {\r\n case \"m\":\r\n moveTo(coords[0], coords[1]);\r\n break;\r\n case \"l\":\r\n lineTo(coords[0], coords[1]);\r\n break;\r\n case \"c\":\r\n curveTo.apply(this, coords);\r\n break;\r\n case \"h\":\r\n close();\r\n break;\r\n }\r\n }\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Adds a rectangle to PDF.\r\n *\r\n * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {number} w Width (in units declared at inception of PDF document)\r\n * @param {number} h Height (in units declared at inception of PDF document)\r\n * @param {string=} style A string specifying the painting style or null. Valid styles include:\r\n * 'S' [default] - stroke,\r\n * 'F' - fill,\r\n * and 'DF' (or 'FD') - fill then stroke.\r\n * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\r\n * method calls. The last drawing method call used to define the shape should not have a null style argument.\r\n *\r\n * In \"advanced\" API mode this parameter is deprecated.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name rect\r\n */\r\n API.__private__.rect = API.rect = function(x, y, w, h, style) {\r\n if (isNaN(x) || isNaN(y) || isNaN(w) || isNaN(h) || !isValidStyle(style)) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.rect\");\r\n }\r\n if (apiMode === ApiMode.COMPAT) {\r\n h = -h;\r\n }\r\n\r\n out(\r\n [\r\n hpf(scale(x)),\r\n hpf(transformScaleY(y)),\r\n hpf(scale(w)),\r\n hpf(scale(h)),\r\n \"re\"\r\n ].join(\" \")\r\n );\r\n\r\n putStyle(style);\r\n return this;\r\n };\r\n\r\n /**\r\n * Adds a triangle to PDF.\r\n *\r\n * @param {number} x1 Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y1 Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {number} x2 Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y2 Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {number} x3 Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y3 Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {string=} style A string specifying the painting style or null. Valid styles include:\r\n * 'S' [default] - stroke,\r\n * 'F' - fill,\r\n * and 'DF' (or 'FD') - fill then stroke.\r\n * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\r\n * method calls. The last drawing method call used to define the shape should not have a null style argument.\r\n *\r\n * In \"advanced\" API mode this parameter is deprecated.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name triangle\r\n */\r\n API.__private__.triangle = API.triangle = function(\r\n x1,\r\n y1,\r\n x2,\r\n y2,\r\n x3,\r\n y3,\r\n style\r\n ) {\r\n if (\r\n isNaN(x1) ||\r\n isNaN(y1) ||\r\n isNaN(x2) ||\r\n isNaN(y2) ||\r\n isNaN(x3) ||\r\n isNaN(y3) ||\r\n !isValidStyle(style)\r\n ) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.triangle\");\r\n }\r\n this.lines(\r\n [\r\n [x2 - x1, y2 - y1], // vector to point 2\r\n [x3 - x2, y3 - y2], // vector to point 3\r\n [x1 - x3, y1 - y3] // closing vector back to point 1\r\n ],\r\n x1,\r\n y1, // start of path\r\n [1, 1],\r\n style,\r\n true\r\n );\r\n return this;\r\n };\r\n\r\n /**\r\n * Adds a rectangle with rounded corners to PDF.\r\n *\r\n * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {number} w Width (in units declared at inception of PDF document)\r\n * @param {number} h Height (in units declared at inception of PDF document)\r\n * @param {number} rx Radius along x axis (in units declared at inception of PDF document)\r\n * @param {number} ry Radius along y axis (in units declared at inception of PDF document)\r\n * @param {string=} style A string specifying the painting style or null. Valid styles include:\r\n * 'S' [default] - stroke,\r\n * 'F' - fill,\r\n * and 'DF' (or 'FD') - fill then stroke.\r\n * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\r\n * method calls. The last drawing method call used to define the shape should not have a null style argument.\r\n *\r\n * In \"advanced\" API mode this parameter is deprecated.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name roundedRect\r\n */\r\n API.__private__.roundedRect = API.roundedRect = function(\r\n x,\r\n y,\r\n w,\r\n h,\r\n rx,\r\n ry,\r\n style\r\n ) {\r\n if (\r\n isNaN(x) ||\r\n isNaN(y) ||\r\n isNaN(w) ||\r\n isNaN(h) ||\r\n isNaN(rx) ||\r\n isNaN(ry) ||\r\n !isValidStyle(style)\r\n ) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.roundedRect\");\r\n }\r\n var MyArc = (4 / 3) * (Math.SQRT2 - 1);\r\n\r\n rx = Math.min(rx, w * 0.5);\r\n ry = Math.min(ry, h * 0.5);\r\n\r\n this.lines(\r\n [\r\n [w - 2 * rx, 0],\r\n [rx * MyArc, 0, rx, ry - ry * MyArc, rx, ry],\r\n [0, h - 2 * ry],\r\n [0, ry * MyArc, -(rx * MyArc), ry, -rx, ry],\r\n [-w + 2 * rx, 0],\r\n [-(rx * MyArc), 0, -rx, -(ry * MyArc), -rx, -ry],\r\n [0, -h + 2 * ry],\r\n [0, -(ry * MyArc), rx * MyArc, -ry, rx, -ry]\r\n ],\r\n x + rx,\r\n y, // start of path\r\n [1, 1],\r\n style,\r\n true\r\n );\r\n return this;\r\n };\r\n\r\n /**\r\n * Adds an ellipse to PDF.\r\n *\r\n * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {number} rx Radius along x axis (in units declared at inception of PDF document)\r\n * @param {number} ry Radius along y axis (in units declared at inception of PDF document)\r\n * @param {string=} style A string specifying the painting style or null. Valid styles include:\r\n * 'S' [default] - stroke,\r\n * 'F' - fill,\r\n * and 'DF' (or 'FD') - fill then stroke.\r\n * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\r\n * method calls. The last drawing method call used to define the shape should not have a null style argument.\r\n *\r\n * In \"advanced\" API mode this parameter is deprecated.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name ellipse\r\n */\r\n API.__private__.ellipse = API.ellipse = function(x, y, rx, ry, style) {\r\n if (\r\n isNaN(x) ||\r\n isNaN(y) ||\r\n isNaN(rx) ||\r\n isNaN(ry) ||\r\n !isValidStyle(style)\r\n ) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.ellipse\");\r\n }\r\n var lx = (4 / 3) * (Math.SQRT2 - 1) * rx,\r\n ly = (4 / 3) * (Math.SQRT2 - 1) * ry;\r\n\r\n moveTo(x + rx, y);\r\n curveTo(x + rx, y - ly, x + lx, y - ry, x, y - ry);\r\n curveTo(x - lx, y - ry, x - rx, y - ly, x - rx, y);\r\n curveTo(x - rx, y + ly, x - lx, y + ry, x, y + ry);\r\n curveTo(x + lx, y + ry, x + rx, y + ly, x + rx, y);\r\n\r\n putStyle(style);\r\n return this;\r\n };\r\n\r\n /**\r\n * Adds an circle to PDF.\r\n *\r\n * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {number} r Radius (in units declared at inception of PDF document)\r\n * @param {string=} style A string specifying the painting style or null. Valid styles include:\r\n * 'S' [default] - stroke,\r\n * 'F' - fill,\r\n * and 'DF' (or 'FD') - fill then stroke.\r\n * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\r\n * method calls. The last drawing method call used to define the shape should not have a null style argument.\r\n *\r\n * In \"advanced\" API mode this parameter is deprecated.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name circle\r\n */\r\n API.__private__.circle = API.circle = function(x, y, r, style) {\r\n if (isNaN(x) || isNaN(y) || isNaN(r) || !isValidStyle(style)) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.circle\");\r\n }\r\n return this.ellipse(x, y, r, r, style);\r\n };\r\n\r\n /**\r\n * Sets text font face, variant for upcoming text elements.\r\n * See output of jsPDF.getFontList() for possible font names, styles.\r\n *\r\n * @param {string} fontName Font name or family. Example: \"times\".\r\n * @param {string} fontStyle Font style or variant. Example: \"italic\".\r\n * @param {number | string} fontWeight Weight of the Font. Example: \"normal\" | 400\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setFont\r\n */\r\n API.setFont = function(fontName, fontStyle, fontWeight) {\r\n if (fontWeight) {\r\n fontStyle = combineFontStyleAndFontWeight(fontStyle, fontWeight);\r\n }\r\n activeFontKey = getFont(fontName, fontStyle, {\r\n disableWarning: false\r\n });\r\n return this;\r\n };\r\n\r\n /**\r\n * Gets text font face, variant for upcoming text elements.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {Object}\r\n * @memberof jsPDF#\r\n * @name getFont\r\n */\r\n var getFontEntry = (API.__private__.getFont = API.getFont = function() {\r\n return fonts[getFont.apply(API, arguments)];\r\n });\r\n\r\n /**\r\n * Returns an object - a tree of fontName to fontStyle relationships available to\r\n * active PDF document.\r\n *\r\n * @public\r\n * @function\r\n * @instance\r\n * @returns {Object} Like {'times':['normal', 'italic', ... ], 'arial':['normal', 'bold', ... ], ... }\r\n * @memberof jsPDF#\r\n * @name getFontList\r\n */\r\n API.__private__.getFontList = API.getFontList = function() {\r\n var list = {},\r\n fontName,\r\n fontStyle;\r\n\r\n for (fontName in fontmap) {\r\n if (fontmap.hasOwnProperty(fontName)) {\r\n list[fontName] = [];\r\n for (fontStyle in fontmap[fontName]) {\r\n if (fontmap[fontName].hasOwnProperty(fontStyle)) {\r\n list[fontName].push(fontStyle);\r\n }\r\n }\r\n }\r\n }\r\n return list;\r\n };\r\n\r\n /**\r\n * Add a custom font to the current instance.\r\n *\r\n * @param {string} postScriptName PDF specification full name for the font.\r\n * @param {string} id PDF-document-instance-specific label assinged to the font.\r\n * @param {string} fontStyle Style of the Font.\r\n * @param {number | string} fontWeight Weight of the Font.\r\n * @param {Object} encoding Encoding_name-to-Font_metrics_object mapping.\r\n * @function\r\n * @instance\r\n * @memberof jsPDF#\r\n * @name addFont\r\n * @returns {string} fontId\r\n */\r\n API.addFont = function(\r\n postScriptName,\r\n fontName,\r\n fontStyle,\r\n fontWeight,\r\n encoding\r\n ) {\r\n var encodingOptions = [\r\n \"StandardEncoding\",\r\n \"MacRomanEncoding\",\r\n \"Identity-H\",\r\n \"WinAnsiEncoding\"\r\n ];\r\n if (arguments[3] && encodingOptions.indexOf(arguments[3]) !== -1) {\r\n //IE 11 fix\r\n encoding = arguments[3];\r\n } else if (arguments[3] && encodingOptions.indexOf(arguments[3]) == -1) {\r\n fontStyle = combineFontStyleAndFontWeight(fontStyle, fontWeight);\r\n }\r\n encoding = encoding || \"Identity-H\";\r\n return addFont.call(this, postScriptName, fontName, fontStyle, encoding);\r\n };\r\n\r\n var lineWidth = options.lineWidth || 0.200025; // 2mm\r\n /**\r\n * Gets the line width, default: 0.200025.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {number} lineWidth\r\n * @memberof jsPDF#\r\n * @name getLineWidth\r\n */\r\n var getLineWidth = (API.__private__.getLineWidth = API.getLineWidth = function() {\r\n return lineWidth;\r\n });\r\n\r\n /**\r\n * Sets line width for upcoming lines.\r\n *\r\n * @param {number} width Line width (in units declared at inception of PDF document).\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setLineWidth\r\n */\r\n var setLineWidth = (API.__private__.setLineWidth = API.setLineWidth = function(\r\n width\r\n ) {\r\n lineWidth = width;\r\n out(hpf(scale(width)) + \" w\");\r\n return this;\r\n });\r\n\r\n /**\r\n * Sets the dash pattern for upcoming lines.\r\n *\r\n * To reset the settings simply call the method without any parameters.\r\n * @param {Array<number>} dashArray An array containing 0-2 numbers. The first number sets the length of the\r\n * dashes, the second number the length of the gaps. If the second number is missing, the gaps are considered\r\n * to be as long as the dashes. An empty array means solid, unbroken lines.\r\n * @param {number} dashPhase The phase lines start with.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setLineDashPattern\r\n */\r\n API.__private__.setLineDash = jsPDF.API.setLineDash = jsPDF.API.setLineDashPattern = function(\r\n dashArray,\r\n dashPhase\r\n ) {\r\n dashArray = dashArray || [];\r\n dashPhase = dashPhase || 0;\r\n\r\n if (isNaN(dashPhase) || !Array.isArray(dashArray)) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.setLineDash\");\r\n }\r\n\r\n dashArray = dashArray\r\n .map(function(x) {\r\n return hpf(scale(x));\r\n })\r\n .join(\" \");\r\n dashPhase = hpf(scale(dashPhase));\r\n\r\n out(\"[\" + dashArray + \"] \" + dashPhase + \" d\");\r\n return this;\r\n };\r\n\r\n var lineHeightFactor;\r\n\r\n var getLineHeight = (API.__private__.getLineHeight = API.getLineHeight = function() {\r\n return activeFontSize * lineHeightFactor;\r\n });\r\n\r\n API.__private__.getLineHeight = API.getLineHeight = function() {\r\n return activeFontSize * lineHeightFactor;\r\n };\r\n\r\n /**\r\n * Sets the LineHeightFactor of proportion.\r\n *\r\n * @param {number} value LineHeightFactor value. Default: 1.15.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setLineHeightFactor\r\n */\r\n var setLineHeightFactor = (API.__private__.setLineHeightFactor = API.setLineHeightFactor = function(\r\n value\r\n ) {\r\n value = value || 1.15;\r\n if (typeof value === \"number\") {\r\n lineHeightFactor = value;\r\n }\r\n return this;\r\n });\r\n\r\n /**\r\n * Gets the LineHeightFactor, default: 1.15.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {number} lineHeightFactor\r\n * @memberof jsPDF#\r\n * @name getLineHeightFactor\r\n */\r\n var getLineHeightFactor = (API.__private__.getLineHeightFactor = API.getLineHeightFactor = function() {\r\n return lineHeightFactor;\r\n });\r\n\r\n setLineHeightFactor(options.lineHeight);\r\n\r\n var getHorizontalCoordinate = (API.__private__.getHorizontalCoordinate = function(\r\n value\r\n ) {\r\n return scale(value);\r\n });\r\n\r\n var getVerticalCoordinate = (API.__private__.getVerticalCoordinate = function(\r\n value\r\n ) {\r\n if (apiMode === ApiMode.ADVANCED) {\r\n return value;\r\n } else {\r\n var pageHeight =\r\n pagesContext[currentPage].mediaBox.topRightY -\r\n pagesContext[currentPage].mediaBox.bottomLeftY;\r\n return pageHeight - scale(value);\r\n }\r\n });\r\n\r\n var getHorizontalCoordinateString = (API.__private__.getHorizontalCoordinateString = API.getHorizontalCoordinateString = function(\r\n value\r\n ) {\r\n return hpf(getHorizontalCoordinate(value));\r\n });\r\n\r\n var getVerticalCoordinateString = (API.__private__.getVerticalCoordinateString = API.getVerticalCoordinateString = function(\r\n value\r\n ) {\r\n return hpf(getVerticalCoordinate(value));\r\n });\r\n\r\n var strokeColor = options.strokeColor || \"0 G\";\r\n\r\n /**\r\n * Gets the stroke color for upcoming elements.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {string} colorAsHex\r\n * @memberof jsPDF#\r\n * @name getDrawColor\r\n */\r\n API.__private__.getStrokeColor = API.getDrawColor = function() {\r\n return decodeColorString(strokeColor);\r\n };\r\n\r\n /**\r\n * Sets the stroke color for upcoming elements.\r\n *\r\n * Depending on the number of arguments given, Gray, RGB, or CMYK\r\n * color space is implied.\r\n *\r\n * When only ch1 is given, \"Gray\" color space is implied and it\r\n * must be a value in the range from 0.00 (solid black) to to 1.00 (white)\r\n * if values are communicated as String types, or in range from 0 (black)\r\n * to 255 (white) if communicated as Number type.\r\n * The RGB-like 0-255 range is provided for backward compatibility.\r\n *\r\n * When only ch1,ch2,ch3 are given, \"RGB\" color space is implied and each\r\n * value must be in the range from 0.00 (minimum intensity) to to 1.00\r\n * (max intensity) if values are communicated as String types, or\r\n * from 0 (min intensity) to to 255 (max intensity) if values are communicated\r\n * as Number types.\r\n * The RGB-like 0-255 range is provided for backward compatibility.\r\n *\r\n * When ch1,ch2,ch3,ch4 are given, \"CMYK\" color space is implied and each\r\n * value must be a in the range from 0.00 (0% concentration) to to\r\n * 1.00 (100% concentration)\r\n *\r\n * Because JavaScript treats fixed point numbers badly (rounds to\r\n * floating point nearest to binary representation) it is highly advised to\r\n * communicate the fractional numbers as String types, not JavaScript Number type.\r\n *\r\n * @param {Number|String} ch1 Color channel value or {string} ch1 color value in hexadecimal, example: '#FFFFFF'.\r\n * @param {Number} ch2 Color channel value.\r\n * @param {Number} ch3 Color channel value.\r\n * @param {Number} ch4 Color channel value.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setDrawColor\r\n */\r\n API.__private__.setStrokeColor = API.setDrawColor = function(\r\n ch1,\r\n ch2,\r\n ch3,\r\n ch4\r\n ) {\r\n var options = {\r\n ch1: ch1,\r\n ch2: ch2,\r\n ch3: ch3,\r\n ch4: ch4,\r\n pdfColorType: \"draw\",\r\n precision: 2\r\n };\r\n\r\n strokeColor = encodeColorString(options);\r\n out(strokeColor);\r\n return this;\r\n };\r\n\r\n var fillColor = options.fillColor || \"0 g\";\r\n\r\n /**\r\n * Gets the fill color for upcoming elements.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {string} colorAsHex\r\n * @memberof jsPDF#\r\n * @name getFillColor\r\n */\r\n API.__private__.getFillColor = API.getFillColor = function() {\r\n return decodeColorString(fillColor);\r\n };\r\n\r\n /**\r\n * Sets the fill color for upcoming elements.\r\n *\r\n * Depending on the number of arguments given, Gray, RGB, or CMYK\r\n * color space is implied.\r\n *\r\n * When only ch1 is given, \"Gray\" color space is implied and it\r\n * must be a value in the range from 0.00 (solid black) to to 1.00 (white)\r\n * if values are communicated as String types, or in range from 0 (black)\r\n * to 255 (white) if communicated as Number type.\r\n * The RGB-like 0-255 range is provided for backward compatibility.\r\n *\r\n * When only ch1,ch2,ch3 are given, \"RGB\" color space is implied and each\r\n * value must be in the range from 0.00 (minimum intensity) to to 1.00\r\n * (max intensity) if values are communicated as String types, or\r\n * from 0 (min intensity) to to 255 (max intensity) if values are communicated\r\n * as Number types.\r\n * The RGB-like 0-255 range is provided for backward compatibility.\r\n *\r\n * When ch1,ch2,ch3,ch4 are given, \"CMYK\" color space is implied and each\r\n * value must be a in the range from 0.00 (0% concentration) to to\r\n * 1.00 (100% concentration)\r\n *\r\n * Because JavaScript treats fixed point numbers badly (rounds to\r\n * floating point nearest to binary representation) it is highly advised to\r\n * communicate the fractional numbers as String types, not JavaScript Number type.\r\n *\r\n * @param {Number|String} ch1 Color channel value or {string} ch1 color value in hexadecimal, example: '#FFFFFF'.\r\n * @param {Number} ch2 Color channel value.\r\n * @param {Number} ch3 Color channel value.\r\n * @param {Number} ch4 Color channel value.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setFillColor\r\n */\r\n API.__private__.setFillColor = API.setFillColor = function(\r\n ch1,\r\n ch2,\r\n ch3,\r\n ch4\r\n ) {\r\n var options = {\r\n ch1: ch1,\r\n ch2: ch2,\r\n ch3: ch3,\r\n ch4: ch4,\r\n pdfColorType: \"fill\",\r\n precision: 2\r\n };\r\n\r\n fillColor = encodeColorString(options);\r\n out(fillColor);\r\n return this;\r\n };\r\n\r\n var textColor = options.textColor || \"0 g\";\r\n /**\r\n * Gets the text color for upcoming elements.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {string} colorAsHex\r\n * @memberof jsPDF#\r\n * @name getTextColor\r\n */\r\n var getTextColor = (API.__private__.getTextColor = API.getTextColor = function() {\r\n return decodeColorString(textColor);\r\n });\r\n /**\r\n * Sets the text color for upcoming elements.\r\n *\r\n * Depending on the number of arguments given, Gray, RGB, or CMYK\r\n * color space is implied.\r\n *\r\n * When only ch1 is given, \"Gray\" color space is implied and it\r\n * must be a value in the range from 0.00 (solid black) to to 1.00 (white)\r\n * if values are communicated as String types, or in range from 0 (black)\r\n * to 255 (white) if communicated as Number type.\r\n * The RGB-like 0-255 range is provided for backward compatibility.\r\n *\r\n * When only ch1,ch2,ch3 are given, \"RGB\" color space is implied and each\r\n * value must be in the range from 0.00 (minimum intensity) to to 1.00\r\n * (max intensity) if values are communicated as String types, or\r\n * from 0 (min intensity) to to 255 (max intensity) if values are communicated\r\n * as Number types.\r\n * The RGB-like 0-255 range is provided for backward compatibility.\r\n *\r\n * When ch1,ch2,ch3,ch4 are given, \"CMYK\" color space is implied and each\r\n * value must be a in the range from 0.00 (0% concentration) to to\r\n * 1.00 (100% concentration)\r\n *\r\n * Because JavaScript treats fixed point numbers badly (rounds to\r\n * floating point nearest to binary representation) it is highly advised to\r\n * communicate the fractional numbers as String types, not JavaScript Number type.\r\n *\r\n * @param {Number|String} ch1 Color channel value or {string} ch1 color value in hexadecimal, example: '#FFFFFF'.\r\n * @param {Number} ch2 Color channel value.\r\n * @param {Number} ch3 Color channel value.\r\n * @param {Number} ch4 Color channel value.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setTextColor\r\n */\r\n API.__private__.setTextColor = API.setTextColor = function(\r\n ch1,\r\n ch2,\r\n ch3,\r\n ch4\r\n ) {\r\n var options = {\r\n ch1: ch1,\r\n ch2: ch2,\r\n ch3: ch3,\r\n ch4: ch4,\r\n pdfColorType: \"text\",\r\n precision: 3\r\n };\r\n textColor = encodeColorString(options);\r\n\r\n return this;\r\n };\r\n\r\n var activeCharSpace = options.charSpace;\r\n\r\n /**\r\n * Get global value of CharSpace.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {number} charSpace\r\n * @memberof jsPDF#\r\n * @name getCharSpace\r\n */\r\n var getCharSpace = (API.__private__.getCharSpace = API.getCharSpace = function() {\r\n return parseFloat(activeCharSpace || 0);\r\n });\r\n\r\n /**\r\n * Set global value of CharSpace.\r\n *\r\n * @param {number} charSpace\r\n * @function\r\n * @instance\r\n * @returns {jsPDF} jsPDF-instance\r\n * @memberof jsPDF#\r\n * @name setCharSpace\r\n */\r\n API.__private__.setCharSpace = API.setCharSpace = function(charSpace) {\r\n if (isNaN(charSpace)) {\r\n throw new Error(\"Invalid argument passed to jsPDF.setCharSpace\");\r\n }\r\n activeCharSpace = charSpace;\r\n return this;\r\n };\r\n\r\n var lineCapID = 0;\r\n /**\r\n * Is an Object providing a mapping from human-readable to\r\n * integer flag values designating the varieties of line cap\r\n * and join styles.\r\n *\r\n * @memberof jsPDF#\r\n * @name CapJoinStyles\r\n */\r\n API.CapJoinStyles = {\r\n 0: 0,\r\n butt: 0,\r\n but: 0,\r\n miter: 0,\r\n 1: 1,\r\n round: 1,\r\n rounded: 1,\r\n circle: 1,\r\n 2: 2,\r\n projecting: 2,\r\n project: 2,\r\n square: 2,\r\n bevel: 2\r\n };\r\n\r\n /**\r\n * Sets the line cap styles.\r\n * See {jsPDF.CapJoinStyles} for variants.\r\n *\r\n * @param {String|Number} style A string or number identifying the type of line cap.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setLineCap\r\n */\r\n API.__private__.setLineCap = API.setLineCap = function(style) {\r\n var id = API.CapJoinStyles[style];\r\n if (id === undefined) {\r\n throw new Error(\r\n \"Line cap style of '\" +\r\n style +\r\n \"' is not recognized. See or extend .CapJoinStyles property for valid styles\"\r\n );\r\n }\r\n lineCapID = id;\r\n out(id + \" J\");\r\n\r\n return this;\r\n };\r\n\r\n var lineJoinID = 0;\r\n /**\r\n * Sets the line join styles.\r\n * See {jsPDF.CapJoinStyles} for variants.\r\n *\r\n * @param {String|Number} style A string or number identifying the type of line join.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setLineJoin\r\n */\r\n API.__private__.setLineJoin = API.setLineJoin = function(style) {\r\n var id = API.CapJoinStyles[style];\r\n if (id === undefined) {\r\n throw new Error(\r\n \"Line join style of '\" +\r\n style +\r\n \"' is not recognized. See or extend .CapJoinStyles property for valid styles\"\r\n );\r\n }\r\n lineJoinID = id;\r\n out(id + \" j\");\r\n\r\n return this;\r\n };\r\n\r\n var miterLimit;\r\n /**\r\n * Sets the miterLimit property, which effects the maximum miter length.\r\n *\r\n * @param {number} length The length of the miter\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setLineMiterLimit\r\n */\r\n API.__private__.setLineMiterLimit = API.__private__.setMiterLimit = API.setLineMiterLimit = API.setMiterLimit = function(\r\n length\r\n ) {\r\n length = length || 0;\r\n if (isNaN(length)) {\r\n throw new Error(\"Invalid argument passed to jsPDF.setLineMiterLimit\");\r\n }\r\n out(hpf(scale(length)) + \" M\");\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * An object representing a pdf graphics state.\r\n * @class GState\r\n */\r\n\r\n /**\r\n *\r\n * @param parameters A parameter object that contains all properties this graphics state wants to set.\r\n * Supported are: opacity, stroke-opacity\r\n * @constructor\r\n */\r\n API.GState = GState;\r\n\r\n /**\r\n * Sets a either previously added {@link GState} (via {@link addGState}) or a new {@link GState}.\r\n * @param {String|GState} gState If type is string, a previously added GState is used, if type is GState\r\n * it will be added before use.\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setGState\r\n */\r\n API.setGState = function(gState) {\r\n if (typeof gState === \"string\") {\r\n gState = gStates[gStatesMap[gState]];\r\n } else {\r\n gState = addGState(null, gState);\r\n }\r\n\r\n if (!gState.equals(activeGState)) {\r\n out(\"/\" + gState.id + \" gs\");\r\n activeGState = gState;\r\n }\r\n };\r\n\r\n /**\r\n * Adds a new Graphics State. Duplicates are automatically eliminated.\r\n * @param {String} key Might also be null, if no later reference to this gState is needed\r\n * @param {Object} gState The gState object\r\n */\r\n var addGState = function(key, gState) {\r\n // only add it if it is not already present (the keys provided by the user must be unique!)\r\n if (key && gStatesMap[key]) return;\r\n var duplicate = false;\r\n for (var s in gStates) {\r\n if (gStates.hasOwnProperty(s)) {\r\n if (gStates[s].equals(gState)) {\r\n duplicate = true;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (duplicate) {\r\n gState = gStates[s];\r\n } else {\r\n var gStateKey = \"GS\" + (Object.keys(gStates).length + 1).toString(10);\r\n gStates[gStateKey] = gState;\r\n gState.id = gStateKey;\r\n }\r\n\r\n // several user keys may point to the same GState object\r\n key && (gStatesMap[key] = gState.id);\r\n\r\n events.publish(\"addGState\", gState);\r\n\r\n return gState;\r\n };\r\n\r\n /**\r\n * Adds a new {@link GState} for later use. See {@link setGState}.\r\n * @param {String} key\r\n * @param {GState} gState\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n *\r\n * @memberof jsPDF#\r\n * @name addGState\r\n */\r\n API.addGState = function(key, gState) {\r\n addGState(key, gState);\r\n return this;\r\n };\r\n\r\n /**\r\n * Saves the current graphics state (\"pushes it on the stack\"). It can be restored by {@link restoreGraphicsState}\r\n * later. Here, the general pdf graphics state is meant, also including the current transformation matrix,\r\n * fill and stroke colors etc.\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name saveGraphicsState\r\n */\r\n API.saveGraphicsState = function() {\r\n out(\"q\");\r\n // as we cannot set font key and size independently we must keep track of both\r\n fontStateStack.push({\r\n key: activeFontKey,\r\n size: activeFontSize,\r\n color: textColor\r\n });\r\n return this;\r\n };\r\n\r\n /**\r\n * Restores a previously saved graphics state saved by {@link saveGraphicsState} (\"pops the stack\").\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name restoreGraphicsState\r\n */\r\n API.restoreGraphicsState = function() {\r\n out(\"Q\");\r\n\r\n // restore previous font state\r\n var fontState = fontStateStack.pop();\r\n activeFontKey = fontState.key;\r\n activeFontSize = fontState.size;\r\n textColor = fontState.color;\r\n\r\n activeGState = null;\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Appends this matrix to the left of all previously applied matrices.\r\n *\r\n * @param {Matrix} matrix\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setCurrentTransformationMatrix\r\n */\r\n API.setCurrentTransformationMatrix = function(matrix) {\r\n out(matrix.toString() + \" cm\");\r\n return this;\r\n };\r\n\r\n /**\r\n * Inserts a debug comment into the generated pdf.\r\n * @function\r\n * @instance\r\n * @param {String} text\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name comment\r\n */\r\n API.comment = function(text) {\r\n out(\"#\" + text);\r\n return this;\r\n };\r\n\r\n /**\r\n * Point\r\n */\r\n var Point = function(x, y) {\r\n var _x = x || 0;\r\n Object.defineProperty(this, \"x\", {\r\n enumerable: true,\r\n get: function() {\r\n return _x;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n _x = parseFloat(value);\r\n }\r\n }\r\n });\r\n\r\n var _y = y || 0;\r\n Object.defineProperty(this, \"y\", {\r\n enumerable: true,\r\n get: function() {\r\n return _y;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n _y = parseFloat(value);\r\n }\r\n }\r\n });\r\n\r\n var _type = \"pt\";\r\n Object.defineProperty(this, \"type\", {\r\n enumerable: true,\r\n get: function() {\r\n return _type;\r\n },\r\n set: function(value) {\r\n _type = value.toString();\r\n }\r\n });\r\n return this;\r\n };\r\n\r\n /**\r\n * Rectangle\r\n */\r\n var Rectangle = function(x, y, w, h) {\r\n Point.call(this, x, y);\r\n this.type = \"rect\";\r\n\r\n var _w = w || 0;\r\n Object.defineProperty(this, \"w\", {\r\n enumerable: true,\r\n get: function() {\r\n return _w;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n _w = parseFloat(value);\r\n }\r\n }\r\n });\r\n\r\n var _h = h || 0;\r\n Object.defineProperty(this, \"h\", {\r\n enumerable: true,\r\n get: function() {\r\n return _h;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n _h = parseFloat(value);\r\n }\r\n }\r\n });\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * FormObject/RenderTarget\r\n */\r\n\r\n var RenderTarget = function() {\r\n this.page = page;\r\n this.currentPage = currentPage;\r\n this.pages = pages.slice(0);\r\n this.pagesContext = pagesContext.slice(0);\r\n this.x = pageX;\r\n this.y = pageY;\r\n this.matrix = pageMatrix;\r\n this.width = getPageWidth(currentPage);\r\n this.height = getPageHeight(currentPage);\r\n this.outputDestination = outputDestination;\r\n\r\n this.id = \"\"; // set by endFormObject()\r\n this.objectNumber = -1; // will be set by putXObject()\r\n };\r\n\r\n RenderTarget.prototype.restore = function() {\r\n page = this.page;\r\n currentPage = this.currentPage;\r\n pagesContext = this.pagesContext;\r\n pages = this.pages;\r\n pageX = this.x;\r\n pageY = this.y;\r\n pageMatrix = this.matrix;\r\n setPageWidth(currentPage, this.width);\r\n setPageHeight(currentPage, this.height);\r\n outputDestination = this.outputDestination;\r\n };\r\n\r\n var beginNewRenderTarget = function(x, y, width, height, matrix) {\r\n // save current state\r\n renderTargetStack.push(new RenderTarget());\r\n\r\n // clear pages\r\n page = currentPage = 0;\r\n pages = [];\r\n pageX = x;\r\n pageY = y;\r\n\r\n pageMatrix = matrix;\r\n\r\n beginPage([width, height]);\r\n };\r\n\r\n var endFormObject = function(key) {\r\n // only add it if it is not already present (the keys provided by the user must be unique!)\r\n if (renderTargetMap[key]) {\r\n renderTargetStack.pop().restore();\r\n return;\r\n }\r\n\r\n // save the created xObject\r\n var newXObject = new RenderTarget();\r\n\r\n var xObjectId = \"Xo\" + (Object.keys(renderTargets).length + 1).toString(10);\r\n newXObject.id = xObjectId;\r\n\r\n renderTargetMap[key] = xObjectId;\r\n renderTargets[xObjectId] = newXObject;\r\n\r\n events.publish(\"addFormObject\", newXObject);\r\n\r\n // restore state from stack\r\n renderTargetStack.pop().restore();\r\n };\r\n\r\n /**\r\n * Starts a new pdf form object, which means that all consequent draw calls target a new independent object\r\n * until {@link endFormObject} is called. The created object can be referenced and drawn later using\r\n * {@link doFormObject}. Nested form objects are possible.\r\n * x, y, width, height set the bounding box that is used to clip the content.\r\n *\r\n * @param {number} x\r\n * @param {number} y\r\n * @param {number} width\r\n * @param {number} height\r\n * @param {Matrix} matrix The matrix that will be applied to convert the form objects coordinate system to\r\n * the parent's.\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name beginFormObject\r\n */\r\n API.beginFormObject = function(x, y, width, height, matrix) {\r\n // The user can set the output target to a new form object. Nested form objects are possible.\r\n // Currently, they use the resource dictionary of the surrounding stream. This should be changed, as\r\n // the PDF-Spec states:\r\n // \"In PDF 1.2 and later versions, form XObjects may be independent of the content streams in which\r\n // they appear, and this is strongly recommended although not requiredIn PDF 1.2 and later versions,\r\n // form XObjects may be independent of the content streams in which they appear, and this is strongly\r\n // recommended although not required\"\r\n beginNewRenderTarget(x, y, width, height, matrix);\r\n return this;\r\n };\r\n\r\n /**\r\n * Completes and saves the form object.\r\n * @param {String} key The key by which this form object can be referenced.\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name endFormObject\r\n */\r\n API.endFormObject = function(key) {\r\n endFormObject(key);\r\n return this;\r\n };\r\n\r\n /**\r\n * Draws the specified form object by referencing to the respective pdf XObject created with\r\n * {@link API.beginFormObject} and {@link endFormObject}.\r\n * The location is determined by matrix.\r\n *\r\n * @param {String} key The key to the form object.\r\n * @param {Matrix} matrix The matrix applied before drawing the form object.\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name doFormObject\r\n */\r\n API.doFormObject = function(key, matrix) {\r\n var xObject = renderTargets[renderTargetMap[key]];\r\n out(\"q\");\r\n out(matrix.toString() + \" cm\");\r\n out(\"/\" + xObject.id + \" Do\");\r\n out(\"Q\");\r\n return this;\r\n };\r\n\r\n /**\r\n * Returns the form object specified by key.\r\n * @param key {String}\r\n * @returns {{x: number, y: number, width: number, height: number, matrix: Matrix}}\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name getFormObject\r\n */\r\n API.getFormObject = function(key) {\r\n var xObject = renderTargets[renderTargetMap[key]];\r\n return {\r\n x: xObject.x,\r\n y: xObject.y,\r\n width: xObject.width,\r\n height: xObject.height,\r\n matrix: xObject.matrix\r\n };\r\n };\r\n\r\n /**\r\n * Saves as PDF document. An alias of jsPDF.output('save', 'filename.pdf').\r\n * Uses FileSaver.js-method saveAs.\r\n *\r\n * @memberof jsPDF#\r\n * @name save\r\n * @function\r\n * @instance\r\n * @param {string} filename The filename including extension.\r\n * @param {Object} options An Object with additional options, possible options: 'returnPromise'.\r\n * @returns {jsPDF|Promise} jsPDF-instance */\r\n API.save = function(filename, options) {\r\n filename = filename || \"generated.pdf\";\r\n\r\n options = options || {};\r\n options.returnPromise = options.returnPromise || false;\r\n\r\n if (options.returnPromise === false) {\r\n saveAs(getBlob(buildDocument()), filename);\r\n if (typeof saveAs.unload === \"function\") {\r\n if (globalObject.setTimeout) {\r\n setTimeout(saveAs.unload, 911);\r\n }\r\n }\r\n return this;\r\n } else {\r\n return new Promise(function(resolve, reject) {\r\n try {\r\n var result = saveAs(getBlob(buildDocument()), filename);\r\n if (typeof saveAs.unload === \"function\") {\r\n if (globalObject.setTimeout) {\r\n setTimeout(saveAs.unload, 911);\r\n }\r\n }\r\n resolve(result);\r\n } catch (e) {\r\n reject(e.message);\r\n }\r\n });\r\n }\r\n\r\n };\r\n\r\n // applying plugins (more methods) ON TOP of built-in API.\r\n // this is intentional as we allow plugins to override\r\n // built-ins\r\n for (var plugin in jsPDF.API) {\r\n if (jsPDF.API.hasOwnProperty(plugin)) {\r\n if (plugin === \"events\" && jsPDF.API.events.length) {\r\n (function(events, newEvents) {\r\n // jsPDF.API.events is a JS Array of Arrays\r\n // where each Array is a pair of event name, handler\r\n // Events were added by plugins to the jsPDF instantiator.\r\n // These are always added to the new instance and some ran\r\n // during instantiation.\r\n var eventname, handler_and_args, i;\r\n\r\n for (i = newEvents.length - 1; i !== -1; i--) {\r\n // subscribe takes 3 args: 'topic', function, runonce_flag\r\n // if undefined, runonce is false.\r\n // users can attach callback directly,\r\n // or they can attach an array with [callback, runonce_flag]\r\n // that's what the \"apply\" magic is for below.\r\n eventname = newEvents[i][0];\r\n handler_and_args = newEvents[i][1];\r\n events.subscribe.apply(\r\n events,\r\n [eventname].concat(\r\n typeof handler_and_args === \"function\"\r\n ? [handler_and_args]\r\n : handler_and_args\r\n )\r\n );\r\n }\r\n })(events, jsPDF.API.events);\r\n } else {\r\n API[plugin] = jsPDF.API[plugin];\r\n }\r\n }\r\n }\r\n\r\n var getPageWidth = (API.getPageWidth = function(pageNumber) {\r\n pageNumber = pageNumber || currentPage;\r\n return (\r\n (pagesContext[pageNumber].mediaBox.topRightX -\r\n pagesContext[pageNumber].mediaBox.bottomLeftX) /\r\n scaleFactor\r\n );\r\n });\r\n\r\n var setPageWidth = (API.setPageWidth = function(pageNumber, value) {\r\n pagesContext[pageNumber].mediaBox.topRightX =\r\n value * scaleFactor + pagesContext[pageNumber].mediaBox.bottomLeftX;\r\n });\r\n\r\n var getPageHeight = (API.getPageHeight = function(pageNumber) {\r\n pageNumber = pageNumber || currentPage;\r\n return (\r\n (pagesContext[pageNumber].mediaBox.topRightY -\r\n pagesContext[pageNumber].mediaBox.bottomLeftY) /\r\n scaleFactor\r\n );\r\n });\r\n\r\n var setPageHeight = (API.setPageHeight = function(pageNumber, value) {\r\n pagesContext[pageNumber].mediaBox.topRightY =\r\n value * scaleFactor + pagesContext[pageNumber].mediaBox.bottomLeftY;\r\n });\r\n\r\n /**\r\n * Object exposing internal API to plugins\r\n * @public\r\n * @ignore\r\n */\r\n API.internal = {\r\n pdfEscape: pdfEscape,\r\n getStyle: getStyle,\r\n getFont: getFontEntry,\r\n getFontSize: getFontSize,\r\n getCharSpace: getCharSpace,\r\n getTextColor: getTextColor,\r\n getLineHeight: getLineHeight,\r\n getLineHeightFactor: getLineHeightFactor,\r\n getLineWidth: getLineWidth,\r\n write: write,\r\n getHorizontalCoordinate: getHorizontalCoordinate,\r\n getVerticalCoordinate: getVerticalCoordinate,\r\n getCoordinateString: getHorizontalCoordinateString,\r\n getVerticalCoordinateString: getVerticalCoordinateString,\r\n collections: {},\r\n newObject: newObject,\r\n newAdditionalObject: newAdditionalObject,\r\n newObjectDeferred: newObjectDeferred,\r\n newObjectDeferredBegin: newObjectDeferredBegin,\r\n getFilters: getFilters,\r\n putStream: putStream,\r\n events: events,\r\n scaleFactor: scaleFactor,\r\n pageSize: {\r\n getWidth: function() {\r\n return getPageWidth(currentPage);\r\n },\r\n setWidth: function(value) {\r\n setPageWidth(currentPage, value);\r\n },\r\n getHeight: function() {\r\n return getPageHeight(currentPage);\r\n },\r\n setHeight: function(value) {\r\n setPageHeight(currentPage, value);\r\n }\r\n },\r\n encryptionOptions: encryptionOptions,\r\n encryption: encryption,\r\n getEncryptor: getEncryptor,\r\n output: output,\r\n getNumberOfPages: getNumberOfPages,\r\n pages: pages,\r\n out: out,\r\n f2: f2,\r\n f3: f3,\r\n getPageInfo: getPageInfo,\r\n getPageInfoByObjId: getPageInfoByObjId,\r\n getCurrentPageInfo: getCurrentPageInfo,\r\n getPDFVersion: getPdfVersion,\r\n Point: Point,\r\n Rectangle: Rectangle,\r\n Matrix: Matrix,\r\n hasHotfix: hasHotfix //Expose the hasHotfix check so plugins can also check them.\r\n };\r\n\r\n Object.defineProperty(API.internal.pageSize, \"width\", {\r\n get: function() {\r\n return getPageWidth(currentPage);\r\n },\r\n set: function(value) {\r\n setPageWidth(currentPage, value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(API.internal.pageSize, \"height\", {\r\n get: function() {\r\n return getPageHeight(currentPage);\r\n },\r\n set: function(value) {\r\n setPageHeight(currentPage, value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n\r\n //////////////////////////////////////////////////////\r\n // continuing initialization of jsPDF Document object\r\n //////////////////////////////////////////////////////\r\n // Add the first page automatically\r\n addFonts.call(API, standardFonts);\r\n activeFontKey = \"F1\";\r\n _addPage(format, orientation);\r\n\r\n events.publish(\"initialized\");\r\n return API;\r\n}\r\n\r\n/**\r\n * jsPDF.API is a STATIC property of jsPDF class.\r\n * jsPDF.API is an object you can add methods and properties to.\r\n * The methods / properties you add will show up in new jsPDF objects.\r\n *\r\n * One property is prepopulated. It is the 'events' Object. Plugin authors can add topics,\r\n * callbacks to this object. These will be reassigned to all new instances of jsPDF.\r\n *\r\n * @static\r\n * @public\r\n * @memberof jsPDF#\r\n * @name API\r\n *\r\n * @example\r\n * jsPDF.API.mymethod = function(){\r\n * // 'this' will be ref to internal API object. see jsPDF source\r\n * // , so you can refer to built-in methods like so:\r\n * // this.line(....)\r\n * // this.text(....)\r\n * }\r\n * var pdfdoc = new jsPDF()\r\n * pdfdoc.mymethod() // <- !!!!!!\r\n */\r\njsPDF.API = {\r\n events: []\r\n};\r\n/**\r\n * The version of jsPDF.\r\n * @name version\r\n * @type {string}\r\n * @memberof jsPDF#\r\n */\r\njsPDF.version = \"0.0.0\";\r\n\r\nexport { jsPDF, ShadingPattern, TilingPattern, GState };\r\nexport default jsPDF;\r\n","/* global jsPDF */\n/**\n * @license\n * Copyright (c) 2016 Alexander Weidt,\n * https://github.com/BiggA94\n *\n * Licensed under the MIT License. http://opensource.org/licenses/mit-license\n */\n\n/**\n * jsPDF AcroForm Plugin\n * @module AcroForm\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\nvar jsPDFAPI = jsPDF.API;\nvar scaleFactor = 1;\n\nvar pdfEscape = function(value) {\n return value\n .replace(/\\\\/g, \"\\\\\\\\\")\n .replace(/\\(/g, \"\\\\(\")\n .replace(/\\)/g, \"\\\\)\");\n};\nvar pdfUnescape = function(value) {\n return value\n .replace(/\\\\\\\\/g, \"\\\\\")\n .replace(/\\\\\\(/g, \"(\")\n .replace(/\\\\\\)/g, \")\");\n};\n\nvar f2 = function(number) {\n return number.toFixed(2); // Ie, %.2f\n};\n\nvar f5 = function(number) {\n return number.toFixed(5); // Ie, %.2f\n};\n\njsPDFAPI.__acroform__ = {};\nvar inherit = function(child, parent) {\n child.prototype = Object.create(parent.prototype);\n child.prototype.constructor = child;\n};\n\nvar scale = function(x) {\n return x * scaleFactor;\n};\n\nvar createFormXObject = function(formObject) {\n var xobj = new AcroFormXObject();\n var height = AcroFormAppearance.internal.getHeight(formObject) || 0;\n var width = AcroFormAppearance.internal.getWidth(formObject) || 0;\n xobj.BBox = [0, 0, Number(f2(width)), Number(f2(height))];\n return xobj;\n};\n\n/**\n * Bit-Operations\n */\nvar setBit = (jsPDFAPI.__acroform__.setBit = function(number, bitPosition) {\n number = number || 0;\n bitPosition = bitPosition || 0;\n\n if (isNaN(number) || isNaN(bitPosition)) {\n throw new Error(\n \"Invalid arguments passed to jsPDF.API.__acroform__.setBit\"\n );\n }\n var bitMask = 1 << bitPosition;\n\n number |= bitMask;\n\n return number;\n});\n\nvar clearBit = (jsPDFAPI.__acroform__.clearBit = function(number, bitPosition) {\n number = number || 0;\n bitPosition = bitPosition || 0;\n\n if (isNaN(number) || isNaN(bitPosition)) {\n throw new Error(\n \"Invalid arguments passed to jsPDF.API.__acroform__.clearBit\"\n );\n }\n var bitMask = 1 << bitPosition;\n\n number &= ~bitMask;\n\n return number;\n});\n\nvar getBit = (jsPDFAPI.__acroform__.getBit = function(number, bitPosition) {\n if (isNaN(number) || isNaN(bitPosition)) {\n throw new Error(\n \"Invalid arguments passed to jsPDF.API.__acroform__.getBit\"\n );\n }\n return (number & (1 << bitPosition)) === 0 ? 0 : 1;\n});\n\n/*\n * Ff starts counting the bit position at 1 and not like javascript at 0\n */\nvar getBitForPdf = (jsPDFAPI.__acroform__.getBitForPdf = function(\n number,\n bitPosition\n) {\n if (isNaN(number) || isNaN(bitPosition)) {\n throw new Error(\n \"Invalid arguments passed to jsPDF.API.__acroform__.getBitForPdf\"\n );\n }\n return getBit(number, bitPosition - 1);\n});\n\nvar setBitForPdf = (jsPDFAPI.__acroform__.setBitForPdf = function(\n number,\n bitPosition\n) {\n if (isNaN(number) || isNaN(bitPosition)) {\n throw new Error(\n \"Invalid arguments passed to jsPDF.API.__acroform__.setBitForPdf\"\n );\n }\n return setBit(number, bitPosition - 1);\n});\n\nvar clearBitForPdf = (jsPDFAPI.__acroform__.clearBitForPdf = function(\n number,\n bitPosition\n) {\n if (isNaN(number) || isNaN(bitPosition)) {\n throw new Error(\n \"Invalid arguments passed to jsPDF.API.__acroform__.clearBitForPdf\"\n );\n }\n return clearBit(number, bitPosition - 1);\n});\n\nvar calculateCoordinates = (jsPDFAPI.__acroform__.calculateCoordinates = function(\n args,\n scope\n) {\n var getHorizontalCoordinate = scope.internal.getHorizontalCoordinate;\n var getVerticalCoordinate = scope.internal.getVerticalCoordinate;\n var x = args[0];\n var y = args[1];\n var w = args[2];\n var h = args[3];\n\n var coordinates = {};\n\n coordinates.lowerLeft_X = getHorizontalCoordinate(x) || 0;\n coordinates.lowerLeft_Y = getVerticalCoordinate(y + h) || 0;\n coordinates.upperRight_X = getHorizontalCoordinate(x + w) || 0;\n coordinates.upperRight_Y = getVerticalCoordinate(y) || 0;\n\n return [\n Number(f2(coordinates.lowerLeft_X)),\n Number(f2(coordinates.lowerLeft_Y)),\n Number(f2(coordinates.upperRight_X)),\n Number(f2(coordinates.upperRight_Y))\n ];\n});\n\nvar calculateAppearanceStream = function(formObject) {\n if (formObject.appearanceStreamContent) {\n return formObject.appearanceStreamContent;\n }\n\n if (!formObject.V && !formObject.DV) {\n return;\n }\n\n // else calculate it\n\n var stream = [];\n var text = formObject._V || formObject.DV;\n var calcRes = calculateX(formObject, text);\n var fontKey = formObject.scope.internal.getFont(\n formObject.fontName,\n formObject.fontStyle\n ).id;\n\n //PDF 32000-1:2008, page 444\n stream.push(\"/Tx BMC\");\n stream.push(\"q\");\n stream.push(\"BT\"); // Begin Text\n stream.push(formObject.scope.__private__.encodeColorString(formObject.color));\n stream.push(\"/\" + fontKey + \" \" + f2(calcRes.fontSize) + \" Tf\");\n stream.push(\"1 0 0 1 0 0 Tm\"); // Transformation Matrix\n stream.push(calcRes.text);\n stream.push(\"ET\"); // End Text\n stream.push(\"Q\");\n stream.push(\"EMC\");\n\n var appearanceStreamContent = createFormXObject(formObject);\n appearanceStreamContent.scope = formObject.scope;\n appearanceStreamContent.stream = stream.join(\"\\n\");\n return appearanceStreamContent;\n};\n\nvar calculateX = function(formObject, text) {\n var maxFontSize =\n formObject.fontSize === 0 ? formObject.maxFontSize : formObject.fontSize;\n var returnValue = {\n text: \"\",\n fontSize: \"\"\n };\n // Remove Brackets\n text = text.substr(0, 1) == \"(\" ? text.substr(1) : text;\n text =\n text.substr(text.length - 1) == \")\"\n ? text.substr(0, text.length - 1)\n : text;\n // split into array of words\n var textSplit = text.split(\" \");\n if (formObject.multiline) {\n textSplit = textSplit.map(word => word.split(\"\\n\"));\n } else {\n textSplit = textSplit.map(word => [word]);\n }\n\n var fontSize = maxFontSize; // The Starting fontSize (The Maximum)\n var lineSpacing = 2;\n var borderPadding = 2;\n\n var height = AcroFormAppearance.internal.getHeight(formObject) || 0;\n height = height < 0 ? -height : height;\n var width = AcroFormAppearance.internal.getWidth(formObject) || 0;\n width = width < 0 ? -width : width;\n\n var isSmallerThanWidth = function(i, lastLine, fontSize) {\n if (i + 1 < textSplit.length) {\n var tmp = lastLine + \" \" + textSplit[i + 1][0];\n var TextWidth = calculateFontSpace(tmp, formObject, fontSize).width;\n var FieldWidth = width - 2 * borderPadding;\n return TextWidth <= FieldWidth;\n } else {\n return false;\n }\n };\n\n fontSize++;\n FontSize: while (fontSize > 0) {\n text = \"\";\n fontSize--;\n var textHeight = calculateFontSpace(\"3\", formObject, fontSize).height;\n var startY = formObject.multiline\n ? height - fontSize\n : (height - textHeight) / 2;\n startY += lineSpacing;\n var startX;\n\n var lastY = startY;\n var firstWordInLine = 0,\n lastWordInLine = 0;\n var lastLength;\n var currWord = 0;\n\n if (fontSize <= 0) {\n // In case, the Text doesn't fit at all\n fontSize = 12;\n text = \"(...) Tj\\n\";\n text +=\n \"% Width of Text: \" +\n calculateFontSpace(text, formObject, fontSize).width +\n \", FieldWidth:\" +\n width +\n \"\\n\";\n break;\n }\n\n var lastLine = \"\";\n var lineCount = 0;\n Line: for (var i = 0; i < textSplit.length; i++) {\n if (textSplit.hasOwnProperty(i)) {\n let isWithNewLine = false;\n if (textSplit[i].length !== 1 && currWord !== textSplit[i].length - 1) {\n if (\n (textHeight + lineSpacing) * (lineCount + 2) + lineSpacing >\n height\n ) {\n continue FontSize;\n }\n\n lastLine += textSplit[i][currWord];\n isWithNewLine = true;\n lastWordInLine = i;\n i--;\n } else {\n lastLine += textSplit[i][currWord] + \" \";\n lastLine =\n lastLine.substr(lastLine.length - 1) == \" \"\n ? lastLine.substr(0, lastLine.length - 1)\n : lastLine;\n var key = parseInt(i);\n var nextLineIsSmaller = isSmallerThanWidth(key, lastLine, fontSize);\n var isLastWord = i >= textSplit.length - 1;\n\n if (nextLineIsSmaller && !isLastWord) {\n lastLine += \" \";\n currWord = 0;\n continue; // Line\n } else if (!nextLineIsSmaller && !isLastWord) {\n if (!formObject.multiline) {\n continue FontSize;\n } else {\n if (\n (textHeight + lineSpacing) * (lineCount + 2) + lineSpacing >\n height\n ) {\n // If the Text is higher than the\n // FieldObject\n continue FontSize;\n }\n lastWordInLine = key;\n // go on\n }\n } else if (isLastWord) {\n lastWordInLine = key;\n } else {\n if (\n formObject.multiline &&\n (textHeight + lineSpacing) * (lineCount + 2) + lineSpacing >\n height\n ) {\n // If the Text is higher than the FieldObject\n continue FontSize;\n }\n }\n }\n // Remove last blank\n\n var line = \"\";\n\n for (var x = firstWordInLine; x <= lastWordInLine; x++) {\n var currLine = textSplit[x];\n if (formObject.multiline) {\n if (x === lastWordInLine) {\n line += currLine[currWord] + \" \";\n currWord = (currWord + 1) % currLine.length;\n continue;\n }\n if (x === firstWordInLine) {\n line += currLine[currLine.length - 1] + \" \";\n continue;\n }\n }\n line += currLine[0] + \" \";\n }\n\n // Remove last blank\n line =\n line.substr(line.length - 1) == \" \"\n ? line.substr(0, line.length - 1)\n : line;\n // lastLength -= blankSpace.width;\n lastLength = calculateFontSpace(line, formObject, fontSize).width;\n\n // Calculate startX\n switch (formObject.textAlign) {\n case \"right\":\n startX = width - lastLength - borderPadding;\n break;\n case \"center\":\n startX = (width - lastLength) / 2;\n break;\n case \"left\":\n default:\n startX = borderPadding;\n break;\n }\n text += f2(startX) + \" \" + f2(lastY) + \" Td\\n\";\n text += \"(\" + pdfEscape(line) + \") Tj\\n\";\n // reset X in PDF\n text += -f2(startX) + \" 0 Td\\n\";\n\n // After a Line, adjust y position\n lastY = -(fontSize + lineSpacing);\n\n // Reset for next iteration step\n lastLength = 0;\n firstWordInLine = isWithNewLine ? lastWordInLine : lastWordInLine + 1;\n lineCount++;\n\n lastLine = \"\";\n continue Line;\n }\n }\n break;\n }\n\n returnValue.text = text;\n returnValue.fontSize = fontSize;\n\n return returnValue;\n};\n\n/**\n * Small workaround for calculating the TextMetric approximately.\n *\n * @param text\n * @param fontsize\n * @returns {TextMetrics} (Has Height and Width)\n */\nvar calculateFontSpace = function(text, formObject, fontSize) {\n var font = formObject.scope.internal.getFont(\n formObject.fontName,\n formObject.fontStyle\n );\n var width =\n formObject.scope.getStringUnitWidth(text, {\n font: font,\n fontSize: parseFloat(fontSize),\n charSpace: 0\n }) * parseFloat(fontSize);\n var height =\n formObject.scope.getStringUnitWidth(\"3\", {\n font: font,\n fontSize: parseFloat(fontSize),\n charSpace: 0\n }) *\n parseFloat(fontSize) *\n 1.5;\n return { height: height, width: width };\n};\n\nvar acroformPluginTemplate = {\n fields: [],\n xForms: [],\n /**\n * acroFormDictionaryRoot contains information about the AcroForm\n * Dictionary 0: The Event-Token, the AcroFormDictionaryCallback has\n * 1: The Object ID of the Root\n */\n acroFormDictionaryRoot: null,\n /**\n * After the PDF gets evaluated, the reference to the root has to be\n * reset, this indicates, whether the root has already been printed\n * out\n */\n printedOut: false,\n internal: null,\n isInitialized: false\n};\n\nvar annotReferenceCallback = function(scope) {\n //set objId to undefined and force it to get a new objId on buildDocument\n scope.internal.acroformPlugin.acroFormDictionaryRoot.objId = undefined;\n var fields = scope.internal.acroformPlugin.acroFormDictionaryRoot.Fields;\n for (var i in fields) {\n if (fields.hasOwnProperty(i)) {\n var formObject = fields[i];\n //set objId to undefined and force it to get a new objId on buildDocument\n formObject.objId = undefined;\n // add Annot Reference!\n if (formObject.hasAnnotation) {\n // If theres an Annotation Widget in the Form Object, put the\n // Reference in the /Annot array\n createAnnotationReference(formObject, scope);\n }\n }\n }\n};\n\nvar putForm = function(formObject) {\n if (formObject.scope.internal.acroformPlugin.printedOut) {\n formObject.scope.internal.acroformPlugin.printedOut = false;\n formObject.scope.internal.acroformPlugin.acroFormDictionaryRoot = null;\n }\n formObject.scope.internal.acroformPlugin.acroFormDictionaryRoot.Fields.push(\n formObject\n );\n};\n/**\n * Create the Reference to the widgetAnnotation, so that it gets referenced\n * in the Annot[] int the+ (Requires the Annotation Plugin)\n */\nvar createAnnotationReference = function(object, scope) {\n var options = {\n type: \"reference\",\n object: object\n };\n var findEntry = function(entry) {\n return entry.type === options.type && entry.object === options.object;\n };\n if (\n scope.internal\n .getPageInfo(object.page)\n .pageContext.annotations.find(findEntry) === undefined\n ) {\n scope.internal\n .getPageInfo(object.page)\n .pageContext.annotations.push(options);\n }\n};\n\n// Callbacks\n\nvar putCatalogCallback = function(scope) {\n // Put reference to AcroForm to DocumentCatalog\n if (\n typeof scope.internal.acroformPlugin.acroFormDictionaryRoot !== \"undefined\"\n ) {\n // for safety, shouldn't normally be the case\n scope.internal.write(\n \"/AcroForm \" +\n scope.internal.acroformPlugin.acroFormDictionaryRoot.objId +\n \" \" +\n 0 +\n \" R\"\n );\n } else {\n throw new Error(\"putCatalogCallback: Root missing.\");\n }\n};\n\n/**\n * Adds /Acroform X 0 R to Document Catalog, and creates the AcroForm\n * Dictionary\n */\nvar AcroFormDictionaryCallback = function(scope) {\n // Remove event\n scope.internal.events.unsubscribe(\n scope.internal.acroformPlugin.acroFormDictionaryRoot._eventID\n );\n delete scope.internal.acroformPlugin.acroFormDictionaryRoot._eventID;\n scope.internal.acroformPlugin.printedOut = true;\n};\n\n/**\n * Creates the single Fields and writes them into the Document\n *\n * If fieldArray is set, use the fields that are inside it instead of the\n * fields from the AcroRoot (for the FormXObjects...)\n */\nvar createFieldCallback = function(fieldArray, scope) {\n var standardFields = !fieldArray;\n\n if (!fieldArray) {\n // in case there is no fieldArray specified, we want to print out\n // the Fields of the AcroForm\n // Print out Root\n scope.internal.newObjectDeferredBegin(\n scope.internal.acroformPlugin.acroFormDictionaryRoot.objId,\n true\n );\n scope.internal.acroformPlugin.acroFormDictionaryRoot.putStream();\n }\n\n fieldArray =\n fieldArray || scope.internal.acroformPlugin.acroFormDictionaryRoot.Kids;\n\n for (var i in fieldArray) {\n if (fieldArray.hasOwnProperty(i)) {\n var fieldObject = fieldArray[i];\n var keyValueList = [];\n var oldRect = fieldObject.Rect;\n\n if (fieldObject.Rect) {\n fieldObject.Rect = calculateCoordinates(fieldObject.Rect, scope);\n }\n\n // Start Writing the Object\n scope.internal.newObjectDeferredBegin(fieldObject.objId, true);\n\n fieldObject.DA = AcroFormAppearance.createDefaultAppearanceStream(\n fieldObject\n );\n\n if (\n typeof fieldObject === \"object\" &&\n typeof fieldObject.getKeyValueListForStream === \"function\"\n ) {\n keyValueList = fieldObject.getKeyValueListForStream();\n }\n\n fieldObject.Rect = oldRect;\n\n if (\n fieldObject.hasAppearanceStream &&\n !fieldObject.appearanceStreamContent\n ) {\n // Calculate Appearance\n var appearance = calculateAppearanceStream(fieldObject);\n keyValueList.push({ key: \"AP\", value: \"<</N \" + appearance + \">>\" });\n\n scope.internal.acroformPlugin.xForms.push(appearance);\n }\n\n // Assume AppearanceStreamContent is a Array with N,R,D (at least\n // one of them!)\n if (fieldObject.appearanceStreamContent) {\n var appearanceStreamString = \"\";\n // Iterate over N,R and D\n for (var k in fieldObject.appearanceStreamContent) {\n if (fieldObject.appearanceStreamContent.hasOwnProperty(k)) {\n var value = fieldObject.appearanceStreamContent[k];\n appearanceStreamString += \"/\" + k + \" \";\n appearanceStreamString += \"<<\";\n if (Object.keys(value).length >= 1 || Array.isArray(value)) {\n // appearanceStream is an Array or Object!\n for (var i in value) {\n if (value.hasOwnProperty(i)) {\n var obj = value[i];\n if (typeof obj === \"function\") {\n // if Function is referenced, call it in order\n // to get the FormXObject\n obj = obj.call(scope, fieldObject);\n }\n appearanceStreamString += \"/\" + i + \" \" + obj + \" \";\n\n // In case the XForm is already used, e.g. OffState\n // of CheckBoxes, don't add it\n if (!(scope.internal.acroformPlugin.xForms.indexOf(obj) >= 0))\n scope.internal.acroformPlugin.xForms.push(obj);\n }\n }\n } else {\n obj = value;\n if (typeof obj === \"function\") {\n // if Function is referenced, call it in order to\n // get the FormXObject\n obj = obj.call(scope, fieldObject);\n }\n appearanceStreamString += \"/\" + i + \" \" + obj;\n if (!(scope.internal.acroformPlugin.xForms.indexOf(obj) >= 0))\n scope.internal.acroformPlugin.xForms.push(obj);\n }\n appearanceStreamString += \">>\";\n }\n }\n\n // appearance stream is a normal Object..\n keyValueList.push({\n key: \"AP\",\n value: \"<<\\n\" + appearanceStreamString + \">>\"\n });\n }\n\n scope.internal.putStream({\n additionalKeyValues: keyValueList,\n objectId: fieldObject.objId\n });\n\n scope.internal.out(\"endobj\");\n }\n }\n if (standardFields) {\n createXFormObjectCallback(scope.internal.acroformPlugin.xForms, scope);\n }\n};\n\nvar createXFormObjectCallback = function(fieldArray, scope) {\n for (var i in fieldArray) {\n if (fieldArray.hasOwnProperty(i)) {\n var key = i;\n var fieldObject = fieldArray[i];\n // Start Writing the Object\n scope.internal.newObjectDeferredBegin(fieldObject.objId, true);\n\n if (\n typeof fieldObject === \"object\" &&\n typeof fieldObject.putStream === \"function\"\n ) {\n fieldObject.putStream();\n }\n delete fieldArray[key];\n }\n }\n};\n\nvar initializeAcroForm = function(scope, formObject) {\n formObject.scope = scope;\n if (\n scope.internal !== undefined &&\n (scope.internal.acroformPlugin === undefined ||\n scope.internal.acroformPlugin.isInitialized === false)\n ) {\n AcroFormField.FieldNum = 0;\n scope.internal.acroformPlugin = JSON.parse(\n JSON.stringify(acroformPluginTemplate)\n );\n if (scope.internal.acroformPlugin.acroFormDictionaryRoot) {\n throw new Error(\"Exception while creating AcroformDictionary\");\n }\n scaleFactor = scope.internal.scaleFactor;\n // The Object Number of the AcroForm Dictionary\n scope.internal.acroformPlugin.acroFormDictionaryRoot = new AcroFormDictionary();\n scope.internal.acroformPlugin.acroFormDictionaryRoot.scope = scope;\n\n // add Callback for creating the AcroForm Dictionary\n scope.internal.acroformPlugin.acroFormDictionaryRoot._eventID = scope.internal.events.subscribe(\n \"postPutResources\",\n function() {\n AcroFormDictionaryCallback(scope);\n }\n );\n\n scope.internal.events.subscribe(\"buildDocument\", function() {\n annotReferenceCallback(scope);\n }); // buildDocument\n\n // Register event, that is triggered when the DocumentCatalog is\n // written, in order to add /AcroForm\n\n scope.internal.events.subscribe(\"putCatalog\", function() {\n putCatalogCallback(scope);\n });\n\n // Register event, that creates all Fields\n scope.internal.events.subscribe(\"postPutPages\", function(fieldArray) {\n createFieldCallback(fieldArray, scope);\n });\n\n scope.internal.acroformPlugin.isInitialized = true;\n }\n};\n\n//PDF 32000-1:2008, page 26, 7.3.6\nvar arrayToPdfArray = (jsPDFAPI.__acroform__.arrayToPdfArray = function(\n array,\n objId,\n scope\n) {\n var encryptor = function(data) {\n return data;\n };\n if (Array.isArray(array)) {\n var content = \"[\";\n for (var i = 0; i < array.length; i++) {\n if (i !== 0) {\n content += \" \";\n }\n switch (typeof array[i]) {\n case \"boolean\":\n case \"number\":\n case \"object\":\n content += array[i].toString();\n break;\n case \"string\":\n if (array[i].substr(0, 1) !== \"/\") {\n if (typeof objId !== \"undefined\" && scope)\n encryptor = scope.internal.getEncryptor(objId);\n content += \"(\" + pdfEscape(encryptor(array[i].toString())) + \")\";\n } else {\n content += array[i].toString();\n }\n break;\n }\n }\n content += \"]\";\n return content;\n }\n throw new Error(\n \"Invalid argument passed to jsPDF.__acroform__.arrayToPdfArray\"\n );\n});\nfunction getMatches(string, regex, index) {\n index || (index = 1); // default to the first capturing group\n var matches = [];\n var match;\n while ((match = regex.exec(string))) {\n matches.push(match[index]);\n }\n return matches;\n}\nvar pdfArrayToStringArray = function(array) {\n var result = [];\n if (typeof array === \"string\") {\n result = getMatches(array, /\\((.*?)\\)/g);\n }\n return result;\n};\n\nvar toPdfString = function(string, objId, scope) {\n var encryptor = function(data) {\n return data;\n };\n if (typeof objId !== \"undefined\" && scope)\n encryptor = scope.internal.getEncryptor(objId);\n string = string || \"\";\n string.toString();\n string = \"(\" + pdfEscape(encryptor(string)) + \")\";\n return string;\n};\n\n// ##########################\n// Classes\n// ##########################\n\n/**\n * @class AcroFormPDFObject\n * @classdesc A AcroFormPDFObject\n */\nvar AcroFormPDFObject = function() {\n this._objId = undefined;\n this._scope = undefined;\n\n /**\n * @name AcroFormPDFObject#objId\n * @type {any}\n */\n Object.defineProperty(this, \"objId\", {\n get: function() {\n if (typeof this._objId === \"undefined\") {\n if (typeof this.scope === \"undefined\") {\n return undefined;\n }\n this._objId = this.scope.internal.newObjectDeferred();\n }\n return this._objId;\n },\n set: function(value) {\n this._objId = value;\n }\n });\n Object.defineProperty(this, \"scope\", {\n value: this._scope,\n writable: true\n });\n};\n\n/**\n * @function AcroFormPDFObject.toString\n */\nAcroFormPDFObject.prototype.toString = function() {\n return this.objId + \" 0 R\";\n};\n\nAcroFormPDFObject.prototype.putStream = function() {\n var keyValueList = this.getKeyValueListForStream();\n this.scope.internal.putStream({\n data: this.stream,\n additionalKeyValues: keyValueList,\n objectId: this.objId\n });\n this.scope.internal.out(\"endobj\");\n};\n\n/**\n * Returns an key-value-List of all non-configurable Variables from the Object\n *\n * @name getKeyValueListForStream\n * @returns {string}\n */\nAcroFormPDFObject.prototype.getKeyValueListForStream = function() {\n var keyValueList = [];\n var keys = Object.getOwnPropertyNames(this).filter(function(key) {\n return (\n key != \"content\" &&\n key != \"appearanceStreamContent\" &&\n key != \"scope\" &&\n key != \"objId\" &&\n key.substring(0, 1) != \"_\"\n );\n });\n\n for (var i in keys) {\n if (Object.getOwnPropertyDescriptor(this, keys[i]).configurable === false) {\n var key = keys[i];\n var value = this[key];\n\n if (value) {\n if (Array.isArray(value)) {\n keyValueList.push({\n key: key,\n value: arrayToPdfArray(value, this.objId, this.scope)\n });\n } else if (value instanceof AcroFormPDFObject) {\n // In case it is a reference to another PDFObject,\n // take the reference number\n value.scope = this.scope;\n keyValueList.push({ key: key, value: value.objId + \" 0 R\" });\n } else if (typeof value !== \"function\") {\n keyValueList.push({ key: key, value: value });\n }\n }\n }\n }\n return keyValueList;\n};\n\nvar AcroFormXObject = function() {\n AcroFormPDFObject.call(this);\n\n Object.defineProperty(this, \"Type\", {\n value: \"/XObject\",\n configurable: false,\n writable: true\n });\n\n Object.defineProperty(this, \"Subtype\", {\n value: \"/Form\",\n configurable: false,\n writable: true\n });\n\n Object.defineProperty(this, \"FormType\", {\n value: 1,\n configurable: false,\n writable: true\n });\n\n var _BBox = [];\n Object.defineProperty(this, \"BBox\", {\n configurable: false,\n get: function() {\n return _BBox;\n },\n set: function(value) {\n _BBox = value;\n }\n });\n\n Object.defineProperty(this, \"Resources\", {\n value: \"2 0 R\",\n configurable: false,\n writable: true\n });\n\n var _stream;\n Object.defineProperty(this, \"stream\", {\n enumerable: false,\n configurable: true,\n set: function(value) {\n _stream = value.trim();\n },\n get: function() {\n if (_stream) {\n return _stream;\n } else {\n return null;\n }\n }\n });\n};\n\ninherit(AcroFormXObject, AcroFormPDFObject);\n\nvar AcroFormDictionary = function() {\n AcroFormPDFObject.call(this);\n\n var _Kids = [];\n\n Object.defineProperty(this, \"Kids\", {\n enumerable: false,\n configurable: true,\n get: function() {\n if (_Kids.length > 0) {\n return _Kids;\n } else {\n return undefined;\n }\n }\n });\n Object.defineProperty(this, \"Fields\", {\n enumerable: false,\n configurable: false,\n get: function() {\n return _Kids;\n }\n });\n\n // Default Appearance\n var _DA;\n Object.defineProperty(this, \"DA\", {\n enumerable: false,\n configurable: false,\n get: function() {\n if (!_DA) {\n return undefined;\n }\n var encryptor = function(data) {\n return data;\n };\n if (this.scope) encryptor = this.scope.internal.getEncryptor(this.objId);\n return \"(\" + pdfEscape(encryptor(_DA)) + \")\";\n },\n set: function(value) {\n _DA = value;\n }\n });\n};\n\ninherit(AcroFormDictionary, AcroFormPDFObject);\n\n/**\n * The Field Object contains the Variables, that every Field needs\n *\n * @class AcroFormField\n * @classdesc An AcroForm FieldObject\n */\nvar AcroFormField = function() {\n AcroFormPDFObject.call(this);\n\n //Annotation-Flag See Table 165\n var _F = 4;\n Object.defineProperty(this, \"F\", {\n enumerable: false,\n configurable: false,\n get: function() {\n return _F;\n },\n set: function(value) {\n if (!isNaN(value)) {\n _F = value;\n } else {\n throw new Error(\n 'Invalid value \"' + value + '\" for attribute F supplied.'\n );\n }\n }\n });\n\n /**\n * (PDF 1.2) If set, print the annotation when the page is printed. If clear, never print the annotation, regardless of wether is is displayed on the screen.\n * NOTE 2 This can be useful for annotations representing interactive pushbuttons, which would serve no meaningful purpose on the printed page.\n *\n * @name AcroFormField#showWhenPrinted\n * @default true\n * @type {boolean}\n */\n Object.defineProperty(this, \"showWhenPrinted\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(_F, 3));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.F = setBitForPdf(_F, 3);\n } else {\n this.F = clearBitForPdf(_F, 3);\n }\n }\n });\n\n var _Ff = 0;\n Object.defineProperty(this, \"Ff\", {\n enumerable: false,\n configurable: false,\n get: function() {\n return _Ff;\n },\n set: function(value) {\n if (!isNaN(value)) {\n _Ff = value;\n } else {\n throw new Error(\n 'Invalid value \"' + value + '\" for attribute Ff supplied.'\n );\n }\n }\n });\n\n var _Rect = [];\n Object.defineProperty(this, \"Rect\", {\n enumerable: false,\n configurable: false,\n get: function() {\n if (_Rect.length === 0) {\n return undefined;\n }\n return _Rect;\n },\n set: function(value) {\n if (typeof value !== \"undefined\") {\n _Rect = value;\n } else {\n _Rect = [];\n }\n }\n });\n\n /**\n * The x-position of the field.\n *\n * @name AcroFormField#x\n * @default null\n * @type {number}\n */\n Object.defineProperty(this, \"x\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (!_Rect || isNaN(_Rect[0])) {\n return 0;\n }\n return _Rect[0];\n },\n set: function(value) {\n _Rect[0] = value;\n }\n });\n\n /**\n * The y-position of the field.\n *\n * @name AcroFormField#y\n * @default null\n * @type {number}\n */\n Object.defineProperty(this, \"y\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (!_Rect || isNaN(_Rect[1])) {\n return 0;\n }\n return _Rect[1];\n },\n set: function(value) {\n _Rect[1] = value;\n }\n });\n\n /**\n * The width of the field.\n *\n * @name AcroFormField#width\n * @default null\n * @type {number}\n */\n Object.defineProperty(this, \"width\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (!_Rect || isNaN(_Rect[2])) {\n return 0;\n }\n return _Rect[2];\n },\n set: function(value) {\n _Rect[2] = value;\n }\n });\n\n /**\n * The height of the field.\n *\n * @name AcroFormField#height\n * @default null\n * @type {number}\n */\n Object.defineProperty(this, \"height\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (!_Rect || isNaN(_Rect[3])) {\n return 0;\n }\n return _Rect[3];\n },\n set: function(value) {\n _Rect[3] = value;\n }\n });\n\n var _FT = \"\";\n Object.defineProperty(this, \"FT\", {\n enumerable: true,\n configurable: false,\n get: function() {\n return _FT;\n },\n set: function(value) {\n switch (value) {\n case \"/Btn\":\n case \"/Tx\":\n case \"/Ch\":\n case \"/Sig\":\n _FT = value;\n break;\n default:\n throw new Error(\n 'Invalid value \"' + value + '\" for attribute FT supplied.'\n );\n }\n }\n });\n\n var _T = null;\n\n Object.defineProperty(this, \"T\", {\n enumerable: true,\n configurable: false,\n get: function() {\n if (!_T || _T.length < 1) {\n // In case of a Child from a Radio´Group, you don't need a FieldName\n if (this instanceof AcroFormChildClass) {\n return undefined;\n }\n _T = \"FieldObject\" + AcroFormField.FieldNum++;\n }\n var encryptor = function(data) {\n return data;\n };\n if (this.scope) encryptor = this.scope.internal.getEncryptor(this.objId);\n return \"(\" + pdfEscape(encryptor(_T)) + \")\";\n },\n set: function(value) {\n _T = value.toString();\n }\n });\n\n /**\n * (Optional) The partial field name (see 12.7.3.2, “Field Namesâ€).\n *\n * @name AcroFormField#fieldName\n * @default null\n * @type {string}\n */\n Object.defineProperty(this, \"fieldName\", {\n configurable: true,\n enumerable: true,\n get: function() {\n return _T;\n },\n set: function(value) {\n _T = value;\n }\n });\n\n var _fontName = \"helvetica\";\n /**\n * The fontName of the font to be used.\n *\n * @name AcroFormField#fontName\n * @default 'helvetica'\n * @type {string}\n */\n Object.defineProperty(this, \"fontName\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _fontName;\n },\n set: function(value) {\n _fontName = value;\n }\n });\n\n var _fontStyle = \"normal\";\n /**\n * The fontStyle of the font to be used.\n *\n * @name AcroFormField#fontStyle\n * @default 'normal'\n * @type {string}\n */\n Object.defineProperty(this, \"fontStyle\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _fontStyle;\n },\n set: function(value) {\n _fontStyle = value;\n }\n });\n\n var _fontSize = 0;\n /**\n * The fontSize of the font to be used.\n *\n * @name AcroFormField#fontSize\n * @default 0 (for auto)\n * @type {number}\n */\n Object.defineProperty(this, \"fontSize\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _fontSize;\n },\n set: function(value) {\n _fontSize = value;\n }\n });\n\n var _maxFontSize = undefined;\n /**\n * The maximum fontSize of the font to be used.\n *\n * @name AcroFormField#maxFontSize\n * @default 0 (for auto)\n * @type {number}\n */\n Object.defineProperty(this, \"maxFontSize\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (_maxFontSize === undefined) {\n // use the old default value here - the value is some kind of random as it depends on the scaleFactor (user unit)\n // (\"50\" is transformed to the \"user space\" but then used in \"pdf space\")\n return 50 / scaleFactor;\n } else {\n return _maxFontSize;\n }\n },\n set: function(value) {\n _maxFontSize = value;\n }\n });\n\n var _color = \"black\";\n /**\n * The color of the text\n *\n * @name AcroFormField#color\n * @default 'black'\n * @type {string|rgba}\n */\n Object.defineProperty(this, \"color\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _color;\n },\n set: function(value) {\n _color = value;\n }\n });\n\n var _DA = \"/F1 0 Tf 0 g\";\n // Defines the default appearance (Needed for variable Text)\n Object.defineProperty(this, \"DA\", {\n enumerable: true,\n configurable: false,\n get: function() {\n if (\n !_DA ||\n this instanceof AcroFormChildClass ||\n this instanceof AcroFormTextField\n ) {\n return undefined;\n }\n return toPdfString(_DA, this.objId, this.scope);\n },\n set: function(value) {\n value = value.toString();\n _DA = value;\n }\n });\n\n var _DV = null;\n Object.defineProperty(this, \"DV\", {\n enumerable: false,\n configurable: false,\n get: function() {\n if (!_DV) {\n return undefined;\n }\n if (this instanceof AcroFormButton === false) {\n return toPdfString(_DV, this.objId, this.scope);\n }\n return _DV;\n },\n set: function(value) {\n value = value.toString();\n if (this instanceof AcroFormButton === false) {\n if (value.substr(0, 1) === \"(\") {\n _DV = pdfUnescape(value.substr(1, value.length - 2));\n } else {\n _DV = pdfUnescape(value);\n }\n } else {\n _DV = value;\n }\n }\n });\n\n /**\n * (Optional; inheritable) The default value to which the field reverts when a reset-form action is executed (see 12.7.5.3, “Reset-Form Actionâ€). The format of this value is the same as that of value.\n *\n * @name AcroFormField#defaultValue\n * @default null\n * @type {any}\n */\n Object.defineProperty(this, \"defaultValue\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (this instanceof AcroFormButton === true) {\n return pdfUnescape(_DV.substr(1, _DV.length - 1));\n } else {\n return _DV;\n }\n },\n set: function(value) {\n value = value.toString();\n if (this instanceof AcroFormButton === true) {\n _DV = \"/\" + value;\n } else {\n _DV = value;\n }\n }\n });\n\n var _V = null;\n Object.defineProperty(this, \"_V\", {\n enumerable: false,\n configurable: false,\n get: function() {\n if (!_V) {\n return undefined;\n }\n return _V;\n },\n set: function(value) {\n this.V = value;\n }\n });\n Object.defineProperty(this, \"V\", {\n enumerable: false,\n configurable: false,\n get: function() {\n if (!_V) {\n return undefined;\n }\n if (this instanceof AcroFormButton === false) {\n return toPdfString(_V, this.objId, this.scope);\n }\n return _V;\n },\n set: function(value) {\n value = value.toString();\n if (this instanceof AcroFormButton === false) {\n if (value.substr(0, 1) === \"(\") {\n _V = pdfUnescape(value.substr(1, value.length - 2));\n } else {\n _V = pdfUnescape(value);\n }\n } else {\n _V = value;\n }\n }\n });\n\n /**\n * (Optional; inheritable) The field’s value, whose format varies depending on the field type. See the descriptions of individual field types for further information.\n *\n * @name AcroFormField#value\n * @default null\n * @type {any}\n */\n Object.defineProperty(this, \"value\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (this instanceof AcroFormButton === true) {\n return pdfUnescape(_V.substr(1, _V.length - 1));\n } else {\n return _V;\n }\n },\n set: function(value) {\n value = value.toString();\n if (this instanceof AcroFormButton === true) {\n _V = \"/\" + value;\n } else {\n _V = value;\n }\n }\n });\n\n /**\n * Check if field has annotations\n *\n * @name AcroFormField#hasAnnotation\n * @readonly\n * @type {boolean}\n */\n Object.defineProperty(this, \"hasAnnotation\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return this.Rect;\n }\n });\n\n Object.defineProperty(this, \"Type\", {\n enumerable: true,\n configurable: false,\n get: function() {\n return this.hasAnnotation ? \"/Annot\" : null;\n }\n });\n\n Object.defineProperty(this, \"Subtype\", {\n enumerable: true,\n configurable: false,\n get: function() {\n return this.hasAnnotation ? \"/Widget\" : null;\n }\n });\n\n var _hasAppearanceStream = false;\n /**\n * true if field has an appearanceStream\n *\n * @name AcroFormField#hasAppearanceStream\n * @readonly\n * @type {boolean}\n */\n Object.defineProperty(this, \"hasAppearanceStream\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _hasAppearanceStream;\n },\n set: function(value) {\n value = Boolean(value);\n _hasAppearanceStream = value;\n }\n });\n\n /**\n * The page on which the AcroFormField is placed\n *\n * @name AcroFormField#page\n * @type {number}\n */\n var _page;\n Object.defineProperty(this, \"page\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (!_page) {\n return undefined;\n }\n return _page;\n },\n set: function(value) {\n _page = value;\n }\n });\n\n /**\n * If set, the user may not change the value of the field. Any associated widget annotations will not interact with the user; that is, they will not respond to mouse clicks or change their appearance in response to mouse motions. This flag is useful for fields whose values are computed or imported from a database.\n *\n * @name AcroFormField#readOnly\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"readOnly\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 1));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 1);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 1);\n }\n }\n });\n\n /**\n * If set, the field shall have a value at the time it is exported by a submitform action (see 12.7.5.2, “Submit-Form Actionâ€).\n *\n * @name AcroFormField#required\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"required\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 2));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 2);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 2);\n }\n }\n });\n\n /**\n * If set, the field shall not be exported by a submit-form action (see 12.7.5.2, “Submit-Form Actionâ€)\n *\n * @name AcroFormField#noExport\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"noExport\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 3));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 3);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 3);\n }\n }\n });\n\n var _Q = null;\n Object.defineProperty(this, \"Q\", {\n enumerable: true,\n configurable: false,\n get: function() {\n if (_Q === null) {\n return undefined;\n }\n return _Q;\n },\n set: function(value) {\n if ([0, 1, 2].indexOf(value) !== -1) {\n _Q = value;\n } else {\n throw new Error(\n 'Invalid value \"' + value + '\" for attribute Q supplied.'\n );\n }\n }\n });\n\n /**\n * (Optional; inheritable) A code specifying the form of quadding (justification) that shall be used in displaying the text:\n * 'left', 'center', 'right'\n *\n * @name AcroFormField#textAlign\n * @default 'left'\n * @type {string}\n */\n Object.defineProperty(this, \"textAlign\", {\n get: function() {\n var result;\n switch (_Q) {\n case 0:\n default:\n result = \"left\";\n break;\n case 1:\n result = \"center\";\n break;\n case 2:\n result = \"right\";\n break;\n }\n return result;\n },\n configurable: true,\n enumerable: true,\n set: function(value) {\n switch (value) {\n case \"right\":\n case 2:\n _Q = 2;\n break;\n case \"center\":\n case 1:\n _Q = 1;\n break;\n case \"left\":\n case 0:\n default:\n _Q = 0;\n }\n }\n });\n};\n\ninherit(AcroFormField, AcroFormPDFObject);\n\n/**\n * @class AcroFormChoiceField\n * @extends AcroFormField\n */\nvar AcroFormChoiceField = function() {\n AcroFormField.call(this);\n // Field Type = Choice Field\n this.FT = \"/Ch\";\n // options\n this.V = \"()\";\n\n this.fontName = \"zapfdingbats\";\n // Top Index\n var _TI = 0;\n\n Object.defineProperty(this, \"TI\", {\n enumerable: true,\n configurable: false,\n get: function() {\n return _TI;\n },\n set: function(value) {\n _TI = value;\n }\n });\n\n /**\n * (Optional) For scrollable list boxes, the top index (the index in the Opt array of the first option visible in the list). Default value: 0.\n *\n * @name AcroFormChoiceField#topIndex\n * @default 0\n * @type {number}\n */\n Object.defineProperty(this, \"topIndex\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _TI;\n },\n set: function(value) {\n _TI = value;\n }\n });\n\n var _Opt = [];\n Object.defineProperty(this, \"Opt\", {\n enumerable: true,\n configurable: false,\n get: function() {\n return arrayToPdfArray(_Opt, this.objId, this.scope);\n },\n set: function(value) {\n _Opt = pdfArrayToStringArray(value);\n }\n });\n\n /**\n * @memberof AcroFormChoiceField\n * @name getOptions\n * @function\n * @instance\n * @returns {array} array of Options\n */\n this.getOptions = function() {\n return _Opt;\n };\n\n /**\n * @memberof AcroFormChoiceField\n * @name setOptions\n * @function\n * @instance\n * @param {array} value\n */\n this.setOptions = function(value) {\n _Opt = value;\n if (this.sort) {\n _Opt.sort();\n }\n };\n\n /**\n * @memberof AcroFormChoiceField\n * @name addOption\n * @function\n * @instance\n * @param {string} value\n */\n this.addOption = function(value) {\n value = value || \"\";\n value = value.toString();\n _Opt.push(value);\n if (this.sort) {\n _Opt.sort();\n }\n };\n\n /**\n * @memberof AcroFormChoiceField\n * @name removeOption\n * @function\n * @instance\n * @param {string} value\n * @param {boolean} allEntries (default: false)\n */\n this.removeOption = function(value, allEntries) {\n allEntries = allEntries || false;\n value = value || \"\";\n value = value.toString();\n\n while (_Opt.indexOf(value) !== -1) {\n _Opt.splice(_Opt.indexOf(value), 1);\n if (allEntries === false) {\n break;\n }\n }\n };\n\n /**\n * If set, the field is a combo box; if clear, the field is a list box.\n *\n * @name AcroFormChoiceField#combo\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"combo\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 18));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 18);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 18);\n }\n }\n });\n\n /**\n * If set, the combo box shall include an editable text box as well as a drop-down list; if clear, it shall include only a drop-down list. This flag shall be used only if the Combo flag is set.\n *\n * @name AcroFormChoiceField#edit\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"edit\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 19));\n },\n set: function(value) {\n //PDF 32000-1:2008, page 444\n if (this.combo === true) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 19);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 19);\n }\n }\n }\n });\n\n /**\n * If set, the field’s option items shall be sorted alphabetically. This flag is intended for use by writers, not by readers. Conforming readers shall display the options in the order in which they occur in the Opt array (see Table 231).\n *\n * @name AcroFormChoiceField#sort\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"sort\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 20));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 20);\n _Opt.sort();\n } else {\n this.Ff = clearBitForPdf(this.Ff, 20);\n }\n }\n });\n\n /**\n * (PDF 1.4) If set, more than one of the field’s option items may be selected simultaneously; if clear, at most one item shall be selected\n *\n * @name AcroFormChoiceField#multiSelect\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"multiSelect\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 22));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 22);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 22);\n }\n }\n });\n\n /**\n * (PDF 1.4) If set, text entered in the field shall not be spellchecked. This flag shall not be used unless the Combo and Edit flags are both set.\n *\n * @name AcroFormChoiceField#doNotSpellCheck\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"doNotSpellCheck\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 23));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 23);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 23);\n }\n }\n });\n\n /**\n * (PDF 1.5) If set, the new value shall be committed as soon as a selection is made (commonly with the pointing device). In this case, supplying a value for a field involves three actions: selecting the field for fill-in, selecting a choice for the fill-in value, and leaving that field, which finalizes or “commits†the data choice and triggers any actions associated with the entry or changing of this data. If this flag is on, then processing does not wait for leaving the field action to occur, but immediately proceeds to the third step.\n * This option enables applications to perform an action once a selection is made, without requiring the user to exit the field. If clear, the new value is not committed until the user exits the field.\n *\n * @name AcroFormChoiceField#commitOnSelChange\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"commitOnSelChange\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 27));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 27);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 27);\n }\n }\n });\n\n this.hasAppearanceStream = false;\n};\ninherit(AcroFormChoiceField, AcroFormField);\n\n/**\n * @class AcroFormListBox\n * @extends AcroFormChoiceField\n * @extends AcroFormField\n */\nvar AcroFormListBox = function() {\n AcroFormChoiceField.call(this);\n this.fontName = \"helvetica\";\n\n //PDF 32000-1:2008, page 444\n this.combo = false;\n};\ninherit(AcroFormListBox, AcroFormChoiceField);\n\n/**\n * @class AcroFormComboBox\n * @extends AcroFormListBox\n * @extends AcroFormChoiceField\n * @extends AcroFormField\n */\nvar AcroFormComboBox = function() {\n AcroFormListBox.call(this);\n this.combo = true;\n};\ninherit(AcroFormComboBox, AcroFormListBox);\n\n/**\n * @class AcroFormEditBox\n * @extends AcroFormComboBox\n * @extends AcroFormListBox\n * @extends AcroFormChoiceField\n * @extends AcroFormField\n */\nvar AcroFormEditBox = function() {\n AcroFormComboBox.call(this);\n this.edit = true;\n};\ninherit(AcroFormEditBox, AcroFormComboBox);\n\n/**\n * @class AcroFormButton\n * @extends AcroFormField\n */\nvar AcroFormButton = function() {\n AcroFormField.call(this);\n this.FT = \"/Btn\";\n\n /**\n * (Radio buttons only) If set, exactly one radio button shall be selected at all times; selecting the currently selected button has no effect. If clear, clicking the selected button deselects it, leaving no button selected.\n *\n * @name AcroFormButton#noToggleToOff\n * @type {boolean}\n */\n Object.defineProperty(this, \"noToggleToOff\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 15));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 15);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 15);\n }\n }\n });\n\n /**\n * If set, the field is a set of radio buttons; if clear, the field is a checkbox. This flag may be set only if the Pushbutton flag is clear.\n *\n * @name AcroFormButton#radio\n * @type {boolean}\n */\n Object.defineProperty(this, \"radio\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 16));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 16);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 16);\n }\n }\n });\n\n /**\n * If set, the field is a pushbutton that does not retain a permanent value.\n *\n * @name AcroFormButton#pushButton\n * @type {boolean}\n */\n Object.defineProperty(this, \"pushButton\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 17));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 17);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 17);\n }\n }\n });\n\n /**\n * (PDF 1.5) If set, a group of radio buttons within a radio button field that use the same value for the on state will turn on and off in unison; that is if one is checked, they are all checked. If clear, the buttons are mutually exclusive (the same behavior as HTML radio buttons).\n *\n * @name AcroFormButton#radioIsUnison\n * @type {boolean}\n */\n Object.defineProperty(this, \"radioIsUnison\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 26));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 26);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 26);\n }\n }\n });\n\n var _MK = {};\n Object.defineProperty(this, \"MK\", {\n enumerable: false,\n configurable: false,\n get: function() {\n var encryptor = function(data) {\n return data;\n };\n if (this.scope) encryptor = this.scope.internal.getEncryptor(this.objId);\n if (Object.keys(_MK).length !== 0) {\n var result = [];\n result.push(\"<<\");\n var key;\n for (key in _MK) {\n result.push(\"/\" + key + \" (\" + pdfEscape(encryptor(_MK[key])) + \")\");\n }\n result.push(\">>\");\n return result.join(\"\\n\");\n }\n return undefined;\n },\n set: function(value) {\n if (typeof value === \"object\") {\n _MK = value;\n }\n }\n });\n\n /**\n * From the PDF reference:\n * (Optional, button fields only) The widget annotation's normal caption which shall be displayed when it is not interacting with the user.\n * Unlike the remaining entries listed in this Table which apply only to widget annotations associated with pushbutton fields (see Pushbuttons in 12.7.4.2, \"Button Fields\"), the CA entry may be used with any type of button field, including check boxes (see Check Boxes in 12.7.4.2, \"Button Fields\") and radio buttons (Radio Buttons in 12.7.4.2, \"Button Fields\").\n *\n * - '8' = Cross,\n * - 'l' = Circle,\n * - '' = nothing\n * @name AcroFormButton#caption\n * @type {string}\n */\n Object.defineProperty(this, \"caption\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _MK.CA || \"\";\n },\n set: function(value) {\n if (typeof value === \"string\") {\n _MK.CA = value;\n }\n }\n });\n\n var _AS;\n Object.defineProperty(this, \"AS\", {\n enumerable: false,\n configurable: false,\n get: function() {\n return _AS;\n },\n set: function(value) {\n _AS = value;\n }\n });\n\n /**\n * (Required if the appearance dictionary AP contains one or more subdictionaries; PDF 1.2) The annotation's appearance state, which selects the applicable appearance stream from an appearance subdictionary (see Section 12.5.5, \"Appearance Streams\")\n *\n * @name AcroFormButton#appearanceState\n * @type {any}\n */\n Object.defineProperty(this, \"appearanceState\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _AS.substr(1, _AS.length - 1);\n },\n set: function(value) {\n _AS = \"/\" + value;\n }\n });\n};\ninherit(AcroFormButton, AcroFormField);\n\n/**\n * @class AcroFormPushButton\n * @extends AcroFormButton\n * @extends AcroFormField\n */\nvar AcroFormPushButton = function() {\n AcroFormButton.call(this);\n this.pushButton = true;\n};\ninherit(AcroFormPushButton, AcroFormButton);\n\n/**\n * @class AcroFormRadioButton\n * @extends AcroFormButton\n * @extends AcroFormField\n */\nvar AcroFormRadioButton = function() {\n AcroFormButton.call(this);\n this.radio = true;\n this.pushButton = false;\n\n var _Kids = [];\n Object.defineProperty(this, \"Kids\", {\n enumerable: true,\n configurable: false,\n get: function() {\n return _Kids;\n },\n set: function(value) {\n if (typeof value !== \"undefined\") {\n _Kids = value;\n } else {\n _Kids = [];\n }\n }\n });\n};\ninherit(AcroFormRadioButton, AcroFormButton);\n\n/**\n * The Child class of a RadioButton (the radioGroup) -> The single Buttons\n *\n * @class AcroFormChildClass\n * @extends AcroFormField\n * @ignore\n */\nvar AcroFormChildClass = function() {\n AcroFormField.call(this);\n\n var _parent;\n Object.defineProperty(this, \"Parent\", {\n enumerable: false,\n configurable: false,\n get: function() {\n return _parent;\n },\n set: function(value) {\n _parent = value;\n }\n });\n\n var _optionName;\n Object.defineProperty(this, \"optionName\", {\n enumerable: false,\n configurable: true,\n get: function() {\n return _optionName;\n },\n set: function(value) {\n _optionName = value;\n }\n });\n\n var _MK = {};\n Object.defineProperty(this, \"MK\", {\n enumerable: false,\n configurable: false,\n get: function() {\n var encryptor = function(data) {\n return data;\n };\n if (this.scope) encryptor = this.scope.internal.getEncryptor(this.objId);\n var result = [];\n result.push(\"<<\");\n var key;\n for (key in _MK) {\n result.push(\"/\" + key + \" (\" + pdfEscape(encryptor(_MK[key])) + \")\");\n }\n result.push(\">>\");\n return result.join(\"\\n\");\n },\n set: function(value) {\n if (typeof value === \"object\") {\n _MK = value;\n }\n }\n });\n\n /**\n * From the PDF reference:\n * (Optional, button fields only) The widget annotation's normal caption which shall be displayed when it is not interacting with the user.\n * Unlike the remaining entries listed in this Table which apply only to widget annotations associated with pushbutton fields (see Pushbuttons in 12.7.4.2, \"Button Fields\"), the CA entry may be used with any type of button field, including check boxes (see Check Boxes in 12.7.4.2, \"Button Fields\") and radio buttons (Radio Buttons in 12.7.4.2, \"Button Fields\").\n *\n * - '8' = Cross,\n * - 'l' = Circle,\n * - '' = nothing\n * @name AcroFormButton#caption\n * @type {string}\n */\n Object.defineProperty(this, \"caption\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _MK.CA || \"\";\n },\n set: function(value) {\n if (typeof value === \"string\") {\n _MK.CA = value;\n }\n }\n });\n\n var _AS;\n Object.defineProperty(this, \"AS\", {\n enumerable: false,\n configurable: false,\n get: function() {\n return _AS;\n },\n set: function(value) {\n _AS = value;\n }\n });\n\n /**\n * (Required if the appearance dictionary AP contains one or more subdictionaries; PDF 1.2) The annotation's appearance state, which selects the applicable appearance stream from an appearance subdictionary (see Section 12.5.5, \"Appearance Streams\")\n *\n * @name AcroFormButton#appearanceState\n * @type {any}\n */\n Object.defineProperty(this, \"appearanceState\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _AS.substr(1, _AS.length - 1);\n },\n set: function(value) {\n _AS = \"/\" + value;\n }\n });\n this.caption = \"l\";\n this.appearanceState = \"Off\";\n // todo: set AppearanceType as variable that can be set from the\n // outside...\n this._AppearanceType = AcroFormAppearance.RadioButton.Circle;\n // The Default appearanceType is the Circle\n this.appearanceStreamContent = this._AppearanceType.createAppearanceStream(\n this.optionName\n );\n};\ninherit(AcroFormChildClass, AcroFormField);\n\nAcroFormRadioButton.prototype.setAppearance = function(appearance) {\n if (!(\"createAppearanceStream\" in appearance && \"getCA\" in appearance)) {\n throw new Error(\n \"Couldn't assign Appearance to RadioButton. Appearance was Invalid!\"\n );\n }\n for (var objId in this.Kids) {\n if (this.Kids.hasOwnProperty(objId)) {\n var child = this.Kids[objId];\n child.appearanceStreamContent = appearance.createAppearanceStream(\n child.optionName\n );\n child.caption = appearance.getCA();\n }\n }\n};\n\nAcroFormRadioButton.prototype.createOption = function(name) {\n // Create new Child for RadioGroup\n var child = new AcroFormChildClass();\n child.Parent = this;\n child.optionName = name;\n // Add to Parent\n this.Kids.push(child);\n\n addField.call(this.scope, child);\n\n return child;\n};\n\n/**\n * @class AcroFormCheckBox\n * @extends AcroFormButton\n * @extends AcroFormField\n */\nvar AcroFormCheckBox = function() {\n AcroFormButton.call(this);\n\n this.fontName = \"zapfdingbats\";\n this.caption = \"3\";\n this.appearanceState = \"On\";\n this.value = \"On\";\n this.textAlign = \"center\";\n this.appearanceStreamContent = AcroFormAppearance.CheckBox.createAppearanceStream();\n};\ninherit(AcroFormCheckBox, AcroFormButton);\n\n/**\n * @class AcroFormTextField\n * @extends AcroFormField\n */\nvar AcroFormTextField = function() {\n AcroFormField.call(this);\n this.FT = \"/Tx\";\n\n /**\n * If set, the field may contain multiple lines of text; if clear, the field’s text shall be restricted to a single line.\n *\n * @name AcroFormTextField#multiline\n * @type {boolean}\n */\n Object.defineProperty(this, \"multiline\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 13));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 13);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 13);\n }\n }\n });\n\n /**\n * (PDF 1.4) If set, the text entered in the field represents the pathname of a file whose contents shall be submitted as the value of the field.\n *\n * @name AcroFormTextField#fileSelect\n * @type {boolean}\n */\n Object.defineProperty(this, \"fileSelect\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 21));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 21);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 21);\n }\n }\n });\n\n /**\n * (PDF 1.4) If set, text entered in the field shall not be spell-checked.\n *\n * @name AcroFormTextField#doNotSpellCheck\n * @type {boolean}\n */\n Object.defineProperty(this, \"doNotSpellCheck\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 23));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 23);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 23);\n }\n }\n });\n\n /**\n * (PDF 1.4) If set, the field shall not scroll (horizontally for single-line fields, vertically for multiple-line fields) to accommodate more text than fits within its annotation rectangle. Once the field is full, no further text shall be accepted for interactive form filling; for noninteractive form filling, the filler should take care not to add more character than will visibly fit in the defined area.\n *\n * @name AcroFormTextField#doNotScroll\n * @type {boolean}\n */\n Object.defineProperty(this, \"doNotScroll\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 24));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 24);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 24);\n }\n }\n });\n\n /**\n * (PDF 1.5) May be set only if the MaxLen entry is present in the text field dictionary (see Table 229) and if the Multiline, Password, and FileSelect flags are clear. If set, the field shall be automatically divided into as many equally spaced positions, or combs, as the value of MaxLen, and the text is laid out into those combs.\n *\n * @name AcroFormTextField#comb\n * @type {boolean}\n */\n Object.defineProperty(this, \"comb\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 25));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 25);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 25);\n }\n }\n });\n\n /**\n * (PDF 1.5) If set, the value of this field shall be a rich text string (see 12.7.3.4, “Rich Text Stringsâ€). If the field has a value, the RV entry of the field dictionary (Table 222) shall specify the rich text string.\n *\n * @name AcroFormTextField#richText\n * @type {boolean}\n */\n Object.defineProperty(this, \"richText\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 26));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 26);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 26);\n }\n }\n });\n\n var _MaxLen = null;\n Object.defineProperty(this, \"MaxLen\", {\n enumerable: true,\n configurable: false,\n get: function() {\n return _MaxLen;\n },\n set: function(value) {\n _MaxLen = value;\n }\n });\n\n /**\n * (Optional; inheritable) The maximum length of the field’s text, in characters.\n *\n * @name AcroFormTextField#maxLength\n * @type {number}\n */\n Object.defineProperty(this, \"maxLength\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _MaxLen;\n },\n set: function(value) {\n if (Number.isInteger(value)) {\n _MaxLen = value;\n }\n }\n });\n\n Object.defineProperty(this, \"hasAppearanceStream\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return this.V || this.DV;\n }\n });\n};\ninherit(AcroFormTextField, AcroFormField);\n\n/**\n * @class AcroFormPasswordField\n * @extends AcroFormTextField\n * @extends AcroFormField\n */\nvar AcroFormPasswordField = function() {\n AcroFormTextField.call(this);\n\n /**\n * If set, the field is intended for entering a secure password that should not be echoed visibly to the screen. Characters typed from the keyboard shall instead be echoed in some unreadable form, such as asterisks or bullet characters.\n * NOTE To protect password confidentiality, readers should never store the value of the text field in the PDF file if this flag is set.\n *\n * @name AcroFormTextField#password\n * @type {boolean}\n */\n Object.defineProperty(this, \"password\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 14));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 14);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 14);\n }\n }\n });\n this.password = true;\n};\ninherit(AcroFormPasswordField, AcroFormTextField);\n\n// Contains Methods for creating standard appearances\nvar AcroFormAppearance = {\n CheckBox: {\n createAppearanceStream: function() {\n var appearance = {\n N: {\n On: AcroFormAppearance.CheckBox.YesNormal\n },\n D: {\n On: AcroFormAppearance.CheckBox.YesPushDown,\n Off: AcroFormAppearance.CheckBox.OffPushDown\n }\n };\n\n return appearance;\n },\n /**\n * Returns the standard On Appearance for a CheckBox\n *\n * @returns {AcroFormXObject}\n */\n YesPushDown: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var stream = [];\n var fontKey = formObject.scope.internal.getFont(\n formObject.fontName,\n formObject.fontStyle\n ).id;\n var encodedColor = formObject.scope.__private__.encodeColorString(\n formObject.color\n );\n var calcRes = calculateX(formObject, formObject.caption);\n stream.push(\"0.749023 g\");\n stream.push(\n \"0 0 \" +\n f2(AcroFormAppearance.internal.getWidth(formObject)) +\n \" \" +\n f2(AcroFormAppearance.internal.getHeight(formObject)) +\n \" re\"\n );\n stream.push(\"f\");\n stream.push(\"BMC\");\n stream.push(\"q\");\n stream.push(\"0 0 1 rg\");\n stream.push(\n \"/\" + fontKey + \" \" + f2(calcRes.fontSize) + \" Tf \" + encodedColor\n );\n stream.push(\"BT\");\n stream.push(calcRes.text);\n stream.push(\"ET\");\n stream.push(\"Q\");\n stream.push(\"EMC\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n },\n\n YesNormal: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var fontKey = formObject.scope.internal.getFont(\n formObject.fontName,\n formObject.fontStyle\n ).id;\n var encodedColor = formObject.scope.__private__.encodeColorString(\n formObject.color\n );\n var stream = [];\n var height = AcroFormAppearance.internal.getHeight(formObject);\n var width = AcroFormAppearance.internal.getWidth(formObject);\n var calcRes = calculateX(formObject, formObject.caption);\n stream.push(\"1 g\");\n stream.push(\"0 0 \" + f2(width) + \" \" + f2(height) + \" re\");\n stream.push(\"f\");\n stream.push(\"q\");\n stream.push(\"0 0 1 rg\");\n stream.push(\"0 0 \" + f2(width - 1) + \" \" + f2(height - 1) + \" re\");\n stream.push(\"W\");\n stream.push(\"n\");\n stream.push(\"0 g\");\n stream.push(\"BT\");\n stream.push(\n \"/\" + fontKey + \" \" + f2(calcRes.fontSize) + \" Tf \" + encodedColor\n );\n stream.push(calcRes.text);\n stream.push(\"ET\");\n stream.push(\"Q\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n },\n\n /**\n * Returns the standard Off Appearance for a CheckBox\n *\n * @returns {AcroFormXObject}\n */\n OffPushDown: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var stream = [];\n stream.push(\"0.749023 g\");\n stream.push(\n \"0 0 \" +\n f2(AcroFormAppearance.internal.getWidth(formObject)) +\n \" \" +\n f2(AcroFormAppearance.internal.getHeight(formObject)) +\n \" re\"\n );\n stream.push(\"f\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n }\n },\n\n RadioButton: {\n Circle: {\n createAppearanceStream: function(name) {\n var appearanceStreamContent = {\n D: {\n Off: AcroFormAppearance.RadioButton.Circle.OffPushDown\n },\n N: {}\n };\n appearanceStreamContent.N[name] =\n AcroFormAppearance.RadioButton.Circle.YesNormal;\n appearanceStreamContent.D[name] =\n AcroFormAppearance.RadioButton.Circle.YesPushDown;\n return appearanceStreamContent;\n },\n getCA: function() {\n return \"l\";\n },\n\n YesNormal: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var stream = [];\n // Make the Radius of the Circle relative to min(height, width) of formObject\n var DotRadius =\n AcroFormAppearance.internal.getWidth(formObject) <=\n AcroFormAppearance.internal.getHeight(formObject)\n ? AcroFormAppearance.internal.getWidth(formObject) / 4\n : AcroFormAppearance.internal.getHeight(formObject) / 4;\n // The Borderpadding...\n DotRadius = Number((DotRadius * 0.9).toFixed(5));\n var c = AcroFormAppearance.internal.Bezier_C;\n var DotRadiusBezier = Number((DotRadius * c).toFixed(5));\n /*\n * The Following is a Circle created with Bezier-Curves.\n */\n stream.push(\"q\");\n stream.push(\n \"1 0 0 1 \" +\n f5(AcroFormAppearance.internal.getWidth(formObject) / 2) +\n \" \" +\n f5(AcroFormAppearance.internal.getHeight(formObject) / 2) +\n \" cm\"\n );\n stream.push(DotRadius + \" 0 m\");\n stream.push(\n DotRadius +\n \" \" +\n DotRadiusBezier +\n \" \" +\n DotRadiusBezier +\n \" \" +\n DotRadius +\n \" 0 \" +\n DotRadius +\n \" c\"\n );\n stream.push(\n \"-\" +\n DotRadiusBezier +\n \" \" +\n DotRadius +\n \" -\" +\n DotRadius +\n \" \" +\n DotRadiusBezier +\n \" -\" +\n DotRadius +\n \" 0 c\"\n );\n stream.push(\n \"-\" +\n DotRadius +\n \" -\" +\n DotRadiusBezier +\n \" -\" +\n DotRadiusBezier +\n \" -\" +\n DotRadius +\n \" 0 -\" +\n DotRadius +\n \" c\"\n );\n stream.push(\n DotRadiusBezier +\n \" -\" +\n DotRadius +\n \" \" +\n DotRadius +\n \" -\" +\n DotRadiusBezier +\n \" \" +\n DotRadius +\n \" 0 c\"\n );\n stream.push(\"f\");\n stream.push(\"Q\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n },\n YesPushDown: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var stream = [];\n var DotRadius =\n AcroFormAppearance.internal.getWidth(formObject) <=\n AcroFormAppearance.internal.getHeight(formObject)\n ? AcroFormAppearance.internal.getWidth(formObject) / 4\n : AcroFormAppearance.internal.getHeight(formObject) / 4;\n // The Borderpadding...\n DotRadius = Number((DotRadius * 0.9).toFixed(5));\n // Save results for later use; no need to waste\n // processor ticks on doing math\n var k = Number((DotRadius * 2).toFixed(5));\n var kc = Number((k * AcroFormAppearance.internal.Bezier_C).toFixed(5));\n var dc = Number(\n (DotRadius * AcroFormAppearance.internal.Bezier_C).toFixed(5)\n );\n\n stream.push(\"0.749023 g\");\n stream.push(\"q\");\n stream.push(\n \"1 0 0 1 \" +\n f5(AcroFormAppearance.internal.getWidth(formObject) / 2) +\n \" \" +\n f5(AcroFormAppearance.internal.getHeight(formObject) / 2) +\n \" cm\"\n );\n stream.push(k + \" 0 m\");\n stream.push(k + \" \" + kc + \" \" + kc + \" \" + k + \" 0 \" + k + \" c\");\n stream.push(\n \"-\" + kc + \" \" + k + \" -\" + k + \" \" + kc + \" -\" + k + \" 0 c\"\n );\n stream.push(\n \"-\" + k + \" -\" + kc + \" -\" + kc + \" -\" + k + \" 0 -\" + k + \" c\"\n );\n stream.push(kc + \" -\" + k + \" \" + k + \" -\" + kc + \" \" + k + \" 0 c\");\n stream.push(\"f\");\n stream.push(\"Q\");\n stream.push(\"0 g\");\n stream.push(\"q\");\n stream.push(\n \"1 0 0 1 \" +\n f5(AcroFormAppearance.internal.getWidth(formObject) / 2) +\n \" \" +\n f5(AcroFormAppearance.internal.getHeight(formObject) / 2) +\n \" cm\"\n );\n stream.push(DotRadius + \" 0 m\");\n stream.push(\n \"\" +\n DotRadius +\n \" \" +\n dc +\n \" \" +\n dc +\n \" \" +\n DotRadius +\n \" 0 \" +\n DotRadius +\n \" c\"\n );\n stream.push(\n \"-\" +\n dc +\n \" \" +\n DotRadius +\n \" -\" +\n DotRadius +\n \" \" +\n dc +\n \" -\" +\n DotRadius +\n \" 0 c\"\n );\n stream.push(\n \"-\" +\n DotRadius +\n \" -\" +\n dc +\n \" -\" +\n dc +\n \" -\" +\n DotRadius +\n \" 0 -\" +\n DotRadius +\n \" c\"\n );\n stream.push(\n dc +\n \" -\" +\n DotRadius +\n \" \" +\n DotRadius +\n \" -\" +\n dc +\n \" \" +\n DotRadius +\n \" 0 c\"\n );\n stream.push(\"f\");\n stream.push(\"Q\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n },\n OffPushDown: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var stream = [];\n var DotRadius =\n AcroFormAppearance.internal.getWidth(formObject) <=\n AcroFormAppearance.internal.getHeight(formObject)\n ? AcroFormAppearance.internal.getWidth(formObject) / 4\n : AcroFormAppearance.internal.getHeight(formObject) / 4;\n // The Borderpadding...\n DotRadius = Number((DotRadius * 0.9).toFixed(5));\n // Save results for later use; no need to waste\n // processor ticks on doing math\n var k = Number((DotRadius * 2).toFixed(5));\n var kc = Number((k * AcroFormAppearance.internal.Bezier_C).toFixed(5));\n\n stream.push(\"0.749023 g\");\n stream.push(\"q\");\n stream.push(\n \"1 0 0 1 \" +\n f5(AcroFormAppearance.internal.getWidth(formObject) / 2) +\n \" \" +\n f5(AcroFormAppearance.internal.getHeight(formObject) / 2) +\n \" cm\"\n );\n stream.push(k + \" 0 m\");\n stream.push(k + \" \" + kc + \" \" + kc + \" \" + k + \" 0 \" + k + \" c\");\n stream.push(\n \"-\" + kc + \" \" + k + \" -\" + k + \" \" + kc + \" -\" + k + \" 0 c\"\n );\n stream.push(\n \"-\" + k + \" -\" + kc + \" -\" + kc + \" -\" + k + \" 0 -\" + k + \" c\"\n );\n stream.push(kc + \" -\" + k + \" \" + k + \" -\" + kc + \" \" + k + \" 0 c\");\n stream.push(\"f\");\n stream.push(\"Q\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n }\n },\n\n Cross: {\n /**\n * Creates the Actual AppearanceDictionary-References\n *\n * @param {string} name\n * @returns {Object}\n * @ignore\n */\n createAppearanceStream: function(name) {\n var appearanceStreamContent = {\n D: {\n Off: AcroFormAppearance.RadioButton.Cross.OffPushDown\n },\n N: {}\n };\n appearanceStreamContent.N[name] =\n AcroFormAppearance.RadioButton.Cross.YesNormal;\n appearanceStreamContent.D[name] =\n AcroFormAppearance.RadioButton.Cross.YesPushDown;\n return appearanceStreamContent;\n },\n getCA: function() {\n return \"8\";\n },\n\n YesNormal: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var stream = [];\n var cross = AcroFormAppearance.internal.calculateCross(formObject);\n stream.push(\"q\");\n stream.push(\n \"1 1 \" +\n f2(AcroFormAppearance.internal.getWidth(formObject) - 2) +\n \" \" +\n f2(AcroFormAppearance.internal.getHeight(formObject) - 2) +\n \" re\"\n );\n stream.push(\"W\");\n stream.push(\"n\");\n stream.push(f2(cross.x1.x) + \" \" + f2(cross.x1.y) + \" m\");\n stream.push(f2(cross.x2.x) + \" \" + f2(cross.x2.y) + \" l\");\n stream.push(f2(cross.x4.x) + \" \" + f2(cross.x4.y) + \" m\");\n stream.push(f2(cross.x3.x) + \" \" + f2(cross.x3.y) + \" l\");\n stream.push(\"s\");\n stream.push(\"Q\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n },\n YesPushDown: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var cross = AcroFormAppearance.internal.calculateCross(formObject);\n var stream = [];\n stream.push(\"0.749023 g\");\n stream.push(\n \"0 0 \" +\n f2(AcroFormAppearance.internal.getWidth(formObject)) +\n \" \" +\n f2(AcroFormAppearance.internal.getHeight(formObject)) +\n \" re\"\n );\n stream.push(\"f\");\n stream.push(\"q\");\n stream.push(\n \"1 1 \" +\n f2(AcroFormAppearance.internal.getWidth(formObject) - 2) +\n \" \" +\n f2(AcroFormAppearance.internal.getHeight(formObject) - 2) +\n \" re\"\n );\n stream.push(\"W\");\n stream.push(\"n\");\n stream.push(f2(cross.x1.x) + \" \" + f2(cross.x1.y) + \" m\");\n stream.push(f2(cross.x2.x) + \" \" + f2(cross.x2.y) + \" l\");\n stream.push(f2(cross.x4.x) + \" \" + f2(cross.x4.y) + \" m\");\n stream.push(f2(cross.x3.x) + \" \" + f2(cross.x3.y) + \" l\");\n stream.push(\"s\");\n stream.push(\"Q\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n },\n OffPushDown: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var stream = [];\n stream.push(\"0.749023 g\");\n stream.push(\n \"0 0 \" +\n f2(AcroFormAppearance.internal.getWidth(formObject)) +\n \" \" +\n f2(AcroFormAppearance.internal.getHeight(formObject)) +\n \" re\"\n );\n stream.push(\"f\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n }\n }\n },\n\n /**\n * Returns the standard Appearance\n *\n * @returns {AcroFormXObject}\n */\n createDefaultAppearanceStream: function(formObject) {\n // Set Helvetica to Standard Font (size: auto)\n // Color: Black\n var fontKey = formObject.scope.internal.getFont(\n formObject.fontName,\n formObject.fontStyle\n ).id;\n var encodedColor = formObject.scope.__private__.encodeColorString(\n formObject.color\n );\n var fontSize = formObject.fontSize;\n var result = \"/\" + fontKey + \" \" + fontSize + \" Tf \" + encodedColor;\n return result;\n }\n};\n\nAcroFormAppearance.internal = {\n Bezier_C: 0.551915024494,\n\n calculateCross: function(formObject) {\n var width = AcroFormAppearance.internal.getWidth(formObject);\n var height = AcroFormAppearance.internal.getHeight(formObject);\n var a = Math.min(width, height);\n\n var cross = {\n x1: {\n // upperLeft\n x: (width - a) / 2,\n y: (height - a) / 2 + a // height - borderPadding\n },\n x2: {\n // lowerRight\n x: (width - a) / 2 + a,\n y: (height - a) / 2 // borderPadding\n },\n x3: {\n // lowerLeft\n x: (width - a) / 2,\n y: (height - a) / 2 // borderPadding\n },\n x4: {\n // upperRight\n x: (width - a) / 2 + a,\n y: (height - a) / 2 + a // height - borderPadding\n }\n };\n\n return cross;\n }\n};\nAcroFormAppearance.internal.getWidth = function(formObject) {\n var result = 0;\n if (typeof formObject === \"object\") {\n result = scale(formObject.Rect[2]);\n }\n return result;\n};\nAcroFormAppearance.internal.getHeight = function(formObject) {\n var result = 0;\n if (typeof formObject === \"object\") {\n result = scale(formObject.Rect[3]);\n }\n return result;\n};\n\n// Public:\n\n/**\n * Add an AcroForm-Field to the jsPDF-instance\n *\n * @name addField\n * @function\n * @instance\n * @param {Object} fieldObject\n * @returns {jsPDF}\n */\nvar addField = (jsPDFAPI.addField = function(fieldObject) {\n initializeAcroForm(this, fieldObject);\n\n if (fieldObject instanceof AcroFormField) {\n putForm(fieldObject);\n } else {\n throw new Error(\"Invalid argument passed to jsPDF.addField.\");\n }\n fieldObject.page = fieldObject.scope.internal.getCurrentPageInfo().pageNumber;\n return this;\n});\n\njsPDFAPI.AcroFormChoiceField = AcroFormChoiceField;\njsPDFAPI.AcroFormListBox = AcroFormListBox;\njsPDFAPI.AcroFormComboBox = AcroFormComboBox;\njsPDFAPI.AcroFormEditBox = AcroFormEditBox;\njsPDFAPI.AcroFormButton = AcroFormButton;\njsPDFAPI.AcroFormPushButton = AcroFormPushButton;\njsPDFAPI.AcroFormRadioButton = AcroFormRadioButton;\njsPDFAPI.AcroFormCheckBox = AcroFormCheckBox;\njsPDFAPI.AcroFormTextField = AcroFormTextField;\njsPDFAPI.AcroFormPasswordField = AcroFormPasswordField;\njsPDFAPI.AcroFormAppearance = AcroFormAppearance;\n\njsPDFAPI.AcroForm = {\n ChoiceField: AcroFormChoiceField,\n ListBox: AcroFormListBox,\n ComboBox: AcroFormComboBox,\n EditBox: AcroFormEditBox,\n Button: AcroFormButton,\n PushButton: AcroFormPushButton,\n RadioButton: AcroFormRadioButton,\n CheckBox: AcroFormCheckBox,\n TextField: AcroFormTextField,\n PasswordField: AcroFormPasswordField,\n Appearance: AcroFormAppearance\n};\n\njsPDF.AcroForm = {\n ChoiceField: AcroFormChoiceField,\n ListBox: AcroFormListBox,\n ComboBox: AcroFormComboBox,\n EditBox: AcroFormEditBox,\n Button: AcroFormButton,\n PushButton: AcroFormPushButton,\n RadioButton: AcroFormRadioButton,\n CheckBox: AcroFormCheckBox,\n TextField: AcroFormTextField,\n PasswordField: AcroFormPasswordField,\n Appearance: AcroFormAppearance\n};\n\nvar AcroForm = jsPDF.AcroForm;\n\nexport {\n AcroForm,\n AcroFormChoiceField,\n AcroFormListBox,\n AcroFormComboBox,\n AcroFormEditBox,\n AcroFormButton,\n AcroFormPushButton,\n AcroFormRadioButton,\n AcroFormCheckBox,\n AcroFormTextField,\n AcroFormPasswordField,\n AcroFormAppearance\n};\n","function toLookup(arr) {\n return arr.reduce(function(lookup, name, index) {\n lookup[name] = index;\n\n return lookup;\n }, {});\n}\n\nvar fontStyleOrder = {\n italic: [\"italic\", \"oblique\", \"normal\"],\n oblique: [\"oblique\", \"italic\", \"normal\"],\n normal: [\"normal\", \"oblique\", \"italic\"]\n};\n\nvar fontStretchOrder = [\n \"ultra-condensed\",\n \"extra-condensed\",\n \"condensed\",\n \"semi-condensed\",\n \"normal\",\n \"semi-expanded\",\n \"expanded\",\n \"extra-expanded\",\n \"ultra-expanded\"\n];\n\n// For a given font-stretch value, we need to know where to start our search\n// from in the fontStretchOrder list.\nvar fontStretchLookup = toLookup(fontStretchOrder);\n\nvar fontWeights = [100, 200, 300, 400, 500, 600, 700, 800, 900];\nvar fontWeightsLookup = toLookup(fontWeights);\n\nfunction normalizeFontStretch(stretch) {\n stretch = stretch || \"normal\";\n\n return typeof fontStretchLookup[stretch] === \"number\" ? stretch : \"normal\";\n}\n\nfunction normalizeFontStyle(style) {\n style = style || \"normal\";\n\n return fontStyleOrder[style] ? style : \"normal\";\n}\n\nfunction normalizeFontWeight(weight) {\n if (!weight) {\n return 400;\n }\n\n if (typeof weight === \"number\") {\n // Ignore values which aren't valid font-weights.\n return weight >= 100 && weight <= 900 && weight % 100 === 0 ? weight : 400;\n }\n\n if (/^\\d00$/.test(weight)) {\n return parseInt(weight);\n }\n\n switch (weight) {\n case \"bold\":\n return 700;\n\n case \"normal\":\n default:\n return 400;\n }\n}\n\nexport function normalizeFontFace(fontFace) {\n var family = fontFace.family.replace(/\"|'/g, \"\").toLowerCase();\n\n var style = normalizeFontStyle(fontFace.style);\n var weight = normalizeFontWeight(fontFace.weight);\n var stretch = normalizeFontStretch(fontFace.stretch);\n\n return {\n family: family,\n style: style,\n weight: weight,\n stretch: stretch,\n src: fontFace.src || [],\n\n // The ref property maps this font-face to the font\n // added by the .addFont() method.\n ref: fontFace.ref || {\n name: family,\n style: [stretch, style, weight].join(\" \")\n }\n };\n}\n\n/**\n * Turns a list of font-faces into a map, for easier lookup when resolving\n * fonts.\n * @private\n */\nexport function buildFontFaceMap(fontFaces) {\n var map = {};\n\n for (var i = 0; i < fontFaces.length; ++i) {\n var normalized = normalizeFontFace(fontFaces[i]);\n\n var name = normalized.family;\n var stretch = normalized.stretch;\n var style = normalized.style;\n var weight = normalized.weight;\n\n map[name] = map[name] || {};\n\n map[name][stretch] = map[name][stretch] || {};\n map[name][stretch][style] = map[name][stretch][style] || {};\n map[name][stretch][style][weight] = normalized;\n }\n\n return map;\n}\n\n/**\n * Searches a map of stretches, weights, etc. in the given direction and\n * then, if no match has been found, in the opposite directions.\n *\n * @param {Object.<string, any>} matchingSet A map of the various font variations.\n * @param {any[]} order The order of the different variations\n * @param {number} pivot The starting point of the search in the order list.\n * @param {number} dir The initial direction of the search (desc = -1, asc = 1)\n * @private\n */\n\nfunction searchFromPivot(matchingSet, order, pivot, dir) {\n var i;\n\n for (i = pivot; i >= 0 && i < order.length; i += dir) {\n if (matchingSet[order[i]]) {\n return matchingSet[order[i]];\n }\n }\n\n for (i = pivot; i >= 0 && i < order.length; i -= dir) {\n if (matchingSet[order[i]]) {\n return matchingSet[order[i]];\n }\n }\n}\n\nfunction resolveFontStretch(stretch, matchingSet) {\n if (matchingSet[stretch]) {\n return matchingSet[stretch];\n }\n\n var pivot = fontStretchLookup[stretch];\n\n // If the font-stretch value is normal or more condensed, we want to\n // start with a descending search, otherwise we should do ascending.\n var dir = pivot <= fontStretchLookup[\"normal\"] ? -1 : 1;\n var match = searchFromPivot(matchingSet, fontStretchOrder, pivot, dir);\n\n if (!match) {\n // Since a font-family cannot exist without having at least one stretch value\n // we should never reach this point.\n throw new Error(\n \"Could not find a matching font-stretch value for \" + stretch\n );\n }\n\n return match;\n}\n\nfunction resolveFontStyle(fontStyle, matchingSet) {\n if (matchingSet[fontStyle]) {\n return matchingSet[fontStyle];\n }\n\n var ordering = fontStyleOrder[fontStyle];\n\n for (var i = 0; i < ordering.length; ++i) {\n if (matchingSet[ordering[i]]) {\n return matchingSet[ordering[i]];\n }\n }\n\n // Since a font-family cannot exist without having at least one style value\n // we should never reach this point.\n throw new Error(\"Could not find a matching font-style for \" + fontStyle);\n}\n\nfunction resolveFontWeight(weight, matchingSet) {\n if (matchingSet[weight]) {\n return matchingSet[weight];\n }\n\n if (weight === 400 && matchingSet[500]) {\n return matchingSet[500];\n }\n\n if (weight === 500 && matchingSet[400]) {\n return matchingSet[400];\n }\n\n var pivot = fontWeightsLookup[weight];\n\n // If the font-stretch value is normal or more condensed, we want to\n // start with a descending search, otherwise we should do ascending.\n var dir = weight < 400 ? -1 : 1;\n var match = searchFromPivot(matchingSet, fontWeights, pivot, dir);\n\n if (!match) {\n // Since a font-family cannot exist without having at least one stretch value\n // we should never reach this point.\n throw new Error(\n \"Could not find a matching font-weight for value \" + weight\n );\n }\n\n return match;\n}\n\nvar defaultGenericFontFamilies = {\n \"sans-serif\": \"helvetica\",\n fixed: \"courier\",\n monospace: \"courier\",\n terminal: \"courier\",\n cursive: \"times\",\n fantasy: \"times\",\n serif: \"times\"\n};\n\nvar systemFonts = {\n caption: \"times\",\n icon: \"times\",\n menu: \"times\",\n \"message-box\": \"times\",\n \"small-caption\": \"times\",\n \"status-bar\": \"times\"\n};\n\nfunction ruleToString(rule) {\n return [rule.stretch, rule.style, rule.weight, rule.family].join(\" \");\n}\n\nexport function resolveFontFace(fontFaceMap, rules, opts) {\n opts = opts || {};\n\n var defaultFontFamily = opts.defaultFontFamily || \"times\";\n var genericFontFamilies = Object.assign(\n {},\n defaultGenericFontFamilies,\n opts.genericFontFamilies || {}\n );\n\n var rule = null;\n var matches = null;\n\n for (var i = 0; i < rules.length; ++i) {\n rule = normalizeFontFace(rules[i]);\n\n if (genericFontFamilies[rule.family]) {\n rule.family = genericFontFamilies[rule.family];\n }\n\n if (fontFaceMap.hasOwnProperty(rule.family)) {\n matches = fontFaceMap[rule.family];\n\n break;\n }\n }\n\n // Always fallback to a known font family.\n matches = matches || fontFaceMap[defaultFontFamily];\n\n if (!matches) {\n // At this point we should definitiely have a font family, but if we\n // don't there is something wrong with our configuration\n throw new Error(\n \"Could not find a font-family for the rule '\" +\n ruleToString(rule) +\n \"' and default family '\" +\n defaultFontFamily +\n \"'.\"\n );\n }\n\n matches = resolveFontStretch(rule.stretch, matches);\n matches = resolveFontStyle(rule.style, matches);\n matches = resolveFontWeight(rule.weight, matches);\n\n if (!matches) {\n // We should've fount\n throw new Error(\n \"Failed to resolve a font for the rule '\" + ruleToString(rule) + \"'.\"\n );\n }\n\n return matches;\n}\n\n/**\n * Builds a style id for use with the addFont() method.\n * @param {FontFace} font\n * @private\n */\nexport function toStyleName(font) {\n return [font.weight, font.style, font.stretch].join(\" \");\n}\n\nfunction eatWhiteSpace(input) {\n return input.trimLeft();\n}\n\nfunction parseQuotedFontFamily(input, quote) {\n var index = 0;\n\n while (index < input.length) {\n var current = input.charAt(index);\n\n if (current === quote) {\n return [input.substring(0, index), input.substring(index + 1)];\n }\n\n index += 1;\n }\n\n // Unexpected end of input\n return null;\n}\n\nfunction parseNonQuotedFontFamily(input) {\n // It implements part of the identifier parser here: https://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\n //\n // NOTE: This parser pretty much ignores escaped identifiers and that there is a thing called unicode.\n //\n // Breakdown of regexp:\n // -[a-z_] - when identifier starts with a hyphen, you're not allowed to have another hyphen or a digit\n // [a-z_] - allow a-z and underscore at beginning of input\n // [a-z0-9_-]* - after that, anything goes\n var match = input.match(/^(-[a-z_]|[a-z_])[a-z0-9_-]*/i);\n\n // non quoted value contains illegal characters\n if (match === null) {\n return null;\n }\n\n return [match[0], input.substring(match[0].length)];\n}\n\nvar defaultFont = [\"times\"];\n\nexport function parseFontFamily(input) {\n var result = [];\n var ch, parsed;\n var remaining = input.trim();\n\n if (remaining === \"\") {\n return defaultFont;\n }\n\n if (remaining in systemFonts) {\n return [systemFonts[remaining]];\n }\n\n while (remaining !== \"\") {\n parsed = null;\n remaining = eatWhiteSpace(remaining);\n ch = remaining.charAt(0);\n\n switch (ch) {\n case '\"':\n case \"'\":\n parsed = parseQuotedFontFamily(remaining.substring(1), ch);\n break;\n\n default:\n parsed = parseNonQuotedFontFamily(remaining);\n break;\n }\n\n if (parsed === null) {\n return defaultFont;\n }\n\n result.push(parsed[0]);\n\n remaining = eatWhiteSpace(parsed[1]);\n\n // We expect end of input or a comma separator here\n if (remaining !== \"\" && remaining.charAt(0) !== \",\") {\n return defaultFont;\n }\n\n remaining = remaining.replace(/^,/, \"\");\n }\n\n return result;\n}\n","/** @license\n * jsPDF addImage plugin\n * Copyright (c) 2012 Jason Siefken, https://github.com/siefkenj/\n * 2013 Chris Dowling, https://github.com/gingerchris\n * 2013 Trinh Ho, https://github.com/ineedfat\n * 2013 Edwin Alejandro Perez, https://github.com/eaparango\n * 2013 Norah Smith, https://github.com/burnburnrocket\n * 2014 Diego Casorran, https://github.com/diegocr\n * 2014 James Robb, https://github.com/jamesbrobb\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n/**\n * @name addImage\n * @module\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { atob, btoa } from \"../libs/AtobBtoa.js\";\n\n(function(jsPDFAPI) {\n \"use strict\";\n\n var namespace = \"addImage_\";\n jsPDFAPI.__addimage__ = {};\n\n var UNKNOWN = \"UNKNOWN\";\n\n // Heuristic selection of a good batch for large array .apply. Not limiting make the call overflow.\n // With too small batch iteration will be slow as more calls are made,\n // higher values cause larger and slower garbage collection.\n var ARRAY_APPLY_BATCH = 8192;\n\n var imageFileTypeHeaders = {\n PNG: [[0x89, 0x50, 0x4e, 0x47]],\n TIFF: [\n [0x4d, 0x4d, 0x00, 0x2a], //Motorola\n [0x49, 0x49, 0x2a, 0x00] //Intel\n ],\n JPEG: [\n [\n 0xff,\n 0xd8,\n 0xff,\n 0xe0,\n undefined,\n undefined,\n 0x4a,\n 0x46,\n 0x49,\n 0x46,\n 0x00\n ], //JFIF\n [\n 0xff,\n 0xd8,\n 0xff,\n 0xe1,\n undefined,\n undefined,\n 0x45,\n 0x78,\n 0x69,\n 0x66,\n 0x00,\n 0x00\n ], //Exif\n [0xff, 0xd8, 0xff, 0xdb], //JPEG RAW\n [0xff, 0xd8, 0xff, 0xee] //EXIF RAW\n ],\n JPEG2000: [[0x00, 0x00, 0x00, 0x0c, 0x6a, 0x50, 0x20, 0x20]],\n GIF87a: [[0x47, 0x49, 0x46, 0x38, 0x37, 0x61]],\n GIF89a: [[0x47, 0x49, 0x46, 0x38, 0x39, 0x61]],\n WEBP: [\n [\n 0x52,\n 0x49,\n 0x46,\n 0x46,\n undefined,\n undefined,\n undefined,\n undefined,\n 0x57,\n 0x45,\n 0x42,\n 0x50\n ]\n ],\n BMP: [\n [0x42, 0x4d], //BM - Windows 3.1x, 95, NT, ... etc.\n [0x42, 0x41], //BA - OS/2 struct bitmap array\n [0x43, 0x49], //CI - OS/2 struct color icon\n [0x43, 0x50], //CP - OS/2 const color pointer\n [0x49, 0x43], //IC - OS/2 struct icon\n [0x50, 0x54] //PT - OS/2 pointer\n ]\n };\n\n /**\n * Recognize filetype of Image by magic-bytes\n *\n * https://en.wikipedia.org/wiki/List_of_file_signatures\n *\n * @name getImageFileTypeByImageData\n * @public\n * @function\n * @param {string|arraybuffer} imageData imageData as binary String or arraybuffer\n * @param {string} format format of file if filetype-recognition fails, e.g. 'JPEG'\n *\n * @returns {string} filetype of Image\n */\n var getImageFileTypeByImageData = (jsPDFAPI.__addimage__.getImageFileTypeByImageData = function(\n imageData,\n fallbackFormat\n ) {\n fallbackFormat = fallbackFormat || UNKNOWN;\n var i;\n var j;\n var result = UNKNOWN;\n var headerSchemata;\n var compareResult;\n var fileType;\n\n if (\n fallbackFormat === \"RGBA\" ||\n (imageData.data !== undefined &&\n imageData.data instanceof Uint8ClampedArray &&\n \"height\" in imageData &&\n \"width\" in imageData)\n ) {\n return \"RGBA\";\n }\n\n if (isArrayBufferView(imageData)) {\n for (fileType in imageFileTypeHeaders) {\n headerSchemata = imageFileTypeHeaders[fileType];\n for (i = 0; i < headerSchemata.length; i += 1) {\n compareResult = true;\n for (j = 0; j < headerSchemata[i].length; j += 1) {\n if (headerSchemata[i][j] === undefined) {\n continue;\n }\n if (headerSchemata[i][j] !== imageData[j]) {\n compareResult = false;\n break;\n }\n }\n if (compareResult === true) {\n result = fileType;\n break;\n }\n }\n }\n } else {\n for (fileType in imageFileTypeHeaders) {\n headerSchemata = imageFileTypeHeaders[fileType];\n for (i = 0; i < headerSchemata.length; i += 1) {\n compareResult = true;\n for (j = 0; j < headerSchemata[i].length; j += 1) {\n if (headerSchemata[i][j] === undefined) {\n continue;\n }\n if (headerSchemata[i][j] !== imageData.charCodeAt(j)) {\n compareResult = false;\n break;\n }\n }\n if (compareResult === true) {\n result = fileType;\n break;\n }\n }\n }\n }\n\n if (result === UNKNOWN && fallbackFormat !== UNKNOWN) {\n result = fallbackFormat;\n }\n return result;\n });\n\n // Image functionality ported from pdf.js\n var putImage = function(image) {\n var out = this.internal.write;\n var putStream = this.internal.putStream;\n var getFilters = this.internal.getFilters;\n\n var filter = getFilters();\n while (filter.indexOf(\"FlateEncode\") !== -1) {\n filter.splice(filter.indexOf(\"FlateEncode\"), 1);\n }\n\n image.objectId = this.internal.newObject();\n\n var additionalKeyValues = [];\n additionalKeyValues.push({ key: \"Type\", value: \"/XObject\" });\n additionalKeyValues.push({ key: \"Subtype\", value: \"/Image\" });\n additionalKeyValues.push({ key: \"Width\", value: image.width });\n additionalKeyValues.push({ key: \"Height\", value: image.height });\n\n if (image.colorSpace === color_spaces.INDEXED) {\n additionalKeyValues.push({\n key: \"ColorSpace\",\n value:\n \"[/Indexed /DeviceRGB \" +\n // if an indexed png defines more than one colour with transparency, we've created a sMask\n (image.palette.length / 3 - 1) +\n \" \" +\n (\"sMask\" in image && typeof image.sMask !== \"undefined\"\n ? image.objectId + 2\n : image.objectId + 1) +\n \" 0 R]\"\n });\n } else {\n additionalKeyValues.push({\n key: \"ColorSpace\",\n value: \"/\" + image.colorSpace\n });\n if (image.colorSpace === color_spaces.DEVICE_CMYK) {\n additionalKeyValues.push({ key: \"Decode\", value: \"[1 0 1 0 1 0 1 0]\" });\n }\n }\n additionalKeyValues.push({\n key: \"BitsPerComponent\",\n value: image.bitsPerComponent\n });\n if (\n \"decodeParameters\" in image &&\n typeof image.decodeParameters !== \"undefined\"\n ) {\n additionalKeyValues.push({\n key: \"DecodeParms\",\n value: \"<<\" + image.decodeParameters + \">>\"\n });\n }\n if (\"transparency\" in image && Array.isArray(image.transparency)) {\n var transparency = \"\",\n i = 0,\n len = image.transparency.length;\n for (; i < len; i++)\n transparency +=\n image.transparency[i] + \" \" + image.transparency[i] + \" \";\n\n additionalKeyValues.push({\n key: \"Mask\",\n value: \"[\" + transparency + \"]\"\n });\n }\n if (typeof image.sMask !== \"undefined\") {\n additionalKeyValues.push({\n key: \"SMask\",\n value: image.objectId + 1 + \" 0 R\"\n });\n }\n\n var alreadyAppliedFilters =\n typeof image.filter !== \"undefined\" ? [\"/\" + image.filter] : undefined;\n\n putStream({\n data: image.data,\n additionalKeyValues: additionalKeyValues,\n alreadyAppliedFilters: alreadyAppliedFilters,\n objectId: image.objectId\n });\n\n out(\"endobj\");\n\n // Soft mask\n if (\"sMask\" in image && typeof image.sMask !== \"undefined\") {\n var decodeParameters =\n \"/Predictor \" +\n image.predictor +\n \" /Colors 1 /BitsPerComponent \" +\n image.bitsPerComponent +\n \" /Columns \" +\n image.width;\n var sMask = {\n width: image.width,\n height: image.height,\n colorSpace: \"DeviceGray\",\n bitsPerComponent: image.bitsPerComponent,\n decodeParameters: decodeParameters,\n data: image.sMask\n };\n if (\"filter\" in image) {\n sMask.filter = image.filter;\n }\n putImage.call(this, sMask);\n }\n\n //Palette\n if (image.colorSpace === color_spaces.INDEXED) {\n var objId = this.internal.newObject();\n //out('<< /Filter / ' + img['f'] +' /Length ' + img['pal'].length + '>>');\n //putStream(zlib.compress(img['pal']));\n putStream({\n data: arrayBufferToBinaryString(new Uint8Array(image.palette)),\n objectId: objId\n });\n out(\"endobj\");\n }\n };\n var putResourcesCallback = function() {\n var images = this.internal.collections[namespace + \"images\"];\n for (var i in images) {\n putImage.call(this, images[i]);\n }\n };\n var putXObjectsDictCallback = function() {\n var images = this.internal.collections[namespace + \"images\"],\n out = this.internal.write,\n image;\n for (var i in images) {\n image = images[i];\n out(\"/I\" + image.index, image.objectId, \"0\", \"R\");\n }\n };\n\n var checkCompressValue = function(value) {\n if (value && typeof value === \"string\") value = value.toUpperCase();\n return value in jsPDFAPI.image_compression ? value : image_compression.NONE;\n };\n\n var initialize = function() {\n if (!this.internal.collections[namespace + \"images\"]) {\n this.internal.collections[namespace + \"images\"] = {};\n this.internal.events.subscribe(\"putResources\", putResourcesCallback);\n this.internal.events.subscribe(\"putXobjectDict\", putXObjectsDictCallback);\n }\n };\n\n var getImages = function() {\n var images = this.internal.collections[namespace + \"images\"];\n initialize.call(this);\n return images;\n };\n var getImageIndex = function() {\n return Object.keys(this.internal.collections[namespace + \"images\"]).length;\n };\n var notDefined = function(value) {\n return typeof value === \"undefined\" || value === null || value.length === 0;\n };\n var generateAliasFromImageData = function(imageData) {\n if (typeof imageData === \"string\" || isArrayBufferView(imageData)) {\n return sHashCode(imageData);\n } else if (isArrayBufferView(imageData.data)) {\n return sHashCode(imageData.data);\n }\n\n return null;\n };\n\n var isImageTypeSupported = function(type) {\n return typeof jsPDFAPI[\"process\" + type.toUpperCase()] === \"function\";\n };\n\n var isDOMElement = function(object) {\n return typeof object === \"object\" && object.nodeType === 1;\n };\n\n var getImageDataFromElement = function(element, format) {\n //if element is an image which uses data url definition, just return the dataurl\n if (element.nodeName === \"IMG\" && element.hasAttribute(\"src\")) {\n var src = \"\" + element.getAttribute(\"src\");\n\n //is base64 encoded dataUrl, directly process it\n if (src.indexOf(\"data:image/\") === 0) {\n return atob(\n unescape(src)\n .split(\"base64,\")\n .pop()\n );\n }\n\n //it is probably an url, try to load it\n var tmpImageData = jsPDFAPI.loadFile(src, true);\n if (tmpImageData !== undefined) {\n return tmpImageData;\n }\n }\n\n if (element.nodeName === \"CANVAS\") {\n if (element.width === 0 || element.height === 0) {\n throw new Error(\n \"Given canvas must have data. Canvas width: \" +\n element.width +\n \", height: \" +\n element.height\n );\n }\n var mimeType;\n switch (format) {\n case \"PNG\":\n mimeType = \"image/png\";\n break;\n case \"WEBP\":\n mimeType = \"image/webp\";\n break;\n case \"JPEG\":\n case \"JPG\":\n default:\n mimeType = \"image/jpeg\";\n break;\n }\n return atob(\n element\n .toDataURL(mimeType, 1.0)\n .split(\"base64,\")\n .pop()\n );\n }\n };\n\n var checkImagesForAlias = function(alias) {\n var images = this.internal.collections[namespace + \"images\"];\n if (images) {\n for (var e in images) {\n if (alias === images[e].alias) {\n return images[e];\n }\n }\n }\n };\n\n var determineWidthAndHeight = function(width, height, image) {\n if (!width && !height) {\n width = -96;\n height = -96;\n }\n if (width < 0) {\n width = (-1 * image.width * 72) / width / this.internal.scaleFactor;\n }\n if (height < 0) {\n height = (-1 * image.height * 72) / height / this.internal.scaleFactor;\n }\n if (width === 0) {\n width = (height * image.width) / image.height;\n }\n if (height === 0) {\n height = (width * image.height) / image.width;\n }\n\n return [width, height];\n };\n\n var writeImageToPDF = function(x, y, width, height, image, rotation) {\n var dims = determineWidthAndHeight.call(this, width, height, image),\n coord = this.internal.getCoordinateString,\n vcoord = this.internal.getVerticalCoordinateString;\n\n var images = getImages.call(this);\n\n width = dims[0];\n height = dims[1];\n images[image.index] = image;\n\n if (rotation) {\n rotation *= Math.PI / 180;\n var c = Math.cos(rotation);\n var s = Math.sin(rotation);\n //like in pdf Reference do it 4 digits instead of 2\n var f4 = function(number) {\n return number.toFixed(4);\n };\n var rotationTransformationMatrix = [\n f4(c),\n f4(s),\n f4(s * -1),\n f4(c),\n 0,\n 0,\n \"cm\"\n ];\n }\n this.internal.write(\"q\"); //Save graphics state\n if (rotation) {\n this.internal.write(\n [1, \"0\", \"0\", 1, coord(x), vcoord(y + height), \"cm\"].join(\" \")\n ); //Translate\n this.internal.write(rotationTransformationMatrix.join(\" \")); //Rotate\n this.internal.write(\n [coord(width), \"0\", \"0\", coord(height), \"0\", \"0\", \"cm\"].join(\" \")\n ); //Scale\n } else {\n this.internal.write(\n [\n coord(width),\n \"0\",\n \"0\",\n coord(height),\n coord(x),\n vcoord(y + height),\n \"cm\"\n ].join(\" \")\n ); //Translate and Scale\n }\n\n if (this.isAdvancedAPI()) {\n // draw image bottom up when in \"advanced\" API mode\n this.internal.write([1, 0, 0, -1, 0, 0, \"cm\"].join(\" \"));\n }\n\n this.internal.write(\"/I\" + image.index + \" Do\"); //Paint Image\n this.internal.write(\"Q\"); //Restore graphics state\n };\n\n /**\n * COLOR SPACES\n */\n var color_spaces = (jsPDFAPI.color_spaces = {\n DEVICE_RGB: \"DeviceRGB\",\n DEVICE_GRAY: \"DeviceGray\",\n DEVICE_CMYK: \"DeviceCMYK\",\n CAL_GREY: \"CalGray\",\n CAL_RGB: \"CalRGB\",\n LAB: \"Lab\",\n ICC_BASED: \"ICCBased\",\n INDEXED: \"Indexed\",\n PATTERN: \"Pattern\",\n SEPARATION: \"Separation\",\n DEVICE_N: \"DeviceN\"\n });\n\n /**\n * DECODE METHODS\n */\n jsPDFAPI.decode = {\n DCT_DECODE: \"DCTDecode\",\n FLATE_DECODE: \"FlateDecode\",\n LZW_DECODE: \"LZWDecode\",\n JPX_DECODE: \"JPXDecode\",\n JBIG2_DECODE: \"JBIG2Decode\",\n ASCII85_DECODE: \"ASCII85Decode\",\n ASCII_HEX_DECODE: \"ASCIIHexDecode\",\n RUN_LENGTH_DECODE: \"RunLengthDecode\",\n CCITT_FAX_DECODE: \"CCITTFaxDecode\"\n };\n\n /**\n * IMAGE COMPRESSION TYPES\n */\n var image_compression = (jsPDFAPI.image_compression = {\n NONE: \"NONE\",\n FAST: \"FAST\",\n MEDIUM: \"MEDIUM\",\n SLOW: \"SLOW\"\n });\n\n /**\n * @name sHashCode\n * @function\n * @param {string} data\n * @returns {string}\n */\n var sHashCode = (jsPDFAPI.__addimage__.sHashCode = function(data) {\n var hash = 0,\n i,\n len;\n\n if (typeof data === \"string\") {\n len = data.length;\n for (i = 0; i < len; i++) {\n hash = (hash << 5) - hash + data.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n } else if (isArrayBufferView(data)) {\n len = data.byteLength / 2;\n for (i = 0; i < len; i++) {\n hash = (hash << 5) - hash + data[i];\n hash |= 0; // Convert to 32bit integer\n }\n }\n return hash;\n });\n\n /**\n * Validates if given String is a valid Base64-String\n *\n * @name validateStringAsBase64\n * @public\n * @function\n * @param {String} possible Base64-String\n *\n * @returns {boolean}\n */\n var validateStringAsBase64 = (jsPDFAPI.__addimage__.validateStringAsBase64 = function(\n possibleBase64String\n ) {\n possibleBase64String = possibleBase64String || \"\";\n possibleBase64String.toString().trim();\n\n var result = true;\n\n if (possibleBase64String.length === 0) {\n result = false;\n }\n\n if (possibleBase64String.length % 4 !== 0) {\n result = false;\n }\n\n if (\n /^[A-Za-z0-9+/]+$/.test(\n possibleBase64String.substr(0, possibleBase64String.length - 2)\n ) === false\n ) {\n result = false;\n }\n\n if (\n /^[A-Za-z0-9/][A-Za-z0-9+/]|[A-Za-z0-9+/]=|==$/.test(\n possibleBase64String.substr(-2)\n ) === false\n ) {\n result = false;\n }\n return result;\n });\n\n /**\n * Strips out and returns info from a valid base64 data URI\n *\n * @name extractImageFromDataUrl\n * @function\n * @param {string} dataUrl a valid data URI of format 'data:[<MIME-type>][;base64],<data>'\n * @returns {Array}an Array containing the following\n * [0] the complete data URI\n * [1] <MIME-type>\n * [2] format - the second part of the mime-type i.e 'png' in 'image/png'\n * [4] <data>\n */\n var extractImageFromDataUrl = (jsPDFAPI.__addimage__.extractImageFromDataUrl = function(\n dataUrl\n ) {\n dataUrl = dataUrl || \"\";\n var dataUrlParts = dataUrl.split(\"base64,\");\n var result = null;\n\n if (dataUrlParts.length === 2) {\n var extractedInfo = /^data:(\\w*\\/\\w*);*(charset=(?!charset=)[\\w=-]*)*;*$/.exec(\n dataUrlParts[0]\n );\n if (Array.isArray(extractedInfo)) {\n result = {\n mimeType: extractedInfo[1],\n charset: extractedInfo[2],\n data: dataUrlParts[1]\n };\n }\n }\n return result;\n });\n\n /**\n * Check to see if ArrayBuffer is supported\n *\n * @name supportsArrayBuffer\n * @function\n * @returns {boolean}\n */\n var supportsArrayBuffer = (jsPDFAPI.__addimage__.supportsArrayBuffer = function() {\n return (\n typeof ArrayBuffer !== \"undefined\" && typeof Uint8Array !== \"undefined\"\n );\n });\n\n /**\n * Tests supplied object to determine if ArrayBuffer\n *\n * @name isArrayBuffer\n * @function\n * @param {Object} object an Object\n *\n * @returns {boolean}\n */\n jsPDFAPI.__addimage__.isArrayBuffer = function(object) {\n return supportsArrayBuffer() && object instanceof ArrayBuffer;\n };\n\n /**\n * Tests supplied object to determine if it implements the ArrayBufferView (TypedArray) interface\n *\n * @name isArrayBufferView\n * @function\n * @param {Object} object an Object\n * @returns {boolean}\n */\n var isArrayBufferView = (jsPDFAPI.__addimage__.isArrayBufferView = function(\n object\n ) {\n return (\n supportsArrayBuffer() &&\n typeof Uint32Array !== \"undefined\" &&\n (object instanceof Int8Array ||\n object instanceof Uint8Array ||\n (typeof Uint8ClampedArray !== \"undefined\" &&\n object instanceof Uint8ClampedArray) ||\n object instanceof Int16Array ||\n object instanceof Uint16Array ||\n object instanceof Int32Array ||\n object instanceof Uint32Array ||\n object instanceof Float32Array ||\n object instanceof Float64Array)\n );\n });\n\n /**\n * Convert Binary String to ArrayBuffer\n *\n * @name binaryStringToUint8Array\n * @public\n * @function\n * @param {string} BinaryString with ImageData\n * @returns {Uint8Array}\n */\n var binaryStringToUint8Array = (jsPDFAPI.__addimage__.binaryStringToUint8Array = function(\n binary_string\n ) {\n var len = binary_string.length;\n var bytes = new Uint8Array(len);\n for (var i = 0; i < len; i++) {\n bytes[i] = binary_string.charCodeAt(i);\n }\n return bytes;\n });\n\n /**\n * Convert the Buffer to a Binary String\n *\n * @name arrayBufferToBinaryString\n * @public\n * @function\n * @param {ArrayBuffer|ArrayBufferView} ArrayBuffer buffer or bufferView with ImageData\n *\n * @returns {String}\n */\n var arrayBufferToBinaryString = (jsPDFAPI.__addimage__.arrayBufferToBinaryString = function(\n buffer\n ) {\n var out = \"\";\n // There are calls with both ArrayBuffer and already converted Uint8Array or other BufferView.\n // Do not copy the array if input is already an array.\n var buf = isArrayBufferView(buffer) ? buffer : new Uint8Array(buffer);\n for (var i = 0; i < buf.length; i += ARRAY_APPLY_BATCH) {\n // Limit the amount of characters being parsed to prevent overflow.\n // Note that while TextDecoder would be faster, it does not have the same\n // functionality as fromCharCode with any provided encodings as of 3/2021.\n out += String.fromCharCode.apply(\n null,\n buf.subarray(i, i + ARRAY_APPLY_BATCH)\n );\n }\n return out;\n });\n\n /**\n * Possible parameter for addImage, an RGBA buffer with size.\n *\n * @typedef {Object} RGBAData\n * @property {Uint8ClampedArray} data - Single dimensional array of RGBA values. For example from canvas getImageData.\n * @property {number} width - Image width as the data does not carry this information in itself.\n * @property {number} height - Image height as the data does not carry this information in itself.\n */\n\n /**\n * Adds an Image to the PDF.\n *\n * @name addImage\n * @public\n * @function\n * @param {string|HTMLImageElement|HTMLCanvasElement|Uint8Array|RGBAData} imageData imageData as base64 encoded DataUrl or Image-HTMLElement or Canvas-HTMLElement or object containing RGBA array (like output from canvas.getImageData).\n * @param {string} format format of file if filetype-recognition fails or in case of a Canvas-Element needs to be specified (default for Canvas is JPEG), e.g. 'JPEG', 'PNG', 'WEBP'\n * @param {number} x x Coordinate (in units declared at inception of PDF document) against left edge of the page\n * @param {number} y y Coordinate (in units declared at inception of PDF document) against upper edge of the page\n * @param {number} width width of the image (in units declared at inception of PDF document)\n * @param {number} height height of the Image (in units declared at inception of PDF document)\n * @param {string} alias alias of the image (if used multiple times)\n * @param {string} compression compression of the generated JPEG, can have the values 'NONE', 'FAST', 'MEDIUM' and 'SLOW'\n * @param {number} rotation rotation of the image in degrees (0-359)\n *\n * @returns jsPDF\n */\n jsPDFAPI.addImage = function() {\n var imageData, format, x, y, w, h, alias, compression, rotation;\n\n imageData = arguments[0];\n if (typeof arguments[1] === \"number\") {\n format = UNKNOWN;\n x = arguments[1];\n y = arguments[2];\n w = arguments[3];\n h = arguments[4];\n alias = arguments[5];\n compression = arguments[6];\n rotation = arguments[7];\n } else {\n format = arguments[1];\n x = arguments[2];\n y = arguments[3];\n w = arguments[4];\n h = arguments[5];\n alias = arguments[6];\n compression = arguments[7];\n rotation = arguments[8];\n }\n\n if (\n typeof imageData === \"object\" &&\n !isDOMElement(imageData) &&\n \"imageData\" in imageData\n ) {\n var options = imageData;\n\n imageData = options.imageData;\n format = options.format || format || UNKNOWN;\n x = options.x || x || 0;\n y = options.y || y || 0;\n w = options.w || options.width || w;\n h = options.h || options.height || h;\n alias = options.alias || alias;\n compression = options.compression || compression;\n rotation = options.rotation || options.angle || rotation;\n }\n\n //If compression is not explicitly set, determine if we should use compression\n var filter = this.internal.getFilters();\n if (compression === undefined && filter.indexOf(\"FlateEncode\") !== -1) {\n compression = \"SLOW\";\n }\n\n if (isNaN(x) || isNaN(y)) {\n throw new Error(\"Invalid coordinates passed to jsPDF.addImage\");\n }\n\n initialize.call(this);\n\n var image = processImageData.call(\n this,\n imageData,\n format,\n alias,\n compression\n );\n\n writeImageToPDF.call(this, x, y, w, h, image, rotation);\n\n return this;\n };\n\n var processImageData = function(imageData, format, alias, compression) {\n var result, dataAsBinaryString;\n\n if (\n typeof imageData === \"string\" &&\n getImageFileTypeByImageData(imageData) === UNKNOWN\n ) {\n imageData = unescape(imageData);\n var tmpImageData = convertBase64ToBinaryString(imageData, false);\n\n if (tmpImageData !== \"\") {\n imageData = tmpImageData;\n } else {\n tmpImageData = jsPDFAPI.loadFile(imageData, true);\n if (tmpImageData !== undefined) {\n imageData = tmpImageData;\n }\n }\n }\n\n if (isDOMElement(imageData)) {\n imageData = getImageDataFromElement(imageData, format);\n }\n\n format = getImageFileTypeByImageData(imageData, format);\n if (!isImageTypeSupported(format)) {\n throw new Error(\n \"addImage does not support files of type '\" +\n format +\n \"', please ensure that a plugin for '\" +\n format +\n \"' support is added.\"\n );\n }\n\n // now do the heavy lifting\n\n if (notDefined(alias)) {\n alias = generateAliasFromImageData(imageData);\n }\n result = checkImagesForAlias.call(this, alias);\n\n if (!result) {\n if (supportsArrayBuffer()) {\n // no need to convert if imageData is already uint8array\n if (!(imageData instanceof Uint8Array) && format !== \"RGBA\") {\n dataAsBinaryString = imageData;\n imageData = binaryStringToUint8Array(imageData);\n }\n }\n\n result = this[\"process\" + format.toUpperCase()](\n imageData,\n getImageIndex.call(this),\n alias,\n checkCompressValue(compression),\n dataAsBinaryString\n );\n }\n\n if (!result) {\n throw new Error(\"An unknown error occurred whilst processing the image.\");\n }\n return result;\n };\n\n /**\n * @name convertBase64ToBinaryString\n * @function\n * @param {string} stringData\n * @returns {string} binary string\n */\n var convertBase64ToBinaryString = (jsPDFAPI.__addimage__.convertBase64ToBinaryString = function(\n stringData,\n throwError\n ) {\n throwError = typeof throwError === \"boolean\" ? throwError : true;\n var base64Info;\n var imageData = \"\";\n var rawData;\n\n if (typeof stringData === \"string\") {\n base64Info = extractImageFromDataUrl(stringData);\n rawData = base64Info !== null ? base64Info.data : stringData;\n\n try {\n imageData = atob(rawData);\n } catch (e) {\n if (throwError) {\n if (!validateStringAsBase64(rawData)) {\n throw new Error(\n \"Supplied Data is not a valid base64-String jsPDF.convertBase64ToBinaryString \"\n );\n } else {\n throw new Error(\n \"atob-Error in jsPDF.convertBase64ToBinaryString \" + e.message\n );\n }\n }\n }\n }\n return imageData;\n });\n\n /**\n * @name getImageProperties\n * @function\n * @param {Object} imageData\n * @returns {Object}\n */\n jsPDFAPI.getImageProperties = function(imageData) {\n var image;\n var tmpImageData = \"\";\n var format;\n\n if (isDOMElement(imageData)) {\n imageData = getImageDataFromElement(imageData);\n }\n\n if (\n typeof imageData === \"string\" &&\n getImageFileTypeByImageData(imageData) === UNKNOWN\n ) {\n tmpImageData = convertBase64ToBinaryString(imageData, false);\n\n if (tmpImageData === \"\") {\n tmpImageData = jsPDFAPI.loadFile(imageData) || \"\";\n }\n imageData = tmpImageData;\n }\n\n format = getImageFileTypeByImageData(imageData);\n if (!isImageTypeSupported(format)) {\n throw new Error(\n \"addImage does not support files of type '\" +\n format +\n \"', please ensure that a plugin for '\" +\n format +\n \"' support is added.\"\n );\n }\n\n if (supportsArrayBuffer() && !(imageData instanceof Uint8Array)) {\n imageData = binaryStringToUint8Array(imageData);\n }\n\n image = this[\"process\" + format.toUpperCase()](imageData);\n\n if (!image) {\n throw new Error(\"An unknown error occurred whilst processing the image\");\n }\n\n image.fileType = format;\n\n return image;\n };\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\n/**\n * jsPDF Annotations PlugIn\n *\n * There are many types of annotations in a PDF document. Annotations are placed\n * on a page at a particular location. They are not 'attached' to an object.\n * <br />\n * This plugin current supports <br />\n * <li> Goto Page (set pageNumber and top in options)\n * <li> Goto Name (set name and top in options)\n * <li> Goto URL (set url in options)\n * <p>\n * \tThe destination magnification factor can also be specified when goto is a page number or a named destination. (see documentation below)\n * (set magFactor in options). XYZ is the default.\n * </p>\n * <p>\n * Links, Text, Popup, and FreeText are supported.\n * </p>\n * <p>\n * Options In PDF spec Not Implemented Yet\n * <li> link border\n * <li> named target\n * <li> page coordinates\n * <li> destination page scaling and layout\n * <li> actions other than URL and GotoPage\n * <li> background / hover actions\n * </p>\n * @name annotations\n * @module\n */\n\n/*\n Destination Magnification Factors\n See PDF 1.3 Page 386 for meanings and options\n\n [supported]\n\tXYZ (options; left top zoom)\n\tFit (no options)\n\tFitH (options: top)\n\tFitV (options: left)\n\n\t[not supported]\n\tFitR\n\tFitB\n\tFitBH\n\tFitBV\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n(function(jsPDFAPI) {\n \"use strict\";\n\n var notEmpty = function(obj) {\n if (typeof obj != \"undefined\") {\n if (obj != \"\") {\n return true;\n }\n }\n };\n\n jsPDF.API.events.push([\n \"addPage\",\n function(addPageData) {\n var pageInfo = this.internal.getPageInfo(addPageData.pageNumber);\n pageInfo.pageContext.annotations = [];\n }\n ]);\n\n jsPDFAPI.events.push([\n \"putPage\",\n function(putPageData) {\n var getHorizontalCoordinateString = this.internal.getCoordinateString;\n var getVerticalCoordinateString = this.internal\n .getVerticalCoordinateString;\n var pageInfo = this.internal.getPageInfoByObjId(putPageData.objId);\n var pageAnnos = putPageData.pageContext.annotations;\n\n var anno, rect, line;\n var found = false;\n for (var a = 0; a < pageAnnos.length && !found; a++) {\n anno = pageAnnos[a];\n switch (anno.type) {\n case \"link\":\n if (\n notEmpty(anno.options.url) ||\n notEmpty(anno.options.pageNumber)\n ) {\n found = true;\n }\n break;\n case \"reference\":\n case \"text\":\n case \"freetext\":\n found = true;\n break;\n }\n }\n if (found == false) {\n return;\n }\n\n this.internal.write(\"/Annots [\");\n for (var i = 0; i < pageAnnos.length; i++) {\n anno = pageAnnos[i];\n var escape = this.internal.pdfEscape;\n var encryptor = this.internal.getEncryptor(putPageData.objId);\n\n switch (anno.type) {\n case \"reference\":\n // References to Widget Annotations (for AcroForm Fields)\n this.internal.write(\" \" + anno.object.objId + \" 0 R \");\n break;\n case \"text\":\n // Create a an object for both the text and the popup\n var objText = this.internal.newAdditionalObject();\n var objPopup = this.internal.newAdditionalObject();\n var encryptorText = this.internal.getEncryptor(objText.objId);\n\n var title = anno.title || \"Note\";\n rect =\n \"/Rect [\" +\n getHorizontalCoordinateString(anno.bounds.x) +\n \" \" +\n getVerticalCoordinateString(anno.bounds.y + anno.bounds.h) +\n \" \" +\n getHorizontalCoordinateString(anno.bounds.x + anno.bounds.w) +\n \" \" +\n getVerticalCoordinateString(anno.bounds.y) +\n \"] \";\n\n line =\n \"<</Type /Annot /Subtype /\" +\n \"Text\" +\n \" \" +\n rect +\n \"/Contents (\" +\n escape(encryptorText(anno.contents)) +\n \")\";\n line += \" /Popup \" + objPopup.objId + \" 0 R\";\n line += \" /P \" + pageInfo.objId + \" 0 R\";\n line += \" /T (\" + escape(encryptorText(title)) + \") >>\";\n objText.content = line;\n\n var parent = objText.objId + \" 0 R\";\n var popoff = 30;\n rect =\n \"/Rect [\" +\n getHorizontalCoordinateString(anno.bounds.x + popoff) +\n \" \" +\n getVerticalCoordinateString(anno.bounds.y + anno.bounds.h) +\n \" \" +\n getHorizontalCoordinateString(\n anno.bounds.x + anno.bounds.w + popoff\n ) +\n \" \" +\n getVerticalCoordinateString(anno.bounds.y) +\n \"] \";\n line =\n \"<</Type /Annot /Subtype /\" +\n \"Popup\" +\n \" \" +\n rect +\n \" /Parent \" +\n parent;\n if (anno.open) {\n line += \" /Open true\";\n }\n line += \" >>\";\n objPopup.content = line;\n\n this.internal.write(objText.objId, \"0 R\", objPopup.objId, \"0 R\");\n\n break;\n case \"freetext\":\n rect =\n \"/Rect [\" +\n getHorizontalCoordinateString(anno.bounds.x) +\n \" \" +\n getVerticalCoordinateString(anno.bounds.y) +\n \" \" +\n getHorizontalCoordinateString(anno.bounds.x + anno.bounds.w) +\n \" \" +\n getVerticalCoordinateString(anno.bounds.y + anno.bounds.h) +\n \"] \";\n var color = anno.color || \"#000000\";\n line =\n \"<</Type /Annot /Subtype /\" +\n \"FreeText\" +\n \" \" +\n rect +\n \"/Contents (\" +\n escape(encryptor(anno.contents)) +\n \")\";\n line +=\n \" /DS(font: Helvetica,sans-serif 12.0pt; text-align:left; color:#\" +\n color +\n \")\";\n line += \" /Border [0 0 0]\";\n line += \" >>\";\n this.internal.write(line);\n break;\n case \"link\":\n if (anno.options.name) {\n var loc = this.annotations._nameMap[anno.options.name];\n anno.options.pageNumber = loc.page;\n anno.options.top = loc.y;\n } else {\n if (!anno.options.top) {\n anno.options.top = 0;\n }\n }\n\n rect =\n \"/Rect [\" +\n anno.finalBounds.x +\n \" \" +\n anno.finalBounds.y +\n \" \" +\n anno.finalBounds.w +\n \" \" +\n anno.finalBounds.h +\n \"] \";\n\n line = \"\";\n if (anno.options.url) {\n line =\n \"<</Type /Annot /Subtype /Link \" +\n rect +\n \"/Border [0 0 0] /A <</S /URI /URI (\" +\n escape(encryptor(anno.options.url)) +\n \") >>\";\n } else if (anno.options.pageNumber) {\n // first page is 0\n var info = this.internal.getPageInfo(anno.options.pageNumber);\n line =\n \"<</Type /Annot /Subtype /Link \" +\n rect +\n \"/Border [0 0 0] /Dest [\" +\n info.objId +\n \" 0 R\";\n anno.options.magFactor = anno.options.magFactor || \"XYZ\";\n switch (anno.options.magFactor) {\n case \"Fit\":\n line += \" /Fit]\";\n break;\n case \"FitH\":\n line += \" /FitH \" + anno.options.top + \"]\";\n break;\n case \"FitV\":\n anno.options.left = anno.options.left || 0;\n line += \" /FitV \" + anno.options.left + \"]\";\n break;\n case \"XYZ\":\n default:\n var top = getVerticalCoordinateString(anno.options.top);\n anno.options.left = anno.options.left || 0;\n // 0 or null zoom will not change zoom factor\n if (typeof anno.options.zoom === \"undefined\") {\n anno.options.zoom = 0;\n }\n line +=\n \" /XYZ \" +\n anno.options.left +\n \" \" +\n top +\n \" \" +\n anno.options.zoom +\n \"]\";\n break;\n }\n }\n\n if (line != \"\") {\n line += \" >>\";\n this.internal.write(line);\n }\n break;\n }\n }\n this.internal.write(\"]\");\n }\n ]);\n\n /**\n * @name createAnnotation\n * @function\n * @param {Object} options\n */\n jsPDFAPI.createAnnotation = function(options) {\n var pageInfo = this.internal.getCurrentPageInfo();\n switch (options.type) {\n case \"link\":\n this.link(\n options.bounds.x,\n options.bounds.y,\n options.bounds.w,\n options.bounds.h,\n options\n );\n break;\n case \"text\":\n case \"freetext\":\n pageInfo.pageContext.annotations.push(options);\n break;\n }\n };\n\n /**\n * Create a link\n *\n * valid options\n * <li> pageNumber or url [required]\n * <p>If pageNumber is specified, top and zoom may also be specified</p>\n * @name link\n * @function\n * @param {number} x\n * @param {number} y\n * @param {number} w\n * @param {number} h\n * @param {Object} options\n */\n jsPDFAPI.link = function(x, y, w, h, options) {\n var pageInfo = this.internal.getCurrentPageInfo();\n var getHorizontalCoordinateString = this.internal.getCoordinateString;\n var getVerticalCoordinateString = this.internal.getVerticalCoordinateString;\n\n pageInfo.pageContext.annotations.push({\n finalBounds: {\n x: getHorizontalCoordinateString(x),\n y: getVerticalCoordinateString(y),\n w: getHorizontalCoordinateString(x + w),\n h: getVerticalCoordinateString(y + h)\n },\n options: options,\n type: \"link\"\n });\n };\n\n /**\n * Currently only supports single line text.\n * Returns the width of the text/link\n *\n * @name textWithLink\n * @function\n * @param {string} text\n * @param {number} x\n * @param {number} y\n * @param {Object} options\n * @returns {number} width the width of the text/link\n */\n jsPDFAPI.textWithLink = function(text, x, y, options) {\n var totalLineWidth = this.getTextWidth(text);\n var lineHeight = this.internal.getLineHeight() / this.internal.scaleFactor;\n var linkHeight, linkWidth;\n\n // Checking if maxWidth option is passed to determine lineWidth and number of lines for each line\n if (options.maxWidth !== undefined) {\n var { maxWidth } = options;\n linkWidth = maxWidth;\n var numOfLines = this.splitTextToSize(text, linkWidth).length;\n linkHeight = Math.ceil(lineHeight * numOfLines);\n } else {\n linkWidth = totalLineWidth;\n linkHeight = lineHeight;\n }\n\n this.text(text, x, y, options);\n\n //TODO We really need the text baseline height to do this correctly.\n // Or ability to draw text on top, bottom, center, or baseline.\n y += lineHeight * 0.2;\n //handle x position based on the align option\n if (options.align === \"center\") {\n x = x - totalLineWidth / 2; //since starting from center move the x position by half of text width\n }\n if (options.align === \"right\") {\n x = x - totalLineWidth;\n }\n this.link(x, y - lineHeight, linkWidth, linkHeight, options);\n return totalLineWidth;\n };\n\n //TODO move into external library\n /**\n * @name getTextWidth\n * @function\n * @param {string} text\n * @returns {number} txtWidth\n */\n jsPDFAPI.getTextWidth = function(text) {\n var fontSize = this.internal.getFontSize();\n var txtWidth =\n (this.getStringUnitWidth(text) * fontSize) / this.internal.scaleFactor;\n return txtWidth;\n };\n\n return this;\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2017 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF arabic parser PlugIn\n *\n * @name arabic\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * Arabic shape substitutions: char code => (isolated, final, initial, medial).\n * Arabic Substition A\n */\n var arabicSubstitionA = {\n 0x0621: [0xfe80], // ARABIC LETTER HAMZA\n 0x0622: [0xfe81, 0xfe82], // ARABIC LETTER ALEF WITH MADDA ABOVE\n 0x0623: [0xfe83, 0xfe84], // ARABIC LETTER ALEF WITH HAMZA ABOVE\n 0x0624: [0xfe85, 0xfe86], // ARABIC LETTER WAW WITH HAMZA ABOVE\n 0x0625: [0xfe87, 0xfe88], // ARABIC LETTER ALEF WITH HAMZA BELOW\n 0x0626: [0xfe89, 0xfe8a, 0xfe8b, 0xfe8c], // ARABIC LETTER YEH WITH HAMZA ABOVE\n 0x0627: [0xfe8d, 0xfe8e], // ARABIC LETTER ALEF\n 0x0628: [0xfe8f, 0xfe90, 0xfe91, 0xfe92], // ARABIC LETTER BEH\n 0x0629: [0xfe93, 0xfe94], // ARABIC LETTER TEH MARBUTA\n 0x062a: [0xfe95, 0xfe96, 0xfe97, 0xfe98], // ARABIC LETTER TEH\n 0x062b: [0xfe99, 0xfe9a, 0xfe9b, 0xfe9c], // ARABIC LETTER THEH\n 0x062c: [0xfe9d, 0xfe9e, 0xfe9f, 0xfea0], // ARABIC LETTER JEEM\n 0x062d: [0xfea1, 0xfea2, 0xfea3, 0xfea4], // ARABIC LETTER HAH\n 0x062e: [0xfea5, 0xfea6, 0xfea7, 0xfea8], // ARABIC LETTER KHAH\n 0x062f: [0xfea9, 0xfeaa], // ARABIC LETTER DAL\n 0x0630: [0xfeab, 0xfeac], // ARABIC LETTER THAL\n 0x0631: [0xfead, 0xfeae], // ARABIC LETTER REH\n 0x0632: [0xfeaf, 0xfeb0], // ARABIC LETTER ZAIN\n 0x0633: [0xfeb1, 0xfeb2, 0xfeb3, 0xfeb4], // ARABIC LETTER SEEN\n 0x0634: [0xfeb5, 0xfeb6, 0xfeb7, 0xfeb8], // ARABIC LETTER SHEEN\n 0x0635: [0xfeb9, 0xfeba, 0xfebb, 0xfebc], // ARABIC LETTER SAD\n 0x0636: [0xfebd, 0xfebe, 0xfebf, 0xfec0], // ARABIC LETTER DAD\n 0x0637: [0xfec1, 0xfec2, 0xfec3, 0xfec4], // ARABIC LETTER TAH\n 0x0638: [0xfec5, 0xfec6, 0xfec7, 0xfec8], // ARABIC LETTER ZAH\n 0x0639: [0xfec9, 0xfeca, 0xfecb, 0xfecc], // ARABIC LETTER AIN\n 0x063a: [0xfecd, 0xfece, 0xfecf, 0xfed0], // ARABIC LETTER GHAIN\n 0x0641: [0xfed1, 0xfed2, 0xfed3, 0xfed4], // ARABIC LETTER FEH\n 0x0642: [0xfed5, 0xfed6, 0xfed7, 0xfed8], // ARABIC LETTER QAF\n 0x0643: [0xfed9, 0xfeda, 0xfedb, 0xfedc], // ARABIC LETTER KAF\n 0x0644: [0xfedd, 0xfede, 0xfedf, 0xfee0], // ARABIC LETTER LAM\n 0x0645: [0xfee1, 0xfee2, 0xfee3, 0xfee4], // ARABIC LETTER MEEM\n 0x0646: [0xfee5, 0xfee6, 0xfee7, 0xfee8], // ARABIC LETTER NOON\n 0x0647: [0xfee9, 0xfeea, 0xfeeb, 0xfeec], // ARABIC LETTER HEH\n 0x0648: [0xfeed, 0xfeee], // ARABIC LETTER WAW\n 0x0649: [0xfeef, 0xfef0, 64488, 64489], // ARABIC LETTER ALEF MAKSURA\n 0x064a: [0xfef1, 0xfef2, 0xfef3, 0xfef4], // ARABIC LETTER YEH\n 0x0671: [0xfb50, 0xfb51], // ARABIC LETTER ALEF WASLA\n 0x0677: [0xfbdd], // ARABIC LETTER U WITH HAMZA ABOVE\n 0x0679: [0xfb66, 0xfb67, 0xfb68, 0xfb69], // ARABIC LETTER TTEH\n 0x067a: [0xfb5e, 0xfb5f, 0xfb60, 0xfb61], // ARABIC LETTER TTEHEH\n 0x067b: [0xfb52, 0xfb53, 0xfb54, 0xfb55], // ARABIC LETTER BEEH\n 0x067e: [0xfb56, 0xfb57, 0xfb58, 0xfb59], // ARABIC LETTER PEH\n 0x067f: [0xfb62, 0xfb63, 0xfb64, 0xfb65], // ARABIC LETTER TEHEH\n 0x0680: [0xfb5a, 0xfb5b, 0xfb5c, 0xfb5d], // ARABIC LETTER BEHEH\n 0x0683: [0xfb76, 0xfb77, 0xfb78, 0xfb79], // ARABIC LETTER NYEH\n 0x0684: [0xfb72, 0xfb73, 0xfb74, 0xfb75], // ARABIC LETTER DYEH\n 0x0686: [0xfb7a, 0xfb7b, 0xfb7c, 0xfb7d], // ARABIC LETTER TCHEH\n 0x0687: [0xfb7e, 0xfb7f, 0xfb80, 0xfb81], // ARABIC LETTER TCHEHEH\n 0x0688: [0xfb88, 0xfb89], // ARABIC LETTER DDAL\n 0x068c: [0xfb84, 0xfb85], // ARABIC LETTER DAHAL\n 0x068d: [0xfb82, 0xfb83], // ARABIC LETTER DDAHAL\n 0x068e: [0xfb86, 0xfb87], // ARABIC LETTER DUL\n 0x0691: [0xfb8c, 0xfb8d], // ARABIC LETTER RREH\n 0x0698: [0xfb8a, 0xfb8b], // ARABIC LETTER JEH\n 0x06a4: [0xfb6a, 0xfb6b, 0xfb6c, 0xfb6d], // ARABIC LETTER VEH\n 0x06a6: [0xfb6e, 0xfb6f, 0xfb70, 0xfb71], // ARABIC LETTER PEHEH\n 0x06a9: [0xfb8e, 0xfb8f, 0xfb90, 0xfb91], // ARABIC LETTER KEHEH\n 0x06ad: [0xfbd3, 0xfbd4, 0xfbd5, 0xfbd6], // ARABIC LETTER NG\n 0x06af: [0xfb92, 0xfb93, 0xfb94, 0xfb95], // ARABIC LETTER GAF\n 0x06b1: [0xfb9a, 0xfb9b, 0xfb9c, 0xfb9d], // ARABIC LETTER NGOEH\n 0x06b3: [0xfb96, 0xfb97, 0xfb98, 0xfb99], // ARABIC LETTER GUEH\n 0x06ba: [0xfb9e, 0xfb9f], // ARABIC LETTER NOON GHUNNA\n 0x06bb: [0xfba0, 0xfba1, 0xfba2, 0xfba3], // ARABIC LETTER RNOON\n 0x06be: [0xfbaa, 0xfbab, 0xfbac, 0xfbad], // ARABIC LETTER HEH DOACHASHMEE\n 0x06c0: [0xfba4, 0xfba5], // ARABIC LETTER HEH WITH YEH ABOVE\n 0x06c1: [0xfba6, 0xfba7, 0xfba8, 0xfba9], // ARABIC LETTER HEH GOAL\n 0x06c5: [0xfbe0, 0xfbe1], // ARABIC LETTER KIRGHIZ OE\n 0x06c6: [0xfbd9, 0xfbda], // ARABIC LETTER OE\n 0x06c7: [0xfbd7, 0xfbd8], // ARABIC LETTER U\n 0x06c8: [0xfbdb, 0xfbdc], // ARABIC LETTER YU\n 0x06c9: [0xfbe2, 0xfbe3], // ARABIC LETTER KIRGHIZ YU\n 0x06cb: [0xfbde, 0xfbdf], // ARABIC LETTER VE\n 0x06cc: [0xfbfc, 0xfbfd, 0xfbfe, 0xfbff], // ARABIC LETTER FARSI YEH\n 0x06d0: [0xfbe4, 0xfbe5, 0xfbe6, 0xfbe7], //ARABIC LETTER E\n 0x06d2: [0xfbae, 0xfbaf], // ARABIC LETTER YEH BARREE\n 0x06d3: [0xfbb0, 0xfbb1] // ARABIC LETTER YEH BARREE WITH HAMZA ABOVE\n };\n\n /*\n var ligaturesSubstitutionA = {\n 0xFBEA: []// ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM\n };\n */\n\n var ligatures = {\n 0xfedf: {\n 0xfe82: 0xfef5, // ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM\n 0xfe84: 0xfef7, // ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM\n 0xfe88: 0xfef9, // ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM\n 0xfe8e: 0xfefb // ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM\n },\n 0xfee0: {\n 0xfe82: 0xfef6, // ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM\n 0xfe84: 0xfef8, // ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM\n 0xfe88: 0xfefa, // ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM\n 0xfe8e: 0xfefc // ARABIC LIGATURE LAM WITH ALEF FINAL FORM\n },\n 0xfe8d: { 0xfedf: { 0xfee0: { 0xfeea: 0xfdf2 } } }, // ALLAH\n 0x0651: {\n 0x064c: 0xfc5e, // Shadda + Dammatan\n 0x064d: 0xfc5f, // Shadda + Kasratan\n 0x064e: 0xfc60, // Shadda + Fatha\n 0x064f: 0xfc61, // Shadda + Damma\n 0x0650: 0xfc62 // Shadda + Kasra\n }\n };\n\n var arabic_diacritics = {\n 1612: 64606, // Shadda + Dammatan\n 1613: 64607, // Shadda + Kasratan\n 1614: 64608, // Shadda + Fatha\n 1615: 64609, // Shadda + Damma\n 1616: 64610 // Shadda + Kasra\n };\n\n var alfletter = [1570, 1571, 1573, 1575];\n\n var noChangeInForm = -1;\n var isolatedForm = 0;\n var finalForm = 1;\n var initialForm = 2;\n var medialForm = 3;\n\n jsPDFAPI.__arabicParser__ = {};\n\n //private\n var isInArabicSubstitutionA = (jsPDFAPI.__arabicParser__.isInArabicSubstitutionA = function(\n letter\n ) {\n return typeof arabicSubstitionA[letter.charCodeAt(0)] !== \"undefined\";\n });\n\n var isArabicLetter = (jsPDFAPI.__arabicParser__.isArabicLetter = function(\n letter\n ) {\n return (\n typeof letter === \"string\" &&\n /^[\\u0600-\\u06FF\\u0750-\\u077F\\u08A0-\\u08FF\\uFB50-\\uFDFF\\uFE70-\\uFEFF]+$/.test(\n letter\n )\n );\n });\n\n var isArabicEndLetter = (jsPDFAPI.__arabicParser__.isArabicEndLetter = function(\n letter\n ) {\n return (\n isArabicLetter(letter) &&\n isInArabicSubstitutionA(letter) &&\n arabicSubstitionA[letter.charCodeAt(0)].length <= 2\n );\n });\n\n var isArabicAlfLetter = (jsPDFAPI.__arabicParser__.isArabicAlfLetter = function(\n letter\n ) {\n return (\n isArabicLetter(letter) && alfletter.indexOf(letter.charCodeAt(0)) >= 0\n );\n });\n\n jsPDFAPI.__arabicParser__.arabicLetterHasIsolatedForm = function(letter) {\n return (\n isArabicLetter(letter) &&\n isInArabicSubstitutionA(letter) &&\n arabicSubstitionA[letter.charCodeAt(0)].length >= 1\n );\n };\n\n var arabicLetterHasFinalForm = (jsPDFAPI.__arabicParser__.arabicLetterHasFinalForm = function(\n letter\n ) {\n return (\n isArabicLetter(letter) &&\n isInArabicSubstitutionA(letter) &&\n arabicSubstitionA[letter.charCodeAt(0)].length >= 2\n );\n });\n\n jsPDFAPI.__arabicParser__.arabicLetterHasInitialForm = function(letter) {\n return (\n isArabicLetter(letter) &&\n isInArabicSubstitutionA(letter) &&\n arabicSubstitionA[letter.charCodeAt(0)].length >= 3\n );\n };\n\n var arabicLetterHasMedialForm = (jsPDFAPI.__arabicParser__.arabicLetterHasMedialForm = function(\n letter\n ) {\n return (\n isArabicLetter(letter) &&\n isInArabicSubstitutionA(letter) &&\n arabicSubstitionA[letter.charCodeAt(0)].length == 4\n );\n });\n\n var resolveLigatures = (jsPDFAPI.__arabicParser__.resolveLigatures = function(\n letters\n ) {\n var i = 0;\n var tmpLigatures = ligatures;\n var result = \"\";\n var effectedLetters = 0;\n\n for (i = 0; i < letters.length; i += 1) {\n if (typeof tmpLigatures[letters.charCodeAt(i)] !== \"undefined\") {\n effectedLetters++;\n tmpLigatures = tmpLigatures[letters.charCodeAt(i)];\n\n if (typeof tmpLigatures === \"number\") {\n result += String.fromCharCode(tmpLigatures);\n tmpLigatures = ligatures;\n effectedLetters = 0;\n }\n if (i === letters.length - 1) {\n tmpLigatures = ligatures;\n result += letters.charAt(i - (effectedLetters - 1));\n i = i - (effectedLetters - 1);\n effectedLetters = 0;\n }\n } else {\n tmpLigatures = ligatures;\n result += letters.charAt(i - effectedLetters);\n i = i - effectedLetters;\n effectedLetters = 0;\n }\n }\n\n return result;\n });\n\n jsPDFAPI.__arabicParser__.isArabicDiacritic = function(letter) {\n return (\n letter !== undefined &&\n arabic_diacritics[letter.charCodeAt(0)] !== undefined\n );\n };\n\n var getCorrectForm = (jsPDFAPI.__arabicParser__.getCorrectForm = function(\n currentChar,\n beforeChar,\n nextChar\n ) {\n if (!isArabicLetter(currentChar)) {\n return -1;\n }\n\n if (isInArabicSubstitutionA(currentChar) === false) {\n return noChangeInForm;\n }\n if (\n !arabicLetterHasFinalForm(currentChar) ||\n (!isArabicLetter(beforeChar) && !isArabicLetter(nextChar)) ||\n (!isArabicLetter(nextChar) && isArabicEndLetter(beforeChar)) ||\n (isArabicEndLetter(currentChar) && !isArabicLetter(beforeChar)) ||\n (isArabicEndLetter(currentChar) && isArabicAlfLetter(beforeChar)) ||\n (isArabicEndLetter(currentChar) && isArabicEndLetter(beforeChar))\n ) {\n return isolatedForm;\n }\n\n if (\n arabicLetterHasMedialForm(currentChar) &&\n isArabicLetter(beforeChar) &&\n !isArabicEndLetter(beforeChar) &&\n isArabicLetter(nextChar) &&\n arabicLetterHasFinalForm(nextChar)\n ) {\n return medialForm;\n }\n\n if (isArabicEndLetter(currentChar) || !isArabicLetter(nextChar)) {\n return finalForm;\n }\n return initialForm;\n });\n\n /**\n * @name processArabic\n * @function\n * @param {string} text\n * @returns {string}\n */\n var parseArabic = function(text) {\n text = text || \"\";\n\n var result = \"\";\n var i = 0;\n var j = 0;\n var position = 0;\n var currentLetter = \"\";\n var prevLetter = \"\";\n var nextLetter = \"\";\n\n var words = text.split(\"\\\\s+\");\n var newWords = [];\n for (i = 0; i < words.length; i += 1) {\n newWords.push(\"\");\n for (j = 0; j < words[i].length; j += 1) {\n currentLetter = words[i][j];\n prevLetter = words[i][j - 1];\n nextLetter = words[i][j + 1];\n if (isArabicLetter(currentLetter)) {\n position = getCorrectForm(currentLetter, prevLetter, nextLetter);\n if (position !== -1) {\n newWords[i] += String.fromCharCode(\n arabicSubstitionA[currentLetter.charCodeAt(0)][position]\n );\n } else {\n newWords[i] += currentLetter;\n }\n } else {\n newWords[i] += currentLetter;\n }\n }\n\n newWords[i] = resolveLigatures(newWords[i]);\n }\n result = newWords.join(\" \");\n\n return result;\n };\n\n var processArabic = (jsPDFAPI.__arabicParser__.processArabic = jsPDFAPI.processArabic = function() {\n var text =\n typeof arguments[0] === \"string\" ? arguments[0] : arguments[0].text;\n var tmpText = [];\n var result;\n\n if (Array.isArray(text)) {\n var i = 0;\n tmpText = [];\n for (i = 0; i < text.length; i += 1) {\n if (Array.isArray(text[i])) {\n tmpText.push([parseArabic(text[i][0]), text[i][1], text[i][2]]);\n } else {\n tmpText.push([parseArabic(text[i])]);\n }\n }\n result = tmpText;\n } else {\n result = parseArabic(text);\n }\n if (typeof arguments[0] === \"string\") {\n return result;\n } else {\n arguments[0].text = result;\n return arguments[0];\n }\n });\n\n jsPDFAPI.events.push([\"preProcessText\", processArabic]);\n})(jsPDF.API);\n","/** @license\n * jsPDF Autoprint Plugin\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * @name autoprint\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * Makes the PDF automatically open the print-Dialog when opened in a PDF-viewer.\n *\n * @name autoPrint\n * @function\n * @param {Object} options (optional) Set the attribute variant to 'non-conform' (default) or 'javascript' to activate different methods of automatic printing when opening in a PDF-viewer .\n * @returns {jsPDF}\n * @example\n * var doc = new jsPDF();\n * doc.text(10, 10, 'This is a test');\n * doc.autoPrint({variant: 'non-conform'});\n * doc.save('autoprint.pdf');\n */\n jsPDFAPI.autoPrint = function(options) {\n \"use strict\";\n var refAutoPrintTag;\n options = options || {};\n options.variant = options.variant || \"non-conform\";\n\n switch (options.variant) {\n case \"javascript\":\n //https://github.com/Rob--W/pdf.js/commit/c676ecb5a0f54677b9f3340c3ef2cf42225453bb\n this.addJS(\"print({});\");\n break;\n case \"non-conform\":\n default:\n this.internal.events.subscribe(\"postPutResources\", function() {\n refAutoPrintTag = this.internal.newObject();\n this.internal.out(\"<<\");\n this.internal.out(\"/S /Named\");\n this.internal.out(\"/Type /Action\");\n this.internal.out(\"/N /Print\");\n this.internal.out(\">>\");\n this.internal.out(\"endobj\");\n });\n\n this.internal.events.subscribe(\"putCatalog\", function() {\n this.internal.out(\"/OpenAction \" + refAutoPrintTag + \" 0 R\");\n });\n break;\n }\n return this;\n };\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF Canvas PlugIn\n * This plugin mimics the HTML5 Canvas\n *\n * The goal is to provide a way for current canvas users to print directly to a PDF.\n * @name canvas\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * @class Canvas\n * @classdesc A Canvas Wrapper for jsPDF\n */\n var Canvas = function() {\n var jsPdfInstance = undefined;\n Object.defineProperty(this, \"pdf\", {\n get: function() {\n return jsPdfInstance;\n },\n set: function(value) {\n jsPdfInstance = value;\n }\n });\n\n var _width = 150;\n /**\n * The height property is a positive integer reflecting the height HTML attribute of the <canvas> element interpreted in CSS pixels. When the attribute is not specified, or if it is set to an invalid value, like a negative, the default value of 150 is used.\n * This is one of the two properties, the other being width, that controls the size of the canvas.\n *\n * @name width\n */\n Object.defineProperty(this, \"width\", {\n get: function() {\n return _width;\n },\n set: function(value) {\n if (isNaN(value) || Number.isInteger(value) === false || value < 0) {\n _width = 150;\n } else {\n _width = value;\n }\n if (this.getContext(\"2d\").pageWrapXEnabled) {\n this.getContext(\"2d\").pageWrapX = _width + 1;\n }\n }\n });\n\n var _height = 300;\n /**\n * The width property is a positive integer reflecting the width HTML attribute of the <canvas> element interpreted in CSS pixels. When the attribute is not specified, or if it is set to an invalid value, like a negative, the default value of 300 is used.\n * This is one of the two properties, the other being height, that controls the size of the canvas.\n *\n * @name height\n */\n Object.defineProperty(this, \"height\", {\n get: function() {\n return _height;\n },\n set: function(value) {\n if (isNaN(value) || Number.isInteger(value) === false || value < 0) {\n _height = 300;\n } else {\n _height = value;\n }\n if (this.getContext(\"2d\").pageWrapYEnabled) {\n this.getContext(\"2d\").pageWrapY = _height + 1;\n }\n }\n });\n\n var _childNodes = [];\n Object.defineProperty(this, \"childNodes\", {\n get: function() {\n return _childNodes;\n },\n set: function(value) {\n _childNodes = value;\n }\n });\n\n var _style = {};\n Object.defineProperty(this, \"style\", {\n get: function() {\n return _style;\n },\n set: function(value) {\n _style = value;\n }\n });\n\n Object.defineProperty(this, \"parentNode\", {});\n };\n\n /**\n * The getContext() method returns a drawing context on the canvas, or null if the context identifier is not supported.\n *\n * @name getContext\n * @function\n * @param {string} contextType Is a String containing the context identifier defining the drawing context associated to the canvas. Possible value is \"2d\", leading to the creation of a Context2D object representing a two-dimensional rendering context.\n * @param {object} contextAttributes\n */\n Canvas.prototype.getContext = function(contextType, contextAttributes) {\n contextType = contextType || \"2d\";\n var key;\n\n if (contextType !== \"2d\") {\n return null;\n }\n for (key in contextAttributes) {\n if (this.pdf.context2d.hasOwnProperty(key)) {\n this.pdf.context2d[key] = contextAttributes[key];\n }\n }\n this.pdf.context2d._canvas = this;\n return this.pdf.context2d;\n };\n\n /**\n * The toDataURL() method is just a stub to throw an error if accidently called.\n *\n * @name toDataURL\n * @function\n */\n Canvas.prototype.toDataURL = function() {\n throw new Error(\"toDataURL is not implemented.\");\n };\n\n jsPDFAPI.events.push([\n \"initialized\",\n function() {\n this.canvas = new Canvas();\n this.canvas.pdf = this;\n }\n ]);\n\n return this;\n})(jsPDF.API);\n","/**\n * @license\n * ====================================================================\n * Copyright (c) 2013 Youssef Beddad, youssef.beddad@gmail.com\n * 2013 Eduardo Menezes de Morais, eduardo.morais@usp.br\n * 2013 Lee Driscoll, https://github.com/lsdriscoll\n * 2014 Juan Pablo Gaviria, https://github.com/juanpgaviria\n * 2014 James Hall, james@parall.ax\n * 2014 Diego Casorran, https://github.com/diegocr\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * @name cell\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n var NO_MARGINS = { left: 0, top: 0, bottom: 0, right: 0 };\n\n var px2pt = (0.264583 * 72) / 25.4;\n var printingHeaderRow = false;\n\n var _initialize = function() {\n if (typeof this.internal.__cell__ === \"undefined\") {\n this.internal.__cell__ = {};\n this.internal.__cell__.padding = 3;\n this.internal.__cell__.headerFunction = undefined;\n this.internal.__cell__.margins = Object.assign({}, NO_MARGINS);\n this.internal.__cell__.margins.width = this.getPageWidth();\n _reset.call(this);\n }\n };\n\n var _reset = function() {\n this.internal.__cell__.lastCell = new Cell();\n this.internal.__cell__.pages = 1;\n };\n\n var Cell = function() {\n var _x = arguments[0];\n Object.defineProperty(this, \"x\", {\n enumerable: true,\n get: function() {\n return _x;\n },\n set: function(value) {\n _x = value;\n }\n });\n var _y = arguments[1];\n Object.defineProperty(this, \"y\", {\n enumerable: true,\n get: function() {\n return _y;\n },\n set: function(value) {\n _y = value;\n }\n });\n var _width = arguments[2];\n Object.defineProperty(this, \"width\", {\n enumerable: true,\n get: function() {\n return _width;\n },\n set: function(value) {\n _width = value;\n }\n });\n var _height = arguments[3];\n Object.defineProperty(this, \"height\", {\n enumerable: true,\n get: function() {\n return _height;\n },\n set: function(value) {\n _height = value;\n }\n });\n var _text = arguments[4];\n Object.defineProperty(this, \"text\", {\n enumerable: true,\n get: function() {\n return _text;\n },\n set: function(value) {\n _text = value;\n }\n });\n var _lineNumber = arguments[5];\n Object.defineProperty(this, \"lineNumber\", {\n enumerable: true,\n get: function() {\n return _lineNumber;\n },\n set: function(value) {\n _lineNumber = value;\n }\n });\n var _align = arguments[6];\n Object.defineProperty(this, \"align\", {\n enumerable: true,\n get: function() {\n return _align;\n },\n set: function(value) {\n _align = value;\n }\n });\n\n return this;\n };\n\n Cell.prototype.clone = function() {\n return new Cell(\n this.x,\n this.y,\n this.width,\n this.height,\n this.text,\n this.lineNumber,\n this.align\n );\n };\n\n Cell.prototype.toArray = function() {\n return [\n this.x,\n this.y,\n this.width,\n this.height,\n this.text,\n this.lineNumber,\n this.align\n ];\n };\n\n /**\n * @name setHeaderFunction\n * @function\n * @param {function} func\n */\n jsPDFAPI.setHeaderFunction = function(func) {\n _initialize.call(this);\n this.internal.__cell__.headerFunction =\n typeof func === \"function\" ? func : undefined;\n return this;\n };\n\n /**\n * @name getTextDimensions\n * @function\n * @param {string} txt\n * @returns {Object} dimensions\n */\n jsPDFAPI.getTextDimensions = function(text, options) {\n _initialize.call(this);\n options = options || {};\n var fontSize = options.fontSize || this.getFontSize();\n var font = options.font || this.getFont();\n var scaleFactor = options.scaleFactor || this.internal.scaleFactor;\n var width = 0;\n var amountOfLines = 0;\n var height = 0;\n var tempWidth = 0;\n var scope = this;\n\n if (!Array.isArray(text) && typeof text !== \"string\") {\n if (typeof text === \"number\") {\n text = String(text);\n } else {\n throw new Error(\n \"getTextDimensions expects text-parameter to be of type String or type Number or an Array of Strings.\"\n );\n }\n }\n\n const maxWidth = options.maxWidth;\n if (maxWidth > 0) {\n if (typeof text === \"string\") {\n text = this.splitTextToSize(text, maxWidth);\n } else if (Object.prototype.toString.call(text) === \"[object Array]\") {\n text = text.reduce(function(acc, textLine) {\n return acc.concat(scope.splitTextToSize(textLine, maxWidth));\n }, []);\n }\n } else {\n // Without the else clause, it will not work if you do not pass along maxWidth\n text = Array.isArray(text) ? text : [text];\n }\n\n for (var i = 0; i < text.length; i++) {\n tempWidth = this.getStringUnitWidth(text[i], { font: font }) * fontSize;\n if (width < tempWidth) {\n width = tempWidth;\n }\n }\n\n if (width !== 0) {\n amountOfLines = text.length;\n }\n\n width = width / scaleFactor;\n height = Math.max(\n (amountOfLines * fontSize * this.getLineHeightFactor() -\n fontSize * (this.getLineHeightFactor() - 1)) /\n scaleFactor,\n 0\n );\n return { w: width, h: height };\n };\n\n /**\n * @name cellAddPage\n * @function\n */\n jsPDFAPI.cellAddPage = function() {\n _initialize.call(this);\n\n this.addPage();\n\n var margins = this.internal.__cell__.margins || NO_MARGINS;\n this.internal.__cell__.lastCell = new Cell(\n margins.left,\n margins.top,\n undefined,\n undefined\n );\n this.internal.__cell__.pages += 1;\n\n return this;\n };\n\n /**\n * @name cell\n * @function\n * @param {number} x\n * @param {number} y\n * @param {number} width\n * @param {number} height\n * @param {string} text\n * @param {number} lineNumber lineNumber\n * @param {string} align\n * @return {jsPDF} jsPDF-instance\n */\n var cell = (jsPDFAPI.cell = function() {\n var currentCell;\n\n if (arguments[0] instanceof Cell) {\n currentCell = arguments[0];\n } else {\n currentCell = new Cell(\n arguments[0],\n arguments[1],\n arguments[2],\n arguments[3],\n arguments[4],\n arguments[5]\n );\n }\n _initialize.call(this);\n var lastCell = this.internal.__cell__.lastCell;\n var padding = this.internal.__cell__.padding;\n var margins = this.internal.__cell__.margins || NO_MARGINS;\n var tableHeaderRow = this.internal.__cell__.tableHeaderRow;\n var printHeaders = this.internal.__cell__.printHeaders;\n // If this is not the first cell, we must change its position\n if (typeof lastCell.lineNumber !== \"undefined\") {\n if (lastCell.lineNumber === currentCell.lineNumber) {\n //Same line\n currentCell.x = (lastCell.x || 0) + (lastCell.width || 0);\n currentCell.y = lastCell.y || 0;\n } else {\n //New line\n if (\n lastCell.y + lastCell.height + currentCell.height + margins.bottom >\n this.getPageHeight()\n ) {\n this.cellAddPage();\n currentCell.y = margins.top;\n if (printHeaders && tableHeaderRow) {\n this.printHeaderRow(currentCell.lineNumber, true);\n currentCell.y += tableHeaderRow[0].height;\n }\n } else {\n currentCell.y = lastCell.y + lastCell.height || currentCell.y;\n }\n }\n }\n\n if (typeof currentCell.text[0] !== \"undefined\") {\n this.rect(\n currentCell.x,\n currentCell.y,\n currentCell.width,\n currentCell.height,\n printingHeaderRow === true ? \"FD\" : undefined\n );\n if (currentCell.align === \"right\") {\n this.text(\n currentCell.text,\n currentCell.x + currentCell.width - padding,\n currentCell.y + padding,\n { align: \"right\", baseline: \"top\" }\n );\n } else if (currentCell.align === \"center\") {\n this.text(\n currentCell.text,\n currentCell.x + currentCell.width / 2,\n currentCell.y + padding,\n {\n align: \"center\",\n baseline: \"top\",\n maxWidth: currentCell.width - padding - padding\n }\n );\n } else {\n this.text(\n currentCell.text,\n currentCell.x + padding,\n currentCell.y + padding,\n {\n align: \"left\",\n baseline: \"top\",\n maxWidth: currentCell.width - padding - padding\n }\n );\n }\n }\n this.internal.__cell__.lastCell = currentCell;\n return this;\n });\n\n /**\n * Create a table from a set of data.\n * @name table\n * @function\n * @param {Integer} [x] : left-position for top-left corner of table\n * @param {Integer} [y] top-position for top-left corner of table\n * @param {Object[]} [data] An array of objects containing key-value pairs corresponding to a row of data.\n * @param {String[]} [headers] Omit or null to auto-generate headers at a performance cost\n\n * @param {Object} [config.printHeaders] True to print column headers at the top of every page\n * @param {Object} [config.autoSize] True to dynamically set the column widths to match the widest cell value\n * @param {Object} [config.margins] margin values for left, top, bottom, and width\n * @param {Object} [config.fontSize] Integer fontSize to use (optional)\n * @param {Object} [config.padding] cell-padding in pt to use (optional)\n * @param {Object} [config.headerBackgroundColor] default is #c8c8c8 (optional)\n * @param {Object} [config.headerTextColor] default is #000 (optional)\n * @param {Object} [config.rowStart] callback to handle before print each row (optional)\n * @param {Object} [config.cellStart] callback to handle before print each cell (optional)\n * @returns {jsPDF} jsPDF-instance\n */\n\n jsPDFAPI.table = function(x, y, data, headers, config) {\n _initialize.call(this);\n if (!data) {\n throw new Error(\"No data for PDF table.\");\n }\n\n config = config || {};\n\n var headerNames = [],\n headerLabels = [],\n headerAligns = [],\n i,\n columnMatrix = {},\n columnWidths = {},\n column,\n columnMinWidths = [],\n j,\n tableHeaderConfigs = [],\n //set up defaults. If a value is provided in config, defaults will be overwritten:\n autoSize = config.autoSize || false,\n printHeaders = config.printHeaders === false ? false : true,\n fontSize =\n config.css && typeof config.css[\"font-size\"] !== \"undefined\"\n ? config.css[\"font-size\"] * 16\n : config.fontSize || 12,\n margins =\n config.margins ||\n Object.assign({ width: this.getPageWidth() }, NO_MARGINS),\n padding = typeof config.padding === \"number\" ? config.padding : 3,\n headerBackgroundColor = config.headerBackgroundColor || \"#c8c8c8\",\n headerTextColor = config.headerTextColor || \"#000\";\n\n _reset.call(this);\n\n this.internal.__cell__.printHeaders = printHeaders;\n this.internal.__cell__.margins = margins;\n this.internal.__cell__.table_font_size = fontSize;\n this.internal.__cell__.padding = padding;\n this.internal.__cell__.headerBackgroundColor = headerBackgroundColor;\n this.internal.__cell__.headerTextColor = headerTextColor;\n this.setFontSize(fontSize);\n\n // Set header values\n if (headers === undefined || headers === null) {\n // No headers defined so we derive from data\n headerNames = Object.keys(data[0]);\n headerLabels = headerNames;\n headerAligns = headerNames.map(function() {\n return \"left\";\n });\n } else if (Array.isArray(headers) && typeof headers[0] === \"object\") {\n headerNames = headers.map(function(header) {\n return header.name;\n });\n headerLabels = headers.map(function(header) {\n return header.prompt || header.name || \"\";\n });\n headerAligns = headers.map(function(header) {\n return header.align || \"left\";\n });\n // Split header configs into names and prompts\n for (i = 0; i < headers.length; i += 1) {\n columnWidths[headers[i].name] = headers[i].width * px2pt;\n }\n } else if (Array.isArray(headers) && typeof headers[0] === \"string\") {\n headerNames = headers;\n headerLabels = headerNames;\n headerAligns = headerNames.map(function() {\n return \"left\";\n });\n }\n\n if (\n autoSize ||\n (Array.isArray(headers) && typeof headers[0] === \"string\")\n ) {\n var headerName;\n for (i = 0; i < headerNames.length; i += 1) {\n headerName = headerNames[i];\n\n // Create a matrix of columns e.g., {column_title: [row1_Record, row2_Record]}\n\n columnMatrix[headerName] = data.map(function(rec) {\n return rec[headerName];\n });\n\n // get header width\n this.setFont(undefined, \"bold\");\n columnMinWidths.push(\n this.getTextDimensions(headerLabels[i], {\n fontSize: this.internal.__cell__.table_font_size,\n scaleFactor: this.internal.scaleFactor\n }).w\n );\n column = columnMatrix[headerName];\n\n // get cell widths\n this.setFont(undefined, \"normal\");\n for (j = 0; j < column.length; j += 1) {\n columnMinWidths.push(\n this.getTextDimensions(column[j], {\n fontSize: this.internal.__cell__.table_font_size,\n scaleFactor: this.internal.scaleFactor\n }).w\n );\n }\n\n // get final column width\n columnWidths[headerName] =\n Math.max.apply(null, columnMinWidths) + padding + padding;\n\n //have to reset\n columnMinWidths = [];\n }\n }\n\n // -- Construct the table\n\n if (printHeaders) {\n var row = {};\n for (i = 0; i < headerNames.length; i += 1) {\n row[headerNames[i]] = {};\n row[headerNames[i]].text = headerLabels[i];\n row[headerNames[i]].align = headerAligns[i];\n }\n\n var rowHeight = calculateLineHeight.call(this, row, columnWidths);\n\n // Construct the header row\n tableHeaderConfigs = headerNames.map(function(value) {\n return new Cell(\n x,\n y,\n columnWidths[value],\n rowHeight,\n row[value].text,\n undefined,\n row[value].align\n );\n });\n\n // Store the table header config\n this.setTableHeaderRow(tableHeaderConfigs);\n\n // Print the header for the start of the table\n this.printHeaderRow(1, false);\n }\n\n // Construct the data rows\n\n var align = headers.reduce(function(pv, cv) {\n pv[cv.name] = cv.align;\n return pv;\n }, {});\n for (i = 0; i < data.length; i += 1) {\n if (\"rowStart\" in config && config.rowStart instanceof Function) {\n config.rowStart(\n {\n row: i,\n data: data[i]\n },\n this\n );\n }\n var lineHeight = calculateLineHeight.call(this, data[i], columnWidths);\n\n for (j = 0; j < headerNames.length; j += 1) {\n var cellData = data[i][headerNames[j]];\n if (\"cellStart\" in config && config.cellStart instanceof Function) {\n config.cellStart(\n {\n row: i,\n col: j,\n data: cellData\n },\n this\n );\n }\n cell.call(\n this,\n new Cell(\n x,\n y,\n columnWidths[headerNames[j]],\n lineHeight,\n cellData,\n i + 2,\n align[headerNames[j]]\n )\n );\n }\n }\n this.internal.__cell__.table_x = x;\n this.internal.__cell__.table_y = y;\n return this;\n };\n\n /**\n * Calculate the height for containing the highest column\n *\n * @name calculateLineHeight\n * @function\n * @param {Object[]} model is the line of data we want to calculate the height of\n * @param {Integer[]} columnWidths is size of each column\n * @returns {number} lineHeight\n * @private\n */\n var calculateLineHeight = function calculateLineHeight(model, columnWidths) {\n var padding = this.internal.__cell__.padding;\n var fontSize = this.internal.__cell__.table_font_size;\n var scaleFactor = this.internal.scaleFactor;\n\n return Object.keys(model)\n .map(function(key) {\n var value = model[key];\n return this.splitTextToSize(\n value.hasOwnProperty(\"text\") ? value.text : value,\n columnWidths[key] - padding - padding\n );\n }, this)\n .map(function(value) {\n return (\n (this.getLineHeightFactor() * value.length * fontSize) / scaleFactor +\n padding +\n padding\n );\n }, this)\n .reduce(function(pv, cv) {\n return Math.max(pv, cv);\n }, 0);\n };\n\n /**\n * Store the config for outputting a table header\n *\n * @name setTableHeaderRow\n * @function\n * @param {Object[]} config\n * An array of cell configs that would define a header row: Each config matches the config used by jsPDFAPI.cell\n * except the lineNumber parameter is excluded\n */\n jsPDFAPI.setTableHeaderRow = function(config) {\n _initialize.call(this);\n this.internal.__cell__.tableHeaderRow = config;\n };\n\n /**\n * Output the store header row\n *\n * @name printHeaderRow\n * @function\n * @param {number} lineNumber The line number to output the header at\n * @param {boolean} new_page\n */\n jsPDFAPI.printHeaderRow = function(lineNumber, new_page) {\n _initialize.call(this);\n if (!this.internal.__cell__.tableHeaderRow) {\n throw new Error(\"Property tableHeaderRow does not exist.\");\n }\n\n var tableHeaderCell;\n\n printingHeaderRow = true;\n if (typeof this.internal.__cell__.headerFunction === \"function\") {\n var position = this.internal.__cell__.headerFunction(\n this,\n this.internal.__cell__.pages\n );\n this.internal.__cell__.lastCell = new Cell(\n position[0],\n position[1],\n position[2],\n position[3],\n undefined,\n -1\n );\n }\n this.setFont(undefined, \"bold\");\n\n var tempHeaderConf = [];\n for (var i = 0; i < this.internal.__cell__.tableHeaderRow.length; i += 1) {\n tableHeaderCell = this.internal.__cell__.tableHeaderRow[i].clone();\n if (new_page) {\n tableHeaderCell.y = this.internal.__cell__.margins.top || 0;\n tempHeaderConf.push(tableHeaderCell);\n }\n tableHeaderCell.lineNumber = lineNumber;\n var currentTextColor = this.getTextColor();\n this.setTextColor(this.internal.__cell__.headerTextColor);\n this.setFillColor(this.internal.__cell__.headerBackgroundColor);\n cell.call(this, tableHeaderCell);\n this.setTextColor(currentTextColor);\n }\n if (tempHeaderConf.length > 0) {\n this.setTableHeaderRow(tempHeaderConf);\n }\n this.setFont(undefined, \"normal\");\n printingHeaderRow = false;\n };\n})(jsPDF.API);\n","/**\n * @license\n * ====================================================================\n * Copyright (c) 2013 Youssef Beddad, youssef.beddad@gmail.com\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF JavaScript plugin\n *\n * @name javascript\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n var jsNamesObj, jsJsObj, text;\n /**\n * @name addJS\n * @function\n * @param {string} javascript The javascript to be embedded into the PDF-file.\n * @returns {jsPDF}\n */\n jsPDFAPI.addJS = function(javascript) {\n text = javascript;\n this.internal.events.subscribe(\"postPutResources\", function() {\n jsNamesObj = this.internal.newObject();\n this.internal.out(\"<<\");\n this.internal.out(\"/Names [(EmbeddedJS) \" + (jsNamesObj + 1) + \" 0 R]\");\n this.internal.out(\">>\");\n this.internal.out(\"endobj\");\n\n jsJsObj = this.internal.newObject();\n this.internal.out(\"<<\");\n this.internal.out(\"/S /JavaScript\");\n this.internal.out(\"/JS (\" + text + \")\");\n this.internal.out(\">>\");\n this.internal.out(\"endobj\");\n });\n this.internal.events.subscribe(\"putCatalog\", function() {\n if (jsNamesObj !== undefined && jsJsObj !== undefined) {\n this.internal.out(\"/Names <</JavaScript \" + jsNamesObj + \" 0 R>>\");\n }\n });\n return this;\n };\n})(jsPDF.API);\n","/**\n * @license\n * jsPDF fileloading PlugIn\n * Copyright (c) 2018 Aras Abbasi (aras.abbasi@gmail.com)\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * @name fileloading\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * @name loadFile\n * @function\n * @param {string} url\n * @param {boolean} sync\n * @param {function} callback\n * @returns {string|undefined} result\n */\n jsPDFAPI.loadFile = function(url, sync, callback) {\n return browserRequest(url, sync, callback);\n\n };\n\n /**\n * @name loadImageFile\n * @function\n * @param {string} path\n * @param {boolean} sync\n * @param {function} callback\n */\n jsPDFAPI.loadImageFile = jsPDFAPI.loadFile;\n\n function browserRequest(url, sync, callback) {\n sync = sync === false ? false : true;\n callback = typeof callback === \"function\" ? callback : function() {};\n var result = undefined;\n\n var xhr = function(url, sync, callback) {\n var request = new XMLHttpRequest();\n var i = 0;\n\n var sanitizeUnicode = function(data) {\n var dataLength = data.length;\n var charArray = [];\n var StringFromCharCode = String.fromCharCode;\n\n //Transform Unicode to ASCII\n for (i = 0; i < dataLength; i += 1) {\n charArray.push(StringFromCharCode(data.charCodeAt(i) & 0xff));\n }\n return charArray.join(\"\");\n };\n\n request.open(\"GET\", url, !sync);\n // XHR binary charset opt by Marcus Granado 2006 [http://mgran.blogspot.com]\n request.overrideMimeType(\"text/plain; charset=x-user-defined\");\n\n if (sync === false) {\n request.onload = function() {\n if (request.status === 200) {\n callback(sanitizeUnicode(this.responseText));\n } else {\n callback(undefined);\n }\n };\n }\n request.send(null);\n\n if (sync && request.status === 200) {\n return sanitizeUnicode(request.responseText);\n }\n };\n try {\n result = xhr(url, sync, callback);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n return result;\n }\n\n function nodeReadFile(url, sync, callback) {\n sync = sync === false ? false : true;\n var result = undefined;\n\n var fs = require(\"fs\");\n var path = require(\"path\");\n\n url = path.resolve(url);\n if (sync) {\n try {\n result = fs.readFileSync(url, { encoding: \"latin1\" });\n } catch (e) {\n return undefined;\n }\n } else {\n fs.readFile(url, { encoding: \"latin1\" }, function(err, data) {\n if (!callback) {\n return;\n }\n if (err) {\n callback(undefined);\n }\n callback(data);\n });\n }\n\n return result;\n }\n})(jsPDF.API);\n","/* eslint-disable no-fallthrough */\r\n/* eslint-disable no-console */\r\n/**\r\n * @license\r\n * jsPDF Context2D PlugIn Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\r\n *\r\n * Licensed under the MIT License. http://opensource.org/licenses/mit-license\r\n */\r\n\r\nimport { jsPDF } from \"../jspdf.js\";\r\nimport { RGBColor } from \"../libs/rgbcolor.js\";\r\nimport { console } from \"../libs/console.js\";\r\nimport {\r\n buildFontFaceMap,\r\n parseFontFamily,\r\n resolveFontFace\r\n} from \"../libs/fontFace.js\";\r\n\r\n/**\r\n * This plugin mimics the HTML5 CanvasRenderingContext2D.\r\n *\r\n * The goal is to provide a way for current canvas implementations to print directly to a PDF.\r\n *\r\n * @name context2d\r\n * @module\r\n */\r\n(function(jsPDFAPI) {\r\n \"use strict\";\r\n var ContextLayer = function(ctx) {\r\n ctx = ctx || {};\r\n this.isStrokeTransparent = ctx.isStrokeTransparent || false;\r\n this.strokeOpacity = ctx.strokeOpacity || 1;\r\n this.strokeStyle = ctx.strokeStyle || \"#000000\";\r\n this.fillStyle = ctx.fillStyle || \"#000000\";\r\n this.isFillTransparent = ctx.isFillTransparent || false;\r\n this.fillOpacity = ctx.fillOpacity || 1;\r\n this.font = ctx.font || \"10px sans-serif\";\r\n this.textBaseline = ctx.textBaseline || \"alphabetic\";\r\n this.textAlign = ctx.textAlign || \"left\";\r\n this.lineWidth = ctx.lineWidth || 1;\r\n this.lineJoin = ctx.lineJoin || \"miter\";\r\n this.lineCap = ctx.lineCap || \"butt\";\r\n this.path = ctx.path || [];\r\n this.transform =\r\n typeof ctx.transform !== \"undefined\"\r\n ? ctx.transform.clone()\r\n : new Matrix();\r\n this.globalCompositeOperation = ctx.globalCompositeOperation || \"normal\";\r\n this.globalAlpha = ctx.globalAlpha || 1.0;\r\n this.clip_path = ctx.clip_path || [];\r\n this.currentPoint = ctx.currentPoint || new Point();\r\n this.miterLimit = ctx.miterLimit || 10.0;\r\n this.lastPoint = ctx.lastPoint || new Point();\r\n this.lineDashOffset = ctx.lineDashOffset || 0.0;\r\n this.lineDash = ctx.lineDash || [];\r\n this.margin = ctx.margin || [0, 0, 0, 0];\r\n this.prevPageLastElemOffset = ctx.prevPageLastElemOffset || 0;\r\n\r\n this.ignoreClearRect =\r\n typeof ctx.ignoreClearRect === \"boolean\" ? ctx.ignoreClearRect : true;\r\n return this;\r\n };\r\n\r\n //stub\r\n var f2,\r\n getHorizontalCoordinateString,\r\n getVerticalCoordinateString,\r\n getHorizontalCoordinate,\r\n getVerticalCoordinate,\r\n Point,\r\n Rectangle,\r\n Matrix,\r\n _ctx;\r\n jsPDFAPI.events.push([\r\n \"initialized\",\r\n function() {\r\n this.context2d = new Context2D(this);\r\n\r\n f2 = this.internal.f2;\r\n getHorizontalCoordinateString = this.internal.getCoordinateString;\r\n getVerticalCoordinateString = this.internal.getVerticalCoordinateString;\r\n getHorizontalCoordinate = this.internal.getHorizontalCoordinate;\r\n getVerticalCoordinate = this.internal.getVerticalCoordinate;\r\n Point = this.internal.Point;\r\n Rectangle = this.internal.Rectangle;\r\n Matrix = this.internal.Matrix;\r\n _ctx = new ContextLayer();\r\n }\r\n ]);\r\n\r\n var Context2D = function(pdf) {\r\n Object.defineProperty(this, \"canvas\", {\r\n get: function() {\r\n return { parentNode: false, style: false };\r\n }\r\n });\r\n\r\n var _pdf = pdf;\r\n Object.defineProperty(this, \"pdf\", {\r\n get: function() {\r\n return _pdf;\r\n }\r\n });\r\n\r\n var _pageWrapXEnabled = false;\r\n /**\r\n * @name pageWrapXEnabled\r\n * @type {boolean}\r\n * @default false\r\n */\r\n Object.defineProperty(this, \"pageWrapXEnabled\", {\r\n get: function() {\r\n return _pageWrapXEnabled;\r\n },\r\n set: function(value) {\r\n _pageWrapXEnabled = Boolean(value);\r\n }\r\n });\r\n\r\n var _pageWrapYEnabled = false;\r\n /**\r\n * @name pageWrapYEnabled\r\n * @type {boolean}\r\n * @default true\r\n */\r\n Object.defineProperty(this, \"pageWrapYEnabled\", {\r\n get: function() {\r\n return _pageWrapYEnabled;\r\n },\r\n set: function(value) {\r\n _pageWrapYEnabled = Boolean(value);\r\n }\r\n });\r\n\r\n var _posX = 0;\r\n /**\r\n * @name posX\r\n * @type {number}\r\n * @default 0\r\n */\r\n Object.defineProperty(this, \"posX\", {\r\n get: function() {\r\n return _posX;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n _posX = value;\r\n }\r\n }\r\n });\r\n\r\n var _posY = 0;\r\n /**\r\n * @name posY\r\n * @type {number}\r\n * @default 0\r\n */\r\n Object.defineProperty(this, \"posY\", {\r\n get: function() {\r\n return _posY;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n _posY = value;\r\n }\r\n }\r\n });\r\n\r\n /**\r\n * Gets or sets the page margin when using auto paging. Has no effect when {@link autoPaging} is off.\r\n * @name margin\r\n * @type {number|number[]}\r\n * @default [0, 0, 0, 0]\r\n */\r\n Object.defineProperty(this, \"margin\", {\r\n get: function() {\r\n return _ctx.margin;\r\n },\r\n set: function(value) {\r\n var margin;\r\n if (typeof value === \"number\") {\r\n margin = [value, value, value, value];\r\n } else {\r\n margin = new Array(4);\r\n margin[0] = value[0];\r\n margin[1] = value.length >= 2 ? value[1] : margin[0];\r\n margin[2] = value.length >= 3 ? value[2] : margin[0];\r\n margin[3] = value.length >= 4 ? value[3] : margin[1];\r\n }\r\n _ctx.margin = margin;\r\n }\r\n });\r\n\r\n var _autoPaging = false;\r\n /**\r\n * Gets or sets the auto paging mode. When auto paging is enabled, the context2d will automatically draw on the\r\n * next page if a shape or text chunk doesn't fit entirely on the current page. The context2d will create new\r\n * pages if required.\r\n *\r\n * Context2d supports different modes:\r\n * <ul>\r\n * <li>\r\n * <code>false</code>: Auto paging is disabled.\r\n * </li>\r\n * <li>\r\n * <code>true</code> or <code>'slice'</code>: Will cut shapes or text chunks across page breaks. Will possibly\r\n * slice text in half, making it difficult to read.\r\n * </li>\r\n * <li>\r\n * <code>'text'</code>: Trys not to cut text in half across page breaks. Works best for documents consisting\r\n * mostly of a single column of text.\r\n * </li>\r\n * </ul>\r\n * @name Context2D#autoPaging\r\n * @type {boolean|\"slice\"|\"text\"}\r\n * @default false\r\n */\r\n Object.defineProperty(this, \"autoPaging\", {\r\n get: function() {\r\n return _autoPaging;\r\n },\r\n set: function(value) {\r\n _autoPaging = value;\r\n }\r\n });\r\n\r\n var lastBreak = 0;\r\n /**\r\n * @name lastBreak\r\n * @type {number}\r\n * @default 0\r\n */\r\n Object.defineProperty(this, \"lastBreak\", {\r\n get: function() {\r\n return lastBreak;\r\n },\r\n set: function(value) {\r\n lastBreak = value;\r\n }\r\n });\r\n\r\n var pageBreaks = [];\r\n /**\r\n * Y Position of page breaks.\r\n * @name pageBreaks\r\n * @type {number}\r\n * @default 0\r\n */\r\n Object.defineProperty(this, \"pageBreaks\", {\r\n get: function() {\r\n return pageBreaks;\r\n },\r\n set: function(value) {\r\n pageBreaks = value;\r\n }\r\n });\r\n\r\n /**\r\n * @name ctx\r\n * @type {object}\r\n * @default {}\r\n */\r\n Object.defineProperty(this, \"ctx\", {\r\n get: function() {\r\n return _ctx;\r\n },\r\n set: function(value) {\r\n if (value instanceof ContextLayer) {\r\n _ctx = value;\r\n }\r\n }\r\n });\r\n\r\n /**\r\n * @name path\r\n * @type {array}\r\n * @default []\r\n */\r\n Object.defineProperty(this, \"path\", {\r\n get: function() {\r\n return _ctx.path;\r\n },\r\n set: function(value) {\r\n _ctx.path = value;\r\n }\r\n });\r\n\r\n /**\r\n * @name ctxStack\r\n * @type {array}\r\n * @default []\r\n */\r\n var _ctxStack = [];\r\n Object.defineProperty(this, \"ctxStack\", {\r\n get: function() {\r\n return _ctxStack;\r\n },\r\n set: function(value) {\r\n _ctxStack = value;\r\n }\r\n });\r\n\r\n /**\r\n * Sets or returns the color, gradient, or pattern used to fill the drawing\r\n *\r\n * @name fillStyle\r\n * @default #000000\r\n * @property {(color|gradient|pattern)} value The color of the drawing. Default value is #000000<br />\r\n * A gradient object (linear or radial) used to fill the drawing (not supported by context2d)<br />\r\n * A pattern object to use to fill the drawing (not supported by context2d)\r\n */\r\n Object.defineProperty(this, \"fillStyle\", {\r\n get: function() {\r\n return this.ctx.fillStyle;\r\n },\r\n set: function(value) {\r\n var rgba;\r\n rgba = getRGBA(value);\r\n\r\n this.ctx.fillStyle = rgba.style;\r\n this.ctx.isFillTransparent = rgba.a === 0;\r\n this.ctx.fillOpacity = rgba.a;\r\n\r\n this.pdf.setFillColor(rgba.r, rgba.g, rgba.b, { a: rgba.a });\r\n this.pdf.setTextColor(rgba.r, rgba.g, rgba.b, { a: rgba.a });\r\n }\r\n });\r\n\r\n /**\r\n * Sets or returns the color, gradient, or pattern used for strokes\r\n *\r\n * @name strokeStyle\r\n * @default #000000\r\n * @property {color} color A CSS color value that indicates the stroke color of the drawing. Default value is #000000 (not supported by context2d)\r\n * @property {gradient} gradient A gradient object (linear or radial) used to create a gradient stroke (not supported by context2d)\r\n * @property {pattern} pattern A pattern object used to create a pattern stroke (not supported by context2d)\r\n */\r\n Object.defineProperty(this, \"strokeStyle\", {\r\n get: function() {\r\n return this.ctx.strokeStyle;\r\n },\r\n set: function(value) {\r\n var rgba = getRGBA(value);\r\n\r\n this.ctx.strokeStyle = rgba.style;\r\n this.ctx.isStrokeTransparent = rgba.a === 0;\r\n this.ctx.strokeOpacity = rgba.a;\r\n\r\n if (rgba.a === 0) {\r\n this.pdf.setDrawColor(255, 255, 255);\r\n } else if (rgba.a === 1) {\r\n this.pdf.setDrawColor(rgba.r, rgba.g, rgba.b);\r\n } else {\r\n this.pdf.setDrawColor(rgba.r, rgba.g, rgba.b);\r\n }\r\n }\r\n });\r\n\r\n /**\r\n * Sets or returns the style of the end caps for a line\r\n *\r\n * @name lineCap\r\n * @default butt\r\n * @property {(butt|round|square)} lineCap butt A flat edge is added to each end of the line <br/>\r\n * round A rounded end cap is added to each end of the line<br/>\r\n * square A square end cap is added to each end of the line<br/>\r\n */\r\n Object.defineProperty(this, \"lineCap\", {\r\n get: function() {\r\n return this.ctx.lineCap;\r\n },\r\n set: function(value) {\r\n if ([\"butt\", \"round\", \"square\"].indexOf(value) !== -1) {\r\n this.ctx.lineCap = value;\r\n this.pdf.setLineCap(value);\r\n }\r\n }\r\n });\r\n\r\n /**\r\n * Sets or returns the current line width\r\n *\r\n * @name lineWidth\r\n * @default 1\r\n * @property {number} lineWidth The current line width, in pixels\r\n */\r\n Object.defineProperty(this, \"lineWidth\", {\r\n get: function() {\r\n return this.ctx.lineWidth;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n this.ctx.lineWidth = value;\r\n this.pdf.setLineWidth(value);\r\n }\r\n }\r\n });\r\n\r\n /**\r\n * Sets or returns the type of corner created, when two lines meet\r\n */\r\n Object.defineProperty(this, \"lineJoin\", {\r\n get: function() {\r\n return this.ctx.lineJoin;\r\n },\r\n set: function(value) {\r\n if ([\"bevel\", \"round\", \"miter\"].indexOf(value) !== -1) {\r\n this.ctx.lineJoin = value;\r\n this.pdf.setLineJoin(value);\r\n }\r\n }\r\n });\r\n\r\n /**\r\n * A number specifying the miter limit ratio in coordinate space units. Zero, negative, Infinity, and NaN values are ignored. The default value is 10.0.\r\n *\r\n * @name miterLimit\r\n * @default 10\r\n */\r\n Object.defineProperty(this, \"miterLimit\", {\r\n get: function() {\r\n return this.ctx.miterLimit;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n this.ctx.miterLimit = value;\r\n this.pdf.setMiterLimit(value);\r\n }\r\n }\r\n });\r\n\r\n Object.defineProperty(this, \"textBaseline\", {\r\n get: function() {\r\n return this.ctx.textBaseline;\r\n },\r\n set: function(value) {\r\n this.ctx.textBaseline = value;\r\n }\r\n });\r\n\r\n Object.defineProperty(this, \"textAlign\", {\r\n get: function() {\r\n return this.ctx.textAlign;\r\n },\r\n set: function(value) {\r\n if ([\"right\", \"end\", \"center\", \"left\", \"start\"].indexOf(value) !== -1) {\r\n this.ctx.textAlign = value;\r\n }\r\n }\r\n });\r\n\r\n var _fontFaceMap = null;\r\n\r\n function getFontFaceMap(pdf, fontFaces) {\r\n if (_fontFaceMap === null) {\r\n var fontMap = pdf.getFontList();\r\n\r\n var convertedFontFaces = convertToFontFaces(fontMap);\r\n\r\n _fontFaceMap = buildFontFaceMap(convertedFontFaces.concat(fontFaces));\r\n }\r\n\r\n return _fontFaceMap;\r\n }\r\n\r\n function convertToFontFaces(fontMap) {\r\n var fontFaces = [];\r\n\r\n Object.keys(fontMap).forEach(function(family) {\r\n var styles = fontMap[family];\r\n\r\n styles.forEach(function(style) {\r\n var fontFace = null;\r\n\r\n switch (style) {\r\n case \"bold\":\r\n fontFace = {\r\n family: family,\r\n weight: \"bold\"\r\n };\r\n break;\r\n\r\n case \"italic\":\r\n fontFace = {\r\n family: family,\r\n style: \"italic\"\r\n };\r\n break;\r\n\r\n case \"bolditalic\":\r\n fontFace = {\r\n family: family,\r\n weight: \"bold\",\r\n style: \"italic\"\r\n };\r\n break;\r\n\r\n case \"\":\r\n case \"normal\":\r\n fontFace = {\r\n family: family\r\n };\r\n break;\r\n }\r\n\r\n // If font-face is still null here, it is a font with some styling we don't recognize and\r\n // cannot map or it is a font added via the fontFaces option of .html().\r\n if (fontFace !== null) {\r\n fontFace.ref = {\r\n name: family,\r\n style: style\r\n };\r\n\r\n fontFaces.push(fontFace);\r\n }\r\n });\r\n });\r\n\r\n return fontFaces;\r\n }\r\n\r\n var _fontFaces = null;\r\n /**\r\n * A map of available font-faces, as passed in the options of\r\n * .html(). If set a limited implementation of the font style matching\r\n * algorithm defined by https://www.w3.org/TR/css-fonts-3/#font-matching-algorithm\r\n * will be used. If not set it will fallback to previous behavior.\r\n */\r\n\r\n Object.defineProperty(this, \"fontFaces\", {\r\n get: function() {\r\n return _fontFaces;\r\n },\r\n set: function(value) {\r\n _fontFaceMap = null;\r\n _fontFaces = value;\r\n }\r\n });\r\n\r\n Object.defineProperty(this, \"font\", {\r\n get: function() {\r\n return this.ctx.font;\r\n },\r\n set: function(value) {\r\n this.ctx.font = value;\r\n var rx, matches;\r\n\r\n //source: https://stackoverflow.com/a/10136041\r\n // eslint-disable-next-line no-useless-escape\r\n rx = /^\\s*(?=(?:(?:[-a-z]+\\s*){0,2}(italic|oblique))?)(?=(?:(?:[-a-z]+\\s*){0,2}(small-caps))?)(?=(?:(?:[-a-z]+\\s*){0,2}(bold(?:er)?|lighter|[1-9]00))?)(?:(?:normal|\\1|\\2|\\3)\\s*){0,3}((?:xx?-)?(?:small|large)|medium|smaller|larger|[.\\d]+(?:\\%|in|[cem]m|ex|p[ctx]))(?:\\s*\\/\\s*(normal|[.\\d]+(?:\\%|in|[cem]m|ex|p[ctx])))?\\s*([-_,\\\"\\'\\sa-z]+?)\\s*$/i;\r\n matches = rx.exec(value);\r\n if (matches !== null) {\r\n var fontStyle = matches[1];\r\n var fontVariant = matches[2];\r\n var fontWeight = matches[3];\r\n var fontSize = matches[4];\r\n var lineHeight = matches[5];\r\n var fontFamily = matches[6];\r\n } else {\r\n return;\r\n }\r\n var rxFontSize = /^([.\\d]+)((?:%|in|[cem]m|ex|p[ctx]))$/i;\r\n var fontSizeUnit = rxFontSize.exec(fontSize)[2];\r\n\r\n if (\"px\" === fontSizeUnit) {\r\n fontSize = Math.floor(\r\n parseFloat(fontSize) * this.pdf.internal.scaleFactor\r\n );\r\n } else if (\"em\" === fontSizeUnit) {\r\n fontSize = Math.floor(parseFloat(fontSize) * this.pdf.getFontSize());\r\n } else {\r\n fontSize = Math.floor(\r\n parseFloat(fontSize) * this.pdf.internal.scaleFactor\r\n );\r\n }\r\n\r\n this.pdf.setFontSize(fontSize);\r\n var parts = parseFontFamily(fontFamily);\r\n\r\n if (this.fontFaces) {\r\n var fontFaceMap = getFontFaceMap(this.pdf, this.fontFaces);\r\n\r\n var rules = parts.map(function(ff) {\r\n return {\r\n family: ff,\r\n stretch: \"normal\", // TODO: Extract font-stretch from font rule (perhaps write proper parser for it?)\r\n weight: fontWeight,\r\n style: fontStyle\r\n };\r\n });\r\n\r\n var font = resolveFontFace(fontFaceMap, rules);\r\n this.pdf.setFont(font.ref.name, font.ref.style);\r\n return;\r\n }\r\n\r\n var style = \"\";\r\n if (\r\n fontWeight === \"bold\" ||\r\n parseInt(fontWeight, 10) >= 700 ||\r\n fontStyle === \"bold\"\r\n ) {\r\n style = \"bold\";\r\n }\r\n\r\n if (fontStyle === \"italic\") {\r\n style += \"italic\";\r\n }\r\n\r\n if (style.length === 0) {\r\n style = \"normal\";\r\n }\r\n var jsPdfFontName = \"\";\r\n\r\n var fallbackFonts = {\r\n arial: \"Helvetica\",\r\n Arial: \"Helvetica\",\r\n verdana: \"Helvetica\",\r\n Verdana: \"Helvetica\",\r\n helvetica: \"Helvetica\",\r\n Helvetica: \"Helvetica\",\r\n \"sans-serif\": \"Helvetica\",\r\n fixed: \"Courier\",\r\n monospace: \"Courier\",\r\n terminal: \"Courier\",\r\n cursive: \"Times\",\r\n fantasy: \"Times\",\r\n serif: \"Times\"\r\n };\r\n\r\n for (var i = 0; i < parts.length; i++) {\r\n if (\r\n this.pdf.internal.getFont(parts[i], style, {\r\n noFallback: true,\r\n disableWarning: true\r\n }) !== undefined\r\n ) {\r\n jsPdfFontName = parts[i];\r\n break;\r\n } else if (\r\n style === \"bolditalic\" &&\r\n this.pdf.internal.getFont(parts[i], \"bold\", {\r\n noFallback: true,\r\n disableWarning: true\r\n }) !== undefined\r\n ) {\r\n jsPdfFontName = parts[i];\r\n style = \"bold\";\r\n } else if (\r\n this.pdf.internal.getFont(parts[i], \"normal\", {\r\n noFallback: true,\r\n disableWarning: true\r\n }) !== undefined\r\n ) {\r\n jsPdfFontName = parts[i];\r\n style = \"normal\";\r\n break;\r\n }\r\n }\r\n if (jsPdfFontName === \"\") {\r\n for (var j = 0; j < parts.length; j++) {\r\n if (fallbackFonts[parts[j]]) {\r\n jsPdfFontName = fallbackFonts[parts[j]];\r\n break;\r\n }\r\n }\r\n }\r\n jsPdfFontName = jsPdfFontName === \"\" ? \"Times\" : jsPdfFontName;\r\n this.pdf.setFont(jsPdfFontName, style);\r\n }\r\n });\r\n\r\n Object.defineProperty(this, \"globalCompositeOperation\", {\r\n get: function() {\r\n return this.ctx.globalCompositeOperation;\r\n },\r\n set: function(value) {\r\n this.ctx.globalCompositeOperation = value;\r\n }\r\n });\r\n\r\n Object.defineProperty(this, \"globalAlpha\", {\r\n get: function() {\r\n return this.ctx.globalAlpha;\r\n },\r\n set: function(value) {\r\n this.ctx.globalAlpha = value;\r\n }\r\n });\r\n\r\n /**\r\n * A float specifying the amount of the line dash offset. The default value is 0.0.\r\n *\r\n * @name lineDashOffset\r\n * @default 0.0\r\n */\r\n Object.defineProperty(this, \"lineDashOffset\", {\r\n get: function() {\r\n return this.ctx.lineDashOffset;\r\n },\r\n set: function(value) {\r\n this.ctx.lineDashOffset = value;\r\n setLineDash.call(this);\r\n }\r\n });\r\n\r\n // Not HTML API\r\n Object.defineProperty(this, \"lineDash\", {\r\n get: function() {\r\n return this.ctx.lineDash;\r\n },\r\n set: function(value) {\r\n this.ctx.lineDash = value;\r\n setLineDash.call(this);\r\n }\r\n });\r\n\r\n // Not HTML API\r\n Object.defineProperty(this, \"ignoreClearRect\", {\r\n get: function() {\r\n return this.ctx.ignoreClearRect;\r\n },\r\n set: function(value) {\r\n this.ctx.ignoreClearRect = Boolean(value);\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * Sets the line dash pattern used when stroking lines.\r\n * @name setLineDash\r\n * @function\r\n * @description It uses an array of values that specify alternating lengths of lines and gaps which describe the pattern.\r\n */\r\n Context2D.prototype.setLineDash = function(dashArray) {\r\n this.lineDash = dashArray;\r\n };\r\n\r\n /**\r\n * gets the current line dash pattern.\r\n * @name getLineDash\r\n * @function\r\n * @returns {Array} An Array of numbers that specify distances to alternately draw a line and a gap (in coordinate space units). If the number, when setting the elements, is odd, the elements of the array get copied and concatenated. For example, setting the line dash to [5, 15, 25] will result in getting back [5, 15, 25, 5, 15, 25].\r\n */\r\n Context2D.prototype.getLineDash = function() {\r\n if (this.lineDash.length % 2) {\r\n // https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/getLineDash#return_value\r\n return this.lineDash.concat(this.lineDash);\r\n } else {\r\n // The copied value is returned to prevent contamination from outside.\r\n return this.lineDash.slice();\r\n }\r\n };\r\n\r\n Context2D.prototype.fill = function() {\r\n pathPreProcess.call(this, \"fill\", false);\r\n };\r\n\r\n /**\r\n * Actually draws the path you have defined\r\n *\r\n * @name stroke\r\n * @function\r\n * @description The stroke() method actually draws the path you have defined with all those moveTo() and lineTo() methods. The default color is black.\r\n */\r\n Context2D.prototype.stroke = function() {\r\n pathPreProcess.call(this, \"stroke\", false);\r\n };\r\n\r\n /**\r\n * Begins a path, or resets the current\r\n *\r\n * @name beginPath\r\n * @function\r\n * @description The beginPath() method begins a path, or resets the current path.\r\n */\r\n Context2D.prototype.beginPath = function() {\r\n this.path = [\r\n {\r\n type: \"begin\"\r\n }\r\n ];\r\n };\r\n\r\n /**\r\n * Moves the path to the specified point in the canvas, without creating a line\r\n *\r\n * @name moveTo\r\n * @function\r\n * @param x {Number} The x-coordinate of where to move the path to\r\n * @param y {Number} The y-coordinate of where to move the path to\r\n */\r\n Context2D.prototype.moveTo = function(x, y) {\r\n if (isNaN(x) || isNaN(y)) {\r\n console.error(\"jsPDF.context2d.moveTo: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.moveTo\");\r\n }\r\n\r\n var pt = this.ctx.transform.applyToPoint(new Point(x, y));\r\n\r\n this.path.push({\r\n type: \"mt\",\r\n x: pt.x,\r\n y: pt.y\r\n });\r\n this.ctx.lastPoint = new Point(x, y);\r\n };\r\n\r\n /**\r\n * Creates a path from the current point back to the starting point\r\n *\r\n * @name closePath\r\n * @function\r\n * @description The closePath() method creates a path from the current point back to the starting point.\r\n */\r\n Context2D.prototype.closePath = function() {\r\n var pathBegin = new Point(0, 0);\r\n var i = 0;\r\n for (i = this.path.length - 1; i !== -1; i--) {\r\n if (this.path[i].type === \"begin\") {\r\n if (\r\n typeof this.path[i + 1] === \"object\" &&\r\n typeof this.path[i + 1].x === \"number\"\r\n ) {\r\n pathBegin = new Point(this.path[i + 1].x, this.path[i + 1].y);\r\n break;\r\n }\r\n }\r\n }\r\n this.path.push({\r\n type: \"close\"\r\n });\r\n this.ctx.lastPoint = new Point(pathBegin.x, pathBegin.y);\r\n };\r\n\r\n /**\r\n * Adds a new point and creates a line to that point from the last specified point in the canvas\r\n *\r\n * @name lineTo\r\n * @function\r\n * @param x The x-coordinate of where to create the line to\r\n * @param y The y-coordinate of where to create the line to\r\n * @description The lineTo() method adds a new point and creates a line TO that point FROM the last specified point in the canvas (this method does not draw the line).\r\n */\r\n Context2D.prototype.lineTo = function(x, y) {\r\n if (isNaN(x) || isNaN(y)) {\r\n console.error(\"jsPDF.context2d.lineTo: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.lineTo\");\r\n }\r\n\r\n var pt = this.ctx.transform.applyToPoint(new Point(x, y));\r\n\r\n this.path.push({\r\n type: \"lt\",\r\n x: pt.x,\r\n y: pt.y\r\n });\r\n this.ctx.lastPoint = new Point(pt.x, pt.y);\r\n };\r\n\r\n /**\r\n * Clips a region of any shape and size from the original canvas\r\n *\r\n * @name clip\r\n * @function\r\n * @description The clip() method clips a region of any shape and size from the original canvas.\r\n */\r\n Context2D.prototype.clip = function() {\r\n this.ctx.clip_path = JSON.parse(JSON.stringify(this.path));\r\n pathPreProcess.call(this, null, true);\r\n };\r\n\r\n /**\r\n * Creates a cubic Bézier curve\r\n *\r\n * @name quadraticCurveTo\r\n * @function\r\n * @param cpx {Number} The x-coordinate of the Bézier control point\r\n * @param cpy {Number} The y-coordinate of the Bézier control point\r\n * @param x {Number} The x-coordinate of the ending point\r\n * @param y {Number} The y-coordinate of the ending point\r\n * @description The quadraticCurveTo() method adds a point to the current path by using the specified control points that represent a quadratic Bézier curve.<br /><br /> A quadratic Bézier curve requires two points. The first point is a control point that is used in the quadratic Bézier calculation and the second point is the ending point for the curve. The starting point for the curve is the last point in the current path. If a path does not exist, use the beginPath() and moveTo() methods to define a starting point.\r\n */\r\n Context2D.prototype.quadraticCurveTo = function(cpx, cpy, x, y) {\r\n if (isNaN(x) || isNaN(y) || isNaN(cpx) || isNaN(cpy)) {\r\n console.error(\r\n \"jsPDF.context2d.quadraticCurveTo: Invalid arguments\",\r\n arguments\r\n );\r\n throw new Error(\r\n \"Invalid arguments passed to jsPDF.context2d.quadraticCurveTo\"\r\n );\r\n }\r\n\r\n var pt0 = this.ctx.transform.applyToPoint(new Point(x, y));\r\n var pt1 = this.ctx.transform.applyToPoint(new Point(cpx, cpy));\r\n\r\n this.path.push({\r\n type: \"qct\",\r\n x1: pt1.x,\r\n y1: pt1.y,\r\n x: pt0.x,\r\n y: pt0.y\r\n });\r\n this.ctx.lastPoint = new Point(pt0.x, pt0.y);\r\n };\r\n\r\n /**\r\n * Creates a cubic Bézier curve\r\n *\r\n * @name bezierCurveTo\r\n * @function\r\n * @param cp1x {Number} The x-coordinate of the first Bézier control point\r\n * @param cp1y {Number} The y-coordinate of the first Bézier control point\r\n * @param cp2x {Number} The x-coordinate of the second Bézier control point\r\n * @param cp2y {Number} The y-coordinate of the second Bézier control point\r\n * @param x {Number} The x-coordinate of the ending point\r\n * @param y {Number} The y-coordinate of the ending point\r\n * @description The bezierCurveTo() method adds a point to the current path by using the specified control points that represent a cubic Bézier curve. <br /><br />A cubic bezier curve requires three points. The first two points are control points that are used in the cubic Bézier calculation and the last point is the ending point for the curve. The starting point for the curve is the last point in the current path. If a path does not exist, use the beginPath() and moveTo() methods to define a starting point.\r\n */\r\n Context2D.prototype.bezierCurveTo = function(cp1x, cp1y, cp2x, cp2y, x, y) {\r\n if (\r\n isNaN(x) ||\r\n isNaN(y) ||\r\n isNaN(cp1x) ||\r\n isNaN(cp1y) ||\r\n isNaN(cp2x) ||\r\n isNaN(cp2y)\r\n ) {\r\n console.error(\r\n \"jsPDF.context2d.bezierCurveTo: Invalid arguments\",\r\n arguments\r\n );\r\n throw new Error(\r\n \"Invalid arguments passed to jsPDF.context2d.bezierCurveTo\"\r\n );\r\n }\r\n var pt0 = this.ctx.transform.applyToPoint(new Point(x, y));\r\n var pt1 = this.ctx.transform.applyToPoint(new Point(cp1x, cp1y));\r\n var pt2 = this.ctx.transform.applyToPoint(new Point(cp2x, cp2y));\r\n\r\n this.path.push({\r\n type: \"bct\",\r\n x1: pt1.x,\r\n y1: pt1.y,\r\n x2: pt2.x,\r\n y2: pt2.y,\r\n x: pt0.x,\r\n y: pt0.y\r\n });\r\n this.ctx.lastPoint = new Point(pt0.x, pt0.y);\r\n };\r\n\r\n /**\r\n * Creates an arc/curve (used to create circles, or parts of circles)\r\n *\r\n * @name arc\r\n * @function\r\n * @param x {Number} The x-coordinate of the center of the circle\r\n * @param y {Number} The y-coordinate of the center of the circle\r\n * @param radius {Number} The radius of the circle\r\n * @param startAngle {Number} The starting angle, in radians (0 is at the 3 o'clock position of the arc's circle)\r\n * @param endAngle {Number} The ending angle, in radians\r\n * @param counterclockwise {Boolean} Optional. Specifies whether the drawing should be counterclockwise or clockwise. False is default, and indicates clockwise, while true indicates counter-clockwise.\r\n * @description The arc() method creates an arc/curve (used to create circles, or parts of circles).\r\n */\r\n Context2D.prototype.arc = function(\r\n x,\r\n y,\r\n radius,\r\n startAngle,\r\n endAngle,\r\n counterclockwise\r\n ) {\r\n if (\r\n isNaN(x) ||\r\n isNaN(y) ||\r\n isNaN(radius) ||\r\n isNaN(startAngle) ||\r\n isNaN(endAngle)\r\n ) {\r\n console.error(\"jsPDF.context2d.arc: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.arc\");\r\n }\r\n counterclockwise = Boolean(counterclockwise);\r\n\r\n if (!this.ctx.transform.isIdentity) {\r\n var xpt = this.ctx.transform.applyToPoint(new Point(x, y));\r\n x = xpt.x;\r\n y = xpt.y;\r\n\r\n var x_radPt = this.ctx.transform.applyToPoint(new Point(0, radius));\r\n var x_radPt0 = this.ctx.transform.applyToPoint(new Point(0, 0));\r\n radius = Math.sqrt(\r\n Math.pow(x_radPt.x - x_radPt0.x, 2) +\r\n Math.pow(x_radPt.y - x_radPt0.y, 2)\r\n );\r\n }\r\n if (Math.abs(endAngle - startAngle) >= 2 * Math.PI) {\r\n startAngle = 0;\r\n endAngle = 2 * Math.PI;\r\n }\r\n\r\n this.path.push({\r\n type: \"arc\",\r\n x: x,\r\n y: y,\r\n radius: radius,\r\n startAngle: startAngle,\r\n endAngle: endAngle,\r\n counterclockwise: counterclockwise\r\n });\r\n // this.ctx.lastPoint(new Point(pt.x,pt.y));\r\n };\r\n\r\n /**\r\n * Creates an arc/curve between two tangents\r\n *\r\n * @name arcTo\r\n * @function\r\n * @param x1 {Number} The x-coordinate of the first tangent\r\n * @param y1 {Number} The y-coordinate of the first tangent\r\n * @param x2 {Number} The x-coordinate of the second tangent\r\n * @param y2 {Number} The y-coordinate of the second tangent\r\n * @param radius The radius of the arc\r\n * @description The arcTo() method creates an arc/curve between two tangents on the canvas.\r\n */\r\n // eslint-disable-next-line no-unused-vars\r\n Context2D.prototype.arcTo = function(x1, y1, x2, y2, radius) {\r\n throw new Error(\"arcTo not implemented.\");\r\n };\r\n\r\n /**\r\n * Creates a rectangle\r\n *\r\n * @name rect\r\n * @function\r\n * @param x {Number} The x-coordinate of the upper-left corner of the rectangle\r\n * @param y {Number} The y-coordinate of the upper-left corner of the rectangle\r\n * @param w {Number} The width of the rectangle, in pixels\r\n * @param h {Number} The height of the rectangle, in pixels\r\n * @description The rect() method creates a rectangle.\r\n */\r\n Context2D.prototype.rect = function(x, y, w, h) {\r\n if (isNaN(x) || isNaN(y) || isNaN(w) || isNaN(h)) {\r\n console.error(\"jsPDF.context2d.rect: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.rect\");\r\n }\r\n this.moveTo(x, y);\r\n this.lineTo(x + w, y);\r\n this.lineTo(x + w, y + h);\r\n this.lineTo(x, y + h);\r\n this.lineTo(x, y);\r\n this.lineTo(x + w, y);\r\n this.lineTo(x, y);\r\n };\r\n\r\n /**\r\n * Draws a \"filled\" rectangle\r\n *\r\n * @name fillRect\r\n * @function\r\n * @param x {Number} The x-coordinate of the upper-left corner of the rectangle\r\n * @param y {Number} The y-coordinate of the upper-left corner of the rectangle\r\n * @param w {Number} The width of the rectangle, in pixels\r\n * @param h {Number} The height of the rectangle, in pixels\r\n * @description The fillRect() method draws a \"filled\" rectangle. The default color of the fill is black.\r\n */\r\n Context2D.prototype.fillRect = function(x, y, w, h) {\r\n if (isNaN(x) || isNaN(y) || isNaN(w) || isNaN(h)) {\r\n console.error(\"jsPDF.context2d.fillRect: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.fillRect\");\r\n }\r\n if (isFillTransparent.call(this)) {\r\n return;\r\n }\r\n var tmp = {};\r\n if (this.lineCap !== \"butt\") {\r\n tmp.lineCap = this.lineCap;\r\n this.lineCap = \"butt\";\r\n }\r\n if (this.lineJoin !== \"miter\") {\r\n tmp.lineJoin = this.lineJoin;\r\n this.lineJoin = \"miter\";\r\n }\r\n\r\n this.beginPath();\r\n this.rect(x, y, w, h);\r\n this.fill();\r\n\r\n if (tmp.hasOwnProperty(\"lineCap\")) {\r\n this.lineCap = tmp.lineCap;\r\n }\r\n if (tmp.hasOwnProperty(\"lineJoin\")) {\r\n this.lineJoin = tmp.lineJoin;\r\n }\r\n };\r\n\r\n /**\r\n * Draws a rectangle (no fill)\r\n *\r\n * @name strokeRect\r\n * @function\r\n * @param x {Number} The x-coordinate of the upper-left corner of the rectangle\r\n * @param y {Number} The y-coordinate of the upper-left corner of the rectangle\r\n * @param w {Number} The width of the rectangle, in pixels\r\n * @param h {Number} The height of the rectangle, in pixels\r\n * @description The strokeRect() method draws a rectangle (no fill). The default color of the stroke is black.\r\n */\r\n Context2D.prototype.strokeRect = function strokeRect(x, y, w, h) {\r\n if (isNaN(x) || isNaN(y) || isNaN(w) || isNaN(h)) {\r\n console.error(\"jsPDF.context2d.strokeRect: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.strokeRect\");\r\n }\r\n if (isStrokeTransparent.call(this)) {\r\n return;\r\n }\r\n this.beginPath();\r\n this.rect(x, y, w, h);\r\n this.stroke();\r\n };\r\n\r\n /**\r\n * Clears the specified pixels within a given rectangle\r\n *\r\n * @name clearRect\r\n * @function\r\n * @param x {Number} The x-coordinate of the upper-left corner of the rectangle\r\n * @param y {Number} The y-coordinate of the upper-left corner of the rectangle\r\n * @param w {Number} The width of the rectangle to clear, in pixels\r\n * @param h {Number} The height of the rectangle to clear, in pixels\r\n * @description We cannot clear PDF commands that were already written to PDF, so we use white instead. <br />\r\n * As a special case, read a special flag (ignoreClearRect) and do nothing if it is set.\r\n * This results in all calls to clearRect() to do nothing, and keep the canvas transparent.\r\n * This flag is stored in the save/restore context and is managed the same way as other drawing states.\r\n *\r\n */\r\n Context2D.prototype.clearRect = function(x, y, w, h) {\r\n if (isNaN(x) || isNaN(y) || isNaN(w) || isNaN(h)) {\r\n console.error(\"jsPDF.context2d.clearRect: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.clearRect\");\r\n }\r\n if (this.ignoreClearRect) {\r\n return;\r\n }\r\n\r\n this.fillStyle = \"#ffffff\";\r\n this.fillRect(x, y, w, h);\r\n };\r\n\r\n /**\r\n * Saves the state of the current context\r\n *\r\n * @name save\r\n * @function\r\n */\r\n Context2D.prototype.save = function(doStackPush) {\r\n doStackPush = typeof doStackPush === \"boolean\" ? doStackPush : true;\r\n var tmpPageNumber = this.pdf.internal.getCurrentPageInfo().pageNumber;\r\n for (var i = 0; i < this.pdf.internal.getNumberOfPages(); i++) {\r\n this.pdf.setPage(i + 1);\r\n this.pdf.internal.out(\"q\");\r\n }\r\n this.pdf.setPage(tmpPageNumber);\r\n\r\n if (doStackPush) {\r\n this.ctx.fontSize = this.pdf.internal.getFontSize();\r\n var ctx = new ContextLayer(this.ctx);\r\n this.ctxStack.push(this.ctx);\r\n this.ctx = ctx;\r\n }\r\n };\r\n\r\n /**\r\n * Returns previously saved path state and attributes\r\n *\r\n * @name restore\r\n * @function\r\n */\r\n Context2D.prototype.restore = function(doStackPop) {\r\n doStackPop = typeof doStackPop === \"boolean\" ? doStackPop : true;\r\n var tmpPageNumber = this.pdf.internal.getCurrentPageInfo().pageNumber;\r\n for (var i = 0; i < this.pdf.internal.getNumberOfPages(); i++) {\r\n this.pdf.setPage(i + 1);\r\n this.pdf.internal.out(\"Q\");\r\n }\r\n this.pdf.setPage(tmpPageNumber);\r\n\r\n if (doStackPop && this.ctxStack.length !== 0) {\r\n this.ctx = this.ctxStack.pop();\r\n this.fillStyle = this.ctx.fillStyle;\r\n this.strokeStyle = this.ctx.strokeStyle;\r\n this.font = this.ctx.font;\r\n this.lineCap = this.ctx.lineCap;\r\n this.lineWidth = this.ctx.lineWidth;\r\n this.lineJoin = this.ctx.lineJoin;\r\n this.lineDash = this.ctx.lineDash;\r\n this.lineDashOffset = this.ctx.lineDashOffset;\r\n }\r\n };\r\n\r\n /**\r\n * @name toDataURL\r\n * @function\r\n */\r\n Context2D.prototype.toDataURL = function() {\r\n throw new Error(\"toDataUrl not implemented.\");\r\n };\r\n\r\n //helper functions\r\n\r\n /**\r\n * Get the decimal values of r, g, b and a\r\n *\r\n * @name getRGBA\r\n * @function\r\n * @private\r\n * @ignore\r\n */\r\n var getRGBA = function(style) {\r\n var rxRgb = /rgb\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*\\)/;\r\n var rxRgba = /rgba\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*([\\d.]+)\\s*\\)/;\r\n var rxTransparent = /transparent|rgba\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*0+\\s*\\)/;\r\n\r\n var r, g, b, a;\r\n\r\n if (style.isCanvasGradient === true) {\r\n style = style.getColor();\r\n }\r\n\r\n if (!style) {\r\n return { r: 0, g: 0, b: 0, a: 0, style: style };\r\n }\r\n\r\n if (rxTransparent.test(style)) {\r\n r = 0;\r\n g = 0;\r\n b = 0;\r\n a = 0;\r\n } else {\r\n var matches = rxRgb.exec(style);\r\n if (matches !== null) {\r\n r = parseInt(matches[1]);\r\n g = parseInt(matches[2]);\r\n b = parseInt(matches[3]);\r\n a = 1;\r\n } else {\r\n matches = rxRgba.exec(style);\r\n if (matches !== null) {\r\n r = parseInt(matches[1]);\r\n g = parseInt(matches[2]);\r\n b = parseInt(matches[3]);\r\n a = parseFloat(matches[4]);\r\n } else {\r\n a = 1;\r\n\r\n if (typeof style === \"string\" && style.charAt(0) !== \"#\") {\r\n var rgbColor = new RGBColor(style);\r\n if (rgbColor.ok) {\r\n style = rgbColor.toHex();\r\n } else {\r\n style = \"#000000\";\r\n }\r\n }\r\n\r\n if (style.length === 4) {\r\n r = style.substring(1, 2);\r\n r += r;\r\n g = style.substring(2, 3);\r\n g += g;\r\n b = style.substring(3, 4);\r\n b += b;\r\n } else {\r\n r = style.substring(1, 3);\r\n g = style.substring(3, 5);\r\n b = style.substring(5, 7);\r\n }\r\n r = parseInt(r, 16);\r\n g = parseInt(g, 16);\r\n b = parseInt(b, 16);\r\n }\r\n }\r\n }\r\n return { r: r, g: g, b: b, a: a, style: style };\r\n };\r\n\r\n /**\r\n * @name isFillTransparent\r\n * @function\r\n * @private\r\n * @ignore\r\n * @returns {Boolean}\r\n */\r\n var isFillTransparent = function() {\r\n return this.ctx.isFillTransparent || this.globalAlpha == 0;\r\n };\r\n\r\n /**\r\n * @name isStrokeTransparent\r\n * @function\r\n * @private\r\n * @ignore\r\n * @returns {Boolean}\r\n */\r\n var isStrokeTransparent = function() {\r\n return Boolean(this.ctx.isStrokeTransparent || this.globalAlpha == 0);\r\n };\r\n\r\n /**\r\n * Draws \"filled\" text on the canvas\r\n *\r\n * @name fillText\r\n * @function\r\n * @param text {String} Specifies the text that will be written on the canvas\r\n * @param x {Number} The x coordinate where to start painting the text (relative to the canvas)\r\n * @param y {Number} The y coordinate where to start painting the text (relative to the canvas)\r\n * @param maxWidth {Number} Optional. The maximum allowed width of the text, in pixels\r\n * @description The fillText() method draws filled text on the canvas. The default color of the text is black.\r\n */\r\n Context2D.prototype.fillText = function(text, x, y, maxWidth) {\r\n if (isNaN(x) || isNaN(y) || typeof text !== \"string\") {\r\n console.error(\"jsPDF.context2d.fillText: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.fillText\");\r\n }\r\n maxWidth = isNaN(maxWidth) ? undefined : maxWidth;\r\n if (isFillTransparent.call(this)) {\r\n return;\r\n }\r\n\r\n var degs = rad2deg(this.ctx.transform.rotation);\r\n\r\n // We only use X axis as scale hint\r\n var scale = this.ctx.transform.scaleX;\r\n\r\n putText.call(this, {\r\n text: text,\r\n x: x,\r\n y: y,\r\n scale: scale,\r\n angle: degs,\r\n align: this.textAlign,\r\n maxWidth: maxWidth\r\n });\r\n };\r\n\r\n /**\r\n * Draws text on the canvas (no fill)\r\n *\r\n * @name strokeText\r\n * @function\r\n * @param text {String} Specifies the text that will be written on the canvas\r\n * @param x {Number} The x coordinate where to start painting the text (relative to the canvas)\r\n * @param y {Number} The y coordinate where to start painting the text (relative to the canvas)\r\n * @param maxWidth {Number} Optional. The maximum allowed width of the text, in pixels\r\n * @description The strokeText() method draws text (with no fill) on the canvas. The default color of the text is black.\r\n */\r\n Context2D.prototype.strokeText = function(text, x, y, maxWidth) {\r\n if (isNaN(x) || isNaN(y) || typeof text !== \"string\") {\r\n console.error(\"jsPDF.context2d.strokeText: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.strokeText\");\r\n }\r\n if (isStrokeTransparent.call(this)) {\r\n return;\r\n }\r\n\r\n maxWidth = isNaN(maxWidth) ? undefined : maxWidth;\r\n\r\n var degs = rad2deg(this.ctx.transform.rotation);\r\n var scale = this.ctx.transform.scaleX;\r\n\r\n putText.call(this, {\r\n text: text,\r\n x: x,\r\n y: y,\r\n scale: scale,\r\n renderingMode: \"stroke\",\r\n angle: degs,\r\n align: this.textAlign,\r\n maxWidth: maxWidth\r\n });\r\n };\r\n\r\n /**\r\n * Returns an object that contains the width of the specified text\r\n *\r\n * @name measureText\r\n * @function\r\n * @param text {String} The text to be measured\r\n * @description The measureText() method returns an object that contains the width of the specified text, in pixels.\r\n * @returns {Number}\r\n */\r\n Context2D.prototype.measureText = function(text) {\r\n if (typeof text !== \"string\") {\r\n console.error(\r\n \"jsPDF.context2d.measureText: Invalid arguments\",\r\n arguments\r\n );\r\n throw new Error(\r\n \"Invalid arguments passed to jsPDF.context2d.measureText\"\r\n );\r\n }\r\n var pdf = this.pdf;\r\n var k = this.pdf.internal.scaleFactor;\r\n\r\n var fontSize = pdf.internal.getFontSize();\r\n var txtWidth =\r\n (pdf.getStringUnitWidth(text) * fontSize) / pdf.internal.scaleFactor;\r\n txtWidth *= Math.round(((k * 96) / 72) * 10000) / 10000;\r\n\r\n var TextMetrics = function(options) {\r\n options = options || {};\r\n var _width = options.width || 0;\r\n Object.defineProperty(this, \"width\", {\r\n get: function() {\r\n return _width;\r\n }\r\n });\r\n return this;\r\n };\r\n return new TextMetrics({ width: txtWidth });\r\n };\r\n\r\n //Transformations\r\n\r\n /**\r\n * Scales the current drawing bigger or smaller\r\n *\r\n * @name scale\r\n * @function\r\n * @param scalewidth {Number} Scales the width of the current drawing (1=100%, 0.5=50%, 2=200%, etc.)\r\n * @param scaleheight {Number} Scales the height of the current drawing (1=100%, 0.5=50%, 2=200%, etc.)\r\n * @description The scale() method scales the current drawing, bigger or smaller.\r\n */\r\n Context2D.prototype.scale = function(scalewidth, scaleheight) {\r\n if (isNaN(scalewidth) || isNaN(scaleheight)) {\r\n console.error(\"jsPDF.context2d.scale: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.scale\");\r\n }\r\n var matrix = new Matrix(scalewidth, 0.0, 0.0, scaleheight, 0.0, 0.0);\r\n this.ctx.transform = this.ctx.transform.multiply(matrix);\r\n };\r\n\r\n /**\r\n * Rotates the current drawing\r\n *\r\n * @name rotate\r\n * @function\r\n * @param angle {Number} The rotation angle, in radians.\r\n * @description To calculate from degrees to radians: degrees*Math.PI/180. <br />\r\n * Example: to rotate 5 degrees, specify the following: 5*Math.PI/180\r\n */\r\n Context2D.prototype.rotate = function(angle) {\r\n if (isNaN(angle)) {\r\n console.error(\"jsPDF.context2d.rotate: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.rotate\");\r\n }\r\n var matrix = new Matrix(\r\n Math.cos(angle),\r\n Math.sin(angle),\r\n -Math.sin(angle),\r\n Math.cos(angle),\r\n 0.0,\r\n 0.0\r\n );\r\n this.ctx.transform = this.ctx.transform.multiply(matrix);\r\n };\r\n\r\n /**\r\n * Remaps the (0,0) position on the canvas\r\n *\r\n * @name translate\r\n * @function\r\n * @param x {Number} The value to add to horizontal (x) coordinates\r\n * @param y {Number} The value to add to vertical (y) coordinates\r\n * @description The translate() method remaps the (0,0) position on the canvas.\r\n */\r\n Context2D.prototype.translate = function(x, y) {\r\n if (isNaN(x) || isNaN(y)) {\r\n console.error(\"jsPDF.context2d.translate: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.translate\");\r\n }\r\n var matrix = new Matrix(1.0, 0.0, 0.0, 1.0, x, y);\r\n this.ctx.transform = this.ctx.transform.multiply(matrix);\r\n };\r\n\r\n /**\r\n * Replaces the current transformation matrix for the drawing\r\n *\r\n * @name transform\r\n * @function\r\n * @param a {Number} Horizontal scaling\r\n * @param b {Number} Horizontal skewing\r\n * @param c {Number} Vertical skewing\r\n * @param d {Number} Vertical scaling\r\n * @param e {Number} Horizontal moving\r\n * @param f {Number} Vertical moving\r\n * @description Each object on the canvas has a current transformation matrix.<br /><br />The transform() method replaces the current transformation matrix. It multiplies the current transformation matrix with the matrix described by:<br /><br /><br /><br />a c e<br /><br />b d f<br /><br />0 0 1<br /><br />In other words, the transform() method lets you scale, rotate, move, and skew the current context.\r\n */\r\n Context2D.prototype.transform = function(a, b, c, d, e, f) {\r\n if (isNaN(a) || isNaN(b) || isNaN(c) || isNaN(d) || isNaN(e) || isNaN(f)) {\r\n console.error(\"jsPDF.context2d.transform: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.transform\");\r\n }\r\n var matrix = new Matrix(a, b, c, d, e, f);\r\n this.ctx.transform = this.ctx.transform.multiply(matrix);\r\n };\r\n\r\n /**\r\n * Resets the current transform to the identity matrix. Then runs transform()\r\n *\r\n * @name setTransform\r\n * @function\r\n * @param a {Number} Horizontal scaling\r\n * @param b {Number} Horizontal skewing\r\n * @param c {Number} Vertical skewing\r\n * @param d {Number} Vertical scaling\r\n * @param e {Number} Horizontal moving\r\n * @param f {Number} Vertical moving\r\n * @description Each object on the canvas has a current transformation matrix. <br /><br />The setTransform() method resets the current transform to the identity matrix, and then runs transform() with the same arguments.<br /><br />In other words, the setTransform() method lets you scale, rotate, move, and skew the current context.\r\n */\r\n Context2D.prototype.setTransform = function(a, b, c, d, e, f) {\r\n a = isNaN(a) ? 1 : a;\r\n b = isNaN(b) ? 0 : b;\r\n c = isNaN(c) ? 0 : c;\r\n d = isNaN(d) ? 1 : d;\r\n e = isNaN(e) ? 0 : e;\r\n f = isNaN(f) ? 0 : f;\r\n this.ctx.transform = new Matrix(a, b, c, d, e, f);\r\n };\r\n\r\n /**\r\n * Should only be used if pageWrapYEnabled is true\r\n *\r\n * @name setPageByYPosition\r\n * @function\r\n * @private\r\n * @ignore\r\n * @returns One-based Page Number\r\n */\r\n var setPageByYPosition = function(y) {\r\n if (this.pageWrapYEnabled) {\r\n this.lastBreak = 0;\r\n var manualBreaks = 0;\r\n var autoBreaks = 0;\r\n for (var i = 0; i < this.pageBreaks.length; i++) {\r\n if (y >= this.pageBreaks[i]) {\r\n manualBreaks++;\r\n if (this.lastBreak === 0) {\r\n autoBreaks++;\r\n }\r\n var spaceBetweenLastBreak = this.pageBreaks[i] - this.lastBreak;\r\n this.lastBreak = this.pageBreaks[i];\r\n var pagesSinceLastBreak = Math.floor(\r\n spaceBetweenLastBreak / this.pageWrapY\r\n );\r\n autoBreaks += pagesSinceLastBreak;\r\n }\r\n }\r\n if (this.lastBreak === 0) {\r\n var pagesSinceLastBreak = Math.floor(y / this.pageWrapY) + 1;\r\n autoBreaks += pagesSinceLastBreak;\r\n }\r\n return autoBreaks + manualBreaks;\r\n } else {\r\n return this.pdf.internal.getCurrentPageInfo().pageNumber;\r\n }\r\n };\r\n\r\n var hasMargins = function() {\r\n return (\r\n this.margin[0] > 0 ||\r\n this.margin[1] > 0 ||\r\n this.margin[2] > 0 ||\r\n this.margin[3] > 0\r\n );\r\n };\r\n\r\n /**\r\n * Draws an image, canvas, or video onto the canvas\r\n *\r\n * @function\r\n * @param img {} Specifies the image, canvas, or video element to use\r\n * @param sx {Number} Optional. The x coordinate where to start clipping\r\n * @param sy {Number} Optional. The y coordinate where to start clipping\r\n * @param swidth {Number} Optional. The width of the clipped image\r\n * @param sheight {Number} Optional. The height of the clipped image\r\n * @param x {Number} The x coordinate where to place the image on the canvas\r\n * @param y {Number} The y coordinate where to place the image on the canvas\r\n * @param width {Number} Optional. The width of the image to use (stretch or reduce the image)\r\n * @param height {Number} Optional. The height of the image to use (stretch or reduce the image)\r\n */\r\n Context2D.prototype.drawImage = function(\r\n img,\r\n sx,\r\n sy,\r\n swidth,\r\n sheight,\r\n x,\r\n y,\r\n width,\r\n height\r\n ) {\r\n var imageProperties = this.pdf.getImageProperties(img);\r\n var factorX = 1;\r\n var factorY = 1;\r\n var isClip;\r\n\r\n var clipFactorX = 1;\r\n var clipFactorY = 1;\r\n\r\n if (typeof swidth !== \"undefined\" && typeof width !== \"undefined\") {\r\n isClip = true;\r\n clipFactorX = width / swidth;\r\n clipFactorY = height / sheight;\r\n factorX = ((imageProperties.width / swidth) * width) / swidth;\r\n factorY = ((imageProperties.height / sheight) * height) / sheight;\r\n }\r\n\r\n //is sx and sy are set and x and y not, set x and y with values of sx and sy\r\n if (typeof x === \"undefined\") {\r\n x = sx;\r\n y = sy;\r\n sx = 0;\r\n sy = 0;\r\n }\r\n\r\n if (typeof swidth !== \"undefined\" && typeof width === \"undefined\") {\r\n width = swidth;\r\n height = sheight;\r\n }\r\n if (typeof swidth === \"undefined\" && typeof width === \"undefined\") {\r\n width = imageProperties.width;\r\n height = imageProperties.height;\r\n }\r\n\r\n var decomposedTransformationMatrix = this.ctx.transform.decompose();\r\n var angle = rad2deg(decomposedTransformationMatrix.rotate.shx);\r\n var matrix = new Matrix();\r\n matrix = matrix.multiply(decomposedTransformationMatrix.translate);\r\n matrix = matrix.multiply(decomposedTransformationMatrix.skew);\r\n matrix = matrix.multiply(decomposedTransformationMatrix.scale);\r\n var xRect = matrix.applyToRectangle(\r\n new Rectangle(\r\n x - sx * clipFactorX,\r\n y - sy * clipFactorY,\r\n swidth * factorX,\r\n sheight * factorY\r\n )\r\n );\r\n var pageArray = getPagesByPath.call(this, xRect);\r\n var pages = [];\r\n for (var ii = 0; ii < pageArray.length; ii += 1) {\r\n if (pages.indexOf(pageArray[ii]) === -1) {\r\n pages.push(pageArray[ii]);\r\n }\r\n }\r\n\r\n sortPages(pages);\r\n\r\n var clipPath;\r\n if (this.autoPaging) {\r\n var min = pages[0];\r\n var max = pages[pages.length - 1];\r\n for (var i = min; i < max + 1; i++) {\r\n this.pdf.setPage(i);\r\n\r\n var pageWidthMinusMargins =\r\n this.pdf.internal.pageSize.width - this.margin[3] - this.margin[1];\r\n var topMargin = i === 1 ? this.posY + this.margin[0] : this.margin[0];\r\n var firstPageHeight =\r\n this.pdf.internal.pageSize.height -\r\n this.posY -\r\n this.margin[0] -\r\n this.margin[2];\r\n var pageHeightMinusMargins =\r\n this.pdf.internal.pageSize.height - this.margin[0] - this.margin[2];\r\n var previousPageHeightSum =\r\n i === 1 ? 0 : firstPageHeight + (i - 2) * pageHeightMinusMargins;\r\n\r\n if (this.ctx.clip_path.length !== 0) {\r\n var tmpPaths = this.path;\r\n clipPath = JSON.parse(JSON.stringify(this.ctx.clip_path));\r\n this.path = pathPositionRedo(\r\n clipPath,\r\n this.posX + this.margin[3],\r\n -previousPageHeightSum + topMargin + this.ctx.prevPageLastElemOffset\r\n );\r\n drawPaths.call(this, \"fill\", true);\r\n this.path = tmpPaths;\r\n }\r\n var tmpRect = JSON.parse(JSON.stringify(xRect));\r\n tmpRect = pathPositionRedo(\r\n [tmpRect],\r\n this.posX + this.margin[3],\r\n -previousPageHeightSum + topMargin + this.ctx.prevPageLastElemOffset\r\n )[0];\r\n\r\n const needsClipping = (i > min || i < max) && hasMargins.call(this);\r\n\r\n if (needsClipping) {\r\n this.pdf.saveGraphicsState();\r\n this.pdf\r\n .rect(\r\n this.margin[3],\r\n this.margin[0],\r\n pageWidthMinusMargins,\r\n pageHeightMinusMargins,\r\n null\r\n )\r\n .clip()\r\n .discardPath();\r\n }\r\n this.pdf.addImage(\r\n img,\r\n \"JPEG\",\r\n tmpRect.x,\r\n tmpRect.y,\r\n tmpRect.w,\r\n tmpRect.h,\r\n null,\r\n null,\r\n angle\r\n );\r\n if (needsClipping) {\r\n this.pdf.restoreGraphicsState();\r\n }\r\n }\r\n } else {\r\n this.pdf.addImage(\r\n img,\r\n \"JPEG\",\r\n xRect.x,\r\n xRect.y,\r\n xRect.w,\r\n xRect.h,\r\n null,\r\n null,\r\n angle\r\n );\r\n }\r\n };\r\n\r\n var getPagesByPath = function(path, pageWrapX, pageWrapY) {\r\n var result = [];\r\n pageWrapX = pageWrapX || this.pdf.internal.pageSize.width;\r\n pageWrapY =\r\n pageWrapY ||\r\n this.pdf.internal.pageSize.height - this.margin[0] - this.margin[2];\r\n var yOffset = this.posY + this.ctx.prevPageLastElemOffset;\r\n\r\n switch (path.type) {\r\n default:\r\n case \"mt\":\r\n case \"lt\":\r\n result.push(Math.floor((path.y + yOffset) / pageWrapY) + 1);\r\n break;\r\n case \"arc\":\r\n result.push(\r\n Math.floor((path.y + yOffset - path.radius) / pageWrapY) + 1\r\n );\r\n result.push(\r\n Math.floor((path.y + yOffset + path.radius) / pageWrapY) + 1\r\n );\r\n break;\r\n case \"qct\":\r\n var rectOfQuadraticCurve = getQuadraticCurveBoundary(\r\n this.ctx.lastPoint.x,\r\n this.ctx.lastPoint.y,\r\n path.x1,\r\n path.y1,\r\n path.x,\r\n path.y\r\n );\r\n result.push(\r\n Math.floor((rectOfQuadraticCurve.y + yOffset) / pageWrapY) + 1\r\n );\r\n result.push(\r\n Math.floor(\r\n (rectOfQuadraticCurve.y + rectOfQuadraticCurve.h + yOffset) /\r\n pageWrapY\r\n ) + 1\r\n );\r\n break;\r\n case \"bct\":\r\n var rectOfBezierCurve = getBezierCurveBoundary(\r\n this.ctx.lastPoint.x,\r\n this.ctx.lastPoint.y,\r\n path.x1,\r\n path.y1,\r\n path.x2,\r\n path.y2,\r\n path.x,\r\n path.y\r\n );\r\n result.push(\r\n Math.floor((rectOfBezierCurve.y + yOffset) / pageWrapY) + 1\r\n );\r\n result.push(\r\n Math.floor(\r\n (rectOfBezierCurve.y + rectOfBezierCurve.h + yOffset) / pageWrapY\r\n ) + 1\r\n );\r\n break;\r\n case \"rect\":\r\n result.push(Math.floor((path.y + yOffset) / pageWrapY) + 1);\r\n result.push(Math.floor((path.y + path.h + yOffset) / pageWrapY) + 1);\r\n }\r\n\r\n for (var i = 0; i < result.length; i += 1) {\r\n while (this.pdf.internal.getNumberOfPages() < result[i]) {\r\n addPage.call(this);\r\n }\r\n }\r\n return result;\r\n };\r\n\r\n var addPage = function() {\r\n var fillStyle = this.fillStyle;\r\n var strokeStyle = this.strokeStyle;\r\n var font = this.font;\r\n var lineCap = this.lineCap;\r\n var lineWidth = this.lineWidth;\r\n var lineJoin = this.lineJoin;\r\n this.pdf.addPage();\r\n this.fillStyle = fillStyle;\r\n this.strokeStyle = strokeStyle;\r\n this.font = font;\r\n this.lineCap = lineCap;\r\n this.lineWidth = lineWidth;\r\n this.lineJoin = lineJoin;\r\n };\r\n\r\n var pathPositionRedo = function(paths, x, y) {\r\n for (var i = 0; i < paths.length; i++) {\r\n switch (paths[i].type) {\r\n case \"bct\":\r\n paths[i].x2 += x;\r\n paths[i].y2 += y;\r\n case \"qct\":\r\n paths[i].x1 += x;\r\n paths[i].y1 += y;\r\n case \"mt\":\r\n case \"lt\":\r\n case \"arc\":\r\n default:\r\n paths[i].x += x;\r\n paths[i].y += y;\r\n }\r\n }\r\n return paths;\r\n };\r\n\r\n var sortPages = function(pages) {\r\n return pages.sort(function(a, b) {\r\n return a - b;\r\n });\r\n };\r\n\r\n var pathPreProcess = function(rule, isClip) {\r\n var fillStyle = this.fillStyle;\r\n var strokeStyle = this.strokeStyle;\r\n var lineCap = this.lineCap;\r\n var oldLineWidth = this.lineWidth;\r\n var lineWidth = Math.abs(oldLineWidth * this.ctx.transform.scaleX);\r\n var lineJoin = this.lineJoin;\r\n\r\n var origPath = JSON.parse(JSON.stringify(this.path));\r\n var xPath = JSON.parse(JSON.stringify(this.path));\r\n var clipPath;\r\n var tmpPath;\r\n var pages = [];\r\n\r\n for (var i = 0; i < xPath.length; i++) {\r\n if (typeof xPath[i].x !== \"undefined\") {\r\n var page = getPagesByPath.call(this, xPath[i]);\r\n\r\n for (var ii = 0; ii < page.length; ii += 1) {\r\n if (pages.indexOf(page[ii]) === -1) {\r\n pages.push(page[ii]);\r\n }\r\n }\r\n }\r\n }\r\n\r\n for (var j = 0; j < pages.length; j++) {\r\n while (this.pdf.internal.getNumberOfPages() < pages[j]) {\r\n addPage.call(this);\r\n }\r\n }\r\n sortPages(pages);\r\n\r\n if (this.autoPaging) {\r\n var min = pages[0];\r\n var max = pages[pages.length - 1];\r\n for (var k = min; k < max + 1; k++) {\r\n this.pdf.setPage(k);\r\n\r\n this.fillStyle = fillStyle;\r\n this.strokeStyle = strokeStyle;\r\n this.lineCap = lineCap;\r\n this.lineWidth = lineWidth;\r\n this.lineJoin = lineJoin;\r\n\r\n var pageWidthMinusMargins =\r\n this.pdf.internal.pageSize.width - this.margin[3] - this.margin[1];\r\n var topMargin = k === 1 ? this.posY + this.margin[0] : this.margin[0];\r\n var firstPageHeight =\r\n this.pdf.internal.pageSize.height -\r\n this.posY -\r\n this.margin[0] -\r\n this.margin[2];\r\n var pageHeightMinusMargins =\r\n this.pdf.internal.pageSize.height - this.margin[0] - this.margin[2];\r\n var previousPageHeightSum =\r\n k === 1 ? 0 : firstPageHeight + (k - 2) * pageHeightMinusMargins;\r\n\r\n if (this.ctx.clip_path.length !== 0) {\r\n var tmpPaths = this.path;\r\n clipPath = JSON.parse(JSON.stringify(this.ctx.clip_path));\r\n this.path = pathPositionRedo(\r\n clipPath,\r\n this.posX + this.margin[3],\r\n -previousPageHeightSum + topMargin + this.ctx.prevPageLastElemOffset\r\n );\r\n drawPaths.call(this, rule, true);\r\n this.path = tmpPaths;\r\n }\r\n tmpPath = JSON.parse(JSON.stringify(origPath));\r\n this.path = pathPositionRedo(\r\n tmpPath,\r\n this.posX + this.margin[3],\r\n -previousPageHeightSum + topMargin + this.ctx.prevPageLastElemOffset\r\n );\r\n if (isClip === false || k === 0) {\r\n const needsClipping = (k > min || k < max) && hasMargins.call(this);\r\n if (needsClipping) {\r\n this.pdf.saveGraphicsState();\r\n this.pdf\r\n .rect(\r\n this.margin[3],\r\n this.margin[0],\r\n pageWidthMinusMargins,\r\n pageHeightMinusMargins,\r\n null\r\n )\r\n .clip()\r\n .discardPath();\r\n }\r\n drawPaths.call(this, rule, isClip);\r\n if (needsClipping) {\r\n this.pdf.restoreGraphicsState();\r\n }\r\n }\r\n this.lineWidth = oldLineWidth;\r\n }\r\n } else {\r\n this.lineWidth = lineWidth;\r\n drawPaths.call(this, rule, isClip);\r\n this.lineWidth = oldLineWidth;\r\n }\r\n this.path = origPath;\r\n };\r\n\r\n /**\r\n * Processes the paths\r\n *\r\n * @function\r\n * @param rule {String}\r\n * @param isClip {Boolean}\r\n * @private\r\n * @ignore\r\n */\r\n var drawPaths = function(rule, isClip) {\r\n if (rule === \"stroke\" && !isClip && isStrokeTransparent.call(this)) {\r\n return;\r\n }\r\n\r\n if (rule !== \"stroke\" && !isClip && isFillTransparent.call(this)) {\r\n return;\r\n }\r\n\r\n var moves = [];\r\n\r\n //var alpha = (this.ctx.fillOpacity < 1) ? this.ctx.fillOpacity : this.ctx.globalAlpha;\r\n var delta;\r\n var xPath = this.path;\r\n for (var i = 0; i < xPath.length; i++) {\r\n var pt = xPath[i];\r\n\r\n switch (pt.type) {\r\n case \"begin\":\r\n moves.push({\r\n begin: true\r\n });\r\n break;\r\n\r\n case \"close\":\r\n moves.push({\r\n close: true\r\n });\r\n break;\r\n\r\n case \"mt\":\r\n moves.push({\r\n start: pt,\r\n deltas: [],\r\n abs: []\r\n });\r\n break;\r\n\r\n case \"lt\":\r\n var iii = moves.length;\r\n if (xPath[i - 1] && !isNaN(xPath[i - 1].x)) {\r\n delta = [pt.x - xPath[i - 1].x, pt.y - xPath[i - 1].y];\r\n if (iii > 0) {\r\n for (iii; iii >= 0; iii--) {\r\n if (\r\n moves[iii - 1].close !== true &&\r\n moves[iii - 1].begin !== true\r\n ) {\r\n moves[iii - 1].deltas.push(delta);\r\n moves[iii - 1].abs.push(pt);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n break;\r\n\r\n case \"bct\":\r\n delta = [\r\n pt.x1 - xPath[i - 1].x,\r\n pt.y1 - xPath[i - 1].y,\r\n pt.x2 - xPath[i - 1].x,\r\n pt.y2 - xPath[i - 1].y,\r\n pt.x - xPath[i - 1].x,\r\n pt.y - xPath[i - 1].y\r\n ];\r\n moves[moves.length - 1].deltas.push(delta);\r\n break;\r\n\r\n case \"qct\":\r\n var x1 = xPath[i - 1].x + (2.0 / 3.0) * (pt.x1 - xPath[i - 1].x);\r\n var y1 = xPath[i - 1].y + (2.0 / 3.0) * (pt.y1 - xPath[i - 1].y);\r\n var x2 = pt.x + (2.0 / 3.0) * (pt.x1 - pt.x);\r\n var y2 = pt.y + (2.0 / 3.0) * (pt.y1 - pt.y);\r\n var x3 = pt.x;\r\n var y3 = pt.y;\r\n delta = [\r\n x1 - xPath[i - 1].x,\r\n y1 - xPath[i - 1].y,\r\n x2 - xPath[i - 1].x,\r\n y2 - xPath[i - 1].y,\r\n x3 - xPath[i - 1].x,\r\n y3 - xPath[i - 1].y\r\n ];\r\n moves[moves.length - 1].deltas.push(delta);\r\n break;\r\n\r\n case \"arc\":\r\n moves.push({\r\n deltas: [],\r\n abs: [],\r\n arc: true\r\n });\r\n\r\n if (Array.isArray(moves[moves.length - 1].abs)) {\r\n moves[moves.length - 1].abs.push(pt);\r\n }\r\n break;\r\n }\r\n }\r\n var style;\r\n if (!isClip) {\r\n if (rule === \"stroke\") {\r\n style = \"stroke\";\r\n } else {\r\n style = \"fill\";\r\n }\r\n } else {\r\n style = null;\r\n }\r\n\r\n var began = false;\r\n for (var k = 0; k < moves.length; k++) {\r\n if (moves[k].arc) {\r\n var arcs = moves[k].abs;\r\n\r\n for (var ii = 0; ii < arcs.length; ii++) {\r\n var arc = arcs[ii];\r\n\r\n if (arc.type === \"arc\") {\r\n drawArc.call(\r\n this,\r\n arc.x,\r\n arc.y,\r\n arc.radius,\r\n arc.startAngle,\r\n arc.endAngle,\r\n arc.counterclockwise,\r\n undefined,\r\n isClip,\r\n !began\r\n );\r\n } else {\r\n drawLine.call(this, arc.x, arc.y);\r\n }\r\n began = true;\r\n }\r\n } else if (moves[k].close === true) {\r\n this.pdf.internal.out(\"h\");\r\n began = false;\r\n } else if (moves[k].begin !== true) {\r\n var x = moves[k].start.x;\r\n var y = moves[k].start.y;\r\n drawLines.call(this, moves[k].deltas, x, y);\r\n began = true;\r\n }\r\n }\r\n\r\n if (style) {\r\n putStyle.call(this, style);\r\n }\r\n if (isClip) {\r\n doClip.call(this);\r\n }\r\n };\r\n\r\n var getBaseline = function(y) {\r\n var height =\r\n this.pdf.internal.getFontSize() / this.pdf.internal.scaleFactor;\r\n var descent = height * (this.pdf.internal.getLineHeightFactor() - 1);\r\n switch (this.ctx.textBaseline) {\r\n case \"bottom\":\r\n return y - descent;\r\n case \"top\":\r\n return y + height - descent;\r\n case \"hanging\":\r\n return y + height - 2 * descent;\r\n case \"middle\":\r\n return y + height / 2 - descent;\r\n case \"ideographic\":\r\n // TODO not implemented\r\n return y;\r\n case \"alphabetic\":\r\n default:\r\n return y;\r\n }\r\n };\r\n\r\n var getTextBottom = function(yBaseLine) {\r\n var height =\r\n this.pdf.internal.getFontSize() / this.pdf.internal.scaleFactor;\r\n var descent = height * (this.pdf.internal.getLineHeightFactor() - 1);\r\n return yBaseLine + descent;\r\n };\r\n\r\n Context2D.prototype.createLinearGradient = function createLinearGradient() {\r\n var canvasGradient = function canvasGradient() {};\r\n\r\n canvasGradient.colorStops = [];\r\n canvasGradient.addColorStop = function(offset, color) {\r\n this.colorStops.push([offset, color]);\r\n };\r\n\r\n canvasGradient.getColor = function() {\r\n if (this.colorStops.length === 0) {\r\n return \"#000000\";\r\n }\r\n\r\n return this.colorStops[0][1];\r\n };\r\n\r\n canvasGradient.isCanvasGradient = true;\r\n return canvasGradient;\r\n };\r\n Context2D.prototype.createPattern = function createPattern() {\r\n return this.createLinearGradient();\r\n };\r\n Context2D.prototype.createRadialGradient = function createRadialGradient() {\r\n return this.createLinearGradient();\r\n };\r\n\r\n /**\r\n *\r\n * @param x Edge point X\r\n * @param y Edge point Y\r\n * @param r Radius\r\n * @param a1 start angle\r\n * @param a2 end angle\r\n * @param counterclockwise\r\n * @param style\r\n * @param isClip\r\n */\r\n var drawArc = function(\r\n x,\r\n y,\r\n r,\r\n a1,\r\n a2,\r\n counterclockwise,\r\n style,\r\n isClip,\r\n includeMove\r\n ) {\r\n // http://hansmuller-flex.blogspot.com/2011/10/more-about-approximating-circular-arcs.html\r\n var curves = createArc.call(this, r, a1, a2, counterclockwise);\r\n\r\n for (var i = 0; i < curves.length; i++) {\r\n var curve = curves[i];\r\n if (i === 0) {\r\n if (includeMove) {\r\n doMove.call(this, curve.x1 + x, curve.y1 + y);\r\n } else {\r\n drawLine.call(this, curve.x1 + x, curve.y1 + y);\r\n }\r\n }\r\n drawCurve.call(\r\n this,\r\n x,\r\n y,\r\n curve.x2,\r\n curve.y2,\r\n curve.x3,\r\n curve.y3,\r\n curve.x4,\r\n curve.y4\r\n );\r\n }\r\n\r\n if (!isClip) {\r\n putStyle.call(this, style);\r\n } else {\r\n doClip.call(this);\r\n }\r\n };\r\n\r\n var putStyle = function(style) {\r\n switch (style) {\r\n case \"stroke\":\r\n this.pdf.internal.out(\"S\");\r\n break;\r\n case \"fill\":\r\n this.pdf.internal.out(\"f\");\r\n break;\r\n }\r\n };\r\n\r\n var doClip = function() {\r\n this.pdf.clip();\r\n this.pdf.discardPath();\r\n };\r\n\r\n var doMove = function(x, y) {\r\n this.pdf.internal.out(\r\n getHorizontalCoordinateString(x) +\r\n \" \" +\r\n getVerticalCoordinateString(y) +\r\n \" m\"\r\n );\r\n };\r\n\r\n var putText = function(options) {\r\n var textAlign;\r\n switch (options.align) {\r\n case \"right\":\r\n case \"end\":\r\n textAlign = \"right\";\r\n break;\r\n case \"center\":\r\n textAlign = \"center\";\r\n break;\r\n case \"left\":\r\n case \"start\":\r\n default:\r\n textAlign = \"left\";\r\n break;\r\n }\r\n\r\n var textDimensions = this.pdf.getTextDimensions(options.text);\r\n var yBaseLine = getBaseline.call(this, options.y);\r\n var yBottom = getTextBottom.call(this, yBaseLine);\r\n var yTop = yBottom - textDimensions.h;\r\n\r\n var pt = this.ctx.transform.applyToPoint(new Point(options.x, yBaseLine));\r\n var decomposedTransformationMatrix = this.ctx.transform.decompose();\r\n var matrix = new Matrix();\r\n matrix = matrix.multiply(decomposedTransformationMatrix.translate);\r\n matrix = matrix.multiply(decomposedTransformationMatrix.skew);\r\n matrix = matrix.multiply(decomposedTransformationMatrix.scale);\r\n\r\n var baselineRect = this.ctx.transform.applyToRectangle(\r\n new Rectangle(options.x, yBaseLine, textDimensions.w, textDimensions.h)\r\n );\r\n var textBounds = matrix.applyToRectangle(\r\n new Rectangle(options.x, yTop, textDimensions.w, textDimensions.h)\r\n );\r\n var pageArray = getPagesByPath.call(this, textBounds);\r\n var pages = [];\r\n for (var ii = 0; ii < pageArray.length; ii += 1) {\r\n if (pages.indexOf(pageArray[ii]) === -1) {\r\n pages.push(pageArray[ii]);\r\n }\r\n }\r\n\r\n sortPages(pages);\r\n\r\n var clipPath, oldSize, oldLineWidth;\r\n if (this.autoPaging) {\r\n var min = pages[0];\r\n var max = pages[pages.length - 1];\r\n for (var i = min; i < max + 1; i++) {\r\n this.pdf.setPage(i);\r\n\r\n var topMargin = i === 1 ? this.posY + this.margin[0] : this.margin[0];\r\n var firstPageHeight =\r\n this.pdf.internal.pageSize.height -\r\n this.posY -\r\n this.margin[0] -\r\n this.margin[2];\r\n var pageHeightMinusBottomMargin =\r\n this.pdf.internal.pageSize.height - this.margin[2];\r\n var pageHeightMinusMargins =\r\n pageHeightMinusBottomMargin - this.margin[0];\r\n var pageWidthMinusRightMargin =\r\n this.pdf.internal.pageSize.width - this.margin[1];\r\n var pageWidthMinusMargins = pageWidthMinusRightMargin - this.margin[3];\r\n var previousPageHeightSum =\r\n i === 1 ? 0 : firstPageHeight + (i - 2) * pageHeightMinusMargins;\r\n\r\n if (this.ctx.clip_path.length !== 0) {\r\n var tmpPaths = this.path;\r\n clipPath = JSON.parse(JSON.stringify(this.ctx.clip_path));\r\n this.path = pathPositionRedo(\r\n clipPath,\r\n this.posX + this.margin[3],\r\n -1 * previousPageHeightSum + topMargin\r\n );\r\n drawPaths.call(this, \"fill\", true);\r\n this.path = tmpPaths;\r\n }\r\n var textBoundsOnPage = pathPositionRedo(\r\n [JSON.parse(JSON.stringify(textBounds))],\r\n this.posX + this.margin[3],\r\n -previousPageHeightSum + topMargin + this.ctx.prevPageLastElemOffset\r\n )[0];\r\n\r\n if (options.scale >= 0.01) {\r\n oldSize = this.pdf.internal.getFontSize();\r\n this.pdf.setFontSize(oldSize * options.scale);\r\n oldLineWidth = this.lineWidth;\r\n this.lineWidth = oldLineWidth * options.scale;\r\n }\r\n\r\n var doSlice = this.autoPaging !== \"text\";\r\n\r\n if (\r\n doSlice ||\r\n textBoundsOnPage.y + textBoundsOnPage.h <= pageHeightMinusBottomMargin\r\n ) {\r\n if (\r\n doSlice ||\r\n (textBoundsOnPage.y >= topMargin &&\r\n textBoundsOnPage.x <= pageWidthMinusRightMargin)\r\n ) {\r\n var croppedText = doSlice\r\n ? options.text\r\n : this.pdf.splitTextToSize(\r\n options.text,\r\n options.maxWidth ||\r\n pageWidthMinusRightMargin - textBoundsOnPage.x\r\n )[0];\r\n var baseLineRectOnPage = pathPositionRedo(\r\n [JSON.parse(JSON.stringify(baselineRect))],\r\n this.posX + this.margin[3],\r\n -previousPageHeightSum +\r\n topMargin +\r\n this.ctx.prevPageLastElemOffset\r\n )[0];\r\n\r\n const needsClipping =\r\n doSlice && (i > min || i < max) && hasMargins.call(this);\r\n\r\n if (needsClipping) {\r\n this.pdf.saveGraphicsState();\r\n this.pdf\r\n .rect(\r\n this.margin[3],\r\n this.margin[0],\r\n pageWidthMinusMargins,\r\n pageHeightMinusMargins,\r\n null\r\n )\r\n .clip()\r\n .discardPath();\r\n }\r\n\r\n this.pdf.text(\r\n croppedText,\r\n baseLineRectOnPage.x,\r\n baseLineRectOnPage.y,\r\n {\r\n angle: options.angle,\r\n align: textAlign,\r\n renderingMode: options.renderingMode\r\n }\r\n );\r\n\r\n if (needsClipping) {\r\n this.pdf.restoreGraphicsState();\r\n }\r\n }\r\n } else {\r\n // This text is the last element of the page, but it got cut off due to the margin\r\n // so we render it in the next page\r\n\r\n if (textBoundsOnPage.y < pageHeightMinusBottomMargin) {\r\n // As a result, all other elements have their y offset increased\r\n this.ctx.prevPageLastElemOffset +=\r\n pageHeightMinusBottomMargin - textBoundsOnPage.y;\r\n }\r\n }\r\n\r\n if (options.scale >= 0.01) {\r\n this.pdf.setFontSize(oldSize);\r\n this.lineWidth = oldLineWidth;\r\n }\r\n }\r\n } else {\r\n if (options.scale >= 0.01) {\r\n oldSize = this.pdf.internal.getFontSize();\r\n this.pdf.setFontSize(oldSize * options.scale);\r\n oldLineWidth = this.lineWidth;\r\n this.lineWidth = oldLineWidth * options.scale;\r\n }\r\n this.pdf.text(options.text, pt.x + this.posX, pt.y + this.posY, {\r\n angle: options.angle,\r\n align: textAlign,\r\n renderingMode: options.renderingMode,\r\n maxWidth: options.maxWidth\r\n });\r\n\r\n if (options.scale >= 0.01) {\r\n this.pdf.setFontSize(oldSize);\r\n this.lineWidth = oldLineWidth;\r\n }\r\n }\r\n };\r\n\r\n var drawLine = function(x, y, prevX, prevY) {\r\n prevX = prevX || 0;\r\n prevY = prevY || 0;\r\n\r\n this.pdf.internal.out(\r\n getHorizontalCoordinateString(x + prevX) +\r\n \" \" +\r\n getVerticalCoordinateString(y + prevY) +\r\n \" l\"\r\n );\r\n };\r\n\r\n var drawLines = function(lines, x, y) {\r\n return this.pdf.lines(lines, x, y, null, null);\r\n };\r\n\r\n var drawCurve = function(x, y, x1, y1, x2, y2, x3, y3) {\r\n this.pdf.internal.out(\r\n [\r\n f2(getHorizontalCoordinate(x1 + x)),\r\n f2(getVerticalCoordinate(y1 + y)),\r\n f2(getHorizontalCoordinate(x2 + x)),\r\n f2(getVerticalCoordinate(y2 + y)),\r\n f2(getHorizontalCoordinate(x3 + x)),\r\n f2(getVerticalCoordinate(y3 + y)),\r\n \"c\"\r\n ].join(\" \")\r\n );\r\n };\r\n\r\n /**\r\n * Return a array of objects that represent bezier curves which approximate the circular arc centered at the origin, from startAngle to endAngle (radians) with the specified radius.\r\n *\r\n * Each bezier curve is an object with four points, where x1,y1 and x4,y4 are the arc's end points and x2,y2 and x3,y3 are the cubic bezier's control points.\r\n * @function createArc\r\n */\r\n var createArc = function(radius, startAngle, endAngle, anticlockwise) {\r\n var EPSILON = 0.00001; // Roughly 1/1000th of a degree, see below\r\n var twoPi = Math.PI * 2;\r\n var halfPi = Math.PI / 2.0;\r\n\r\n while (startAngle > endAngle) {\r\n startAngle = startAngle - twoPi;\r\n }\r\n var totalAngle = Math.abs(endAngle - startAngle);\r\n if (totalAngle < twoPi) {\r\n if (anticlockwise) {\r\n totalAngle = twoPi - totalAngle;\r\n }\r\n }\r\n\r\n // Compute the sequence of arc curves, up to PI/2 at a time.\r\n var curves = [];\r\n\r\n // clockwise or counterclockwise\r\n var sgn = anticlockwise ? -1 : +1;\r\n\r\n var a1 = startAngle;\r\n for (; totalAngle > EPSILON; ) {\r\n var remain = sgn * Math.min(totalAngle, halfPi);\r\n var a2 = a1 + remain;\r\n curves.push(createSmallArc.call(this, radius, a1, a2));\r\n totalAngle -= Math.abs(a2 - a1);\r\n a1 = a2;\r\n }\r\n\r\n return curves;\r\n };\r\n\r\n /**\r\n * Cubic bezier approximation of a circular arc centered at the origin, from (radians) a1 to a2, where a2-a1 < pi/2. The arc's radius is r.\r\n *\r\n * Returns an object with four points, where x1,y1 and x4,y4 are the arc's end points and x2,y2 and x3,y3 are the cubic bezier's control points.\r\n *\r\n * This algorithm is based on the approach described in: A. RiÅ¡kus, \"Approximation of a Cubic Bezier Curve by Circular Arcs and Vice Versa,\" Information Technology and Control, 35(4), 2006 pp. 371-378.\r\n */\r\n var createSmallArc = function(r, a1, a2) {\r\n var a = (a2 - a1) / 2.0;\r\n\r\n var x4 = r * Math.cos(a);\r\n var y4 = r * Math.sin(a);\r\n var x1 = x4;\r\n var y1 = -y4;\r\n\r\n var q1 = x1 * x1 + y1 * y1;\r\n var q2 = q1 + x1 * x4 + y1 * y4;\r\n var k2 = ((4 / 3) * (Math.sqrt(2 * q1 * q2) - q2)) / (x1 * y4 - y1 * x4);\r\n\r\n var x2 = x1 - k2 * y1;\r\n var y2 = y1 + k2 * x1;\r\n var x3 = x2;\r\n var y3 = -y2;\r\n\r\n var ar = a + a1;\r\n var cos_ar = Math.cos(ar);\r\n var sin_ar = Math.sin(ar);\r\n\r\n return {\r\n x1: r * Math.cos(a1),\r\n y1: r * Math.sin(a1),\r\n x2: x2 * cos_ar - y2 * sin_ar,\r\n y2: x2 * sin_ar + y2 * cos_ar,\r\n x3: x3 * cos_ar - y3 * sin_ar,\r\n y3: x3 * sin_ar + y3 * cos_ar,\r\n x4: r * Math.cos(a2),\r\n y4: r * Math.sin(a2)\r\n };\r\n };\r\n\r\n var rad2deg = function(value) {\r\n return (value * 180) / Math.PI;\r\n };\r\n\r\n var getQuadraticCurveBoundary = function(sx, sy, cpx, cpy, ex, ey) {\r\n var midX1 = sx + (cpx - sx) * 0.5;\r\n var midY1 = sy + (cpy - sy) * 0.5;\r\n var midX2 = ex + (cpx - ex) * 0.5;\r\n var midY2 = ey + (cpy - ey) * 0.5;\r\n var resultX1 = Math.min(sx, ex, midX1, midX2);\r\n var resultX2 = Math.max(sx, ex, midX1, midX2);\r\n var resultY1 = Math.min(sy, ey, midY1, midY2);\r\n var resultY2 = Math.max(sy, ey, midY1, midY2);\r\n return new Rectangle(\r\n resultX1,\r\n resultY1,\r\n resultX2 - resultX1,\r\n resultY2 - resultY1\r\n );\r\n };\r\n\r\n //De Casteljau algorithm\r\n var getBezierCurveBoundary = function(ax, ay, bx, by, cx, cy, dx, dy) {\r\n var tobx = bx - ax;\r\n var toby = by - ay;\r\n var tocx = cx - bx;\r\n var tocy = cy - by;\r\n var todx = dx - cx;\r\n var tody = dy - cy;\r\n var precision = 40;\r\n var d,\r\n i,\r\n px,\r\n py,\r\n qx,\r\n qy,\r\n rx,\r\n ry,\r\n tx,\r\n ty,\r\n sx,\r\n sy,\r\n x,\r\n y,\r\n minx,\r\n miny,\r\n maxx,\r\n maxy,\r\n toqx,\r\n toqy,\r\n torx,\r\n tory,\r\n totx,\r\n toty;\r\n for (i = 0; i < precision + 1; i++) {\r\n d = i / precision;\r\n px = ax + d * tobx;\r\n py = ay + d * toby;\r\n qx = bx + d * tocx;\r\n qy = by + d * tocy;\r\n rx = cx + d * todx;\r\n ry = cy + d * tody;\r\n toqx = qx - px;\r\n toqy = qy - py;\r\n torx = rx - qx;\r\n tory = ry - qy;\r\n\r\n sx = px + d * toqx;\r\n sy = py + d * toqy;\r\n tx = qx + d * torx;\r\n ty = qy + d * tory;\r\n totx = tx - sx;\r\n toty = ty - sy;\r\n\r\n x = sx + d * totx;\r\n y = sy + d * toty;\r\n if (i == 0) {\r\n minx = x;\r\n miny = y;\r\n maxx = x;\r\n maxy = y;\r\n } else {\r\n minx = Math.min(minx, x);\r\n miny = Math.min(miny, y);\r\n maxx = Math.max(maxx, x);\r\n maxy = Math.max(maxy, y);\r\n }\r\n }\r\n return new Rectangle(\r\n Math.round(minx),\r\n Math.round(miny),\r\n Math.round(maxx - minx),\r\n Math.round(maxy - miny)\r\n );\r\n };\r\n\r\n var getPrevLineDashValue = function(lineDash, lineDashOffset) {\r\n return JSON.stringify({\r\n lineDash: lineDash,\r\n lineDashOffset: lineDashOffset\r\n });\r\n };\r\n\r\n var setLineDash = function() {\r\n // Avoid unnecessary line dash declarations.\r\n if (\r\n !this.prevLineDash &&\r\n !this.ctx.lineDash.length &&\r\n !this.ctx.lineDashOffset\r\n ) {\r\n return;\r\n }\r\n\r\n // Avoid unnecessary line dash declarations.\r\n const nextLineDash = getPrevLineDashValue(\r\n this.ctx.lineDash,\r\n this.ctx.lineDashOffset\r\n );\r\n if (this.prevLineDash !== nextLineDash) {\r\n this.pdf.setLineDash(this.ctx.lineDash, this.ctx.lineDashOffset);\r\n this.prevLineDash = nextLineDash;\r\n }\r\n };\r\n})(jsPDF.API);\r\n","/**\n * @license\n * jsPDF filters PlugIn\n * Copyright (c) 2014 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { zlibSync } from \"../libs/fflate.js\";\n\n(function(jsPDFAPI) {\n \"use strict\";\n\n var ASCII85Encode = function(a) {\n var b, c, d, e, f, g, h, i, j, k;\n // eslint-disable-next-line no-control-regex\n for (\n !/[^\\x00-\\xFF]/.test(a),\n b = \"\\x00\\x00\\x00\\x00\".slice(a.length % 4 || 4),\n a += b,\n c = [],\n d = 0,\n e = a.length;\n e > d;\n d += 4\n )\n (f =\n (a.charCodeAt(d) << 24) +\n (a.charCodeAt(d + 1) << 16) +\n (a.charCodeAt(d + 2) << 8) +\n a.charCodeAt(d + 3)),\n 0 !== f\n ? ((k = f % 85),\n (f = (f - k) / 85),\n (j = f % 85),\n (f = (f - j) / 85),\n (i = f % 85),\n (f = (f - i) / 85),\n (h = f % 85),\n (f = (f - h) / 85),\n (g = f % 85),\n c.push(g + 33, h + 33, i + 33, j + 33, k + 33))\n : c.push(122);\n return (\n (function(a, b) {\n for (var c = b; c > 0; c--) a.pop();\n })(c, b.length),\n String.fromCharCode.apply(String, c) + \"~>\"\n );\n };\n\n var ASCII85Decode = function(a) {\n var c,\n d,\n e,\n f,\n g,\n h = String,\n l = \"length\",\n w = 255,\n x = \"charCodeAt\",\n y = \"slice\",\n z = \"replace\";\n for (\n \"~>\" === a[y](-2),\n a = a[y](0, -2)\n [z](/\\s/g, \"\")\n [z](\"z\", \"!!!!!\"),\n c = \"uuuuu\"[y](a[l] % 5 || 5),\n a += c,\n e = [],\n f = 0,\n g = a[l];\n g > f;\n f += 5\n )\n (d =\n 52200625 * (a[x](f) - 33) +\n 614125 * (a[x](f + 1) - 33) +\n 7225 * (a[x](f + 2) - 33) +\n 85 * (a[x](f + 3) - 33) +\n (a[x](f + 4) - 33)),\n e.push(w & (d >> 24), w & (d >> 16), w & (d >> 8), w & d);\n return (\n (function(a, b) {\n for (var c = b; c > 0; c--) a.pop();\n })(e, c[l]),\n h.fromCharCode.apply(h, e)\n );\n };\n\n var ASCIIHexEncode = function(value) {\n return (\n value\n .split(\"\")\n .map(function(value) {\n return (\"0\" + value.charCodeAt().toString(16)).slice(-2);\n })\n .join(\"\") + \">\"\n );\n };\n\n var ASCIIHexDecode = function(value) {\n var regexCheckIfHex = new RegExp(/^([0-9A-Fa-f]{2})+$/);\n value = value.replace(/\\s/g, \"\");\n if (value.indexOf(\">\") !== -1) {\n value = value.substr(0, value.indexOf(\">\"));\n }\n if (value.length % 2) {\n value += \"0\";\n }\n if (regexCheckIfHex.test(value) === false) {\n return \"\";\n }\n var result = \"\";\n for (var i = 0; i < value.length; i += 2) {\n result += String.fromCharCode(\"0x\" + (value[i] + value[i + 1]));\n }\n return result;\n };\n /*\n var FlatePredictors = {\n None: 1,\n TIFF: 2,\n PNG_None: 10,\n PNG_Sub: 11,\n PNG_Up: 12,\n PNG_Average: 13,\n PNG_Paeth: 14,\n PNG_Optimum: 15\n };\n */\n\n var FlateEncode = function(data) {\n var arr = new Uint8Array(data.length);\n var i = data.length;\n while (i--) {\n arr[i] = data.charCodeAt(i);\n }\n arr = zlibSync(arr);\n data = arr.reduce(function(data, byte) {\n return data + String.fromCharCode(byte);\n }, \"\");\n return data;\n };\n\n jsPDFAPI.processDataByFilters = function(origData, filterChain) {\n \"use strict\";\n var i = 0;\n var data = origData || \"\";\n var reverseChain = [];\n filterChain = filterChain || [];\n\n if (typeof filterChain === \"string\") {\n filterChain = [filterChain];\n }\n\n for (i = 0; i < filterChain.length; i += 1) {\n switch (filterChain[i]) {\n case \"ASCII85Decode\":\n case \"/ASCII85Decode\":\n data = ASCII85Decode(data);\n reverseChain.push(\"/ASCII85Encode\");\n break;\n case \"ASCII85Encode\":\n case \"/ASCII85Encode\":\n data = ASCII85Encode(data);\n reverseChain.push(\"/ASCII85Decode\");\n break;\n case \"ASCIIHexDecode\":\n case \"/ASCIIHexDecode\":\n data = ASCIIHexDecode(data);\n reverseChain.push(\"/ASCIIHexEncode\");\n break;\n case \"ASCIIHexEncode\":\n case \"/ASCIIHexEncode\":\n data = ASCIIHexEncode(data);\n reverseChain.push(\"/ASCIIHexDecode\");\n break;\n case \"FlateEncode\":\n case \"/FlateEncode\":\n data = FlateEncode(data);\n reverseChain.push(\"/FlateDecode\");\n break;\n default:\n throw new Error(\n 'The filter: \"' + filterChain[i] + '\" is not implemented'\n );\n }\n }\n\n return { data: data, reverseChain: reverseChain.reverse().join(\" \") };\n };\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2018 Erik Koopmans\n * Released under the MIT License.\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { normalizeFontFace } from \"../libs/fontFace.js\";\nimport { globalObject } from \"../libs/globalObject.js\";\n\n/**\n * jsPDF html PlugIn\n *\n * @name html\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n function loadHtml2Canvas() {\n return (function() {\n if (globalObject[\"html2canvas\"]) {\n return Promise.resolve(globalObject[\"html2canvas\"]);\n }\n\n return import(\"html2canvas\");\n\n })()\n .catch(function(e) {\n return Promise.reject(new Error(\"Could not load html2canvas: \" + e));\n })\n .then(function(html2canvas) {\n return html2canvas.default ? html2canvas.default : html2canvas;\n });\n }\n\n function loadDomPurify() {\n return (function() {\n if (globalObject[\"DOMPurify\"]) {\n return Promise.resolve(globalObject[\"DOMPurify\"]);\n }\n\n return import(\"dompurify\");\n\n })()\n .catch(function(e) {\n return Promise.reject(new Error(\"Could not load dompurify: \" + e));\n })\n .then(function(dompurify) {\n return dompurify.default ? dompurify.default : dompurify;\n });\n }\n\n /**\n * Determine the type of a variable/object.\n *\n * @private\n * @ignore\n */\n var objType = function(obj) {\n var type = typeof obj;\n if (type === \"undefined\") return \"undefined\";\n else if (type === \"string\" || obj instanceof String) return \"string\";\n else if (type === \"number\" || obj instanceof Number) return \"number\";\n else if (type === \"function\" || obj instanceof Function) return \"function\";\n else if (!!obj && obj.constructor === Array) return \"array\";\n else if (obj && obj.nodeType === 1) return \"element\";\n else if (type === \"object\") return \"object\";\n else return \"unknown\";\n };\n\n /**\n * Create an HTML element with optional className, innerHTML, and style.\n *\n * @private\n * @ignore\n */\n var createElement = function(tagName, opt) {\n var el = document.createElement(tagName);\n if (opt.className) el.className = opt.className;\n if (opt.innerHTML && opt.dompurify) {\n el.innerHTML = opt.dompurify.sanitize(opt.innerHTML);\n }\n for (var key in opt.style) {\n el.style[key] = opt.style[key];\n }\n return el;\n };\n\n /**\n * Deep-clone a node and preserve contents/properties.\n *\n * @private\n * @ignore\n */\n var cloneNode = function(node, javascriptEnabled) {\n // Recursively clone the node.\n var clone =\n node.nodeType === 3\n ? document.createTextNode(node.nodeValue)\n : node.cloneNode(false);\n for (var child = node.firstChild; child; child = child.nextSibling) {\n if (\n javascriptEnabled === true ||\n child.nodeType !== 1 ||\n child.nodeName !== \"SCRIPT\"\n ) {\n clone.appendChild(cloneNode(child, javascriptEnabled));\n }\n }\n\n if (node.nodeType === 1) {\n // Preserve contents/properties of special nodes.\n if (node.nodeName === \"CANVAS\") {\n clone.width = node.width;\n clone.height = node.height;\n clone.getContext(\"2d\").drawImage(node, 0, 0);\n } else if (node.nodeName === \"TEXTAREA\" || node.nodeName === \"SELECT\") {\n clone.value = node.value;\n }\n\n // Preserve the node's scroll position when it loads.\n clone.addEventListener(\n \"load\",\n function() {\n clone.scrollTop = node.scrollTop;\n clone.scrollLeft = node.scrollLeft;\n },\n true\n );\n }\n\n // Return the cloned node.\n return clone;\n };\n\n /* ----- CONSTRUCTOR ----- */\n\n var Worker = function Worker(opt) {\n // Create the root parent for the proto chain, and the starting Worker.\n var root = Object.assign(\n Worker.convert(Promise.resolve()),\n JSON.parse(JSON.stringify(Worker.template))\n );\n var self = Worker.convert(Promise.resolve(), root);\n\n // Set progress, optional settings, and return.\n self = self.setProgress(1, Worker, 1, [Worker]);\n self = self.set(opt);\n return self;\n };\n\n // Boilerplate for subclassing Promise.\n Worker.prototype = Object.create(Promise.prototype);\n Worker.prototype.constructor = Worker;\n\n // Converts/casts promises into Workers.\n Worker.convert = function convert(promise, inherit) {\n // Uses prototypal inheritance to receive changes made to ancestors' properties.\n promise.__proto__ = inherit || Worker.prototype;\n return promise;\n };\n\n Worker.template = {\n prop: {\n src: null,\n container: null,\n overlay: null,\n canvas: null,\n img: null,\n pdf: null,\n pageSize: null,\n callback: function() {}\n },\n progress: {\n val: 0,\n state: null,\n n: 0,\n stack: []\n },\n opt: {\n filename: \"file.pdf\",\n margin: [0, 0, 0, 0],\n enableLinks: true,\n x: 0,\n y: 0,\n html2canvas: {},\n jsPDF: {},\n backgroundColor: \"transparent\"\n }\n };\n\n /* ----- FROM / TO ----- */\n\n Worker.prototype.from = function from(src, type) {\n function getType(src) {\n switch (objType(src)) {\n case \"string\":\n return \"string\";\n case \"element\":\n return src.nodeName.toLowerCase() === \"canvas\" ? \"canvas\" : \"element\";\n default:\n return \"unknown\";\n }\n }\n\n return this.then(function from_main() {\n type = type || getType(src);\n switch (type) {\n case \"string\":\n return this.then(loadDomPurify).then(function(dompurify) {\n return this.set({\n src: createElement(\"div\", {\n innerHTML: src,\n dompurify: dompurify\n })\n });\n });\n case \"element\":\n return this.set({ src: src });\n case \"canvas\":\n return this.set({ canvas: src });\n case \"img\":\n return this.set({ img: src });\n default:\n return this.error(\"Unknown source type.\");\n }\n });\n };\n\n Worker.prototype.to = function to(target) {\n // Route the 'to' request to the appropriate method.\n switch (target) {\n case \"container\":\n return this.toContainer();\n case \"canvas\":\n return this.toCanvas();\n case \"img\":\n return this.toImg();\n case \"pdf\":\n return this.toPdf();\n default:\n return this.error(\"Invalid target.\");\n }\n };\n\n Worker.prototype.toContainer = function toContainer() {\n // Set up function prerequisites.\n var prereqs = [\n function checkSrc() {\n return (\n this.prop.src || this.error(\"Cannot duplicate - no source HTML.\")\n );\n },\n function checkPageSize() {\n return this.prop.pageSize || this.setPageSize();\n }\n ];\n return this.thenList(prereqs).then(function toContainer_main() {\n // Define the CSS styles for the container and its overlay parent.\n var overlayCSS = {\n position: \"fixed\",\n overflow: \"hidden\",\n zIndex: 1000,\n left: \"-100000px\",\n right: 0,\n bottom: 0,\n top: 0\n };\n var containerCSS = {\n position: \"relative\",\n display: \"inline-block\",\n width:\n (typeof this.opt.width === \"number\" &&\n !isNaN(this.opt.width) &&\n typeof this.opt.windowWidth === \"number\" &&\n !isNaN(this.opt.windowWidth)\n ? this.opt.windowWidth\n : Math.max(\n this.prop.src.clientWidth,\n this.prop.src.scrollWidth,\n this.prop.src.offsetWidth\n )) + \"px\",\n left: 0,\n right: 0,\n top: 0,\n margin: \"auto\",\n backgroundColor: this.opt.backgroundColor\n }; // Set the overlay to hidden (could be changed in the future to provide a print preview).\n\n var source = cloneNode(\n this.prop.src,\n this.opt.html2canvas.javascriptEnabled\n );\n\n if (source.tagName === \"BODY\") {\n containerCSS.height =\n Math.max(\n document.body.scrollHeight,\n document.body.offsetHeight,\n document.documentElement.clientHeight,\n document.documentElement.scrollHeight,\n document.documentElement.offsetHeight\n ) + \"px\";\n }\n\n this.prop.overlay = createElement(\"div\", {\n className: \"html2pdf__overlay\",\n style: overlayCSS\n });\n this.prop.container = createElement(\"div\", {\n className: \"html2pdf__container\",\n style: containerCSS\n });\n this.prop.container.appendChild(source);\n this.prop.container.firstChild.appendChild(\n createElement(\"div\", {\n style: {\n clear: \"both\",\n border: \"0 none transparent\",\n margin: 0,\n padding: 0,\n height: 0\n }\n })\n );\n this.prop.container.style.float = \"none\";\n this.prop.overlay.appendChild(this.prop.container);\n document.body.appendChild(this.prop.overlay);\n this.prop.container.firstChild.style.position = \"relative\";\n this.prop.container.height =\n Math.max(\n this.prop.container.firstChild.clientHeight,\n this.prop.container.firstChild.scrollHeight,\n this.prop.container.firstChild.offsetHeight\n ) + \"px\";\n });\n };\n\n Worker.prototype.toCanvas = function toCanvas() {\n // Set up function prerequisites.\n var prereqs = [\n function checkContainer() {\n return (\n document.body.contains(this.prop.container) || this.toContainer()\n );\n }\n ];\n\n // Fulfill prereqs then create the canvas.\n return this.thenList(prereqs)\n .then(loadHtml2Canvas)\n .then(function toCanvas_main(html2canvas) {\n // Handle old-fashioned 'onrendered' argument.\n var options = Object.assign({}, this.opt.html2canvas);\n delete options.onrendered;\n\n return html2canvas(this.prop.container, options);\n })\n .then(function toCanvas_post(canvas) {\n // Handle old-fashioned 'onrendered' argument.\n var onRendered = this.opt.html2canvas.onrendered || function() {};\n onRendered(canvas);\n\n this.prop.canvas = canvas;\n document.body.removeChild(this.prop.overlay);\n });\n };\n\n Worker.prototype.toContext2d = function toContext2d() {\n // Set up function prerequisites.\n var prereqs = [\n function checkContainer() {\n return (\n document.body.contains(this.prop.container) || this.toContainer()\n );\n }\n ];\n\n // Fulfill prereqs then create the canvas.\n return this.thenList(prereqs)\n .then(loadHtml2Canvas)\n .then(function toContext2d_main(html2canvas) {\n // Handle old-fashioned 'onrendered' argument.\n\n var pdf = this.opt.jsPDF;\n var fontFaces = this.opt.fontFaces;\n\n var scale =\n typeof this.opt.width === \"number\" &&\n !isNaN(this.opt.width) &&\n typeof this.opt.windowWidth === \"number\" &&\n !isNaN(this.opt.windowWidth)\n ? this.opt.width / this.opt.windowWidth\n : 1;\n\n var options = Object.assign(\n {\n async: true,\n allowTaint: true,\n scale: scale,\n scrollX: this.opt.scrollX || 0,\n scrollY: this.opt.scrollY || 0,\n backgroundColor: \"#ffffff\",\n imageTimeout: 15000,\n logging: true,\n proxy: null,\n removeContainer: true,\n foreignObjectRendering: false,\n useCORS: false\n },\n this.opt.html2canvas\n );\n delete options.onrendered;\n\n pdf.context2d.autoPaging =\n typeof this.opt.autoPaging === \"undefined\"\n ? true\n : this.opt.autoPaging;\n pdf.context2d.posX = this.opt.x;\n pdf.context2d.posY = this.opt.y;\n pdf.context2d.margin = this.opt.margin;\n pdf.context2d.fontFaces = fontFaces;\n\n if (fontFaces) {\n for (var i = 0; i < fontFaces.length; ++i) {\n var font = fontFaces[i];\n var src = font.src.find(function(src) {\n return src.format === \"truetype\";\n });\n\n if (src) {\n pdf.addFont(src.url, font.ref.name, font.ref.style);\n }\n }\n }\n\n options.windowHeight = options.windowHeight || 0;\n options.windowHeight =\n options.windowHeight == 0\n ? Math.max(\n this.prop.container.clientHeight,\n this.prop.container.scrollHeight,\n this.prop.container.offsetHeight\n )\n : options.windowHeight;\n\n pdf.context2d.save(true);\n return html2canvas(this.prop.container, options);\n })\n .then(function toContext2d_post(canvas) {\n this.opt.jsPDF.context2d.restore(true);\n\n // Handle old-fashioned 'onrendered' argument.\n var onRendered = this.opt.html2canvas.onrendered || function() {};\n onRendered(canvas);\n\n this.prop.canvas = canvas;\n document.body.removeChild(this.prop.overlay);\n });\n };\n\n Worker.prototype.toImg = function toImg() {\n // Set up function prerequisites.\n var prereqs = [\n function checkCanvas() {\n return this.prop.canvas || this.toCanvas();\n }\n ];\n\n // Fulfill prereqs then create the image.\n return this.thenList(prereqs).then(function toImg_main() {\n var imgData = this.prop.canvas.toDataURL(\n \"image/\" + this.opt.image.type,\n this.opt.image.quality\n );\n this.prop.img = document.createElement(\"img\");\n this.prop.img.src = imgData;\n });\n };\n\n Worker.prototype.toPdf = function toPdf() {\n // Set up function prerequisites.\n var prereqs = [\n function checkContext2d() {\n return this.toContext2d();\n }\n //function checkCanvas() { return this.prop.canvas || this.toCanvas(); }\n ];\n\n // Fulfill prereqs then create the image.\n return this.thenList(prereqs).then(function toPdf_main() {\n // Create local copies of frequently used properties.\n this.prop.pdf = this.prop.pdf || this.opt.jsPDF;\n });\n };\n\n /* ----- OUTPUT / SAVE ----- */\n\n Worker.prototype.output = function output(type, options, src) {\n // Redirect requests to the correct function (outputPdf / outputImg).\n src = src || \"pdf\";\n if (src.toLowerCase() === \"img\" || src.toLowerCase() === \"image\") {\n return this.outputImg(type, options);\n } else {\n return this.outputPdf(type, options);\n }\n };\n\n Worker.prototype.outputPdf = function outputPdf(type, options) {\n // Set up function prerequisites.\n var prereqs = [\n function checkPdf() {\n return this.prop.pdf || this.toPdf();\n }\n ];\n\n // Fulfill prereqs then perform the appropriate output.\n return this.thenList(prereqs).then(function outputPdf_main() {\n /* Currently implemented output types:\n * https://rawgit.com/MrRio/jsPDF/master/docs/jspdf.js.html#line992\n * save(options), arraybuffer, blob, bloburi/bloburl,\n * datauristring/dataurlstring, dataurlnewwindow, datauri/dataurl\n */\n return this.prop.pdf.output(type, options);\n });\n };\n\n Worker.prototype.outputImg = function outputImg(type) {\n // Set up function prerequisites.\n var prereqs = [\n function checkImg() {\n return this.prop.img || this.toImg();\n }\n ];\n\n // Fulfill prereqs then perform the appropriate output.\n return this.thenList(prereqs).then(function outputImg_main() {\n switch (type) {\n case undefined:\n case \"img\":\n return this.prop.img;\n case \"datauristring\":\n case \"dataurlstring\":\n return this.prop.img.src;\n case \"datauri\":\n case \"dataurl\":\n return (document.location.href = this.prop.img.src);\n default:\n throw 'Image output type \"' + type + '\" is not supported.';\n }\n });\n };\n\n Worker.prototype.save = function save(filename) {\n // Set up function prerequisites.\n var prereqs = [\n function checkPdf() {\n return this.prop.pdf || this.toPdf();\n }\n ];\n\n // Fulfill prereqs, update the filename (if provided), and save the PDF.\n return this.thenList(prereqs)\n .set(filename ? { filename: filename } : null)\n .then(function save_main() {\n this.prop.pdf.save(this.opt.filename);\n });\n };\n\n Worker.prototype.doCallback = function doCallback() {\n // Set up function prerequisites.\n var prereqs = [\n function checkPdf() {\n return this.prop.pdf || this.toPdf();\n }\n ];\n\n // Fulfill prereqs, update the filename (if provided), and save the PDF.\n return this.thenList(prereqs).then(function doCallback_main() {\n this.prop.callback(this.prop.pdf);\n });\n };\n\n /* ----- SET / GET ----- */\n\n Worker.prototype.set = function set(opt) {\n // TODO: Implement ordered pairs?\n\n // Silently ignore invalid or empty input.\n if (objType(opt) !== \"object\") {\n return this;\n }\n\n // Build an array of setter functions to queue.\n var fns = Object.keys(opt || {}).map(function(key) {\n if (key in Worker.template.prop) {\n // Set pre-defined properties.\n return function set_prop() {\n this.prop[key] = opt[key];\n };\n } else {\n switch (key) {\n case \"margin\":\n return this.setMargin.bind(this, opt.margin);\n case \"jsPDF\":\n return function set_jsPDF() {\n this.opt.jsPDF = opt.jsPDF;\n return this.setPageSize();\n };\n case \"pageSize\":\n return this.setPageSize.bind(this, opt.pageSize);\n default:\n // Set any other properties in opt.\n return function set_opt() {\n this.opt[key] = opt[key];\n };\n }\n }\n }, this);\n\n // Set properties within the promise chain.\n return this.then(function set_main() {\n return this.thenList(fns);\n });\n };\n\n Worker.prototype.get = function get(key, cbk) {\n return this.then(function get_main() {\n // Fetch the requested property, either as a predefined prop or in opt.\n var val = key in Worker.template.prop ? this.prop[key] : this.opt[key];\n return cbk ? cbk(val) : val;\n });\n };\n\n Worker.prototype.setMargin = function setMargin(margin) {\n return this.then(function setMargin_main() {\n // Parse the margin property.\n switch (objType(margin)) {\n case \"number\":\n margin = [margin, margin, margin, margin];\n // eslint-disable-next-line no-fallthrough\n case \"array\":\n if (margin.length === 2) {\n margin = [margin[0], margin[1], margin[0], margin[1]];\n }\n if (margin.length === 4) {\n break;\n }\n // eslint-disable-next-line no-fallthrough\n default:\n return this.error(\"Invalid margin array.\");\n }\n\n // Set the margin property, then update pageSize.\n this.opt.margin = margin;\n }).then(this.setPageSize);\n };\n\n Worker.prototype.setPageSize = function setPageSize(pageSize) {\n function toPx(val, k) {\n return Math.floor(((val * k) / 72) * 96);\n }\n\n return this.then(function setPageSize_main() {\n // Retrieve page-size based on jsPDF settings, if not explicitly provided.\n pageSize = pageSize || jsPDF.getPageSize(this.opt.jsPDF);\n\n // Add 'inner' field if not present.\n if (!pageSize.hasOwnProperty(\"inner\")) {\n pageSize.inner = {\n width: pageSize.width - this.opt.margin[1] - this.opt.margin[3],\n height: pageSize.height - this.opt.margin[0] - this.opt.margin[2]\n };\n pageSize.inner.px = {\n width: toPx(pageSize.inner.width, pageSize.k),\n height: toPx(pageSize.inner.height, pageSize.k)\n };\n pageSize.inner.ratio = pageSize.inner.height / pageSize.inner.width;\n }\n\n // Attach pageSize to this.\n this.prop.pageSize = pageSize;\n });\n };\n\n Worker.prototype.setProgress = function setProgress(val, state, n, stack) {\n // Immediately update all progress values.\n if (val != null) this.progress.val = val;\n if (state != null) this.progress.state = state;\n if (n != null) this.progress.n = n;\n if (stack != null) this.progress.stack = stack;\n this.progress.ratio = this.progress.val / this.progress.state;\n\n // Return this for command chaining.\n return this;\n };\n\n Worker.prototype.updateProgress = function updateProgress(\n val,\n state,\n n,\n stack\n ) {\n // Immediately update all progress values, using setProgress.\n return this.setProgress(\n val ? this.progress.val + val : null,\n state ? state : null,\n n ? this.progress.n + n : null,\n stack ? this.progress.stack.concat(stack) : null\n );\n };\n\n /* ----- PROMISE MAPPING ----- */\n\n Worker.prototype.then = function then(onFulfilled, onRejected) {\n // Wrap `this` for encapsulation.\n var self = this;\n\n return this.thenCore(onFulfilled, onRejected, function then_main(\n onFulfilled,\n onRejected\n ) {\n // Update progress while queuing, calling, and resolving `then`.\n self.updateProgress(null, null, 1, [onFulfilled]);\n return Promise.prototype.then\n .call(this, function then_pre(val) {\n self.updateProgress(null, onFulfilled);\n return val;\n })\n .then(onFulfilled, onRejected)\n .then(function then_post(val) {\n self.updateProgress(1);\n return val;\n });\n });\n };\n\n Worker.prototype.thenCore = function thenCore(\n onFulfilled,\n onRejected,\n thenBase\n ) {\n // Handle optional thenBase parameter.\n thenBase = thenBase || Promise.prototype.then;\n\n // Wrap `this` for encapsulation and bind it to the promise handlers.\n var self = this;\n if (onFulfilled) {\n onFulfilled = onFulfilled.bind(self);\n }\n if (onRejected) {\n onRejected = onRejected.bind(self);\n }\n\n // Cast self into a Promise to avoid polyfills recursively defining `then`.\n var isNative =\n Promise.toString().indexOf(\"[native code]\") !== -1 &&\n Promise.name === \"Promise\";\n var selfPromise = isNative\n ? self\n : Worker.convert(Object.assign({}, self), Promise.prototype);\n\n // Return the promise, after casting it into a Worker and preserving props.\n var returnVal = thenBase.call(selfPromise, onFulfilled, onRejected);\n return Worker.convert(returnVal, self.__proto__);\n };\n\n Worker.prototype.thenExternal = function thenExternal(\n onFulfilled,\n onRejected\n ) {\n // Call `then` and return a standard promise (exits the Worker chain).\n return Promise.prototype.then.call(this, onFulfilled, onRejected);\n };\n\n Worker.prototype.thenList = function thenList(fns) {\n // Queue a series of promise 'factories' into the promise chain.\n var self = this;\n fns.forEach(function thenList_forEach(fn) {\n self = self.thenCore(fn);\n });\n return self;\n };\n\n Worker.prototype[\"catch\"] = function(onRejected) {\n // Bind `this` to the promise handler, call `catch`, and return a Worker.\n if (onRejected) {\n onRejected = onRejected.bind(this);\n }\n var returnVal = Promise.prototype[\"catch\"].call(this, onRejected);\n return Worker.convert(returnVal, this);\n };\n\n Worker.prototype.catchExternal = function catchExternal(onRejected) {\n // Call `catch` and return a standard promise (exits the Worker chain).\n return Promise.prototype[\"catch\"].call(this, onRejected);\n };\n\n Worker.prototype.error = function error(msg) {\n // Throw the error in the Promise chain.\n return this.then(function error_main() {\n throw new Error(msg);\n });\n };\n\n /* ----- ALIASES ----- */\n\n Worker.prototype.using = Worker.prototype.set;\n Worker.prototype.saveAs = Worker.prototype.save;\n Worker.prototype.export = Worker.prototype.output;\n Worker.prototype.run = Worker.prototype.then;\n\n // Get dimensions of a PDF page, as determined by jsPDF.\n jsPDF.getPageSize = function(orientation, unit, format) {\n // Decode options object\n if (typeof orientation === \"object\") {\n var options = orientation;\n orientation = options.orientation;\n unit = options.unit || unit;\n format = options.format || format;\n }\n\n // Default options\n unit = unit || \"mm\";\n format = format || \"a4\";\n orientation = (\"\" + (orientation || \"P\")).toLowerCase();\n var format_as_string = (\"\" + format).toLowerCase();\n\n // Size in pt of various paper formats\n var pageFormats = {\n a0: [2383.94, 3370.39],\n a1: [1683.78, 2383.94],\n a2: [1190.55, 1683.78],\n a3: [841.89, 1190.55],\n a4: [595.28, 841.89],\n a5: [419.53, 595.28],\n a6: [297.64, 419.53],\n a7: [209.76, 297.64],\n a8: [147.4, 209.76],\n a9: [104.88, 147.4],\n a10: [73.7, 104.88],\n b0: [2834.65, 4008.19],\n b1: [2004.09, 2834.65],\n b2: [1417.32, 2004.09],\n b3: [1000.63, 1417.32],\n b4: [708.66, 1000.63],\n b5: [498.9, 708.66],\n b6: [354.33, 498.9],\n b7: [249.45, 354.33],\n b8: [175.75, 249.45],\n b9: [124.72, 175.75],\n b10: [87.87, 124.72],\n c0: [2599.37, 3676.54],\n c1: [1836.85, 2599.37],\n c2: [1298.27, 1836.85],\n c3: [918.43, 1298.27],\n c4: [649.13, 918.43],\n c5: [459.21, 649.13],\n c6: [323.15, 459.21],\n c7: [229.61, 323.15],\n c8: [161.57, 229.61],\n c9: [113.39, 161.57],\n c10: [79.37, 113.39],\n dl: [311.81, 623.62],\n letter: [612, 792],\n \"government-letter\": [576, 756],\n legal: [612, 1008],\n \"junior-legal\": [576, 360],\n ledger: [1224, 792],\n tabloid: [792, 1224],\n \"credit-card\": [153, 243]\n };\n\n var k;\n // Unit conversion\n switch (unit) {\n case \"pt\":\n k = 1;\n break;\n case \"mm\":\n k = 72 / 25.4;\n break;\n case \"cm\":\n k = 72 / 2.54;\n break;\n case \"in\":\n k = 72;\n break;\n case \"px\":\n k = 72 / 96;\n break;\n case \"pc\":\n k = 12;\n break;\n case \"em\":\n k = 12;\n break;\n case \"ex\":\n k = 6;\n break;\n default:\n throw \"Invalid unit: \" + unit;\n }\n var pageHeight = 0;\n var pageWidth = 0;\n\n // Dimensions are stored as user units and converted to points on output\n if (pageFormats.hasOwnProperty(format_as_string)) {\n pageHeight = pageFormats[format_as_string][1] / k;\n pageWidth = pageFormats[format_as_string][0] / k;\n } else {\n try {\n pageHeight = format[1];\n pageWidth = format[0];\n } catch (err) {\n throw new Error(\"Invalid format: \" + format);\n }\n }\n\n var tmp;\n // Handle page orientation\n if (orientation === \"p\" || orientation === \"portrait\") {\n orientation = \"p\";\n if (pageWidth > pageHeight) {\n tmp = pageWidth;\n pageWidth = pageHeight;\n pageHeight = tmp;\n }\n } else if (orientation === \"l\" || orientation === \"landscape\") {\n orientation = \"l\";\n if (pageHeight > pageWidth) {\n tmp = pageWidth;\n pageWidth = pageHeight;\n pageHeight = tmp;\n }\n } else {\n throw \"Invalid orientation: \" + orientation;\n }\n\n // Return information (k is the unit conversion ratio from pts)\n var info = {\n width: pageWidth,\n height: pageHeight,\n unit: unit,\n k: k,\n orientation: orientation\n };\n return info;\n };\n\n /**\n * @typedef FontFace\n *\n * The font-face type implements an interface similar to that of the font-face CSS rule,\n * and is used by jsPDF to match fonts when the font property of CanvasRenderingContext2D\n * is updated.\n *\n * All properties expect values similar to those in the font-face CSS rule. A difference\n * is the font-family, which do not need to be enclosed in double-quotes when containing\n * spaces like in CSS.\n *\n * @property {string} family The name of the font-family.\n * @property {string|undefined} style The style that this font-face defines, e.g. 'italic'.\n * @property {string|number|undefined} weight The weight of the font, either as a string or a number (400, 500, 600, e.g.)\n * @property {string|undefined} stretch The stretch of the font, e.g. condensed, normal, expanded.\n * @property {Object[]} src A list of URLs from where fonts of various formats can be fetched.\n * @property {string} [src] url A URL to a font of a specific format.\n * @property {string} [src] format Format of the font referenced by the URL.\n */\n\n /**\n * Generate a PDF from an HTML element or string using.\n *\n * @name html\n * @function\n * @param {HTMLElement|string} source The source HTMLElement or a string containing HTML.\n * @param {Object} [options] Collection of settings\n * @param {function} [options.callback] The mandatory callback-function gets as first parameter the current jsPDF instance\n * @param {(number|number[])=} [options.margin] Page margins [top, right, bottom, left]. Default is 0.\n * @param {(boolean|'slice'|'text')=} [options.autoPaging] The auto paging mode.\n * <ul>\n * <li>\n * <code>false</code>: Auto paging is disabled.\n * </li>\n * <li>\n * <code>true</code> or <code>'slice'</code>: Will cut shapes or text chunks across page breaks. Will possibly\n * slice text in half, making it difficult to read.\n * </li>\n * <li>\n * <code>'text'</code>: Trys not to cut text in half across page breaks. Works best for documents consisting\n * mostly of a single column of text.\n * </li>\n * </ul>\n * Default is <code>true</code>.\n * @param {string} [options.filename] name of the file\n * @param {HTMLOptionImage} [options.image] image settings when converting HTML to image\n * @param {Html2CanvasOptions} [options.html2canvas] html2canvas options\n * @param {FontFace[]} [options.fontFaces] A list of font-faces to match when resolving fonts. Fonts will be added to the PDF based on the specified URL. If omitted, the font match algorithm falls back to old algorithm.\n * @param {jsPDF} [options.jsPDF] jsPDF instance\n * @param {number=} [options.x] x position on the PDF document in jsPDF units.\n * @param {number=} [options.y] y position on the PDF document in jsPDF units.\n * @param {number=} [options.width] The target width in the PDF document in jsPDF units. The rendered element will be\n * scaled such that it fits into the specified width. Has no effect if either the <code>html2canvas.scale<code> is\n * specified or the <code>windowWidth</code> option is NOT specified.\n * @param {number=} [options.windowWidth] The window width in CSS pixels. In contrast to the\n * <code>html2canvas.windowWidth</code> option, this option affects the actual container size while rendering and\n * does NOT affect CSS media queries. This option only has an effect, if the <code>width<code> option is also specified.\n *\n * @example\n * var doc = new jsPDF();\n *\n * doc.html(document.body, {\n * callback: function (doc) {\n * doc.save();\n * },\n * x: 10,\n * y: 10\n * });\n */\n jsPDFAPI.html = function(src, options) {\n \"use strict\";\n\n options = options || {};\n options.callback = options.callback || function() {};\n options.html2canvas = options.html2canvas || {};\n options.html2canvas.canvas = options.html2canvas.canvas || this.canvas;\n options.jsPDF = options.jsPDF || this;\n options.fontFaces = options.fontFaces\n ? options.fontFaces.map(normalizeFontFace)\n : null;\n\n // Create a new worker with the given options.\n var worker = new Worker(options);\n\n if (!options.worker) {\n // If worker is not set to true, perform the traditional 'simple' operation.\n return worker.from(src).doCallback();\n } else {\n // Otherwise, return the worker for new Promise-based operation.\n return worker;\n }\n };\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF Outline PlugIn\n *\n * Generates a PDF Outline\n * @name outline\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n var namesOid;\n //var destsGoto = [];\n\n jsPDFAPI.events.push([\n \"postPutResources\",\n function() {\n var pdf = this;\n var rx = /^(\\d+) 0 obj$/;\n\n // Write action goto objects for each page\n // this.outline.destsGoto = [];\n // for (var i = 0; i < totalPages; i++) {\n // var id = pdf.internal.newObject();\n // this.outline.destsGoto.push(id);\n // pdf.internal.write(\"<</D[\" + (i * 2 + 3) + \" 0 R /XYZ null\n // null null]/S/GoTo>> endobj\");\n // }\n //\n // for (var i = 0; i < dests.length; i++) {\n // pdf.internal.write(\"(page_\" + (i + 1) + \")\" + dests[i] + \" 0\n // R\");\n // }\n //\n if (this.outline.root.children.length > 0) {\n var lines = pdf.outline.render().split(/\\r\\n/);\n for (var i = 0; i < lines.length; i++) {\n var line = lines[i];\n var m = rx.exec(line);\n if (m != null) {\n var oid = m[1];\n pdf.internal.newObjectDeferredBegin(oid, false);\n }\n pdf.internal.write(line);\n }\n }\n\n // This code will write named destination for each page reference\n // (page_1, etc)\n if (this.outline.createNamedDestinations) {\n var totalPages = this.internal.pages.length;\n // WARNING: this assumes jsPDF starts on page 3 and pageIDs\n // follow 5, 7, 9, etc\n // Write destination objects for each page\n var dests = [];\n for (var i = 0; i < totalPages; i++) {\n var id = pdf.internal.newObject();\n dests.push(id);\n var info = pdf.internal.getPageInfo(i + 1);\n pdf.internal.write(\n \"<< /D[\" + info.objId + \" 0 R /XYZ null null null]>> endobj\"\n );\n }\n\n // assign a name for each destination\n var names2Oid = pdf.internal.newObject();\n pdf.internal.write(\"<< /Names [ \");\n for (var i = 0; i < dests.length; i++) {\n pdf.internal.write(\"(page_\" + (i + 1) + \")\" + dests[i] + \" 0 R\");\n }\n pdf.internal.write(\" ] >>\", \"endobj\");\n\n // var kids = pdf.internal.newObject();\n // pdf.internal.write('<< /Kids [ ' + names2Oid + ' 0 R');\n // pdf.internal.write(' ] >>', 'endobj');\n\n namesOid = pdf.internal.newObject();\n pdf.internal.write(\"<< /Dests \" + names2Oid + \" 0 R\");\n pdf.internal.write(\">>\", \"endobj\");\n }\n }\n ]);\n\n jsPDFAPI.events.push([\n \"putCatalog\",\n function() {\n var pdf = this;\n if (pdf.outline.root.children.length > 0) {\n pdf.internal.write(\n \"/Outlines\",\n this.outline.makeRef(this.outline.root)\n );\n if (this.outline.createNamedDestinations) {\n pdf.internal.write(\"/Names \" + namesOid + \" 0 R\");\n }\n // Open with Bookmarks showing\n // pdf.internal.write(\"/PageMode /UseOutlines\");\n }\n }\n ]);\n\n jsPDFAPI.events.push([\n \"initialized\",\n function() {\n var pdf = this;\n\n pdf.outline = {\n createNamedDestinations: false,\n root: {\n children: []\n }\n };\n\n /**\n * Options: pageNumber\n */\n pdf.outline.add = function(parent, title, options) {\n var item = {\n title: title,\n options: options,\n children: []\n };\n if (parent == null) {\n parent = this.root;\n }\n parent.children.push(item);\n return item;\n };\n\n pdf.outline.render = function() {\n this.ctx = {};\n this.ctx.val = \"\";\n this.ctx.pdf = pdf;\n\n this.genIds_r(this.root);\n this.renderRoot(this.root);\n this.renderItems(this.root);\n\n return this.ctx.val;\n };\n\n pdf.outline.genIds_r = function(node) {\n node.id = pdf.internal.newObjectDeferred();\n for (var i = 0; i < node.children.length; i++) {\n this.genIds_r(node.children[i]);\n }\n };\n\n pdf.outline.renderRoot = function(node) {\n this.objStart(node);\n this.line(\"/Type /Outlines\");\n if (node.children.length > 0) {\n this.line(\"/First \" + this.makeRef(node.children[0]));\n this.line(\n \"/Last \" + this.makeRef(node.children[node.children.length - 1])\n );\n }\n this.line(\n \"/Count \" +\n this.count_r(\n {\n count: 0\n },\n node\n )\n );\n this.objEnd();\n };\n\n pdf.outline.renderItems = function(node) {\n var getVerticalCoordinateString = this.ctx.pdf.internal\n .getVerticalCoordinateString;\n for (var i = 0; i < node.children.length; i++) {\n var item = node.children[i];\n this.objStart(item);\n\n this.line(\"/Title \" + this.makeString(item.title));\n\n this.line(\"/Parent \" + this.makeRef(node));\n if (i > 0) {\n this.line(\"/Prev \" + this.makeRef(node.children[i - 1]));\n }\n if (i < node.children.length - 1) {\n this.line(\"/Next \" + this.makeRef(node.children[i + 1]));\n }\n if (item.children.length > 0) {\n this.line(\"/First \" + this.makeRef(item.children[0]));\n this.line(\n \"/Last \" + this.makeRef(item.children[item.children.length - 1])\n );\n }\n\n var count = (this.count = this.count_r(\n {\n count: 0\n },\n item\n ));\n if (count > 0) {\n this.line(\"/Count \" + count);\n }\n\n if (item.options) {\n if (item.options.pageNumber) {\n // Explicit Destination\n //WARNING this assumes page ids are 3,5,7, etc.\n var info = pdf.internal.getPageInfo(item.options.pageNumber);\n this.line(\n \"/Dest \" +\n \"[\" +\n info.objId +\n \" 0 R /XYZ 0 \" +\n getVerticalCoordinateString(0) +\n \" 0]\"\n );\n // this line does not work on all clients (pageNumber instead of page ref)\n //this.line('/Dest ' + '[' + (item.options.pageNumber - 1) + ' /XYZ 0 ' + this.ctx.pdf.internal.pageSize.getHeight() + ' 0]');\n\n // Named Destination\n // this.line('/Dest (page_' + (item.options.pageNumber) + ')');\n\n // Action Destination\n // var id = pdf.internal.newObject();\n // pdf.internal.write('<</D[' + (item.options.pageNumber - 1) + ' /XYZ null null null]/S/GoTo>> endobj');\n // this.line('/A ' + id + ' 0 R' );\n }\n }\n this.objEnd();\n }\n for (var z = 0; z < node.children.length; z++) {\n this.renderItems(node.children[z]);\n }\n };\n\n pdf.outline.line = function(text) {\n this.ctx.val += text + \"\\r\\n\";\n };\n\n pdf.outline.makeRef = function(node) {\n return node.id + \" 0 R\";\n };\n\n pdf.outline.makeString = function(val) {\n return \"(\" + pdf.internal.pdfEscape(val) + \")\";\n };\n\n pdf.outline.objStart = function(node) {\n this.ctx.val += \"\\r\\n\" + node.id + \" 0 obj\" + \"\\r\\n<<\\r\\n\";\n };\n\n pdf.outline.objEnd = function() {\n this.ctx.val += \">> \\r\\n\" + \"endobj\" + \"\\r\\n\";\n };\n\n pdf.outline.count_r = function(ctx, node) {\n for (var i = 0; i < node.children.length; i++) {\n ctx.count++;\n this.count_r(ctx, node.children[i]);\n }\n return ctx.count;\n };\n }\n ]);\n\n return this;\n})(jsPDF.API);\n","/**\n * @license\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF jpeg Support PlugIn\n *\n * @name jpeg_support\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * 0xc0 (SOF) Huffman - Baseline DCT\n * 0xc1 (SOF) Huffman - Extended sequential DCT\n * 0xc2 Progressive DCT (SOF2)\n * 0xc3 Spatial (sequential) lossless (SOF3)\n * 0xc4 Differential sequential DCT (SOF5)\n * 0xc5 Differential progressive DCT (SOF6)\n * 0xc6 Differential spatial (SOF7)\n * 0xc7\n */\n var markers = [0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7];\n\n //takes a string imgData containing the raw bytes of\n //a jpeg image and returns [width, height]\n //Algorithm from: http://www.64lines.com/jpeg-width-height\n var getJpegInfo = function(imgData) {\n var width, height, numcomponents;\n var blockLength = imgData.charCodeAt(4) * 256 + imgData.charCodeAt(5);\n var len = imgData.length;\n var result = { width: 0, height: 0, numcomponents: 1 };\n for (var i = 4; i < len; i += 2) {\n i += blockLength;\n if (markers.indexOf(imgData.charCodeAt(i + 1)) !== -1) {\n height = imgData.charCodeAt(i + 5) * 256 + imgData.charCodeAt(i + 6);\n width = imgData.charCodeAt(i + 7) * 256 + imgData.charCodeAt(i + 8);\n numcomponents = imgData.charCodeAt(i + 9);\n result = { width: width, height: height, numcomponents: numcomponents };\n break;\n } else {\n blockLength =\n imgData.charCodeAt(i + 2) * 256 + imgData.charCodeAt(i + 3);\n }\n }\n return result;\n };\n\n /**\n * @ignore\n */\n jsPDFAPI.processJPEG = function(\n data,\n index,\n alias,\n compression,\n dataAsBinaryString,\n colorSpace\n ) {\n var filter = this.decode.DCT_DECODE,\n bpc = 8,\n dims,\n result = null;\n\n if (\n typeof data === \"string\" ||\n this.__addimage__.isArrayBuffer(data) ||\n this.__addimage__.isArrayBufferView(data)\n ) {\n // if we already have a stored binary string rep use that\n data = dataAsBinaryString || data;\n data = this.__addimage__.isArrayBuffer(data)\n ? new Uint8Array(data)\n : data;\n data = this.__addimage__.isArrayBufferView(data)\n ? this.__addimage__.arrayBufferToBinaryString(data)\n : data;\n\n dims = getJpegInfo(data);\n switch (dims.numcomponents) {\n case 1:\n colorSpace = this.color_spaces.DEVICE_GRAY;\n break;\n case 4:\n colorSpace = this.color_spaces.DEVICE_CMYK;\n break;\n case 3:\n colorSpace = this.color_spaces.DEVICE_RGB;\n break;\n }\n\n result = {\n data: data,\n width: dims.width,\n height: dims.height,\n colorSpace: colorSpace,\n bitsPerComponent: bpc,\n filter: filter,\n index: index,\n alias: alias\n };\n }\n return result;\n };\n})(jsPDF.API);\n","// Generated by CoffeeScript 1.4.0\n\n/**\n * @license\n * PNG.js\n * Copyright (c) 2011 Devon Govett\n * MIT LICENSE\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\n * software and associated documentation files (the \"Software\"), to deal in the Software\n * without restriction, including without limitation the rights to use, copy, modify, merge,\n * publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons\n * to whom the Software is furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all copies or\n * substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING\n * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n\nimport { unzlibSync } from \"./fflate.js\";\nimport { globalObject } from \"./globalObject.js\";\n\nvar PNG = (function() {\n var APNG_BLEND_OP_OVER,\n APNG_BLEND_OP_SOURCE,\n APNG_DISPOSE_OP_BACKGROUND,\n APNG_DISPOSE_OP_NONE,\n APNG_DISPOSE_OP_PREVIOUS,\n makeImage,\n scratchCanvas,\n scratchCtx;\n\n APNG_DISPOSE_OP_NONE = 0;\n\n APNG_DISPOSE_OP_BACKGROUND = 1;\n\n APNG_DISPOSE_OP_PREVIOUS = 2;\n\n APNG_BLEND_OP_SOURCE = 0;\n\n APNG_BLEND_OP_OVER = 1;\n\n function PNG(data) {\n var chunkSize,\n colors,\n palLen,\n delayDen,\n delayNum,\n frame,\n i,\n index,\n key,\n section,\n palShort,\n text,\n _i,\n _j,\n _ref;\n this.data = data;\n this.pos = 8;\n this.palette = [];\n this.imgData = [];\n this.transparency = {};\n this.animation = null;\n this.text = {};\n frame = null;\n while (true) {\n chunkSize = this.readUInt32();\n section = function() {\n var _i, _results;\n _results = [];\n for (i = _i = 0; _i < 4; i = ++_i) {\n _results.push(String.fromCharCode(this.data[this.pos++]));\n }\n return _results;\n }\n .call(this)\n .join(\"\");\n switch (section) {\n case \"IHDR\":\n this.width = this.readUInt32();\n this.height = this.readUInt32();\n this.bits = this.data[this.pos++];\n this.colorType = this.data[this.pos++];\n this.compressionMethod = this.data[this.pos++];\n this.filterMethod = this.data[this.pos++];\n this.interlaceMethod = this.data[this.pos++];\n break;\n case \"acTL\":\n this.animation = {\n numFrames: this.readUInt32(),\n numPlays: this.readUInt32() || Infinity,\n frames: []\n };\n break;\n case \"PLTE\":\n this.palette = this.read(chunkSize);\n break;\n case \"fcTL\":\n if (frame) {\n this.animation.frames.push(frame);\n }\n this.pos += 4;\n frame = {\n width: this.readUInt32(),\n height: this.readUInt32(),\n xOffset: this.readUInt32(),\n yOffset: this.readUInt32()\n };\n delayNum = this.readUInt16();\n delayDen = this.readUInt16() || 100;\n frame.delay = (1000 * delayNum) / delayDen;\n frame.disposeOp = this.data[this.pos++];\n frame.blendOp = this.data[this.pos++];\n frame.data = [];\n break;\n case \"IDAT\":\n case \"fdAT\":\n if (section === \"fdAT\") {\n this.pos += 4;\n chunkSize -= 4;\n }\n data = (frame != null ? frame.data : void 0) || this.imgData;\n for (\n i = _i = 0;\n 0 <= chunkSize ? _i < chunkSize : _i > chunkSize;\n i = 0 <= chunkSize ? ++_i : --_i\n ) {\n data.push(this.data[this.pos++]);\n }\n break;\n case \"tRNS\":\n this.transparency = {};\n switch (this.colorType) {\n case 3:\n palLen = this.palette.length / 3;\n this.transparency.indexed = this.read(chunkSize);\n if (this.transparency.indexed.length > palLen)\n throw new Error(\"More transparent colors than palette size\");\n /*\n * According to the PNG spec trns should be increased to the same size as palette if shorter\n */\n //palShort = 255 - this.transparency.indexed.length;\n palShort = palLen - this.transparency.indexed.length;\n if (palShort > 0) {\n for (\n i = _j = 0;\n 0 <= palShort ? _j < palShort : _j > palShort;\n i = 0 <= palShort ? ++_j : --_j\n ) {\n this.transparency.indexed.push(255);\n }\n }\n break;\n case 0:\n this.transparency.grayscale = this.read(chunkSize)[0];\n break;\n case 2:\n this.transparency.rgb = this.read(chunkSize);\n }\n break;\n case \"tEXt\":\n text = this.read(chunkSize);\n index = text.indexOf(0);\n key = String.fromCharCode.apply(String, text.slice(0, index));\n this.text[key] = String.fromCharCode.apply(\n String,\n text.slice(index + 1)\n );\n break;\n case \"IEND\":\n if (frame) {\n this.animation.frames.push(frame);\n }\n this.colors = function() {\n switch (this.colorType) {\n case 0:\n case 3:\n case 4:\n return 1;\n case 2:\n case 6:\n return 3;\n }\n }.call(this);\n this.hasAlphaChannel = (_ref = this.colorType) === 4 || _ref === 6;\n colors = this.colors + (this.hasAlphaChannel ? 1 : 0);\n this.pixelBitlength = this.bits * colors;\n this.colorSpace = function() {\n switch (this.colors) {\n case 1:\n return \"DeviceGray\";\n case 3:\n return \"DeviceRGB\";\n }\n }.call(this);\n this.imgData = new Uint8Array(this.imgData);\n return;\n default:\n this.pos += chunkSize;\n }\n this.pos += 4;\n if (this.pos > this.data.length) {\n throw new Error(\"Incomplete or corrupt PNG file\");\n }\n }\n }\n\n PNG.prototype.read = function(bytes) {\n var i, _i, _results;\n _results = [];\n for (\n i = _i = 0;\n 0 <= bytes ? _i < bytes : _i > bytes;\n i = 0 <= bytes ? ++_i : --_i\n ) {\n _results.push(this.data[this.pos++]);\n }\n return _results;\n };\n\n PNG.prototype.readUInt32 = function() {\n var b1, b2, b3, b4;\n b1 = this.data[this.pos++] << 24;\n b2 = this.data[this.pos++] << 16;\n b3 = this.data[this.pos++] << 8;\n b4 = this.data[this.pos++];\n return b1 | b2 | b3 | b4;\n };\n\n PNG.prototype.readUInt16 = function() {\n var b1, b2;\n b1 = this.data[this.pos++] << 8;\n b2 = this.data[this.pos++];\n return b1 | b2;\n };\n\n PNG.prototype.decodePixels = function(data) {\n var pixelBytes = this.pixelBitlength / 8;\n var fullPixels = new Uint8Array(this.width * this.height * pixelBytes);\n var pos = 0;\n var _this = this;\n\n if (data == null) {\n data = this.imgData;\n }\n if (data.length === 0) {\n return new Uint8Array(0);\n }\n\n data = unzlibSync(data);\n function pass(x0, y0, dx, dy) {\n var abyte,\n c,\n col,\n i,\n left,\n length,\n p,\n pa,\n paeth,\n pb,\n pc,\n pixels,\n row,\n scanlineLength,\n upper,\n upperLeft,\n _i,\n _j,\n _k,\n _l,\n _m;\n var w = Math.ceil((_this.width - x0) / dx),\n h = Math.ceil((_this.height - y0) / dy);\n var isFull = _this.width == w && _this.height == h;\n scanlineLength = pixelBytes * w;\n pixels = isFull ? fullPixels : new Uint8Array(scanlineLength * h);\n length = data.length;\n row = 0;\n c = 0;\n while (row < h && pos < length) {\n switch (data[pos++]) {\n case 0:\n for (i = _i = 0; _i < scanlineLength; i = _i += 1) {\n pixels[c++] = data[pos++];\n }\n break;\n case 1:\n for (i = _j = 0; _j < scanlineLength; i = _j += 1) {\n abyte = data[pos++];\n left = i < pixelBytes ? 0 : pixels[c - pixelBytes];\n pixels[c++] = (abyte + left) % 256;\n }\n break;\n case 2:\n for (i = _k = 0; _k < scanlineLength; i = _k += 1) {\n abyte = data[pos++];\n col = (i - (i % pixelBytes)) / pixelBytes;\n upper =\n row &&\n pixels[\n (row - 1) * scanlineLength +\n col * pixelBytes +\n (i % pixelBytes)\n ];\n pixels[c++] = (upper + abyte) % 256;\n }\n break;\n case 3:\n for (i = _l = 0; _l < scanlineLength; i = _l += 1) {\n abyte = data[pos++];\n col = (i - (i % pixelBytes)) / pixelBytes;\n left = i < pixelBytes ? 0 : pixels[c - pixelBytes];\n upper =\n row &&\n pixels[\n (row - 1) * scanlineLength +\n col * pixelBytes +\n (i % pixelBytes)\n ];\n pixels[c++] = (abyte + Math.floor((left + upper) / 2)) % 256;\n }\n break;\n case 4:\n for (i = _m = 0; _m < scanlineLength; i = _m += 1) {\n abyte = data[pos++];\n col = (i - (i % pixelBytes)) / pixelBytes;\n left = i < pixelBytes ? 0 : pixels[c - pixelBytes];\n if (row === 0) {\n upper = upperLeft = 0;\n } else {\n upper =\n pixels[\n (row - 1) * scanlineLength +\n col * pixelBytes +\n (i % pixelBytes)\n ];\n upperLeft =\n col &&\n pixels[\n (row - 1) * scanlineLength +\n (col - 1) * pixelBytes +\n (i % pixelBytes)\n ];\n }\n p = left + upper - upperLeft;\n pa = Math.abs(p - left);\n pb = Math.abs(p - upper);\n pc = Math.abs(p - upperLeft);\n if (pa <= pb && pa <= pc) {\n paeth = left;\n } else if (pb <= pc) {\n paeth = upper;\n } else {\n paeth = upperLeft;\n }\n pixels[c++] = (abyte + paeth) % 256;\n }\n break;\n default:\n throw new Error(\"Invalid filter algorithm: \" + data[pos - 1]);\n }\n if (!isFull) {\n var fullPos = ((y0 + row * dy) * _this.width + x0) * pixelBytes;\n var partPos = row * scanlineLength;\n for (i = 0; i < w; i += 1) {\n for (var j = 0; j < pixelBytes; j += 1)\n fullPixels[fullPos++] = pixels[partPos++];\n fullPos += (dx - 1) * pixelBytes;\n }\n }\n row++;\n }\n }\n if (_this.interlaceMethod == 1) {\n /*\n 1 6 4 6 2 6 4 6\n 7 7 7 7 7 7 7 7\n 5 6 5 6 5 6 5 6\n 7 7 7 7 7 7 7 7\n 3 6 4 6 3 6 4 6\n 7 7 7 7 7 7 7 7\n 5 6 5 6 5 6 5 6\n 7 7 7 7 7 7 7 7\n */\n pass(0, 0, 8, 8); // 1\n /* NOTE these seem to follow the pattern:\n * pass(x, 0, 2*x, 2*x);\n * pass(0, x, x, 2*x);\n * with x being 4, 2, 1.\n */\n pass(4, 0, 8, 8); // 2\n pass(0, 4, 4, 8); // 3\n\n pass(2, 0, 4, 4); // 4\n pass(0, 2, 2, 4); // 5\n\n pass(1, 0, 2, 2); // 6\n pass(0, 1, 1, 2); // 7\n } else {\n pass(0, 0, 1, 1);\n }\n return fullPixels;\n };\n\n PNG.prototype.decodePalette = function() {\n var c, i, length, palette, pos, ret, transparency, _i, _ref, _ref1;\n palette = this.palette;\n transparency = this.transparency.indexed || [];\n ret = new Uint8Array((transparency.length || 0) + palette.length);\n pos = 0;\n length = palette.length;\n c = 0;\n for (i = _i = 0, _ref = length; _i < _ref; i = _i += 3) {\n ret[pos++] = palette[i];\n ret[pos++] = palette[i + 1];\n ret[pos++] = palette[i + 2];\n ret[pos++] = (_ref1 = transparency[c++]) != null ? _ref1 : 255;\n }\n return ret;\n };\n\n PNG.prototype.copyToImageData = function(imageData, pixels) {\n var alpha, colors, data, i, input, j, k, length, palette, v, _ref;\n colors = this.colors;\n palette = null;\n alpha = this.hasAlphaChannel;\n if (this.palette.length) {\n palette =\n (_ref = this._decodedPalette) != null\n ? _ref\n : (this._decodedPalette = this.decodePalette());\n colors = 4;\n alpha = true;\n }\n data = imageData.data || imageData;\n length = data.length;\n input = palette || pixels;\n i = j = 0;\n if (colors === 1) {\n while (i < length) {\n k = palette ? pixels[i / 4] * 4 : j;\n v = input[k++];\n data[i++] = v;\n data[i++] = v;\n data[i++] = v;\n data[i++] = alpha ? input[k++] : 255;\n j = k;\n }\n } else {\n while (i < length) {\n k = palette ? pixels[i / 4] * 4 : j;\n data[i++] = input[k++];\n data[i++] = input[k++];\n data[i++] = input[k++];\n data[i++] = alpha ? input[k++] : 255;\n j = k;\n }\n }\n };\n\n PNG.prototype.decode = function() {\n var ret;\n ret = new Uint8Array(this.width * this.height * 4);\n this.copyToImageData(ret, this.decodePixels());\n return ret;\n };\n\n var hasBrowserCanvas = function() {\n if (Object.prototype.toString.call(globalObject) === \"[object Window]\") {\n try {\n scratchCanvas = globalObject.document.createElement(\"canvas\");\n scratchCtx = scratchCanvas.getContext(\"2d\");\n } catch (e) {\n return false;\n }\n return true;\n }\n return false;\n };\n\n hasBrowserCanvas();\n\n makeImage = function(imageData) {\n if (hasBrowserCanvas() === true) {\n var img;\n scratchCtx.width = imageData.width;\n scratchCtx.height = imageData.height;\n scratchCtx.clearRect(0, 0, imageData.width, imageData.height);\n scratchCtx.putImageData(imageData, 0, 0);\n img = new Image();\n img.src = scratchCanvas.toDataURL();\n return img;\n }\n throw new Error(\"This method requires a Browser with Canvas-capability.\");\n };\n\n PNG.prototype.decodeFrames = function(ctx) {\n var frame, i, imageData, pixels, _i, _len, _ref, _results;\n if (!this.animation) {\n return;\n }\n _ref = this.animation.frames;\n _results = [];\n for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) {\n frame = _ref[i];\n imageData = ctx.createImageData(frame.width, frame.height);\n pixels = this.decodePixels(new Uint8Array(frame.data));\n this.copyToImageData(imageData, pixels);\n frame.imageData = imageData;\n _results.push((frame.image = makeImage(imageData)));\n }\n return _results;\n };\n\n PNG.prototype.renderFrame = function(ctx, number) {\n var frame, frames, prev;\n frames = this.animation.frames;\n frame = frames[number];\n prev = frames[number - 1];\n if (number === 0) {\n ctx.clearRect(0, 0, this.width, this.height);\n }\n if (\n (prev != null ? prev.disposeOp : void 0) === APNG_DISPOSE_OP_BACKGROUND\n ) {\n ctx.clearRect(prev.xOffset, prev.yOffset, prev.width, prev.height);\n } else if (\n (prev != null ? prev.disposeOp : void 0) === APNG_DISPOSE_OP_PREVIOUS\n ) {\n ctx.putImageData(prev.imageData, prev.xOffset, prev.yOffset);\n }\n if (frame.blendOp === APNG_BLEND_OP_SOURCE) {\n ctx.clearRect(frame.xOffset, frame.yOffset, frame.width, frame.height);\n }\n return ctx.drawImage(frame.image, frame.xOffset, frame.yOffset);\n };\n\n PNG.prototype.animate = function(ctx) {\n var doFrame,\n frameNumber,\n frames,\n numFrames,\n numPlays,\n _ref,\n _this = this;\n frameNumber = 0;\n (_ref = this.animation),\n (numFrames = _ref.numFrames),\n (frames = _ref.frames),\n (numPlays = _ref.numPlays);\n return (doFrame = function() {\n var f, frame;\n f = frameNumber++ % numFrames;\n frame = frames[f];\n _this.renderFrame(ctx, f);\n if (numFrames > 1 && frameNumber / numFrames < numPlays) {\n return (_this.animation._timeout = setTimeout(doFrame, frame.delay));\n }\n })();\n };\n\n PNG.prototype.stopAnimation = function() {\n var _ref;\n return clearTimeout(\n (_ref = this.animation) != null ? _ref._timeout : void 0\n );\n };\n\n PNG.prototype.render = function(canvas) {\n var ctx, data;\n if (canvas._png) {\n canvas._png.stopAnimation();\n }\n canvas._png = this;\n canvas.width = this.width;\n canvas.height = this.height;\n ctx = canvas.getContext(\"2d\");\n if (this.animation) {\n this.decodeFrames(ctx);\n return this.animate(ctx);\n } else {\n data = ctx.createImageData(this.width, this.height);\n this.copyToImageData(data, this.decodePixels());\n return ctx.putImageData(data, 0, 0);\n }\n };\n\n return PNG;\n})();\n\nexport { PNG };\n","/** @license\n * MIT license.\n * Copyright (c) 2012 Willow Systems Corporation, https://github.com/willowsystems\n * 2014 Diego Casorran, https://github.com/diegocr\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF split_text_to_size plugin\n *\n * @name split_text_to_size\n * @module\n */\n(function(API) {\n \"use strict\";\n /**\n * Returns an array of length matching length of the 'word' string, with each\n * cell occupied by the width of the char in that position.\n *\n * @name getCharWidthsArray\n * @function\n * @param {string} text\n * @param {Object} options\n * @returns {Array}\n */\n var getCharWidthsArray = (API.getCharWidthsArray = function(text, options) {\n options = options || {};\n\n var activeFont = options.font || this.internal.getFont();\n var fontSize = options.fontSize || this.internal.getFontSize();\n var charSpace = options.charSpace || this.internal.getCharSpace();\n\n var widths = options.widths\n ? options.widths\n : activeFont.metadata.Unicode.widths;\n var widthsFractionOf = widths.fof ? widths.fof : 1;\n var kerning = options.kerning\n ? options.kerning\n : activeFont.metadata.Unicode.kerning;\n var kerningFractionOf = kerning.fof ? kerning.fof : 1;\n var doKerning = options.doKerning === false ? false : true;\n var kerningValue = 0;\n\n var i;\n var length = text.length;\n var char_code;\n var prior_char_code = 0; //for kerning\n var default_char_width = widths[0] || widthsFractionOf;\n var output = [];\n\n for (i = 0; i < length; i++) {\n char_code = text.charCodeAt(i);\n\n if (typeof activeFont.metadata.widthOfString === \"function\") {\n output.push(\n (activeFont.metadata.widthOfGlyph(\n activeFont.metadata.characterToGlyph(char_code)\n ) +\n charSpace * (1000 / fontSize) || 0) / 1000\n );\n } else {\n if (\n doKerning &&\n typeof kerning[char_code] === \"object\" &&\n !isNaN(parseInt(kerning[char_code][prior_char_code], 10))\n ) {\n kerningValue =\n kerning[char_code][prior_char_code] / kerningFractionOf;\n } else {\n kerningValue = 0;\n }\n output.push(\n (widths[char_code] || default_char_width) / widthsFractionOf +\n kerningValue\n );\n }\n prior_char_code = char_code;\n }\n\n return output;\n });\n\n /**\n * Returns a widths of string in a given font, if the font size is set as 1 point.\n *\n * In other words, this is \"proportional\" value. For 1 unit of font size, the length\n * of the string will be that much.\n *\n * Multiply by font size to get actual width in *points*\n * Then divide by 72 to get inches or divide by (72/25.6) to get 'mm' etc.\n *\n * @name getStringUnitWidth\n * @public\n * @function\n * @param {string} text\n * @param {string} options\n * @returns {number} result\n */\n var getStringUnitWidth = (API.getStringUnitWidth = function(text, options) {\n options = options || {};\n\n var fontSize = options.fontSize || this.internal.getFontSize();\n var font = options.font || this.internal.getFont();\n var charSpace = options.charSpace || this.internal.getCharSpace();\n var result = 0;\n\n if (API.processArabic) {\n text = API.processArabic(text);\n }\n\n if (typeof font.metadata.widthOfString === \"function\") {\n result =\n font.metadata.widthOfString(text, fontSize, charSpace) / fontSize;\n } else {\n result = getCharWidthsArray\n .apply(this, arguments)\n .reduce(function(pv, cv) {\n return pv + cv;\n }, 0);\n }\n return result;\n });\n\n /**\n returns array of lines\n */\n var splitLongWord = function(word, widths_array, firstLineMaxLen, maxLen) {\n var answer = [];\n\n // 1st, chop off the piece that can fit on the hanging line.\n var i = 0,\n l = word.length,\n workingLen = 0;\n while (i !== l && workingLen + widths_array[i] < firstLineMaxLen) {\n workingLen += widths_array[i];\n i++;\n }\n // this is first line.\n answer.push(word.slice(0, i));\n\n // 2nd. Split the rest into maxLen pieces.\n var startOfLine = i;\n workingLen = 0;\n while (i !== l) {\n if (workingLen + widths_array[i] > maxLen) {\n answer.push(word.slice(startOfLine, i));\n workingLen = 0;\n startOfLine = i;\n }\n workingLen += widths_array[i];\n i++;\n }\n if (startOfLine !== i) {\n answer.push(word.slice(startOfLine, i));\n }\n\n return answer;\n };\n\n // Note, all sizing inputs for this function must be in \"font measurement units\"\n // By default, for PDF, it's \"point\".\n var splitParagraphIntoLines = function(text, maxlen, options) {\n // at this time works only on Western scripts, ones with space char\n // separating the words. Feel free to expand.\n\n if (!options) {\n options = {};\n }\n\n var line = [],\n lines = [line],\n line_length = options.textIndent || 0,\n separator_length = 0,\n current_word_length = 0,\n word,\n widths_array,\n words = text.split(\" \"),\n spaceCharWidth = getCharWidthsArray.apply(this, [\" \", options])[0],\n i,\n l,\n tmp,\n lineIndent;\n\n if (options.lineIndent === -1) {\n lineIndent = words[0].length + 2;\n } else {\n lineIndent = options.lineIndent || 0;\n }\n if (lineIndent) {\n var pad = Array(lineIndent).join(\" \"),\n wrds = [];\n words.map(function(wrd) {\n wrd = wrd.split(/\\s*\\n/);\n if (wrd.length > 1) {\n wrds = wrds.concat(\n wrd.map(function(wrd, idx) {\n return (idx && wrd.length ? \"\\n\" : \"\") + wrd;\n })\n );\n } else {\n wrds.push(wrd[0]);\n }\n });\n words = wrds;\n lineIndent = getStringUnitWidth.apply(this, [pad, options]);\n }\n\n for (i = 0, l = words.length; i < l; i++) {\n var force = 0;\n\n word = words[i];\n if (lineIndent && word[0] == \"\\n\") {\n word = word.substr(1);\n force = 1;\n }\n widths_array = getCharWidthsArray.apply(this, [word, options]);\n current_word_length = widths_array.reduce(function(pv, cv) {\n return pv + cv;\n }, 0);\n\n if (\n line_length + separator_length + current_word_length > maxlen ||\n force\n ) {\n if (current_word_length > maxlen) {\n // this happens when you have space-less long URLs for example.\n // we just chop these to size. We do NOT insert hiphens\n tmp = splitLongWord.apply(this, [\n word,\n widths_array,\n maxlen - (line_length + separator_length),\n maxlen\n ]);\n // first line we add to existing line object\n line.push(tmp.shift()); // it's ok to have extra space indicator there\n // last line we make into new line object\n line = [tmp.pop()];\n // lines in the middle we apped to lines object as whole lines\n while (tmp.length) {\n lines.push([tmp.shift()]); // single fragment occupies whole line\n }\n current_word_length = widths_array\n .slice(word.length - (line[0] ? line[0].length : 0))\n .reduce(function(pv, cv) {\n return pv + cv;\n }, 0);\n } else {\n // just put it on a new line\n line = [word];\n }\n\n // now we attach new line to lines\n lines.push(line);\n line_length = current_word_length + lineIndent;\n separator_length = spaceCharWidth;\n } else {\n line.push(word);\n\n line_length += separator_length + current_word_length;\n separator_length = spaceCharWidth;\n }\n }\n\n var postProcess;\n if (lineIndent) {\n postProcess = function(ln, idx) {\n return (idx ? pad : \"\") + ln.join(\" \");\n };\n } else {\n postProcess = function(ln) {\n return ln.join(\" \");\n };\n }\n\n return lines.map(postProcess);\n };\n\n /**\n * Splits a given string into an array of strings. Uses 'size' value\n * (in measurement units declared as default for the jsPDF instance)\n * and the font's \"widths\" and \"Kerning\" tables, where available, to\n * determine display length of a given string for a given font.\n *\n * We use character's 100% of unit size (height) as width when Width\n * table or other default width is not available.\n *\n * @name splitTextToSize\n * @public\n * @function\n * @param {string} text Unencoded, regular JavaScript (Unicode, UTF-16 / UCS-2) string.\n * @param {number} size Nominal number, measured in units default to this instance of jsPDF.\n * @param {Object} options Optional flags needed for chopper to do the right thing.\n * @returns {Array} array Array with strings chopped to size.\n */\n API.splitTextToSize = function(text, maxlen, options) {\n \"use strict\";\n\n options = options || {};\n\n var fsize = options.fontSize || this.internal.getFontSize(),\n newOptions = function(options) {\n var widths = {\n 0: 1\n },\n kerning = {};\n\n if (!options.widths || !options.kerning) {\n var f = this.internal.getFont(options.fontName, options.fontStyle),\n encoding = \"Unicode\";\n // NOT UTF8, NOT UTF16BE/LE, NOT UCS2BE/LE\n // Actual JavaScript-native String's 16bit char codes used.\n // no multi-byte logic here\n\n if (f.metadata[encoding]) {\n return {\n widths: f.metadata[encoding].widths || widths,\n kerning: f.metadata[encoding].kerning || kerning\n };\n } else {\n return {\n font: f.metadata,\n fontSize: this.internal.getFontSize(),\n charSpace: this.internal.getCharSpace()\n };\n }\n } else {\n return {\n widths: options.widths,\n kerning: options.kerning\n };\n }\n }.call(this, options);\n\n // first we split on end-of-line chars\n var paragraphs;\n if (Array.isArray(text)) {\n paragraphs = text;\n } else {\n paragraphs = String(text).split(/\\r?\\n/);\n }\n\n // now we convert size (max length of line) into \"font size units\"\n // at present time, the \"font size unit\" is always 'point'\n // 'proportional' means, \"in proportion to font size\"\n var fontUnit_maxLen = (1.0 * this.internal.scaleFactor * maxlen) / fsize;\n // at this time, fsize is always in \"points\" regardless of the default measurement unit of the doc.\n // this may change in the future?\n // until then, proportional_maxlen is likely to be in 'points'\n\n // If first line is to be indented (shorter or longer) than maxLen\n // we indicate that by using CSS-style \"text-indent\" option.\n // here it's in font units too (which is likely 'points')\n // it can be negative (which makes the first line longer than maxLen)\n newOptions.textIndent = options.textIndent\n ? (options.textIndent * 1.0 * this.internal.scaleFactor) / fsize\n : 0;\n newOptions.lineIndent = options.lineIndent;\n\n var i,\n l,\n output = [];\n for (i = 0, l = paragraphs.length; i < l; i++) {\n output = output.concat(\n splitParagraphIntoLines.apply(this, [\n paragraphs[i],\n fontUnit_maxLen,\n newOptions\n ])\n );\n }\n\n return output;\n };\n})(jsPDF.API);\n","/**\n * @license\n * (c) Dean McNamee <dean@gmail.com>, 2013.\n *\n * https://github.com/deanm/omggif\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n *\n * omggif is a JavaScript implementation of a GIF 89a encoder and decoder,\n * including animation and compression. It does not rely on any specific\n * underlying system, so should run in the browser, Node, or Plask.\n */\n\n\"use strict\";\n\nimport { console } from \"./console.js\";\n\nfunction GifWriter(buf, width, height, gopts) {\n var p = 0;\n\n var gopts = gopts === undefined ? {} : gopts;\n var loop_count = gopts.loop === undefined ? null : gopts.loop;\n var global_palette = gopts.palette === undefined ? null : gopts.palette;\n\n if (width <= 0 || height <= 0 || width > 65535 || height > 65535)\n throw new Error(\"Width/Height invalid.\");\n\n function check_palette_and_num_colors(palette) {\n var num_colors = palette.length;\n if (num_colors < 2 || num_colors > 256 || num_colors & (num_colors - 1)) {\n throw new Error(\n \"Invalid code/color length, must be power of 2 and 2 .. 256.\"\n );\n }\n return num_colors;\n }\n\n // - Header.\n buf[p++] = 0x47;\n buf[p++] = 0x49;\n buf[p++] = 0x46; // GIF\n buf[p++] = 0x38;\n buf[p++] = 0x39;\n buf[p++] = 0x61; // 89a\n\n // Handling of Global Color Table (palette) and background index.\n var gp_num_colors_pow2 = 0;\n var background = 0;\n if (global_palette !== null) {\n var gp_num_colors = check_palette_and_num_colors(global_palette);\n while ((gp_num_colors >>= 1)) ++gp_num_colors_pow2;\n gp_num_colors = 1 << gp_num_colors_pow2;\n --gp_num_colors_pow2;\n if (gopts.background !== undefined) {\n background = gopts.background;\n if (background >= gp_num_colors)\n throw new Error(\"Background index out of range.\");\n // The GIF spec states that a background index of 0 should be ignored, so\n // this is probably a mistake and you really want to set it to another\n // slot in the palette. But actually in the end most browsers, etc end\n // up ignoring this almost completely (including for dispose background).\n if (background === 0)\n throw new Error(\"Background index explicitly passed as 0.\");\n }\n }\n\n // - Logical Screen Descriptor.\n // NOTE(deanm): w/h apparently ignored by implementations, but set anyway.\n buf[p++] = width & 0xff;\n buf[p++] = (width >> 8) & 0xff;\n buf[p++] = height & 0xff;\n buf[p++] = (height >> 8) & 0xff;\n // NOTE: Indicates 0-bpp original color resolution (unused?).\n buf[p++] = (global_palette !== null ? 0x80 : 0) | gp_num_colors_pow2; // Global Color Table Flag. // NOTE: No sort flag (unused?).\n buf[p++] = background; // Background Color Index.\n buf[p++] = 0; // Pixel aspect ratio (unused?).\n\n // - Global Color Table\n if (global_palette !== null) {\n for (var i = 0, il = global_palette.length; i < il; ++i) {\n var rgb = global_palette[i];\n buf[p++] = (rgb >> 16) & 0xff;\n buf[p++] = (rgb >> 8) & 0xff;\n buf[p++] = rgb & 0xff;\n }\n }\n\n if (loop_count !== null) {\n // Netscape block for looping.\n if (loop_count < 0 || loop_count > 65535)\n throw new Error(\"Loop count invalid.\");\n // Extension code, label, and length.\n buf[p++] = 0x21;\n buf[p++] = 0xff;\n buf[p++] = 0x0b;\n // NETSCAPE2.0\n buf[p++] = 0x4e;\n buf[p++] = 0x45;\n buf[p++] = 0x54;\n buf[p++] = 0x53;\n buf[p++] = 0x43;\n buf[p++] = 0x41;\n buf[p++] = 0x50;\n buf[p++] = 0x45;\n buf[p++] = 0x32;\n buf[p++] = 0x2e;\n buf[p++] = 0x30;\n // Sub-block\n buf[p++] = 0x03;\n buf[p++] = 0x01;\n buf[p++] = loop_count & 0xff;\n buf[p++] = (loop_count >> 8) & 0xff;\n buf[p++] = 0x00; // Terminator.\n }\n\n var ended = false;\n\n this.addFrame = function(x, y, w, h, indexed_pixels, opts) {\n if (ended === true) {\n --p;\n ended = false;\n } // Un-end.\n\n opts = opts === undefined ? {} : opts;\n\n // TODO(deanm): Bounds check x, y. Do they need to be within the virtual\n // canvas width/height, I imagine?\n if (x < 0 || y < 0 || x > 65535 || y > 65535)\n throw new Error(\"x/y invalid.\");\n\n if (w <= 0 || h <= 0 || w > 65535 || h > 65535)\n throw new Error(\"Width/Height invalid.\");\n\n if (indexed_pixels.length < w * h)\n throw new Error(\"Not enough pixels for the frame size.\");\n\n var using_local_palette = true;\n var palette = opts.palette;\n if (palette === undefined || palette === null) {\n using_local_palette = false;\n palette = global_palette;\n }\n\n if (palette === undefined || palette === null)\n throw new Error(\"Must supply either a local or global palette.\");\n\n var num_colors = check_palette_and_num_colors(palette);\n\n // Compute the min_code_size (power of 2), destroying num_colors.\n var min_code_size = 0;\n while ((num_colors >>= 1)) ++min_code_size;\n num_colors = 1 << min_code_size; // Now we can easily get it back.\n\n var delay = opts.delay === undefined ? 0 : opts.delay;\n\n // From the spec:\n // 0 - No disposal specified. The decoder is\n // not required to take any action.\n // 1 - Do not dispose. The graphic is to be left\n // in place.\n // 2 - Restore to background color. The area used by the\n // graphic must be restored to the background color.\n // 3 - Restore to previous. The decoder is required to\n // restore the area overwritten by the graphic with\n // what was there prior to rendering the graphic.\n // 4-7 - To be defined.\n // NOTE(deanm): Dispose background doesn't really work, apparently most\n // browsers ignore the background palette index and clear to transparency.\n var disposal = opts.disposal === undefined ? 0 : opts.disposal;\n if (disposal < 0 || disposal > 3)\n // 4-7 is reserved.\n throw new Error(\"Disposal out of range.\");\n\n var use_transparency = false;\n var transparent_index = 0;\n if (opts.transparent !== undefined && opts.transparent !== null) {\n use_transparency = true;\n transparent_index = opts.transparent;\n if (transparent_index < 0 || transparent_index >= num_colors)\n throw new Error(\"Transparent color index.\");\n }\n\n if (disposal !== 0 || use_transparency || delay !== 0) {\n // - Graphics Control Extension\n buf[p++] = 0x21;\n buf[p++] = 0xf9; // Extension / Label.\n buf[p++] = 4; // Byte size.\n\n buf[p++] = (disposal << 2) | (use_transparency === true ? 1 : 0);\n buf[p++] = delay & 0xff;\n buf[p++] = (delay >> 8) & 0xff;\n buf[p++] = transparent_index; // Transparent color index.\n buf[p++] = 0; // Block Terminator.\n }\n\n // - Image Descriptor\n buf[p++] = 0x2c; // Image Seperator.\n buf[p++] = x & 0xff;\n buf[p++] = (x >> 8) & 0xff; // Left.\n buf[p++] = y & 0xff;\n buf[p++] = (y >> 8) & 0xff; // Top.\n buf[p++] = w & 0xff;\n buf[p++] = (w >> 8) & 0xff;\n buf[p++] = h & 0xff;\n buf[p++] = (h >> 8) & 0xff;\n // NOTE: No sort flag (unused?).\n // TODO(deanm): Support interlace.\n buf[p++] = using_local_palette === true ? 0x80 | (min_code_size - 1) : 0;\n\n // - Local Color Table\n if (using_local_palette === true) {\n for (var i = 0, il = palette.length; i < il; ++i) {\n var rgb = palette[i];\n buf[p++] = (rgb >> 16) & 0xff;\n buf[p++] = (rgb >> 8) & 0xff;\n buf[p++] = rgb & 0xff;\n }\n }\n\n p = GifWriterOutputLZWCodeStream(\n buf,\n p,\n min_code_size < 2 ? 2 : min_code_size,\n indexed_pixels\n );\n\n return p;\n };\n\n this.end = function() {\n if (ended === false) {\n buf[p++] = 0x3b; // Trailer.\n ended = true;\n }\n return p;\n };\n\n this.getOutputBuffer = function() {\n return buf;\n };\n this.setOutputBuffer = function(v) {\n buf = v;\n };\n this.getOutputBufferPosition = function() {\n return p;\n };\n this.setOutputBufferPosition = function(v) {\n p = v;\n };\n}\n\n// Main compression routine, palette indexes -> LZW code stream.\n// |index_stream| must have at least one entry.\nfunction GifWriterOutputLZWCodeStream(buf, p, min_code_size, index_stream) {\n buf[p++] = min_code_size;\n var cur_subblock = p++; // Pointing at the length field.\n\n var clear_code = 1 << min_code_size;\n var code_mask = clear_code - 1;\n var eoi_code = clear_code + 1;\n var next_code = eoi_code + 1;\n\n var cur_code_size = min_code_size + 1; // Number of bits per code.\n var cur_shift = 0;\n // We have at most 12-bit codes, so we should have to hold a max of 19\n // bits here (and then we would write out).\n var cur = 0;\n\n function emit_bytes_to_buffer(bit_block_size) {\n while (cur_shift >= bit_block_size) {\n buf[p++] = cur & 0xff;\n cur >>= 8;\n cur_shift -= 8;\n if (p === cur_subblock + 256) {\n // Finished a subblock.\n buf[cur_subblock] = 255;\n cur_subblock = p++;\n }\n }\n }\n\n function emit_code(c) {\n cur |= c << cur_shift;\n cur_shift += cur_code_size;\n emit_bytes_to_buffer(8);\n }\n\n // I am not an expert on the topic, and I don't want to write a thesis.\n // However, it is good to outline here the basic algorithm and the few data\n // structures and optimizations here that make this implementation fast.\n // The basic idea behind LZW is to build a table of previously seen runs\n // addressed by a short id (herein called output code). All data is\n // referenced by a code, which represents one or more values from the\n // original input stream. All input bytes can be referenced as the same\n // value as an output code. So if you didn't want any compression, you\n // could more or less just output the original bytes as codes (there are\n // some details to this, but it is the idea). In order to achieve\n // compression, values greater then the input range (codes can be up to\n // 12-bit while input only 8-bit) represent a sequence of previously seen\n // inputs. The decompressor is able to build the same mapping while\n // decoding, so there is always a shared common knowledge between the\n // encoding and decoder, which is also important for \"timing\" aspects like\n // how to handle variable bit width code encoding.\n //\n // One obvious but very important consequence of the table system is there\n // is always a unique id (at most 12-bits) to map the runs. 'A' might be\n // 4, then 'AA' might be 10, 'AAA' 11, 'AAAA' 12, etc. This relationship\n // can be used for an effecient lookup strategy for the code mapping. We\n // need to know if a run has been seen before, and be able to map that run\n // to the output code. Since we start with known unique ids (input bytes),\n // and then from those build more unique ids (table entries), we can\n // continue this chain (almost like a linked list) to always have small\n // integer values that represent the current byte chains in the encoder.\n // This means instead of tracking the input bytes (AAAABCD) to know our\n // current state, we can track the table entry for AAAABC (it is guaranteed\n // to exist by the nature of the algorithm) and the next character D.\n // Therefor the tuple of (table_entry, byte) is guaranteed to also be\n // unique. This allows us to create a simple lookup key for mapping input\n // sequences to codes (table indices) without having to store or search\n // any of the code sequences. So if 'AAAA' has a table entry of 12, the\n // tuple of ('AAAA', K) for any input byte K will be unique, and can be our\n // key. This leads to a integer value at most 20-bits, which can always\n // fit in an SMI value and be used as a fast sparse array / object key.\n\n // Output code for the current contents of the index buffer.\n var ib_code = index_stream[0] & code_mask; // Load first input index.\n var code_table = {}; // Key'd on our 20-bit \"tuple\".\n\n emit_code(clear_code); // Spec says first code should be a clear code.\n\n // First index already loaded, process the rest of the stream.\n for (var i = 1, il = index_stream.length; i < il; ++i) {\n var k = index_stream[i] & code_mask;\n var cur_key = (ib_code << 8) | k; // (prev, k) unique tuple.\n var cur_code = code_table[cur_key]; // buffer + k.\n\n // Check if we have to create a new code table entry.\n if (cur_code === undefined) {\n // We don't have buffer + k.\n // Emit index buffer (without k).\n // This is an inline version of emit_code, because this is the core\n // writing routine of the compressor (and V8 cannot inline emit_code\n // because it is a closure here in a different context). Additionally\n // we can call emit_byte_to_buffer less often, because we can have\n // 30-bits (from our 31-bit signed SMI), and we know our codes will only\n // be 12-bits, so can safely have 18-bits there without overflow.\n // emit_code(ib_code);\n cur |= ib_code << cur_shift;\n cur_shift += cur_code_size;\n while (cur_shift >= 8) {\n buf[p++] = cur & 0xff;\n cur >>= 8;\n cur_shift -= 8;\n if (p === cur_subblock + 256) {\n // Finished a subblock.\n buf[cur_subblock] = 255;\n cur_subblock = p++;\n }\n }\n\n if (next_code === 4096) {\n // Table full, need a clear.\n emit_code(clear_code);\n next_code = eoi_code + 1;\n cur_code_size = min_code_size + 1;\n code_table = {};\n } else {\n // Table not full, insert a new entry.\n // Increase our variable bit code sizes if necessary. This is a bit\n // tricky as it is based on \"timing\" between the encoding and\n // decoder. From the encoders perspective this should happen after\n // we've already emitted the index buffer and are about to create the\n // first table entry that would overflow our current code bit size.\n if (next_code >= 1 << cur_code_size) ++cur_code_size;\n code_table[cur_key] = next_code++; // Insert into code table.\n }\n\n ib_code = k; // Index buffer to single input k.\n } else {\n ib_code = cur_code; // Index buffer to sequence in code table.\n }\n }\n\n emit_code(ib_code); // There will still be something in the index buffer.\n emit_code(eoi_code); // End Of Information.\n\n // Flush / finalize the sub-blocks stream to the buffer.\n emit_bytes_to_buffer(1);\n\n // Finish the sub-blocks, writing out any unfinished lengths and\n // terminating with a sub-block of length 0. If we have already started\n // but not yet used a sub-block it can just become the terminator.\n if (cur_subblock + 1 === p) {\n // Started but unused.\n buf[cur_subblock] = 0;\n } else {\n // Started and used, write length and additional terminator block.\n buf[cur_subblock] = p - cur_subblock - 1;\n buf[p++] = 0;\n }\n return p;\n}\n\nfunction GifReader(buf) {\n var p = 0;\n\n // - Header (GIF87a or GIF89a).\n if (\n buf[p++] !== 0x47 ||\n buf[p++] !== 0x49 ||\n buf[p++] !== 0x46 ||\n buf[p++] !== 0x38 ||\n ((buf[p++] + 1) & 0xfd) !== 0x38 ||\n buf[p++] !== 0x61\n ) {\n throw new Error(\"Invalid GIF 87a/89a header.\");\n }\n\n // - Logical Screen Descriptor.\n var width = buf[p++] | (buf[p++] << 8);\n var height = buf[p++] | (buf[p++] << 8);\n var pf0 = buf[p++]; // <Packed Fields>.\n var global_palette_flag = pf0 >> 7;\n var num_global_colors_pow2 = pf0 & 0x7;\n var num_global_colors = 1 << (num_global_colors_pow2 + 1);\n var background = buf[p++];\n buf[p++]; // Pixel aspect ratio (unused?).\n\n var global_palette_offset = null;\n var global_palette_size = null;\n\n if (global_palette_flag) {\n global_palette_offset = p;\n global_palette_size = num_global_colors;\n p += num_global_colors * 3; // Seek past palette.\n }\n\n var no_eof = true;\n\n var frames = [];\n\n var delay = 0;\n var transparent_index = null;\n var disposal = 0; // 0 - No disposal specified.\n var loop_count = null;\n\n this.width = width;\n this.height = height;\n\n while (no_eof && p < buf.length) {\n switch (buf[p++]) {\n case 0x21: // Graphics Control Extension Block\n switch (buf[p++]) {\n case 0xff: // Application specific block\n // Try if it's a Netscape block (with animation loop counter).\n if (\n buf[p] !== 0x0b || // 21 FF already read, check block size.\n // NETSCAPE2.0\n (buf[p + 1] == 0x4e &&\n buf[p + 2] == 0x45 &&\n buf[p + 3] == 0x54 &&\n buf[p + 4] == 0x53 &&\n buf[p + 5] == 0x43 &&\n buf[p + 6] == 0x41 &&\n buf[p + 7] == 0x50 &&\n buf[p + 8] == 0x45 &&\n buf[p + 9] == 0x32 &&\n buf[p + 10] == 0x2e &&\n buf[p + 11] == 0x30 &&\n // Sub-block\n buf[p + 12] == 0x03 &&\n buf[p + 13] == 0x01 &&\n buf[p + 16] == 0)\n ) {\n p += 14;\n loop_count = buf[p++] | (buf[p++] << 8);\n p++; // Skip terminator.\n } else {\n // We don't know what it is, just try to get past it.\n p += 12;\n while (true) {\n // Seek through subblocks.\n var block_size = buf[p++];\n // Bad block size (ex: undefined from an out of bounds read).\n if (!(block_size >= 0)) throw Error(\"Invalid block size\");\n if (block_size === 0) break; // 0 size is terminator\n p += block_size;\n }\n }\n break;\n\n case 0xf9: // Graphics Control Extension\n if (buf[p++] !== 0x4 || buf[p + 4] !== 0)\n throw new Error(\"Invalid graphics extension block.\");\n var pf1 = buf[p++];\n delay = buf[p++] | (buf[p++] << 8);\n transparent_index = buf[p++];\n if ((pf1 & 1) === 0) transparent_index = null;\n disposal = (pf1 >> 2) & 0x7;\n p++; // Skip terminator.\n break;\n\n case 0xfe: // Comment Extension.\n while (true) {\n // Seek through subblocks.\n var block_size = buf[p++];\n // Bad block size (ex: undefined from an out of bounds read).\n if (!(block_size >= 0)) throw Error(\"Invalid block size\");\n if (block_size === 0) break; // 0 size is terminator\n // console.log(buf.slice(p, p+block_size).toString('ascii'));\n p += block_size;\n }\n break;\n\n default:\n throw new Error(\n \"Unknown graphic control label: 0x\" + buf[p - 1].toString(16)\n );\n }\n break;\n\n case 0x2c: // Image Descriptor.\n var x = buf[p++] | (buf[p++] << 8);\n var y = buf[p++] | (buf[p++] << 8);\n var w = buf[p++] | (buf[p++] << 8);\n var h = buf[p++] | (buf[p++] << 8);\n var pf2 = buf[p++];\n var local_palette_flag = pf2 >> 7;\n var interlace_flag = (pf2 >> 6) & 1;\n var num_local_colors_pow2 = pf2 & 0x7;\n var num_local_colors = 1 << (num_local_colors_pow2 + 1);\n var palette_offset = global_palette_offset;\n var palette_size = global_palette_size;\n var has_local_palette = false;\n if (local_palette_flag) {\n var has_local_palette = true;\n palette_offset = p; // Override with local palette.\n palette_size = num_local_colors;\n p += num_local_colors * 3; // Seek past palette.\n }\n\n var data_offset = p;\n\n p++; // codesize\n while (true) {\n var block_size = buf[p++];\n // Bad block size (ex: undefined from an out of bounds read).\n if (!(block_size >= 0)) throw Error(\"Invalid block size\");\n if (block_size === 0) break; // 0 size is terminator\n p += block_size;\n }\n\n frames.push({\n x: x,\n y: y,\n width: w,\n height: h,\n has_local_palette: has_local_palette,\n palette_offset: palette_offset,\n palette_size: palette_size,\n data_offset: data_offset,\n data_length: p - data_offset,\n transparent_index: transparent_index,\n interlaced: !!interlace_flag,\n delay: delay,\n disposal: disposal\n });\n break;\n\n case 0x3b: // Trailer Marker (end of file).\n no_eof = false;\n break;\n\n default:\n throw new Error(\"Unknown gif block: 0x\" + buf[p - 1].toString(16));\n break;\n }\n }\n\n this.numFrames = function() {\n return frames.length;\n };\n\n this.loopCount = function() {\n return loop_count;\n };\n\n this.frameInfo = function(frame_num) {\n if (frame_num < 0 || frame_num >= frames.length)\n throw new Error(\"Frame index out of range.\");\n return frames[frame_num];\n };\n\n this.decodeAndBlitFrameBGRA = function(frame_num, pixels) {\n var frame = this.frameInfo(frame_num);\n var num_pixels = frame.width * frame.height;\n var index_stream = new Uint8Array(num_pixels); // At most 8-bit indices.\n GifReaderLZWOutputIndexStream(\n buf,\n frame.data_offset,\n index_stream,\n num_pixels\n );\n var palette_offset = frame.palette_offset;\n\n // NOTE(deanm): It seems to be much faster to compare index to 256 than\n // to === null. Not sure why, but CompareStub_EQ_STRICT shows up high in\n // the profile, not sure if it's related to using a Uint8Array.\n var trans = frame.transparent_index;\n if (trans === null) trans = 256;\n\n // We are possibly just blitting to a portion of the entire frame.\n // That is a subrect within the framerect, so the additional pixels\n // must be skipped over after we finished a scanline.\n var framewidth = frame.width;\n var framestride = width - framewidth;\n var xleft = framewidth; // Number of subrect pixels left in scanline.\n\n // Output indices of the top left and bottom right corners of the subrect.\n var opbeg = (frame.y * width + frame.x) * 4;\n var opend = ((frame.y + frame.height) * width + frame.x) * 4;\n var op = opbeg;\n\n var scanstride = framestride * 4;\n\n // Use scanstride to skip past the rows when interlacing. This is skipping\n // 7 rows for the first two passes, then 3 then 1.\n if (frame.interlaced === true) {\n scanstride += width * 4 * 7; // Pass 1.\n }\n\n var interlaceskip = 8; // Tracking the row interval in the current pass.\n\n for (var i = 0, il = index_stream.length; i < il; ++i) {\n var index = index_stream[i];\n\n if (xleft === 0) {\n // Beginning of new scan line\n op += scanstride;\n xleft = framewidth;\n if (op >= opend) {\n // Catch the wrap to switch passes when interlacing.\n scanstride = framestride * 4 + width * 4 * (interlaceskip - 1);\n // interlaceskip / 2 * 4 is interlaceskip << 1.\n op = opbeg + (framewidth + framestride) * (interlaceskip << 1);\n interlaceskip >>= 1;\n }\n }\n\n if (index === trans) {\n op += 4;\n } else {\n var r = buf[palette_offset + index * 3];\n var g = buf[palette_offset + index * 3 + 1];\n var b = buf[palette_offset + index * 3 + 2];\n pixels[op++] = b;\n pixels[op++] = g;\n pixels[op++] = r;\n pixels[op++] = 255;\n }\n --xleft;\n }\n };\n\n // I will go to copy and paste hell one day...\n this.decodeAndBlitFrameRGBA = function(frame_num, pixels) {\n var frame = this.frameInfo(frame_num);\n var num_pixels = frame.width * frame.height;\n var index_stream = new Uint8Array(num_pixels); // At most 8-bit indices.\n GifReaderLZWOutputIndexStream(\n buf,\n frame.data_offset,\n index_stream,\n num_pixels\n );\n var palette_offset = frame.palette_offset;\n\n // NOTE(deanm): It seems to be much faster to compare index to 256 than\n // to === null. Not sure why, but CompareStub_EQ_STRICT shows up high in\n // the profile, not sure if it's related to using a Uint8Array.\n var trans = frame.transparent_index;\n if (trans === null) trans = 256;\n\n // We are possibly just blitting to a portion of the entire frame.\n // That is a subrect within the framerect, so the additional pixels\n // must be skipped over after we finished a scanline.\n var framewidth = frame.width;\n var framestride = width - framewidth;\n var xleft = framewidth; // Number of subrect pixels left in scanline.\n\n // Output indices of the top left and bottom right corners of the subrect.\n var opbeg = (frame.y * width + frame.x) * 4;\n var opend = ((frame.y + frame.height) * width + frame.x) * 4;\n var op = opbeg;\n\n var scanstride = framestride * 4;\n\n // Use scanstride to skip past the rows when interlacing. This is skipping\n // 7 rows for the first two passes, then 3 then 1.\n if (frame.interlaced === true) {\n scanstride += width * 4 * 7; // Pass 1.\n }\n\n var interlaceskip = 8; // Tracking the row interval in the current pass.\n\n for (var i = 0, il = index_stream.length; i < il; ++i) {\n var index = index_stream[i];\n\n if (xleft === 0) {\n // Beginning of new scan line\n op += scanstride;\n xleft = framewidth;\n if (op >= opend) {\n // Catch the wrap to switch passes when interlacing.\n scanstride = framestride * 4 + width * 4 * (interlaceskip - 1);\n // interlaceskip / 2 * 4 is interlaceskip << 1.\n op = opbeg + (framewidth + framestride) * (interlaceskip << 1);\n interlaceskip >>= 1;\n }\n }\n\n if (index === trans) {\n op += 4;\n } else {\n var r = buf[palette_offset + index * 3];\n var g = buf[palette_offset + index * 3 + 1];\n var b = buf[palette_offset + index * 3 + 2];\n pixels[op++] = r;\n pixels[op++] = g;\n pixels[op++] = b;\n pixels[op++] = 255;\n }\n --xleft;\n }\n };\n}\n\nfunction GifReaderLZWOutputIndexStream(code_stream, p, output, output_length) {\n var min_code_size = code_stream[p++];\n\n var clear_code = 1 << min_code_size;\n var eoi_code = clear_code + 1;\n var next_code = eoi_code + 1;\n\n var cur_code_size = min_code_size + 1; // Number of bits per code.\n // NOTE: This shares the same name as the encoder, but has a different\n // meaning here. Here this masks each code coming from the code stream.\n var code_mask = (1 << cur_code_size) - 1;\n var cur_shift = 0;\n var cur = 0;\n\n var op = 0; // Output pointer.\n\n var subblock_size = code_stream[p++];\n\n // TODO(deanm): Would using a TypedArray be any faster? At least it would\n // solve the fast mode / backing store uncertainty.\n // var code_table = Array(4096);\n var code_table = new Int32Array(4096); // Can be signed, we only use 20 bits.\n\n var prev_code = null; // Track code-1.\n\n while (true) {\n // Read up to two bytes, making sure we always 12-bits for max sized code.\n while (cur_shift < 16) {\n if (subblock_size === 0) break; // No more data to be read.\n\n cur |= code_stream[p++] << cur_shift;\n cur_shift += 8;\n\n if (subblock_size === 1) {\n // Never let it get to 0 to hold logic above.\n subblock_size = code_stream[p++]; // Next subblock.\n } else {\n --subblock_size;\n }\n }\n\n // TODO(deanm): We should never really get here, we should have received\n // and EOI.\n if (cur_shift < cur_code_size) break;\n\n var code = cur & code_mask;\n cur >>= cur_code_size;\n cur_shift -= cur_code_size;\n\n // TODO(deanm): Maybe should check that the first code was a clear code,\n // at least this is what you're supposed to do. But actually our encoder\n // now doesn't emit a clear code first anyway.\n if (code === clear_code) {\n // We don't actually have to clear the table. This could be a good idea\n // for greater error checking, but we don't really do any anyway. We\n // will just track it with next_code and overwrite old entries.\n\n next_code = eoi_code + 1;\n cur_code_size = min_code_size + 1;\n code_mask = (1 << cur_code_size) - 1;\n\n // Don't update prev_code ?\n prev_code = null;\n continue;\n } else if (code === eoi_code) {\n break;\n }\n\n // We have a similar situation as the decoder, where we want to store\n // variable length entries (code table entries), but we want to do in a\n // faster manner than an array of arrays. The code below stores sort of a\n // linked list within the code table, and then \"chases\" through it to\n // construct the dictionary entries. When a new entry is created, just the\n // last byte is stored, and the rest (prefix) of the entry is only\n // referenced by its table entry. Then the code chases through the\n // prefixes until it reaches a single byte code. We have to chase twice,\n // first to compute the length, and then to actually copy the data to the\n // output (backwards, since we know the length). The alternative would be\n // storing something in an intermediate stack, but that doesn't make any\n // more sense. I implemented an approach where it also stored the length\n // in the code table, although it's a bit tricky because you run out of\n // bits (12 + 12 + 8), but I didn't measure much improvements (the table\n // entries are generally not the long). Even when I created benchmarks for\n // very long table entries the complexity did not seem worth it.\n // The code table stores the prefix entry in 12 bits and then the suffix\n // byte in 8 bits, so each entry is 20 bits.\n\n var chase_code = code < next_code ? code : prev_code;\n\n // Chase what we will output, either {CODE} or {CODE-1}.\n var chase_length = 0;\n var chase = chase_code;\n while (chase > clear_code) {\n chase = code_table[chase] >> 8;\n ++chase_length;\n }\n\n var k = chase;\n\n var op_end = op + chase_length + (chase_code !== code ? 1 : 0);\n if (op_end > output_length) {\n console.log(\"Warning, gif stream longer than expected.\");\n return;\n }\n\n // Already have the first byte from the chase, might as well write it fast.\n output[op++] = k;\n\n op += chase_length;\n var b = op; // Track pointer, writing backwards.\n\n if (chase_code !== code)\n // The case of emitting {CODE-1} + k.\n output[op++] = k;\n\n chase = chase_code;\n while (chase_length--) {\n chase = code_table[chase];\n output[--b] = chase & 0xff; // Write backwards.\n chase >>= 8; // Pull down to the prefix code.\n }\n\n if (prev_code !== null && next_code < 4096) {\n code_table[next_code++] = (prev_code << 8) | k;\n // TODO(deanm): Figure out this clearing vs code growth logic better. I\n // have an feeling that it should just happen somewhere else, for now it\n // is awkward between when we grow past the max and then hit a clear code.\n // For now just check if we hit the max 12-bits (then a clear code should\n // follow, also of course encoded in 12-bits).\n if (next_code >= code_mask + 1 && cur_code_size < 12) {\n ++cur_code_size;\n code_mask = (code_mask << 1) | 1;\n }\n }\n\n prev_code = code;\n }\n\n if (op !== output_length) {\n console.log(\"Warning, gif stream shorter than expected.\");\n }\n\n return output;\n}\n\nexport { GifReader, GifWriter };\n","/**\n * @license\n Copyright (c) 2008, Adobe Systems Incorporated\n All rights reserved.\n\n Redistribution and use in source and binary forms, with or without \n modification, are permitted provided that the following conditions are\n met:\n\n * Redistributions of source code must retain the above copyright notice, \n this list of conditions and the following disclaimer.\n \n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the \n documentation and/or other materials provided with the distribution.\n \n * Neither the name of Adobe Systems Incorporated nor the names of its \n contributors may be used to endorse or promote products derived from \n this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS\n IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,\n THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR \n CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\n EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*\nJPEG encoder ported to JavaScript and optimized by Andreas Ritter, www.bytestrom.eu, 11/2009\n\nBasic GUI blocking jpeg encoder\n*/\n\nfunction JPEGEncoder(quality) {\n var ffloor = Math.floor;\n var YTable = new Array(64);\n var UVTable = new Array(64);\n var fdtbl_Y = new Array(64);\n var fdtbl_UV = new Array(64);\n var YDC_HT;\n var UVDC_HT;\n var YAC_HT;\n var UVAC_HT;\n\n var bitcode = new Array(65535);\n var category = new Array(65535);\n var outputfDCTQuant = new Array(64);\n var DU = new Array(64);\n var byteout = [];\n var bytenew = 0;\n var bytepos = 7;\n\n var YDU = new Array(64);\n var UDU = new Array(64);\n var VDU = new Array(64);\n var clt = new Array(256);\n var RGB_YUV_TABLE = new Array(2048);\n var currentQuality;\n\n var ZigZag = [\n 0,\n 1,\n 5,\n 6,\n 14,\n 15,\n 27,\n 28,\n 2,\n 4,\n 7,\n 13,\n 16,\n 26,\n 29,\n 42,\n 3,\n 8,\n 12,\n 17,\n 25,\n 30,\n 41,\n 43,\n 9,\n 11,\n 18,\n 24,\n 31,\n 40,\n 44,\n 53,\n 10,\n 19,\n 23,\n 32,\n 39,\n 45,\n 52,\n 54,\n 20,\n 22,\n 33,\n 38,\n 46,\n 51,\n 55,\n 60,\n 21,\n 34,\n 37,\n 47,\n 50,\n 56,\n 59,\n 61,\n 35,\n 36,\n 48,\n 49,\n 57,\n 58,\n 62,\n 63\n ];\n\n var std_dc_luminance_nrcodes = [\n 0,\n 0,\n 1,\n 5,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0\n ];\n var std_dc_luminance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n var std_ac_luminance_nrcodes = [\n 0,\n 0,\n 2,\n 1,\n 3,\n 3,\n 2,\n 4,\n 3,\n 5,\n 5,\n 4,\n 4,\n 0,\n 0,\n 1,\n 0x7d\n ];\n var std_ac_luminance_values = [\n 0x01,\n 0x02,\n 0x03,\n 0x00,\n 0x04,\n 0x11,\n 0x05,\n 0x12,\n 0x21,\n 0x31,\n 0x41,\n 0x06,\n 0x13,\n 0x51,\n 0x61,\n 0x07,\n 0x22,\n 0x71,\n 0x14,\n 0x32,\n 0x81,\n 0x91,\n 0xa1,\n 0x08,\n 0x23,\n 0x42,\n 0xb1,\n 0xc1,\n 0x15,\n 0x52,\n 0xd1,\n 0xf0,\n 0x24,\n 0x33,\n 0x62,\n 0x72,\n 0x82,\n 0x09,\n 0x0a,\n 0x16,\n 0x17,\n 0x18,\n 0x19,\n 0x1a,\n 0x25,\n 0x26,\n 0x27,\n 0x28,\n 0x29,\n 0x2a,\n 0x34,\n 0x35,\n 0x36,\n 0x37,\n 0x38,\n 0x39,\n 0x3a,\n 0x43,\n 0x44,\n 0x45,\n 0x46,\n 0x47,\n 0x48,\n 0x49,\n 0x4a,\n 0x53,\n 0x54,\n 0x55,\n 0x56,\n 0x57,\n 0x58,\n 0x59,\n 0x5a,\n 0x63,\n 0x64,\n 0x65,\n 0x66,\n 0x67,\n 0x68,\n 0x69,\n 0x6a,\n 0x73,\n 0x74,\n 0x75,\n 0x76,\n 0x77,\n 0x78,\n 0x79,\n 0x7a,\n 0x83,\n 0x84,\n 0x85,\n 0x86,\n 0x87,\n 0x88,\n 0x89,\n 0x8a,\n 0x92,\n 0x93,\n 0x94,\n 0x95,\n 0x96,\n 0x97,\n 0x98,\n 0x99,\n 0x9a,\n 0xa2,\n 0xa3,\n 0xa4,\n 0xa5,\n 0xa6,\n 0xa7,\n 0xa8,\n 0xa9,\n 0xaa,\n 0xb2,\n 0xb3,\n 0xb4,\n 0xb5,\n 0xb6,\n 0xb7,\n 0xb8,\n 0xb9,\n 0xba,\n 0xc2,\n 0xc3,\n 0xc4,\n 0xc5,\n 0xc6,\n 0xc7,\n 0xc8,\n 0xc9,\n 0xca,\n 0xd2,\n 0xd3,\n 0xd4,\n 0xd5,\n 0xd6,\n 0xd7,\n 0xd8,\n 0xd9,\n 0xda,\n 0xe1,\n 0xe2,\n 0xe3,\n 0xe4,\n 0xe5,\n 0xe6,\n 0xe7,\n 0xe8,\n 0xe9,\n 0xea,\n 0xf1,\n 0xf2,\n 0xf3,\n 0xf4,\n 0xf5,\n 0xf6,\n 0xf7,\n 0xf8,\n 0xf9,\n 0xfa\n ];\n\n var std_dc_chrominance_nrcodes = [\n 0,\n 0,\n 3,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0\n ];\n var std_dc_chrominance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n var std_ac_chrominance_nrcodes = [\n 0,\n 0,\n 2,\n 1,\n 2,\n 4,\n 4,\n 3,\n 4,\n 7,\n 5,\n 4,\n 4,\n 0,\n 1,\n 2,\n 0x77\n ];\n var std_ac_chrominance_values = [\n 0x00,\n 0x01,\n 0x02,\n 0x03,\n 0x11,\n 0x04,\n 0x05,\n 0x21,\n 0x31,\n 0x06,\n 0x12,\n 0x41,\n 0x51,\n 0x07,\n 0x61,\n 0x71,\n 0x13,\n 0x22,\n 0x32,\n 0x81,\n 0x08,\n 0x14,\n 0x42,\n 0x91,\n 0xa1,\n 0xb1,\n 0xc1,\n 0x09,\n 0x23,\n 0x33,\n 0x52,\n 0xf0,\n 0x15,\n 0x62,\n 0x72,\n 0xd1,\n 0x0a,\n 0x16,\n 0x24,\n 0x34,\n 0xe1,\n 0x25,\n 0xf1,\n 0x17,\n 0x18,\n 0x19,\n 0x1a,\n 0x26,\n 0x27,\n 0x28,\n 0x29,\n 0x2a,\n 0x35,\n 0x36,\n 0x37,\n 0x38,\n 0x39,\n 0x3a,\n 0x43,\n 0x44,\n 0x45,\n 0x46,\n 0x47,\n 0x48,\n 0x49,\n 0x4a,\n 0x53,\n 0x54,\n 0x55,\n 0x56,\n 0x57,\n 0x58,\n 0x59,\n 0x5a,\n 0x63,\n 0x64,\n 0x65,\n 0x66,\n 0x67,\n 0x68,\n 0x69,\n 0x6a,\n 0x73,\n 0x74,\n 0x75,\n 0x76,\n 0x77,\n 0x78,\n 0x79,\n 0x7a,\n 0x82,\n 0x83,\n 0x84,\n 0x85,\n 0x86,\n 0x87,\n 0x88,\n 0x89,\n 0x8a,\n 0x92,\n 0x93,\n 0x94,\n 0x95,\n 0x96,\n 0x97,\n 0x98,\n 0x99,\n 0x9a,\n 0xa2,\n 0xa3,\n 0xa4,\n 0xa5,\n 0xa6,\n 0xa7,\n 0xa8,\n 0xa9,\n 0xaa,\n 0xb2,\n 0xb3,\n 0xb4,\n 0xb5,\n 0xb6,\n 0xb7,\n 0xb8,\n 0xb9,\n 0xba,\n 0xc2,\n 0xc3,\n 0xc4,\n 0xc5,\n 0xc6,\n 0xc7,\n 0xc8,\n 0xc9,\n 0xca,\n 0xd2,\n 0xd3,\n 0xd4,\n 0xd5,\n 0xd6,\n 0xd7,\n 0xd8,\n 0xd9,\n 0xda,\n 0xe2,\n 0xe3,\n 0xe4,\n 0xe5,\n 0xe6,\n 0xe7,\n 0xe8,\n 0xe9,\n 0xea,\n 0xf2,\n 0xf3,\n 0xf4,\n 0xf5,\n 0xf6,\n 0xf7,\n 0xf8,\n 0xf9,\n 0xfa\n ];\n\n function initQuantTables(sf) {\n var YQT = [\n 16,\n 11,\n 10,\n 16,\n 24,\n 40,\n 51,\n 61,\n 12,\n 12,\n 14,\n 19,\n 26,\n 58,\n 60,\n 55,\n 14,\n 13,\n 16,\n 24,\n 40,\n 57,\n 69,\n 56,\n 14,\n 17,\n 22,\n 29,\n 51,\n 87,\n 80,\n 62,\n 18,\n 22,\n 37,\n 56,\n 68,\n 109,\n 103,\n 77,\n 24,\n 35,\n 55,\n 64,\n 81,\n 104,\n 113,\n 92,\n 49,\n 64,\n 78,\n 87,\n 103,\n 121,\n 120,\n 101,\n 72,\n 92,\n 95,\n 98,\n 112,\n 100,\n 103,\n 99\n ];\n\n for (var i = 0; i < 64; i++) {\n var t = ffloor((YQT[i] * sf + 50) / 100);\n t = Math.min(Math.max(t, 1), 255);\n YTable[ZigZag[i]] = t;\n }\n var UVQT = [\n 17,\n 18,\n 24,\n 47,\n 99,\n 99,\n 99,\n 99,\n 18,\n 21,\n 26,\n 66,\n 99,\n 99,\n 99,\n 99,\n 24,\n 26,\n 56,\n 99,\n 99,\n 99,\n 99,\n 99,\n 47,\n 66,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99\n ];\n for (var j = 0; j < 64; j++) {\n var u = ffloor((UVQT[j] * sf + 50) / 100);\n u = Math.min(Math.max(u, 1), 255);\n UVTable[ZigZag[j]] = u;\n }\n var aasf = [\n 1.0,\n 1.387039845,\n 1.306562965,\n 1.175875602,\n 1.0,\n 0.785694958,\n 0.5411961,\n 0.275899379\n ];\n var k = 0;\n for (var row = 0; row < 8; row++) {\n for (var col = 0; col < 8; col++) {\n fdtbl_Y[k] = 1.0 / (YTable[ZigZag[k]] * aasf[row] * aasf[col] * 8.0);\n fdtbl_UV[k] = 1.0 / (UVTable[ZigZag[k]] * aasf[row] * aasf[col] * 8.0);\n k++;\n }\n }\n }\n\n function computeHuffmanTbl(nrcodes, std_table) {\n var codevalue = 0;\n var pos_in_table = 0;\n var HT = new Array();\n for (var k = 1; k <= 16; k++) {\n for (var j = 1; j <= nrcodes[k]; j++) {\n HT[std_table[pos_in_table]] = [];\n HT[std_table[pos_in_table]][0] = codevalue;\n HT[std_table[pos_in_table]][1] = k;\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n }\n\n function initHuffmanTbl() {\n YDC_HT = computeHuffmanTbl(\n std_dc_luminance_nrcodes,\n std_dc_luminance_values\n );\n UVDC_HT = computeHuffmanTbl(\n std_dc_chrominance_nrcodes,\n std_dc_chrominance_values\n );\n YAC_HT = computeHuffmanTbl(\n std_ac_luminance_nrcodes,\n std_ac_luminance_values\n );\n UVAC_HT = computeHuffmanTbl(\n std_ac_chrominance_nrcodes,\n std_ac_chrominance_values\n );\n }\n\n function initCategoryNumber() {\n var nrlower = 1;\n var nrupper = 2;\n for (var cat = 1; cat <= 15; cat++) {\n //Positive numbers\n for (var nr = nrlower; nr < nrupper; nr++) {\n category[32767 + nr] = cat;\n bitcode[32767 + nr] = [];\n bitcode[32767 + nr][1] = cat;\n bitcode[32767 + nr][0] = nr;\n }\n //Negative numbers\n for (var nrneg = -(nrupper - 1); nrneg <= -nrlower; nrneg++) {\n category[32767 + nrneg] = cat;\n bitcode[32767 + nrneg] = [];\n bitcode[32767 + nrneg][1] = cat;\n bitcode[32767 + nrneg][0] = nrupper - 1 + nrneg;\n }\n nrlower <<= 1;\n nrupper <<= 1;\n }\n }\n\n function initRGBYUVTable() {\n for (var i = 0; i < 256; i++) {\n RGB_YUV_TABLE[i] = 19595 * i;\n RGB_YUV_TABLE[(i + 256) >> 0] = 38470 * i;\n RGB_YUV_TABLE[(i + 512) >> 0] = 7471 * i + 0x8000;\n RGB_YUV_TABLE[(i + 768) >> 0] = -11059 * i;\n RGB_YUV_TABLE[(i + 1024) >> 0] = -21709 * i;\n RGB_YUV_TABLE[(i + 1280) >> 0] = 32768 * i + 0x807fff;\n RGB_YUV_TABLE[(i + 1536) >> 0] = -27439 * i;\n RGB_YUV_TABLE[(i + 1792) >> 0] = -5329 * i;\n }\n }\n\n // IO functions\n function writeBits(bs) {\n var value = bs[0];\n var posval = bs[1] - 1;\n while (posval >= 0) {\n if (value & (1 << posval)) {\n bytenew |= 1 << bytepos;\n }\n posval--;\n bytepos--;\n if (bytepos < 0) {\n if (bytenew == 0xff) {\n writeByte(0xff);\n writeByte(0);\n } else {\n writeByte(bytenew);\n }\n bytepos = 7;\n bytenew = 0;\n }\n }\n }\n\n function writeByte(value) {\n //byteout.push(clt[value]); // write char directly instead of converting later\n byteout.push(value);\n }\n\n function writeWord(value) {\n writeByte((value >> 8) & 0xff);\n writeByte(value & 0xff);\n }\n\n // DCT & quantization core\n function fDCTQuant(data, fdtbl) {\n var d0, d1, d2, d3, d4, d5, d6, d7;\n /* Pass 1: process rows. */\n var dataOff = 0;\n var i;\n var I8 = 8;\n var I64 = 64;\n for (i = 0; i < I8; ++i) {\n d0 = data[dataOff];\n d1 = data[dataOff + 1];\n d2 = data[dataOff + 2];\n d3 = data[dataOff + 3];\n d4 = data[dataOff + 4];\n d5 = data[dataOff + 5];\n d6 = data[dataOff + 6];\n d7 = data[dataOff + 7];\n\n var tmp0 = d0 + d7;\n var tmp7 = d0 - d7;\n var tmp1 = d1 + d6;\n var tmp6 = d1 - d6;\n var tmp2 = d2 + d5;\n var tmp5 = d2 - d5;\n var tmp3 = d3 + d4;\n var tmp4 = d3 - d4;\n\n /* Even part */\n var tmp10 = tmp0 + tmp3; /* phase 2 */\n var tmp13 = tmp0 - tmp3;\n var tmp11 = tmp1 + tmp2;\n var tmp12 = tmp1 - tmp2;\n\n data[dataOff] = tmp10 + tmp11; /* phase 3 */\n data[dataOff + 4] = tmp10 - tmp11;\n\n var z1 = (tmp12 + tmp13) * 0.707106781; /* c4 */\n data[dataOff + 2] = tmp13 + z1; /* phase 5 */\n data[dataOff + 6] = tmp13 - z1;\n\n /* Odd part */\n tmp10 = tmp4 + tmp5; /* phase 2 */\n tmp11 = tmp5 + tmp6;\n tmp12 = tmp6 + tmp7;\n\n /* The rotator is modified from fig 4-8 to avoid extra negations. */\n var z5 = (tmp10 - tmp12) * 0.382683433; /* c6 */\n var z2 = 0.5411961 * tmp10 + z5; /* c2-c6 */\n var z4 = 1.306562965 * tmp12 + z5; /* c2+c6 */\n var z3 = tmp11 * 0.707106781; /* c4 */\n\n var z11 = tmp7 + z3; /* phase 5 */\n var z13 = tmp7 - z3;\n\n data[dataOff + 5] = z13 + z2; /* phase 6 */\n data[dataOff + 3] = z13 - z2;\n data[dataOff + 1] = z11 + z4;\n data[dataOff + 7] = z11 - z4;\n\n dataOff += 8; /* advance pointer to next row */\n }\n\n /* Pass 2: process columns. */\n dataOff = 0;\n for (i = 0; i < I8; ++i) {\n d0 = data[dataOff];\n d1 = data[dataOff + 8];\n d2 = data[dataOff + 16];\n d3 = data[dataOff + 24];\n d4 = data[dataOff + 32];\n d5 = data[dataOff + 40];\n d6 = data[dataOff + 48];\n d7 = data[dataOff + 56];\n\n var tmp0p2 = d0 + d7;\n var tmp7p2 = d0 - d7;\n var tmp1p2 = d1 + d6;\n var tmp6p2 = d1 - d6;\n var tmp2p2 = d2 + d5;\n var tmp5p2 = d2 - d5;\n var tmp3p2 = d3 + d4;\n var tmp4p2 = d3 - d4;\n\n /* Even part */\n var tmp10p2 = tmp0p2 + tmp3p2; /* phase 2 */\n var tmp13p2 = tmp0p2 - tmp3p2;\n var tmp11p2 = tmp1p2 + tmp2p2;\n var tmp12p2 = tmp1p2 - tmp2p2;\n\n data[dataOff] = tmp10p2 + tmp11p2; /* phase 3 */\n data[dataOff + 32] = tmp10p2 - tmp11p2;\n\n var z1p2 = (tmp12p2 + tmp13p2) * 0.707106781; /* c4 */\n data[dataOff + 16] = tmp13p2 + z1p2; /* phase 5 */\n data[dataOff + 48] = tmp13p2 - z1p2;\n\n /* Odd part */\n tmp10p2 = tmp4p2 + tmp5p2; /* phase 2 */\n tmp11p2 = tmp5p2 + tmp6p2;\n tmp12p2 = tmp6p2 + tmp7p2;\n\n /* The rotator is modified from fig 4-8 to avoid extra negations. */\n var z5p2 = (tmp10p2 - tmp12p2) * 0.382683433; /* c6 */\n var z2p2 = 0.5411961 * tmp10p2 + z5p2; /* c2-c6 */\n var z4p2 = 1.306562965 * tmp12p2 + z5p2; /* c2+c6 */\n var z3p2 = tmp11p2 * 0.707106781; /* c4 */\n\n var z11p2 = tmp7p2 + z3p2; /* phase 5 */\n var z13p2 = tmp7p2 - z3p2;\n\n data[dataOff + 40] = z13p2 + z2p2; /* phase 6 */\n data[dataOff + 24] = z13p2 - z2p2;\n data[dataOff + 8] = z11p2 + z4p2;\n data[dataOff + 56] = z11p2 - z4p2;\n\n dataOff++; /* advance pointer to next column */\n }\n\n // Quantize/descale the coefficients\n var fDCTQuant;\n for (i = 0; i < I64; ++i) {\n // Apply the quantization and scaling factor & Round to nearest integer\n fDCTQuant = data[i] * fdtbl[i];\n outputfDCTQuant[i] =\n fDCTQuant > 0.0 ? (fDCTQuant + 0.5) | 0 : (fDCTQuant - 0.5) | 0;\n //outputfDCTQuant[i] = fround(fDCTQuant);\n }\n return outputfDCTQuant;\n }\n\n function writeAPP0() {\n writeWord(0xffe0); // marker\n writeWord(16); // length\n writeByte(0x4a); // J\n writeByte(0x46); // F\n writeByte(0x49); // I\n writeByte(0x46); // F\n writeByte(0); // = \"JFIF\",'\\0'\n writeByte(1); // versionhi\n writeByte(1); // versionlo\n writeByte(0); // xyunits\n writeWord(1); // xdensity\n writeWord(1); // ydensity\n writeByte(0); // thumbnwidth\n writeByte(0); // thumbnheight\n }\n\n function writeSOF0(width, height) {\n writeWord(0xffc0); // marker\n writeWord(17); // length, truecolor YUV JPG\n writeByte(8); // precision\n writeWord(height);\n writeWord(width);\n writeByte(3); // nrofcomponents\n writeByte(1); // IdY\n writeByte(0x11); // HVY\n writeByte(0); // QTY\n writeByte(2); // IdU\n writeByte(0x11); // HVU\n writeByte(1); // QTU\n writeByte(3); // IdV\n writeByte(0x11); // HVV\n writeByte(1); // QTV\n }\n\n function writeDQT() {\n writeWord(0xffdb); // marker\n writeWord(132); // length\n writeByte(0);\n for (var i = 0; i < 64; i++) {\n writeByte(YTable[i]);\n }\n writeByte(1);\n for (var j = 0; j < 64; j++) {\n writeByte(UVTable[j]);\n }\n }\n\n function writeDHT() {\n writeWord(0xffc4); // marker\n writeWord(0x01a2); // length\n\n writeByte(0); // HTYDCinfo\n for (var i = 0; i < 16; i++) {\n writeByte(std_dc_luminance_nrcodes[i + 1]);\n }\n for (var j = 0; j <= 11; j++) {\n writeByte(std_dc_luminance_values[j]);\n }\n\n writeByte(0x10); // HTYACinfo\n for (var k = 0; k < 16; k++) {\n writeByte(std_ac_luminance_nrcodes[k + 1]);\n }\n for (var l = 0; l <= 161; l++) {\n writeByte(std_ac_luminance_values[l]);\n }\n\n writeByte(1); // HTUDCinfo\n for (var m = 0; m < 16; m++) {\n writeByte(std_dc_chrominance_nrcodes[m + 1]);\n }\n for (var n = 0; n <= 11; n++) {\n writeByte(std_dc_chrominance_values[n]);\n }\n\n writeByte(0x11); // HTUACinfo\n for (var o = 0; o < 16; o++) {\n writeByte(std_ac_chrominance_nrcodes[o + 1]);\n }\n for (var p = 0; p <= 161; p++) {\n writeByte(std_ac_chrominance_values[p]);\n }\n }\n\n function writeSOS() {\n writeWord(0xffda); // marker\n writeWord(12); // length\n writeByte(3); // nrofcomponents\n writeByte(1); // IdY\n writeByte(0); // HTY\n writeByte(2); // IdU\n writeByte(0x11); // HTU\n writeByte(3); // IdV\n writeByte(0x11); // HTV\n writeByte(0); // Ss\n writeByte(0x3f); // Se\n writeByte(0); // Bf\n }\n\n function processDU(CDU, fdtbl, DC, HTDC, HTAC) {\n var EOB = HTAC[0x00];\n var M16zeroes = HTAC[0xf0];\n var pos;\n var I16 = 16;\n var I63 = 63;\n var I64 = 64;\n var DU_DCT = fDCTQuant(CDU, fdtbl);\n //ZigZag reorder\n for (var j = 0; j < I64; ++j) {\n DU[ZigZag[j]] = DU_DCT[j];\n }\n var Diff = DU[0] - DC;\n DC = DU[0];\n //Encode DC\n if (Diff == 0) {\n writeBits(HTDC[0]); // Diff might be 0\n } else {\n pos = 32767 + Diff;\n writeBits(HTDC[category[pos]]);\n writeBits(bitcode[pos]);\n }\n //Encode ACs\n var end0pos = 63; // was const... which is crazy\n while (end0pos > 0 && DU[end0pos] == 0) {\n end0pos--;\n }\n //end0pos = first element in reverse order !=0\n if (end0pos == 0) {\n writeBits(EOB);\n return DC;\n }\n var i = 1;\n var lng;\n while (i <= end0pos) {\n var startpos = i;\n while (DU[i] == 0 && i <= end0pos) {\n ++i;\n }\n var nrzeroes = i - startpos;\n if (nrzeroes >= I16) {\n lng = nrzeroes >> 4;\n for (var nrmarker = 1; nrmarker <= lng; ++nrmarker)\n writeBits(M16zeroes);\n nrzeroes = nrzeroes & 0xf;\n }\n pos = 32767 + DU[i];\n writeBits(HTAC[(nrzeroes << 4) + category[pos]]);\n writeBits(bitcode[pos]);\n i++;\n }\n if (end0pos != I63) {\n writeBits(EOB);\n }\n return DC;\n }\n\n function initCharLookupTable() {\n var sfcc = String.fromCharCode;\n for (var i = 0; i < 256; i++) {\n ///// ACHTUNG // 255\n clt[i] = sfcc(i);\n }\n }\n\n this.encode = function(\n image,\n quality // image data object\n ) {\n if (quality) setQuality(quality);\n\n // Initialize bit writer\n byteout = new Array();\n bytenew = 0;\n bytepos = 7;\n\n // Add JPEG headers\n writeWord(0xffd8); // SOI\n writeAPP0();\n writeDQT();\n writeSOF0(image.width, image.height);\n writeDHT();\n writeSOS();\n\n // Encode 8x8 macroblocks\n var DCY = 0;\n var DCU = 0;\n var DCV = 0;\n\n bytenew = 0;\n bytepos = 7;\n\n this.encode.displayName = \"_encode_\";\n\n var imageData = image.data;\n var width = image.width;\n var height = image.height;\n\n var quadWidth = width * 4;\n\n var x,\n y = 0;\n var r, g, b;\n var start, p, col, row, pos;\n while (y < height) {\n x = 0;\n while (x < quadWidth) {\n start = quadWidth * y + x;\n col = -1;\n row = 0;\n\n for (pos = 0; pos < 64; pos++) {\n row = pos >> 3; // /8\n col = (pos & 7) * 4; // %8\n p = start + row * quadWidth + col;\n\n if (y + row >= height) {\n // padding bottom\n p -= quadWidth * (y + 1 + row - height);\n }\n\n if (x + col >= quadWidth) {\n // padding right\n p -= x + col - quadWidth + 4;\n }\n\n r = imageData[p++];\n g = imageData[p++];\n b = imageData[p++];\n\n /* // calculate YUV values dynamically\n\t\t\t\t\tYDU[pos]=((( 0.29900)*r+( 0.58700)*g+( 0.11400)*b))-128; //-0x80\n\t\t\t\t\tUDU[pos]=(((-0.16874)*r+(-0.33126)*g+( 0.50000)*b));\n\t\t\t\t\tVDU[pos]=((( 0.50000)*r+(-0.41869)*g+(-0.08131)*b));\n\t\t\t\t\t*/\n\n // use lookup table (slightly faster)\n YDU[pos] =\n ((RGB_YUV_TABLE[r] +\n RGB_YUV_TABLE[(g + 256) >> 0] +\n RGB_YUV_TABLE[(b + 512) >> 0]) >>\n 16) -\n 128;\n UDU[pos] =\n ((RGB_YUV_TABLE[(r + 768) >> 0] +\n RGB_YUV_TABLE[(g + 1024) >> 0] +\n RGB_YUV_TABLE[(b + 1280) >> 0]) >>\n 16) -\n 128;\n VDU[pos] =\n ((RGB_YUV_TABLE[(r + 1280) >> 0] +\n RGB_YUV_TABLE[(g + 1536) >> 0] +\n RGB_YUV_TABLE[(b + 1792) >> 0]) >>\n 16) -\n 128;\n }\n\n DCY = processDU(YDU, fdtbl_Y, DCY, YDC_HT, YAC_HT);\n DCU = processDU(UDU, fdtbl_UV, DCU, UVDC_HT, UVAC_HT);\n DCV = processDU(VDU, fdtbl_UV, DCV, UVDC_HT, UVAC_HT);\n x += 32;\n }\n y += 8;\n }\n\n ////////////////////////////////////////////////////////////////\n\n // Do the bit alignment of the EOI marker\n if (bytepos >= 0) {\n var fillbits = [];\n fillbits[1] = bytepos + 1;\n fillbits[0] = (1 << (bytepos + 1)) - 1;\n writeBits(fillbits);\n }\n\n writeWord(0xffd9); //EOI\n\n return new Uint8Array(byteout);\n };\n\n function setQuality(quality) {\n quality = Math.min(Math.max(quality, 1), 100);\n\n if (currentQuality == quality) return; // don't recalc if unchanged\n\n var sf =\n quality < 50 ? Math.floor(5000 / quality) : Math.floor(200 - quality * 2);\n\n initQuantTables(sf);\n currentQuality = quality;\n //console.log('Quality set to: '+quality +'%');\n }\n\n function init() {\n quality = quality || 50;\n // Create tables\n initCharLookupTable();\n initHuffmanTbl();\n initCategoryNumber();\n initRGBYUVTable();\n\n setQuality(quality);\n }\n init();\n}\n\nexport { JPEGEncoder };\n","/**\n * @author shaozilee\n *\n * Bmp format decoder,support 1bit 4bit 8bit 24bit bmp\n *\n */\n\nimport { console } from \"./console.js\";\n\nfunction BmpDecoder(buffer, is_with_alpha) {\n this.pos = 0;\n this.buffer = buffer;\n this.datav = new DataView(buffer.buffer);\n this.is_with_alpha = !!is_with_alpha;\n this.bottom_up = true;\n this.flag =\n String.fromCharCode(this.buffer[0]) + String.fromCharCode(this.buffer[1]);\n this.pos += 2;\n if ([\"BM\", \"BA\", \"CI\", \"CP\", \"IC\", \"PT\"].indexOf(this.flag) === -1)\n throw new Error(\"Invalid BMP File\");\n this.parseHeader();\n this.parseBGR();\n}\n\nBmpDecoder.prototype.parseHeader = function() {\n this.fileSize = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.reserved = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.offset = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.headerSize = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.width = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.height = this.datav.getInt32(this.pos, true);\n this.pos += 4;\n this.planes = this.datav.getUint16(this.pos, true);\n this.pos += 2;\n this.bitPP = this.datav.getUint16(this.pos, true);\n this.pos += 2;\n this.compress = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.rawSize = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.hr = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.vr = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.colors = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.importantColors = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n\n if (this.bitPP === 16 && this.is_with_alpha) {\n this.bitPP = 15;\n }\n if (this.bitPP < 15) {\n var len = this.colors === 0 ? 1 << this.bitPP : this.colors;\n this.palette = new Array(len);\n for (var i = 0; i < len; i++) {\n var blue = this.datav.getUint8(this.pos++, true);\n var green = this.datav.getUint8(this.pos++, true);\n var red = this.datav.getUint8(this.pos++, true);\n var quad = this.datav.getUint8(this.pos++, true);\n this.palette[i] = {\n red: red,\n green: green,\n blue: blue,\n quad: quad\n };\n }\n }\n if (this.height < 0) {\n this.height *= -1;\n this.bottom_up = false;\n }\n};\n\nBmpDecoder.prototype.parseBGR = function() {\n this.pos = this.offset;\n try {\n var bitn = \"bit\" + this.bitPP;\n var len = this.width * this.height * 4;\n this.data = new Uint8Array(len);\n\n this[bitn]();\n } catch (e) {\n console.log(\"bit decode error:\" + e);\n }\n};\n\nBmpDecoder.prototype.bit1 = function() {\n var xlen = Math.ceil(this.width / 8);\n var mode = xlen % 4;\n var y;\n for (y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < xlen; x++) {\n var b = this.datav.getUint8(this.pos++, true);\n var location = line * this.width * 4 + x * 8 * 4;\n for (var i = 0; i < 8; i++) {\n if (x * 8 + i < this.width) {\n var rgb = this.palette[(b >> (7 - i)) & 0x1];\n this.data[location + i * 4] = rgb.blue;\n this.data[location + i * 4 + 1] = rgb.green;\n this.data[location + i * 4 + 2] = rgb.red;\n this.data[location + i * 4 + 3] = 0xff;\n } else {\n break;\n }\n }\n }\n\n if (mode !== 0) {\n this.pos += 4 - mode;\n }\n }\n};\n\nBmpDecoder.prototype.bit4 = function() {\n var xlen = Math.ceil(this.width / 2);\n var mode = xlen % 4;\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < xlen; x++) {\n var b = this.datav.getUint8(this.pos++, true);\n var location = line * this.width * 4 + x * 2 * 4;\n\n var before = b >> 4;\n var after = b & 0x0f;\n\n var rgb = this.palette[before];\n this.data[location] = rgb.blue;\n this.data[location + 1] = rgb.green;\n this.data[location + 2] = rgb.red;\n this.data[location + 3] = 0xff;\n\n if (x * 2 + 1 >= this.width) break;\n\n rgb = this.palette[after];\n this.data[location + 4] = rgb.blue;\n this.data[location + 4 + 1] = rgb.green;\n this.data[location + 4 + 2] = rgb.red;\n this.data[location + 4 + 3] = 0xff;\n }\n\n if (mode !== 0) {\n this.pos += 4 - mode;\n }\n }\n};\n\nBmpDecoder.prototype.bit8 = function() {\n var mode = this.width % 4;\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < this.width; x++) {\n var b = this.datav.getUint8(this.pos++, true);\n var location = line * this.width * 4 + x * 4;\n if (b < this.palette.length) {\n var rgb = this.palette[b];\n this.data[location] = rgb.red;\n this.data[location + 1] = rgb.green;\n this.data[location + 2] = rgb.blue;\n this.data[location + 3] = 0xff;\n } else {\n this.data[location] = 0xff;\n this.data[location + 1] = 0xff;\n this.data[location + 2] = 0xff;\n this.data[location + 3] = 0xff;\n }\n }\n if (mode !== 0) {\n this.pos += 4 - mode;\n }\n }\n};\n\nBmpDecoder.prototype.bit15 = function() {\n var dif_w = this.width % 3;\n var _11111 = parseInt(\"11111\", 2),\n _1_5 = _11111;\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < this.width; x++) {\n var B = this.datav.getUint16(this.pos, true);\n this.pos += 2;\n var blue = (((B & _1_5) / _1_5) * 255) | 0;\n var green = ((((B >> 5) & _1_5) / _1_5) * 255) | 0;\n var red = ((((B >> 10) & _1_5) / _1_5) * 255) | 0;\n var alpha = B >> 15 ? 0xff : 0x00;\n\n var location = line * this.width * 4 + x * 4;\n this.data[location] = red;\n this.data[location + 1] = green;\n this.data[location + 2] = blue;\n this.data[location + 3] = alpha;\n }\n //skip extra bytes\n this.pos += dif_w;\n }\n};\n\nBmpDecoder.prototype.bit16 = function() {\n var dif_w = this.width % 3;\n var _11111 = parseInt(\"11111\", 2),\n _1_5 = _11111;\n var _111111 = parseInt(\"111111\", 2),\n _1_6 = _111111;\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < this.width; x++) {\n var B = this.datav.getUint16(this.pos, true);\n this.pos += 2;\n var alpha = 0xff;\n var blue = (((B & _1_5) / _1_5) * 255) | 0;\n var green = ((((B >> 5) & _1_6) / _1_6) * 255) | 0;\n var red = (((B >> 11) / _1_5) * 255) | 0;\n\n var location = line * this.width * 4 + x * 4;\n this.data[location] = red;\n this.data[location + 1] = green;\n this.data[location + 2] = blue;\n this.data[location + 3] = alpha;\n }\n //skip extra bytes\n this.pos += dif_w;\n }\n};\n\nBmpDecoder.prototype.bit24 = function() {\n //when height > 0\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < this.width; x++) {\n var blue = this.datav.getUint8(this.pos++, true);\n var green = this.datav.getUint8(this.pos++, true);\n var red = this.datav.getUint8(this.pos++, true);\n var location = line * this.width * 4 + x * 4;\n this.data[location] = red;\n this.data[location + 1] = green;\n this.data[location + 2] = blue;\n this.data[location + 3] = 0xff;\n }\n //skip extra bytes\n this.pos += this.width % 4;\n }\n};\n\n/**\n * add 32bit decode func\n * @author soubok\n */\nBmpDecoder.prototype.bit32 = function() {\n //when height > 0\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < this.width; x++) {\n var blue = this.datav.getUint8(this.pos++, true);\n var green = this.datav.getUint8(this.pos++, true);\n var red = this.datav.getUint8(this.pos++, true);\n var alpha = this.datav.getUint8(this.pos++, true);\n var location = line * this.width * 4 + x * 4;\n this.data[location] = red;\n this.data[location + 1] = green;\n this.data[location + 2] = blue;\n this.data[location + 3] = alpha;\n }\n //skip extra bytes\n //this.pos += (this.width % 4);\n }\n};\n\nBmpDecoder.prototype.getData = function() {\n return this.data;\n};\n\nexport { BmpDecoder };\n","function WebPDecoder(imageData) {\n /** @license\n * Copyright 2011 Google Inc.\n *\n * This code is licensed under the same terms as WebM:\n * Software License Agreement: http://www.webmproject.org/license/software/\n * Additional IP Rights Grant: http://www.webmproject.org/license/additional/\n * -----------------------------------------------------------------------------\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * -----------------------------------------------------------------------------\n *\n * Copyright 2011-2017 Dominik Homberger\n * Libwebp Javascript / libwebpjs - the libwebp implementation in javascript (v0.6.0)\n *\n * Author: Dominik Homberger (dominik.homberger@gmail.com)\n */\n\n var self = this;\n var UpsampleRgbLinePair,\n UpsampleBgrLinePair,\n UpsampleRgbaLinePair,\n UpsampleBgraLinePair,\n UpsampleArgbLinePair,\n UpsampleArgbLinePair,\n UpsampleRgba4444LinePair,\n UpsampleRgb565LinePair;\n\n function x(F) {\n if (!F) throw Error(\"assert :P\");\n }\n function fa(F, L, J) {\n for (var H = 0; 4 > H; H++) if (F[L + H] != J.charCodeAt(H)) return !0;\n return !1;\n }\n function I(F, L, J, H, Z) {\n for (var O = 0; O < Z; O++) F[L + O] = J[H + O];\n }\n function M(F, L, J, H) {\n for (var Z = 0; Z < H; Z++) F[L + Z] = J;\n }\n function V(F) {\n return new Int32Array(F);\n }\n function wa(F, L) {\n for (var J = [], H = 0; H < F; H++) J.push(new L());\n return J;\n }\n function wb() {\n function F(J, H, Z) {\n for (var O = Z[H], L = 0; L < O; L++) {\n J.push(Z.length > H + 1 ? [] : 0);\n if (Z.length < H + 1) break;\n F(J[L], H + 1, Z);\n }\n }\n var L = [];\n F(L, 0, [3, 11]);\n return L;\n }\n function Ed(F, L) {\n function J(H, O, F) {\n for (var Z = F[O], ma = 0; ma < Z; ma++) {\n H.push(F.length > O + 1 ? [] : new L());\n if (F.length < O + 1) break;\n J(H[ma], O + 1, F);\n }\n }\n var H = [];\n J(H, 0, F);\n return H;\n }\n var _WebPDecoder = function() {\n var self = this;\n function F() {\n V(55);\n }\n function L(a, b) {\n for (var c = (1 << (b - 1)) >>> 0; a & c; ) c >>>= 1;\n return c ? (a & (c - 1)) + c : a;\n }\n function J(a, b, c, d, e) {\n x(!(d % c));\n do (d -= c), (a[b + d] = e);\n while (0 < d);\n }\n function H(a, b, c, d, e, f) {\n var g = b,\n h = 1 << c,\n k,\n l,\n m = V(16),\n n = V(16);\n x(0 != e);\n x(null != d);\n x(null != a);\n x(0 < c);\n for (l = 0; l < e; ++l) {\n if (15 < d[l]) return 0;\n ++m[d[l]];\n }\n if (m[0] == e) return 0;\n n[1] = 0;\n for (k = 1; 15 > k; ++k) {\n if (m[k] > 1 << k) return 0;\n n[k + 1] = n[k] + m[k];\n }\n for (l = 0; l < e; ++l) (k = d[l]), 0 < d[l] && (f[n[k]++] = l);\n if (1 == n[15])\n return (d = new O()), (d.g = 0), (d.value = f[0]), J(a, g, 1, h, d), h;\n var r = -1,\n q = h - 1,\n t = 0,\n v = 1,\n p = 1,\n u,\n w = 1 << c;\n l = 0;\n k = 1;\n for (e = 2; k <= c; ++k, e <<= 1) {\n p <<= 1;\n v += p;\n p -= m[k];\n if (0 > p) return 0;\n for (; 0 < m[k]; --m[k])\n (d = new O()),\n (d.g = k),\n (d.value = f[l++]),\n J(a, g + t, e, w, d),\n (t = L(t, k));\n }\n k = c + 1;\n for (e = 2; 15 >= k; ++k, e <<= 1) {\n p <<= 1;\n v += p;\n p -= m[k];\n if (0 > p) return 0;\n for (; 0 < m[k]; --m[k]) {\n d = new O();\n if ((t & q) != r) {\n g += w;\n r = k;\n for (u = 1 << (r - c); 15 > r; ) {\n u -= m[r];\n if (0 >= u) break;\n ++r;\n u <<= 1;\n }\n u = r - c;\n w = 1 << u;\n h += w;\n r = t & q;\n a[b + r].g = u + c;\n a[b + r].value = g - b - r;\n }\n d.g = k - c;\n d.value = f[l++];\n J(a, g + (t >> c), e, w, d);\n t = L(t, k);\n }\n }\n return v != 2 * n[15] - 1 ? 0 : h;\n }\n function Z(a, b, c, d, e) {\n x(2328 >= e);\n if (512 >= e) var f = V(512);\n else if (((f = V(e)), null == f)) return 0;\n return H(a, b, c, d, e, f);\n }\n function O() {\n this.value = this.g = 0;\n }\n function Fd() {\n this.value = this.g = 0;\n }\n function Ub() {\n this.G = wa(5, O);\n this.H = V(5);\n this.jc = this.Qb = this.qb = this.nd = 0;\n this.pd = wa(xb, Fd);\n }\n function ma(a, b, c, d) {\n x(null != a);\n x(null != b);\n x(2147483648 > d);\n a.Ca = 254;\n a.I = 0;\n a.b = -8;\n a.Ka = 0;\n a.oa = b;\n a.pa = c;\n a.Jd = b;\n a.Yc = c + d;\n a.Zc = 4 <= d ? c + d - 4 + 1 : c;\n Qa(a);\n }\n function na(a, b) {\n for (var c = 0; 0 < b--; ) c |= K(a, 128) << b;\n return c;\n }\n function ca(a, b) {\n var c = na(a, b);\n return G(a) ? -c : c;\n }\n function cb(a, b, c, d) {\n var e,\n f = 0;\n x(null != a);\n x(null != b);\n x(4294967288 > d);\n a.Sb = d;\n a.Ra = 0;\n a.u = 0;\n a.h = 0;\n 4 < d && (d = 4);\n for (e = 0; e < d; ++e) f += b[c + e] << (8 * e);\n a.Ra = f;\n a.bb = d;\n a.oa = b;\n a.pa = c;\n }\n function Vb(a) {\n for (; 8 <= a.u && a.bb < a.Sb; )\n (a.Ra >>>= 8),\n (a.Ra += (a.oa[a.pa + a.bb] << (ob - 8)) >>> 0),\n ++a.bb,\n (a.u -= 8);\n db(a) && ((a.h = 1), (a.u = 0));\n }\n function D(a, b) {\n x(0 <= b);\n if (!a.h && b <= Gd) {\n var c = pb(a) & Hd[b];\n a.u += b;\n Vb(a);\n return c;\n }\n a.h = 1;\n return (a.u = 0);\n }\n function Wb() {\n this.b = this.Ca = this.I = 0;\n this.oa = [];\n this.pa = 0;\n this.Jd = [];\n this.Yc = 0;\n this.Zc = [];\n this.Ka = 0;\n }\n function Ra() {\n this.Ra = 0;\n this.oa = [];\n this.h = this.u = this.bb = this.Sb = this.pa = 0;\n }\n function pb(a) {\n return (a.Ra >>> (a.u & (ob - 1))) >>> 0;\n }\n function db(a) {\n x(a.bb <= a.Sb);\n return a.h || (a.bb == a.Sb && a.u > ob);\n }\n function qb(a, b) {\n a.u = b;\n a.h = db(a);\n }\n function Sa(a) {\n a.u >= Xb && (x(a.u >= Xb), Vb(a));\n }\n function Qa(a) {\n x(null != a && null != a.oa);\n a.pa < a.Zc\n ? ((a.I = (a.oa[a.pa++] | (a.I << 8)) >>> 0), (a.b += 8))\n : (x(null != a && null != a.oa),\n a.pa < a.Yc\n ? ((a.b += 8), (a.I = a.oa[a.pa++] | (a.I << 8)))\n : a.Ka\n ? (a.b = 0)\n : ((a.I <<= 8), (a.b += 8), (a.Ka = 1)));\n }\n function G(a) {\n return na(a, 1);\n }\n function K(a, b) {\n var c = a.Ca;\n 0 > a.b && Qa(a);\n var d = a.b,\n e = (c * b) >>> 8,\n f = (a.I >>> d > e) + 0;\n f ? ((c -= e), (a.I -= ((e + 1) << d) >>> 0)) : (c = e + 1);\n d = c;\n for (e = 0; 256 <= d; ) (e += 8), (d >>= 8);\n d = 7 ^ (e + Id[d]);\n a.b -= d;\n a.Ca = (c << d) - 1;\n return f;\n }\n function ra(a, b, c) {\n a[b + 0] = (c >> 24) & 255;\n a[b + 1] = (c >> 16) & 255;\n a[b + 2] = (c >> 8) & 255;\n a[b + 3] = (c >> 0) & 255;\n }\n function Ta(a, b) {\n return (a[b + 0] << 0) | (a[b + 1] << 8);\n }\n function Yb(a, b) {\n return Ta(a, b) | (a[b + 2] << 16);\n }\n function Ha(a, b) {\n return Ta(a, b) | (Ta(a, b + 2) << 16);\n }\n function Zb(a, b) {\n var c = 1 << b;\n x(null != a);\n x(0 < b);\n a.X = V(c);\n if (null == a.X) return 0;\n a.Mb = 32 - b;\n a.Xa = b;\n return 1;\n }\n function $b(a, b) {\n x(null != a);\n x(null != b);\n x(a.Xa == b.Xa);\n I(b.X, 0, a.X, 0, 1 << b.Xa);\n }\n function ac() {\n this.X = [];\n this.Xa = this.Mb = 0;\n }\n function bc(a, b, c, d) {\n x(null != c);\n x(null != d);\n var e = c[0],\n f = d[0];\n 0 == e && (e = (a * f + b / 2) / b);\n 0 == f && (f = (b * e + a / 2) / a);\n if (0 >= e || 0 >= f) return 0;\n c[0] = e;\n d[0] = f;\n return 1;\n }\n function xa(a, b) {\n return (a + (1 << b) - 1) >>> b;\n }\n function yb(a, b) {\n return (\n (((((a & 4278255360) + (b & 4278255360)) >>> 0) & 4278255360) +\n ((((a & 16711935) + (b & 16711935)) >>> 0) & 16711935)) >>>\n 0\n );\n }\n function X(a, b) {\n self[b] = function(b, d, e, f, g, h, k) {\n var c;\n for (c = 0; c < g; ++c) {\n var m = self[a](h[k + c - 1], e, f + c);\n h[k + c] = yb(b[d + c], m);\n }\n };\n }\n function Jd() {\n this.ud = this.hd = this.jd = 0;\n }\n function aa(a, b) {\n return ((((a ^ b) & 4278124286) >>> 1) + (a & b)) >>> 0;\n }\n function sa(a) {\n if (0 <= a && 256 > a) return a;\n if (0 > a) return 0;\n if (255 < a) return 255;\n }\n function eb(a, b) {\n return sa(a + ((a - b + 0.5) >> 1));\n }\n function Ia(a, b, c) {\n return Math.abs(b - c) - Math.abs(a - c);\n }\n function cc(a, b, c, d, e, f, g) {\n d = f[g - 1];\n for (c = 0; c < e; ++c) f[g + c] = d = yb(a[b + c], d);\n }\n function Kd(a, b, c, d, e) {\n var f;\n for (f = 0; f < c; ++f) {\n var g = a[b + f],\n h = (g >> 8) & 255,\n k = g & 16711935,\n k = k + ((h << 16) + h),\n k = k & 16711935;\n d[e + f] = ((g & 4278255360) + k) >>> 0;\n }\n }\n function dc(a, b) {\n b.jd = (a >> 0) & 255;\n b.hd = (a >> 8) & 255;\n b.ud = (a >> 16) & 255;\n }\n function Ld(a, b, c, d, e, f) {\n var g;\n for (g = 0; g < d; ++g) {\n var h = b[c + g],\n k = h >>> 8,\n l = h >>> 16,\n m = h,\n l = l + ((((a.jd << 24) >> 24) * ((k << 24) >> 24)) >>> 5),\n l = l & 255,\n m = m + ((((a.hd << 24) >> 24) * ((k << 24) >> 24)) >>> 5),\n m = m + ((((a.ud << 24) >> 24) * ((l << 24) >> 24)) >>> 5),\n m = m & 255;\n e[f + g] = (h & 4278255360) + (l << 16) + m;\n }\n }\n function ec(a, b, c, d, e) {\n self[b] = function(a, b, c, k, l, m, n, r, q) {\n for (k = n; k < r; ++k)\n for (n = 0; n < q; ++n) l[m++] = e(c[d(a[b++])]);\n };\n self[a] = function(a, b, h, k, l, m, n) {\n var f = 8 >> a.b,\n g = a.Ea,\n t = a.K[0],\n v = a.w;\n if (8 > f)\n for (a = (1 << a.b) - 1, v = (1 << f) - 1; b < h; ++b) {\n var p = 0,\n u;\n for (u = 0; u < g; ++u)\n u & a || (p = d(k[l++])), (m[n++] = e(t[p & v])), (p >>= f);\n }\n else self[\"VP8LMapColor\" + c](k, l, t, v, m, n, b, h, g);\n };\n }\n function Md(a, b, c, d, e) {\n for (c = b + c; b < c; ) {\n var f = a[b++];\n d[e++] = (f >> 16) & 255;\n d[e++] = (f >> 8) & 255;\n d[e++] = (f >> 0) & 255;\n }\n }\n function Nd(a, b, c, d, e) {\n for (c = b + c; b < c; ) {\n var f = a[b++];\n d[e++] = (f >> 16) & 255;\n d[e++] = (f >> 8) & 255;\n d[e++] = (f >> 0) & 255;\n d[e++] = (f >> 24) & 255;\n }\n }\n function Od(a, b, c, d, e) {\n for (c = b + c; b < c; ) {\n var f = a[b++],\n g = ((f >> 16) & 240) | ((f >> 12) & 15),\n f = ((f >> 0) & 240) | ((f >> 28) & 15);\n d[e++] = g;\n d[e++] = f;\n }\n }\n function Pd(a, b, c, d, e) {\n for (c = b + c; b < c; ) {\n var f = a[b++],\n g = ((f >> 16) & 248) | ((f >> 13) & 7),\n f = ((f >> 5) & 224) | ((f >> 3) & 31);\n d[e++] = g;\n d[e++] = f;\n }\n }\n function Qd(a, b, c, d, e) {\n for (c = b + c; b < c; ) {\n var f = a[b++];\n d[e++] = (f >> 0) & 255;\n d[e++] = (f >> 8) & 255;\n d[e++] = (f >> 16) & 255;\n }\n }\n function fb(a, b, c, d, e, f) {\n if (0 == f)\n for (c = b + c; b < c; )\n (f = a[b++]),\n ra(\n d,\n ((f[0] >> 24) |\n ((f[1] >> 8) & 65280) |\n ((f[2] << 8) & 16711680) |\n (f[3] << 24)) >>>\n 0\n ),\n (e += 32);\n else I(d, e, a, b, c);\n }\n function gb(a, b) {\n self[b][0] = self[a + \"0\"];\n self[b][1] = self[a + \"1\"];\n self[b][2] = self[a + \"2\"];\n self[b][3] = self[a + \"3\"];\n self[b][4] = self[a + \"4\"];\n self[b][5] = self[a + \"5\"];\n self[b][6] = self[a + \"6\"];\n self[b][7] = self[a + \"7\"];\n self[b][8] = self[a + \"8\"];\n self[b][9] = self[a + \"9\"];\n self[b][10] = self[a + \"10\"];\n self[b][11] = self[a + \"11\"];\n self[b][12] = self[a + \"12\"];\n self[b][13] = self[a + \"13\"];\n self[b][14] = self[a + \"0\"];\n self[b][15] = self[a + \"0\"];\n }\n function hb(a) {\n return a == zb || a == Ab || a == Ja || a == Bb;\n }\n function Rd() {\n this.eb = [];\n this.size = this.A = this.fb = 0;\n }\n function Sd() {\n this.y = [];\n this.f = [];\n this.ea = [];\n this.F = [];\n this.Tc = this.Ed = this.Cd = this.Fd = this.lb = this.Db = this.Ab = this.fa = this.J = this.W = this.N = this.O = 0;\n }\n function Cb() {\n this.Rd = this.height = this.width = this.S = 0;\n this.f = {};\n this.f.RGBA = new Rd();\n this.f.kb = new Sd();\n this.sd = null;\n }\n function Td() {\n this.width = [0];\n this.height = [0];\n this.Pd = [0];\n this.Qd = [0];\n this.format = [0];\n }\n function Ud() {\n this.Id = this.fd = this.Md = this.hb = this.ib = this.da = this.bd = this.cd = this.j = this.v = this.Da = this.Sd = this.ob = 0;\n }\n function Vd(a) {\n alert(\"todo:WebPSamplerProcessPlane\");\n return a.T;\n }\n function Wd(a, b) {\n var c = a.T,\n d = b.ba.f.RGBA,\n e = d.eb,\n f = d.fb + a.ka * d.A,\n g = P[b.ba.S],\n h = a.y,\n k = a.O,\n l = a.f,\n m = a.N,\n n = a.ea,\n r = a.W,\n q = b.cc,\n t = b.dc,\n v = b.Mc,\n p = b.Nc,\n u = a.ka,\n w = a.ka + a.T,\n y = a.U,\n A = (y + 1) >> 1;\n 0 == u\n ? g(h, k, null, null, l, m, n, r, l, m, n, r, e, f, null, null, y)\n : (g(b.ec, b.fc, h, k, q, t, v, p, l, m, n, r, e, f - d.A, e, f, y),\n ++c);\n for (; u + 2 < w; u += 2)\n (q = l),\n (t = m),\n (v = n),\n (p = r),\n (m += a.Rc),\n (r += a.Rc),\n (f += 2 * d.A),\n (k += 2 * a.fa),\n g(h, k - a.fa, h, k, q, t, v, p, l, m, n, r, e, f - d.A, e, f, y);\n k += a.fa;\n a.j + w < a.o\n ? (I(b.ec, b.fc, h, k, y),\n I(b.cc, b.dc, l, m, A),\n I(b.Mc, b.Nc, n, r, A),\n c--)\n : w & 1 ||\n g(\n h,\n k,\n null,\n null,\n l,\n m,\n n,\n r,\n l,\n m,\n n,\n r,\n e,\n f + d.A,\n null,\n null,\n y\n );\n return c;\n }\n function Xd(a, b, c) {\n var d = a.F,\n e = [a.J];\n if (null != d) {\n var f = a.U,\n g = b.ba.S,\n h = g == ya || g == Ja;\n b = b.ba.f.RGBA;\n var k = [0],\n l = a.ka;\n k[0] = a.T;\n a.Kb &&\n (0 == l ? --k[0] : (--l, (e[0] -= a.width)),\n a.j + a.ka + a.T == a.o && (k[0] = a.o - a.j - l));\n var m = b.eb,\n l = b.fb + l * b.A;\n a = fc(d, e[0], a.width, f, k, m, l + (h ? 0 : 3), b.A);\n x(c == k);\n a && hb(g) && za(m, l, h, f, k, b.A);\n }\n return 0;\n }\n function gc(a) {\n var b = a.ma,\n c = b.ba.S,\n d = 11 > c,\n e = c == Ua || c == Va || c == ya || c == Db || 12 == c || hb(c);\n b.memory = null;\n b.Ib = null;\n b.Jb = null;\n b.Nd = null;\n if (!hc(b.Oa, a, e ? 11 : 12)) return 0;\n e && hb(c) && ic();\n if (a.da) alert(\"todo:use_scaling\");\n else {\n if (d) {\n if (((b.Ib = Vd), a.Kb)) {\n c = (a.U + 1) >> 1;\n b.memory = V(a.U + 2 * c);\n if (null == b.memory) return 0;\n b.ec = b.memory;\n b.fc = 0;\n b.cc = b.ec;\n b.dc = b.fc + a.U;\n b.Mc = b.cc;\n b.Nc = b.dc + c;\n b.Ib = Wd;\n ic();\n }\n } else alert(\"todo:EmitYUV\");\n e && ((b.Jb = Xd), d && Aa());\n }\n if (d && !jc) {\n for (a = 0; 256 > a; ++a)\n (Yd[a] = (89858 * (a - 128) + Ba) >> Wa),\n (Zd[a] = -22014 * (a - 128) + Ba),\n ($d[a] = -45773 * (a - 128)),\n (ae[a] = (113618 * (a - 128) + Ba) >> Wa);\n for (a = ta; a < Eb; ++a)\n (b = (76283 * (a - 16) + Ba) >> Wa),\n (be[a - ta] = ga(b, 255)),\n (ce[a - ta] = ga((b + 8) >> 4, 15));\n jc = 1;\n }\n return 1;\n }\n function kc(a) {\n var b = a.ma,\n c = a.U,\n d = a.T;\n x(!(a.ka & 1));\n if (0 >= c || 0 >= d) return 0;\n c = b.Ib(a, b);\n null != b.Jb && b.Jb(a, b, c);\n b.Dc += c;\n return 1;\n }\n function lc(a) {\n a.ma.memory = null;\n }\n function mc(a, b, c, d) {\n if (47 != D(a, 8)) return 0;\n b[0] = D(a, 14) + 1;\n c[0] = D(a, 14) + 1;\n d[0] = D(a, 1);\n return 0 != D(a, 3) ? 0 : !a.h;\n }\n function ib(a, b) {\n if (4 > a) return a + 1;\n var c = (a - 2) >> 1;\n return ((2 + (a & 1)) << c) + D(b, c) + 1;\n }\n function nc(a, b) {\n if (120 < b) return b - 120;\n var c = de[b - 1],\n c = (c >> 4) * a + (8 - (c & 15));\n return 1 <= c ? c : 1;\n }\n function ua(a, b, c) {\n var d = pb(c);\n b += d & 255;\n var e = a[b].g - 8;\n 0 < e &&\n (qb(c, c.u + 8),\n (d = pb(c)),\n (b += a[b].value),\n (b += d & ((1 << e) - 1)));\n qb(c, c.u + a[b].g);\n return a[b].value;\n }\n function ub(a, b, c) {\n c.g += a.g;\n c.value += (a.value << b) >>> 0;\n x(8 >= c.g);\n return a.g;\n }\n function ha(a, b, c) {\n var d = a.xc;\n b = 0 == d ? 0 : a.vc[a.md * (c >> d) + (b >> d)];\n x(b < a.Wb);\n return a.Ya[b];\n }\n function oc(a, b, c, d) {\n var e = a.ab,\n f = a.c * b,\n g = a.C;\n b = g + b;\n var h = c,\n k = d;\n d = a.Ta;\n for (c = a.Ua; 0 < e--; ) {\n var l = a.gc[e],\n m = g,\n n = b,\n r = h,\n q = k,\n k = d,\n h = c,\n t = l.Ea;\n x(m < n);\n x(n <= l.nc);\n switch (l.hc) {\n case 2:\n pc(r, q, (n - m) * t, k, h);\n break;\n case 0:\n var v = l,\n p = m,\n u = n,\n w = k,\n y = h,\n A = v.Ea;\n 0 == p &&\n (ee(r, q, null, null, 1, w, y),\n cc(r, q + 1, 0, 0, A - 1, w, y + 1),\n (q += A),\n (y += A),\n ++p);\n for (\n var E = 1 << v.b,\n B = E - 1,\n C = xa(A, v.b),\n N = v.K,\n v = v.w + (p >> v.b) * C;\n p < u;\n\n ) {\n var z = N,\n Q = v,\n S = 1;\n for (fe(r, q, w, y - A, 1, w, y); S < A; ) {\n var K = qc[(z[Q++] >> 8) & 15],\n D = (S & ~B) + E;\n D > A && (D = A);\n K(r, q + +S, w, y + S - A, D - S, w, y + S);\n S = D;\n }\n q += A;\n y += A;\n ++p;\n p & B || (v += C);\n }\n n != l.nc && I(k, h - t, k, h + (n - m - 1) * t, t);\n break;\n case 1:\n t = r;\n u = q;\n r = l.Ea;\n q = 1 << l.b;\n w = q - 1;\n y = r & ~w;\n A = r - y;\n p = xa(r, l.b);\n E = l.K;\n for (l = l.w + (m >> l.b) * p; m < n; ) {\n B = E;\n C = l;\n N = new Jd();\n v = u + y;\n for (z = u + r; u < v; )\n dc(B[C++], N), Fb(N, t, u, q, k, h), (u += q), (h += q);\n u < z &&\n (dc(B[C++], N), Fb(N, t, u, A, k, h), (u += A), (h += A));\n ++m;\n m & w || (l += p);\n }\n break;\n case 3:\n if (r == k && q == h && 0 < l.b) {\n y = (n - m) * xa(l.Ea, l.b);\n t = h + (n - m) * t - y;\n u = k;\n r = t;\n q = k;\n w = h;\n A = y;\n p = [];\n for (y = A - 1; 0 <= y; --y) p[y] = q[w + y];\n for (y = A - 1; 0 <= y; --y) u[r + y] = p[y];\n rc(l, m, n, k, t, k, h);\n } else rc(l, m, n, r, q, k, h);\n }\n h = d;\n k = c;\n }\n k != c && I(d, c, h, k, f);\n }\n function ge(a, b) {\n var c = a.V,\n d = a.Ba + a.c * a.C,\n e = b - a.C;\n x(b <= a.l.o);\n x(16 >= e);\n if (0 < e) {\n var f = a.l,\n g = a.Ta,\n h = a.Ua,\n k = f.width;\n oc(a, e, c, d);\n h = [h];\n c = a.C;\n d = b;\n e = h;\n x(c < d);\n x(f.v < f.va);\n d > f.o && (d = f.o);\n if (c < f.j) {\n var l = f.j - c,\n c = f.j;\n e[0] += l * k;\n }\n c >= d\n ? (c = 0)\n : ((e[0] += 4 * f.v),\n (f.ka = c - f.j),\n (f.U = f.va - f.v),\n (f.T = d - c),\n (c = 1));\n if (c) {\n h = h[0];\n c = a.ca;\n if (11 > c.S) {\n for (\n var m = c.f.RGBA,\n d = c.S,\n e = f.U,\n f = f.T,\n l = m.eb,\n n = m.A,\n r = f,\n m = m.fb + a.Ma * m.A;\n 0 < r--;\n\n ) {\n var q = g,\n t = h,\n v = e,\n p = l,\n u = m;\n switch (d) {\n case Ca:\n sc(q, t, v, p, u);\n break;\n case Ua:\n Gb(q, t, v, p, u);\n break;\n case zb:\n Gb(q, t, v, p, u);\n za(p, u, 0, v, 1, 0);\n break;\n case tc:\n uc(q, t, v, p, u);\n break;\n case Va:\n fb(q, t, v, p, u, 1);\n break;\n case Ab:\n fb(q, t, v, p, u, 1);\n za(p, u, 0, v, 1, 0);\n break;\n case ya:\n fb(q, t, v, p, u, 0);\n break;\n case Ja:\n fb(q, t, v, p, u, 0);\n za(p, u, 1, v, 1, 0);\n break;\n case Db:\n Hb(q, t, v, p, u);\n break;\n case Bb:\n Hb(q, t, v, p, u);\n vc(p, u, v, 1, 0);\n break;\n case wc:\n xc(q, t, v, p, u);\n break;\n default:\n x(0);\n }\n h += k;\n m += n;\n }\n a.Ma += f;\n } else alert(\"todo:EmitRescaledRowsYUVA\");\n x(a.Ma <= c.height);\n }\n }\n a.C = b;\n x(a.C <= a.i);\n }\n function yc(a) {\n var b;\n if (0 < a.ua) return 0;\n for (b = 0; b < a.Wb; ++b) {\n var c = a.Ya[b].G,\n d = a.Ya[b].H;\n if (\n 0 < c[1][d[1] + 0].g ||\n 0 < c[2][d[2] + 0].g ||\n 0 < c[3][d[3] + 0].g\n )\n return 0;\n }\n return 1;\n }\n function zc(a, b, c, d, e, f) {\n if (0 != a.Z) {\n var g = a.qd,\n h = a.rd;\n for (x(null != ia[a.Z]); b < c; ++b)\n ia[a.Z](g, h, d, e, d, e, f), (g = d), (h = e), (e += f);\n a.qd = g;\n a.rd = h;\n }\n }\n function Ib(a, b) {\n var c = a.l.ma,\n d = 0 == c.Z || 1 == c.Z ? a.l.j : a.C,\n d = a.C < d ? d : a.C;\n x(b <= a.l.o);\n if (b > d) {\n var e = a.l.width,\n f = c.ca,\n g = c.tb + e * d,\n h = a.V,\n k = a.Ba + a.c * d,\n l = a.gc;\n x(1 == a.ab);\n x(3 == l[0].hc);\n he(l[0], d, b, h, k, f, g);\n zc(c, d, b, f, g, e);\n }\n a.C = a.Ma = b;\n }\n function Jb(a, b, c, d, e, f, g) {\n var h = a.$ / d,\n k = a.$ % d,\n l = a.m,\n m = a.s,\n n = c + a.$,\n r = n;\n e = c + d * e;\n var q = c + d * f,\n t = 280 + m.ua,\n v = a.Pb ? h : 16777216,\n p = 0 < m.ua ? m.Wa : null,\n u = m.wc,\n w = n < q ? ha(m, k, h) : null;\n x(a.C < f);\n x(q <= e);\n var y = !1;\n a: for (;;) {\n for (; y || n < q; ) {\n var A = 0;\n if (h >= v) {\n var v = a,\n E = n - c;\n x(v.Pb);\n v.wd = v.m;\n v.xd = E;\n 0 < v.s.ua && $b(v.s.Wa, v.s.vb);\n v = h + ie;\n }\n k & u || (w = ha(m, k, h));\n x(null != w);\n w.Qb && ((b[n] = w.qb), (y = !0));\n if (!y)\n if ((Sa(l), w.jc)) {\n var A = l,\n E = b,\n B = n,\n C = w.pd[pb(A) & (xb - 1)];\n x(w.jc);\n 256 > C.g\n ? (qb(A, A.u + C.g), (E[B] = C.value), (A = 0))\n : (qb(A, A.u + C.g - 256), x(256 <= C.value), (A = C.value));\n 0 == A && (y = !0);\n } else A = ua(w.G[0], w.H[0], l);\n if (l.h) break;\n if (y || 256 > A) {\n if (!y)\n if (w.nd) b[n] = (w.qb | (A << 8)) >>> 0;\n else {\n Sa(l);\n y = ua(w.G[1], w.H[1], l);\n Sa(l);\n E = ua(w.G[2], w.H[2], l);\n B = ua(w.G[3], w.H[3], l);\n if (l.h) break;\n b[n] = ((B << 24) | (y << 16) | (A << 8) | E) >>> 0;\n }\n y = !1;\n ++n;\n ++k;\n if (\n k >= d &&\n ((k = 0),\n ++h,\n null != g && h <= f && !(h % 16) && g(a, h),\n null != p)\n )\n for (; r < n; )\n (A = b[r++]),\n (p.X[((506832829 * A) & 4294967295) >>> p.Mb] = A);\n } else if (280 > A) {\n A = ib(A - 256, l);\n E = ua(w.G[4], w.H[4], l);\n Sa(l);\n E = ib(E, l);\n E = nc(d, E);\n if (l.h) break;\n if (n - c < E || e - n < A) break a;\n else for (B = 0; B < A; ++B) b[n + B] = b[n + B - E];\n n += A;\n for (k += A; k >= d; )\n (k -= d), ++h, null != g && h <= f && !(h % 16) && g(a, h);\n x(n <= e);\n k & u && (w = ha(m, k, h));\n if (null != p)\n for (; r < n; )\n (A = b[r++]),\n (p.X[((506832829 * A) & 4294967295) >>> p.Mb] = A);\n } else if (A < t) {\n y = A - 280;\n for (x(null != p); r < n; )\n (A = b[r++]), (p.X[((506832829 * A) & 4294967295) >>> p.Mb] = A);\n A = n;\n E = p;\n x(!(y >>> E.Xa));\n b[A] = E.X[y];\n y = !0;\n } else break a;\n y || x(l.h == db(l));\n }\n if (a.Pb && l.h && n < e)\n x(a.m.h),\n (a.a = 5),\n (a.m = a.wd),\n (a.$ = a.xd),\n 0 < a.s.ua && $b(a.s.vb, a.s.Wa);\n else if (l.h) break a;\n else null != g && g(a, h > f ? f : h), (a.a = 0), (a.$ = n - c);\n return 1;\n }\n a.a = 3;\n return 0;\n }\n function Ac(a) {\n x(null != a);\n a.vc = null;\n a.yc = null;\n a.Ya = null;\n var b = a.Wa;\n null != b && (b.X = null);\n a.vb = null;\n x(null != a);\n }\n function Bc() {\n var a = new je();\n if (null == a) return null;\n a.a = 0;\n a.xb = Cc;\n gb(\"Predictor\", \"VP8LPredictors\");\n gb(\"Predictor\", \"VP8LPredictors_C\");\n gb(\"PredictorAdd\", \"VP8LPredictorsAdd\");\n gb(\"PredictorAdd\", \"VP8LPredictorsAdd_C\");\n pc = Kd;\n Fb = Ld;\n sc = Md;\n Gb = Nd;\n Hb = Od;\n xc = Pd;\n uc = Qd;\n self.VP8LMapColor32b = ke;\n self.VP8LMapColor8b = le;\n return a;\n }\n function rb(a, b, c, d, e) {\n var f = 1,\n g = [a],\n h = [b],\n k = d.m,\n l = d.s,\n m = null,\n n = 0;\n a: for (;;) {\n if (c)\n for (; f && D(k, 1); ) {\n var r = g,\n q = h,\n t = d,\n v = 1,\n p = t.m,\n u = t.gc[t.ab],\n w = D(p, 2);\n if (t.Oc & (1 << w)) f = 0;\n else {\n t.Oc |= 1 << w;\n u.hc = w;\n u.Ea = r[0];\n u.nc = q[0];\n u.K = [null];\n ++t.ab;\n x(4 >= t.ab);\n switch (w) {\n case 0:\n case 1:\n u.b = D(p, 3) + 2;\n v = rb(xa(u.Ea, u.b), xa(u.nc, u.b), 0, t, u.K);\n u.K = u.K[0];\n break;\n case 3:\n var y = D(p, 8) + 1,\n A = 16 < y ? 0 : 4 < y ? 1 : 2 < y ? 2 : 3;\n r[0] = xa(u.Ea, A);\n u.b = A;\n var v = rb(y, 1, 0, t, u.K),\n E;\n if ((E = v)) {\n var B,\n C = y,\n N = u,\n z = 1 << (8 >> N.b),\n Q = V(z);\n if (null == Q) E = 0;\n else {\n var S = N.K[0],\n K = N.w;\n Q[0] = N.K[0][0];\n for (B = 1; B < 1 * C; ++B) Q[B] = yb(S[K + B], Q[B - 1]);\n for (; B < 4 * z; ++B) Q[B] = 0;\n N.K[0] = null;\n N.K[0] = Q;\n E = 1;\n }\n }\n v = E;\n break;\n case 2:\n break;\n default:\n x(0);\n }\n f = v;\n }\n }\n g = g[0];\n h = h[0];\n if (f && D(k, 1) && ((n = D(k, 4)), (f = 1 <= n && 11 >= n), !f)) {\n d.a = 3;\n break a;\n }\n var H;\n if ((H = f))\n b: {\n var F = d,\n G = g,\n L = h,\n J = n,\n T = c,\n Da,\n ba,\n X = F.m,\n R = F.s,\n P = [null],\n U,\n W = 1,\n aa = 0,\n na = me[J];\n c: for (;;) {\n if (T && D(X, 1)) {\n var ca = D(X, 3) + 2,\n ga = xa(G, ca),\n ka = xa(L, ca),\n qa = ga * ka;\n if (!rb(ga, ka, 0, F, P)) break c;\n P = P[0];\n R.xc = ca;\n for (Da = 0; Da < qa; ++Da) {\n var ia = (P[Da] >> 8) & 65535;\n P[Da] = ia;\n ia >= W && (W = ia + 1);\n }\n }\n if (X.h) break c;\n for (ba = 0; 5 > ba; ++ba) {\n var Y = Dc[ba];\n !ba && 0 < J && (Y += 1 << J);\n aa < Y && (aa = Y);\n }\n var ma = wa(W * na, O);\n var ua = W,\n va = wa(ua, Ub);\n if (null == va) var la = null;\n else x(65536 >= ua), (la = va);\n var ha = V(aa);\n if (null == la || null == ha || null == ma) {\n F.a = 1;\n break c;\n }\n var pa = ma;\n for (Da = U = 0; Da < W; ++Da) {\n var ja = la[Da],\n da = ja.G,\n ea = ja.H,\n Fa = 0,\n ra = 1,\n Ha = 0;\n for (ba = 0; 5 > ba; ++ba) {\n Y = Dc[ba];\n da[ba] = pa;\n ea[ba] = U;\n !ba && 0 < J && (Y += 1 << J);\n d: {\n var sa,\n za = Y,\n ta = F,\n oa = ha,\n db = pa,\n eb = U,\n Ia = 0,\n Ka = ta.m,\n fb = D(Ka, 1);\n M(oa, 0, 0, za);\n if (fb) {\n var gb = D(Ka, 1) + 1,\n hb = D(Ka, 1),\n Ja = D(Ka, 0 == hb ? 1 : 8);\n oa[Ja] = 1;\n 2 == gb && ((Ja = D(Ka, 8)), (oa[Ja] = 1));\n var ya = 1;\n } else {\n var Ua = V(19),\n Va = D(Ka, 4) + 4;\n if (19 < Va) {\n ta.a = 3;\n var Aa = 0;\n break d;\n }\n for (sa = 0; sa < Va; ++sa) Ua[ne[sa]] = D(Ka, 3);\n var Ba = void 0,\n sb = void 0,\n Wa = ta,\n ib = Ua,\n Ca = za,\n Xa = oa,\n Oa = 0,\n La = Wa.m,\n Ya = 8,\n Za = wa(128, O);\n e: for (;;) {\n if (!Z(Za, 0, 7, ib, 19)) break e;\n if (D(La, 1)) {\n var kb = 2 + 2 * D(La, 3),\n Ba = 2 + D(La, kb);\n if (Ba > Ca) break e;\n } else Ba = Ca;\n for (sb = 0; sb < Ca && Ba--; ) {\n Sa(La);\n var $a = Za[0 + (pb(La) & 127)];\n qb(La, La.u + $a.g);\n var jb = $a.value;\n if (16 > jb) (Xa[sb++] = jb), 0 != jb && (Ya = jb);\n else {\n var lb = 16 == jb,\n ab = jb - 16,\n mb = oe[ab],\n bb = D(La, pe[ab]) + mb;\n if (sb + bb > Ca) break e;\n else\n for (var nb = lb ? Ya : 0; 0 < bb--; )\n Xa[sb++] = nb;\n }\n }\n Oa = 1;\n break e;\n }\n Oa || (Wa.a = 3);\n ya = Oa;\n }\n (ya = ya && !Ka.h) && (Ia = Z(db, eb, 8, oa, za));\n ya && 0 != Ia ? (Aa = Ia) : ((ta.a = 3), (Aa = 0));\n }\n if (0 == Aa) break c;\n ra && 1 == qe[ba] && (ra = 0 == pa[U].g);\n Fa += pa[U].g;\n U += Aa;\n if (3 >= ba) {\n var Pa = ha[0],\n tb;\n for (tb = 1; tb < Y; ++tb) ha[tb] > Pa && (Pa = ha[tb]);\n Ha += Pa;\n }\n }\n ja.nd = ra;\n ja.Qb = 0;\n ra &&\n ((ja.qb =\n ((da[3][ea[3] + 0].value << 24) |\n (da[1][ea[1] + 0].value << 16) |\n da[2][ea[2] + 0].value) >>>\n 0),\n 0 == Fa &&\n 256 > da[0][ea[0] + 0].value &&\n ((ja.Qb = 1), (ja.qb += da[0][ea[0] + 0].value << 8)));\n ja.jc = !ja.Qb && 6 > Ha;\n if (ja.jc) {\n var Ga,\n Ea = ja;\n for (Ga = 0; Ga < xb; ++Ga) {\n var Ma = Ga,\n Na = Ea.pd[Ma],\n vb = Ea.G[0][Ea.H[0] + Ma];\n 256 <= vb.value\n ? ((Na.g = vb.g + 256), (Na.value = vb.value))\n : ((Na.g = 0),\n (Na.value = 0),\n (Ma >>= ub(vb, 8, Na)),\n (Ma >>= ub(Ea.G[1][Ea.H[1] + Ma], 16, Na)),\n (Ma >>= ub(Ea.G[2][Ea.H[2] + Ma], 0, Na)),\n ub(Ea.G[3][Ea.H[3] + Ma], 24, Na));\n }\n }\n }\n R.vc = P;\n R.Wb = W;\n R.Ya = la;\n R.yc = ma;\n H = 1;\n break b;\n }\n H = 0;\n }\n f = H;\n if (!f) {\n d.a = 3;\n break a;\n }\n if (0 < n) {\n if (((l.ua = 1 << n), !Zb(l.Wa, n))) {\n d.a = 1;\n f = 0;\n break a;\n }\n } else l.ua = 0;\n var Qa = d,\n cb = g,\n ob = h,\n Ra = Qa.s,\n Ta = Ra.xc;\n Qa.c = cb;\n Qa.i = ob;\n Ra.md = xa(cb, Ta);\n Ra.wc = 0 == Ta ? -1 : (1 << Ta) - 1;\n if (c) {\n d.xb = re;\n break a;\n }\n m = V(g * h);\n if (null == m) {\n d.a = 1;\n f = 0;\n break a;\n }\n f = (f = Jb(d, m, 0, g, h, h, null)) && !k.h;\n break a;\n }\n f\n ? (null != e ? (e[0] = m) : (x(null == m), x(c)), (d.$ = 0), c || Ac(l))\n : Ac(l);\n return f;\n }\n function Ec(a, b) {\n var c = a.c * a.i,\n d = c + b + 16 * b;\n x(a.c <= b);\n a.V = V(d);\n if (null == a.V) return (a.Ta = null), (a.Ua = 0), (a.a = 1), 0;\n a.Ta = a.V;\n a.Ua = a.Ba + c + b;\n return 1;\n }\n function se(a, b) {\n var c = a.C,\n d = b - c,\n e = a.V,\n f = a.Ba + a.c * c;\n for (x(b <= a.l.o); 0 < d; ) {\n var g = 16 < d ? 16 : d,\n h = a.l.ma,\n k = a.l.width,\n l = k * g,\n m = h.ca,\n n = h.tb + k * c,\n r = a.Ta,\n q = a.Ua;\n oc(a, g, e, f);\n Fc(r, q, m, n, l);\n zc(h, c, c + g, m, n, k);\n d -= g;\n e += g * a.c;\n c += g;\n }\n x(c == b);\n a.C = a.Ma = b;\n }\n function te(a, b) {\n var c = [0],\n d = [0],\n e = [0];\n a: for (;;) {\n if (null == a) return 0;\n if (null == b) return (a.a = 2), 0;\n a.l = b;\n a.a = 0;\n cb(a.m, b.data, b.w, b.ha);\n if (!mc(a.m, c, d, e)) {\n a.a = 3;\n break a;\n }\n a.xb = Cc;\n b.width = c[0];\n b.height = d[0];\n if (!rb(c[0], d[0], 1, a, null)) break a;\n return 1;\n }\n x(0 != a.a);\n return 0;\n }\n function ue() {\n this.ub = this.yd = this.td = this.Rb = 0;\n }\n function ve() {\n this.Kd = this.Ld = this.Ud = this.Td = this.i = this.c = 0;\n }\n function we() {\n this.Fb = this.Bb = this.Cb = 0;\n this.Zb = V(4);\n this.Lb = V(4);\n }\n function Gc() {\n this.Yb = wb();\n }\n function xe() {\n this.jb = V(3);\n this.Wc = Ed([4, 8], Gc);\n this.Xc = Ed([4, 17], Gc);\n }\n function ye() {\n this.Pc = this.wb = this.Tb = this.zd = 0;\n this.vd = new V(4);\n this.od = new V(4);\n }\n function Xa() {\n this.ld = this.La = this.dd = this.tc = 0;\n }\n function Hc() {\n this.Na = this.la = 0;\n }\n function ze() {\n this.Sc = [0, 0];\n this.Eb = [0, 0];\n this.Qc = [0, 0];\n this.ia = this.lc = 0;\n }\n function Kb() {\n this.ad = V(384);\n this.Za = 0;\n this.Ob = V(16);\n this.$b = this.Ad = this.ia = this.Gc = this.Hc = this.Dd = 0;\n }\n function Ae() {\n this.uc = this.M = this.Nb = 0;\n this.wa = Array(new Xa());\n this.Y = 0;\n this.ya = Array(new Kb());\n this.aa = 0;\n this.l = new Oa();\n }\n function Ic() {\n this.y = V(16);\n this.f = V(8);\n this.ea = V(8);\n }\n function Be() {\n this.cb = this.a = 0;\n this.sc = \"\";\n this.m = new Wb();\n this.Od = new ue();\n this.Kc = new ve();\n this.ed = new ye();\n this.Qa = new we();\n this.Ic = this.$c = this.Aa = 0;\n this.D = new Ae();\n this.Xb = this.Va = this.Hb = this.zb = this.yb = this.Ub = this.za = 0;\n this.Jc = wa(8, Wb);\n this.ia = 0;\n new F();\n this.pb = wa(4, ze);\n this.Pa = new xe();\n this.Bd = this.kc = 0;\n this.Ac = [];\n this.Bc = 0;\n this.zc = [0, 0, 0, 0];\n this.Gd = Array(new Ic());\n this.Hd = 0;\n this.rb = Array(new Hc());\n this.sb = 0;\n this.wa = Array(new Xa());\n this.Y = 0;\n this.oc = [];\n this.pc = 0;\n this.sa = [];\n this.ta = 0;\n this.qa = [];\n this.ra = 0;\n this.Ha = [];\n this.B = this.R = this.Ia = 0;\n this.Ec = [];\n this.M = this.ja = this.Vb = this.Fc = 0;\n this.ya = Array(new Kb());\n this.L = this.aa = 0;\n this.gd = Ed([4, 2], Xa);\n this.ga = null;\n this.Fa = [];\n this.Cc = this.qc = this.P = 0;\n this.Gb = [];\n this.Uc = 0;\n this.mb = [];\n this.nb = 0;\n this.rc = [];\n this.Ga = this.Vc = 0;\n }\n function ga(a, b) {\n return 0 > a ? 0 : a > b ? b : a;\n }\n function Oa() {\n this.T = this.U = this.ka = this.height = this.width = 0;\n this.y = [];\n this.f = [];\n this.ea = [];\n this.Rc = this.fa = this.W = this.N = this.O = 0;\n this.ma = \"void\";\n this.put = \"VP8IoPutHook\";\n this.ac = \"VP8IoSetupHook\";\n this.bc = \"VP8IoTeardownHook\";\n this.ha = this.Kb = 0;\n this.data = [];\n this.hb = this.ib = this.da = this.o = this.j = this.va = this.v = this.Da = this.ob = this.w = 0;\n this.F = [];\n this.J = 0;\n }\n function Ce() {\n var a = new Be();\n null != a &&\n ((a.a = 0), (a.sc = \"OK\"), (a.cb = 0), (a.Xb = 0), oa || (oa = De));\n return a;\n }\n function T(a, b, c) {\n 0 == a.a && ((a.a = b), (a.sc = c), (a.cb = 0));\n return 0;\n }\n function Jc(a, b, c) {\n return 3 <= c && 157 == a[b + 0] && 1 == a[b + 1] && 42 == a[b + 2];\n }\n function Kc(a, b) {\n if (null == a) return 0;\n a.a = 0;\n a.sc = \"OK\";\n if (null == b) return T(a, 2, \"null VP8Io passed to VP8GetHeaders()\");\n var c = b.data;\n var d = b.w;\n var e = b.ha;\n if (4 > e) return T(a, 7, \"Truncated header.\");\n var f = c[d + 0] | (c[d + 1] << 8) | (c[d + 2] << 16);\n var g = a.Od;\n g.Rb = !(f & 1);\n g.td = (f >> 1) & 7;\n g.yd = (f >> 4) & 1;\n g.ub = f >> 5;\n if (3 < g.td) return T(a, 3, \"Incorrect keyframe parameters.\");\n if (!g.yd) return T(a, 4, \"Frame not displayable.\");\n d += 3;\n e -= 3;\n var h = a.Kc;\n if (g.Rb) {\n if (7 > e) return T(a, 7, \"cannot parse picture header\");\n if (!Jc(c, d, e)) return T(a, 3, \"Bad code word\");\n h.c = ((c[d + 4] << 8) | c[d + 3]) & 16383;\n h.Td = c[d + 4] >> 6;\n h.i = ((c[d + 6] << 8) | c[d + 5]) & 16383;\n h.Ud = c[d + 6] >> 6;\n d += 7;\n e -= 7;\n a.za = (h.c + 15) >> 4;\n a.Ub = (h.i + 15) >> 4;\n b.width = h.c;\n b.height = h.i;\n b.Da = 0;\n b.j = 0;\n b.v = 0;\n b.va = b.width;\n b.o = b.height;\n b.da = 0;\n b.ib = b.width;\n b.hb = b.height;\n b.U = b.width;\n b.T = b.height;\n f = a.Pa;\n M(f.jb, 0, 255, f.jb.length);\n f = a.Qa;\n x(null != f);\n f.Cb = 0;\n f.Bb = 0;\n f.Fb = 1;\n M(f.Zb, 0, 0, f.Zb.length);\n M(f.Lb, 0, 0, f.Lb);\n }\n if (g.ub > e) return T(a, 7, \"bad partition length\");\n f = a.m;\n ma(f, c, d, g.ub);\n d += g.ub;\n e -= g.ub;\n g.Rb && ((h.Ld = G(f)), (h.Kd = G(f)));\n h = a.Qa;\n var k = a.Pa,\n l;\n x(null != f);\n x(null != h);\n h.Cb = G(f);\n if (h.Cb) {\n h.Bb = G(f);\n if (G(f)) {\n h.Fb = G(f);\n for (l = 0; 4 > l; ++l) h.Zb[l] = G(f) ? ca(f, 7) : 0;\n for (l = 0; 4 > l; ++l) h.Lb[l] = G(f) ? ca(f, 6) : 0;\n }\n if (h.Bb) for (l = 0; 3 > l; ++l) k.jb[l] = G(f) ? na(f, 8) : 255;\n } else h.Bb = 0;\n if (f.Ka) return T(a, 3, \"cannot parse segment header\");\n h = a.ed;\n h.zd = G(f);\n h.Tb = na(f, 6);\n h.wb = na(f, 3);\n h.Pc = G(f);\n if (h.Pc && G(f)) {\n for (k = 0; 4 > k; ++k) G(f) && (h.vd[k] = ca(f, 6));\n for (k = 0; 4 > k; ++k) G(f) && (h.od[k] = ca(f, 6));\n }\n a.L = 0 == h.Tb ? 0 : h.zd ? 1 : 2;\n if (f.Ka) return T(a, 3, \"cannot parse filter header\");\n l = d;\n var m = e;\n e = l;\n d = l + m;\n h = m;\n a.Xb = (1 << na(a.m, 2)) - 1;\n k = a.Xb;\n if (m < 3 * k) c = 7;\n else {\n l += 3 * k;\n h -= 3 * k;\n for (m = 0; m < k; ++m) {\n var n = c[e + 0] | (c[e + 1] << 8) | (c[e + 2] << 16);\n n > h && (n = h);\n ma(a.Jc[+m], c, l, n);\n l += n;\n h -= n;\n e += 3;\n }\n ma(a.Jc[+k], c, l, h);\n c = l < d ? 0 : 5;\n }\n if (0 != c) return T(a, c, \"cannot parse partitions\");\n l = a.m;\n c = na(l, 7);\n e = G(l) ? ca(l, 4) : 0;\n d = G(l) ? ca(l, 4) : 0;\n h = G(l) ? ca(l, 4) : 0;\n k = G(l) ? ca(l, 4) : 0;\n l = G(l) ? ca(l, 4) : 0;\n m = a.Qa;\n for (n = 0; 4 > n; ++n) {\n if (m.Cb) {\n var r = m.Zb[n];\n m.Fb || (r += c);\n } else if (0 < n) {\n a.pb[n] = a.pb[0];\n continue;\n } else r = c;\n var q = a.pb[n];\n q.Sc[0] = Lb[ga(r + e, 127)];\n q.Sc[1] = Mb[ga(r + 0, 127)];\n q.Eb[0] = 2 * Lb[ga(r + d, 127)];\n q.Eb[1] = (101581 * Mb[ga(r + h, 127)]) >> 16;\n 8 > q.Eb[1] && (q.Eb[1] = 8);\n q.Qc[0] = Lb[ga(r + k, 117)];\n q.Qc[1] = Mb[ga(r + l, 127)];\n q.lc = r + l;\n }\n if (!g.Rb) return T(a, 4, \"Not a key frame.\");\n G(f);\n g = a.Pa;\n for (c = 0; 4 > c; ++c) {\n for (e = 0; 8 > e; ++e)\n for (d = 0; 3 > d; ++d)\n for (h = 0; 11 > h; ++h)\n (k = K(f, Ee[c][e][d][h]) ? na(f, 8) : Fe[c][e][d][h]),\n (g.Wc[c][e].Yb[d][h] = k);\n for (e = 0; 17 > e; ++e) g.Xc[c][e] = g.Wc[c][Ge[e]];\n }\n a.kc = G(f);\n a.kc && (a.Bd = na(f, 8));\n return (a.cb = 1);\n }\n function De(a, b, c, d, e, f, g) {\n var h = b[e].Yb[c];\n for (c = 0; 16 > e; ++e) {\n if (!K(a, h[c + 0])) return e;\n for (; !K(a, h[c + 1]); )\n if (((h = b[++e].Yb[0]), (c = 0), 16 == e)) return 16;\n var k = b[e + 1].Yb;\n if (K(a, h[c + 2])) {\n var l = a,\n m = h,\n n = c;\n var r = 0;\n if (K(l, m[n + 3]))\n if (K(l, m[n + 6])) {\n h = 0;\n r = K(l, m[n + 8]);\n m = K(l, m[n + 9 + r]);\n n = 2 * r + m;\n r = 0;\n for (m = He[n]; m[h]; ++h) r += r + K(l, m[h]);\n r += 3 + (8 << n);\n } else\n K(l, m[n + 7])\n ? ((r = 7 + 2 * K(l, 165)), (r += K(l, 145)))\n : (r = 5 + K(l, 159));\n else K(l, m[n + 4]) ? (r = 3 + K(l, m[n + 5])) : (r = 2);\n h = k[2];\n } else (r = 1), (h = k[1]);\n k = g + Ie[e];\n l = a;\n 0 > l.b && Qa(l);\n var m = l.b,\n n = l.Ca >> 1,\n q = (n - (l.I >> m)) >> 31;\n --l.b;\n l.Ca += q;\n l.Ca |= 1;\n l.I -= ((n + 1) & q) << m;\n f[k] = ((r ^ q) - q) * d[(0 < e) + 0];\n }\n return 16;\n }\n function Lc(a) {\n var b = a.rb[a.sb - 1];\n b.la = 0;\n b.Na = 0;\n M(a.zc, 0, 0, a.zc.length);\n a.ja = 0;\n }\n function Je(a, b) {\n for (a.M = 0; a.M < a.Va; ++a.M) {\n var c = a.Jc[a.M & a.Xb],\n d = a.m,\n e = a,\n f;\n for (f = 0; f < e.za; ++f) {\n var g = d;\n var h = e;\n var k = h.Ac,\n l = h.Bc + 4 * f,\n m = h.zc,\n n = h.ya[h.aa + f];\n h.Qa.Bb\n ? (n.$b = K(g, h.Pa.jb[0])\n ? 2 + K(g, h.Pa.jb[2])\n : K(g, h.Pa.jb[1]))\n : (n.$b = 0);\n h.kc && (n.Ad = K(g, h.Bd));\n n.Za = !K(g, 145) + 0;\n if (n.Za) {\n var r = n.Ob,\n q = 0;\n for (h = 0; 4 > h; ++h) {\n var t = m[0 + h];\n var v;\n for (v = 0; 4 > v; ++v) {\n t = Ke[k[l + v]][t];\n for (var p = Mc[K(g, t[0])]; 0 < p; )\n p = Mc[2 * p + K(g, t[p])];\n t = -p;\n k[l + v] = t;\n }\n I(r, q, k, l, 4);\n q += 4;\n m[0 + h] = t;\n }\n } else\n (t = K(g, 156) ? (K(g, 128) ? 1 : 3) : K(g, 163) ? 2 : 0),\n (n.Ob[0] = t),\n M(k, l, t, 4),\n M(m, 0, t, 4);\n n.Dd = K(g, 142) ? (K(g, 114) ? (K(g, 183) ? 1 : 3) : 2) : 0;\n }\n if (e.m.Ka) return T(a, 7, \"Premature end-of-partition0 encountered.\");\n for (; a.ja < a.za; ++a.ja) {\n d = a;\n e = c;\n g = d.rb[d.sb - 1];\n k = d.rb[d.sb + d.ja];\n f = d.ya[d.aa + d.ja];\n if ((l = d.kc ? f.Ad : 0))\n (g.la = k.la = 0),\n f.Za || (g.Na = k.Na = 0),\n (f.Hc = 0),\n (f.Gc = 0),\n (f.ia = 0);\n else {\n var u,\n w,\n g = k,\n k = e,\n l = d.Pa.Xc,\n m = d.ya[d.aa + d.ja],\n n = d.pb[m.$b];\n h = m.ad;\n r = 0;\n q = d.rb[d.sb - 1];\n t = v = 0;\n M(h, r, 0, 384);\n if (m.Za) {\n var y = 0;\n var A = l[3];\n } else {\n p = V(16);\n var E = g.Na + q.Na;\n E = oa(k, l[1], E, n.Eb, 0, p, 0);\n g.Na = q.Na = (0 < E) + 0;\n if (1 < E) Nc(p, 0, h, r);\n else {\n var B = (p[0] + 3) >> 3;\n for (p = 0; 256 > p; p += 16) h[r + p] = B;\n }\n y = 1;\n A = l[0];\n }\n var C = g.la & 15;\n var N = q.la & 15;\n for (p = 0; 4 > p; ++p) {\n var z = N & 1;\n for (B = w = 0; 4 > B; ++B)\n (E = z + (C & 1)),\n (E = oa(k, A, E, n.Sc, y, h, r)),\n (z = E > y),\n (C = (C >> 1) | (z << 7)),\n (w = (w << 2) | (3 < E ? 3 : 1 < E ? 2 : 0 != h[r + 0])),\n (r += 16);\n C >>= 4;\n N = (N >> 1) | (z << 7);\n v = ((v << 8) | w) >>> 0;\n }\n A = C;\n y = N >> 4;\n for (u = 0; 4 > u; u += 2) {\n w = 0;\n C = g.la >> (4 + u);\n N = q.la >> (4 + u);\n for (p = 0; 2 > p; ++p) {\n z = N & 1;\n for (B = 0; 2 > B; ++B)\n (E = z + (C & 1)),\n (E = oa(k, l[2], E, n.Qc, 0, h, r)),\n (z = 0 < E),\n (C = (C >> 1) | (z << 3)),\n (w = (w << 2) | (3 < E ? 3 : 1 < E ? 2 : 0 != h[r + 0])),\n (r += 16);\n C >>= 2;\n N = (N >> 1) | (z << 5);\n }\n t |= w << (4 * u);\n A |= (C << 4) << u;\n y |= (N & 240) << u;\n }\n g.la = A;\n q.la = y;\n m.Hc = v;\n m.Gc = t;\n m.ia = t & 43690 ? 0 : n.ia;\n l = !(v | t);\n }\n 0 < d.L &&\n ((d.wa[d.Y + d.ja] = d.gd[f.$b][f.Za]),\n (d.wa[d.Y + d.ja].La |= !l));\n if (e.Ka) return T(a, 7, \"Premature end-of-file encountered.\");\n }\n Lc(a);\n c = a;\n d = b;\n e = 1;\n f = c.D;\n g = 0 < c.L && c.M >= c.zb && c.M <= c.Va;\n if (0 == c.Aa)\n a: {\n (f.M = c.M), (f.uc = g), Oc(c, f), (e = 1);\n w = c.D;\n f = w.Nb;\n t = Ya[c.L];\n g = t * c.R;\n k = (t / 2) * c.B;\n p = 16 * f * c.R;\n B = 8 * f * c.B;\n l = c.sa;\n m = c.ta - g + p;\n n = c.qa;\n h = c.ra - k + B;\n r = c.Ha;\n q = c.Ia - k + B;\n C = w.M;\n N = 0 == C;\n v = C >= c.Va - 1;\n 2 == c.Aa && Oc(c, w);\n if (w.uc)\n for (E = c, z = E.D.M, x(E.D.uc), w = E.yb; w < E.Hb; ++w) {\n var Q = E;\n y = w;\n A = z;\n var S = Q.D,\n D = S.Nb;\n u = Q.R;\n var S = S.wa[S.Y + y],\n F = Q.sa,\n H = Q.ta + 16 * D * u + 16 * y,\n J = S.dd,\n G = S.tc;\n if (0 != G)\n if ((x(3 <= G), 1 == Q.L))\n 0 < y && Pc(F, H, u, G + 4),\n S.La && Qc(F, H, u, G),\n 0 < A && Rc(F, H, u, G + 4),\n S.La && Sc(F, H, u, G);\n else {\n var L = Q.B,\n O = Q.qa,\n P = Q.ra + 8 * D * L + 8 * y,\n R = Q.Ha,\n Q = Q.Ia + 8 * D * L + 8 * y,\n D = S.ld;\n 0 < y &&\n (Tc(F, H, u, G + 4, J, D),\n Uc(O, P, R, Q, L, G + 4, J, D));\n S.La && (Vc(F, H, u, G, J, D), Wc(O, P, R, Q, L, G, J, D));\n 0 < A &&\n (Xc(F, H, u, G + 4, J, D),\n Yc(O, P, R, Q, L, G + 4, J, D));\n S.La && (Zc(F, H, u, G, J, D), $c(O, P, R, Q, L, G, J, D));\n }\n }\n c.ia && alert(\"todo:DitherRow\");\n if (null != d.put) {\n w = 16 * C;\n C = 16 * (C + 1);\n N\n ? ((d.y = c.sa),\n (d.O = c.ta + p),\n (d.f = c.qa),\n (d.N = c.ra + B),\n (d.ea = c.Ha),\n (d.W = c.Ia + B))\n : ((w -= t),\n (d.y = l),\n (d.O = m),\n (d.f = n),\n (d.N = h),\n (d.ea = r),\n (d.W = q));\n v || (C -= t);\n C > d.o && (C = d.o);\n d.F = null;\n d.J = null;\n if (\n null != c.Fa &&\n 0 < c.Fa.length &&\n w < C &&\n ((d.J = Le(c, d, w, C - w)),\n (d.F = c.mb),\n null == d.F && 0 == d.F.length)\n ) {\n e = T(c, 3, \"Could not decode alpha data.\");\n break a;\n }\n w < d.j &&\n ((t = d.j - w),\n (w = d.j),\n x(!(t & 1)),\n (d.O += c.R * t),\n (d.N += c.B * (t >> 1)),\n (d.W += c.B * (t >> 1)),\n null != d.F && (d.J += d.width * t));\n w < C &&\n ((d.O += d.v),\n (d.N += d.v >> 1),\n (d.W += d.v >> 1),\n null != d.F && (d.J += d.v),\n (d.ka = w - d.j),\n (d.U = d.va - d.v),\n (d.T = C - w),\n (e = d.put(d)));\n }\n f + 1 != c.Ic ||\n v ||\n (I(c.sa, c.ta - g, l, m + 16 * c.R, g),\n I(c.qa, c.ra - k, n, h + 8 * c.B, k),\n I(c.Ha, c.Ia - k, r, q + 8 * c.B, k));\n }\n if (!e) return T(a, 6, \"Output aborted.\");\n }\n return 1;\n }\n function Me(a, b) {\n if (null == a) return 0;\n if (null == b) return T(a, 2, \"NULL VP8Io parameter in VP8Decode().\");\n if (!a.cb && !Kc(a, b)) return 0;\n x(a.cb);\n if (null == b.ac || b.ac(b)) {\n b.ob && (a.L = 0);\n var c = Ya[a.L];\n 2 == a.L\n ? ((a.yb = 0), (a.zb = 0))\n : ((a.yb = (b.v - c) >> 4),\n (a.zb = (b.j - c) >> 4),\n 0 > a.yb && (a.yb = 0),\n 0 > a.zb && (a.zb = 0));\n a.Va = (b.o + 15 + c) >> 4;\n a.Hb = (b.va + 15 + c) >> 4;\n a.Hb > a.za && (a.Hb = a.za);\n a.Va > a.Ub && (a.Va = a.Ub);\n if (0 < a.L) {\n var d = a.ed;\n for (c = 0; 4 > c; ++c) {\n var e;\n if (a.Qa.Cb) {\n var f = a.Qa.Lb[c];\n a.Qa.Fb || (f += d.Tb);\n } else f = d.Tb;\n for (e = 0; 1 >= e; ++e) {\n var g = a.gd[c][e],\n h = f;\n d.Pc && ((h += d.vd[0]), e && (h += d.od[0]));\n h = 0 > h ? 0 : 63 < h ? 63 : h;\n if (0 < h) {\n var k = h;\n 0 < d.wb &&\n ((k = 4 < d.wb ? k >> 2 : k >> 1),\n k > 9 - d.wb && (k = 9 - d.wb));\n 1 > k && (k = 1);\n g.dd = k;\n g.tc = 2 * h + k;\n g.ld = 40 <= h ? 2 : 15 <= h ? 1 : 0;\n } else g.tc = 0;\n g.La = e;\n }\n }\n }\n c = 0;\n } else T(a, 6, \"Frame setup failed\"), (c = a.a);\n if ((c = 0 == c)) {\n if (c) {\n a.$c = 0;\n 0 < a.Aa || (a.Ic = Ne);\n b: {\n c = a.Ic;\n var k = a.za,\n d = 4 * k,\n l = 32 * k,\n m = k + 1,\n n = 0 < a.L ? k * (0 < a.Aa ? 2 : 1) : 0,\n r = (2 == a.Aa ? 2 : 1) * k;\n e = ((3 * (16 * c + Ya[a.L])) / 2) * l;\n f = null != a.Fa && 0 < a.Fa.length ? a.Kc.c * a.Kc.i : 0;\n g = d + 832 + e + f;\n if (g != g) c = 0;\n else {\n if (g > a.Vb) {\n a.Vb = 0;\n a.Ec = V(g);\n a.Fc = 0;\n if (null == a.Ec) {\n c = T(a, 1, \"no memory during frame initialization.\");\n break b;\n }\n a.Vb = g;\n }\n g = a.Ec;\n h = a.Fc;\n a.Ac = g;\n a.Bc = h;\n h += d;\n a.Gd = wa(l, Ic);\n a.Hd = 0;\n a.rb = wa(m + 1, Hc);\n a.sb = 1;\n a.wa = n ? wa(n, Xa) : null;\n a.Y = 0;\n a.D.Nb = 0;\n a.D.wa = a.wa;\n a.D.Y = a.Y;\n 0 < a.Aa && (a.D.Y += k);\n x(!0);\n a.oc = g;\n a.pc = h;\n h += 832;\n a.ya = wa(r, Kb);\n a.aa = 0;\n a.D.ya = a.ya;\n a.D.aa = a.aa;\n 2 == a.Aa && (a.D.aa += k);\n a.R = 16 * k;\n a.B = 8 * k;\n l = Ya[a.L];\n k = l * a.R;\n l = (l / 2) * a.B;\n a.sa = g;\n a.ta = h + k;\n a.qa = a.sa;\n a.ra = a.ta + 16 * c * a.R + l;\n a.Ha = a.qa;\n a.Ia = a.ra + 8 * c * a.B + l;\n a.$c = 0;\n h += e;\n a.mb = f ? g : null;\n a.nb = f ? h : null;\n x(h + f <= a.Fc + a.Vb);\n Lc(a);\n M(a.Ac, a.Bc, 0, d);\n c = 1;\n }\n }\n if (c) {\n b.ka = 0;\n b.y = a.sa;\n b.O = a.ta;\n b.f = a.qa;\n b.N = a.ra;\n b.ea = a.Ha;\n b.Vd = a.Ia;\n b.fa = a.R;\n b.Rc = a.B;\n b.F = null;\n b.J = 0;\n if (!ad) {\n for (c = -255; 255 >= c; ++c) bd[255 + c] = 0 > c ? -c : c;\n for (c = -1020; 1020 >= c; ++c)\n cd[1020 + c] = -128 > c ? -128 : 127 < c ? 127 : c;\n for (c = -112; 112 >= c; ++c)\n dd[112 + c] = -16 > c ? -16 : 15 < c ? 15 : c;\n for (c = -255; 510 >= c; ++c)\n ed[255 + c] = 0 > c ? 0 : 255 < c ? 255 : c;\n ad = 1;\n }\n Nc = Oe;\n Za = Pe;\n Nb = Qe;\n pa = Re;\n Ob = Se;\n fd = Te;\n Xc = Ue;\n Tc = Ve;\n Yc = We;\n Uc = Xe;\n Zc = Ye;\n Vc = Ze;\n $c = $e;\n Wc = af;\n Rc = gd;\n Pc = hd;\n Sc = bf;\n Qc = cf;\n W[0] = df;\n W[1] = ef;\n W[2] = ff;\n W[3] = gf;\n W[4] = hf;\n W[5] = jf;\n W[6] = kf;\n W[7] = lf;\n W[8] = mf;\n W[9] = nf;\n Y[0] = of;\n Y[1] = pf;\n Y[2] = qf;\n Y[3] = rf;\n Y[4] = sf;\n Y[5] = tf;\n Y[6] = uf;\n ka[0] = vf;\n ka[1] = wf;\n ka[2] = xf;\n ka[3] = yf;\n ka[4] = zf;\n ka[5] = Af;\n ka[6] = Bf;\n c = 1;\n } else c = 0;\n }\n c && (c = Je(a, b));\n null != b.bc && b.bc(b);\n c &= 1;\n }\n if (!c) return 0;\n a.cb = 0;\n return c;\n }\n function qa(a, b, c, d, e) {\n e = a[b + c + 32 * d] + (e >> 3);\n a[b + c + 32 * d] = e & -256 ? (0 > e ? 0 : 255) : e;\n }\n function kb(a, b, c, d, e, f) {\n qa(a, b, 0, c, d + e);\n qa(a, b, 1, c, d + f);\n qa(a, b, 2, c, d - f);\n qa(a, b, 3, c, d - e);\n }\n function da(a) {\n return ((20091 * a) >> 16) + a;\n }\n function id(a, b, c, d) {\n var e = 0,\n f;\n var g = V(16);\n for (f = 0; 4 > f; ++f) {\n var h = a[b + 0] + a[b + 8];\n var k = a[b + 0] - a[b + 8];\n var l = ((35468 * a[b + 4]) >> 16) - da(a[b + 12]);\n var m = da(a[b + 4]) + ((35468 * a[b + 12]) >> 16);\n g[e + 0] = h + m;\n g[e + 1] = k + l;\n g[e + 2] = k - l;\n g[e + 3] = h - m;\n e += 4;\n b++;\n }\n for (f = e = 0; 4 > f; ++f)\n (a = g[e + 0] + 4),\n (h = a + g[e + 8]),\n (k = a - g[e + 8]),\n (l = ((35468 * g[e + 4]) >> 16) - da(g[e + 12])),\n (m = da(g[e + 4]) + ((35468 * g[e + 12]) >> 16)),\n qa(c, d, 0, 0, h + m),\n qa(c, d, 1, 0, k + l),\n qa(c, d, 2, 0, k - l),\n qa(c, d, 3, 0, h - m),\n e++,\n (d += 32);\n }\n function Te(a, b, c, d) {\n var e = a[b + 0] + 4,\n f = (35468 * a[b + 4]) >> 16,\n g = da(a[b + 4]),\n h = (35468 * a[b + 1]) >> 16;\n a = da(a[b + 1]);\n kb(c, d, 0, e + g, a, h);\n kb(c, d, 1, e + f, a, h);\n kb(c, d, 2, e - f, a, h);\n kb(c, d, 3, e - g, a, h);\n }\n function Pe(a, b, c, d, e) {\n id(a, b, c, d);\n e && id(a, b + 16, c, d + 4);\n }\n function Qe(a, b, c, d) {\n Za(a, b + 0, c, d, 1);\n Za(a, b + 32, c, d + 128, 1);\n }\n function Re(a, b, c, d) {\n a = a[b + 0] + 4;\n var e;\n for (e = 0; 4 > e; ++e) for (b = 0; 4 > b; ++b) qa(c, d, b, e, a);\n }\n function Se(a, b, c, d) {\n a[b + 0] && pa(a, b + 0, c, d);\n a[b + 16] && pa(a, b + 16, c, d + 4);\n a[b + 32] && pa(a, b + 32, c, d + 128);\n a[b + 48] && pa(a, b + 48, c, d + 128 + 4);\n }\n function Oe(a, b, c, d) {\n var e = V(16),\n f;\n for (f = 0; 4 > f; ++f) {\n var g = a[b + 0 + f] + a[b + 12 + f];\n var h = a[b + 4 + f] + a[b + 8 + f];\n var k = a[b + 4 + f] - a[b + 8 + f];\n var l = a[b + 0 + f] - a[b + 12 + f];\n e[0 + f] = g + h;\n e[8 + f] = g - h;\n e[4 + f] = l + k;\n e[12 + f] = l - k;\n }\n for (f = 0; 4 > f; ++f)\n (a = e[0 + 4 * f] + 3),\n (g = a + e[3 + 4 * f]),\n (h = e[1 + 4 * f] + e[2 + 4 * f]),\n (k = e[1 + 4 * f] - e[2 + 4 * f]),\n (l = a - e[3 + 4 * f]),\n (c[d + 0] = (g + h) >> 3),\n (c[d + 16] = (l + k) >> 3),\n (c[d + 32] = (g - h) >> 3),\n (c[d + 48] = (l - k) >> 3),\n (d += 64);\n }\n function Pb(a, b, c) {\n var d = b - 32,\n e = R,\n f = 255 - a[d - 1],\n g;\n for (g = 0; g < c; ++g) {\n var h = e,\n k = f + a[b - 1],\n l;\n for (l = 0; l < c; ++l) a[b + l] = h[k + a[d + l]];\n b += 32;\n }\n }\n function ef(a, b) {\n Pb(a, b, 4);\n }\n function wf(a, b) {\n Pb(a, b, 8);\n }\n function pf(a, b) {\n Pb(a, b, 16);\n }\n function qf(a, b) {\n var c;\n for (c = 0; 16 > c; ++c) I(a, b + 32 * c, a, b - 32, 16);\n }\n function rf(a, b) {\n var c;\n for (c = 16; 0 < c; --c) M(a, b, a[b - 1], 16), (b += 32);\n }\n function $a(a, b, c) {\n var d;\n for (d = 0; 16 > d; ++d) M(b, c + 32 * d, a, 16);\n }\n function of(a, b) {\n var c = 16,\n d;\n for (d = 0; 16 > d; ++d) c += a[b - 1 + 32 * d] + a[b + d - 32];\n $a(c >> 5, a, b);\n }\n function sf(a, b) {\n var c = 8,\n d;\n for (d = 0; 16 > d; ++d) c += a[b - 1 + 32 * d];\n $a(c >> 4, a, b);\n }\n function tf(a, b) {\n var c = 8,\n d;\n for (d = 0; 16 > d; ++d) c += a[b + d - 32];\n $a(c >> 4, a, b);\n }\n function uf(a, b) {\n $a(128, a, b);\n }\n function z(a, b, c) {\n return (a + 2 * b + c + 2) >> 2;\n }\n function ff(a, b) {\n var c = b - 32,\n c = new Uint8Array([\n z(a[c - 1], a[c + 0], a[c + 1]),\n z(a[c + 0], a[c + 1], a[c + 2]),\n z(a[c + 1], a[c + 2], a[c + 3]),\n z(a[c + 2], a[c + 3], a[c + 4])\n ]),\n d;\n for (d = 0; 4 > d; ++d) I(a, b + 32 * d, c, 0, c.length);\n }\n function gf(a, b) {\n var c = a[b - 1],\n d = a[b - 1 + 32],\n e = a[b - 1 + 64],\n f = a[b - 1 + 96];\n ra(a, b + 0, 16843009 * z(a[b - 1 - 32], c, d));\n ra(a, b + 32, 16843009 * z(c, d, e));\n ra(a, b + 64, 16843009 * z(d, e, f));\n ra(a, b + 96, 16843009 * z(e, f, f));\n }\n function df(a, b) {\n var c = 4,\n d;\n for (d = 0; 4 > d; ++d) c += a[b + d - 32] + a[b - 1 + 32 * d];\n c >>= 3;\n for (d = 0; 4 > d; ++d) M(a, b + 32 * d, c, 4);\n }\n function hf(a, b) {\n var c = a[b - 1 + 0],\n d = a[b - 1 + 32],\n e = a[b - 1 + 64],\n f = a[b - 1 - 32],\n g = a[b + 0 - 32],\n h = a[b + 1 - 32],\n k = a[b + 2 - 32],\n l = a[b + 3 - 32];\n a[b + 0 + 96] = z(d, e, a[b - 1 + 96]);\n a[b + 1 + 96] = a[b + 0 + 64] = z(c, d, e);\n a[b + 2 + 96] = a[b + 1 + 64] = a[b + 0 + 32] = z(f, c, d);\n a[b + 3 + 96] = a[b + 2 + 64] = a[b + 1 + 32] = a[b + 0 + 0] = z(g, f, c);\n a[b + 3 + 64] = a[b + 2 + 32] = a[b + 1 + 0] = z(h, g, f);\n a[b + 3 + 32] = a[b + 2 + 0] = z(k, h, g);\n a[b + 3 + 0] = z(l, k, h);\n }\n function kf(a, b) {\n var c = a[b + 1 - 32],\n d = a[b + 2 - 32],\n e = a[b + 3 - 32],\n f = a[b + 4 - 32],\n g = a[b + 5 - 32],\n h = a[b + 6 - 32],\n k = a[b + 7 - 32];\n a[b + 0 + 0] = z(a[b + 0 - 32], c, d);\n a[b + 1 + 0] = a[b + 0 + 32] = z(c, d, e);\n a[b + 2 + 0] = a[b + 1 + 32] = a[b + 0 + 64] = z(d, e, f);\n a[b + 3 + 0] = a[b + 2 + 32] = a[b + 1 + 64] = a[b + 0 + 96] = z(e, f, g);\n a[b + 3 + 32] = a[b + 2 + 64] = a[b + 1 + 96] = z(f, g, h);\n a[b + 3 + 64] = a[b + 2 + 96] = z(g, h, k);\n a[b + 3 + 96] = z(h, k, k);\n }\n function jf(a, b) {\n var c = a[b - 1 + 0],\n d = a[b - 1 + 32],\n e = a[b - 1 + 64],\n f = a[b - 1 - 32],\n g = a[b + 0 - 32],\n h = a[b + 1 - 32],\n k = a[b + 2 - 32],\n l = a[b + 3 - 32];\n a[b + 0 + 0] = a[b + 1 + 64] = (f + g + 1) >> 1;\n a[b + 1 + 0] = a[b + 2 + 64] = (g + h + 1) >> 1;\n a[b + 2 + 0] = a[b + 3 + 64] = (h + k + 1) >> 1;\n a[b + 3 + 0] = (k + l + 1) >> 1;\n a[b + 0 + 96] = z(e, d, c);\n a[b + 0 + 64] = z(d, c, f);\n a[b + 0 + 32] = a[b + 1 + 96] = z(c, f, g);\n a[b + 1 + 32] = a[b + 2 + 96] = z(f, g, h);\n a[b + 2 + 32] = a[b + 3 + 96] = z(g, h, k);\n a[b + 3 + 32] = z(h, k, l);\n }\n function lf(a, b) {\n var c = a[b + 0 - 32],\n d = a[b + 1 - 32],\n e = a[b + 2 - 32],\n f = a[b + 3 - 32],\n g = a[b + 4 - 32],\n h = a[b + 5 - 32],\n k = a[b + 6 - 32],\n l = a[b + 7 - 32];\n a[b + 0 + 0] = (c + d + 1) >> 1;\n a[b + 1 + 0] = a[b + 0 + 64] = (d + e + 1) >> 1;\n a[b + 2 + 0] = a[b + 1 + 64] = (e + f + 1) >> 1;\n a[b + 3 + 0] = a[b + 2 + 64] = (f + g + 1) >> 1;\n a[b + 0 + 32] = z(c, d, e);\n a[b + 1 + 32] = a[b + 0 + 96] = z(d, e, f);\n a[b + 2 + 32] = a[b + 1 + 96] = z(e, f, g);\n a[b + 3 + 32] = a[b + 2 + 96] = z(f, g, h);\n a[b + 3 + 64] = z(g, h, k);\n a[b + 3 + 96] = z(h, k, l);\n }\n function nf(a, b) {\n var c = a[b - 1 + 0],\n d = a[b - 1 + 32],\n e = a[b - 1 + 64],\n f = a[b - 1 + 96];\n a[b + 0 + 0] = (c + d + 1) >> 1;\n a[b + 2 + 0] = a[b + 0 + 32] = (d + e + 1) >> 1;\n a[b + 2 + 32] = a[b + 0 + 64] = (e + f + 1) >> 1;\n a[b + 1 + 0] = z(c, d, e);\n a[b + 3 + 0] = a[b + 1 + 32] = z(d, e, f);\n a[b + 3 + 32] = a[b + 1 + 64] = z(e, f, f);\n a[b + 3 + 64] = a[b + 2 + 64] = a[b + 0 + 96] = a[b + 1 + 96] = a[\n b + 2 + 96\n ] = a[b + 3 + 96] = f;\n }\n function mf(a, b) {\n var c = a[b - 1 + 0],\n d = a[b - 1 + 32],\n e = a[b - 1 + 64],\n f = a[b - 1 + 96],\n g = a[b - 1 - 32],\n h = a[b + 0 - 32],\n k = a[b + 1 - 32],\n l = a[b + 2 - 32];\n a[b + 0 + 0] = a[b + 2 + 32] = (c + g + 1) >> 1;\n a[b + 0 + 32] = a[b + 2 + 64] = (d + c + 1) >> 1;\n a[b + 0 + 64] = a[b + 2 + 96] = (e + d + 1) >> 1;\n a[b + 0 + 96] = (f + e + 1) >> 1;\n a[b + 3 + 0] = z(h, k, l);\n a[b + 2 + 0] = z(g, h, k);\n a[b + 1 + 0] = a[b + 3 + 32] = z(c, g, h);\n a[b + 1 + 32] = a[b + 3 + 64] = z(d, c, g);\n a[b + 1 + 64] = a[b + 3 + 96] = z(e, d, c);\n a[b + 1 + 96] = z(f, e, d);\n }\n function xf(a, b) {\n var c;\n for (c = 0; 8 > c; ++c) I(a, b + 32 * c, a, b - 32, 8);\n }\n function yf(a, b) {\n var c;\n for (c = 0; 8 > c; ++c) M(a, b, a[b - 1], 8), (b += 32);\n }\n function lb(a, b, c) {\n var d;\n for (d = 0; 8 > d; ++d) M(b, c + 32 * d, a, 8);\n }\n function vf(a, b) {\n var c = 8,\n d;\n for (d = 0; 8 > d; ++d) c += a[b + d - 32] + a[b - 1 + 32 * d];\n lb(c >> 4, a, b);\n }\n function Af(a, b) {\n var c = 4,\n d;\n for (d = 0; 8 > d; ++d) c += a[b + d - 32];\n lb(c >> 3, a, b);\n }\n function zf(a, b) {\n var c = 4,\n d;\n for (d = 0; 8 > d; ++d) c += a[b - 1 + 32 * d];\n lb(c >> 3, a, b);\n }\n function Bf(a, b) {\n lb(128, a, b);\n }\n function ab(a, b, c) {\n var d = a[b - c],\n e = a[b + 0],\n f = 3 * (e - d) + Qb[1020 + a[b - 2 * c] - a[b + c]],\n g = mb[112 + ((f + 4) >> 3)];\n a[b - c] = R[255 + d + mb[112 + ((f + 3) >> 3)]];\n a[b + 0] = R[255 + e - g];\n }\n function jd(a, b, c, d) {\n var e = a[b + 0],\n f = a[b + c];\n return U[255 + a[b - 2 * c] - a[b - c]] > d || U[255 + f - e] > d;\n }\n function kd(a, b, c, d) {\n return (\n 4 * U[255 + a[b - c] - a[b + 0]] + U[255 + a[b - 2 * c] - a[b + c]] <= d\n );\n }\n function ld(a, b, c, d, e) {\n var f = a[b - 3 * c],\n g = a[b - 2 * c],\n h = a[b - c],\n k = a[b + 0],\n l = a[b + c],\n m = a[b + 2 * c],\n n = a[b + 3 * c];\n return 4 * U[255 + h - k] + U[255 + g - l] > d\n ? 0\n : U[255 + a[b - 4 * c] - f] <= e &&\n U[255 + f - g] <= e &&\n U[255 + g - h] <= e &&\n U[255 + n - m] <= e &&\n U[255 + m - l] <= e &&\n U[255 + l - k] <= e;\n }\n function gd(a, b, c, d) {\n var e = 2 * d + 1;\n for (d = 0; 16 > d; ++d) kd(a, b + d, c, e) && ab(a, b + d, c);\n }\n function hd(a, b, c, d) {\n var e = 2 * d + 1;\n for (d = 0; 16 > d; ++d) kd(a, b + d * c, 1, e) && ab(a, b + d * c, 1);\n }\n function bf(a, b, c, d) {\n var e;\n for (e = 3; 0 < e; --e) (b += 4 * c), gd(a, b, c, d);\n }\n function cf(a, b, c, d) {\n var e;\n for (e = 3; 0 < e; --e) (b += 4), hd(a, b, c, d);\n }\n function ea(a, b, c, d, e, f, g, h) {\n for (f = 2 * f + 1; 0 < e--; ) {\n if (ld(a, b, c, f, g))\n if (jd(a, b, c, h)) ab(a, b, c);\n else {\n var k = a,\n l = b,\n m = c,\n n = k[l - 2 * m],\n r = k[l - m],\n q = k[l + 0],\n t = k[l + m],\n v = k[l + 2 * m],\n p = Qb[1020 + 3 * (q - r) + Qb[1020 + n - t]],\n u = (27 * p + 63) >> 7,\n w = (18 * p + 63) >> 7,\n p = (9 * p + 63) >> 7;\n k[l - 3 * m] = R[255 + k[l - 3 * m] + p];\n k[l - 2 * m] = R[255 + n + w];\n k[l - m] = R[255 + r + u];\n k[l + 0] = R[255 + q - u];\n k[l + m] = R[255 + t - w];\n k[l + 2 * m] = R[255 + v - p];\n }\n b += d;\n }\n }\n function Fa(a, b, c, d, e, f, g, h) {\n for (f = 2 * f + 1; 0 < e--; ) {\n if (ld(a, b, c, f, g))\n if (jd(a, b, c, h)) ab(a, b, c);\n else {\n var k = a,\n l = b,\n m = c,\n n = k[l - m],\n r = k[l + 0],\n q = k[l + m],\n t = 3 * (r - n),\n v = mb[112 + ((t + 4) >> 3)],\n t = mb[112 + ((t + 3) >> 3)],\n p = (v + 1) >> 1;\n k[l - 2 * m] = R[255 + k[l - 2 * m] + p];\n k[l - m] = R[255 + n + t];\n k[l + 0] = R[255 + r - v];\n k[l + m] = R[255 + q - p];\n }\n b += d;\n }\n }\n function Ue(a, b, c, d, e, f) {\n ea(a, b, c, 1, 16, d, e, f);\n }\n function Ve(a, b, c, d, e, f) {\n ea(a, b, 1, c, 16, d, e, f);\n }\n function Ye(a, b, c, d, e, f) {\n var g;\n for (g = 3; 0 < g; --g) (b += 4 * c), Fa(a, b, c, 1, 16, d, e, f);\n }\n function Ze(a, b, c, d, e, f) {\n var g;\n for (g = 3; 0 < g; --g) (b += 4), Fa(a, b, 1, c, 16, d, e, f);\n }\n function We(a, b, c, d, e, f, g, h) {\n ea(a, b, e, 1, 8, f, g, h);\n ea(c, d, e, 1, 8, f, g, h);\n }\n function Xe(a, b, c, d, e, f, g, h) {\n ea(a, b, 1, e, 8, f, g, h);\n ea(c, d, 1, e, 8, f, g, h);\n }\n function $e(a, b, c, d, e, f, g, h) {\n Fa(a, b + 4 * e, e, 1, 8, f, g, h);\n Fa(c, d + 4 * e, e, 1, 8, f, g, h);\n }\n function af(a, b, c, d, e, f, g, h) {\n Fa(a, b + 4, 1, e, 8, f, g, h);\n Fa(c, d + 4, 1, e, 8, f, g, h);\n }\n function Cf() {\n this.ba = new Cb();\n this.ec = [];\n this.cc = [];\n this.Mc = [];\n this.Dc = this.Nc = this.dc = this.fc = 0;\n this.Oa = new Ud();\n this.memory = 0;\n this.Ib = \"OutputFunc\";\n this.Jb = \"OutputAlphaFunc\";\n this.Nd = \"OutputRowFunc\";\n }\n function md() {\n this.data = [];\n this.offset = this.kd = this.ha = this.w = 0;\n this.na = [];\n this.xa = this.gb = this.Ja = this.Sa = this.P = 0;\n }\n function Df() {\n this.nc = this.Ea = this.b = this.hc = 0;\n this.K = [];\n this.w = 0;\n }\n function Ef() {\n this.ua = 0;\n this.Wa = new ac();\n this.vb = new ac();\n this.md = this.xc = this.wc = 0;\n this.vc = [];\n this.Wb = 0;\n this.Ya = new Ub();\n this.yc = new O();\n }\n function je() {\n this.xb = this.a = 0;\n this.l = new Oa();\n this.ca = new Cb();\n this.V = [];\n this.Ba = 0;\n this.Ta = [];\n this.Ua = 0;\n this.m = new Ra();\n this.Pb = 0;\n this.wd = new Ra();\n this.Ma = this.$ = this.C = this.i = this.c = this.xd = 0;\n this.s = new Ef();\n this.ab = 0;\n this.gc = wa(4, Df);\n this.Oc = 0;\n }\n function Ff() {\n this.Lc = this.Z = this.$a = this.i = this.c = 0;\n this.l = new Oa();\n this.ic = 0;\n this.ca = [];\n this.tb = 0;\n this.qd = null;\n this.rd = 0;\n }\n function Rb(a, b, c, d, e, f, g) {\n a = null == a ? 0 : a[b + 0];\n for (b = 0; b < g; ++b) (e[f + b] = (a + c[d + b]) & 255), (a = e[f + b]);\n }\n function Gf(a, b, c, d, e, f, g) {\n if (null == a) Rb(null, null, c, d, e, f, g);\n else {\n var h;\n for (h = 0; h < g; ++h) e[f + h] = (a[b + h] + c[d + h]) & 255;\n }\n }\n function Hf(a, b, c, d, e, f, g) {\n if (null == a) Rb(null, null, c, d, e, f, g);\n else {\n var h = a[b + 0],\n k = h,\n l = h,\n m;\n for (m = 0; m < g; ++m)\n (h = a[b + m]),\n (k = l + h - k),\n (l = (c[d + m] + (k & -256 ? (0 > k ? 0 : 255) : k)) & 255),\n (k = h),\n (e[f + m] = l);\n }\n }\n function Le(a, b, c, d) {\n var e = b.width,\n f = b.o;\n x(null != a && null != b);\n if (0 > c || 0 >= d || c + d > f) return null;\n if (!a.Cc) {\n if (null == a.ga) {\n a.ga = new Ff();\n var g;\n (g = null == a.ga) ||\n ((g = b.width * b.o),\n x(0 == a.Gb.length),\n (a.Gb = V(g)),\n (a.Uc = 0),\n null == a.Gb\n ? (g = 0)\n : ((a.mb = a.Gb), (a.nb = a.Uc), (a.rc = null), (g = 1)),\n (g = !g));\n if (!g) {\n g = a.ga;\n var h = a.Fa,\n k = a.P,\n l = a.qc,\n m = a.mb,\n n = a.nb,\n r = k + 1,\n q = l - 1,\n t = g.l;\n x(null != h && null != m && null != b);\n ia[0] = null;\n ia[1] = Rb;\n ia[2] = Gf;\n ia[3] = Hf;\n g.ca = m;\n g.tb = n;\n g.c = b.width;\n g.i = b.height;\n x(0 < g.c && 0 < g.i);\n if (1 >= l) b = 0;\n else if (\n ((g.$a = (h[k + 0] >> 0) & 3),\n (g.Z = (h[k + 0] >> 2) & 3),\n (g.Lc = (h[k + 0] >> 4) & 3),\n (k = (h[k + 0] >> 6) & 3),\n 0 > g.$a || 1 < g.$a || 4 <= g.Z || 1 < g.Lc || k)\n )\n b = 0;\n else if (\n ((t.put = kc),\n (t.ac = gc),\n (t.bc = lc),\n (t.ma = g),\n (t.width = b.width),\n (t.height = b.height),\n (t.Da = b.Da),\n (t.v = b.v),\n (t.va = b.va),\n (t.j = b.j),\n (t.o = b.o),\n g.$a)\n )\n b: {\n x(1 == g.$a), (b = Bc());\n c: for (;;) {\n if (null == b) {\n b = 0;\n break b;\n }\n x(null != g);\n g.mc = b;\n b.c = g.c;\n b.i = g.i;\n b.l = g.l;\n b.l.ma = g;\n b.l.width = g.c;\n b.l.height = g.i;\n b.a = 0;\n cb(b.m, h, r, q);\n if (!rb(g.c, g.i, 1, b, null)) break c;\n 1 == b.ab && 3 == b.gc[0].hc && yc(b.s)\n ? ((g.ic = 1),\n (h = b.c * b.i),\n (b.Ta = null),\n (b.Ua = 0),\n (b.V = V(h)),\n (b.Ba = 0),\n null == b.V ? ((b.a = 1), (b = 0)) : (b = 1))\n : ((g.ic = 0), (b = Ec(b, g.c)));\n if (!b) break c;\n b = 1;\n break b;\n }\n g.mc = null;\n b = 0;\n }\n else b = q >= g.c * g.i;\n g = !b;\n }\n if (g) return null;\n 1 != a.ga.Lc ? (a.Ga = 0) : (d = f - c);\n }\n x(null != a.ga);\n x(c + d <= f);\n a: {\n h = a.ga;\n b = h.c;\n f = h.l.o;\n if (0 == h.$a) {\n r = a.rc;\n q = a.Vc;\n t = a.Fa;\n k = a.P + 1 + c * b;\n l = a.mb;\n m = a.nb + c * b;\n x(k <= a.P + a.qc);\n if (0 != h.Z)\n for (x(null != ia[h.Z]), g = 0; g < d; ++g)\n ia[h.Z](r, q, t, k, l, m, b),\n (r = l),\n (q = m),\n (m += b),\n (k += b);\n else\n for (g = 0; g < d; ++g)\n I(l, m, t, k, b), (r = l), (q = m), (m += b), (k += b);\n a.rc = r;\n a.Vc = q;\n } else {\n x(null != h.mc);\n b = c + d;\n g = h.mc;\n x(null != g);\n x(b <= g.i);\n if (g.C >= b) b = 1;\n else if ((h.ic || Aa(), h.ic)) {\n var h = g.V,\n r = g.Ba,\n q = g.c,\n v = g.i,\n t = 1,\n k = g.$ / q,\n l = g.$ % q,\n m = g.m,\n n = g.s,\n p = g.$,\n u = q * v,\n w = q * b,\n y = n.wc,\n A = p < w ? ha(n, l, k) : null;\n x(p <= u);\n x(b <= v);\n x(yc(n));\n c: for (;;) {\n for (; !m.h && p < w; ) {\n l & y || (A = ha(n, l, k));\n x(null != A);\n Sa(m);\n v = ua(A.G[0], A.H[0], m);\n if (256 > v)\n (h[r + p] = v),\n ++p,\n ++l,\n l >= q && ((l = 0), ++k, k <= b && !(k % 16) && Ib(g, k));\n else if (280 > v) {\n var v = ib(v - 256, m);\n var E = ua(A.G[4], A.H[4], m);\n Sa(m);\n E = ib(E, m);\n E = nc(q, E);\n if (p >= E && u - p >= v) {\n var B;\n for (B = 0; B < v; ++B) h[r + p + B] = h[r + p + B - E];\n } else {\n t = 0;\n break c;\n }\n p += v;\n for (l += v; l >= q; )\n (l -= q), ++k, k <= b && !(k % 16) && Ib(g, k);\n p < w && l & y && (A = ha(n, l, k));\n } else {\n t = 0;\n break c;\n }\n x(m.h == db(m));\n }\n Ib(g, k > b ? b : k);\n break c;\n }\n !t || (m.h && p < u) ? ((t = 0), (g.a = m.h ? 5 : 3)) : (g.$ = p);\n b = t;\n } else b = Jb(g, g.V, g.Ba, g.c, g.i, b, se);\n if (!b) {\n d = 0;\n break a;\n }\n }\n c + d >= f && (a.Cc = 1);\n d = 1;\n }\n if (!d) return null;\n if (\n a.Cc &&\n ((d = a.ga), null != d && (d.mc = null), (a.ga = null), 0 < a.Ga)\n )\n return alert(\"todo:WebPDequantizeLevels\"), null;\n }\n return a.nb + c * e;\n }\n function If(a, b, c, d, e, f) {\n for (; 0 < e--; ) {\n var g = a,\n h = b + (c ? 1 : 0),\n k = a,\n l = b + (c ? 0 : 3),\n m;\n for (m = 0; m < d; ++m) {\n var n = k[l + 4 * m];\n 255 != n &&\n ((n *= 32897),\n (g[h + 4 * m + 0] = (g[h + 4 * m + 0] * n) >> 23),\n (g[h + 4 * m + 1] = (g[h + 4 * m + 1] * n) >> 23),\n (g[h + 4 * m + 2] = (g[h + 4 * m + 2] * n) >> 23));\n }\n b += f;\n }\n }\n function Jf(a, b, c, d, e) {\n for (; 0 < d--; ) {\n var f;\n for (f = 0; f < c; ++f) {\n var g = a[b + 2 * f + 0],\n h = a[b + 2 * f + 1],\n k = h & 15,\n l = 4369 * k,\n h = (((h & 240) | (h >> 4)) * l) >> 16;\n a[b + 2 * f + 0] =\n (((((g & 240) | (g >> 4)) * l) >> 16) & 240) |\n ((((((g & 15) | (g << 4)) * l) >> 16) >> 4) & 15);\n a[b + 2 * f + 1] = (h & 240) | k;\n }\n b += e;\n }\n }\n function Kf(a, b, c, d, e, f, g, h) {\n var k = 255,\n l,\n m;\n for (m = 0; m < e; ++m) {\n for (l = 0; l < d; ++l) {\n var n = a[b + l];\n f[g + 4 * l] = n;\n k &= n;\n }\n b += c;\n g += h;\n }\n return 255 != k;\n }\n function Lf(a, b, c, d, e) {\n var f;\n for (f = 0; f < e; ++f) c[d + f] = a[b + f] >> 8;\n }\n function Aa() {\n za = If;\n vc = Jf;\n fc = Kf;\n Fc = Lf;\n }\n function va(a, b, c) {\n self[a] = function(a, e, f, g, h, k, l, m, n, r, q, t, v, p, u, w, y) {\n var d,\n E = (y - 1) >> 1;\n var B = h[k + 0] | (l[m + 0] << 16);\n var C = n[r + 0] | (q[t + 0] << 16);\n x(null != a);\n var z = (3 * B + C + 131074) >> 2;\n b(a[e + 0], z & 255, z >> 16, v, p);\n null != f &&\n ((z = (3 * C + B + 131074) >> 2),\n b(f[g + 0], z & 255, z >> 16, u, w));\n for (d = 1; d <= E; ++d) {\n var D = h[k + d] | (l[m + d] << 16);\n var G = n[r + d] | (q[t + d] << 16);\n var F = B + D + C + G + 524296;\n var H = (F + 2 * (D + C)) >> 3;\n F = (F + 2 * (B + G)) >> 3;\n z = (H + B) >> 1;\n B = (F + D) >> 1;\n b(a[e + 2 * d - 1], z & 255, z >> 16, v, p + (2 * d - 1) * c);\n b(a[e + 2 * d - 0], B & 255, B >> 16, v, p + (2 * d - 0) * c);\n null != f &&\n ((z = (F + C) >> 1),\n (B = (H + G) >> 1),\n b(f[g + 2 * d - 1], z & 255, z >> 16, u, w + (2 * d - 1) * c),\n b(f[g + 2 * d + 0], B & 255, B >> 16, u, w + (2 * d + 0) * c));\n B = D;\n C = G;\n }\n y & 1 ||\n ((z = (3 * B + C + 131074) >> 2),\n b(a[e + y - 1], z & 255, z >> 16, v, p + (y - 1) * c),\n null != f &&\n ((z = (3 * C + B + 131074) >> 2),\n b(f[g + y - 1], z & 255, z >> 16, u, w + (y - 1) * c)));\n };\n }\n function ic() {\n P[Ca] = Mf;\n P[Ua] = nd;\n P[tc] = Nf;\n P[Va] = od;\n P[ya] = pd;\n P[Db] = qd;\n P[wc] = Of;\n P[zb] = nd;\n P[Ab] = od;\n P[Ja] = pd;\n P[Bb] = qd;\n }\n function Sb(a) {\n return a & ~Pf ? (0 > a ? 0 : 255) : a >> rd;\n }\n function bb(a, b) {\n return Sb(((19077 * a) >> 8) + ((26149 * b) >> 8) - 14234);\n }\n function nb(a, b, c) {\n return Sb(\n ((19077 * a) >> 8) - ((6419 * b) >> 8) - ((13320 * c) >> 8) + 8708\n );\n }\n function Pa(a, b) {\n return Sb(((19077 * a) >> 8) + ((33050 * b) >> 8) - 17685);\n }\n function Ga(a, b, c, d, e) {\n d[e + 0] = bb(a, c);\n d[e + 1] = nb(a, b, c);\n d[e + 2] = Pa(a, b);\n }\n function Tb(a, b, c, d, e) {\n d[e + 0] = Pa(a, b);\n d[e + 1] = nb(a, b, c);\n d[e + 2] = bb(a, c);\n }\n function sd(a, b, c, d, e) {\n var f = nb(a, b, c);\n b = ((f << 3) & 224) | (Pa(a, b) >> 3);\n d[e + 0] = (bb(a, c) & 248) | (f >> 5);\n d[e + 1] = b;\n }\n function td(a, b, c, d, e) {\n var f = (Pa(a, b) & 240) | 15;\n d[e + 0] = (bb(a, c) & 240) | (nb(a, b, c) >> 4);\n d[e + 1] = f;\n }\n function ud(a, b, c, d, e) {\n d[e + 0] = 255;\n Ga(a, b, c, d, e + 1);\n }\n function vd(a, b, c, d, e) {\n Tb(a, b, c, d, e);\n d[e + 3] = 255;\n }\n function wd(a, b, c, d, e) {\n Ga(a, b, c, d, e);\n d[e + 3] = 255;\n }\n function ga(a, b) {\n return 0 > a ? 0 : a > b ? b : a;\n }\n function la(a, b, c) {\n self[a] = function(a, e, f, g, h, k, l, m, n) {\n for (var d = m + (n & -2) * c; m != d; )\n b(a[e + 0], f[g + 0], h[k + 0], l, m),\n b(a[e + 1], f[g + 0], h[k + 0], l, m + c),\n (e += 2),\n ++g,\n ++k,\n (m += 2 * c);\n n & 1 && b(a[e + 0], f[g + 0], h[k + 0], l, m);\n };\n }\n function xd(a, b, c) {\n return 0 == c ? (0 == a ? (0 == b ? 6 : 5) : 0 == b ? 4 : 0) : c;\n }\n function yd(a, b, c, d, e) {\n switch (a >>> 30) {\n case 3:\n Za(b, c, d, e, 0);\n break;\n case 2:\n fd(b, c, d, e);\n break;\n case 1:\n pa(b, c, d, e);\n }\n }\n function Oc(a, b) {\n var c,\n d,\n e = b.M,\n f = b.Nb,\n g = a.oc,\n h = a.pc + 40,\n k = a.oc,\n l = a.pc + 584,\n m = a.oc,\n n = a.pc + 600;\n for (c = 0; 16 > c; ++c) g[h + 32 * c - 1] = 129;\n for (c = 0; 8 > c; ++c)\n (k[l + 32 * c - 1] = 129), (m[n + 32 * c - 1] = 129);\n 0 < e\n ? (g[h - 1 - 32] = k[l - 1 - 32] = m[n - 1 - 32] = 129)\n : (M(g, h - 32 - 1, 127, 21),\n M(k, l - 32 - 1, 127, 9),\n M(m, n - 32 - 1, 127, 9));\n for (d = 0; d < a.za; ++d) {\n var r = b.ya[b.aa + d];\n if (0 < d) {\n for (c = -1; 16 > c; ++c) I(g, h + 32 * c - 4, g, h + 32 * c + 12, 4);\n for (c = -1; 8 > c; ++c)\n I(k, l + 32 * c - 4, k, l + 32 * c + 4, 4),\n I(m, n + 32 * c - 4, m, n + 32 * c + 4, 4);\n }\n var q = a.Gd,\n t = a.Hd + d,\n v = r.ad,\n p = r.Hc;\n 0 < e &&\n (I(g, h - 32, q[t].y, 0, 16),\n I(k, l - 32, q[t].f, 0, 8),\n I(m, n - 32, q[t].ea, 0, 8));\n if (r.Za) {\n var u = g;\n var w = h - 32 + 16;\n 0 < e &&\n (d >= a.za - 1\n ? M(u, w, q[t].y[15], 4)\n : I(u, w, q[t + 1].y, 0, 4));\n for (c = 0; 4 > c; c++)\n u[w + 128 + c] = u[w + 256 + c] = u[w + 384 + c] = u[w + 0 + c];\n for (c = 0; 16 > c; ++c, p <<= 2)\n (u = g), (w = h + zd[c]), W[r.Ob[c]](u, w), yd(p, v, 16 * +c, u, w);\n } else if (((u = xd(d, e, r.Ob[0])), Y[u](g, h), 0 != p))\n for (c = 0; 16 > c; ++c, p <<= 2) yd(p, v, 16 * +c, g, h + zd[c]);\n c = r.Gc;\n u = xd(d, e, r.Dd);\n ka[u](k, l);\n ka[u](m, n);\n r = c >> 0;\n p = v;\n u = k;\n w = l;\n r & 255 && (r & 170 ? Nb(p, 256, u, w) : Ob(p, 256, u, w));\n c >>= 8;\n r = m;\n p = n;\n c & 255 && (c & 170 ? Nb(v, 320, r, p) : Ob(v, 320, r, p));\n e < a.Ub - 1 &&\n (I(q[t].y, 0, g, h + 480, 16),\n I(q[t].f, 0, k, l + 224, 8),\n I(q[t].ea, 0, m, n + 224, 8));\n c = 8 * f * a.B;\n q = a.sa;\n t = a.ta + 16 * d + 16 * f * a.R;\n v = a.qa;\n r = a.ra + 8 * d + c;\n p = a.Ha;\n u = a.Ia + 8 * d + c;\n for (c = 0; 16 > c; ++c) I(q, t + c * a.R, g, h + 32 * c, 16);\n for (c = 0; 8 > c; ++c)\n I(v, r + c * a.B, k, l + 32 * c, 8),\n I(p, u + c * a.B, m, n + 32 * c, 8);\n }\n }\n function Ad(a, b, c, d, e, f, g, h, k) {\n var l = [0],\n m = [0],\n n = 0,\n r = null != k ? k.kd : 0,\n q = null != k ? k : new md();\n if (null == a || 12 > c) return 7;\n q.data = a;\n q.w = b;\n q.ha = c;\n b = [b];\n c = [c];\n q.gb = [q.gb];\n a: {\n var t = b;\n var v = c;\n var p = q.gb;\n x(null != a);\n x(null != v);\n x(null != p);\n p[0] = 0;\n if (12 <= v[0] && !fa(a, t[0], \"RIFF\")) {\n if (fa(a, t[0] + 8, \"WEBP\")) {\n p = 3;\n break a;\n }\n var u = Ha(a, t[0] + 4);\n if (12 > u || 4294967286 < u) {\n p = 3;\n break a;\n }\n if (r && u > v[0] - 8) {\n p = 7;\n break a;\n }\n p[0] = u;\n t[0] += 12;\n v[0] -= 12;\n }\n p = 0;\n }\n if (0 != p) return p;\n u = 0 < q.gb[0];\n for (c = c[0]; ; ) {\n t = [0];\n n = [n];\n a: {\n var w = a;\n v = b;\n p = c;\n var y = n,\n A = l,\n z = m,\n B = t;\n y[0] = 0;\n if (8 > p[0]) p = 7;\n else {\n if (!fa(w, v[0], \"VP8X\")) {\n if (10 != Ha(w, v[0] + 4)) {\n p = 3;\n break a;\n }\n if (18 > p[0]) {\n p = 7;\n break a;\n }\n var C = Ha(w, v[0] + 8);\n var D = 1 + Yb(w, v[0] + 12);\n w = 1 + Yb(w, v[0] + 15);\n if (2147483648 <= D * w) {\n p = 3;\n break a;\n }\n null != B && (B[0] = C);\n null != A && (A[0] = D);\n null != z && (z[0] = w);\n v[0] += 18;\n p[0] -= 18;\n y[0] = 1;\n }\n p = 0;\n }\n }\n n = n[0];\n t = t[0];\n if (0 != p) return p;\n v = !!(t & 2);\n if (!u && n) return 3;\n null != f && (f[0] = !!(t & 16));\n null != g && (g[0] = v);\n null != h && (h[0] = 0);\n g = l[0];\n t = m[0];\n if (n && v && null == k) {\n p = 0;\n break;\n }\n if (4 > c) {\n p = 7;\n break;\n }\n if ((u && n) || (!u && !n && !fa(a, b[0], \"ALPH\"))) {\n c = [c];\n q.na = [q.na];\n q.P = [q.P];\n q.Sa = [q.Sa];\n a: {\n C = a;\n p = b;\n u = c;\n var y = q.gb,\n A = q.na,\n z = q.P,\n B = q.Sa;\n D = 22;\n x(null != C);\n x(null != u);\n w = p[0];\n var F = u[0];\n x(null != A);\n x(null != B);\n A[0] = null;\n z[0] = null;\n for (B[0] = 0; ; ) {\n p[0] = w;\n u[0] = F;\n if (8 > F) {\n p = 7;\n break a;\n }\n var G = Ha(C, w + 4);\n if (4294967286 < G) {\n p = 3;\n break a;\n }\n var H = (8 + G + 1) & -2;\n D += H;\n if (0 < y && D > y) {\n p = 3;\n break a;\n }\n if (!fa(C, w, \"VP8 \") || !fa(C, w, \"VP8L\")) {\n p = 0;\n break a;\n }\n if (F[0] < H) {\n p = 7;\n break a;\n }\n fa(C, w, \"ALPH\") || ((A[0] = C), (z[0] = w + 8), (B[0] = G));\n w += H;\n F -= H;\n }\n }\n c = c[0];\n q.na = q.na[0];\n q.P = q.P[0];\n q.Sa = q.Sa[0];\n if (0 != p) break;\n }\n c = [c];\n q.Ja = [q.Ja];\n q.xa = [q.xa];\n a: if (\n ((y = a),\n (p = b),\n (u = c),\n (A = q.gb[0]),\n (z = q.Ja),\n (B = q.xa),\n (C = p[0]),\n (w = !fa(y, C, \"VP8 \")),\n (D = !fa(y, C, \"VP8L\")),\n x(null != y),\n x(null != u),\n x(null != z),\n x(null != B),\n 8 > u[0])\n )\n p = 7;\n else {\n if (w || D) {\n y = Ha(y, C + 4);\n if (12 <= A && y > A - 12) {\n p = 3;\n break a;\n }\n if (r && y > u[0] - 8) {\n p = 7;\n break a;\n }\n z[0] = y;\n p[0] += 8;\n u[0] -= 8;\n B[0] = D;\n } else\n (B[0] = 5 <= u[0] && 47 == y[C + 0] && !(y[C + 4] >> 5)),\n (z[0] = u[0]);\n p = 0;\n }\n c = c[0];\n q.Ja = q.Ja[0];\n q.xa = q.xa[0];\n b = b[0];\n if (0 != p) break;\n if (4294967286 < q.Ja) return 3;\n null == h || v || (h[0] = q.xa ? 2 : 1);\n g = [g];\n t = [t];\n if (q.xa) {\n if (5 > c) {\n p = 7;\n break;\n }\n h = g;\n r = t;\n v = f;\n null == a || 5 > c\n ? (a = 0)\n : 5 <= c && 47 == a[b + 0] && !(a[b + 4] >> 5)\n ? ((u = [0]),\n (y = [0]),\n (A = [0]),\n (z = new Ra()),\n cb(z, a, b, c),\n mc(z, u, y, A)\n ? (null != h && (h[0] = u[0]),\n null != r && (r[0] = y[0]),\n null != v && (v[0] = A[0]),\n (a = 1))\n : (a = 0))\n : (a = 0);\n } else {\n if (10 > c) {\n p = 7;\n break;\n }\n h = t;\n null == a || 10 > c || !Jc(a, b + 3, c - 3)\n ? (a = 0)\n : ((r = a[b + 0] | (a[b + 1] << 8) | (a[b + 2] << 16)),\n (v = ((a[b + 7] << 8) | a[b + 6]) & 16383),\n (a = ((a[b + 9] << 8) | a[b + 8]) & 16383),\n r & 1 ||\n 3 < ((r >> 1) & 7) ||\n !((r >> 4) & 1) ||\n r >> 5 >= q.Ja ||\n !v ||\n !a\n ? (a = 0)\n : (g && (g[0] = v), h && (h[0] = a), (a = 1)));\n }\n if (!a) return 3;\n g = g[0];\n t = t[0];\n if (n && (l[0] != g || m[0] != t)) return 3;\n null != k &&\n ((k[0] = q),\n (k.offset = b - k.w),\n x(4294967286 > b - k.w),\n x(k.offset == k.ha - c));\n break;\n }\n return 0 == p || (7 == p && n && null == k)\n ? (null != f && (f[0] |= null != q.na && 0 < q.na.length),\n null != d && (d[0] = g),\n null != e && (e[0] = t),\n 0)\n : p;\n }\n function hc(a, b, c) {\n var d = b.width,\n e = b.height,\n f = 0,\n g = 0,\n h = d,\n k = e;\n b.Da = null != a && 0 < a.Da;\n if (\n b.Da &&\n ((h = a.cd),\n (k = a.bd),\n (f = a.v),\n (g = a.j),\n 11 > c || ((f &= -2), (g &= -2)),\n 0 > f || 0 > g || 0 >= h || 0 >= k || f + h > d || g + k > e)\n )\n return 0;\n b.v = f;\n b.j = g;\n b.va = f + h;\n b.o = g + k;\n b.U = h;\n b.T = k;\n b.da = null != a && 0 < a.da;\n if (b.da) {\n c = [a.ib];\n f = [a.hb];\n if (!bc(h, k, c, f)) return 0;\n b.ib = c[0];\n b.hb = f[0];\n }\n b.ob = null != a && a.ob;\n b.Kb = null == a || !a.Sd;\n b.da && ((b.ob = b.ib < (3 * d) / 4 && b.hb < (3 * e) / 4), (b.Kb = 0));\n return 1;\n }\n function Bd(a) {\n if (null == a) return 2;\n if (11 > a.S) {\n var b = a.f.RGBA;\n b.fb += (a.height - 1) * b.A;\n b.A = -b.A;\n } else\n (b = a.f.kb),\n (a = a.height),\n (b.O += (a - 1) * b.fa),\n (b.fa = -b.fa),\n (b.N += ((a - 1) >> 1) * b.Ab),\n (b.Ab = -b.Ab),\n (b.W += ((a - 1) >> 1) * b.Db),\n (b.Db = -b.Db),\n null != b.F && ((b.J += (a - 1) * b.lb), (b.lb = -b.lb));\n return 0;\n }\n function Cd(a, b, c, d) {\n if (null == d || 0 >= a || 0 >= b) return 2;\n if (null != c) {\n if (c.Da) {\n var e = c.cd,\n f = c.bd,\n g = c.v & -2,\n h = c.j & -2;\n if (0 > g || 0 > h || 0 >= e || 0 >= f || g + e > a || h + f > b)\n return 2;\n a = e;\n b = f;\n }\n if (c.da) {\n e = [c.ib];\n f = [c.hb];\n if (!bc(a, b, e, f)) return 2;\n a = e[0];\n b = f[0];\n }\n }\n d.width = a;\n d.height = b;\n a: {\n var k = d.width;\n var l = d.height;\n a = d.S;\n if (0 >= k || 0 >= l || !(a >= Ca && 13 > a)) a = 2;\n else {\n if (0 >= d.Rd && null == d.sd) {\n var g = (f = e = b = 0),\n h = k * Dd[a],\n m = h * l;\n 11 > a ||\n ((b = (k + 1) / 2),\n (f = ((l + 1) / 2) * b),\n 12 == a && ((e = k), (g = e * l)));\n l = V(m + 2 * f + g);\n if (null == l) {\n a = 1;\n break a;\n }\n d.sd = l;\n 11 > a\n ? ((k = d.f.RGBA),\n (k.eb = l),\n (k.fb = 0),\n (k.A = h),\n (k.size = m))\n : ((k = d.f.kb),\n (k.y = l),\n (k.O = 0),\n (k.fa = h),\n (k.Fd = m),\n (k.f = l),\n (k.N = 0 + m),\n (k.Ab = b),\n (k.Cd = f),\n (k.ea = l),\n (k.W = 0 + m + f),\n (k.Db = b),\n (k.Ed = f),\n 12 == a && ((k.F = l), (k.J = 0 + m + 2 * f)),\n (k.Tc = g),\n (k.lb = e));\n }\n b = 1;\n e = d.S;\n f = d.width;\n g = d.height;\n if (e >= Ca && 13 > e)\n if (11 > e)\n (a = d.f.RGBA),\n (h = Math.abs(a.A)),\n (b &= h * (g - 1) + f <= a.size),\n (b &= h >= f * Dd[e]),\n (b &= null != a.eb);\n else {\n a = d.f.kb;\n h = (f + 1) / 2;\n m = (g + 1) / 2;\n k = Math.abs(a.fa);\n var l = Math.abs(a.Ab),\n n = Math.abs(a.Db),\n r = Math.abs(a.lb),\n q = r * (g - 1) + f;\n b &= k * (g - 1) + f <= a.Fd;\n b &= l * (m - 1) + h <= a.Cd;\n b &= n * (m - 1) + h <= a.Ed;\n b = b & (k >= f) & (l >= h) & (n >= h);\n b &= null != a.y;\n b &= null != a.f;\n b &= null != a.ea;\n 12 == e && ((b &= r >= f), (b &= q <= a.Tc), (b &= null != a.F));\n }\n else b = 0;\n a = b ? 0 : 2;\n }\n }\n if (0 != a) return a;\n null != c && c.fd && (a = Bd(d));\n return a;\n }\n var xb = 64,\n Hd = [\n 0,\n 1,\n 3,\n 7,\n 15,\n 31,\n 63,\n 127,\n 255,\n 511,\n 1023,\n 2047,\n 4095,\n 8191,\n 16383,\n 32767,\n 65535,\n 131071,\n 262143,\n 524287,\n 1048575,\n 2097151,\n 4194303,\n 8388607,\n 16777215\n ],\n Gd = 24,\n ob = 32,\n Xb = 8,\n Id = [\n 0,\n 0,\n 1,\n 1,\n 2,\n 2,\n 2,\n 2,\n 3,\n 3,\n 3,\n 3,\n 3,\n 3,\n 3,\n 3,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7\n ];\n X(\"Predictor0\", \"PredictorAdd0\");\n self.Predictor0 = function() {\n return 4278190080;\n };\n self.Predictor1 = function(a) {\n return a;\n };\n self.Predictor2 = function(a, b, c) {\n return b[c + 0];\n };\n self.Predictor3 = function(a, b, c) {\n return b[c + 1];\n };\n self.Predictor4 = function(a, b, c) {\n return b[c - 1];\n };\n self.Predictor5 = function(a, b, c) {\n return aa(aa(a, b[c + 1]), b[c + 0]);\n };\n self.Predictor6 = function(a, b, c) {\n return aa(a, b[c - 1]);\n };\n self.Predictor7 = function(a, b, c) {\n return aa(a, b[c + 0]);\n };\n self.Predictor8 = function(a, b, c) {\n return aa(b[c - 1], b[c + 0]);\n };\n self.Predictor9 = function(a, b, c) {\n return aa(b[c + 0], b[c + 1]);\n };\n self.Predictor10 = function(a, b, c) {\n return aa(aa(a, b[c - 1]), aa(b[c + 0], b[c + 1]));\n };\n self.Predictor11 = function(a, b, c) {\n var d = b[c + 0];\n b = b[c - 1];\n return 0 >=\n Ia((d >> 24) & 255, (a >> 24) & 255, (b >> 24) & 255) +\n Ia((d >> 16) & 255, (a >> 16) & 255, (b >> 16) & 255) +\n Ia((d >> 8) & 255, (a >> 8) & 255, (b >> 8) & 255) +\n Ia(d & 255, a & 255, b & 255)\n ? d\n : a;\n };\n self.Predictor12 = function(a, b, c) {\n var d = b[c + 0];\n b = b[c - 1];\n return (\n ((sa(((a >> 24) & 255) + ((d >> 24) & 255) - ((b >> 24) & 255)) << 24) |\n (sa(((a >> 16) & 255) + ((d >> 16) & 255) - ((b >> 16) & 255)) <<\n 16) |\n (sa(((a >> 8) & 255) + ((d >> 8) & 255) - ((b >> 8) & 255)) << 8) |\n sa((a & 255) + (d & 255) - (b & 255))) >>>\n 0\n );\n };\n self.Predictor13 = function(a, b, c) {\n var d = b[c - 1];\n a = aa(a, b[c + 0]);\n return (\n ((eb((a >> 24) & 255, (d >> 24) & 255) << 24) |\n (eb((a >> 16) & 255, (d >> 16) & 255) << 16) |\n (eb((a >> 8) & 255, (d >> 8) & 255) << 8) |\n eb((a >> 0) & 255, (d >> 0) & 255)) >>>\n 0\n );\n };\n var ee = self.PredictorAdd0;\n self.PredictorAdd1 = cc;\n X(\"Predictor2\", \"PredictorAdd2\");\n X(\"Predictor3\", \"PredictorAdd3\");\n X(\"Predictor4\", \"PredictorAdd4\");\n X(\"Predictor5\", \"PredictorAdd5\");\n X(\"Predictor6\", \"PredictorAdd6\");\n X(\"Predictor7\", \"PredictorAdd7\");\n X(\"Predictor8\", \"PredictorAdd8\");\n X(\"Predictor9\", \"PredictorAdd9\");\n X(\"Predictor10\", \"PredictorAdd10\");\n X(\"Predictor11\", \"PredictorAdd11\");\n X(\"Predictor12\", \"PredictorAdd12\");\n X(\"Predictor13\", \"PredictorAdd13\");\n var fe = self.PredictorAdd2;\n ec(\n \"ColorIndexInverseTransform\",\n \"MapARGB\",\n \"32b\",\n function(a) {\n return (a >> 8) & 255;\n },\n function(a) {\n return a;\n }\n );\n ec(\n \"VP8LColorIndexInverseTransformAlpha\",\n \"MapAlpha\",\n \"8b\",\n function(a) {\n return a;\n },\n function(a) {\n return (a >> 8) & 255;\n }\n );\n var rc = self.ColorIndexInverseTransform,\n ke = self.MapARGB,\n he = self.VP8LColorIndexInverseTransformAlpha,\n le = self.MapAlpha,\n pc,\n qc = (self.VP8LPredictorsAdd = []);\n qc.length = 16;\n (self.VP8LPredictors = []).length = 16;\n (self.VP8LPredictorsAdd_C = []).length = 16;\n (self.VP8LPredictors_C = []).length = 16;\n var Fb,\n sc,\n Gb,\n Hb,\n xc,\n uc,\n bd = V(511),\n cd = V(2041),\n dd = V(225),\n ed = V(767),\n ad = 0,\n Qb = cd,\n mb = dd,\n R = ed,\n U = bd,\n Ca = 0,\n Ua = 1,\n tc = 2,\n Va = 3,\n ya = 4,\n Db = 5,\n wc = 6,\n zb = 7,\n Ab = 8,\n Ja = 9,\n Bb = 10,\n pe = [2, 3, 7],\n oe = [3, 3, 11],\n Dc = [280, 256, 256, 256, 40],\n qe = [0, 1, 1, 1, 0],\n ne = [17, 18, 0, 1, 2, 3, 4, 5, 16, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],\n de = [\n 24,\n 7,\n 23,\n 25,\n 40,\n 6,\n 39,\n 41,\n 22,\n 26,\n 38,\n 42,\n 56,\n 5,\n 55,\n 57,\n 21,\n 27,\n 54,\n 58,\n 37,\n 43,\n 72,\n 4,\n 71,\n 73,\n 20,\n 28,\n 53,\n 59,\n 70,\n 74,\n 36,\n 44,\n 88,\n 69,\n 75,\n 52,\n 60,\n 3,\n 87,\n 89,\n 19,\n 29,\n 86,\n 90,\n 35,\n 45,\n 68,\n 76,\n 85,\n 91,\n 51,\n 61,\n 104,\n 2,\n 103,\n 105,\n 18,\n 30,\n 102,\n 106,\n 34,\n 46,\n 84,\n 92,\n 67,\n 77,\n 101,\n 107,\n 50,\n 62,\n 120,\n 1,\n 119,\n 121,\n 83,\n 93,\n 17,\n 31,\n 100,\n 108,\n 66,\n 78,\n 118,\n 122,\n 33,\n 47,\n 117,\n 123,\n 49,\n 63,\n 99,\n 109,\n 82,\n 94,\n 0,\n 116,\n 124,\n 65,\n 79,\n 16,\n 32,\n 98,\n 110,\n 48,\n 115,\n 125,\n 81,\n 95,\n 64,\n 114,\n 126,\n 97,\n 111,\n 80,\n 113,\n 127,\n 96,\n 112\n ],\n me = [\n 2954,\n 2956,\n 2958,\n 2962,\n 2970,\n 2986,\n 3018,\n 3082,\n 3212,\n 3468,\n 3980,\n 5004\n ],\n ie = 8,\n Lb = [\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 16,\n 17,\n 17,\n 18,\n 19,\n 20,\n 20,\n 21,\n 21,\n 22,\n 22,\n 23,\n 23,\n 24,\n 25,\n 25,\n 26,\n 27,\n 28,\n 29,\n 30,\n 31,\n 32,\n 33,\n 34,\n 35,\n 36,\n 37,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 43,\n 44,\n 45,\n 46,\n 46,\n 47,\n 48,\n 49,\n 50,\n 51,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 59,\n 60,\n 61,\n 62,\n 63,\n 64,\n 65,\n 66,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 75,\n 76,\n 76,\n 77,\n 78,\n 79,\n 80,\n 81,\n 82,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 91,\n 93,\n 95,\n 96,\n 98,\n 100,\n 101,\n 102,\n 104,\n 106,\n 108,\n 110,\n 112,\n 114,\n 116,\n 118,\n 122,\n 124,\n 126,\n 128,\n 130,\n 132,\n 134,\n 136,\n 138,\n 140,\n 143,\n 145,\n 148,\n 151,\n 154,\n 157\n ],\n Mb = [\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 16,\n 17,\n 18,\n 19,\n 20,\n 21,\n 22,\n 23,\n 24,\n 25,\n 26,\n 27,\n 28,\n 29,\n 30,\n 31,\n 32,\n 33,\n 34,\n 35,\n 36,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 43,\n 44,\n 45,\n 46,\n 47,\n 48,\n 49,\n 50,\n 51,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 60,\n 62,\n 64,\n 66,\n 68,\n 70,\n 72,\n 74,\n 76,\n 78,\n 80,\n 82,\n 84,\n 86,\n 88,\n 90,\n 92,\n 94,\n 96,\n 98,\n 100,\n 102,\n 104,\n 106,\n 108,\n 110,\n 112,\n 114,\n 116,\n 119,\n 122,\n 125,\n 128,\n 131,\n 134,\n 137,\n 140,\n 143,\n 146,\n 149,\n 152,\n 155,\n 158,\n 161,\n 164,\n 167,\n 170,\n 173,\n 177,\n 181,\n 185,\n 189,\n 193,\n 197,\n 201,\n 205,\n 209,\n 213,\n 217,\n 221,\n 225,\n 229,\n 234,\n 239,\n 245,\n 249,\n 254,\n 259,\n 264,\n 269,\n 274,\n 279,\n 284\n ],\n oa = null,\n He = [\n [173, 148, 140, 0],\n [176, 155, 140, 135, 0],\n [180, 157, 141, 134, 130, 0],\n [254, 254, 243, 230, 196, 177, 153, 140, 133, 130, 129, 0]\n ],\n Ie = [0, 1, 4, 8, 5, 2, 3, 6, 9, 12, 13, 10, 7, 11, 14, 15],\n Mc = [-0, 1, -1, 2, -2, 3, 4, 6, -3, 5, -4, -5, -6, 7, -7, 8, -8, -9],\n Fe = [\n [\n [\n [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128],\n [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128],\n [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128]\n ],\n [\n [253, 136, 254, 255, 228, 219, 128, 128, 128, 128, 128],\n [189, 129, 242, 255, 227, 213, 255, 219, 128, 128, 128],\n [106, 126, 227, 252, 214, 209, 255, 255, 128, 128, 128]\n ],\n [\n [1, 98, 248, 255, 236, 226, 255, 255, 128, 128, 128],\n [181, 133, 238, 254, 221, 234, 255, 154, 128, 128, 128],\n [78, 134, 202, 247, 198, 180, 255, 219, 128, 128, 128]\n ],\n [\n [1, 185, 249, 255, 243, 255, 128, 128, 128, 128, 128],\n [184, 150, 247, 255, 236, 224, 128, 128, 128, 128, 128],\n [77, 110, 216, 255, 236, 230, 128, 128, 128, 128, 128]\n ],\n [\n [1, 101, 251, 255, 241, 255, 128, 128, 128, 128, 128],\n [170, 139, 241, 252, 236, 209, 255, 255, 128, 128, 128],\n [37, 116, 196, 243, 228, 255, 255, 255, 128, 128, 128]\n ],\n [\n [1, 204, 254, 255, 245, 255, 128, 128, 128, 128, 128],\n [207, 160, 250, 255, 238, 128, 128, 128, 128, 128, 128],\n [102, 103, 231, 255, 211, 171, 128, 128, 128, 128, 128]\n ],\n [\n [1, 152, 252, 255, 240, 255, 128, 128, 128, 128, 128],\n [177, 135, 243, 255, 234, 225, 128, 128, 128, 128, 128],\n [80, 129, 211, 255, 194, 224, 128, 128, 128, 128, 128]\n ],\n [\n [1, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n [246, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n [255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128]\n ]\n ],\n [\n [\n [198, 35, 237, 223, 193, 187, 162, 160, 145, 155, 62],\n [131, 45, 198, 221, 172, 176, 220, 157, 252, 221, 1],\n [68, 47, 146, 208, 149, 167, 221, 162, 255, 223, 128]\n ],\n [\n [1, 149, 241, 255, 221, 224, 255, 255, 128, 128, 128],\n [184, 141, 234, 253, 222, 220, 255, 199, 128, 128, 128],\n [81, 99, 181, 242, 176, 190, 249, 202, 255, 255, 128]\n ],\n [\n [1, 129, 232, 253, 214, 197, 242, 196, 255, 255, 128],\n [99, 121, 210, 250, 201, 198, 255, 202, 128, 128, 128],\n [23, 91, 163, 242, 170, 187, 247, 210, 255, 255, 128]\n ],\n [\n [1, 200, 246, 255, 234, 255, 128, 128, 128, 128, 128],\n [109, 178, 241, 255, 231, 245, 255, 255, 128, 128, 128],\n [44, 130, 201, 253, 205, 192, 255, 255, 128, 128, 128]\n ],\n [\n [1, 132, 239, 251, 219, 209, 255, 165, 128, 128, 128],\n [94, 136, 225, 251, 218, 190, 255, 255, 128, 128, 128],\n [22, 100, 174, 245, 186, 161, 255, 199, 128, 128, 128]\n ],\n [\n [1, 182, 249, 255, 232, 235, 128, 128, 128, 128, 128],\n [124, 143, 241, 255, 227, 234, 128, 128, 128, 128, 128],\n [35, 77, 181, 251, 193, 211, 255, 205, 128, 128, 128]\n ],\n [\n [1, 157, 247, 255, 236, 231, 255, 255, 128, 128, 128],\n [121, 141, 235, 255, 225, 227, 255, 255, 128, 128, 128],\n [45, 99, 188, 251, 195, 217, 255, 224, 128, 128, 128]\n ],\n [\n [1, 1, 251, 255, 213, 255, 128, 128, 128, 128, 128],\n [203, 1, 248, 255, 255, 128, 128, 128, 128, 128, 128],\n [137, 1, 177, 255, 224, 255, 128, 128, 128, 128, 128]\n ]\n ],\n [\n [\n [253, 9, 248, 251, 207, 208, 255, 192, 128, 128, 128],\n [175, 13, 224, 243, 193, 185, 249, 198, 255, 255, 128],\n [73, 17, 171, 221, 161, 179, 236, 167, 255, 234, 128]\n ],\n [\n [1, 95, 247, 253, 212, 183, 255, 255, 128, 128, 128],\n [239, 90, 244, 250, 211, 209, 255, 255, 128, 128, 128],\n [155, 77, 195, 248, 188, 195, 255, 255, 128, 128, 128]\n ],\n [\n [1, 24, 239, 251, 218, 219, 255, 205, 128, 128, 128],\n [201, 51, 219, 255, 196, 186, 128, 128, 128, 128, 128],\n [69, 46, 190, 239, 201, 218, 255, 228, 128, 128, 128]\n ],\n [\n [1, 191, 251, 255, 255, 128, 128, 128, 128, 128, 128],\n [223, 165, 249, 255, 213, 255, 128, 128, 128, 128, 128],\n [141, 124, 248, 255, 255, 128, 128, 128, 128, 128, 128]\n ],\n [\n [1, 16, 248, 255, 255, 128, 128, 128, 128, 128, 128],\n [190, 36, 230, 255, 236, 255, 128, 128, 128, 128, 128],\n [149, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128]\n ],\n [\n [1, 226, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n [247, 192, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n [240, 128, 255, 128, 128, 128, 128, 128, 128, 128, 128]\n ],\n [\n [1, 134, 252, 255, 255, 128, 128, 128, 128, 128, 128],\n [213, 62, 250, 255, 255, 128, 128, 128, 128, 128, 128],\n [55, 93, 255, 128, 128, 128, 128, 128, 128, 128, 128]\n ],\n [\n [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128],\n [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128],\n [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128]\n ]\n ],\n [\n [\n [202, 24, 213, 235, 186, 191, 220, 160, 240, 175, 255],\n [126, 38, 182, 232, 169, 184, 228, 174, 255, 187, 128],\n [61, 46, 138, 219, 151, 178, 240, 170, 255, 216, 128]\n ],\n [\n [1, 112, 230, 250, 199, 191, 247, 159, 255, 255, 128],\n [166, 109, 228, 252, 211, 215, 255, 174, 128, 128, 128],\n [39, 77, 162, 232, 172, 180, 245, 178, 255, 255, 128]\n ],\n [\n [1, 52, 220, 246, 198, 199, 249, 220, 255, 255, 128],\n [124, 74, 191, 243, 183, 193, 250, 221, 255, 255, 128],\n [24, 71, 130, 219, 154, 170, 243, 182, 255, 255, 128]\n ],\n [\n [1, 182, 225, 249, 219, 240, 255, 224, 128, 128, 128],\n [149, 150, 226, 252, 216, 205, 255, 171, 128, 128, 128],\n [28, 108, 170, 242, 183, 194, 254, 223, 255, 255, 128]\n ],\n [\n [1, 81, 230, 252, 204, 203, 255, 192, 128, 128, 128],\n [123, 102, 209, 247, 188, 196, 255, 233, 128, 128, 128],\n [20, 95, 153, 243, 164, 173, 255, 203, 128, 128, 128]\n ],\n [\n [1, 222, 248, 255, 216, 213, 128, 128, 128, 128, 128],\n [168, 175, 246, 252, 235, 205, 255, 255, 128, 128, 128],\n [47, 116, 215, 255, 211, 212, 255, 255, 128, 128, 128]\n ],\n [\n [1, 121, 236, 253, 212, 214, 255, 255, 128, 128, 128],\n [141, 84, 213, 252, 201, 202, 255, 219, 128, 128, 128],\n [42, 80, 160, 240, 162, 185, 255, 205, 128, 128, 128]\n ],\n [\n [1, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n [244, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n [238, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128]\n ]\n ]\n ],\n Ke = [\n [\n [231, 120, 48, 89, 115, 113, 120, 152, 112],\n [152, 179, 64, 126, 170, 118, 46, 70, 95],\n [175, 69, 143, 80, 85, 82, 72, 155, 103],\n [56, 58, 10, 171, 218, 189, 17, 13, 152],\n [114, 26, 17, 163, 44, 195, 21, 10, 173],\n [121, 24, 80, 195, 26, 62, 44, 64, 85],\n [144, 71, 10, 38, 171, 213, 144, 34, 26],\n [170, 46, 55, 19, 136, 160, 33, 206, 71],\n [63, 20, 8, 114, 114, 208, 12, 9, 226],\n [81, 40, 11, 96, 182, 84, 29, 16, 36]\n ],\n [\n [134, 183, 89, 137, 98, 101, 106, 165, 148],\n [72, 187, 100, 130, 157, 111, 32, 75, 80],\n [66, 102, 167, 99, 74, 62, 40, 234, 128],\n [41, 53, 9, 178, 241, 141, 26, 8, 107],\n [74, 43, 26, 146, 73, 166, 49, 23, 157],\n [65, 38, 105, 160, 51, 52, 31, 115, 128],\n [104, 79, 12, 27, 217, 255, 87, 17, 7],\n [87, 68, 71, 44, 114, 51, 15, 186, 23],\n [47, 41, 14, 110, 182, 183, 21, 17, 194],\n [66, 45, 25, 102, 197, 189, 23, 18, 22]\n ],\n [\n [88, 88, 147, 150, 42, 46, 45, 196, 205],\n [43, 97, 183, 117, 85, 38, 35, 179, 61],\n [39, 53, 200, 87, 26, 21, 43, 232, 171],\n [56, 34, 51, 104, 114, 102, 29, 93, 77],\n [39, 28, 85, 171, 58, 165, 90, 98, 64],\n [34, 22, 116, 206, 23, 34, 43, 166, 73],\n [107, 54, 32, 26, 51, 1, 81, 43, 31],\n [68, 25, 106, 22, 64, 171, 36, 225, 114],\n [34, 19, 21, 102, 132, 188, 16, 76, 124],\n [62, 18, 78, 95, 85, 57, 50, 48, 51]\n ],\n [\n [193, 101, 35, 159, 215, 111, 89, 46, 111],\n [60, 148, 31, 172, 219, 228, 21, 18, 111],\n [112, 113, 77, 85, 179, 255, 38, 120, 114],\n [40, 42, 1, 196, 245, 209, 10, 25, 109],\n [88, 43, 29, 140, 166, 213, 37, 43, 154],\n [61, 63, 30, 155, 67, 45, 68, 1, 209],\n [100, 80, 8, 43, 154, 1, 51, 26, 71],\n [142, 78, 78, 16, 255, 128, 34, 197, 171],\n [41, 40, 5, 102, 211, 183, 4, 1, 221],\n [51, 50, 17, 168, 209, 192, 23, 25, 82]\n ],\n [\n [138, 31, 36, 171, 27, 166, 38, 44, 229],\n [67, 87, 58, 169, 82, 115, 26, 59, 179],\n [63, 59, 90, 180, 59, 166, 93, 73, 154],\n [40, 40, 21, 116, 143, 209, 34, 39, 175],\n [47, 15, 16, 183, 34, 223, 49, 45, 183],\n [46, 17, 33, 183, 6, 98, 15, 32, 183],\n [57, 46, 22, 24, 128, 1, 54, 17, 37],\n [65, 32, 73, 115, 28, 128, 23, 128, 205],\n [40, 3, 9, 115, 51, 192, 18, 6, 223],\n [87, 37, 9, 115, 59, 77, 64, 21, 47]\n ],\n [\n [104, 55, 44, 218, 9, 54, 53, 130, 226],\n [64, 90, 70, 205, 40, 41, 23, 26, 57],\n [54, 57, 112, 184, 5, 41, 38, 166, 213],\n [30, 34, 26, 133, 152, 116, 10, 32, 134],\n [39, 19, 53, 221, 26, 114, 32, 73, 255],\n [31, 9, 65, 234, 2, 15, 1, 118, 73],\n [75, 32, 12, 51, 192, 255, 160, 43, 51],\n [88, 31, 35, 67, 102, 85, 55, 186, 85],\n [56, 21, 23, 111, 59, 205, 45, 37, 192],\n [55, 38, 70, 124, 73, 102, 1, 34, 98]\n ],\n [\n [125, 98, 42, 88, 104, 85, 117, 175, 82],\n [95, 84, 53, 89, 128, 100, 113, 101, 45],\n [75, 79, 123, 47, 51, 128, 81, 171, 1],\n [57, 17, 5, 71, 102, 57, 53, 41, 49],\n [38, 33, 13, 121, 57, 73, 26, 1, 85],\n [41, 10, 67, 138, 77, 110, 90, 47, 114],\n [115, 21, 2, 10, 102, 255, 166, 23, 6],\n [101, 29, 16, 10, 85, 128, 101, 196, 26],\n [57, 18, 10, 102, 102, 213, 34, 20, 43],\n [117, 20, 15, 36, 163, 128, 68, 1, 26]\n ],\n [\n [102, 61, 71, 37, 34, 53, 31, 243, 192],\n [69, 60, 71, 38, 73, 119, 28, 222, 37],\n [68, 45, 128, 34, 1, 47, 11, 245, 171],\n [62, 17, 19, 70, 146, 85, 55, 62, 70],\n [37, 43, 37, 154, 100, 163, 85, 160, 1],\n [63, 9, 92, 136, 28, 64, 32, 201, 85],\n [75, 15, 9, 9, 64, 255, 184, 119, 16],\n [86, 6, 28, 5, 64, 255, 25, 248, 1],\n [56, 8, 17, 132, 137, 255, 55, 116, 128],\n [58, 15, 20, 82, 135, 57, 26, 121, 40]\n ],\n [\n [164, 50, 31, 137, 154, 133, 25, 35, 218],\n [51, 103, 44, 131, 131, 123, 31, 6, 158],\n [86, 40, 64, 135, 148, 224, 45, 183, 128],\n [22, 26, 17, 131, 240, 154, 14, 1, 209],\n [45, 16, 21, 91, 64, 222, 7, 1, 197],\n [56, 21, 39, 155, 60, 138, 23, 102, 213],\n [83, 12, 13, 54, 192, 255, 68, 47, 28],\n [85, 26, 85, 85, 128, 128, 32, 146, 171],\n [18, 11, 7, 63, 144, 171, 4, 4, 246],\n [35, 27, 10, 146, 174, 171, 12, 26, 128]\n ],\n [\n [190, 80, 35, 99, 180, 80, 126, 54, 45],\n [85, 126, 47, 87, 176, 51, 41, 20, 32],\n [101, 75, 128, 139, 118, 146, 116, 128, 85],\n [56, 41, 15, 176, 236, 85, 37, 9, 62],\n [71, 30, 17, 119, 118, 255, 17, 18, 138],\n [101, 38, 60, 138, 55, 70, 43, 26, 142],\n [146, 36, 19, 30, 171, 255, 97, 27, 20],\n [138, 45, 61, 62, 219, 1, 81, 188, 64],\n [32, 41, 20, 117, 151, 142, 20, 21, 163],\n [112, 19, 12, 61, 195, 128, 48, 4, 24]\n ]\n ],\n Ee = [\n [\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [176, 246, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [223, 241, 252, 255, 255, 255, 255, 255, 255, 255, 255],\n [249, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 244, 252, 255, 255, 255, 255, 255, 255, 255, 255],\n [234, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 246, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [239, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 248, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [251, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [251, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 254, 253, 255, 254, 255, 255, 255, 255, 255, 255],\n [250, 255, 254, 255, 254, 255, 255, 255, 255, 255, 255],\n [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ]\n ],\n [\n [\n [217, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [225, 252, 241, 253, 255, 255, 254, 255, 255, 255, 255],\n [234, 250, 241, 250, 253, 255, 253, 254, 255, 255, 255]\n ],\n [\n [255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [223, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [238, 253, 254, 254, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 248, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [249, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [247, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 254, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n [250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ]\n ],\n [\n [\n [186, 251, 250, 255, 255, 255, 255, 255, 255, 255, 255],\n [234, 251, 244, 254, 255, 255, 255, 255, 255, 255, 255],\n [251, 251, 243, 253, 254, 255, 254, 255, 255, 255, 255]\n ],\n [\n [255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [236, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [251, 253, 253, 254, 254, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ]\n ],\n [\n [\n [248, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [250, 254, 252, 254, 255, 255, 255, 255, 255, 255, 255],\n [248, 254, 249, 253, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n [246, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n [252, 254, 251, 254, 254, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 254, 252, 255, 255, 255, 255, 255, 255, 255, 255],\n [248, 254, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n [253, 255, 254, 254, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [245, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 251, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n [252, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [249, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n [250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ]\n ]\n ],\n Ge = [0, 1, 2, 3, 6, 4, 5, 6, 6, 6, 6, 6, 6, 6, 6, 7, 0],\n Nc,\n Y = [],\n W = [],\n ka = [],\n Za,\n fd,\n Nb,\n pa,\n Ob,\n Xc,\n Tc,\n Yc,\n Uc,\n Zc,\n Vc,\n $c,\n Wc,\n Rc,\n Pc,\n Sc,\n Qc,\n re = 1,\n Cc = 2,\n ia = [],\n za,\n vc,\n fc,\n Fc,\n P = [];\n va(\"UpsampleRgbLinePair\", Ga, 3);\n va(\"UpsampleBgrLinePair\", Tb, 3);\n va(\"UpsampleRgbaLinePair\", wd, 4);\n va(\"UpsampleBgraLinePair\", vd, 4);\n va(\"UpsampleArgbLinePair\", ud, 4);\n va(\"UpsampleRgba4444LinePair\", td, 2);\n va(\"UpsampleRgb565LinePair\", sd, 2);\n var Mf = self.UpsampleRgbLinePair,\n Nf = self.UpsampleBgrLinePair,\n nd = self.UpsampleRgbaLinePair,\n od = self.UpsampleBgraLinePair,\n pd = self.UpsampleArgbLinePair,\n qd = self.UpsampleRgba4444LinePair,\n Of = self.UpsampleRgb565LinePair,\n Wa = 16,\n Ba = 1 << (Wa - 1),\n ta = -227,\n Eb = 482,\n rd = 6,\n Pf = (256 << rd) - 1,\n jc = 0,\n Yd = V(256),\n ae = V(256),\n $d = V(256),\n Zd = V(256),\n be = V(Eb - ta),\n ce = V(Eb - ta);\n la(\"YuvToRgbRow\", Ga, 3);\n la(\"YuvToBgrRow\", Tb, 3);\n la(\"YuvToRgbaRow\", wd, 4);\n la(\"YuvToBgraRow\", vd, 4);\n la(\"YuvToArgbRow\", ud, 4);\n la(\"YuvToRgba4444Row\", td, 2);\n la(\"YuvToRgb565Row\", sd, 2);\n var zd = [\n 0,\n 4,\n 8,\n 12,\n 128,\n 132,\n 136,\n 140,\n 256,\n 260,\n 264,\n 268,\n 384,\n 388,\n 392,\n 396\n ],\n Ya = [0, 2, 8],\n Qf = [8, 7, 6, 4, 4, 2, 2, 2, 1, 1, 1, 1],\n Ne = 1;\n this.WebPDecodeRGBA = function(a, b, c, d, e) {\n var f = Ua;\n var g = new Cf(),\n h = new Cb();\n g.ba = h;\n h.S = f;\n h.width = [h.width];\n h.height = [h.height];\n var k = h.width;\n var l = h.height,\n m = new Td();\n if (null == m || null == a) var n = 2;\n else\n x(null != m),\n (n = Ad(a, b, c, m.width, m.height, m.Pd, m.Qd, m.format, null));\n 0 != n\n ? (k = 0)\n : (null != k && (k[0] = m.width[0]),\n null != l && (l[0] = m.height[0]),\n (k = 1));\n if (k) {\n h.width = h.width[0];\n h.height = h.height[0];\n null != d && (d[0] = h.width);\n null != e && (e[0] = h.height);\n b: {\n d = new Oa();\n e = new md();\n e.data = a;\n e.w = b;\n e.ha = c;\n e.kd = 1;\n b = [0];\n x(null != e);\n a = Ad(e.data, e.w, e.ha, null, null, null, b, null, e);\n (0 == a || 7 == a) && b[0] && (a = 4);\n b = a;\n if (0 == b) {\n x(null != g);\n d.data = e.data;\n d.w = e.w + e.offset;\n d.ha = e.ha - e.offset;\n d.put = kc;\n d.ac = gc;\n d.bc = lc;\n d.ma = g;\n if (e.xa) {\n a = Bc();\n if (null == a) {\n g = 1;\n break b;\n }\n if (te(a, d)) {\n b = Cd(d.width, d.height, g.Oa, g.ba);\n if ((d = 0 == b)) {\n c: {\n d = a;\n d: for (;;) {\n if (null == d) {\n d = 0;\n break c;\n }\n x(null != d.s.yc);\n x(null != d.s.Ya);\n x(0 < d.s.Wb);\n c = d.l;\n x(null != c);\n e = c.ma;\n x(null != e);\n if (0 != d.xb) {\n d.ca = e.ba;\n d.tb = e.tb;\n x(null != d.ca);\n if (!hc(e.Oa, c, Va)) {\n d.a = 2;\n break d;\n }\n if (!Ec(d, c.width)) break d;\n if (c.da) break d;\n (c.da || hb(d.ca.S)) && Aa();\n 11 > d.ca.S ||\n (alert(\"todo:WebPInitConvertARGBToYUV\"),\n null != d.ca.f.kb.F && Aa());\n if (\n d.Pb &&\n 0 < d.s.ua &&\n null == d.s.vb.X &&\n !Zb(d.s.vb, d.s.Wa.Xa)\n ) {\n d.a = 1;\n break d;\n }\n d.xb = 0;\n }\n if (!Jb(d, d.V, d.Ba, d.c, d.i, c.o, ge)) break d;\n e.Dc = d.Ma;\n d = 1;\n break c;\n }\n x(0 != d.a);\n d = 0;\n }\n d = !d;\n }\n d && (b = a.a);\n } else b = a.a;\n } else {\n a = new Ce();\n if (null == a) {\n g = 1;\n break b;\n }\n a.Fa = e.na;\n a.P = e.P;\n a.qc = e.Sa;\n if (Kc(a, d)) {\n if (((b = Cd(d.width, d.height, g.Oa, g.ba)), 0 == b)) {\n a.Aa = 0;\n c = g.Oa;\n e = a;\n x(null != e);\n if (null != c) {\n k = c.Md;\n k = 0 > k ? 0 : 100 < k ? 255 : (255 * k) / 100;\n if (0 < k) {\n for (l = m = 0; 4 > l; ++l)\n (n = e.pb[l]),\n 12 > n.lc &&\n (n.ia = (k * Qf[0 > n.lc ? 0 : n.lc]) >> 3),\n (m |= n.ia);\n m && (alert(\"todo:VP8InitRandom\"), (e.ia = 1));\n }\n e.Ga = c.Id;\n 100 < e.Ga ? (e.Ga = 100) : 0 > e.Ga && (e.Ga = 0);\n }\n Me(a, d) || (b = a.a);\n }\n } else b = a.a;\n }\n 0 == b && null != g.Oa && g.Oa.fd && (b = Bd(g.ba));\n }\n g = b;\n }\n f = 0 != g ? null : 11 > f ? h.f.RGBA.eb : h.f.kb.y;\n } else f = null;\n return f;\n };\n var Dd = [3, 4, 3, 4, 4, 2, 2, 4, 4, 4, 2, 1, 1];\n };\n new _WebPDecoder();\n\n /** @license\n * Copyright (c) 2017 Dominik Homberger\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nhttps://webpjs.appspot.com\nWebPRiffParser dominikhlbg@gmail.com\n*/\n\n function memcmp(data, data_off, str, size) {\n for (var i = 0; i < size; i++)\n if (data[data_off + i] != str.charCodeAt(i)) return true;\n return false;\n }\n\n function GetTag(data, data_off) {\n var str = \"\";\n for (var i = 0; i < 4; i++) str += String.fromCharCode(data[data_off++]);\n return str;\n }\n\n function GetLE16(data, data_off) {\n return (data[data_off + 0] << 0) | (data[data_off + 1] << 8);\n }\n\n function GetLE24(data, data_off) {\n return (\n ((data[data_off + 0] << 0) |\n (data[data_off + 1] << 8) |\n (data[data_off + 2] << 16)) >>>\n 0\n );\n }\n\n function GetLE32(data, data_off) {\n return (\n ((data[data_off + 0] << 0) |\n (data[data_off + 1] << 8) |\n (data[data_off + 2] << 16) |\n (data[data_off + 3] << 24)) >>>\n 0\n );\n }\n\n function WebPRiffParser(src, src_off) {\n var imagearray = {};\n var i = 0;\n var alpha_chunk = false;\n var alpha_size = 0;\n var alpha_offset = 0;\n imagearray[\"frames\"] = [];\n if (memcmp(src, src_off, \"RIFF\", 4)) return;\n src_off += 4;\n var riff_size = GetLE32(src, src_off) + 8;\n src_off += 8;\n\n while (src_off < src.length) {\n var fourcc = GetTag(src, src_off);\n src_off += 4;\n\n var payload_size = GetLE32(src, src_off);\n src_off += 4;\n var payload_size_padded = payload_size + (payload_size & 1);\n\n switch (fourcc) {\n case \"VP8 \":\n case \"VP8L\":\n if (typeof imagearray[\"frames\"][i] === \"undefined\")\n imagearray[\"frames\"][i] = {};\n var obj = imagearray[\"frames\"][i];\n var height = [0];\n var width = [0];\n obj[\"src_off\"] = alpha_chunk ? alpha_offset : src_off - 8;\n obj[\"src_size\"] = alpha_size + payload_size + 8;\n //var rgba = webpdecoder.WebPDecodeRGBA(src,(alpha_chunk?alpha_offset:src_off-8),alpha_size+payload_size+8,width,height);\n //imagearray[i]={'rgba':rgba,'width':width[0],'height':height[0]};\n i++;\n if (alpha_chunk) {\n alpha_chunk = false;\n alpha_size = 0;\n alpha_offset = 0;\n }\n break;\n case \"VP8X\":\n var obj = (imagearray[\"header\"] = {});\n var feature_flags = (obj[\"feature_flags\"] = src[src_off]);\n var src_off_ = src_off + 4;\n var canvas_width = (obj[\"canvas_width\"] = 1 + GetLE24(src, src_off_));\n src_off_ += 3;\n var canvas_height = (obj[\"canvas_height\"] =\n 1 + GetLE24(src, src_off_));\n src_off_ += 3;\n break;\n case \"ALPH\":\n alpha_chunk = true;\n alpha_size = payload_size_padded + 8;\n alpha_offset = src_off - 8;\n break;\n\n case \"ANIM\":\n var obj = imagearray[\"header\"];\n var bgcolor = (obj[\"bgcolor\"] = GetLE32(src, src_off));\n src_off_ = src_off + 4;\n\n var loop_count = (obj[\"loop_count\"] = GetLE16(src, src_off_));\n src_off_ += 2;\n break;\n case \"ANMF\":\n var offset_x = 0,\n offset_y = 0,\n width = 0,\n height = 0,\n duration = 0,\n blend = 0,\n dispose = 0,\n temp = 0;\n var obj = (imagearray[\"frames\"][i] = {});\n obj[\"offset_x\"] = offset_x = 2 * GetLE24(src, src_off);\n src_off += 3;\n obj[\"offset_y\"] = offset_y = 2 * GetLE24(src, src_off);\n src_off += 3;\n obj[\"width\"] = width = 1 + GetLE24(src, src_off);\n src_off += 3;\n obj[\"height\"] = height = 1 + GetLE24(src, src_off);\n src_off += 3;\n obj[\"duration\"] = duration = GetLE24(src, src_off);\n src_off += 3;\n temp = src[src_off++];\n obj[\"dispose\"] = dispose = temp & 1;\n obj[\"blend\"] = blend = (temp >> 1) & 1;\n break;\n default:\n }\n if (fourcc != \"ANMF\") src_off += payload_size_padded;\n }\n return imagearray;\n }\n\n var height = [0];\n var width = [0];\n var pixels = [];\n var webpdecoder = new _WebPDecoder();\n\n var response = imageData;\n var imagearray = WebPRiffParser(response, 0);\n imagearray[\"response\"] = response;\n imagearray[\"rgbaoutput\"] = true;\n imagearray[\"dataurl\"] = false;\n\n var header = imagearray[\"header\"] ? imagearray[\"header\"] : null;\n var frames = imagearray[\"frames\"] ? imagearray[\"frames\"] : null;\n\n if (header) {\n header[\"loop_counter\"] = header[\"loop_count\"];\n height = [header[\"canvas_height\"]];\n width = [header[\"canvas_width\"]];\n\n var blend = false;\n for (var f = 0; f < frames.length; f++)\n if (frames[f][\"blend\"] == 0) {\n blend = true;\n break;\n }\n }\n\n var frame = frames[0];\n var rgba = webpdecoder.WebPDecodeRGBA(\n response,\n frame[\"src_off\"],\n frame[\"src_size\"],\n width,\n height\n );\n frame[\"rgba\"] = rgba;\n frame[\"imgwidth\"] = width[0];\n frame[\"imgheight\"] = height[0];\n\n for (var i = 0; i < width[0] * height[0] * 4; i++) {\n pixels[i] = rgba[i];\n }\n\n this.width = width;\n this.height = height;\n this.data = pixels;\n return this;\n}\n\nWebPDecoder.prototype.getData = function() {\n return this.data;\n};\n\nexport { WebPDecoder };\n","/**\n * @license\n *\n * Copyright (c) 2014 James Robb, https://github.com/jamesbrobb\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { zlibSync } from \"../libs/fflate.js\";\nimport { PNG } from \"../libs/png.js\";\n\n/**\n * jsPDF PNG PlugIn\n * @name png_support\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /*\n * @see http://www.w3.org/TR/PNG-Chunks.html\n *\n Color Allowed Interpretation\n Type Bit Depths\n\n 0 1,2,4,8,16 Each pixel is a grayscale sample.\n\n 2 8,16 Each pixel is an R,G,B triple.\n\n 3 1,2,4,8 Each pixel is a palette index;\n a PLTE chunk must appear.\n\n 4 8,16 Each pixel is a grayscale sample,\n followed by an alpha sample.\n\n 6 8,16 Each pixel is an R,G,B triple,\n followed by an alpha sample.\n */\n\n /*\n * PNG filter method types\n *\n * @see http://www.w3.org/TR/PNG-Filters.html\n * @see http://www.libpng.org/pub/png/book/chapter09.html\n *\n * This is what the value 'Predictor' in decode params relates to\n *\n * 15 is \"optimal prediction\", which means the prediction algorithm can change from line to line.\n * In that case, you actually have to read the first byte off each line for the prediction algorthim (which should be 0-4, corresponding to PDF 10-14) and select the appropriate unprediction algorithm based on that byte.\n *\n 0 None\n 1 Sub\n 2 Up\n 3 Average\n 4 Paeth\n */\n\n var canCompress = function(value) {\n return value !== jsPDFAPI.image_compression.NONE && hasCompressionJS();\n };\n\n var hasCompressionJS = function() {\n return typeof zlibSync === \"function\";\n };\n var compressBytes = function(bytes, lineLength, colorsPerPixel, compression) {\n var level = 4;\n var filter_method = filterUp;\n\n switch (compression) {\n case jsPDFAPI.image_compression.FAST:\n level = 1;\n filter_method = filterSub;\n break;\n\n case jsPDFAPI.image_compression.MEDIUM:\n level = 6;\n filter_method = filterAverage;\n break;\n\n case jsPDFAPI.image_compression.SLOW:\n level = 9;\n filter_method = filterPaeth;\n break;\n }\n\n bytes = applyPngFilterMethod(\n bytes,\n lineLength,\n colorsPerPixel,\n filter_method\n );\n var dat = zlibSync(bytes, { level: level });\n return jsPDFAPI.__addimage__.arrayBufferToBinaryString(dat);\n };\n\n var applyPngFilterMethod = function(\n bytes,\n lineLength,\n colorsPerPixel,\n filter_method\n ) {\n var lines = bytes.length / lineLength,\n result = new Uint8Array(bytes.length + lines),\n filter_methods = getFilterMethods(),\n line,\n prevLine,\n offset;\n\n for (var i = 0; i < lines; i += 1) {\n offset = i * lineLength;\n line = bytes.subarray(offset, offset + lineLength);\n\n if (filter_method) {\n result.set(filter_method(line, colorsPerPixel, prevLine), offset + i);\n } else {\n var len = filter_methods.length,\n results = [];\n\n for (var j; j < len; j += 1) {\n results[j] = filter_methods[j](line, colorsPerPixel, prevLine);\n }\n\n var ind = getIndexOfSmallestSum(results.concat());\n\n result.set(results[ind], offset + i);\n }\n\n prevLine = line;\n }\n\n return result;\n };\n\n var filterNone = function(line) {\n /*var result = new Uint8Array(line.length + 1);\n result[0] = 0;\n result.set(line, 1);*/\n\n var result = Array.apply([], line);\n result.unshift(0);\n\n return result;\n };\n\n var filterSub = function(line, colorsPerPixel) {\n var result = [],\n len = line.length,\n left;\n\n result[0] = 1;\n\n for (var i = 0; i < len; i += 1) {\n left = line[i - colorsPerPixel] || 0;\n result[i + 1] = (line[i] - left + 0x0100) & 0xff;\n }\n\n return result;\n };\n\n var filterUp = function(line, colorsPerPixel, prevLine) {\n var result = [],\n len = line.length,\n up;\n\n result[0] = 2;\n\n for (var i = 0; i < len; i += 1) {\n up = (prevLine && prevLine[i]) || 0;\n result[i + 1] = (line[i] - up + 0x0100) & 0xff;\n }\n\n return result;\n };\n\n var filterAverage = function(line, colorsPerPixel, prevLine) {\n var result = [],\n len = line.length,\n left,\n up;\n\n result[0] = 3;\n\n for (var i = 0; i < len; i += 1) {\n left = line[i - colorsPerPixel] || 0;\n up = (prevLine && prevLine[i]) || 0;\n result[i + 1] = (line[i] + 0x0100 - ((left + up) >>> 1)) & 0xff;\n }\n\n return result;\n };\n\n var filterPaeth = function(line, colorsPerPixel, prevLine) {\n var result = [],\n len = line.length,\n left,\n up,\n upLeft,\n paeth;\n\n result[0] = 4;\n\n for (var i = 0; i < len; i += 1) {\n left = line[i - colorsPerPixel] || 0;\n up = (prevLine && prevLine[i]) || 0;\n upLeft = (prevLine && prevLine[i - colorsPerPixel]) || 0;\n paeth = paethPredictor(left, up, upLeft);\n result[i + 1] = (line[i] - paeth + 0x0100) & 0xff;\n }\n\n return result;\n };\n\n var paethPredictor = function(left, up, upLeft) {\n if (left === up && up === upLeft) {\n return left;\n }\n var pLeft = Math.abs(up - upLeft),\n pUp = Math.abs(left - upLeft),\n pUpLeft = Math.abs(left + up - upLeft - upLeft);\n return pLeft <= pUp && pLeft <= pUpLeft\n ? left\n : pUp <= pUpLeft\n ? up\n : upLeft;\n };\n\n var getFilterMethods = function() {\n return [filterNone, filterSub, filterUp, filterAverage, filterPaeth];\n };\n\n var getIndexOfSmallestSum = function(arrays) {\n var sum = arrays.map(function(value) {\n return value.reduce(function(pv, cv) {\n return pv + Math.abs(cv);\n }, 0);\n });\n return sum.indexOf(Math.min.apply(null, sum));\n };\n\n var getPredictorFromCompression = function(compression) {\n var predictor;\n switch (compression) {\n case jsPDFAPI.image_compression.FAST:\n predictor = 11;\n break;\n\n case jsPDFAPI.image_compression.MEDIUM:\n predictor = 13;\n break;\n\n case jsPDFAPI.image_compression.SLOW:\n predictor = 14;\n break;\n\n default:\n predictor = 12;\n break;\n }\n return predictor;\n };\n\n /**\n * @name processPNG\n * @function\n * @ignore\n */\n jsPDFAPI.processPNG = function(imageData, index, alias, compression) {\n \"use strict\";\n\n var colorSpace,\n filter = this.decode.FLATE_DECODE,\n bitsPerComponent,\n image,\n decodeParameters = \"\",\n trns,\n colors,\n pal,\n smask,\n pixels,\n len,\n alphaData,\n imgData,\n hasColors,\n pixel,\n i,\n n;\n\n if (this.__addimage__.isArrayBuffer(imageData))\n imageData = new Uint8Array(imageData);\n\n if (this.__addimage__.isArrayBufferView(imageData)) {\n image = new PNG(imageData);\n imageData = image.imgData;\n bitsPerComponent = image.bits;\n colorSpace = image.colorSpace;\n colors = image.colors;\n\n /*\n * colorType 6 - Each pixel is an R,G,B triple, followed by an alpha sample.\n *\n * colorType 4 - Each pixel is a grayscale sample, followed by an alpha sample.\n *\n * Extract alpha to create two separate images, using the alpha as a sMask\n */\n if ([4, 6].indexOf(image.colorType) !== -1) {\n /*\n * processes 8 bit RGBA and grayscale + alpha images\n */\n if (image.bits === 8) {\n pixels =\n image.pixelBitlength == 32\n ? new Uint32Array(image.decodePixels().buffer)\n : image.pixelBitlength == 16\n ? new Uint16Array(image.decodePixels().buffer)\n : new Uint8Array(image.decodePixels().buffer);\n len = pixels.length;\n imgData = new Uint8Array(len * image.colors);\n alphaData = new Uint8Array(len);\n var pDiff = image.pixelBitlength - image.bits;\n i = 0;\n n = 0;\n var pbl;\n\n for (; i < len; i++) {\n pixel = pixels[i];\n pbl = 0;\n\n while (pbl < pDiff) {\n imgData[n++] = (pixel >>> pbl) & 0xff;\n pbl = pbl + image.bits;\n }\n\n alphaData[i] = (pixel >>> pbl) & 0xff;\n }\n }\n\n /*\n * processes 16 bit RGBA and grayscale + alpha images\n */\n if (image.bits === 16) {\n pixels = new Uint32Array(image.decodePixels().buffer);\n len = pixels.length;\n imgData = new Uint8Array(\n len * (32 / image.pixelBitlength) * image.colors\n );\n alphaData = new Uint8Array(len * (32 / image.pixelBitlength));\n hasColors = image.colors > 1;\n i = 0;\n n = 0;\n var a = 0;\n\n while (i < len) {\n pixel = pixels[i++];\n\n imgData[n++] = (pixel >>> 0) & 0xff;\n\n if (hasColors) {\n imgData[n++] = (pixel >>> 16) & 0xff;\n\n pixel = pixels[i++];\n imgData[n++] = (pixel >>> 0) & 0xff;\n }\n\n alphaData[a++] = (pixel >>> 16) & 0xff;\n }\n bitsPerComponent = 8;\n }\n\n if (canCompress(compression)) {\n imageData = compressBytes(\n imgData,\n image.width * image.colors,\n image.colors,\n compression\n );\n smask = compressBytes(alphaData, image.width, 1, compression);\n } else {\n imageData = imgData;\n smask = alphaData;\n filter = undefined;\n }\n }\n\n /*\n * Indexed png. Each pixel is a palette index.\n */\n if (image.colorType === 3) {\n colorSpace = this.color_spaces.INDEXED;\n pal = image.palette;\n\n if (image.transparency.indexed) {\n var trans = image.transparency.indexed;\n var total = 0;\n i = 0;\n len = trans.length;\n\n for (; i < len; ++i) {\n total += trans[i];\n }\n\n total = total / 255;\n\n /*\n * a single color is specified as 100% transparent (0),\n * so we set trns to use a /Mask with that index\n */\n if (total === len - 1 && trans.indexOf(0) !== -1) {\n trns = [trans.indexOf(0)];\n\n /*\n * there's more than one colour within the palette that specifies\n * a transparency value less than 255, so we unroll the pixels to create an image sMask\n */\n } else if (total !== len) {\n pixels = image.decodePixels();\n alphaData = new Uint8Array(pixels.length);\n i = 0;\n len = pixels.length;\n\n for (; i < len; i++) {\n alphaData[i] = trans[pixels[i]];\n }\n\n smask = compressBytes(alphaData, image.width, 1);\n }\n }\n }\n\n var predictor = getPredictorFromCompression(compression);\n\n if (filter === this.decode.FLATE_DECODE) {\n decodeParameters = \"/Predictor \" + predictor + \" \";\n }\n decodeParameters +=\n \"/Colors \" +\n colors +\n \" /BitsPerComponent \" +\n bitsPerComponent +\n \" /Columns \" +\n image.width;\n\n if (\n this.__addimage__.isArrayBuffer(imageData) ||\n this.__addimage__.isArrayBufferView(imageData)\n ) {\n imageData = this.__addimage__.arrayBufferToBinaryString(imageData);\n }\n\n if (\n (smask && this.__addimage__.isArrayBuffer(smask)) ||\n this.__addimage__.isArrayBufferView(smask)\n ) {\n smask = this.__addimage__.arrayBufferToBinaryString(smask);\n }\n\n return {\n alias: alias,\n data: imageData,\n index: index,\n filter: filter,\n decodeParameters: decodeParameters,\n transparency: trns,\n palette: pal,\n sMask: smask,\n predictor: predictor,\n width: image.width,\n height: image.height,\n bitsPerComponent: bitsPerComponent,\n colorSpace: colorSpace\n };\n }\n };\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2017 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { GifReader } from \"../libs/omggif.js\";\nimport { JPEGEncoder } from \"../libs/JPEGEncoder.js\";\n\n/**\n * jsPDF Gif Support PlugIn\n *\n * @name gif_support\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n jsPDFAPI.processGIF89A = function(imageData, index, alias, compression) {\n var reader = new GifReader(imageData);\n var width = reader.width,\n height = reader.height;\n var qu = 100;\n var pixels = [];\n\n reader.decodeAndBlitFrameRGBA(0, pixels);\n var rawImageData = {\n data: pixels,\n width: width,\n height: height\n };\n\n var encoder = new JPEGEncoder(qu);\n var data = encoder.encode(rawImageData, qu);\n return jsPDFAPI.processJPEG.call(this, data, index, alias, compression);\n };\n\n jsPDFAPI.processGIF87A = jsPDFAPI.processGIF89A;\n})(jsPDF.API);\n","import { JPEGEncoder } from \"../libs/JPEGEncoder.js\";\nimport { BmpDecoder } from \"../libs/BMPDecoder.js\";\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * @license\n * Copyright (c) 2018 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\n/**\n * jsPDF bmp Support PlugIn\n * @name bmp_support\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n jsPDFAPI.processBMP = function(imageData, index, alias, compression) {\n var reader = new BmpDecoder(imageData, false);\n var width = reader.width,\n height = reader.height;\n var qu = 100;\n var pixels = reader.getData();\n\n var rawImageData = {\n data: pixels,\n width: width,\n height: height\n };\n\n var encoder = new JPEGEncoder(qu);\n var data = encoder.encode(rawImageData, qu);\n return jsPDFAPI.processJPEG.call(this, data, index, alias, compression);\n };\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2019 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { JPEGEncoder } from \"../libs/JPEGEncoder.js\";\nimport { WebPDecoder } from \"../libs/WebPDecoder.js\";\n\n/**\n * jsPDF webp Support PlugIn\n *\n * @name webp_support\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n jsPDFAPI.processWEBP = function(imageData, index, alias, compression) {\n var reader = new WebPDecoder(imageData, false);\n var width = reader.width,\n height = reader.height;\n var qu = 100;\n var pixels = reader.getData();\n\n var rawImageData = {\n data: pixels,\n width: width,\n height: height\n };\n\n var encoder = new JPEGEncoder(qu);\n var data = encoder.encode(rawImageData, qu);\n return jsPDFAPI.processJPEG.call(this, data, index, alias, compression);\n };\n})(jsPDF.API);\n","/**\n * @license\n *\n * Copyright (c) 2021 Antti Palola, https://github.com/Pantura\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF RGBA array PlugIn\n * @name rgba_support\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * @name processRGBA\n * @function\n *\n * Process RGBA Array. This is a one-dimension array with pixel data [red, green, blue, alpha, red, green, ...].\n * RGBA array data can be obtained from DOM canvas getImageData.\n * @ignore\n */\n jsPDFAPI.processRGBA = function(imageData, index, alias) {\n \"use strict\";\n\n var imagePixels = imageData.data;\n var length = imagePixels.length;\n // jsPDF takes alpha data separately so extract that.\n var rgbOut = new Uint8Array((length / 4) * 3);\n var alphaOut = new Uint8Array(length / 4);\n var outIndex = 0;\n var alphaIndex = 0;\n\n for (var i = 0; i < length; i += 4) {\n var r = imagePixels[i];\n var g = imagePixels[i + 1];\n var b = imagePixels[i + 2];\n var alpha = imagePixels[i + 3];\n rgbOut[outIndex++] = r;\n rgbOut[outIndex++] = g;\n rgbOut[outIndex++] = b;\n alphaOut[alphaIndex++] = alpha;\n }\n\n var rgbData = this.__addimage__.arrayBufferToBinaryString(rgbOut);\n var alphaData = this.__addimage__.arrayBufferToBinaryString(alphaOut);\n\n return {\n alpha: alphaData,\n data: rgbData,\n index: index,\n alias: alias,\n colorSpace: \"DeviceRGB\",\n bitsPerComponent: 8,\n width: imageData.width,\n height: imageData.height\n };\n };\n})(jsPDF.API);\n","/**\n * @license\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF setLanguage Plugin\n *\n * @name setLanguage\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * Add Language Tag to the generated PDF\n *\n * @name setLanguage\n * @function\n * @param {string} langCode The Language code as ISO-639-1 (e.g. 'en') or as country language code (e.g. 'en-GB').\n * @returns {jsPDF}\n * @example\n * var doc = new jsPDF()\n * doc.text(10, 10, 'This is a test')\n * doc.setLanguage(\"en-US\")\n * doc.save('english.pdf')\n */\n jsPDFAPI.setLanguage = function(langCode) {\n \"use strict\";\n\n var langCodes = {\n af: \"Afrikaans\",\n sq: \"Albanian\",\n ar: \"Arabic (Standard)\",\n \"ar-DZ\": \"Arabic (Algeria)\",\n \"ar-BH\": \"Arabic (Bahrain)\",\n \"ar-EG\": \"Arabic (Egypt)\",\n \"ar-IQ\": \"Arabic (Iraq)\",\n \"ar-JO\": \"Arabic (Jordan)\",\n \"ar-KW\": \"Arabic (Kuwait)\",\n \"ar-LB\": \"Arabic (Lebanon)\",\n \"ar-LY\": \"Arabic (Libya)\",\n \"ar-MA\": \"Arabic (Morocco)\",\n \"ar-OM\": \"Arabic (Oman)\",\n \"ar-QA\": \"Arabic (Qatar)\",\n \"ar-SA\": \"Arabic (Saudi Arabia)\",\n \"ar-SY\": \"Arabic (Syria)\",\n \"ar-TN\": \"Arabic (Tunisia)\",\n \"ar-AE\": \"Arabic (U.A.E.)\",\n \"ar-YE\": \"Arabic (Yemen)\",\n an: \"Aragonese\",\n hy: \"Armenian\",\n as: \"Assamese\",\n ast: \"Asturian\",\n az: \"Azerbaijani\",\n eu: \"Basque\",\n be: \"Belarusian\",\n bn: \"Bengali\",\n bs: \"Bosnian\",\n br: \"Breton\",\n bg: \"Bulgarian\",\n my: \"Burmese\",\n ca: \"Catalan\",\n ch: \"Chamorro\",\n ce: \"Chechen\",\n zh: \"Chinese\",\n \"zh-HK\": \"Chinese (Hong Kong)\",\n \"zh-CN\": \"Chinese (PRC)\",\n \"zh-SG\": \"Chinese (Singapore)\",\n \"zh-TW\": \"Chinese (Taiwan)\",\n cv: \"Chuvash\",\n co: \"Corsican\",\n cr: \"Cree\",\n hr: \"Croatian\",\n cs: \"Czech\",\n da: \"Danish\",\n nl: \"Dutch (Standard)\",\n \"nl-BE\": \"Dutch (Belgian)\",\n en: \"English\",\n \"en-AU\": \"English (Australia)\",\n \"en-BZ\": \"English (Belize)\",\n \"en-CA\": \"English (Canada)\",\n \"en-IE\": \"English (Ireland)\",\n \"en-JM\": \"English (Jamaica)\",\n \"en-NZ\": \"English (New Zealand)\",\n \"en-PH\": \"English (Philippines)\",\n \"en-ZA\": \"English (South Africa)\",\n \"en-TT\": \"English (Trinidad & Tobago)\",\n \"en-GB\": \"English (United Kingdom)\",\n \"en-US\": \"English (United States)\",\n \"en-ZW\": \"English (Zimbabwe)\",\n eo: \"Esperanto\",\n et: \"Estonian\",\n fo: \"Faeroese\",\n fj: \"Fijian\",\n fi: \"Finnish\",\n fr: \"French (Standard)\",\n \"fr-BE\": \"French (Belgium)\",\n \"fr-CA\": \"French (Canada)\",\n \"fr-FR\": \"French (France)\",\n \"fr-LU\": \"French (Luxembourg)\",\n \"fr-MC\": \"French (Monaco)\",\n \"fr-CH\": \"French (Switzerland)\",\n fy: \"Frisian\",\n fur: \"Friulian\",\n gd: \"Gaelic (Scots)\",\n \"gd-IE\": \"Gaelic (Irish)\",\n gl: \"Galacian\",\n ka: \"Georgian\",\n de: \"German (Standard)\",\n \"de-AT\": \"German (Austria)\",\n \"de-DE\": \"German (Germany)\",\n \"de-LI\": \"German (Liechtenstein)\",\n \"de-LU\": \"German (Luxembourg)\",\n \"de-CH\": \"German (Switzerland)\",\n el: \"Greek\",\n gu: \"Gujurati\",\n ht: \"Haitian\",\n he: \"Hebrew\",\n hi: \"Hindi\",\n hu: \"Hungarian\",\n is: \"Icelandic\",\n id: \"Indonesian\",\n iu: \"Inuktitut\",\n ga: \"Irish\",\n it: \"Italian (Standard)\",\n \"it-CH\": \"Italian (Switzerland)\",\n ja: \"Japanese\",\n kn: \"Kannada\",\n ks: \"Kashmiri\",\n kk: \"Kazakh\",\n km: \"Khmer\",\n ky: \"Kirghiz\",\n tlh: \"Klingon\",\n ko: \"Korean\",\n \"ko-KP\": \"Korean (North Korea)\",\n \"ko-KR\": \"Korean (South Korea)\",\n la: \"Latin\",\n lv: \"Latvian\",\n lt: \"Lithuanian\",\n lb: \"Luxembourgish\",\n mk: \"North Macedonia\",\n ms: \"Malay\",\n ml: \"Malayalam\",\n mt: \"Maltese\",\n mi: \"Maori\",\n mr: \"Marathi\",\n mo: \"Moldavian\",\n nv: \"Navajo\",\n ng: \"Ndonga\",\n ne: \"Nepali\",\n no: \"Norwegian\",\n nb: \"Norwegian (Bokmal)\",\n nn: \"Norwegian (Nynorsk)\",\n oc: \"Occitan\",\n or: \"Oriya\",\n om: \"Oromo\",\n fa: \"Persian\",\n \"fa-IR\": \"Persian/Iran\",\n pl: \"Polish\",\n pt: \"Portuguese\",\n \"pt-BR\": \"Portuguese (Brazil)\",\n pa: \"Punjabi\",\n \"pa-IN\": \"Punjabi (India)\",\n \"pa-PK\": \"Punjabi (Pakistan)\",\n qu: \"Quechua\",\n rm: \"Rhaeto-Romanic\",\n ro: \"Romanian\",\n \"ro-MO\": \"Romanian (Moldavia)\",\n ru: \"Russian\",\n \"ru-MO\": \"Russian (Moldavia)\",\n sz: \"Sami (Lappish)\",\n sg: \"Sango\",\n sa: \"Sanskrit\",\n sc: \"Sardinian\",\n sd: \"Sindhi\",\n si: \"Singhalese\",\n sr: \"Serbian\",\n sk: \"Slovak\",\n sl: \"Slovenian\",\n so: \"Somani\",\n sb: \"Sorbian\",\n es: \"Spanish\",\n \"es-AR\": \"Spanish (Argentina)\",\n \"es-BO\": \"Spanish (Bolivia)\",\n \"es-CL\": \"Spanish (Chile)\",\n \"es-CO\": \"Spanish (Colombia)\",\n \"es-CR\": \"Spanish (Costa Rica)\",\n \"es-DO\": \"Spanish (Dominican Republic)\",\n \"es-EC\": \"Spanish (Ecuador)\",\n \"es-SV\": \"Spanish (El Salvador)\",\n \"es-GT\": \"Spanish (Guatemala)\",\n \"es-HN\": \"Spanish (Honduras)\",\n \"es-MX\": \"Spanish (Mexico)\",\n \"es-NI\": \"Spanish (Nicaragua)\",\n \"es-PA\": \"Spanish (Panama)\",\n \"es-PY\": \"Spanish (Paraguay)\",\n \"es-PE\": \"Spanish (Peru)\",\n \"es-PR\": \"Spanish (Puerto Rico)\",\n \"es-ES\": \"Spanish (Spain)\",\n \"es-UY\": \"Spanish (Uruguay)\",\n \"es-VE\": \"Spanish (Venezuela)\",\n sx: \"Sutu\",\n sw: \"Swahili\",\n sv: \"Swedish\",\n \"sv-FI\": \"Swedish (Finland)\",\n \"sv-SV\": \"Swedish (Sweden)\",\n ta: \"Tamil\",\n tt: \"Tatar\",\n te: \"Teluga\",\n th: \"Thai\",\n tig: \"Tigre\",\n ts: \"Tsonga\",\n tn: \"Tswana\",\n tr: \"Turkish\",\n tk: \"Turkmen\",\n uk: \"Ukrainian\",\n hsb: \"Upper Sorbian\",\n ur: \"Urdu\",\n ve: \"Venda\",\n vi: \"Vietnamese\",\n vo: \"Volapuk\",\n wa: \"Walloon\",\n cy: \"Welsh\",\n xh: \"Xhosa\",\n ji: \"Yiddish\",\n zu: \"Zulu\"\n };\n\n if (this.internal.languageSettings === undefined) {\n this.internal.languageSettings = {};\n this.internal.languageSettings.isSubscribed = false;\n }\n\n if (langCodes[langCode] !== undefined) {\n this.internal.languageSettings.languageCode = langCode;\n if (this.internal.languageSettings.isSubscribed === false) {\n this.internal.events.subscribe(\"putCatalog\", function() {\n this.internal.write(\n \"/Lang (\" + this.internal.languageSettings.languageCode + \")\"\n );\n });\n this.internal.languageSettings.isSubscribed = true;\n }\n }\n return this;\n };\n})(jsPDF.API);\n","/** @license\n jsPDF standard_fonts_metrics plugin\n * Copyright (c) 2012 Willow Systems Corporation, https://github.com/willowsystems\n * MIT license.\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n * \n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * This file adds the standard font metrics to jsPDF.\n *\n * Font metrics data is reprocessed derivative of contents of\n * \"Font Metrics for PDF Core 14 Fonts\" package, which exhibits the following copyright and license:\n *\n * Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.\n *\n * This file and the 14 PostScript(R) AFM files it accompanies may be used,\n * copied, and distributed for any purpose and without charge, with or without\n * modification, provided that all copyright notices are retained; that the AFM\n * files are not distributed without this file; that all modifications to this\n * file or any of the AFM files are prominently noted in the modified file(s);\n * and that this paragraph is not modified. Adobe Systems has no responsibility\n * or obligation to support the use of the AFM files.\n *\n * @name standard_fonts_metrics\n * @module\n */\n\n(function(API) {\n \"use strict\";\n API.__fontmetrics__ = API.__fontmetrics__ || {};\n\n var decoded = \"0123456789abcdef\",\n encoded = \"klmnopqrstuvwxyz\",\n mappingUncompress = {},\n mappingCompress = {};\n\n for (var i = 0; i < encoded.length; i++) {\n mappingUncompress[encoded[i]] = decoded[i];\n mappingCompress[decoded[i]] = encoded[i];\n }\n\n var hex = function(value) {\n return \"0x\" + parseInt(value, 10).toString(16);\n };\n\n var compress = (API.__fontmetrics__.compress = function(data) {\n var vals = [\"{\"];\n var value, keystring, valuestring, numberprefix;\n\n for (var key in data) {\n value = data[key];\n\n if (!isNaN(parseInt(key, 10))) {\n key = parseInt(key, 10);\n keystring = hex(key).slice(2);\n keystring =\n keystring.slice(0, -1) + mappingCompress[keystring.slice(-1)];\n } else {\n keystring = \"'\" + key + \"'\";\n }\n\n if (typeof value == \"number\") {\n if (value < 0) {\n valuestring = hex(value).slice(3);\n numberprefix = \"-\";\n } else {\n valuestring = hex(value).slice(2);\n numberprefix = \"\";\n }\n valuestring =\n numberprefix +\n valuestring.slice(0, -1) +\n mappingCompress[valuestring.slice(-1)];\n } else {\n if (typeof value === \"object\") {\n valuestring = compress(value);\n } else {\n throw new Error(\n \"Don't know what to do with value type \" + typeof value + \".\"\n );\n }\n }\n vals.push(keystring + valuestring);\n }\n vals.push(\"}\");\n return vals.join(\"\");\n });\n\n /**\n * Uncompresses data compressed into custom, base16-like format.\n *\n * @public\n * @function\n * @param\n * @returns {Type}\n */\n var uncompress = (API.__fontmetrics__.uncompress = function(data) {\n if (typeof data !== \"string\") {\n throw new Error(\"Invalid argument passed to uncompress.\");\n }\n\n var output = {},\n sign = 1,\n stringparts, // undef. will be [] in string mode\n activeobject = output,\n parentchain = [],\n parent_key_pair,\n keyparts = \"\",\n valueparts = \"\",\n key, // undef. will be Truthy when Key is resolved.\n datalen = data.length - 1, // stripping ending }\n ch;\n\n for (var i = 1; i < datalen; i += 1) {\n // - { } ' are special.\n\n ch = data[i];\n\n if (ch == \"'\") {\n if (stringparts) {\n // end of string mode\n key = stringparts.join(\"\");\n stringparts = undefined;\n } else {\n // start of string mode\n stringparts = [];\n }\n } else if (stringparts) {\n stringparts.push(ch);\n } else if (ch == \"{\") {\n // start of object\n parentchain.push([activeobject, key]);\n activeobject = {};\n key = undefined;\n } else if (ch == \"}\") {\n // end of object\n parent_key_pair = parentchain.pop();\n parent_key_pair[0][parent_key_pair[1]] = activeobject;\n key = undefined;\n activeobject = parent_key_pair[0];\n } else if (ch == \"-\") {\n sign = -1;\n } else {\n // must be number\n if (key === undefined) {\n if (mappingUncompress.hasOwnProperty(ch)) {\n keyparts += mappingUncompress[ch];\n key = parseInt(keyparts, 16) * sign;\n sign = +1;\n keyparts = \"\";\n } else {\n keyparts += ch;\n }\n } else {\n if (mappingUncompress.hasOwnProperty(ch)) {\n valueparts += mappingUncompress[ch];\n activeobject[key] = parseInt(valueparts, 16) * sign;\n sign = +1;\n key = undefined;\n valueparts = \"\";\n } else {\n valueparts += ch;\n }\n }\n }\n }\n return output;\n });\n\n // encoding = 'Unicode'\n // NOT UTF8, NOT UTF16BE/LE, NOT UCS2BE/LE. NO clever BOM behavior\n // Actual 16bit char codes used.\n // no multi-byte logic here\n\n // Unicode characters to WinAnsiEncoding:\n // {402: 131, 8211: 150, 8212: 151, 8216: 145, 8217: 146, 8218: 130, 8220: 147, 8221: 148, 8222: 132, 8224: 134, 8225: 135, 8226: 149, 8230: 133, 8364: 128, 8240:137, 8249: 139, 8250: 155, 710: 136, 8482: 153, 338: 140, 339: 156, 732: 152, 352: 138, 353: 154, 376: 159, 381: 142, 382: 158}\n // as you can see, all Unicode chars are outside of 0-255 range. No char code conflicts.\n // this means that you can give Win cp1252 encoded strings to jsPDF for rendering directly\n // as well as give strings with some (supported by these fonts) Unicode characters and\n // these will be mapped to win cp1252\n // for example, you can send char code (cp1252) 0x80 or (unicode) 0x20AC, getting \"Euro\" glyph displayed in both cases.\n\n var encodingBlock = {\n codePages: [\"WinAnsiEncoding\"],\n WinAnsiEncoding: uncompress(\n \"{19m8n201n9q201o9r201s9l201t9m201u8m201w9n201x9o201y8o202k8q202l8r202m9p202q8p20aw8k203k8t203t8v203u9v2cq8s212m9t15m8w15n9w2dw9s16k8u16l9u17s9z17x8y17y9y}\"\n )\n };\n var encodings = {\n Unicode: {\n Courier: encodingBlock,\n \"Courier-Bold\": encodingBlock,\n \"Courier-BoldOblique\": encodingBlock,\n \"Courier-Oblique\": encodingBlock,\n Helvetica: encodingBlock,\n \"Helvetica-Bold\": encodingBlock,\n \"Helvetica-BoldOblique\": encodingBlock,\n \"Helvetica-Oblique\": encodingBlock,\n \"Times-Roman\": encodingBlock,\n \"Times-Bold\": encodingBlock,\n \"Times-BoldItalic\": encodingBlock,\n \"Times-Italic\": encodingBlock\n //\t, 'Symbol'\n //\t, 'ZapfDingbats'\n }\n };\n\n var fontMetrics = {\n Unicode: {\n // all sizing numbers are n/fontMetricsFractionOf = one font size unit\n // this means that if fontMetricsFractionOf = 1000, and letter A's width is 476, it's\n // width is 476/1000 or 47.6% of its height (regardless of font size)\n // At this time this value applies to \"widths\" and \"kerning\" numbers.\n\n // char code 0 represents \"default\" (average) width - use it for chars missing in this table.\n // key 'fof' represents the \"fontMetricsFractionOf\" value\n\n \"Courier-Oblique\": uncompress(\n \"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"\n ),\n \"Times-BoldItalic\": uncompress(\n \"{'widths'{k3o2q4ycx2r201n3m201o6o201s2l201t2l201u2l201w3m201x3m201y3m2k1t2l2r202m2n2n3m2o3m2p5n202q6o2r1w2s2l2t2l2u3m2v3t2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w3t3x3t3y3t3z3m4k5n4l4m4m4m4n4m4o4s4p4m4q4m4r4s4s4y4t2r4u3m4v4m4w3x4x5t4y4s4z4s5k3x5l4s5m4m5n3r5o3x5p4s5q4m5r5t5s4m5t3x5u3x5v2l5w1w5x2l5y3t5z3m6k2l6l3m6m3m6n2w6o3m6p2w6q2l6r3m6s3r6t1w6u1w6v3m6w1w6x4y6y3r6z3m7k3m7l3m7m2r7n2r7o1w7p3r7q2w7r4m7s3m7t2w7u2r7v2n7w1q7x2n7y3t202l3mcl4mal2ram3man3mao3map3mar3mas2lat4uau1uav3maw3way4uaz2lbk2sbl3t'fof'6obo2lbp3tbq3mbr1tbs2lbu1ybv3mbz3mck4m202k3mcm4mcn4mco4mcp4mcq5ycr4mcs4mct4mcu4mcv4mcw2r2m3rcy2rcz2rdl4sdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek3mel3mem3men3meo3mep3meq4ser2wes2wet2weu2wev2wew1wex1wey1wez1wfl3rfm3mfn3mfo3mfp3mfq3mfr3tfs3mft3rfu3rfv3rfw3rfz2w203k6o212m6o2dw2l2cq2l3t3m3u2l17s3x19m3m}'kerning'{cl{4qu5kt5qt5rs17ss5ts}201s{201ss}201t{cks4lscmscnscoscpscls2wu2yu201ts}201x{2wu2yu}2k{201ts}2w{4qx5kx5ou5qx5rs17su5tu}2x{17su5tu5ou}2y{4qx5kx5ou5qx5rs17ss5ts}'fof'-6ofn{17sw5tw5ou5qw5rs}7t{cksclscmscnscoscps4ls}3u{17su5tu5os5qs}3v{17su5tu5os5qs}7p{17su5tu}ck{4qu5kt5qt5rs17ss5ts}4l{4qu5kt5qt5rs17ss5ts}cm{4qu5kt5qt5rs17ss5ts}cn{4qu5kt5qt5rs17ss5ts}co{4qu5kt5qt5rs17ss5ts}cp{4qu5kt5qt5rs17ss5ts}6l{4qu5ou5qw5rt17su5tu}5q{ckuclucmucnucoucpu4lu}5r{ckuclucmucnucoucpu4lu}7q{cksclscmscnscoscps4ls}6p{4qu5ou5qw5rt17sw5tw}ek{4qu5ou5qw5rt17su5tu}el{4qu5ou5qw5rt17su5tu}em{4qu5ou5qw5rt17su5tu}en{4qu5ou5qw5rt17su5tu}eo{4qu5ou5qw5rt17su5tu}ep{4qu5ou5qw5rt17su5tu}es{17ss5ts5qs4qu}et{4qu5ou5qw5rt17sw5tw}eu{4qu5ou5qw5rt17ss5ts}ev{17ss5ts5qs4qu}6z{17sw5tw5ou5qw5rs}fm{17sw5tw5ou5qw5rs}7n{201ts}fo{17sw5tw5ou5qw5rs}fp{17sw5tw5ou5qw5rs}fq{17sw5tw5ou5qw5rs}7r{cksclscmscnscoscps4ls}fs{17sw5tw5ou5qw5rs}ft{17su5tu}fu{17su5tu}fv{17su5tu}fw{17su5tu}fz{cksclscmscnscoscps4ls}}}\"\n ),\n \"Helvetica-Bold\": uncompress(\n \"{'widths'{k3s2q4scx1w201n3r201o6o201s1w201t1w201u1w201w3m201x3m201y3m2k1w2l2l202m2n2n3r2o3r2p5t202q6o2r1s2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v2l3w3u3x3u3y3u3z3x4k6l4l4s4m4s4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3r4v4s4w3x4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v2l5w1w5x2l5y3u5z3r6k2l6l3r6m3x6n3r6o3x6p3r6q2l6r3x6s3x6t1w6u1w6v3r6w1w6x5t6y3x6z3x7k3x7l3x7m2r7n3r7o2l7p3x7q3r7r4y7s3r7t3r7u3m7v2r7w1w7x2r7y3u202l3rcl4sal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3xbq3rbr1wbs2lbu2obv3rbz3xck4s202k3rcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw1w2m2zcy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3res3ret3reu3rev3rew1wex1wey1wez1wfl3xfm3xfn3xfo3xfp3xfq3xfr3ufs3xft3xfu3xfv3xfw3xfz3r203k6o212m6o2dw2l2cq2l3t3r3u2l17s4m19m3r}'kerning'{cl{4qs5ku5ot5qs17sv5tv}201t{2ww4wy2yw}201w{2ks}201x{2ww4wy2yw}2k{201ts201xs}2w{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}2x{5ow5qs}2y{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}'fof'-6o7p{17su5tu5ot}ck{4qs5ku5ot5qs17sv5tv}4l{4qs5ku5ot5qs17sv5tv}cm{4qs5ku5ot5qs17sv5tv}cn{4qs5ku5ot5qs17sv5tv}co{4qs5ku5ot5qs17sv5tv}cp{4qs5ku5ot5qs17sv5tv}6l{17st5tt5os}17s{2kwclvcmvcnvcovcpv4lv4wwckv}5o{2kucltcmtcntcotcpt4lt4wtckt}5q{2ksclscmscnscoscps4ls4wvcks}5r{2ks4ws}5t{2kwclvcmvcnvcovcpv4lv4wwckv}eo{17st5tt5os}fu{17su5tu5ot}6p{17ss5ts}ek{17st5tt5os}el{17st5tt5os}em{17st5tt5os}en{17st5tt5os}6o{201ts}ep{17st5tt5os}es{17ss5ts}et{17ss5ts}eu{17ss5ts}ev{17ss5ts}6z{17su5tu5os5qt}fm{17su5tu5os5qt}fn{17su5tu5os5qt}fo{17su5tu5os5qt}fp{17su5tu5os5qt}fq{17su5tu5os5qt}fs{17su5tu5os5qt}ft{17su5tu5ot}7m{5os}fv{17su5tu5ot}fw{17su5tu5ot}}}\"\n ),\n Courier: uncompress(\"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"),\n \"Courier-BoldOblique\": uncompress(\n \"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"\n ),\n \"Times-Bold\": uncompress(\n \"{'widths'{k3q2q5ncx2r201n3m201o6o201s2l201t2l201u2l201w3m201x3m201y3m2k1t2l2l202m2n2n3m2o3m2p6o202q6o2r1w2s2l2t2l2u3m2v3t2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w3t3x3t3y3t3z3m4k5x4l4s4m4m4n4s4o4s4p4m4q3x4r4y4s4y4t2r4u3m4v4y4w4m4x5y4y4s4z4y5k3x5l4y5m4s5n3r5o4m5p4s5q4s5r6o5s4s5t4s5u4m5v2l5w1w5x2l5y3u5z3m6k2l6l3m6m3r6n2w6o3r6p2w6q2l6r3m6s3r6t1w6u2l6v3r6w1w6x5n6y3r6z3m7k3r7l3r7m2w7n2r7o2l7p3r7q3m7r4s7s3m7t3m7u2w7v2r7w1q7x2r7y3o202l3mcl4sal2lam3man3mao3map3mar3mas2lat4uau1yav3maw3tay4uaz2lbk2sbl3t'fof'6obo2lbp3rbr1tbs2lbu2lbv3mbz3mck4s202k3mcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw2r2m3rcy2rcz2rdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3rek3mel3mem3men3meo3mep3meq4ser2wes2wet2weu2wev2wew1wex1wey1wez1wfl3rfm3mfn3mfo3mfp3mfq3mfr3tfs3mft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3m3u2l17s4s19m3m}'kerning'{cl{4qt5ks5ot5qy5rw17sv5tv}201t{cks4lscmscnscoscpscls4wv}2k{201ts}2w{4qu5ku7mu5os5qx5ru17su5tu}2x{17su5tu5ou5qs}2y{4qv5kv7mu5ot5qz5ru17su5tu}'fof'-6o7t{cksclscmscnscoscps4ls}3u{17su5tu5os5qu}3v{17su5tu5os5qu}fu{17su5tu5ou5qu}7p{17su5tu5ou5qu}ck{4qt5ks5ot5qy5rw17sv5tv}4l{4qt5ks5ot5qy5rw17sv5tv}cm{4qt5ks5ot5qy5rw17sv5tv}cn{4qt5ks5ot5qy5rw17sv5tv}co{4qt5ks5ot5qy5rw17sv5tv}cp{4qt5ks5ot5qy5rw17sv5tv}6l{17st5tt5ou5qu}17s{ckuclucmucnucoucpu4lu4wu}5o{ckuclucmucnucoucpu4lu4wu}5q{ckzclzcmzcnzcozcpz4lz4wu}5r{ckxclxcmxcnxcoxcpx4lx4wu}5t{ckuclucmucnucoucpu4lu4wu}7q{ckuclucmucnucoucpu4lu}6p{17sw5tw5ou5qu}ek{17st5tt5qu}el{17st5tt5ou5qu}em{17st5tt5qu}en{17st5tt5qu}eo{17st5tt5qu}ep{17st5tt5ou5qu}es{17ss5ts5qu}et{17sw5tw5ou5qu}eu{17sw5tw5ou5qu}ev{17ss5ts5qu}6z{17sw5tw5ou5qu5rs}fm{17sw5tw5ou5qu5rs}fn{17sw5tw5ou5qu5rs}fo{17sw5tw5ou5qu5rs}fp{17sw5tw5ou5qu5rs}fq{17sw5tw5ou5qu5rs}7r{cktcltcmtcntcotcpt4lt5os}fs{17sw5tw5ou5qu5rs}ft{17su5tu5ou5qu}7m{5os}fv{17su5tu5ou5qu}fw{17su5tu5ou5qu}fz{cksclscmscnscoscps4ls}}}\"\n ),\n Symbol: uncompress(\n \"{'widths'{k3uaw4r19m3m2k1t2l2l202m2y2n3m2p5n202q6o3k3m2s2l2t2l2v3r2w1t3m3m2y1t2z1wbk2sbl3r'fof'6o3n3m3o3m3p3m3q3m3r3m3s3m3t3m3u1w3v1w3w3r3x3r3y3r3z2wbp3t3l3m5v2l5x2l5z3m2q4yfr3r7v3k7w1o7x3k}'kerning'{'fof'-6o}}\"\n ),\n Helvetica: uncompress(\n \"{'widths'{k3p2q4mcx1w201n3r201o6o201s1q201t1q201u1q201w2l201x2l201y2l2k1w2l1w202m2n2n3r2o3r2p5t202q6o2r1n2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v1w3w3u3x3u3y3u3z3r4k6p4l4m4m4m4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3m4v4m4w3r4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v1w5w1w5x1w5y2z5z3r6k2l6l3r6m3r6n3m6o3r6p3r6q1w6r3r6s3r6t1q6u1q6v3m6w1q6x5n6y3r6z3r7k3r7l3r7m2l7n3m7o1w7p3r7q3m7r4s7s3m7t3m7u3m7v2l7w1u7x2l7y3u202l3rcl4mal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3rbr1wbs2lbu2obv3rbz3xck4m202k3rcm4mcn4mco4mcp4mcq6ocr4scs4mct4mcu4mcv4mcw1w2m2ncy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3mes3ret3reu3rev3rew1wex1wey1wez1wfl3rfm3rfn3rfo3rfp3rfq3rfr3ufs3xft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3r3u1w17s4m19m3r}'kerning'{5q{4wv}cl{4qs5kw5ow5qs17sv5tv}201t{2wu4w1k2yu}201x{2wu4wy2yu}17s{2ktclucmucnu4otcpu4lu4wycoucku}2w{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}2x{17sy5ty5oy5qs}2y{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}'fof'-6o7p{17sv5tv5ow}ck{4qs5kw5ow5qs17sv5tv}4l{4qs5kw5ow5qs17sv5tv}cm{4qs5kw5ow5qs17sv5tv}cn{4qs5kw5ow5qs17sv5tv}co{4qs5kw5ow5qs17sv5tv}cp{4qs5kw5ow5qs17sv5tv}6l{17sy5ty5ow}do{17st5tt}4z{17st5tt}7s{fst}dm{17st5tt}dn{17st5tt}5o{ckwclwcmwcnwcowcpw4lw4wv}dp{17st5tt}dq{17st5tt}7t{5ow}ds{17st5tt}5t{2ktclucmucnu4otcpu4lu4wycoucku}fu{17sv5tv5ow}6p{17sy5ty5ow5qs}ek{17sy5ty5ow}el{17sy5ty5ow}em{17sy5ty5ow}en{5ty}eo{17sy5ty5ow}ep{17sy5ty5ow}es{17sy5ty5qs}et{17sy5ty5ow5qs}eu{17sy5ty5ow5qs}ev{17sy5ty5ow5qs}6z{17sy5ty5ow5qs}fm{17sy5ty5ow5qs}fn{17sy5ty5ow5qs}fo{17sy5ty5ow5qs}fp{17sy5ty5qs}fq{17sy5ty5ow5qs}7r{5ow}fs{17sy5ty5ow5qs}ft{17sv5tv5ow}7m{5ow}fv{17sv5tv5ow}fw{17sv5tv5ow}}}\"\n ),\n \"Helvetica-BoldOblique\": uncompress(\n \"{'widths'{k3s2q4scx1w201n3r201o6o201s1w201t1w201u1w201w3m201x3m201y3m2k1w2l2l202m2n2n3r2o3r2p5t202q6o2r1s2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v2l3w3u3x3u3y3u3z3x4k6l4l4s4m4s4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3r4v4s4w3x4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v2l5w1w5x2l5y3u5z3r6k2l6l3r6m3x6n3r6o3x6p3r6q2l6r3x6s3x6t1w6u1w6v3r6w1w6x5t6y3x6z3x7k3x7l3x7m2r7n3r7o2l7p3x7q3r7r4y7s3r7t3r7u3m7v2r7w1w7x2r7y3u202l3rcl4sal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3xbq3rbr1wbs2lbu2obv3rbz3xck4s202k3rcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw1w2m2zcy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3res3ret3reu3rev3rew1wex1wey1wez1wfl3xfm3xfn3xfo3xfp3xfq3xfr3ufs3xft3xfu3xfv3xfw3xfz3r203k6o212m6o2dw2l2cq2l3t3r3u2l17s4m19m3r}'kerning'{cl{4qs5ku5ot5qs17sv5tv}201t{2ww4wy2yw}201w{2ks}201x{2ww4wy2yw}2k{201ts201xs}2w{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}2x{5ow5qs}2y{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}'fof'-6o7p{17su5tu5ot}ck{4qs5ku5ot5qs17sv5tv}4l{4qs5ku5ot5qs17sv5tv}cm{4qs5ku5ot5qs17sv5tv}cn{4qs5ku5ot5qs17sv5tv}co{4qs5ku5ot5qs17sv5tv}cp{4qs5ku5ot5qs17sv5tv}6l{17st5tt5os}17s{2kwclvcmvcnvcovcpv4lv4wwckv}5o{2kucltcmtcntcotcpt4lt4wtckt}5q{2ksclscmscnscoscps4ls4wvcks}5r{2ks4ws}5t{2kwclvcmvcnvcovcpv4lv4wwckv}eo{17st5tt5os}fu{17su5tu5ot}6p{17ss5ts}ek{17st5tt5os}el{17st5tt5os}em{17st5tt5os}en{17st5tt5os}6o{201ts}ep{17st5tt5os}es{17ss5ts}et{17ss5ts}eu{17ss5ts}ev{17ss5ts}6z{17su5tu5os5qt}fm{17su5tu5os5qt}fn{17su5tu5os5qt}fo{17su5tu5os5qt}fp{17su5tu5os5qt}fq{17su5tu5os5qt}fs{17su5tu5os5qt}ft{17su5tu5ot}7m{5os}fv{17su5tu5ot}fw{17su5tu5ot}}}\"\n ),\n ZapfDingbats: uncompress(\"{'widths'{k4u2k1w'fof'6o}'kerning'{'fof'-6o}}\"),\n \"Courier-Bold\": uncompress(\"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"),\n \"Times-Italic\": uncompress(\n \"{'widths'{k3n2q4ycx2l201n3m201o5t201s2l201t2l201u2l201w3r201x3r201y3r2k1t2l2l202m2n2n3m2o3m2p5n202q5t2r1p2s2l2t2l2u3m2v4n2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w4n3x4n3y4n3z3m4k5w4l3x4m3x4n4m4o4s4p3x4q3x4r4s4s4s4t2l4u2w4v4m4w3r4x5n4y4m4z4s5k3x5l4s5m3x5n3m5o3r5p4s5q3x5r5n5s3x5t3r5u3r5v2r5w1w5x2r5y2u5z3m6k2l6l3m6m3m6n2w6o3m6p2w6q1w6r3m6s3m6t1w6u1w6v2w6w1w6x4s6y3m6z3m7k3m7l3m7m2r7n2r7o1w7p3m7q2w7r4m7s2w7t2w7u2r7v2s7w1v7x2s7y3q202l3mcl3xal2ram3man3mao3map3mar3mas2lat4wau1vav3maw4nay4waz2lbk2sbl4n'fof'6obo2lbp3mbq3obr1tbs2lbu1zbv3mbz3mck3x202k3mcm3xcn3xco3xcp3xcq5tcr4mcs3xct3xcu3xcv3xcw2l2m2ucy2lcz2ldl4mdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek3mel3mem3men3meo3mep3meq4mer2wes2wet2weu2wev2wew1wex1wey1wez1wfl3mfm3mfn3mfo3mfp3mfq3mfr4nfs3mft3mfu3mfv3mfw3mfz2w203k6o212m6m2dw2l2cq2l3t3m3u2l17s3r19m3m}'kerning'{cl{5kt4qw}201s{201sw}201t{201tw2wy2yy6q-t}201x{2wy2yy}2k{201tw}2w{7qs4qy7rs5ky7mw5os5qx5ru17su5tu}2x{17ss5ts5os}2y{7qs4qy7rs5ky7mw5os5qx5ru17su5tu}'fof'-6o6t{17ss5ts5qs}7t{5os}3v{5qs}7p{17su5tu5qs}ck{5kt4qw}4l{5kt4qw}cm{5kt4qw}cn{5kt4qw}co{5kt4qw}cp{5kt4qw}6l{4qs5ks5ou5qw5ru17su5tu}17s{2ks}5q{ckvclvcmvcnvcovcpv4lv}5r{ckuclucmucnucoucpu4lu}5t{2ks}6p{4qs5ks5ou5qw5ru17su5tu}ek{4qs5ks5ou5qw5ru17su5tu}el{4qs5ks5ou5qw5ru17su5tu}em{4qs5ks5ou5qw5ru17su5tu}en{4qs5ks5ou5qw5ru17su5tu}eo{4qs5ks5ou5qw5ru17su5tu}ep{4qs5ks5ou5qw5ru17su5tu}es{5ks5qs4qs}et{4qs5ks5ou5qw5ru17su5tu}eu{4qs5ks5qw5ru17su5tu}ev{5ks5qs4qs}ex{17ss5ts5qs}6z{4qv5ks5ou5qw5ru17su5tu}fm{4qv5ks5ou5qw5ru17su5tu}fn{4qv5ks5ou5qw5ru17su5tu}fo{4qv5ks5ou5qw5ru17su5tu}fp{4qv5ks5ou5qw5ru17su5tu}fq{4qv5ks5ou5qw5ru17su5tu}7r{5os}fs{4qv5ks5ou5qw5ru17su5tu}ft{17su5tu5qs}fu{17su5tu5qs}fv{17su5tu5qs}fw{17su5tu5qs}}}\"\n ),\n \"Times-Roman\": uncompress(\n \"{'widths'{k3n2q4ycx2l201n3m201o6o201s2l201t2l201u2l201w2w201x2w201y2w2k1t2l2l202m2n2n3m2o3m2p5n202q6o2r1m2s2l2t2l2u3m2v3s2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v1w3w3s3x3s3y3s3z2w4k5w4l4s4m4m4n4m4o4s4p3x4q3r4r4s4s4s4t2l4u2r4v4s4w3x4x5t4y4s4z4s5k3r5l4s5m4m5n3r5o3x5p4s5q4s5r5y5s4s5t4s5u3x5v2l5w1w5x2l5y2z5z3m6k2l6l2w6m3m6n2w6o3m6p2w6q2l6r3m6s3m6t1w6u1w6v3m6w1w6x4y6y3m6z3m7k3m7l3m7m2l7n2r7o1w7p3m7q3m7r4s7s3m7t3m7u2w7v3k7w1o7x3k7y3q202l3mcl4sal2lam3man3mao3map3mar3mas2lat4wau1vav3maw3say4waz2lbk2sbl3s'fof'6obo2lbp3mbq2xbr1tbs2lbu1zbv3mbz2wck4s202k3mcm4scn4sco4scp4scq5tcr4mcs3xct3xcu3xcv3xcw2l2m2tcy2lcz2ldl4sdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek2wel2wem2wen2weo2wep2weq4mer2wes2wet2weu2wev2wew1wex1wey1wez1wfl3mfm3mfn3mfo3mfp3mfq3mfr3sfs3mft3mfu3mfv3mfw3mfz3m203k6o212m6m2dw2l2cq2l3t3m3u1w17s4s19m3m}'kerning'{cl{4qs5ku17sw5ou5qy5rw201ss5tw201ws}201s{201ss}201t{ckw4lwcmwcnwcowcpwclw4wu201ts}2k{201ts}2w{4qs5kw5os5qx5ru17sx5tx}2x{17sw5tw5ou5qu}2y{4qs5kw5os5qx5ru17sx5tx}'fof'-6o7t{ckuclucmucnucoucpu4lu5os5rs}3u{17su5tu5qs}3v{17su5tu5qs}7p{17sw5tw5qs}ck{4qs5ku17sw5ou5qy5rw201ss5tw201ws}4l{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cm{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cn{4qs5ku17sw5ou5qy5rw201ss5tw201ws}co{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cp{4qs5ku17sw5ou5qy5rw201ss5tw201ws}6l{17su5tu5os5qw5rs}17s{2ktclvcmvcnvcovcpv4lv4wuckv}5o{ckwclwcmwcnwcowcpw4lw4wu}5q{ckyclycmycnycoycpy4ly4wu5ms}5r{cktcltcmtcntcotcpt4lt4ws}5t{2ktclvcmvcnvcovcpv4lv4wuckv}7q{cksclscmscnscoscps4ls}6p{17su5tu5qw5rs}ek{5qs5rs}el{17su5tu5os5qw5rs}em{17su5tu5os5qs5rs}en{17su5qs5rs}eo{5qs5rs}ep{17su5tu5os5qw5rs}es{5qs}et{17su5tu5qw5rs}eu{17su5tu5qs5rs}ev{5qs}6z{17sv5tv5os5qx5rs}fm{5os5qt5rs}fn{17sv5tv5os5qx5rs}fo{17sv5tv5os5qx5rs}fp{5os5qt5rs}fq{5os5qt5rs}7r{ckuclucmucnucoucpu4lu5os}fs{17sv5tv5os5qx5rs}ft{17ss5ts5qs}fu{17sw5tw5qs}fv{17sw5tw5qs}fw{17ss5ts5qs}fz{ckuclucmucnucoucpu4lu5os5rs}}}\"\n ),\n \"Helvetica-Oblique\": uncompress(\n \"{'widths'{k3p2q4mcx1w201n3r201o6o201s1q201t1q201u1q201w2l201x2l201y2l2k1w2l1w202m2n2n3r2o3r2p5t202q6o2r1n2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v1w3w3u3x3u3y3u3z3r4k6p4l4m4m4m4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3m4v4m4w3r4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v1w5w1w5x1w5y2z5z3r6k2l6l3r6m3r6n3m6o3r6p3r6q1w6r3r6s3r6t1q6u1q6v3m6w1q6x5n6y3r6z3r7k3r7l3r7m2l7n3m7o1w7p3r7q3m7r4s7s3m7t3m7u3m7v2l7w1u7x2l7y3u202l3rcl4mal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3rbr1wbs2lbu2obv3rbz3xck4m202k3rcm4mcn4mco4mcp4mcq6ocr4scs4mct4mcu4mcv4mcw1w2m2ncy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3mes3ret3reu3rev3rew1wex1wey1wez1wfl3rfm3rfn3rfo3rfp3rfq3rfr3ufs3xft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3r3u1w17s4m19m3r}'kerning'{5q{4wv}cl{4qs5kw5ow5qs17sv5tv}201t{2wu4w1k2yu}201x{2wu4wy2yu}17s{2ktclucmucnu4otcpu4lu4wycoucku}2w{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}2x{17sy5ty5oy5qs}2y{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}'fof'-6o7p{17sv5tv5ow}ck{4qs5kw5ow5qs17sv5tv}4l{4qs5kw5ow5qs17sv5tv}cm{4qs5kw5ow5qs17sv5tv}cn{4qs5kw5ow5qs17sv5tv}co{4qs5kw5ow5qs17sv5tv}cp{4qs5kw5ow5qs17sv5tv}6l{17sy5ty5ow}do{17st5tt}4z{17st5tt}7s{fst}dm{17st5tt}dn{17st5tt}5o{ckwclwcmwcnwcowcpw4lw4wv}dp{17st5tt}dq{17st5tt}7t{5ow}ds{17st5tt}5t{2ktclucmucnu4otcpu4lu4wycoucku}fu{17sv5tv5ow}6p{17sy5ty5ow5qs}ek{17sy5ty5ow}el{17sy5ty5ow}em{17sy5ty5ow}en{5ty}eo{17sy5ty5ow}ep{17sy5ty5ow}es{17sy5ty5qs}et{17sy5ty5ow5qs}eu{17sy5ty5ow5qs}ev{17sy5ty5ow5qs}6z{17sy5ty5ow5qs}fm{17sy5ty5ow5qs}fn{17sy5ty5ow5qs}fo{17sy5ty5ow5qs}fp{17sy5ty5qs}fq{17sy5ty5ow5qs}7r{5ow}fs{17sy5ty5ow5qs}ft{17sv5tv5ow}7m{5ow}fv{17sv5tv5ow}fw{17sv5tv5ow}}}\"\n )\n }\n };\n\n /*\n\tThis event handler is fired when a new jsPDF object is initialized\n\tThis event handler appends metrics data to standard fonts within\n\tthat jsPDF instance. The metrics are mapped over Unicode character\n\tcodes, NOT CIDs or other codes matching the StandardEncoding table of the\n\tstandard PDF fonts.\n\tFuture:\n\tAlso included is the encoding maping table, converting Unicode (UCS-2, UTF-16)\n\tchar codes to StandardEncoding character codes. The encoding table is to be used\n\tsomewhere around \"pdfEscape\" call.\n\t*/\n API.events.push([\n \"addFont\",\n function(data) {\n var font = data.font;\n\n var metrics = fontMetrics[\"Unicode\"][font.postScriptName];\n if (metrics) {\n font.metadata[\"Unicode\"] = {};\n font.metadata[\"Unicode\"].widths = metrics.widths;\n font.metadata[\"Unicode\"].kerning = metrics.kerning;\n }\n\n var encodingBlock = encodings[\"Unicode\"][font.postScriptName];\n if (encodingBlock) {\n font.metadata[\"Unicode\"].encoding = encodingBlock;\n font.encoding = encodingBlock.codePages[0];\n }\n }\n ]); // end of adding event handler\n})(jsPDF.API);\n","/**\n * @license\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { atob } from \"../libs/AtobBtoa.js\";\n\n/**\n * @name ttfsupport\n * @module\n */\n(function(jsPDF) {\n \"use strict\";\n\n var binaryStringToUint8Array = function(binary_string) {\n var len = binary_string.length;\n var bytes = new Uint8Array(len);\n for (var i = 0; i < len; i++) {\n bytes[i] = binary_string.charCodeAt(i);\n }\n return bytes;\n };\n\n var addFont = function(font, file) {\n // eslint-disable-next-line no-control-regex\n if (/^\\x00\\x01\\x00\\x00/.test(file)) {\n file = binaryStringToUint8Array(file);\n } else {\n file = binaryStringToUint8Array(atob(file));\n }\n font.metadata = jsPDF.API.TTFFont.open(file);\n font.metadata.Unicode = font.metadata.Unicode || {\n encoding: {},\n kerning: {},\n widths: []\n };\n font.metadata.glyIdsUsed = [0];\n };\n\n jsPDF.API.events.push([\n \"addFont\",\n function(data) {\n var file = undefined;\n var font = data.font;\n var instance = data.instance;\n if (font.isStandardFont) {\n return;\n }\n if (typeof instance !== \"undefined\") {\n if (instance.existsFileInVFS(font.postScriptName) === false) {\n file = instance.loadFile(font.postScriptName);\n } else {\n file = instance.getFileFromVFS(font.postScriptName);\n }\n if (typeof file !== \"string\") {\n throw new Error(\n \"Font is not stored as string-data in vFS, import fonts or remove declaration doc.addFont('\" +\n font.postScriptName +\n \"').\"\n );\n }\n addFont(font, file);\n } else {\n throw new Error(\n \"Font does not exist in vFS, import fonts or remove declaration doc.addFont('\" +\n font.postScriptName +\n \"').\"\n );\n }\n }\n ]); // end of adding event handler\n})(jsPDF);\n","/** @license\n * Copyright (c) 2012 Willow Systems Corporation, https://github.com/willowsystems\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { console } from \"../libs/console.js\";\nimport { globalObject } from \"../libs/globalObject.js\";\n\n/**\n * jsPDF SVG plugin\n *\n * @name svg\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n function loadCanvg() {\n return (function() {\n if (globalObject[\"canvg\"]) {\n return Promise.resolve(globalObject[\"canvg\"]);\n }\n\n return import(\"canvg\");\n\n })()\n .catch(function(e) {\n return Promise.reject(new Error(\"Could not load canvg: \" + e));\n })\n .then(function(canvg) {\n return canvg.default ? canvg.default : canvg;\n });\n }\n\n /**\n * Parses SVG XML and saves it as image into the PDF.\n *\n * Depends on canvas-element and canvg\n *\n * @name addSvgAsImage\n * @public\n * @function\n * @param {string} SVG-Data as Text\n * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\n * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\n * @param {number} width of SVG-Image (in units declared at inception of PDF document)\n * @param {number} height of SVG-Image (in units declared at inception of PDF document)\n * @param {string} alias of SVG-Image (if used multiple times)\n * @param {string} compression of the generated JPEG, can have the values 'NONE', 'FAST', 'MEDIUM' and 'SLOW'\n * @param {number} rotation of the image in degrees (0-359)\n *\n * @returns jsPDF jsPDF-instance\n */\n jsPDFAPI.addSvgAsImage = function(\n svg,\n x,\n y,\n w,\n h,\n alias,\n compression,\n rotation\n ) {\n if (isNaN(x) || isNaN(y)) {\n console.error(\"jsPDF.addSvgAsImage: Invalid coordinates\", arguments);\n throw new Error(\"Invalid coordinates passed to jsPDF.addSvgAsImage\");\n }\n\n if (isNaN(w) || isNaN(h)) {\n console.error(\"jsPDF.addSvgAsImage: Invalid measurements\", arguments);\n throw new Error(\n \"Invalid measurements (width and/or height) passed to jsPDF.addSvgAsImage\"\n );\n }\n\n var canvas = document.createElement(\"canvas\");\n canvas.width = w;\n canvas.height = h;\n var ctx = canvas.getContext(\"2d\");\n ctx.fillStyle = \"#fff\"; /// set white fill style\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n\n var options = {\n ignoreMouse: true,\n ignoreAnimation: true,\n ignoreDimensions: true\n };\n var doc = this;\n return loadCanvg()\n .then(\n function(canvg) {\n return canvg.fromString(ctx, svg, options);\n },\n function() {\n return Promise.reject(new Error(\"Could not load canvg.\"));\n }\n )\n .then(function(instance) {\n return instance.render(options);\n })\n .then(function() {\n doc.addImage(\n canvas.toDataURL(\"image/jpeg\", 1.0),\n x,\n y,\n w,\n h,\n compression,\n rotation\n );\n });\n };\n})(jsPDF.API);\n","/**\n * @license\n * ====================================================================\n * Copyright (c) 2013 Eduardo Menezes de Morais, eduardo.morais@usp.br\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF total_pages plugin\n * @name total_pages\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n /**\n * @name putTotalPages\n * @function\n * @param {string} pageExpression Regular Expression\n * @returns {jsPDF} jsPDF-instance\n */\n\n jsPDFAPI.putTotalPages = function(pageExpression) {\n \"use strict\";\n\n var replaceExpression;\n var totalNumberOfPages = 0;\n if (parseInt(this.internal.getFont().id.substr(1), 10) < 15) {\n replaceExpression = new RegExp(pageExpression, \"g\");\n totalNumberOfPages = this.internal.getNumberOfPages();\n } else {\n replaceExpression = new RegExp(\n this.pdfEscape16(pageExpression, this.internal.getFont()),\n \"g\"\n );\n totalNumberOfPages = this.pdfEscape16(\n this.internal.getNumberOfPages() + \"\",\n this.internal.getFont()\n );\n }\n\n for (var n = 1; n <= this.internal.getNumberOfPages(); n++) {\n for (var i = 0; i < this.internal.pages[n].length; i++) {\n this.internal.pages[n][i] = this.internal.pages[n][i].replace(\n replaceExpression,\n totalNumberOfPages\n );\n }\n }\n\n return this;\n };\n})(jsPDF.API);\n","/**\n * @license\n * jsPDF viewerPreferences Plugin\n * @author Aras Abbasi (github.com/arasabbasi)\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * Adds the ability to set ViewerPreferences and by thus\n * controlling the way the document is to be presented on the\n * screen or in print.\n * @name viewerpreferences\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n /**\n * Set the ViewerPreferences of the generated PDF\n *\n * @name viewerPreferences\n * @function\n * @public\n * @param {Object} options Array with the ViewerPreferences<br />\n * Example: doc.viewerPreferences({\"FitWindow\":true});<br />\n * <br />\n * You can set following preferences:<br />\n * <br/>\n * <b>HideToolbar</b> <i>(boolean)</i><br />\n * Default value: false<br />\n * <br />\n * <b>HideMenubar</b> <i>(boolean)</i><br />\n * Default value: false.<br />\n * <br />\n * <b>HideWindowUI</b> <i>(boolean)</i><br />\n * Default value: false.<br />\n * <br />\n * <b>FitWindow</b> <i>(boolean)</i><br />\n * Default value: false.<br />\n * <br />\n * <b>CenterWindow</b> <i>(boolean)</i><br />\n * Default value: false<br />\n * <br />\n * <b>DisplayDocTitle</b> <i>(boolean)</i><br />\n * Default value: false.<br />\n * <br />\n * <b>NonFullScreenPageMode</b> <i>(string)</i><br />\n * Possible values: UseNone, UseOutlines, UseThumbs, UseOC<br />\n * Default value: UseNone<br/>\n * <br />\n * <b>Direction</b> <i>(string)</i><br />\n * Possible values: L2R, R2L<br />\n * Default value: L2R.<br />\n * <br />\n * <b>ViewArea</b> <i>(string)</i><br />\n * Possible values: MediaBox, CropBox, TrimBox, BleedBox, ArtBox<br />\n * Default value: CropBox.<br />\n * <br />\n * <b>ViewClip</b> <i>(string)</i><br />\n * Possible values: MediaBox, CropBox, TrimBox, BleedBox, ArtBox<br />\n * Default value: CropBox<br />\n * <br />\n * <b>PrintArea</b> <i>(string)</i><br />\n * Possible values: MediaBox, CropBox, TrimBox, BleedBox, ArtBox<br />\n * Default value: CropBox<br />\n * <br />\n * <b>PrintClip</b> <i>(string)</i><br />\n * Possible values: MediaBox, CropBox, TrimBox, BleedBox, ArtBox<br />\n * Default value: CropBox.<br />\n * <br />\n * <b>PrintScaling</b> <i>(string)</i><br />\n * Possible values: AppDefault, None<br />\n * Default value: AppDefault.<br />\n * <br />\n * <b>Duplex</b> <i>(string)</i><br />\n * Possible values: Simplex, DuplexFlipLongEdge, DuplexFlipShortEdge\n * Default value: none<br />\n * <br />\n * <b>PickTrayByPDFSize</b> <i>(boolean)</i><br />\n * Default value: false<br />\n * <br />\n * <b>PrintPageRange</b> <i>(Array)</i><br />\n * Example: [[1,5], [7,9]]<br />\n * Default value: as defined by PDF viewer application<br />\n * <br />\n * <b>NumCopies</b> <i>(Number)</i><br />\n * Possible values: 1, 2, 3, 4, 5<br />\n * Default value: 1<br />\n * <br />\n * For more information see the PDF Reference, sixth edition on Page 577\n * @param {boolean} doReset True to reset the settings\n * @function\n * @returns jsPDF jsPDF-instance\n * @example\n * var doc = new jsPDF()\n * doc.text('This is a test', 10, 10)\n * doc.viewerPreferences({'FitWindow': true}, true)\n * doc.save(\"viewerPreferences.pdf\")\n *\n * // Example printing 10 copies, using cropbox, and hiding UI.\n * doc.viewerPreferences({\n * 'HideWindowUI': true,\n * 'PrintArea': 'CropBox',\n * 'NumCopies': 10\n * })\n */\n jsPDFAPI.viewerPreferences = function(options, doReset) {\n options = options || {};\n doReset = doReset || false;\n\n var configuration;\n var configurationTemplate = {\n HideToolbar: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.3\n },\n HideMenubar: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.3\n },\n HideWindowUI: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.3\n },\n FitWindow: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.3\n },\n CenterWindow: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.3\n },\n DisplayDocTitle: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.4\n },\n NonFullScreenPageMode: {\n defaultValue: \"UseNone\",\n value: \"UseNone\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"UseNone\", \"UseOutlines\", \"UseThumbs\", \"UseOC\"],\n pdfVersion: 1.3\n },\n Direction: {\n defaultValue: \"L2R\",\n value: \"L2R\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"L2R\", \"R2L\"],\n pdfVersion: 1.3\n },\n ViewArea: {\n defaultValue: \"CropBox\",\n value: \"CropBox\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"MediaBox\", \"CropBox\", \"TrimBox\", \"BleedBox\", \"ArtBox\"],\n pdfVersion: 1.4\n },\n ViewClip: {\n defaultValue: \"CropBox\",\n value: \"CropBox\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"MediaBox\", \"CropBox\", \"TrimBox\", \"BleedBox\", \"ArtBox\"],\n pdfVersion: 1.4\n },\n PrintArea: {\n defaultValue: \"CropBox\",\n value: \"CropBox\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"MediaBox\", \"CropBox\", \"TrimBox\", \"BleedBox\", \"ArtBox\"],\n pdfVersion: 1.4\n },\n PrintClip: {\n defaultValue: \"CropBox\",\n value: \"CropBox\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"MediaBox\", \"CropBox\", \"TrimBox\", \"BleedBox\", \"ArtBox\"],\n pdfVersion: 1.4\n },\n PrintScaling: {\n defaultValue: \"AppDefault\",\n value: \"AppDefault\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"AppDefault\", \"None\"],\n pdfVersion: 1.6\n },\n Duplex: {\n defaultValue: \"\",\n value: \"none\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\n \"Simplex\",\n \"DuplexFlipShortEdge\",\n \"DuplexFlipLongEdge\",\n \"none\"\n ],\n pdfVersion: 1.7\n },\n PickTrayByPDFSize: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.7\n },\n PrintPageRange: {\n defaultValue: \"\",\n value: \"\",\n type: \"array\",\n explicitSet: false,\n valueSet: null,\n pdfVersion: 1.7\n },\n NumCopies: {\n defaultValue: 1,\n value: 1,\n type: \"integer\",\n explicitSet: false,\n valueSet: null,\n pdfVersion: 1.7\n }\n };\n\n var configurationKeys = Object.keys(configurationTemplate);\n\n var rangeArray = [];\n var i = 0;\n var j = 0;\n var k = 0;\n var isValid;\n\n var method;\n var value;\n\n function arrayContainsElement(array, element) {\n var iterator;\n var result = false;\n\n for (iterator = 0; iterator < array.length; iterator += 1) {\n if (array[iterator] === element) {\n result = true;\n }\n }\n return result;\n }\n\n if (this.internal.viewerpreferences === undefined) {\n this.internal.viewerpreferences = {};\n this.internal.viewerpreferences.configuration = JSON.parse(\n JSON.stringify(configurationTemplate)\n );\n this.internal.viewerpreferences.isSubscribed = false;\n }\n configuration = this.internal.viewerpreferences.configuration;\n\n if (options === \"reset\" || doReset === true) {\n var len = configurationKeys.length;\n\n for (k = 0; k < len; k += 1) {\n configuration[configurationKeys[k]].value =\n configuration[configurationKeys[k]].defaultValue;\n configuration[configurationKeys[k]].explicitSet = false;\n }\n }\n\n if (typeof options === \"object\") {\n for (method in options) {\n value = options[method];\n if (\n arrayContainsElement(configurationKeys, method) &&\n value !== undefined\n ) {\n if (\n configuration[method].type === \"boolean\" &&\n typeof value === \"boolean\"\n ) {\n configuration[method].value = value;\n } else if (\n configuration[method].type === \"name\" &&\n arrayContainsElement(configuration[method].valueSet, value)\n ) {\n configuration[method].value = value;\n } else if (\n configuration[method].type === \"integer\" &&\n Number.isInteger(value)\n ) {\n configuration[method].value = value;\n } else if (configuration[method].type === \"array\") {\n for (i = 0; i < value.length; i += 1) {\n isValid = true;\n if (value[i].length === 1 && typeof value[i][0] === \"number\") {\n rangeArray.push(String(value[i] - 1));\n } else if (value[i].length > 1) {\n for (j = 0; j < value[i].length; j += 1) {\n if (typeof value[i][j] !== \"number\") {\n isValid = false;\n }\n }\n if (isValid === true) {\n rangeArray.push([value[i][0] - 1, value[i][1] - 1].join(\" \"));\n }\n }\n }\n configuration[method].value = \"[\" + rangeArray.join(\" \") + \"]\";\n } else {\n configuration[method].value = configuration[method].defaultValue;\n }\n\n configuration[method].explicitSet = true;\n }\n }\n }\n\n if (this.internal.viewerpreferences.isSubscribed === false) {\n this.internal.events.subscribe(\"putCatalog\", function() {\n var pdfDict = [];\n var vPref;\n for (vPref in configuration) {\n if (configuration[vPref].explicitSet === true) {\n if (configuration[vPref].type === \"name\") {\n pdfDict.push(\"/\" + vPref + \" /\" + configuration[vPref].value);\n } else {\n pdfDict.push(\"/\" + vPref + \" \" + configuration[vPref].value);\n }\n }\n }\n if (pdfDict.length !== 0) {\n this.internal.write(\n \"/ViewerPreferences\\n<<\\n\" + pdfDict.join(\"\\n\") + \"\\n>>\"\n );\n }\n });\n this.internal.viewerpreferences.isSubscribed = true;\n }\n\n this.internal.viewerpreferences.configuration = configuration;\n return this;\n };\n})(jsPDF.API);\n","/** ====================================================================\n * @license\n * jsPDF XMP metadata plugin\n * Copyright (c) 2016 Jussi Utunen, u-jussi@suomi24.fi\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * @name xmp_metadata\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n var postPutResources = function() {\n var xmpmeta_beginning = '<x:xmpmeta xmlns:x=\"adobe:ns:meta/\">';\n var rdf_beginning =\n '<rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"><rdf:Description rdf:about=\"\" xmlns:jspdf=\"' +\n this.internal.__metadata__.namespaceuri +\n '\"><jspdf:metadata>';\n var rdf_ending = \"</jspdf:metadata></rdf:Description></rdf:RDF>\";\n var xmpmeta_ending = \"</x:xmpmeta>\";\n var utf8_xmpmeta_beginning = unescape(\n encodeURIComponent(xmpmeta_beginning)\n );\n var utf8_rdf_beginning = unescape(encodeURIComponent(rdf_beginning));\n var utf8_metadata = unescape(\n encodeURIComponent(this.internal.__metadata__.metadata)\n );\n var utf8_rdf_ending = unescape(encodeURIComponent(rdf_ending));\n var utf8_xmpmeta_ending = unescape(encodeURIComponent(xmpmeta_ending));\n\n var total_len =\n utf8_rdf_beginning.length +\n utf8_metadata.length +\n utf8_rdf_ending.length +\n utf8_xmpmeta_beginning.length +\n utf8_xmpmeta_ending.length;\n\n this.internal.__metadata__.metadata_object_number = this.internal.newObject();\n this.internal.write(\n \"<< /Type /Metadata /Subtype /XML /Length \" + total_len + \" >>\"\n );\n this.internal.write(\"stream\");\n this.internal.write(\n utf8_xmpmeta_beginning +\n utf8_rdf_beginning +\n utf8_metadata +\n utf8_rdf_ending +\n utf8_xmpmeta_ending\n );\n this.internal.write(\"endstream\");\n this.internal.write(\"endobj\");\n };\n\n var putCatalog = function() {\n if (this.internal.__metadata__.metadata_object_number) {\n this.internal.write(\n \"/Metadata \" +\n this.internal.__metadata__.metadata_object_number +\n \" 0 R\"\n );\n }\n };\n\n /**\n * Adds XMP formatted metadata to PDF\n *\n * @name addMetadata\n * @function\n * @param {String} metadata The actual metadata to be added. The metadata shall be stored as XMP simple value. Note that if the metadata string contains XML markup characters \"<\", \">\" or \"&\", those characters should be written using XML entities.\n * @param {String} namespaceuri Sets the namespace URI for the metadata. Last character should be slash or hash.\n * @returns {jsPDF} jsPDF-instance\n */\n jsPDFAPI.addMetadata = function(metadata, namespaceuri) {\n if (typeof this.internal.__metadata__ === \"undefined\") {\n this.internal.__metadata__ = {\n metadata: metadata,\n namespaceuri: namespaceuri || \"http://jspdf.default.namespaceuri/\"\n };\n this.internal.events.subscribe(\"putCatalog\", putCatalog);\n\n this.internal.events.subscribe(\"postPutResources\", postPutResources);\n }\n return this;\n };\n})(jsPDF.API);\n","import { jsPDF } from \"../jspdf.js\";\nimport { toPDFName } from \"../libs/pdfname.js\";\n\n/**\n * @name utf8\n * @module\n */\n(function(jsPDF) {\n \"use strict\";\n var jsPDFAPI = jsPDF.API;\n\n /***************************************************************************************************/\n /* function : pdfEscape16 */\n /* comment : The character id of a 2-byte string is converted to a hexadecimal number by obtaining */\n /* the corresponding glyph id and width, and then adding padding to the string. */\n /***************************************************************************************************/\n var pdfEscape16 = (jsPDFAPI.pdfEscape16 = function(text, font) {\n var widths = font.metadata.Unicode.widths;\n var padz = [\"\", \"0\", \"00\", \"000\", \"0000\"];\n var ar = [\"\"];\n for (var i = 0, l = text.length, t; i < l; ++i) {\n t = font.metadata.characterToGlyph(text.charCodeAt(i));\n font.metadata.glyIdsUsed.push(t);\n font.metadata.toUnicode[t] = text.charCodeAt(i);\n if (widths.indexOf(t) == -1) {\n widths.push(t);\n widths.push([parseInt(font.metadata.widthOfGlyph(t), 10)]);\n }\n if (t == \"0\") {\n //Spaces are not allowed in cmap.\n return ar.join(\"\");\n } else {\n t = t.toString(16);\n ar.push(padz[4 - t.length], t);\n }\n }\n return ar.join(\"\");\n });\n\n var toUnicodeCmap = function(map) {\n var code, codes, range, unicode, unicodeMap, _i, _len;\n unicodeMap =\n \"/CIDInit /ProcSet findresource begin\\n12 dict begin\\nbegincmap\\n/CIDSystemInfo <<\\n /Registry (Adobe)\\n /Ordering (UCS)\\n /Supplement 0\\n>> def\\n/CMapName /Adobe-Identity-UCS def\\n/CMapType 2 def\\n1 begincodespacerange\\n<0000><ffff>\\nendcodespacerange\";\n codes = Object.keys(map).sort(function(a, b) {\n return a - b;\n });\n\n range = [];\n for (_i = 0, _len = codes.length; _i < _len; _i++) {\n code = codes[_i];\n if (range.length >= 100) {\n unicodeMap +=\n \"\\n\" +\n range.length +\n \" beginbfchar\\n\" +\n range.join(\"\\n\") +\n \"\\nendbfchar\";\n range = [];\n }\n\n if (\n map[code] !== undefined &&\n map[code] !== null &&\n typeof map[code].toString === \"function\"\n ) {\n unicode = (\"0000\" + map[code].toString(16)).slice(-4);\n code = (\"0000\" + (+code).toString(16)).slice(-4);\n range.push(\"<\" + code + \"><\" + unicode + \">\");\n }\n }\n\n if (range.length) {\n unicodeMap +=\n \"\\n\" +\n range.length +\n \" beginbfchar\\n\" +\n range.join(\"\\n\") +\n \"\\nendbfchar\\n\";\n }\n unicodeMap +=\n \"endcmap\\nCMapName currentdict /CMap defineresource pop\\nend\\nend\";\n return unicodeMap;\n };\n\n var identityHFunction = function(options) {\n var font = options.font;\n var out = options.out;\n var newObject = options.newObject;\n var putStream = options.putStream;\n\n if (\n font.metadata instanceof jsPDF.API.TTFFont &&\n font.encoding === \"Identity-H\"\n ) {\n //Tag with Identity-H\n var widths = font.metadata.Unicode.widths;\n var data = font.metadata.subset.encode(font.metadata.glyIdsUsed, 1);\n var pdfOutput = data;\n var pdfOutput2 = \"\";\n for (var i = 0; i < pdfOutput.length; i++) {\n pdfOutput2 += String.fromCharCode(pdfOutput[i]);\n }\n var fontTable = newObject();\n putStream({ data: pdfOutput2, addLength1: true, objectId: fontTable });\n out(\"endobj\");\n\n var cmap = newObject();\n var cmapData = toUnicodeCmap(font.metadata.toUnicode);\n putStream({ data: cmapData, addLength1: true, objectId: cmap });\n out(\"endobj\");\n\n var fontDescriptor = newObject();\n out(\"<<\");\n out(\"/Type /FontDescriptor\");\n out(\"/FontName /\" + toPDFName(font.fontName));\n out(\"/FontFile2 \" + fontTable + \" 0 R\");\n out(\"/FontBBox \" + jsPDF.API.PDFObject.convert(font.metadata.bbox));\n out(\"/Flags \" + font.metadata.flags);\n out(\"/StemV \" + font.metadata.stemV);\n out(\"/ItalicAngle \" + font.metadata.italicAngle);\n out(\"/Ascent \" + font.metadata.ascender);\n out(\"/Descent \" + font.metadata.decender);\n out(\"/CapHeight \" + font.metadata.capHeight);\n out(\">>\");\n out(\"endobj\");\n\n var DescendantFont = newObject();\n out(\"<<\");\n out(\"/Type /Font\");\n out(\"/BaseFont /\" + toPDFName(font.fontName));\n out(\"/FontDescriptor \" + fontDescriptor + \" 0 R\");\n out(\"/W \" + jsPDF.API.PDFObject.convert(widths));\n out(\"/CIDToGIDMap /Identity\");\n out(\"/DW 1000\");\n out(\"/Subtype /CIDFontType2\");\n out(\"/CIDSystemInfo\");\n out(\"<<\");\n out(\"/Supplement 0\");\n out(\"/Registry (Adobe)\");\n out(\"/Ordering (\" + font.encoding + \")\");\n out(\">>\");\n out(\">>\");\n out(\"endobj\");\n\n font.objectNumber = newObject();\n out(\"<<\");\n out(\"/Type /Font\");\n out(\"/Subtype /Type0\");\n out(\"/ToUnicode \" + cmap + \" 0 R\");\n out(\"/BaseFont /\" + toPDFName(font.fontName));\n out(\"/Encoding /\" + font.encoding);\n out(\"/DescendantFonts [\" + DescendantFont + \" 0 R]\");\n out(\">>\");\n out(\"endobj\");\n\n font.isAlreadyPutted = true;\n }\n };\n\n jsPDFAPI.events.push([\n \"putFont\",\n function(args) {\n identityHFunction(args);\n }\n ]);\n\n var winAnsiEncodingFunction = function(options) {\n var font = options.font;\n var out = options.out;\n var newObject = options.newObject;\n var putStream = options.putStream;\n\n if (\n font.metadata instanceof jsPDF.API.TTFFont &&\n font.encoding === \"WinAnsiEncoding\"\n ) {\n //Tag with WinAnsi encoding\n var data = font.metadata.rawData;\n var pdfOutput = data;\n var pdfOutput2 = \"\";\n for (var i = 0; i < pdfOutput.length; i++) {\n pdfOutput2 += String.fromCharCode(pdfOutput[i]);\n }\n var fontTable = newObject();\n putStream({ data: pdfOutput2, addLength1: true, objectId: fontTable });\n out(\"endobj\");\n\n var cmap = newObject();\n var cmapData = toUnicodeCmap(font.metadata.toUnicode);\n putStream({ data: cmapData, addLength1: true, objectId: cmap });\n out(\"endobj\");\n\n var fontDescriptor = newObject();\n out(\"<<\");\n out(\"/Descent \" + font.metadata.decender);\n out(\"/CapHeight \" + font.metadata.capHeight);\n out(\"/StemV \" + font.metadata.stemV);\n out(\"/Type /FontDescriptor\");\n out(\"/FontFile2 \" + fontTable + \" 0 R\");\n out(\"/Flags 96\");\n out(\"/FontBBox \" + jsPDF.API.PDFObject.convert(font.metadata.bbox));\n out(\"/FontName /\" + toPDFName(font.fontName));\n out(\"/ItalicAngle \" + font.metadata.italicAngle);\n out(\"/Ascent \" + font.metadata.ascender);\n out(\">>\");\n out(\"endobj\");\n font.objectNumber = newObject();\n for (var j = 0; j < font.metadata.hmtx.widths.length; j++) {\n font.metadata.hmtx.widths[j] = parseInt(\n font.metadata.hmtx.widths[j] * (1000 / font.metadata.head.unitsPerEm)\n ); //Change the width of Em units to Point units.\n }\n out(\n \"<</Subtype/TrueType/Type/Font/ToUnicode \" +\n cmap +\n \" 0 R/BaseFont/\" +\n toPDFName(font.fontName) +\n \"/FontDescriptor \" +\n fontDescriptor +\n \" 0 R\" +\n \"/Encoding/\" +\n font.encoding +\n \" /FirstChar 29 /LastChar 255 /Widths \" +\n jsPDF.API.PDFObject.convert(font.metadata.hmtx.widths) +\n \">>\"\n );\n out(\"endobj\");\n font.isAlreadyPutted = true;\n }\n };\n\n jsPDFAPI.events.push([\n \"putFont\",\n function(args) {\n winAnsiEncodingFunction(args);\n }\n ]);\n\n var utf8TextFunction = function(args) {\n var text = args.text || \"\";\n var x = args.x;\n var y = args.y;\n var options = args.options || {};\n var mutex = args.mutex || {};\n\n var pdfEscape = mutex.pdfEscape;\n var activeFontKey = mutex.activeFontKey;\n var fonts = mutex.fonts;\n var key = activeFontKey;\n\n var str = \"\",\n s = 0,\n cmapConfirm;\n var strText = \"\";\n var encoding = fonts[key].encoding;\n\n if (fonts[key].encoding !== \"Identity-H\") {\n return {\n text: text,\n x: x,\n y: y,\n options: options,\n mutex: mutex\n };\n }\n strText = text;\n\n key = activeFontKey;\n if (Array.isArray(text)) {\n strText = text[0];\n }\n for (s = 0; s < strText.length; s += 1) {\n if (fonts[key].metadata.hasOwnProperty(\"cmap\")) {\n cmapConfirm =\n fonts[key].metadata.cmap.unicode.codeMap[strText[s].charCodeAt(0)];\n /*\n if (Object.prototype.toString.call(text) === '[object Array]') {\n var i = 0;\n // for (i = 0; i < text.length; i += 1) {\n if (Object.prototype.toString.call(text[s]) === '[object Array]') {\n cmapConfirm = fonts[key].metadata.cmap.unicode.codeMap[strText[s][0].charCodeAt(0)]; //Make sure the cmap has the corresponding glyph id\n } else {\n\n }\n //}\n\n } else {\n cmapConfirm = fonts[key].metadata.cmap.unicode.codeMap[strText[s].charCodeAt(0)]; //Make sure the cmap has the corresponding glyph id\n }*/\n }\n if (!cmapConfirm) {\n if (\n strText[s].charCodeAt(0) < 256 &&\n fonts[key].metadata.hasOwnProperty(\"Unicode\")\n ) {\n str += strText[s];\n } else {\n str += \"\";\n }\n } else {\n str += strText[s];\n }\n }\n var result = \"\";\n if (parseInt(key.slice(1)) < 14 || encoding === \"WinAnsiEncoding\") {\n //For the default 13 font\n result = pdfEscape(str, key)\n .split(\"\")\n .map(function(cv) {\n return cv.charCodeAt(0).toString(16);\n })\n .join(\"\");\n } else if (encoding === \"Identity-H\") {\n result = pdfEscape16(str, fonts[key]);\n }\n mutex.isHex = true;\n\n return {\n text: result,\n x: x,\n y: y,\n options: options,\n mutex: mutex\n };\n };\n\n var utf8EscapeFunction = function(parms) {\n var text = parms.text || \"\",\n x = parms.x,\n y = parms.y,\n options = parms.options,\n mutex = parms.mutex;\n var tmpText = [];\n var args = {\n text: text,\n x: x,\n y: y,\n options: options,\n mutex: mutex\n };\n\n if (Array.isArray(text)) {\n var i = 0;\n for (i = 0; i < text.length; i += 1) {\n if (Array.isArray(text[i])) {\n if (text[i].length === 3) {\n tmpText.push([\n utf8TextFunction(Object.assign({}, args, { text: text[i][0] }))\n .text,\n text[i][1],\n text[i][2]\n ]);\n } else {\n tmpText.push(\n utf8TextFunction(Object.assign({}, args, { text: text[i] })).text\n );\n }\n } else {\n tmpText.push(\n utf8TextFunction(Object.assign({}, args, { text: text[i] })).text\n );\n }\n }\n parms.text = tmpText;\n } else {\n parms.text = utf8TextFunction(\n Object.assign({}, args, { text: text })\n ).text;\n }\n };\n\n jsPDFAPI.events.push([\"postProcessText\", utf8EscapeFunction]);\n})(jsPDF);\n","/**\n * @license\n * jsPDF virtual FileSystem functionality\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * Use the vFS to handle files\n *\n * @name vFS\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n var _initializeVFS = function() {\n if (typeof this.internal.vFS === \"undefined\") {\n this.internal.vFS = {};\n }\n return true;\n };\n\n /**\n * Check if the file exists in the vFS\n *\n * @name existsFileInVFS\n * @function\n * @param {string} Possible filename in the vFS.\n * @returns {boolean}\n * @example\n * doc.existsFileInVFS(\"someFile.txt\");\n */\n jsPDFAPI.existsFileInVFS = function(filename) {\n _initializeVFS.call(this);\n return typeof this.internal.vFS[filename] !== \"undefined\";\n };\n\n /**\n * Add a file to the vFS\n *\n * @name addFileToVFS\n * @function\n * @param {string} filename The name of the file which should be added.\n * @param {string} filecontent The content of the file.\n * @returns {jsPDF}\n * @example\n * doc.addFileToVFS(\"someFile.txt\", \"BADFACE1\");\n */\n jsPDFAPI.addFileToVFS = function(filename, filecontent) {\n _initializeVFS.call(this);\n this.internal.vFS[filename] = filecontent;\n return this;\n };\n\n /**\n * Get the file from the vFS\n *\n * @name getFileFromVFS\n * @function\n * @param {string} The name of the file which gets requested.\n * @returns {string}\n * @example\n * doc.getFileFromVFS(\"someFile.txt\");\n */\n jsPDFAPI.getFileFromVFS = function(filename) {\n _initializeVFS.call(this);\n\n if (typeof this.internal.vFS[filename] !== \"undefined\") {\n return this.internal.vFS[filename];\n }\n return null;\n };\n})(jsPDF.API);\n","/**\n * @license\n * Unicode Bidi Engine based on the work of Alex Shensis (@asthensis)\n * MIT License\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n(function(jsPDF) {\n \"use strict\";\n /**\n * Table of Unicode types.\n *\n * Generated by:\n *\n * var bidi = require(\"./bidi/index\");\n * var bidi_accumulate = bidi.slice(0, 256).concat(bidi.slice(0x0500, 0x0500 + 256 * 3)).\n * concat(bidi.slice(0x2000, 0x2000 + 256)).concat(bidi.slice(0xFB00, 0xFB00 + 256)).\n * concat(bidi.slice(0xFE00, 0xFE00 + 2 * 256));\n *\n * for( var i = 0; i < bidi_accumulate.length; i++) {\n * \tif(bidi_accumulate[i] === undefined || bidi_accumulate[i] === 'ON')\n * \t\tbidi_accumulate[i] = 'N'; //mark as neutral to conserve space and substitute undefined\n * }\n * var bidiAccumulateStr = 'return [ \"' + bidi_accumulate.toString().replace(/,/g, '\", \"') + '\" ];';\n * require(\"fs\").writeFile('unicode-types.js', bidiAccumulateStr);\n *\n * Based on:\n * https://github.com/mathiasbynens/unicode-8.0.0\n */\n var bidiUnicodeTypes = [\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"S\",\n \"B\",\n \"S\",\n \"WS\",\n \"B\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"B\",\n \"B\",\n \"B\",\n \"S\",\n \"WS\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"ES\",\n \"CS\",\n \"ES\",\n \"CS\",\n \"CS\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"CS\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"B\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"CS\",\n \"N\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"N\",\n \"N\",\n \"BN\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"EN\",\n \"EN\",\n \"N\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"EN\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"N\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"R\",\n \"NSM\",\n \"R\",\n \"NSM\",\n \"NSM\",\n \"R\",\n \"NSM\",\n \"NSM\",\n \"R\",\n \"NSM\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"N\",\n \"N\",\n \"AL\",\n \"ET\",\n \"ET\",\n \"AL\",\n \"CS\",\n \"AL\",\n \"N\",\n \"N\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"AL\",\n \"AL\",\n \"N\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"ET\",\n \"AN\",\n \"AN\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"AN\",\n \"N\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"NSM\",\n \"N\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"AL\",\n \"AL\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"N\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"N\",\n \"N\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"AL\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"R\",\n \"R\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"R\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"L\",\n \"R\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"WS\",\n \"B\",\n \"LRE\",\n \"RLE\",\n \"PDF\",\n \"LRO\",\n \"RLO\",\n \"CS\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"CS\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"WS\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"N\",\n \"LRI\",\n \"RLI\",\n \"FSI\",\n \"PDI\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"EN\",\n \"L\",\n \"N\",\n \"N\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"ES\",\n \"ES\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"ES\",\n \"ES\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"R\",\n \"NSM\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"ES\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"N\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"N\",\n \"R\",\n \"N\",\n \"R\",\n \"R\",\n \"N\",\n \"R\",\n \"R\",\n \"N\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"CS\",\n \"N\",\n \"CS\",\n \"N\",\n \"N\",\n \"CS\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"N\",\n \"N\",\n \"ES\",\n \"ES\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"N\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"N\",\n \"N\",\n \"BN\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"ES\",\n \"CS\",\n \"ES\",\n \"CS\",\n \"CS\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"CS\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\"\n ];\n\n /**\n * Unicode Bidi algorithm compliant Bidi engine.\n * For reference see http://unicode.org/reports/tr9/\n */\n\n /**\n * constructor ( options )\n *\n * Initializes Bidi engine\n *\n * @param {Object} See 'setOptions' below for detailed description.\n * options are cashed between invocation of 'doBidiReorder' method\n *\n * sample usage pattern of BidiEngine:\n * var opt = {\n * \tisInputVisual: true,\n * \tisInputRtl: false,\n * \tisOutputVisual: false,\n * \tisOutputRtl: false,\n * \tisSymmetricSwapping: true\n * }\n * var sourceToTarget = [], levels = [];\n * var bidiEng = Globalize.bidiEngine(opt);\n * var src = \"text string to be reordered\";\n * var ret = bidiEng.doBidiReorder(src, sourceToTarget, levels);\n */\n\n jsPDF.__bidiEngine__ = jsPDF.prototype.__bidiEngine__ = function(options) {\n var _UNICODE_TYPES = _bidiUnicodeTypes;\n\n var _STATE_TABLE_LTR = [\n [0, 3, 0, 1, 0, 0, 0],\n [0, 3, 0, 1, 2, 2, 0],\n [0, 3, 0, 0x11, 2, 0, 1],\n [0, 3, 5, 5, 4, 1, 0],\n [0, 3, 0x15, 0x15, 4, 0, 1],\n [0, 3, 5, 5, 4, 2, 0]\n ];\n\n var _STATE_TABLE_RTL = [\n [2, 0, 1, 1, 0, 1, 0],\n [2, 0, 1, 1, 0, 2, 0],\n [2, 0, 2, 1, 3, 2, 0],\n [2, 0, 2, 0x21, 3, 1, 1]\n ];\n\n var _TYPE_NAMES_MAP = { L: 0, R: 1, EN: 2, AN: 3, N: 4, B: 5, S: 6 };\n\n var _UNICODE_RANGES_MAP = {\n 0: 0,\n 5: 1,\n 6: 2,\n 7: 3,\n 0x20: 4,\n 0xfb: 5,\n 0xfe: 6,\n 0xff: 7\n };\n\n var _SWAP_TABLE = [\n \"\\u0028\",\n \"\\u0029\",\n \"\\u0028\",\n \"\\u003C\",\n \"\\u003E\",\n \"\\u003C\",\n \"\\u005B\",\n \"\\u005D\",\n \"\\u005B\",\n \"\\u007B\",\n \"\\u007D\",\n \"\\u007B\",\n \"\\u00AB\",\n \"\\u00BB\",\n \"\\u00AB\",\n \"\\u2039\",\n \"\\u203A\",\n \"\\u2039\",\n \"\\u2045\",\n \"\\u2046\",\n \"\\u2045\",\n \"\\u207D\",\n \"\\u207E\",\n \"\\u207D\",\n \"\\u208D\",\n \"\\u208E\",\n \"\\u208D\",\n \"\\u2264\",\n \"\\u2265\",\n \"\\u2264\",\n \"\\u2329\",\n \"\\u232A\",\n \"\\u2329\",\n \"\\uFE59\",\n \"\\uFE5A\",\n \"\\uFE59\",\n \"\\uFE5B\",\n \"\\uFE5C\",\n \"\\uFE5B\",\n \"\\uFE5D\",\n \"\\uFE5E\",\n \"\\uFE5D\",\n \"\\uFE64\",\n \"\\uFE65\",\n \"\\uFE64\"\n ];\n\n var _LTR_RANGES_REG_EXPR = new RegExp(\n /^([1-4|9]|1[0-9]|2[0-9]|3[0168]|4[04589]|5[012]|7[78]|159|16[0-9]|17[0-2]|21[569]|22[03489]|250)$/\n );\n\n var _lastArabic = false,\n _hasUbatAl,\n _hasUbatB,\n _hasUbatS,\n DIR_LTR = 0,\n DIR_RTL = 1,\n _isInVisual,\n _isInRtl,\n _isOutVisual,\n _isOutRtl,\n _isSymmetricSwapping,\n _dir = DIR_LTR;\n\n this.__bidiEngine__ = {};\n\n var _init = function(text, sourceToTargetMap) {\n if (sourceToTargetMap) {\n for (var i = 0; i < text.length; i++) {\n sourceToTargetMap[i] = i;\n }\n }\n if (_isInRtl === undefined) {\n _isInRtl = _isContextualDirRtl(text);\n }\n if (_isOutRtl === undefined) {\n _isOutRtl = _isContextualDirRtl(text);\n }\n };\n\n // for reference see 3.2 in http://unicode.org/reports/tr9/\n //\n var _getCharType = function(ch) {\n var charCode = ch.charCodeAt(),\n range = charCode >> 8,\n rangeIdx = _UNICODE_RANGES_MAP[range];\n\n if (rangeIdx !== undefined) {\n return _UNICODE_TYPES[rangeIdx * 256 + (charCode & 0xff)];\n } else if (range === 0xfc || range === 0xfd) {\n return \"AL\";\n } else if (_LTR_RANGES_REG_EXPR.test(range)) {\n //unlikely case\n return \"L\";\n } else if (range === 8) {\n // even less likely\n return \"R\";\n }\n return \"N\"; //undefined type, mark as neutral\n };\n\n var _isContextualDirRtl = function(text) {\n for (var i = 0, charType; i < text.length; i++) {\n charType = _getCharType(text.charAt(i));\n if (charType === \"L\") {\n return false;\n } else if (charType === \"R\") {\n return true;\n }\n }\n return false;\n };\n\n // for reference see 3.3.4 & 3.3.5 in http://unicode.org/reports/tr9/\n //\n var _resolveCharType = function(chars, types, resolvedTypes, index) {\n var cType = types[index],\n wType,\n nType,\n i,\n len;\n switch (cType) {\n case \"L\":\n case \"R\":\n _lastArabic = false;\n break;\n case \"N\":\n case \"AN\":\n break;\n\n case \"EN\":\n if (_lastArabic) {\n cType = \"AN\";\n }\n break;\n\n case \"AL\":\n _lastArabic = true;\n _hasUbatAl = true;\n cType = \"R\";\n break;\n\n case \"WS\":\n cType = \"N\";\n break;\n\n case \"CS\":\n if (\n index < 1 ||\n index + 1 >= types.length ||\n ((wType = resolvedTypes[index - 1]) !== \"EN\" && wType !== \"AN\") ||\n ((nType = types[index + 1]) !== \"EN\" && nType !== \"AN\")\n ) {\n cType = \"N\";\n } else if (_lastArabic) {\n nType = \"AN\";\n }\n cType = nType === wType ? nType : \"N\";\n break;\n\n case \"ES\":\n wType = index > 0 ? resolvedTypes[index - 1] : \"B\";\n cType =\n wType === \"EN\" &&\n index + 1 < types.length &&\n types[index + 1] === \"EN\"\n ? \"EN\"\n : \"N\";\n break;\n\n case \"ET\":\n if (index > 0 && resolvedTypes[index - 1] === \"EN\") {\n cType = \"EN\";\n break;\n } else if (_lastArabic) {\n cType = \"N\";\n break;\n }\n i = index + 1;\n len = types.length;\n while (i < len && types[i] === \"ET\") {\n i++;\n }\n if (i < len && types[i] === \"EN\") {\n cType = \"EN\";\n } else {\n cType = \"N\";\n }\n break;\n\n case \"NSM\":\n if (_isInVisual && !_isInRtl) {\n //V->L\n len = types.length;\n i = index + 1;\n while (i < len && types[i] === \"NSM\") {\n i++;\n }\n if (i < len) {\n var c = chars[index];\n var rtlCandidate = (c >= 0x0591 && c <= 0x08ff) || c === 0xfb1e;\n wType = types[i];\n if (rtlCandidate && (wType === \"R\" || wType === \"AL\")) {\n cType = \"R\";\n break;\n }\n }\n }\n if (index < 1 || (wType = types[index - 1]) === \"B\") {\n cType = \"N\";\n } else {\n cType = resolvedTypes[index - 1];\n }\n break;\n\n case \"B\":\n _lastArabic = false;\n _hasUbatB = true;\n cType = _dir;\n break;\n\n case \"S\":\n _hasUbatS = true;\n cType = \"N\";\n break;\n\n case \"LRE\":\n case \"RLE\":\n case \"LRO\":\n case \"RLO\":\n case \"PDF\":\n _lastArabic = false;\n break;\n case \"BN\":\n cType = \"N\";\n break;\n }\n return cType;\n };\n\n var _handleUbatS = function(types, levels, length) {\n for (var i = 0; i < length; i++) {\n if (types[i] === \"S\") {\n levels[i] = _dir;\n for (var j = i - 1; j >= 0; j--) {\n if (types[j] === \"WS\") {\n levels[j] = _dir;\n } else {\n break;\n }\n }\n }\n }\n };\n\n var _invertString = function(text, sourceToTargetMap, levels) {\n var charArray = text.split(\"\");\n if (levels) {\n _computeLevels(charArray, levels, { hiLevel: _dir });\n }\n charArray.reverse();\n sourceToTargetMap && sourceToTargetMap.reverse();\n return charArray.join(\"\");\n };\n\n // For reference see 3.3 in http://unicode.org/reports/tr9/\n //\n var _computeLevels = function(chars, levels, params) {\n var action,\n condition,\n i,\n index,\n newLevel,\n prevState,\n condPos = -1,\n len = chars.length,\n newState = 0,\n resolvedTypes = [],\n stateTable = _dir ? _STATE_TABLE_RTL : _STATE_TABLE_LTR,\n types = [];\n\n _lastArabic = false;\n _hasUbatAl = false;\n _hasUbatB = false;\n _hasUbatS = false;\n for (i = 0; i < len; i++) {\n types[i] = _getCharType(chars[i]);\n }\n for (index = 0; index < len; index++) {\n prevState = newState;\n resolvedTypes[index] = _resolveCharType(\n chars,\n types,\n resolvedTypes,\n index\n );\n newState = stateTable[prevState][_TYPE_NAMES_MAP[resolvedTypes[index]]];\n action = newState & 0xf0;\n newState &= 0x0f;\n levels[index] = newLevel = stateTable[newState][5];\n if (action > 0) {\n if (action === 0x10) {\n for (i = condPos; i < index; i++) {\n levels[i] = 1;\n }\n condPos = -1;\n } else {\n condPos = -1;\n }\n }\n condition = stateTable[newState][6];\n if (condition) {\n if (condPos === -1) {\n condPos = index;\n }\n } else {\n if (condPos > -1) {\n for (i = condPos; i < index; i++) {\n levels[i] = newLevel;\n }\n condPos = -1;\n }\n }\n if (types[index] === \"B\") {\n levels[index] = 0;\n }\n params.hiLevel |= newLevel;\n }\n if (_hasUbatS) {\n _handleUbatS(types, levels, len);\n }\n };\n\n // for reference see 3.4 in http://unicode.org/reports/tr9/\n //\n var _invertByLevel = function(\n level,\n charArray,\n sourceToTargetMap,\n levels,\n params\n ) {\n if (params.hiLevel < level) {\n return;\n }\n if (level === 1 && _dir === DIR_RTL && !_hasUbatB) {\n charArray.reverse();\n sourceToTargetMap && sourceToTargetMap.reverse();\n return;\n }\n var ch,\n high,\n end,\n low,\n len = charArray.length,\n start = 0;\n\n while (start < len) {\n if (levels[start] >= level) {\n end = start + 1;\n while (end < len && levels[end] >= level) {\n end++;\n }\n for (low = start, high = end - 1; low < high; low++, high--) {\n ch = charArray[low];\n charArray[low] = charArray[high];\n charArray[high] = ch;\n if (sourceToTargetMap) {\n ch = sourceToTargetMap[low];\n sourceToTargetMap[low] = sourceToTargetMap[high];\n sourceToTargetMap[high] = ch;\n }\n }\n start = end;\n }\n start++;\n }\n };\n\n // for reference see 7 & BD16 in http://unicode.org/reports/tr9/\n //\n var _symmetricSwap = function(charArray, levels, params) {\n if (params.hiLevel !== 0 && _isSymmetricSwapping) {\n for (var i = 0, index; i < charArray.length; i++) {\n if (levels[i] === 1) {\n index = _SWAP_TABLE.indexOf(charArray[i]);\n if (index >= 0) {\n charArray[i] = _SWAP_TABLE[index + 1];\n }\n }\n }\n }\n };\n\n var _reorder = function(text, sourceToTargetMap, levels) {\n var charArray = text.split(\"\"),\n params = { hiLevel: _dir };\n\n if (!levels) {\n levels = [];\n }\n _computeLevels(charArray, levels, params);\n _symmetricSwap(charArray, levels, params);\n _invertByLevel(DIR_RTL + 1, charArray, sourceToTargetMap, levels, params);\n _invertByLevel(DIR_RTL, charArray, sourceToTargetMap, levels, params);\n return charArray.join(\"\");\n };\n\n // doBidiReorder( text, sourceToTargetMap, levels )\n // Performs Bidi reordering by implementing Unicode Bidi algorithm.\n // Returns reordered string\n // @text [String]:\n // - input string to be reordered, this is input parameter\n // $sourceToTargetMap [Array] (optional)\n // - resultant mapping between input and output strings, this is output parameter\n // $levels [Array] (optional)\n // - array of calculated Bidi levels, , this is output parameter\n this.__bidiEngine__.doBidiReorder = function(\n text,\n sourceToTargetMap,\n levels\n ) {\n _init(text, sourceToTargetMap);\n if (!_isInVisual && _isOutVisual && !_isOutRtl) {\n // LLTR->VLTR, LRTL->VLTR\n _dir = _isInRtl ? DIR_RTL : DIR_LTR;\n text = _reorder(text, sourceToTargetMap, levels);\n } else if (_isInVisual && _isOutVisual && _isInRtl ^ _isOutRtl) {\n // VRTL->VLTR, VLTR->VRTL\n _dir = _isInRtl ? DIR_RTL : DIR_LTR;\n text = _invertString(text, sourceToTargetMap, levels);\n } else if (!_isInVisual && _isOutVisual && _isOutRtl) {\n // LLTR->VRTL, LRTL->VRTL\n _dir = _isInRtl ? DIR_RTL : DIR_LTR;\n text = _reorder(text, sourceToTargetMap, levels);\n text = _invertString(text, sourceToTargetMap);\n } else if (_isInVisual && !_isInRtl && !_isOutVisual && !_isOutRtl) {\n // VLTR->LLTR\n _dir = DIR_LTR;\n text = _reorder(text, sourceToTargetMap, levels);\n } else if (_isInVisual && !_isOutVisual && _isInRtl ^ _isOutRtl) {\n // VLTR->LRTL, VRTL->LLTR\n text = _invertString(text, sourceToTargetMap);\n if (_isInRtl) {\n //LLTR -> VLTR\n _dir = DIR_LTR;\n text = _reorder(text, sourceToTargetMap, levels);\n } else {\n //LRTL -> VRTL\n _dir = DIR_RTL;\n text = _reorder(text, sourceToTargetMap, levels);\n text = _invertString(text, sourceToTargetMap);\n }\n } else if (_isInVisual && _isInRtl && !_isOutVisual && _isOutRtl) {\n // VRTL->LRTL\n _dir = DIR_RTL;\n text = _reorder(text, sourceToTargetMap, levels);\n text = _invertString(text, sourceToTargetMap);\n } else if (!_isInVisual && !_isOutVisual && _isInRtl ^ _isOutRtl) {\n // LRTL->LLTR, LLTR->LRTL\n var isSymmetricSwappingOrig = _isSymmetricSwapping;\n if (_isInRtl) {\n //LRTL->LLTR\n _dir = DIR_RTL;\n text = _reorder(text, sourceToTargetMap, levels);\n _dir = DIR_LTR;\n _isSymmetricSwapping = false;\n text = _reorder(text, sourceToTargetMap, levels);\n _isSymmetricSwapping = isSymmetricSwappingOrig;\n } else {\n //LLTR->LRTL\n _dir = DIR_LTR;\n text = _reorder(text, sourceToTargetMap, levels);\n text = _invertString(text, sourceToTargetMap);\n _dir = DIR_RTL;\n _isSymmetricSwapping = false;\n text = _reorder(text, sourceToTargetMap, levels);\n _isSymmetricSwapping = isSymmetricSwappingOrig;\n text = _invertString(text, sourceToTargetMap);\n }\n }\n return text;\n };\n\n /**\n * @name setOptions( options )\n * @function\n * Sets options for Bidi conversion\n * @param {Object}:\n * - isInputVisual {boolean} (defaults to false): allowed values: true(Visual mode), false(Logical mode)\n * - isInputRtl {boolean}: allowed values true(Right-to-left direction), false (Left-to-right directiion), undefined(Contectual direction, i.e.direction defined by first strong character of input string)\n * - isOutputVisual {boolean} (defaults to false): allowed values: true(Visual mode), false(Logical mode)\n * - isOutputRtl {boolean}: allowed values true(Right-to-left direction), false (Left-to-right directiion), undefined(Contectual direction, i.e.direction defined by first strong characterof input string)\n * - isSymmetricSwapping {boolean} (defaults to false): allowed values true(needs symmetric swapping), false (no need in symmetric swapping),\n */\n this.__bidiEngine__.setOptions = function(options) {\n if (options) {\n _isInVisual = options.isInputVisual;\n _isOutVisual = options.isOutputVisual;\n _isInRtl = options.isInputRtl;\n _isOutRtl = options.isOutputRtl;\n _isSymmetricSwapping = options.isSymmetricSwapping;\n }\n };\n\n this.__bidiEngine__.setOptions(options);\n return this.__bidiEngine__;\n };\n\n var _bidiUnicodeTypes = bidiUnicodeTypes;\n\n var bidiEngine = new jsPDF.__bidiEngine__({ isInputVisual: true });\n\n var bidiEngineFunction = function(args) {\n var text = args.text;\n var x = args.x;\n var y = args.y;\n var options = args.options || {};\n var mutex = args.mutex || {};\n var lang = options.lang;\n var tmpText = [];\n\n options.isInputVisual =\n typeof options.isInputVisual === \"boolean\" ? options.isInputVisual : true;\n bidiEngine.setOptions(options);\n\n if (Object.prototype.toString.call(text) === \"[object Array]\") {\n var i = 0;\n tmpText = [];\n for (i = 0; i < text.length; i += 1) {\n if (Object.prototype.toString.call(text[i]) === \"[object Array]\") {\n tmpText.push([\n bidiEngine.doBidiReorder(text[i][0]),\n text[i][1],\n text[i][2]\n ]);\n } else {\n tmpText.push([bidiEngine.doBidiReorder(text[i])]);\n }\n }\n args.text = tmpText;\n } else {\n args.text = bidiEngine.doBidiReorder(text);\n }\n bidiEngine.setOptions({ isInputVisual: true });\n };\n\n jsPDF.API.events.push([\"postProcessText\", bidiEngineFunction]);\n})(jsPDF);\n","/* eslint-disable no-control-regex */\n/************************************************\n * Title : custom font *\n * Start Data : 2017. 01. 22. *\n * Comment : TEXT API *\n ************************************************/\n\n/******************************\n * jsPDF extension API Design *\n * ****************************/\n\nimport { jsPDF } from \"../jspdf.js\";\n\njsPDF.API.TTFFont = (function() {\n /************************************************************************/\n /* function : open */\n /* comment : Decode the encoded ttf content and create a TTFFont object. */\n /************************************************************************/\n TTFFont.open = function(file) {\n return new TTFFont(file);\n };\n /***************************************************************/\n /* function : TTFFont gernerator */\n /* comment : Decode TTF contents are parsed, Data, */\n /* Subset object is created, and registerTTF function is called.*/\n /***************************************************************/\n function TTFFont(rawData) {\n var data;\n this.rawData = rawData;\n data = this.contents = new Data(rawData);\n this.contents.pos = 4;\n if (data.readString(4) === \"ttcf\") {\n throw new Error(\"TTCF not supported.\");\n } else {\n data.pos = 0;\n this.parse();\n this.subset = new Subset(this);\n this.registerTTF();\n }\n }\n /********************************************************/\n /* function : parse */\n /* comment : TTF Parses the file contents by each table.*/\n /********************************************************/\n TTFFont.prototype.parse = function() {\n this.directory = new Directory(this.contents);\n this.head = new HeadTable(this);\n this.name = new NameTable(this);\n this.cmap = new CmapTable(this);\n this.toUnicode = {};\n this.hhea = new HheaTable(this);\n this.maxp = new MaxpTable(this);\n this.hmtx = new HmtxTable(this);\n this.post = new PostTable(this);\n this.os2 = new OS2Table(this);\n this.loca = new LocaTable(this);\n this.glyf = new GlyfTable(this);\n this.ascender =\n (this.os2.exists && this.os2.ascender) || this.hhea.ascender;\n this.decender =\n (this.os2.exists && this.os2.decender) || this.hhea.decender;\n this.lineGap = (this.os2.exists && this.os2.lineGap) || this.hhea.lineGap;\n return (this.bbox = [\n this.head.xMin,\n this.head.yMin,\n this.head.xMax,\n this.head.yMax\n ]);\n };\n /***************************************************************/\n /* function : registerTTF */\n /* comment : Get the value to assign pdf font descriptors. */\n /***************************************************************/\n TTFFont.prototype.registerTTF = function() {\n var e, hi, low, raw, _ref;\n this.scaleFactor = 1000.0 / this.head.unitsPerEm;\n this.bbox = function() {\n var _i, _len, _ref, _results;\n _ref = this.bbox;\n _results = [];\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n e = _ref[_i];\n _results.push(Math.round(e * this.scaleFactor));\n }\n return _results;\n }.call(this);\n this.stemV = 0;\n if (this.post.exists) {\n raw = this.post.italic_angle;\n hi = raw >> 16;\n low = raw & 0xff;\n if ((hi & 0x8000) !== 0) {\n hi = -((hi ^ 0xffff) + 1);\n }\n this.italicAngle = +(\"\" + hi + \".\" + low);\n } else {\n this.italicAngle = 0;\n }\n this.ascender = Math.round(this.ascender * this.scaleFactor);\n this.decender = Math.round(this.decender * this.scaleFactor);\n this.lineGap = Math.round(this.lineGap * this.scaleFactor);\n this.capHeight = (this.os2.exists && this.os2.capHeight) || this.ascender;\n this.xHeight = (this.os2.exists && this.os2.xHeight) || 0;\n this.familyClass = ((this.os2.exists && this.os2.familyClass) || 0) >> 8;\n this.isSerif =\n (_ref = this.familyClass) === 1 ||\n _ref === 2 ||\n _ref === 3 ||\n _ref === 4 ||\n _ref === 5 ||\n _ref === 7;\n this.isScript = this.familyClass === 10;\n this.flags = 0;\n if (this.post.isFixedPitch) {\n this.flags |= 1 << 0;\n }\n if (this.isSerif) {\n this.flags |= 1 << 1;\n }\n if (this.isScript) {\n this.flags |= 1 << 3;\n }\n if (this.italicAngle !== 0) {\n this.flags |= 1 << 6;\n }\n this.flags |= 1 << 5;\n if (!this.cmap.unicode) {\n throw new Error(\"No unicode cmap for font\");\n }\n };\n TTFFont.prototype.characterToGlyph = function(character) {\n var _ref;\n return (\n ((_ref = this.cmap.unicode) != null ? _ref.codeMap[character] : void 0) ||\n 0\n );\n };\n TTFFont.prototype.widthOfGlyph = function(glyph) {\n var scale;\n scale = 1000.0 / this.head.unitsPerEm;\n return this.hmtx.forGlyph(glyph).advance * scale;\n };\n TTFFont.prototype.widthOfString = function(string, size, charSpace) {\n var charCode, i, scale, width, _ref;\n string = \"\" + string;\n width = 0;\n for (\n i = 0, _ref = string.length;\n 0 <= _ref ? i < _ref : i > _ref;\n i = 0 <= _ref ? ++i : --i\n ) {\n charCode = string.charCodeAt(i);\n width +=\n this.widthOfGlyph(this.characterToGlyph(charCode)) +\n charSpace * (1000 / size) || 0;\n }\n scale = size / 1000;\n return width * scale;\n };\n TTFFont.prototype.lineHeight = function(size, includeGap) {\n var gap;\n if (includeGap == null) {\n includeGap = false;\n }\n gap = includeGap ? this.lineGap : 0;\n return ((this.ascender + gap - this.decender) / 1000) * size;\n };\n return TTFFont;\n})();\n\n/************************************************************************************************/\n/* function : Data */\n/* comment : The ttf data decoded and stored in an array is read and written to the Data object.*/\n/************************************************************************************************/\nvar Data = (function() {\n function Data(data) {\n this.data = data != null ? data : [];\n this.pos = 0;\n this.length = this.data.length;\n }\n Data.prototype.readByte = function() {\n return this.data[this.pos++];\n };\n Data.prototype.writeByte = function(byte) {\n return (this.data[this.pos++] = byte);\n };\n Data.prototype.readUInt32 = function() {\n var b1, b2, b3, b4;\n b1 = this.readByte() * 0x1000000;\n b2 = this.readByte() << 16;\n b3 = this.readByte() << 8;\n b4 = this.readByte();\n return b1 + b2 + b3 + b4;\n };\n Data.prototype.writeUInt32 = function(val) {\n this.writeByte((val >>> 24) & 0xff);\n this.writeByte((val >> 16) & 0xff);\n this.writeByte((val >> 8) & 0xff);\n return this.writeByte(val & 0xff);\n };\n Data.prototype.readInt32 = function() {\n var int;\n int = this.readUInt32();\n if (int >= 0x80000000) {\n return int - 0x100000000;\n } else {\n return int;\n }\n };\n Data.prototype.writeInt32 = function(val) {\n if (val < 0) {\n val += 0x100000000;\n }\n return this.writeUInt32(val);\n };\n Data.prototype.readUInt16 = function() {\n var b1, b2;\n b1 = this.readByte() << 8;\n b2 = this.readByte();\n return b1 | b2;\n };\n Data.prototype.writeUInt16 = function(val) {\n this.writeByte((val >> 8) & 0xff);\n return this.writeByte(val & 0xff);\n };\n Data.prototype.readInt16 = function() {\n var int;\n int = this.readUInt16();\n if (int >= 0x8000) {\n return int - 0x10000;\n } else {\n return int;\n }\n };\n Data.prototype.writeInt16 = function(val) {\n if (val < 0) {\n val += 0x10000;\n }\n return this.writeUInt16(val);\n };\n Data.prototype.readString = function(length) {\n var i, ret;\n ret = [];\n for (\n i = 0;\n 0 <= length ? i < length : i > length;\n i = 0 <= length ? ++i : --i\n ) {\n ret[i] = String.fromCharCode(this.readByte());\n }\n return ret.join(\"\");\n };\n Data.prototype.writeString = function(val) {\n var i, _ref, _results;\n _results = [];\n for (\n i = 0, _ref = val.length;\n 0 <= _ref ? i < _ref : i > _ref;\n i = 0 <= _ref ? ++i : --i\n ) {\n _results.push(this.writeByte(val.charCodeAt(i)));\n }\n return _results;\n };\n /*Data.prototype.stringAt = function (pos, length) {\n this.pos = pos;\n return this.readString(length);\n };*/\n Data.prototype.readShort = function() {\n return this.readInt16();\n };\n Data.prototype.writeShort = function(val) {\n return this.writeInt16(val);\n };\n Data.prototype.readLongLong = function() {\n var b1, b2, b3, b4, b5, b6, b7, b8;\n b1 = this.readByte();\n b2 = this.readByte();\n b3 = this.readByte();\n b4 = this.readByte();\n b5 = this.readByte();\n b6 = this.readByte();\n b7 = this.readByte();\n b8 = this.readByte();\n if (b1 & 0x80) {\n return (\n ((b1 ^ 0xff) * 0x100000000000000 +\n (b2 ^ 0xff) * 0x1000000000000 +\n (b3 ^ 0xff) * 0x10000000000 +\n (b4 ^ 0xff) * 0x100000000 +\n (b5 ^ 0xff) * 0x1000000 +\n (b6 ^ 0xff) * 0x10000 +\n (b7 ^ 0xff) * 0x100 +\n (b8 ^ 0xff) +\n 1) *\n -1\n );\n }\n return (\n b1 * 0x100000000000000 +\n b2 * 0x1000000000000 +\n b3 * 0x10000000000 +\n b4 * 0x100000000 +\n b5 * 0x1000000 +\n b6 * 0x10000 +\n b7 * 0x100 +\n b8\n );\n };\n Data.prototype.writeLongLong = function(val) {\n var high, low;\n high = Math.floor(val / 0x100000000);\n low = val & 0xffffffff;\n this.writeByte((high >> 24) & 0xff);\n this.writeByte((high >> 16) & 0xff);\n this.writeByte((high >> 8) & 0xff);\n this.writeByte(high & 0xff);\n this.writeByte((low >> 24) & 0xff);\n this.writeByte((low >> 16) & 0xff);\n this.writeByte((low >> 8) & 0xff);\n return this.writeByte(low & 0xff);\n };\n Data.prototype.readInt = function() {\n return this.readInt32();\n };\n Data.prototype.writeInt = function(val) {\n return this.writeInt32(val);\n };\n /*Data.prototype.slice = function (start, end) {\n return this.data.slice(start, end);\n };*/\n Data.prototype.read = function(bytes) {\n var buf, i;\n buf = [];\n for (\n i = 0;\n 0 <= bytes ? i < bytes : i > bytes;\n i = 0 <= bytes ? ++i : --i\n ) {\n buf.push(this.readByte());\n }\n return buf;\n };\n Data.prototype.write = function(bytes) {\n var byte, i, _len, _results;\n _results = [];\n for (i = 0, _len = bytes.length; i < _len; i++) {\n byte = bytes[i];\n _results.push(this.writeByte(byte));\n }\n return _results;\n };\n return Data;\n})();\n\nvar Directory = (function() {\n var checksum;\n\n /*****************************************************************************************************/\n /* function : Directory generator */\n /* comment : Initialize the offset, tag, length, and checksum for each table for the font to be used.*/\n /*****************************************************************************************************/\n function Directory(data) {\n var entry, i, _ref;\n this.scalarType = data.readInt();\n this.tableCount = data.readShort();\n this.searchRange = data.readShort();\n this.entrySelector = data.readShort();\n this.rangeShift = data.readShort();\n this.tables = {};\n for (\n i = 0, _ref = this.tableCount;\n 0 <= _ref ? i < _ref : i > _ref;\n i = 0 <= _ref ? ++i : --i\n ) {\n entry = {\n tag: data.readString(4),\n checksum: data.readInt(),\n offset: data.readInt(),\n length: data.readInt()\n };\n this.tables[entry.tag] = entry;\n }\n }\n /********************************************************************************************************/\n /* function : encode */\n /* comment : It encodes and stores the font table object and information used for the directory object. */\n /********************************************************************************************************/\n Directory.prototype.encode = function(tables) {\n var adjustment,\n directory,\n directoryLength,\n entrySelector,\n headOffset,\n log2,\n offset,\n rangeShift,\n searchRange,\n sum,\n table,\n tableCount,\n tableData,\n tag;\n tableCount = Object.keys(tables).length;\n log2 = Math.log(2);\n searchRange = Math.floor(Math.log(tableCount) / log2) * 16;\n entrySelector = Math.floor(searchRange / log2);\n rangeShift = tableCount * 16 - searchRange;\n directory = new Data();\n directory.writeInt(this.scalarType);\n directory.writeShort(tableCount);\n directory.writeShort(searchRange);\n directory.writeShort(entrySelector);\n directory.writeShort(rangeShift);\n directoryLength = tableCount * 16;\n offset = directory.pos + directoryLength;\n headOffset = null;\n tableData = [];\n for (tag in tables) {\n table = tables[tag];\n directory.writeString(tag);\n directory.writeInt(checksum(table));\n directory.writeInt(offset);\n directory.writeInt(table.length);\n tableData = tableData.concat(table);\n if (tag === \"head\") {\n headOffset = offset;\n }\n offset += table.length;\n while (offset % 4) {\n tableData.push(0);\n offset++;\n }\n }\n directory.write(tableData);\n sum = checksum(directory.data);\n adjustment = 0xb1b0afba - sum;\n directory.pos = headOffset + 8;\n directory.writeUInt32(adjustment);\n return directory.data;\n };\n /***************************************************************/\n /* function : checksum */\n /* comment : Duplicate the table for the tag. */\n /***************************************************************/\n checksum = function(data) {\n var i, sum, tmp, _ref;\n data = __slice.call(data);\n while (data.length % 4) {\n data.push(0);\n }\n tmp = new Data(data);\n sum = 0;\n for (i = 0, _ref = data.length; i < _ref; i = i += 4) {\n sum += tmp.readUInt32();\n }\n return sum & 0xffffffff;\n };\n return Directory;\n})();\n\nvar Table,\n __hasProp = {}.hasOwnProperty,\n __extends = function(child, parent) {\n for (var key in parent) {\n if (__hasProp.call(parent, key)) child[key] = parent[key];\n }\n\n function ctor() {\n this.constructor = child;\n }\n ctor.prototype = parent.prototype;\n child.prototype = new ctor();\n child.__super__ = parent.prototype;\n return child;\n };\n\n/***************************************************************/\n/* function : Table */\n/* comment : Save info for each table, and parse the table. */\n/***************************************************************/\nTable = (function() {\n function Table(file) {\n var info;\n this.file = file;\n info = this.file.directory.tables[this.tag];\n this.exists = !!info;\n if (info) {\n (this.offset = info.offset), (this.length = info.length);\n this.parse(this.file.contents);\n }\n }\n Table.prototype.parse = function() {};\n Table.prototype.encode = function() {};\n Table.prototype.raw = function() {\n if (!this.exists) {\n return null;\n }\n this.file.contents.pos = this.offset;\n return this.file.contents.read(this.length);\n };\n return Table;\n})();\n\nvar HeadTable = (function(_super) {\n __extends(HeadTable, _super);\n\n function HeadTable() {\n return HeadTable.__super__.constructor.apply(this, arguments);\n }\n HeadTable.prototype.tag = \"head\";\n HeadTable.prototype.parse = function(data) {\n data.pos = this.offset;\n this.version = data.readInt();\n this.revision = data.readInt();\n this.checkSumAdjustment = data.readInt();\n this.magicNumber = data.readInt();\n this.flags = data.readShort();\n this.unitsPerEm = data.readShort();\n this.created = data.readLongLong();\n this.modified = data.readLongLong();\n this.xMin = data.readShort();\n this.yMin = data.readShort();\n this.xMax = data.readShort();\n this.yMax = data.readShort();\n this.macStyle = data.readShort();\n this.lowestRecPPEM = data.readShort();\n this.fontDirectionHint = data.readShort();\n this.indexToLocFormat = data.readShort();\n return (this.glyphDataFormat = data.readShort());\n };\n HeadTable.prototype.encode = function(indexToLocFormat) {\n var table;\n table = new Data();\n table.writeInt(this.version);\n table.writeInt(this.revision);\n table.writeInt(this.checkSumAdjustment);\n table.writeInt(this.magicNumber);\n table.writeShort(this.flags);\n table.writeShort(this.unitsPerEm);\n table.writeLongLong(this.created);\n table.writeLongLong(this.modified);\n table.writeShort(this.xMin);\n table.writeShort(this.yMin);\n table.writeShort(this.xMax);\n table.writeShort(this.yMax);\n table.writeShort(this.macStyle);\n table.writeShort(this.lowestRecPPEM);\n table.writeShort(this.fontDirectionHint);\n table.writeShort(indexToLocFormat);\n table.writeShort(this.glyphDataFormat);\n return table.data;\n };\n return HeadTable;\n})(Table);\n\n/************************************************************************************/\n/* function : CmapEntry */\n/* comment : Cmap Initializes and encodes object information (required by pdf spec).*/\n/************************************************************************************/\nvar CmapEntry = (function() {\n function CmapEntry(data, offset) {\n var code,\n count,\n endCode,\n glyphId,\n glyphIds,\n i,\n idDelta,\n idRangeOffset,\n index,\n saveOffset,\n segCount,\n segCountX2,\n start,\n startCode,\n tail,\n _j,\n _k,\n _len;\n this.platformID = data.readUInt16();\n this.encodingID = data.readShort();\n this.offset = offset + data.readInt();\n saveOffset = data.pos;\n data.pos = this.offset;\n this.format = data.readUInt16();\n this.length = data.readUInt16();\n this.language = data.readUInt16();\n this.isUnicode =\n (this.platformID === 3 && this.encodingID === 1 && this.format === 4) ||\n (this.platformID === 0 && this.format === 4);\n this.codeMap = {};\n switch (this.format) {\n case 0:\n for (i = 0; i < 256; ++i) {\n this.codeMap[i] = data.readByte();\n }\n break;\n case 4:\n segCountX2 = data.readUInt16();\n segCount = segCountX2 / 2;\n data.pos += 6;\n endCode = (function() {\n var _j, _results;\n _results = [];\n for (\n i = _j = 0;\n 0 <= segCount ? _j < segCount : _j > segCount;\n i = 0 <= segCount ? ++_j : --_j\n ) {\n _results.push(data.readUInt16());\n }\n return _results;\n })();\n data.pos += 2;\n startCode = (function() {\n var _j, _results;\n _results = [];\n for (\n i = _j = 0;\n 0 <= segCount ? _j < segCount : _j > segCount;\n i = 0 <= segCount ? ++_j : --_j\n ) {\n _results.push(data.readUInt16());\n }\n return _results;\n })();\n idDelta = (function() {\n var _j, _results;\n _results = [];\n for (\n i = _j = 0;\n 0 <= segCount ? _j < segCount : _j > segCount;\n i = 0 <= segCount ? ++_j : --_j\n ) {\n _results.push(data.readUInt16());\n }\n return _results;\n })();\n idRangeOffset = (function() {\n var _j, _results;\n _results = [];\n for (\n i = _j = 0;\n 0 <= segCount ? _j < segCount : _j > segCount;\n i = 0 <= segCount ? ++_j : --_j\n ) {\n _results.push(data.readUInt16());\n }\n return _results;\n })();\n count = (this.length - data.pos + this.offset) / 2;\n glyphIds = (function() {\n var _j, _results;\n _results = [];\n for (\n i = _j = 0;\n 0 <= count ? _j < count : _j > count;\n i = 0 <= count ? ++_j : --_j\n ) {\n _results.push(data.readUInt16());\n }\n return _results;\n })();\n for (i = _j = 0, _len = endCode.length; _j < _len; i = ++_j) {\n tail = endCode[i];\n start = startCode[i];\n for (\n code = _k = start;\n start <= tail ? _k <= tail : _k >= tail;\n code = start <= tail ? ++_k : --_k\n ) {\n if (idRangeOffset[i] === 0) {\n glyphId = code + idDelta[i];\n } else {\n index = idRangeOffset[i] / 2 + (code - start) - (segCount - i);\n glyphId = glyphIds[index] || 0;\n if (glyphId !== 0) {\n glyphId += idDelta[i];\n }\n }\n this.codeMap[code] = glyphId & 0xffff;\n }\n }\n }\n data.pos = saveOffset;\n }\n CmapEntry.encode = function(charmap, encoding) {\n var charMap,\n code,\n codeMap,\n codes,\n delta,\n deltas,\n diff,\n endCode,\n endCodes,\n entrySelector,\n glyphIDs,\n i,\n id,\n indexes,\n last,\n map,\n nextID,\n offset,\n old,\n rangeOffsets,\n rangeShift,\n searchRange,\n segCount,\n segCountX2,\n startCode,\n startCodes,\n startGlyph,\n subtable,\n _i,\n _j,\n _k,\n _l,\n _len,\n _len1,\n _len2,\n _len3,\n _len4,\n _len5,\n _len6,\n _len7,\n _m,\n _n,\n _name,\n _o,\n _p,\n _q;\n subtable = new Data();\n codes = Object.keys(charmap).sort(function(a, b) {\n return a - b;\n });\n switch (encoding) {\n case \"macroman\":\n id = 0;\n indexes = (function() {\n var _results = [];\n for (i = 0; i < 256; ++i) {\n _results.push(0);\n }\n return _results;\n })();\n map = {\n 0: 0\n };\n codeMap = {};\n for (_i = 0, _len = codes.length; _i < _len; _i++) {\n code = codes[_i];\n if (map[(_name = charmap[code])] == null) {\n map[_name] = ++id;\n }\n codeMap[code] = {\n old: charmap[code],\n new: map[charmap[code]]\n };\n indexes[code] = map[charmap[code]];\n }\n subtable.writeUInt16(1);\n subtable.writeUInt16(0);\n subtable.writeUInt32(12);\n subtable.writeUInt16(0);\n subtable.writeUInt16(262);\n subtable.writeUInt16(0);\n subtable.write(indexes);\n return {\n charMap: codeMap,\n subtable: subtable.data,\n maxGlyphID: id + 1\n };\n case \"unicode\":\n startCodes = [];\n endCodes = [];\n nextID = 0;\n map = {};\n charMap = {};\n last = diff = null;\n for (_j = 0, _len1 = codes.length; _j < _len1; _j++) {\n code = codes[_j];\n old = charmap[code];\n if (map[old] == null) {\n map[old] = ++nextID;\n }\n charMap[code] = {\n old: old,\n new: map[old]\n };\n delta = map[old] - code;\n if (last == null || delta !== diff) {\n if (last) {\n endCodes.push(last);\n }\n startCodes.push(code);\n diff = delta;\n }\n last = code;\n }\n if (last) {\n endCodes.push(last);\n }\n endCodes.push(0xffff);\n startCodes.push(0xffff);\n segCount = startCodes.length;\n segCountX2 = segCount * 2;\n searchRange = 2 * Math.pow(Math.log(segCount) / Math.LN2, 2);\n entrySelector = Math.log(searchRange / 2) / Math.LN2;\n rangeShift = 2 * segCount - searchRange;\n deltas = [];\n rangeOffsets = [];\n glyphIDs = [];\n for (i = _k = 0, _len2 = startCodes.length; _k < _len2; i = ++_k) {\n startCode = startCodes[i];\n endCode = endCodes[i];\n if (startCode === 0xffff) {\n deltas.push(0);\n rangeOffsets.push(0);\n break;\n }\n startGlyph = charMap[startCode][\"new\"];\n if (startCode - startGlyph >= 0x8000) {\n deltas.push(0);\n rangeOffsets.push(2 * (glyphIDs.length + segCount - i));\n for (\n code = _l = startCode;\n startCode <= endCode ? _l <= endCode : _l >= endCode;\n code = startCode <= endCode ? ++_l : --_l\n ) {\n glyphIDs.push(charMap[code][\"new\"]);\n }\n } else {\n deltas.push(startGlyph - startCode);\n rangeOffsets.push(0);\n }\n }\n subtable.writeUInt16(3);\n subtable.writeUInt16(1);\n subtable.writeUInt32(12);\n subtable.writeUInt16(4);\n subtable.writeUInt16(16 + segCount * 8 + glyphIDs.length * 2);\n subtable.writeUInt16(0);\n subtable.writeUInt16(segCountX2);\n subtable.writeUInt16(searchRange);\n subtable.writeUInt16(entrySelector);\n subtable.writeUInt16(rangeShift);\n for (_m = 0, _len3 = endCodes.length; _m < _len3; _m++) {\n code = endCodes[_m];\n subtable.writeUInt16(code);\n }\n subtable.writeUInt16(0);\n for (_n = 0, _len4 = startCodes.length; _n < _len4; _n++) {\n code = startCodes[_n];\n subtable.writeUInt16(code);\n }\n for (_o = 0, _len5 = deltas.length; _o < _len5; _o++) {\n delta = deltas[_o];\n subtable.writeUInt16(delta);\n }\n for (_p = 0, _len6 = rangeOffsets.length; _p < _len6; _p++) {\n offset = rangeOffsets[_p];\n subtable.writeUInt16(offset);\n }\n for (_q = 0, _len7 = glyphIDs.length; _q < _len7; _q++) {\n id = glyphIDs[_q];\n subtable.writeUInt16(id);\n }\n return {\n charMap: charMap,\n subtable: subtable.data,\n maxGlyphID: nextID + 1\n };\n }\n };\n return CmapEntry;\n})();\n\nvar CmapTable = (function(_super) {\n __extends(CmapTable, _super);\n\n function CmapTable() {\n return CmapTable.__super__.constructor.apply(this, arguments);\n }\n CmapTable.prototype.tag = \"cmap\";\n CmapTable.prototype.parse = function(data) {\n var entry, i, tableCount;\n data.pos = this.offset;\n this.version = data.readUInt16();\n tableCount = data.readUInt16();\n this.tables = [];\n this.unicode = null;\n for (\n i = 0;\n 0 <= tableCount ? i < tableCount : i > tableCount;\n i = 0 <= tableCount ? ++i : --i\n ) {\n entry = new CmapEntry(data, this.offset);\n this.tables.push(entry);\n if (entry.isUnicode) {\n if (this.unicode == null) {\n this.unicode = entry;\n }\n }\n }\n return true;\n };\n /*************************************************************************/\n /* function : encode */\n /* comment : Encode the cmap table corresponding to the input character. */\n /*************************************************************************/\n CmapTable.encode = function(charmap, encoding) {\n var result, table;\n if (encoding == null) {\n encoding = \"macroman\";\n }\n result = CmapEntry.encode(charmap, encoding);\n table = new Data();\n table.writeUInt16(0);\n table.writeUInt16(1);\n result.table = table.data.concat(result.subtable);\n return result;\n };\n return CmapTable;\n})(Table);\n\nvar HheaTable = (function(_super) {\n __extends(HheaTable, _super);\n\n function HheaTable() {\n return HheaTable.__super__.constructor.apply(this, arguments);\n }\n HheaTable.prototype.tag = \"hhea\";\n HheaTable.prototype.parse = function(data) {\n data.pos = this.offset;\n this.version = data.readInt();\n this.ascender = data.readShort();\n this.decender = data.readShort();\n this.lineGap = data.readShort();\n this.advanceWidthMax = data.readShort();\n this.minLeftSideBearing = data.readShort();\n this.minRightSideBearing = data.readShort();\n this.xMaxExtent = data.readShort();\n this.caretSlopeRise = data.readShort();\n this.caretSlopeRun = data.readShort();\n this.caretOffset = data.readShort();\n data.pos += 4 * 2;\n this.metricDataFormat = data.readShort();\n return (this.numberOfMetrics = data.readUInt16());\n };\n /*HheaTable.prototype.encode = function (ids) {\n var i, table, _i, _ref;\n table = new Data;\n table.writeInt(this.version);\n table.writeShort(this.ascender);\n table.writeShort(this.decender);\n table.writeShort(this.lineGap);\n table.writeShort(this.advanceWidthMax);\n table.writeShort(this.minLeftSideBearing);\n table.writeShort(this.minRightSideBearing);\n table.writeShort(this.xMaxExtent);\n table.writeShort(this.caretSlopeRise);\n table.writeShort(this.caretSlopeRun);\n table.writeShort(this.caretOffset);\n for (i = _i = 0, _ref = 4 * 2; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) {\n table.writeByte(0);\n }\n table.writeShort(this.metricDataFormat);\n table.writeUInt16(ids.length);\n return table.data;\n };*/\n return HheaTable;\n})(Table);\n\nvar OS2Table = (function(_super) {\n __extends(OS2Table, _super);\n\n function OS2Table() {\n return OS2Table.__super__.constructor.apply(this, arguments);\n }\n OS2Table.prototype.tag = \"OS/2\";\n OS2Table.prototype.parse = function(data) {\n data.pos = this.offset;\n this.version = data.readUInt16();\n this.averageCharWidth = data.readShort();\n this.weightClass = data.readUInt16();\n this.widthClass = data.readUInt16();\n this.type = data.readShort();\n this.ySubscriptXSize = data.readShort();\n this.ySubscriptYSize = data.readShort();\n this.ySubscriptXOffset = data.readShort();\n this.ySubscriptYOffset = data.readShort();\n this.ySuperscriptXSize = data.readShort();\n this.ySuperscriptYSize = data.readShort();\n this.ySuperscriptXOffset = data.readShort();\n this.ySuperscriptYOffset = data.readShort();\n this.yStrikeoutSize = data.readShort();\n this.yStrikeoutPosition = data.readShort();\n this.familyClass = data.readShort();\n this.panose = (function() {\n var i, _results;\n _results = [];\n for (i = 0; i < 10; ++i) {\n _results.push(data.readByte());\n }\n return _results;\n })();\n this.charRange = (function() {\n var i, _results;\n _results = [];\n for (i = 0; i < 4; ++i) {\n _results.push(data.readInt());\n }\n return _results;\n })();\n this.vendorID = data.readString(4);\n this.selection = data.readShort();\n this.firstCharIndex = data.readShort();\n this.lastCharIndex = data.readShort();\n if (this.version > 0) {\n this.ascent = data.readShort();\n this.descent = data.readShort();\n this.lineGap = data.readShort();\n this.winAscent = data.readShort();\n this.winDescent = data.readShort();\n this.codePageRange = (function() {\n var i, _results;\n _results = [];\n for (i = 0; i < 2; i = ++i) {\n _results.push(data.readInt());\n }\n return _results;\n })();\n if (this.version > 1) {\n this.xHeight = data.readShort();\n this.capHeight = data.readShort();\n this.defaultChar = data.readShort();\n this.breakChar = data.readShort();\n return (this.maxContext = data.readShort());\n }\n }\n };\n /*OS2Table.prototype.encode = function () {\n return this.raw();\n };*/\n return OS2Table;\n})(Table);\n\nvar PostTable = (function(_super) {\n var POSTSCRIPT_GLYPHS;\n __extends(PostTable, _super);\n\n function PostTable() {\n return PostTable.__super__.constructor.apply(this, arguments);\n }\n PostTable.prototype.tag = \"post\";\n PostTable.prototype.parse = function(data) {\n var length, numberOfGlyphs, _results;\n data.pos = this.offset;\n this.format = data.readInt();\n this.italicAngle = data.readInt();\n this.underlinePosition = data.readShort();\n this.underlineThickness = data.readShort();\n this.isFixedPitch = data.readInt();\n this.minMemType42 = data.readInt();\n this.maxMemType42 = data.readInt();\n this.minMemType1 = data.readInt();\n this.maxMemType1 = data.readInt();\n switch (this.format) {\n case 0x00010000:\n break;\n case 0x00020000:\n numberOfGlyphs = data.readUInt16();\n this.glyphNameIndex = [];\n var i;\n for (\n i = 0;\n 0 <= numberOfGlyphs ? i < numberOfGlyphs : i > numberOfGlyphs;\n i = 0 <= numberOfGlyphs ? ++i : --i\n ) {\n this.glyphNameIndex.push(data.readUInt16());\n }\n this.names = [];\n _results = [];\n while (data.pos < this.offset + this.length) {\n length = data.readByte();\n _results.push(this.names.push(data.readString(length)));\n }\n return _results;\n case 0x00025000:\n numberOfGlyphs = data.readUInt16();\n return (this.offsets = data.read(numberOfGlyphs));\n case 0x00030000:\n break;\n case 0x00040000:\n return (this.map = function() {\n var _j, _ref, _results1;\n _results1 = [];\n for (\n i = _j = 0, _ref = this.file.maxp.numGlyphs;\n 0 <= _ref ? _j < _ref : _j > _ref;\n i = 0 <= _ref ? ++_j : --_j\n ) {\n _results1.push(data.readUInt32());\n }\n return _results1;\n }.call(this));\n }\n };\n /*PostTable.prototype.glyphFor = function (code) {\n var index;\n switch (this.format) {\n case 0x00010000:\n return POSTSCRIPT_GLYPHS[code] || '.notdef';\n case 0x00020000:\n index = this.glyphNameIndex[code];\n if (index <= 257) {\n return POSTSCRIPT_GLYPHS[index];\n }\n else {\n return this.names[index - 258] || '.notdef';\n }\n break;\n case 0x00025000:\n return POSTSCRIPT_GLYPHS[code + this.offsets[code]] || '.notdef';\n case 0x00030000:\n return '.notdef';\n case 0x00040000:\n return this.map[code] || 0xFFFF;\n }\n };*/\n /*PostTable.prototype.encode = function (mapping) {\n var id, index, indexes, position, post, raw, string, strings, table, _i, _j, _k, _len, _len1, _len2;\n if (!this.exists) {\n return null;\n }\n raw = this.raw();\n if (this.format === 0x00030000) {\n return raw;\n }\n table = new Data(raw.slice(0, 32));\n table.writeUInt32(0x00020000);\n table.pos = 32;\n indexes = [];\n strings = [];\n for (_i = 0, _len = mapping.length; _i < _len; _i++) {\n id = mapping[_i];\n post = this.glyphFor(id);\n position = POSTSCRIPT_GLYPHS.indexOf(post);\n if (position !== -1) {\n indexes.push(position);\n }\n else {\n indexes.push(257 + strings.length);\n strings.push(post);\n }\n }\n table.writeUInt16(Object.keys(mapping).length);\n for (_j = 0, _len1 = indexes.length; _j < _len1; _j++) {\n index = indexes[_j];\n table.writeUInt16(index);\n }\n for (_k = 0, _len2 = strings.length; _k < _len2; _k++) {\n string = strings[_k];\n table.writeByte(string.length);\n table.writeString(string);\n }\n return table.data;\n };*/\n POSTSCRIPT_GLYPHS = \".notdef .null nonmarkingreturn space exclam quotedbl numbersign dollar percent\\nampersand quotesingle parenleft parenright asterisk plus comma hyphen period slash\\nzero one two three four five six seven eight nine colon semicolon less equal greater\\nquestion at A B C D E F G H I J K L M N O P Q R S T U V W X Y Z\\nbracketleft backslash bracketright asciicircum underscore grave\\na b c d e f g h i j k l m n o p q r s t u v w x y z\\nbraceleft bar braceright asciitilde Adieresis Aring Ccedilla Eacute Ntilde Odieresis\\nUdieresis aacute agrave acircumflex adieresis atilde aring ccedilla eacute egrave\\necircumflex edieresis iacute igrave icircumflex idieresis ntilde oacute ograve\\nocircumflex odieresis otilde uacute ugrave ucircumflex udieresis dagger degree cent\\nsterling section bullet paragraph germandbls registered copyright trademark acute\\ndieresis notequal AE Oslash infinity plusminus lessequal greaterequal yen mu\\npartialdiff summation product pi integral ordfeminine ordmasculine Omega ae oslash\\nquestiondown exclamdown logicalnot radical florin approxequal Delta guillemotleft\\nguillemotright ellipsis nonbreakingspace Agrave Atilde Otilde OE oe endash emdash\\nquotedblleft quotedblright quoteleft quoteright divide lozenge ydieresis Ydieresis\\nfraction currency guilsinglleft guilsinglright fi fl daggerdbl periodcentered\\nquotesinglbase quotedblbase perthousand Acircumflex Ecircumflex Aacute Edieresis\\nEgrave Iacute Icircumflex Idieresis Igrave Oacute Ocircumflex apple Ograve Uacute\\nUcircumflex Ugrave dotlessi circumflex tilde macron breve dotaccent ring cedilla\\nhungarumlaut ogonek caron Lslash lslash Scaron scaron Zcaron zcaron brokenbar Eth\\neth Yacute yacute Thorn thorn minus multiply onesuperior twosuperior threesuperior\\nonehalf onequarter threequarters franc Gbreve gbreve Idotaccent Scedilla scedilla\\nCacute cacute Ccaron ccaron dcroat\".split(\n /\\s+/g\n );\n return PostTable;\n})(Table);\n\n/*********************************************************************************************************/\n/* function : NameEntry */\n/* comment : Store copyright information, platformID, encodingID, and languageID in the NameEntry object.*/\n/*********************************************************************************************************/\nvar NameEntry = (function() {\n function NameEntry(raw, entry) {\n this.raw = raw;\n this.length = raw.length;\n this.platformID = entry.platformID;\n this.encodingID = entry.encodingID;\n this.languageID = entry.languageID;\n }\n return NameEntry;\n})();\n\nvar NameTable = (function(_super) {\n var subsetTag;\n __extends(NameTable, _super);\n\n function NameTable() {\n return NameTable.__super__.constructor.apply(this, arguments);\n }\n NameTable.prototype.tag = \"name\";\n NameTable.prototype.parse = function(data) {\n var count,\n entries,\n entry,\n i,\n name,\n stringOffset,\n strings,\n text,\n _j,\n _len,\n _name;\n data.pos = this.offset;\n data.readShort(); //format\n count = data.readShort();\n stringOffset = data.readShort();\n entries = [];\n for (\n i = 0;\n 0 <= count ? i < count : i > count;\n i = 0 <= count ? ++i : --i\n ) {\n entries.push({\n platformID: data.readShort(),\n encodingID: data.readShort(),\n languageID: data.readShort(),\n nameID: data.readShort(),\n length: data.readShort(),\n offset: this.offset + stringOffset + data.readShort()\n });\n }\n strings = {};\n for (i = _j = 0, _len = entries.length; _j < _len; i = ++_j) {\n entry = entries[i];\n data.pos = entry.offset;\n text = data.readString(entry.length);\n name = new NameEntry(text, entry);\n if (strings[(_name = entry.nameID)] == null) {\n strings[_name] = [];\n }\n strings[entry.nameID].push(name);\n }\n this.strings = strings;\n this.copyright = strings[0];\n this.fontFamily = strings[1];\n this.fontSubfamily = strings[2];\n this.uniqueSubfamily = strings[3];\n this.fontName = strings[4];\n this.version = strings[5];\n try {\n this.postscriptName = strings[6][0].raw.replace(\n /[\\x00-\\x19\\x80-\\xff]/g,\n \"\"\n );\n } catch (e) {\n this.postscriptName = strings[4][0].raw.replace(\n /[\\x00-\\x19\\x80-\\xff]/g,\n \"\"\n );\n }\n this.trademark = strings[7];\n this.manufacturer = strings[8];\n this.designer = strings[9];\n this.description = strings[10];\n this.vendorUrl = strings[11];\n this.designerUrl = strings[12];\n this.license = strings[13];\n this.licenseUrl = strings[14];\n this.preferredFamily = strings[15];\n this.preferredSubfamily = strings[17];\n this.compatibleFull = strings[18];\n return (this.sampleText = strings[19]);\n };\n subsetTag = \"AAAAAA\";\n /*NameTable.prototype.encode = function () {\n var id, list, nameID, nameTable, postscriptName, strCount, strTable, string, strings, table, val, _i, _len, _ref;\n strings = {};\n _ref = this.strings;\n for (id in _ref) {\n val = _ref[id];\n strings[id] = val;\n }\n postscriptName = new NameEntry(\"\" + subsetTag + \"+\" + this.postscriptName, {\n platformID: 1\n , encodingID: 0\n , languageID: 0\n });\n strings[6] = [postscriptName];\n subsetTag = successorOf(subsetTag);\n strCount = 0;\n for (id in strings) {\n list = strings[id];\n if (list != null) {\n strCount += list.length;\n }\n }\n table = new Data;\n strTable = new Data;\n table.writeShort(0);\n table.writeShort(strCount);\n table.writeShort(6 + 12 * strCount);\n for (nameID in strings) {\n list = strings[nameID];\n if (list != null) {\n for (_i = 0, _len = list.length; _i < _len; _i++) {\n string = list[_i];\n table.writeShort(string.platformID);\n table.writeShort(string.encodingID);\n table.writeShort(string.languageID);\n table.writeShort(nameID);\n table.writeShort(string.length);\n table.writeShort(strTable.pos);\n strTable.writeString(string.raw);\n }\n }\n }\n return nameTable = {\n postscriptName: postscriptName.raw\n , table: table.data.concat(strTable.data)\n };\n };*/\n return NameTable;\n})(Table);\n\nvar MaxpTable = (function(_super) {\n __extends(MaxpTable, _super);\n\n function MaxpTable() {\n return MaxpTable.__super__.constructor.apply(this, arguments);\n }\n MaxpTable.prototype.tag = \"maxp\";\n MaxpTable.prototype.parse = function(data) {\n data.pos = this.offset;\n this.version = data.readInt();\n this.numGlyphs = data.readUInt16();\n this.maxPoints = data.readUInt16();\n this.maxContours = data.readUInt16();\n this.maxCompositePoints = data.readUInt16();\n this.maxComponentContours = data.readUInt16();\n this.maxZones = data.readUInt16();\n this.maxTwilightPoints = data.readUInt16();\n this.maxStorage = data.readUInt16();\n this.maxFunctionDefs = data.readUInt16();\n this.maxInstructionDefs = data.readUInt16();\n this.maxStackElements = data.readUInt16();\n this.maxSizeOfInstructions = data.readUInt16();\n this.maxComponentElements = data.readUInt16();\n return (this.maxComponentDepth = data.readUInt16());\n };\n /*MaxpTable.prototype.encode = function (ids) {\n var table;\n table = new Data;\n table.writeInt(this.version);\n table.writeUInt16(ids.length);\n table.writeUInt16(this.maxPoints);\n table.writeUInt16(this.maxContours);\n table.writeUInt16(this.maxCompositePoints);\n table.writeUInt16(this.maxComponentContours);\n table.writeUInt16(this.maxZones);\n table.writeUInt16(this.maxTwilightPoints);\n table.writeUInt16(this.maxStorage);\n table.writeUInt16(this.maxFunctionDefs);\n table.writeUInt16(this.maxInstructionDefs);\n table.writeUInt16(this.maxStackElements);\n table.writeUInt16(this.maxSizeOfInstructions);\n table.writeUInt16(this.maxComponentElements);\n table.writeUInt16(this.maxComponentDepth);\n return table.data;\n };*/\n return MaxpTable;\n})(Table);\n\nvar HmtxTable = (function(_super) {\n __extends(HmtxTable, _super);\n\n function HmtxTable() {\n return HmtxTable.__super__.constructor.apply(this, arguments);\n }\n HmtxTable.prototype.tag = \"hmtx\";\n HmtxTable.prototype.parse = function(data) {\n var i, last, lsbCount, m, _j, _ref, _results;\n data.pos = this.offset;\n this.metrics = [];\n for (\n i = 0, _ref = this.file.hhea.numberOfMetrics;\n 0 <= _ref ? i < _ref : i > _ref;\n i = 0 <= _ref ? ++i : --i\n ) {\n this.metrics.push({\n advance: data.readUInt16(),\n lsb: data.readInt16()\n });\n }\n lsbCount = this.file.maxp.numGlyphs - this.file.hhea.numberOfMetrics;\n this.leftSideBearings = (function() {\n var _j, _results;\n _results = [];\n for (\n i = _j = 0;\n 0 <= lsbCount ? _j < lsbCount : _j > lsbCount;\n i = 0 <= lsbCount ? ++_j : --_j\n ) {\n _results.push(data.readInt16());\n }\n return _results;\n })();\n this.widths = function() {\n var _j, _len, _ref1, _results;\n _ref1 = this.metrics;\n _results = [];\n for (_j = 0, _len = _ref1.length; _j < _len; _j++) {\n m = _ref1[_j];\n _results.push(m.advance);\n }\n return _results;\n }.call(this);\n last = this.widths[this.widths.length - 1];\n _results = [];\n for (\n i = _j = 0;\n 0 <= lsbCount ? _j < lsbCount : _j > lsbCount;\n i = 0 <= lsbCount ? ++_j : --_j\n ) {\n _results.push(this.widths.push(last));\n }\n return _results;\n };\n /***************************************************************/\n /* function : forGlyph */\n /* comment : Returns the advance width and lsb for this glyph. */\n /***************************************************************/\n HmtxTable.prototype.forGlyph = function(id) {\n if (id in this.metrics) {\n return this.metrics[id];\n }\n return {\n advance: this.metrics[this.metrics.length - 1].advance,\n lsb: this.leftSideBearings[id - this.metrics.length]\n };\n };\n /*HmtxTable.prototype.encode = function (mapping) {\n var id, metric, table, _i, _len;\n table = new Data;\n for (_i = 0, _len = mapping.length; _i < _len; _i++) {\n id = mapping[_i];\n metric = this.forGlyph(id);\n table.writeUInt16(metric.advance);\n table.writeUInt16(metric.lsb);\n }\n return table.data;\n };*/\n return HmtxTable;\n})(Table);\n\nvar __slice = [].slice;\n\nvar GlyfTable = (function(_super) {\n __extends(GlyfTable, _super);\n\n function GlyfTable() {\n return GlyfTable.__super__.constructor.apply(this, arguments);\n }\n GlyfTable.prototype.tag = \"glyf\";\n GlyfTable.prototype.parse = function() {\n return (this.cache = {});\n };\n GlyfTable.prototype.glyphFor = function(id) {\n var data,\n index,\n length,\n loca,\n numberOfContours,\n raw,\n xMax,\n xMin,\n yMax,\n yMin;\n if (id in this.cache) {\n return this.cache[id];\n }\n loca = this.file.loca;\n data = this.file.contents;\n index = loca.indexOf(id);\n length = loca.lengthOf(id);\n if (length === 0) {\n return (this.cache[id] = null);\n }\n data.pos = this.offset + index;\n raw = new Data(data.read(length));\n numberOfContours = raw.readShort();\n xMin = raw.readShort();\n yMin = raw.readShort();\n xMax = raw.readShort();\n yMax = raw.readShort();\n if (numberOfContours === -1) {\n this.cache[id] = new CompoundGlyph(raw, xMin, yMin, xMax, yMax);\n } else {\n this.cache[id] = new SimpleGlyph(\n raw,\n numberOfContours,\n xMin,\n yMin,\n xMax,\n yMax\n );\n }\n return this.cache[id];\n };\n GlyfTable.prototype.encode = function(glyphs, mapping, old2new) {\n var glyph, id, offsets, table, _i, _len;\n table = [];\n offsets = [];\n for (_i = 0, _len = mapping.length; _i < _len; _i++) {\n id = mapping[_i];\n glyph = glyphs[id];\n offsets.push(table.length);\n if (glyph) {\n table = table.concat(glyph.encode(old2new));\n }\n }\n offsets.push(table.length);\n return {\n table: table,\n offsets: offsets\n };\n };\n return GlyfTable;\n})(Table);\n\nvar SimpleGlyph = (function() {\n /**************************************************************************/\n /* function : SimpleGlyph */\n /* comment : Stores raw, xMin, yMin, xMax, and yMax values for this glyph.*/\n /**************************************************************************/\n function SimpleGlyph(raw, numberOfContours, xMin, yMin, xMax, yMax) {\n this.raw = raw;\n this.numberOfContours = numberOfContours;\n this.xMin = xMin;\n this.yMin = yMin;\n this.xMax = xMax;\n this.yMax = yMax;\n this.compound = false;\n }\n SimpleGlyph.prototype.encode = function() {\n return this.raw.data;\n };\n return SimpleGlyph;\n})();\n\nvar CompoundGlyph = (function() {\n var ARG_1_AND_2_ARE_WORDS,\n MORE_COMPONENTS,\n WE_HAVE_AN_X_AND_Y_SCALE,\n WE_HAVE_A_SCALE,\n WE_HAVE_A_TWO_BY_TWO,\n WE_HAVE_INSTRUCTIONS;\n ARG_1_AND_2_ARE_WORDS = 0x0001;\n WE_HAVE_A_SCALE = 0x0008;\n MORE_COMPONENTS = 0x0020;\n WE_HAVE_AN_X_AND_Y_SCALE = 0x0040;\n WE_HAVE_A_TWO_BY_TWO = 0x0080;\n WE_HAVE_INSTRUCTIONS = 0x0100;\n\n /********************************************************************************************************************/\n /* function : CompoundGlypg generator */\n /* comment : It stores raw, xMin, yMin, xMax, yMax, glyph id, and glyph offset for the corresponding compound glyph.*/\n /********************************************************************************************************************/\n function CompoundGlyph(raw, xMin, yMin, xMax, yMax) {\n var data, flags;\n this.raw = raw;\n this.xMin = xMin;\n this.yMin = yMin;\n this.xMax = xMax;\n this.yMax = yMax;\n this.compound = true;\n this.glyphIDs = [];\n this.glyphOffsets = [];\n data = this.raw;\n while (true) {\n flags = data.readShort();\n this.glyphOffsets.push(data.pos);\n this.glyphIDs.push(data.readUInt16());\n if (!(flags & MORE_COMPONENTS)) {\n break;\n }\n if (flags & ARG_1_AND_2_ARE_WORDS) {\n data.pos += 4;\n } else {\n data.pos += 2;\n }\n if (flags & WE_HAVE_A_TWO_BY_TWO) {\n data.pos += 8;\n } else if (flags & WE_HAVE_AN_X_AND_Y_SCALE) {\n data.pos += 4;\n } else if (flags & WE_HAVE_A_SCALE) {\n data.pos += 2;\n }\n }\n }\n /****************************************************************************************************************/\n /* function : CompoundGlypg encode */\n /* comment : After creating a table for the characters you typed, you call directory.encode to encode the table.*/\n /****************************************************************************************************************/\n CompoundGlyph.prototype.encode = function() {\n var i, result, _len, _ref;\n result = new Data(__slice.call(this.raw.data));\n _ref = this.glyphIDs;\n for (i = 0, _len = _ref.length; i < _len; ++i) {\n result.pos = this.glyphOffsets[i];\n }\n return result.data;\n };\n return CompoundGlyph;\n})();\n\nvar LocaTable = (function(_super) {\n __extends(LocaTable, _super);\n\n function LocaTable() {\n return LocaTable.__super__.constructor.apply(this, arguments);\n }\n LocaTable.prototype.tag = \"loca\";\n LocaTable.prototype.parse = function(data) {\n var format, i;\n data.pos = this.offset;\n format = this.file.head.indexToLocFormat;\n if (format === 0) {\n return (this.offsets = function() {\n var _ref, _results;\n _results = [];\n for (i = 0, _ref = this.length; i < _ref; i += 2) {\n _results.push(data.readUInt16() * 2);\n }\n return _results;\n }.call(this));\n } else {\n return (this.offsets = function() {\n var _ref, _results;\n _results = [];\n for (i = 0, _ref = this.length; i < _ref; i += 4) {\n _results.push(data.readUInt32());\n }\n return _results;\n }.call(this));\n }\n };\n LocaTable.prototype.indexOf = function(id) {\n return this.offsets[id];\n };\n LocaTable.prototype.lengthOf = function(id) {\n return this.offsets[id + 1] - this.offsets[id];\n };\n LocaTable.prototype.encode = function(offsets, activeGlyphs) {\n var LocaTable = new Uint32Array(this.offsets.length);\n var glyfPtr = 0;\n var listGlyf = 0;\n for (var k = 0; k < LocaTable.length; ++k) {\n LocaTable[k] = glyfPtr;\n if (listGlyf < activeGlyphs.length && activeGlyphs[listGlyf] == k) {\n ++listGlyf;\n LocaTable[k] = glyfPtr;\n var start = this.offsets[k];\n var len = this.offsets[k + 1] - start;\n if (len > 0) {\n glyfPtr += len;\n }\n }\n }\n var newLocaTable = new Array(LocaTable.length * 4);\n for (var j = 0; j < LocaTable.length; ++j) {\n newLocaTable[4 * j + 3] = LocaTable[j] & 0x000000ff;\n newLocaTable[4 * j + 2] = (LocaTable[j] & 0x0000ff00) >> 8;\n newLocaTable[4 * j + 1] = (LocaTable[j] & 0x00ff0000) >> 16;\n newLocaTable[4 * j] = (LocaTable[j] & 0xff000000) >> 24;\n }\n return newLocaTable;\n };\n return LocaTable;\n})(Table);\n\n/************************************************************************************/\n/* function : invert */\n/* comment : Change the object's (key: value) to create an object with (value: key).*/\n/************************************************************************************/\nvar invert = function(object) {\n var key, ret, val;\n ret = {};\n for (key in object) {\n val = object[key];\n ret[val] = key;\n }\n return ret;\n};\n\n/*var successorOf = function (input) {\n var added, alphabet, carry, i, index, isUpperCase, last, length, next, result;\n alphabet = 'abcdefghijklmnopqrstuvwxyz';\n length = alphabet.length;\n result = input;\n i = input.length;\n while (i >= 0) {\n last = input.charAt(--i);\n if (isNaN(last)) {\n index = alphabet.indexOf(last.toLowerCase());\n if (index === -1) {\n next = last;\n carry = true;\n }\n else {\n next = alphabet.charAt((index + 1) % length);\n isUpperCase = last === last.toUpperCase();\n if (isUpperCase) {\n next = next.toUpperCase();\n }\n carry = index + 1 >= length;\n if (carry && i === 0) {\n added = isUpperCase ? 'A' : 'a';\n result = added + next + result.slice(1);\n break;\n }\n }\n }\n else {\n next = +last + 1;\n carry = next > 9;\n if (carry) {\n next = 0;\n }\n if (carry && i === 0) {\n result = '1' + next + result.slice(1);\n break;\n }\n }\n result = result.slice(0, i) + next + result.slice(i + 1);\n if (!carry) {\n break;\n }\n }\n return result;\n };*/\n\nvar Subset = (function() {\n function Subset(font) {\n this.font = font;\n this.subset = {};\n this.unicodes = {};\n this.next = 33;\n }\n /*Subset.prototype.use = function (character) {\n var i, _i, _ref;\n if (typeof character === 'string') {\n for (i = _i = 0, _ref = character.length; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) {\n this.use(character.charCodeAt(i));\n }\n return;\n }\n if (!this.unicodes[character]) {\n this.subset[this.next] = character;\n return this.unicodes[character] = this.next++;\n }\n };*/\n /*Subset.prototype.encodeText = function (text) {\n var char, i, string, _i, _ref;\n string = '';\n for (i = _i = 0, _ref = text.length; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) {\n char = this.unicodes[text.charCodeAt(i)];\n string += String.fromCharCode(char);\n }\n return string;\n };*/\n /***************************************************************/\n /* function : generateCmap */\n /* comment : Returns the unicode cmap for this font. */\n /***************************************************************/\n Subset.prototype.generateCmap = function() {\n var mapping, roman, unicode, unicodeCmap, _ref;\n unicodeCmap = this.font.cmap.tables[0].codeMap;\n mapping = {};\n _ref = this.subset;\n for (roman in _ref) {\n unicode = _ref[roman];\n mapping[roman] = unicodeCmap[unicode];\n }\n return mapping;\n };\n /*Subset.prototype.glyphIDs = function () {\n var ret, roman, unicode, unicodeCmap, val, _ref;\n unicodeCmap = this.font.cmap.tables[0].codeMap;\n ret = [0];\n _ref = this.subset;\n for (roman in _ref) {\n unicode = _ref[roman];\n val = unicodeCmap[unicode];\n if ((val != null) && __indexOf.call(ret, val) < 0) {\n ret.push(val);\n }\n }\n return ret.sort();\n };*/\n /******************************************************************/\n /* function : glyphsFor */\n /* comment : Returns simple glyph objects for the input character.*/\n /******************************************************************/\n Subset.prototype.glyphsFor = function(glyphIDs) {\n var additionalIDs, glyph, glyphs, id, _i, _len, _ref;\n glyphs = {};\n for (_i = 0, _len = glyphIDs.length; _i < _len; _i++) {\n id = glyphIDs[_i];\n glyphs[id] = this.font.glyf.glyphFor(id);\n }\n additionalIDs = [];\n for (id in glyphs) {\n glyph = glyphs[id];\n if (glyph != null ? glyph.compound : void 0) {\n additionalIDs.push.apply(additionalIDs, glyph.glyphIDs);\n }\n }\n if (additionalIDs.length > 0) {\n _ref = this.glyphsFor(additionalIDs);\n for (id in _ref) {\n glyph = _ref[id];\n glyphs[id] = glyph;\n }\n }\n return glyphs;\n };\n /***************************************************************/\n /* function : encode */\n /* comment : Encode various tables for the characters you use. */\n /***************************************************************/\n Subset.prototype.encode = function(glyID, indexToLocFormat) {\n var cmap,\n code,\n glyf,\n glyphs,\n id,\n ids,\n loca,\n new2old,\n newIDs,\n nextGlyphID,\n old2new,\n oldID,\n oldIDs,\n tables,\n _ref;\n cmap = CmapTable.encode(this.generateCmap(), \"unicode\");\n glyphs = this.glyphsFor(glyID);\n old2new = {\n 0: 0\n };\n _ref = cmap.charMap;\n for (code in _ref) {\n ids = _ref[code];\n old2new[ids.old] = ids[\"new\"];\n }\n nextGlyphID = cmap.maxGlyphID;\n for (oldID in glyphs) {\n if (!(oldID in old2new)) {\n old2new[oldID] = nextGlyphID++;\n }\n }\n new2old = invert(old2new);\n newIDs = Object.keys(new2old).sort(function(a, b) {\n return a - b;\n });\n oldIDs = (function() {\n var _i, _len, _results;\n _results = [];\n for (_i = 0, _len = newIDs.length; _i < _len; _i++) {\n id = newIDs[_i];\n _results.push(new2old[id]);\n }\n return _results;\n })();\n glyf = this.font.glyf.encode(glyphs, oldIDs, old2new);\n loca = this.font.loca.encode(glyf.offsets, oldIDs);\n tables = {\n cmap: this.font.cmap.raw(),\n glyf: glyf.table,\n loca: loca,\n hmtx: this.font.hmtx.raw(),\n hhea: this.font.hhea.raw(),\n maxp: this.font.maxp.raw(),\n post: this.font.post.raw(),\n name: this.font.name.raw(),\n head: this.font.head.encode(indexToLocFormat)\n };\n if (this.font.os2.exists) {\n tables[\"OS/2\"] = this.font.os2.raw();\n }\n return this.font.directory.encode(tables);\n };\n return Subset;\n})();\n\njsPDF.API.PDFObject = (function() {\n var pad;\n\n function PDFObject() {}\n pad = function(str, length) {\n return (Array(length + 1).join(\"0\") + str).slice(-length);\n };\n /*****************************************************************************/\n /* function : convert */\n /* comment :Converts pdf tag's / FontBBox and array values in / W to strings */\n /*****************************************************************************/\n PDFObject.convert = function(object) {\n var e, items, key, out, val;\n if (Array.isArray(object)) {\n items = (function() {\n var _i, _len, _results;\n _results = [];\n for (_i = 0, _len = object.length; _i < _len; _i++) {\n e = object[_i];\n _results.push(PDFObject.convert(e));\n }\n return _results;\n })().join(\" \");\n return \"[\" + items + \"]\";\n } else if (typeof object === \"string\") {\n return \"/\" + object;\n } else if (object != null ? object.isString : void 0) {\n return \"(\" + object + \")\";\n } else if (object instanceof Date) {\n return (\n \"(D:\" +\n pad(object.getUTCFullYear(), 4) +\n pad(object.getUTCMonth(), 2) +\n pad(object.getUTCDate(), 2) +\n pad(object.getUTCHours(), 2) +\n pad(object.getUTCMinutes(), 2) +\n pad(object.getUTCSeconds(), 2) +\n \"Z)\"\n );\n } else if ({}.toString.call(object) === \"[object Object]\") {\n out = [\"<<\"];\n for (key in object) {\n val = object[key];\n out.push(\"/\" + key + \" \" + PDFObject.convert(val));\n }\n out.push(\">>\");\n return out.join(\"\\n\");\n } else {\n return \"\" + object;\n }\n };\n return PDFObject;\n})();\n","import { jsPDF } from 'jspdf';\r\n\r\nconst GeneratePDF = ({ results, className }) => {\r\n const generatePDF = () => {\r\n const doc = new jsPDF('landscape');\r\n let y = 10;\r\n const pageWidth = doc.internal.pageSize.width;\r\n const pageHeight = doc.internal.pageSize.height;\r\n const midPoint = pageWidth / 2;\r\n const lineHeight = 5;\r\n const padding = 10;\r\n\r\n doc.setFontSize(10);\r\n doc.text('Provider Records', 10, y);\r\n y += 10;\r\n\r\n results.forEach((provider, index) => {\r\n // Calculate total lines for the provider's section\r\n const physicalAddress = provider.addresses.find(address => address.addressType === 'Physical');\r\n const mailingAddress = provider.addresses.find(address => address.addressType === 'Mailing');\r\n const physicalAddressLines = physicalAddress ? [\r\n physicalAddress.address1,\r\n physicalAddress.address2,\r\n physicalAddress.address3,\r\n physicalAddress.address4,\r\n `${physicalAddress.city ? physicalAddress.city + ',' : ''} ${physicalAddress.state ? physicalAddress.state : ''} ${physicalAddress.zip ? physicalAddress.zip : ''}`\r\n ].filter(line => line && line.trim()).length : 0;\r\n const mailingAddressLines = mailingAddress ? [\r\n mailingAddress.address1,\r\n mailingAddress.address2,\r\n mailingAddress.address3,\r\n mailingAddress.address4,\r\n `${mailingAddress.city ? mailingAddress.city + ',' : ''} ${mailingAddress.state ? mailingAddress.state : ''} ${mailingAddress.zip ? mailingAddress.zip : ''}`\r\n ].filter(line => line && line.trim()).length : 0;\r\n const contactInfoLines = [\r\n provider.phone && `Contact Number: ${provider.phone}`,\r\n provider.altPhone && `Alt Phone: ${provider.altPhone}`,\r\n provider.crisisLine && `Crisis Number: ${provider.crisisLine}`,\r\n provider.tollFreePhone && `Toll-Free Number: ${provider.tollFreePhone}`,\r\n provider.fax && `Fax: ${provider.fax}`,\r\n provider.altFax && `Alt Fax: ${provider.altFax}`,\r\n provider.email && `Email: ${provider.email}`,\r\n provider.email2 && `Alt Email: ${provider.email2}`,\r\n provider.web && `Website: ${provider.web}`,\r\n provider.contact1 && `Contact Person: ${provider.contact1}`,\r\n provider.contact2 && `Additional Contact: ${provider.contact2}`,\r\n provider.contact3 && `Additional Contact: ${provider.contact3}`,\r\n provider.contact4 && `Additional Contact: ${provider.contact4}`\r\n ].filter(line => line).length;\r\n\r\n const servicesList = provider.providerServices.map(service => service.serviceDesc);\r\n const totalLines = physicalAddressLines + mailingAddressLines + contactInfoLines + servicesList.length + 8; // 8 for the fixed lines\r\n\r\n const isLargeEntry = servicesList.length > 14;\r\n if (isLargeEntry) {\r\n doc.addPage();\r\n y = 10;\r\n } else if (y + totalLines * lineHeight > pageHeight - 20) {\r\n doc.addPage();\r\n y = 10;\r\n }\r\n\r\n // Draw borders\r\n const sectionHeight = isLargeEntry ? pageHeight - 20 : 80;\r\n doc.line(padding, y, pageWidth - padding, y); // Top horizontal line\r\n doc.line(padding, y, padding, y + sectionHeight); // Left vertical line\r\n doc.line(midPoint, y, midPoint, y + sectionHeight); // Middle vertical line\r\n doc.line(pageWidth - padding, y, pageWidth - padding, y + sectionHeight); // Right vertical line\r\n doc.line(padding, y + sectionHeight, pageWidth - padding, y + sectionHeight); // Bottom horizontal line\r\n\r\n let contentY = y + 5;\r\n\r\n // Provider Description and Physical Address\r\n doc.setFont(undefined, 'bold');\r\n doc.text(provider.providerDesc, padding + 5, contentY);\r\n doc.setFont(undefined, 'normal');\r\n contentY += lineHeight;\r\n\r\n if (physicalAddress) {\r\n const addressLines = [\r\n physicalAddress.address1,\r\n physicalAddress.address2,\r\n physicalAddress.address3,\r\n physicalAddress.address4,\r\n `${physicalAddress.city ? physicalAddress.city + ',' : ''} ${physicalAddress.state ? physicalAddress.state : ''} ${physicalAddress.zip ? physicalAddress.zip : ''}`\r\n ].filter(line => line && line.trim());\r\n\r\n addressLines.forEach((line, idx) => {\r\n doc.text(line, padding + 5, contentY);\r\n contentY += lineHeight;\r\n });\r\n }\r\n\r\n // Mailing Address\r\n if (mailingAddress) {\r\n doc.setFont(undefined, 'bold');\r\n doc.text('Mailing Address:', padding + 5, contentY);\r\n doc.setFont(undefined, 'normal');\r\n contentY += lineHeight;\r\n\r\n const mailingAddressLines = [\r\n mailingAddress.address1,\r\n mailingAddress.address2,\r\n mailingAddress.address3,\r\n mailingAddress.address4,\r\n `${mailingAddress.city ? mailingAddress.city + ',' : ''} ${mailingAddress.state ? mailingAddress.state : ''} ${mailingAddress.zip ? mailingAddress.zip : ''}`\r\n ].filter(line => line && line.trim());\r\n\r\n mailingAddressLines.forEach((line, idx) => {\r\n doc.text(line, padding + 5, contentY);\r\n contentY += lineHeight;\r\n });\r\n }\r\n\r\n // Contact Information\r\n doc.setFont(undefined, 'bold');\r\n doc.text('Contact Information:', padding + 5, contentY);\r\n doc.setFont(undefined, 'normal');\r\n contentY += lineHeight;\r\n\r\n const contactInfoLinesText = [\r\n provider.phone && `Contact Number: ${provider.phone}`,\r\n provider.altPhone && `Alt Phone: ${provider.altPhone}`,\r\n provider.crisisLine && `Crisis Number: ${provider.crisisLine}`,\r\n provider.tollFreePhone && `Toll-Free Number: ${provider.tollFreePhone}`,\r\n provider.fax && `Fax: ${provider.fax}`,\r\n provider.altFax && `Alt Fax: ${provider.altFax}`,\r\n provider.email && `Email: ${provider.email}`,\r\n provider.email2 && `Alt Email: ${provider.email2}`,\r\n provider.web && `Website: ${provider.web}`,\r\n provider.contact1 && `Contact Person: ${provider.contact1}`,\r\n provider.contact2 && `Additional Contact: ${provider.contact2}`,\r\n provider.contact3 && `Additional Contact: ${provider.contact3}`,\r\n provider.contact4 && `Additional Contact: ${provider.contact4}`\r\n ].filter(line => line);\r\n\r\n contactInfoLinesText.forEach((line, idx) => {\r\n doc.text(line, padding + 5, contentY);\r\n contentY += lineHeight;\r\n });\r\n\r\n // Services\r\n let servicesY = y + 5;\r\n doc.setFont(undefined, 'bold');\r\n doc.text('Services Available:', midPoint + 5, servicesY);\r\n doc.setFont(undefined, 'normal');\r\n servicesY += lineHeight;\r\n\r\n servicesList.forEach((service, idx) => {\r\n doc.text(service, midPoint + 5, servicesY);\r\n servicesY += lineHeight;\r\n });\r\n\r\n y += isLargeEntry ? pageHeight - y : 90; // Increment y for the next entry, ensuring large entries take up the whole page\r\n\r\n // Ensure there are 2 records per page\r\n if (!isLargeEntry && (index + 1) % 2 === 0) {\r\n doc.addPage();\r\n y = 10;\r\n }\r\n });\r\n\r\n doc.save('provider-records.pdf');\r\n };\r\n\r\n return (\r\n <button className={className} onClick={generatePDF}>Printer-friendly Version</button>\r\n );\r\n};\r\n\r\nexport default GeneratePDF;\r\n","import React from 'react';\r\nimport 'bootstrap/dist/css/bootstrap.min.css'; \r\n\r\nconst ProviderProfile = ({ profile }) => {\r\n if (!profile) {\r\n return <div>Loading profile...</div>;\r\n }\r\n\r\n const renderProfileDetails = () => {\r\n if (profile.profileType === 'SCL') {\r\n return (\r\n <>\r\n <tr>\r\n <td>Date of Certification: </td>\r\n <td>{profile.certificationStartDate ? new Date(profile.certificationStartDate).toLocaleDateString() : 'N/A'}</td>\r\n </tr>\r\n <tr>\r\n <td>Certification Length:</td>\r\n <td>{profile.certificationLength ? `${profile.certificationLength} ${profile.certificationLengthDesc || ''}` : 'N/A'}</td>\r\n </tr>\r\n <tr>\r\n <td>Accepting Referrals:</td>\r\n <td>{profile.acceptingReferrals === '1' ? 'Yes' : 'No'}</td>\r\n </tr>\r\n </>\r\n );\r\n } else if (profile.profileType === 'DUI') {\r\n return (\r\n <>\r\n {profile.duiProfileDetails.map((detail, index) => (\r\n <tr key={index}>\r\n <td>{detail.label}:</td>\r\n <td> {detail.providerValue}</td>\r\n </tr>\r\n ))}\r\n </>\r\n );\r\n } else if (profile.profileType === 'SA') {\r\n const treatmentOptions = profile.profileList\r\n .filter(detail => ['46', '77', '80', '83'].includes(detail.pcode))\r\n .map(detail => detail.label);\r\n const paymentOptions = profile.profileList\r\n .filter(detail => detail.pcode === 'payment')\r\n .map(detail => detail.label);\r\n\r\n return (\r\n <>\r\n <tr>\r\n <td colSpan=\"2\">\r\n <table className=\"table table-bordered\">\r\n <thead>\r\n <tr>\r\n <th>Treatment Options:</th>\r\n <th>Payment Options:</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr>\r\n <td>\r\n <ul>\r\n {treatmentOptions.map((option, index) => (\r\n <li key={index}>{option}</li>\r\n ))}\r\n </ul>\r\n </td>\r\n <td>\r\n <ul>\r\n {paymentOptions.map((option, index) => (\r\n <li key={index}>{option}</li>\r\n ))}\r\n </ul>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td colSpan=\"2\"><strong>Notes:</strong> {profile.notes || 'N/A'}</td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </td>\r\n </tr>\r\n </>\r\n );\r\n } else {\r\n return (\r\n <tr>\r\n <td>No details available for this provider type.</td>\r\n </tr>\r\n );\r\n }\r\n };\r\n\r\n return (\r\n <div>\r\n <h2>{profile.providerDesc}</h2>\r\n <table>\r\n <tbody>\r\n {renderProfileDetails()}\r\n </tbody>\r\n </table>\r\n <br />\r\n {profile.profileType === 'SCL' && (\r\n <>\r\n <h3>Mission And Values</h3>\r\n <p>{profile.missionAndValues}</p>\r\n <h3>Program Description</h3>\r\n <p>{profile.programDescription}</p>\r\n <p>\r\n <a href=\"https://dbhdid.ky.gov/documents/GettingtoKnowtheAgency.pdf\" target=\"_blank\" rel=\"noopener noreferrer\">\r\n Click here for a list of questions to ask the agency.\r\n </a>\r\n </p>\r\n <h3>Definitions</h3>\r\n <ul>\r\n <li>\r\n <strong>Certification:</strong> This agency has met state regulatory requirements to provide the listed SCL\r\n services for up to two years. On-site certification reviews are conducted at least once every two years by the\r\n Division of Developmental and Intellectual Disabilities staff.\r\n </li>\r\n <li>\r\n <strong>Moratorium:</strong> This agency is not allowed to accept new individuals into its program until certain\r\n health, safety, and welfare requirements have been met.\r\n </li>\r\n </ul>\r\n </>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nexport default ProviderProfile;\r\n","import canUseDOM from './canUseDOM';\nvar size;\nexport default function scrollbarSize(recalc) {\n if (!size && size !== 0 || recalc) {\n if (canUseDOM) {\n var scrollDiv = document.createElement('div');\n scrollDiv.style.position = 'absolute';\n scrollDiv.style.top = '-9999px';\n scrollDiv.style.width = '50px';\n scrollDiv.style.height = '50px';\n scrollDiv.style.overflow = 'scroll';\n document.body.appendChild(scrollDiv);\n size = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n }\n }\n\n return size;\n}","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst ModalBody = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = 'div',\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'modal-body');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n ...props\n });\n});\nModalBody.displayName = 'ModalBody';\nexport default ModalBody;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst ModalDialog = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n contentClassName,\n centered,\n size,\n fullscreen,\n children,\n scrollable,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'modal');\n const dialogClass = `${bsPrefix}-dialog`;\n const fullScreenClass = typeof fullscreen === 'string' ? `${bsPrefix}-fullscreen-${fullscreen}` : `${bsPrefix}-fullscreen`;\n return /*#__PURE__*/_jsx(\"div\", {\n ...props,\n ref: ref,\n className: classNames(dialogClass, className, size && `${bsPrefix}-${size}`, centered && `${dialogClass}-centered`, scrollable && `${dialogClass}-scrollable`, fullscreen && fullScreenClass),\n children: /*#__PURE__*/_jsx(\"div\", {\n className: classNames(`${bsPrefix}-content`, contentClassName),\n children: children\n })\n });\n});\nModalDialog.displayName = 'ModalDialog';\nexport default ModalDialog;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst ModalFooter = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = 'div',\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'modal-footer');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n ...props\n });\n});\nModalFooter.displayName = 'ModalFooter';\nexport default ModalFooter;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport AbstractModalHeader from './AbstractModalHeader';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst ModalHeader = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n closeLabel = 'Close',\n closeButton = false,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'modal-header');\n return /*#__PURE__*/_jsx(AbstractModalHeader, {\n ref: ref,\n ...props,\n className: classNames(className, bsPrefix),\n closeLabel: closeLabel,\n closeButton: closeButton\n });\n});\nModalHeader.displayName = 'ModalHeader';\nexport default ModalHeader;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport divWithClassName from './divWithClassName';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DivStyledAsH4 = divWithClassName('h4');\nconst ModalTitle = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = DivStyledAsH4,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'modal-title');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n ...props\n });\n});\nModalTitle.displayName = 'ModalTitle';\nexport default ModalTitle;","\"use client\";\n\nimport classNames from 'classnames';\nimport addEventListener from 'dom-helpers/addEventListener';\nimport canUseDOM from 'dom-helpers/canUseDOM';\nimport ownerDocument from 'dom-helpers/ownerDocument';\nimport removeEventListener from 'dom-helpers/removeEventListener';\nimport getScrollbarSize from 'dom-helpers/scrollbarSize';\nimport useCallbackRef from '@restart/hooks/useCallbackRef';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport useMergedRefs from '@restart/hooks/useMergedRefs';\nimport useWillUnmount from '@restart/hooks/useWillUnmount';\nimport transitionEnd from 'dom-helpers/transitionEnd';\nimport * as React from 'react';\nimport { useCallback, useMemo, useRef, useState } from 'react';\nimport BaseModal from '@restart/ui/Modal';\nimport { getSharedManager } from './BootstrapModalManager';\nimport Fade from './Fade';\nimport ModalBody from './ModalBody';\nimport ModalContext from './ModalContext';\nimport ModalDialog from './ModalDialog';\nimport ModalFooter from './ModalFooter';\nimport ModalHeader from './ModalHeader';\nimport ModalTitle from './ModalTitle';\nimport { useBootstrapPrefix, useIsRTL } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/* eslint-disable no-use-before-define, react/no-multi-comp */\nfunction DialogTransition(props) {\n return /*#__PURE__*/_jsx(Fade, {\n ...props,\n timeout: null\n });\n}\nfunction BackdropTransition(props) {\n return /*#__PURE__*/_jsx(Fade, {\n ...props,\n timeout: null\n });\n}\n\n/* eslint-enable no-use-before-define */\nconst Modal = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n style,\n dialogClassName,\n contentClassName,\n children,\n dialogAs: Dialog = ModalDialog,\n 'data-bs-theme': dataBsTheme,\n 'aria-labelledby': ariaLabelledby,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n /* BaseModal props */\n\n show = false,\n animation = true,\n backdrop = true,\n keyboard = true,\n onEscapeKeyDown,\n onShow,\n onHide,\n container,\n autoFocus = true,\n enforceFocus = true,\n restoreFocus = true,\n restoreFocusOptions,\n onEntered,\n onExit,\n onExiting,\n onEnter,\n onEntering,\n onExited,\n backdropClassName,\n manager: propsManager,\n ...props\n}, ref) => {\n const [modalStyle, setStyle] = useState({});\n const [animateStaticModal, setAnimateStaticModal] = useState(false);\n const waitingForMouseUpRef = useRef(false);\n const ignoreBackdropClickRef = useRef(false);\n const removeStaticModalAnimationRef = useRef(null);\n const [modal, setModalRef] = useCallbackRef();\n const mergedRef = useMergedRefs(ref, setModalRef);\n const handleHide = useEventCallback(onHide);\n const isRTL = useIsRTL();\n bsPrefix = useBootstrapPrefix(bsPrefix, 'modal');\n const modalContext = useMemo(() => ({\n onHide: handleHide\n }), [handleHide]);\n function getModalManager() {\n if (propsManager) return propsManager;\n return getSharedManager({\n isRTL\n });\n }\n function updateDialogStyle(node) {\n if (!canUseDOM) return;\n const containerIsOverflowing = getModalManager().getScrollbarWidth() > 0;\n const modalIsOverflowing = node.scrollHeight > ownerDocument(node).documentElement.clientHeight;\n setStyle({\n paddingRight: containerIsOverflowing && !modalIsOverflowing ? getScrollbarSize() : undefined,\n paddingLeft: !containerIsOverflowing && modalIsOverflowing ? getScrollbarSize() : undefined\n });\n }\n const handleWindowResize = useEventCallback(() => {\n if (modal) {\n updateDialogStyle(modal.dialog);\n }\n });\n useWillUnmount(() => {\n removeEventListener(window, 'resize', handleWindowResize);\n removeStaticModalAnimationRef.current == null ? void 0 : removeStaticModalAnimationRef.current();\n });\n\n // We prevent the modal from closing during a drag by detecting where the\n // click originates from. If it starts in the modal and then ends outside\n // don't close.\n const handleDialogMouseDown = () => {\n waitingForMouseUpRef.current = true;\n };\n const handleMouseUp = e => {\n if (waitingForMouseUpRef.current && modal && e.target === modal.dialog) {\n ignoreBackdropClickRef.current = true;\n }\n waitingForMouseUpRef.current = false;\n };\n const handleStaticModalAnimation = () => {\n setAnimateStaticModal(true);\n removeStaticModalAnimationRef.current = transitionEnd(modal.dialog, () => {\n setAnimateStaticModal(false);\n });\n };\n const handleStaticBackdropClick = e => {\n if (e.target !== e.currentTarget) {\n return;\n }\n handleStaticModalAnimation();\n };\n const handleClick = e => {\n if (backdrop === 'static') {\n handleStaticBackdropClick(e);\n return;\n }\n if (ignoreBackdropClickRef.current || e.target !== e.currentTarget) {\n ignoreBackdropClickRef.current = false;\n return;\n }\n onHide == null ? void 0 : onHide();\n };\n const handleEscapeKeyDown = e => {\n if (keyboard) {\n onEscapeKeyDown == null ? void 0 : onEscapeKeyDown(e);\n } else {\n // Call preventDefault to stop modal from closing in @restart/ui.\n e.preventDefault();\n if (backdrop === 'static') {\n // Play static modal animation.\n handleStaticModalAnimation();\n }\n }\n };\n const handleEnter = (node, isAppearing) => {\n if (node) {\n updateDialogStyle(node);\n }\n onEnter == null ? void 0 : onEnter(node, isAppearing);\n };\n const handleExit = node => {\n removeStaticModalAnimationRef.current == null ? void 0 : removeStaticModalAnimationRef.current();\n onExit == null ? void 0 : onExit(node);\n };\n const handleEntering = (node, isAppearing) => {\n onEntering == null ? void 0 : onEntering(node, isAppearing);\n\n // FIXME: This should work even when animation is disabled.\n addEventListener(window, 'resize', handleWindowResize);\n };\n const handleExited = node => {\n if (node) node.style.display = ''; // RHL removes it sometimes\n onExited == null ? void 0 : onExited(node);\n\n // FIXME: This should work even when animation is disabled.\n removeEventListener(window, 'resize', handleWindowResize);\n };\n const renderBackdrop = useCallback(backdropProps => /*#__PURE__*/_jsx(\"div\", {\n ...backdropProps,\n className: classNames(`${bsPrefix}-backdrop`, backdropClassName, !animation && 'show')\n }), [animation, backdropClassName, bsPrefix]);\n const baseModalStyle = {\n ...style,\n ...modalStyle\n };\n\n // If `display` is not set to block, autoFocus inside the modal fails\n // https://github.com/react-bootstrap/react-bootstrap/issues/5102\n baseModalStyle.display = 'block';\n const renderDialog = dialogProps => /*#__PURE__*/_jsx(\"div\", {\n role: \"dialog\",\n ...dialogProps,\n style: baseModalStyle,\n className: classNames(className, bsPrefix, animateStaticModal && `${bsPrefix}-static`, !animation && 'show'),\n onClick: backdrop ? handleClick : undefined,\n onMouseUp: handleMouseUp,\n \"data-bs-theme\": dataBsTheme,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledby,\n \"aria-describedby\": ariaDescribedby,\n children: /*#__PURE__*/_jsx(Dialog, {\n ...props,\n onMouseDown: handleDialogMouseDown,\n className: dialogClassName,\n contentClassName: contentClassName,\n children: children\n })\n });\n return /*#__PURE__*/_jsx(ModalContext.Provider, {\n value: modalContext,\n children: /*#__PURE__*/_jsx(BaseModal, {\n show: show,\n ref: mergedRef,\n backdrop: backdrop,\n container: container,\n keyboard: true // Always set true - see handleEscapeKeyDown\n ,\n autoFocus: autoFocus,\n enforceFocus: enforceFocus,\n restoreFocus: restoreFocus,\n restoreFocusOptions: restoreFocusOptions,\n onEscapeKeyDown: handleEscapeKeyDown,\n onShow: onShow,\n onHide: onHide,\n onEnter: handleEnter,\n onEntering: handleEntering,\n onEntered: onEntered,\n onExit: handleExit,\n onExiting: onExiting,\n onExited: handleExited,\n manager: getModalManager(),\n transition: animation ? DialogTransition : undefined,\n backdropTransition: animation ? BackdropTransition : undefined,\n renderBackdrop: renderBackdrop,\n renderDialog: renderDialog\n })\n });\n});\nModal.displayName = 'Modal';\nexport default Object.assign(Modal, {\n Body: ModalBody,\n Header: ModalHeader,\n Title: ModalTitle,\n Footer: ModalFooter,\n Dialog: ModalDialog,\n TRANSITION_DURATION: 300,\n BACKDROP_TRANSITION_DURATION: 150\n});","import React, { useState } from 'react';\r\n// import ProviderMap from './components/ProviderMap';\r\nimport ProviderMap from './ProviderMap'\r\n\r\nimport ProviderOptions from './ProviderOptions';\r\nimport ProviderSearch from './ProviderSearch';\r\nimport ProviderContact from './ProviderContact';\r\nimport GeneratePDF from './GeneratePDF';\r\nimport Navbar from '../layouts/Navbar';\r\nimport Footer from '../layouts/Footer';\r\nimport ProviderProfile from './ProviderProfile'; \r\nimport { Modal, Button, Pagination } from 'react-bootstrap';\r\nimport 'bootstrap/dist/css/bootstrap.min.css';\r\nimport './ProviderDir.css';\r\nimport axios from 'axios';\r\n\r\nfunction ProviderDirectory() {\r\n const [formData, setFormData] = useState({\r\n isStateWide: false,\r\n counties: [],\r\n groups: [],\r\n services: [],\r\n otherProviders: [],\r\n selectServices: []\r\n });\r\n\r\n const [results, setResults] = useState([]);\r\n const [isSearchResults, setIsSearchResults] = useState(false);\r\n const [hasSearched, setHasSearched] = useState(false);\r\n const [providerName, setProviderName] = useState(\"\"); \r\n const [resetSearchError, setResetSearchError] = useState(0);\r\n const [showModal, setShowModal] = useState(false); // State for modal visibility\r\n const [selectedProviderProfile, setSelectedProviderProfile] = useState(null); // State to hold provider profile data\r\n const [currentPage, setCurrentPage] = useState(1); // For pagination\r\n const resultsPerPage = 25; // Number of results per page\r\n\r\n const handleProviderNameSearch = (results) => {\r\n setResults(Array.isArray(results) ? results : []); // Ensure results is an array\r\n setIsSearchResults(true); \r\n setHasSearched(true);\r\n setCurrentPage(1); // Reset to first page on new search\r\n };\r\n\r\n const handleReset = () => {\r\n setFormData({\r\n isStateWide: false,\r\n counties: [],\r\n groups: [],\r\n services: [],\r\n otherProviders: [],\r\n selectServices: []\r\n });\r\n setResults([]);\r\n setIsSearchResults(false);\r\n setHasSearched(false);\r\n setProviderName(\"\"); \r\n setResetSearchError(prev => prev + 1); \r\n setSelectedProviderProfile(null); // Reset selected provider profile\r\n setCurrentPage(1); // Reset to first page on reset\r\n };\r\n\r\n const handleSubmit = async (data) => {\r\n try {\r\n //const response = await axios.post('https://localhost:7245/providers/search-all', data);\r\n //const response = await axios.post('https://providerdirectory.dbhdidtest.ky.gov/api/providers/search-all', data);\r\n // const response = await axios.post('https://dbhdidtest.ky.gov/provdirapi/providers/search-all', data); \r\n const response = await axios.post('https://dbhdid.ky.gov/provdirapi/providers/search-all', data); \r\n const searchResults = response.data || [];\r\n setResults(Array.isArray(searchResults) ? searchResults.filter(result => result) : []); // Filter out null or empty results, ensure array\r\n setIsSearchResults(true);\r\n setHasSearched(true);\r\n setCurrentPage(1); // Reset to first page on new search\r\n } catch (error) {\r\n //console.error('Error performing search:', error);\r\n setResults([]);\r\n setIsSearchResults(false);\r\n setHasSearched(true);\r\n setCurrentPage(1); // Reset to first page on error\r\n }\r\n };\r\n\r\n const handleProviderProfileClick = async (providerUid) => {\r\n try {\r\n //const response = await fetch(`https://localhost:7245/providers/generate-profile/${providerUid}`);\r\n //const response = await fetch(`https://providerdirectory.dbhdidtest.ky.gov/api/providers/generate-profile/${providerUid}`);\r\n // const response = await fetch(`https://dbhdidtest.ky.gov/provdirapi/providers/generate-profile/${providerUid}`);\r\n const response = await fetch(`https://dbhdid.ky.gov/provdirapi/providers/generate-profile/${providerUid}`);\r\n const profileData = await response.json();\r\n setSelectedProviderProfile(profileData);\r\n setShowModal(true); // Show modal on click\r\n } catch (error) {\r\n console.error('Error fetching provider profile:', error);\r\n }\r\n };\r\n\r\n const handleCloseModal = () => {\r\n setShowModal(false); // Hide modal\r\n };\r\n\r\n // Pagination logic\r\n const totalPages = Math.ceil(results.length / resultsPerPage);\r\n const paginationItems = [];\r\n for (let i = 1; i <= totalPages; i++) {\r\n paginationItems.push(\r\n <Pagination.Item key={i} active={i === currentPage} onClick={() => setCurrentPage(i)}>\r\n {i}\r\n </Pagination.Item>\r\n );\r\n }\r\n const currentResults = results.slice((currentPage - 1) * resultsPerPage, currentPage * resultsPerPage);\r\n\r\n return (\r\n <>\r\n <Navbar />\r\n <div className=\"container\">\r\n <div className=\"providerdirectory-header\">Provider Directory\r\n <div className=\"providerdirectory-green-underline\"></div>\r\n <h5>\r\n Make your selections and click \"Submit\" to display providers.<br />\r\n Click \"Reset\" to clear all the selections.\r\n </h5>\r\n </div> \r\n <div className='providerdirectory-bodyText'>\r\n <div className=\"providerdirectory-options\">\r\n <ProviderOptions formData={formData} setFormData={setFormData} />\r\n <ProviderMap \r\n formData={formData} \r\n setFormData={setFormData} \r\n onSubmit={handleSubmit} \r\n onReset={handleReset} \r\n noResults={!isSearchResults && hasSearched}\r\n /> \r\n <br />\r\n <br />\r\n <ProviderSearch\r\n providerName={providerName}\r\n setProviderName={setProviderName}\r\n onSearch={handleProviderNameSearch} \r\n resetError={resetSearchError}\r\n />\r\n <br />\r\n <br />\r\n <ProviderContact />\r\n </div>\r\n {hasSearched && isSearchResults && (\r\n <div className=\"mt-3\">\r\n {results.length > 0 && (\r\n <div className=\"mt-2 p-3\">\r\n <div className=\"text-left mb-3\">Number of providers: {results.length}</div>\r\n <GeneratePDF results={results} className=\"btn btn-primary btn-custom\" />\r\n <Pagination className=\"justify-content-center flex-wrap\">{paginationItems}</Pagination>\r\n <table className=\"table table-bordered mt-3\">\r\n <tbody>\r\n {currentResults.map((provider, index) => (\r\n <tr key={index}>\r\n <td className=\"align-top p-3\">\r\n <strong>{provider.providerDesc}</strong><br />\r\n {/* Display Physical Address */}\r\n {provider.addresses && Array.isArray(provider.addresses) && provider.addresses\r\n .filter(address => address.addressType === 'Physical')\r\n .map((address, idx) => (\r\n <div key={idx}>\r\n {address.address1 && <div>{address.address1}</div>}\r\n {address.address2 && <div>{address.address2}</div>}\r\n {address.address3 && <div>{address.address3}</div>}\r\n {address.address4 && <div>{address.address4}</div>}\r\n {(address.city || address.state || address.zip) && (\r\n <div>\r\n {address.city && address.state && address.zip ? (\r\n <div>{address.city}, {address.state} {address.zip}</div>\r\n ) : (\r\n <>\r\n {address.city && <span>{address.city}, </span>}\r\n {address.state && <span>{address.state} </span>}\r\n {address.zip && <span>{address.zip}</span>}\r\n </>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n ))}\r\n {/* Display Mailing Address if exists */}\r\n {provider.addresses && Array.isArray(provider.addresses) && provider.addresses\r\n .filter(address => address.addressType === 'Mailing' && (address.address1 || address.address2 || address.address3 || address.address4 || address.city || address.state || address.zip))\r\n .length > 0 && (\r\n <div>\r\n <strong>Mailing Address:</strong><br />\r\n {provider.addresses\r\n .filter(address => address.addressType === 'Mailing' && (address.address1 || address.address2 || address.address3 || address.address4 || address.city || address.state || address.zip))\r\n .map((address, idx) => (\r\n <div key={idx}>\r\n {address.address1 && <div>{address.address1}</div>}\r\n {address.address2 && <div>{address.address2}</div>}\r\n {address.address3 && <div>{address.address3}</div>}\r\n {address.address4 && <div>{address.address4}</div>}\r\n {(address.city || address.state || address.zip) && (\r\n <div>\r\n {address.city && address.state && address.zip ? (\r\n <div>{address.city}, {address.state} {address.zip}</div>\r\n ) : (\r\n <>\r\n {address.city && <span>{address.city}, </span>}\r\n {address.state && <span>{address.state} </span>}\r\n {address.zip && <span>{address.zip}</span>}\r\n </>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n ))}\r\n </div>\r\n )}\r\n {provider.web && (\r\n <div>\r\n <strong>Website:</strong> <a href={provider.web.startsWith('http') ? provider.web : `http://${provider.web}`} target=\"_blank\" \r\n rel=\"noopener noreferrer\">\r\n {provider.web}\r\n </a>\r\n <br />\r\n </div>\r\n )}\r\n {provider.hasProfile && (\r\n <div className=\"provider-profile-container\">\r\n <button\r\n onClick={() => handleProviderProfileClick(provider.providerUid)}\r\n className=\"btn btn-custom provider-profile-link\"\r\n >Provider Profile</button><br />\r\n </div>\r\n )}\r\n {provider.contact1 && (\r\n <div>\r\n <br />\r\n <strong>Contact Person:</strong> {provider.contact1}<br />\r\n </div>\r\n )}\r\n {provider.contact2 && (\r\n <div>\r\n <strong>Additional Contact:</strong> {provider.contact2}<br />\r\n </div>\r\n )}\r\n {provider.contact3 && (\r\n <div>\r\n <strong>Additional Contact:</strong> {provider.contact3}<br />\r\n </div>\r\n )}\r\n {provider.contact4 && (\r\n <div>\r\n <strong>Additional Contact:</strong> {provider.contact4}<br />\r\n </div>\r\n )}\r\n {provider.email && (\r\n <div>\r\n <strong>Email:</strong> <a href={`mailto:${provider.email}`} className=\"hyperLink\">{provider.email}</a><br />\r\n </div>\r\n )}\r\n {provider.email2 && (\r\n <div>\r\n <strong>Alt Email:</strong> <a href={`mailto:${provider.email2}`} className=\"hyperLink\">{provider.email2}</a><br />\r\n </div>\r\n )}\r\n {provider.phone && (\r\n <div>\r\n <strong>Contact Number:</strong> {provider.phone}<br />\r\n </div>\r\n )}\r\n {provider.altPhone && (\r\n <div>\r\n <strong>Alt Phone:</strong> {provider.altPhone}<br />\r\n </div>\r\n )}\r\n {provider.crisisLine && (\r\n <div>\r\n <strong>Crisis Number:</strong> {provider.crisisLine}<br />\r\n </div>\r\n )}\r\n {provider.tollFreePhone && (\r\n <div>\r\n <strong>Alternate Number:</strong> {provider.tollFreePhone}<br />\r\n </div>\r\n )}\r\n {provider.fax && (\r\n <div>\r\n <strong>Fax:</strong> {provider.fax}<br />\r\n </div>\r\n )}\r\n {provider.altFax && (\r\n <div>\r\n <strong>Alt Fax:</strong> {provider.altFax}<br />\r\n </div>\r\n )}\r\n </td>\r\n <td className=\"align-top p-3\">\r\n <strong>Services Available:</strong><br />\r\n {provider.providerServices && Array.isArray(provider.providerServices) && provider.providerServices.length > 0 ? (\r\n provider.providerServices.map((service, idx) => (\r\n <div key={idx}>{service.serviceDesc}</div>\r\n ))\r\n ) : (\r\n <div>For information about services offered, please use the contact details listed.</div>\r\n )}\r\n </td>\r\n\r\n </tr>\r\n ))}\r\n </tbody>\r\n </table>\r\n <Pagination className=\"justify-content-center flex-wrap\">{paginationItems}</Pagination>\r\n </div>\r\n )}\r\n </div>\r\n )}\r\n {/* Render the ProviderProfile component if selectedProviderProfile is set */}\r\n <Modal show={showModal} onHide={handleCloseModal} size=\"lg\">\r\n <Modal.Header closeButton className=\"modal-header-custom\">\r\n <Modal.Title>Provider Profile</Modal.Title>\r\n </Modal.Header>\r\n <Modal.Body>\r\n {selectedProviderProfile && <ProviderProfile profile={selectedProviderProfile} />}\r\n </Modal.Body>\r\n <Modal.Footer>\r\n <Button variant=\"secondary\" className=\"modal-button-custom\" onClick={handleCloseModal}>\r\n Close\r\n </Button>\r\n </Modal.Footer>\r\n </Modal>\r\n </div>\r\n </div>\r\n <Footer />\r\n </>\r\n );\r\n}\r\n\r\nexport default ProviderDirectory;\r\n","const bodyHelperTypes = {\r\n\r\n // Types of comp. on the page\r\n title: 1,\r\n paragraph: 2, \r\n paragraphs: 3, \r\n orderedList: 4, \r\n unorderedList: 5,\r\n image: 6, \r\n header: 7,\r\n links: 8,\r\n};\r\n\r\nexport default bodyHelperTypes;","// Libs:\r\nimport React from 'react';\r\n// css:\r\nimport \"../../../assets/styles/pages/style.css\";\r\n\r\n\r\nfunction UnorderedList({ items }) {\r\n return (\r\n \r\n\r\n <ul>\r\n {items.map((x, index) => <li title={x} key={index}>{x}</li>)}\r\n </ul>\r\n \r\n );\r\n};\r\nexport default UnorderedList;","import React from 'react';\r\nimport bodyHelperTypes from '../../../utils/BodyHelperTypes';\r\nimport UnorderedList from '../../../layouts/bodyLayouts/helpers/UnorderedList';\r\n\r\n\r\nconst aFM_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"Description\"\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n \"The Division of Administration and Financial Management (AFM) helps to ensure that the programs and services of the department are managed in accordance with appropriate statutes and regulations through the provision of centralized administrative, financial and grant management support, as well as budget preparation, execution and analysis.\",\r\n \"This division's staff oversees preparation and management of approximately 200 contracts; works with the Cabinet for Health and Family Services staff in all purchasing, payment, contract monitoring, budgeting and accounting arenas for the department; and provides support and technical assistance to all department staff.\",\r\n \"AFM consists of the two branches described below.\"\r\n\r\n ]\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"Administrative Services Branch\"\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 40,\r\n content: [\r\n \"The Administrative Services staff assists with various areas. The group handles all purchasing-related activities within the department. They are responsible for the following:\",\r\n <><UnorderedList items={[\r\n \"Procuring both goods and services (professional and non-professional).\",\r\n \"Coordinating the contracting process for the department\",\r\n \"Coordinating inventory-related activities.\",\r\n \"Coordinating records retention and disposal.\",\r\n \"Coordinating comprehensive medical liability insurance programs.\",\r\n \"Monitoring procurement card ('Pro-card') activities.\",\r\n \"Coordinating Plan and Budget activities.\"\r\n ]} /></>\r\n ]\r\n\r\n },\r\n\r\n {\r\n\r\n format: bodyHelperTypes.title,\r\n order: 50,\r\n content: \"Financial Management Branch\"\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 60,\r\n content: [\r\n \"The Financial Management Branch staff members are liaisons to each of the program areas in the department. They are responsible for the following:\",\r\n <><UnorderedList items={[\r\n \"Preparing biennial/annual budgets.\",\r\n \"Monitoring expenditures and revenues monthly.\",\r\n \"Making payments to major contractors.\",\r\n \"Reviewing federal and state statutes and regulations and proposed legislation to determine financial impact to the department.\",\r\n \"Reconciling annual financial statements.\",\r\n \"Coordinating and reviewing federal grant applications.\",\r\n \"Preparing and assisting with facility Medicare and Medicaid cost reports.\",\r\n \"Providing technical assistance to facilities, including investigating and monitoring MCO/Medicaid, Medicare, and third-party billing and reimbursement issues.\"\r\n ]} /></>\r\n ]\r\n\r\n },\r\n\r\n\r\n];\r\n\r\nexport default aFM_Content;","import React from 'react';\r\nimport { Link } from \"react-router-dom\";\r\nimport \"../assets/styles/pages/style.css\";\r\nimport Navbar from '../layouts/Navbar';\r\nimport Breadcrumbs from '../components/buttons/Breadcrumbs';\r\nimport Footer from '../layouts/Footer';\r\n\r\nfunction Error() {\r\n return (\r\n <>\r\n <Navbar />\r\n {/* <Breadcrumbs /> */}\r\n <div className='container'>\r\n <div className=\"error\">\r\n <div class=\"d-flex justify-content-center \">\r\n <div class=\"text-center row\">\r\n <div class=\" col-md-6\">\r\n <img src=\"https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css\" alt=\"\"\r\n class=\"img-fluid\"></img>\r\n </div>\r\n <div class=\" col-md-12 mt-5\">\r\n <p class=\"fs-3\"> <span class=\"text-danger\">Oops!</span> Page not found.</p>\r\n <p class=\"lead\">\r\n The page you’re looking for doesn’t exist.\r\n </p>\r\n <Link className=\"btn btn-primary\" to={\"/\"}>\r\n <div>Home Page</div>\r\n </Link>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <Footer />\r\n\r\n </>\r\n );\r\n}\r\n\r\nexport default Error;","import { useHeadsObserver } from '../utils/useObserver'\r\nimport { useEffect, useState } from 'react'\r\nimport { HashLink } from 'react-router-hash-link';\r\nimport RelatedLink from './RelatedLink';\r\n\r\nconst getClassName = (level) => {\r\n switch (level) {\r\n case 1:\r\n return 'head1'\r\n case 2:\r\n return 'head2'\r\n case 3:\r\n return 'head3'\r\n case 4:\r\n return 'head4'\r\n case 5:\r\n return 'head5'\r\n default:\r\n return null\r\n }\r\n}\r\n\r\nfunction TableOfContent({ pageID }) {\r\n const [headings, setHeadings] = useState([])\r\n const { activeId } = useHeadsObserver()\r\n\r\n useEffect(() => {\r\n const elements = Array.from(document.querySelectorAll(\"h1, h2, h3, h4, h5\"))\r\n .map((elem) => ({\r\n id: elem.innerText,\r\n text: elem.innerText,\r\n level: Number(elem.nodeName.charAt(1))\r\n }))\r\n setHeadings(elements);\r\n }, [pageID])\r\n \r\n return (\r\n <>\r\n <nav className='navbar-expand-lg table-of-content bg-white-body-tertiary'>\r\n <button className=\"container tof-design navbar-toggler\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#navbarNavAltMarkup\" aria-controls=\"navbarNavAltMarkup\" aria-expanded=\"false\" aria-label=\"Toggle navigation\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path fill=\"#ffffff\" d=\"M40 48C26.7 48 16 58.7 16 72v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V72c0-13.3-10.7-24-24-24H40zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zM16 232v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V232c0-13.3-10.7-24-24-24H40c-13.3 0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V392c0-13.3-10.7-24-24-24H40z\" /></svg><span style={{ display: \"hidden !important\" }}></span>\r\n\r\n </button>\r\n <div className=\"collapse navbar-collapse\" id=\"navbarNavAltMarkup\">\r\n <ul className='container tof-card'>\r\n <b style={{ fontSize: \"22px\" }}>On this Page</b><br /><br />\r\n {headings.map(heading => (\r\n <li\r\n key={heading.id}\r\n className={getClassName(heading.level)}\r\n style={{ borderBottom: \" 1px dotted #0065b8\", }}\r\n >\r\n <HashLink\r\n to={`#${heading.id}`}\r\n style={{\r\n color: activeId === heading.id ? \"#08774b\" : \"#0065b8\",\r\n // borderBottom:\" 1px dotted #0065b8\",\r\n fontWeight: \"bold\",\r\n width: \"200px\"\r\n }}\r\n title={heading.text}\r\n scroll={(e) => e.scrollIntoView({ behavior: 'smooth' })}\r\n >\r\n {heading.text}\r\n </HashLink>\r\n </li>\r\n ))}\r\n <br />\r\n <br />\r\n <RelatedLink pageID={pageID} />\r\n </ul>\r\n </div>\r\n </nav>\r\n </>\r\n )\r\n\r\n}\r\nexport default TableOfContent","import { useEffect, useState, useRef } from 'react';\r\n\r\nexport function useHeadsObserver() {\r\n\r\n const [activeId, setActiveId] = useState('')\r\n const observer = useRef()\r\n\r\n useEffect(() => {\r\n const handleObserver = (entries) => {\r\n entries.forEach((entry) => {\r\n if (entry?.isIntersecting) {\r\n setActiveId(entry.target.id)\r\n }\r\n })\r\n }\r\n\r\n observer.current = new IntersectionObserver(handleObserver, {\r\n rootMargin: \"-20% 0% -35% 0px\"}\r\n ) \r\n const elements = document.querySelectorAll(\"h1,h2,h3,h4\")\r\n elements.forEach((elem) => observer.current.observe(elem))\r\n return () => observer.current?.disconnect()\r\n }, [])\r\n return {activeId}\r\n}","import React from \"react\";\r\n// component import: \r\nimport TableOfContent from \"../../components/TableOfContent\";\r\n\r\n\r\n\r\nfunction LayoutOne({ pageID }) {\r\n return (\r\n <>\r\n <TableOfContent pageID={pageID} />\r\n </>\r\n );\r\n}\r\n\r\nexport default LayoutOne;","// Libs:\r\nimport React from 'react';\r\n// css:\r\nimport \"../../../assets/styles/pages/style.css\";\r\n\r\n\r\nfunction SectionTitle ({ text }) {\r\n return (\r\n \r\n <h4 title={text} id={text}>{text}</h4>\r\n\r\n \r\n );\r\n};\r\nexport default SectionTitle;","// Libs:\r\nimport React from 'react';\r\n// css:\r\nimport \"../../../assets/styles/pages/style.css\";\r\n\r\n\r\nfunction Paragraph({ text, title }) {\r\n return (\r\n <div title={title}>\r\n <p>\r\n {text}\r\n </p>\r\n </div>\r\n );\r\n};\r\nexport default Paragraph;","// Libs:\r\nimport React from 'react';\r\n// css:\r\nimport \"../../../assets/styles/pages/style.css\";\r\nimport Paragraph from './Paragraph';\r\n\r\n\r\n\r\nfunction Paragraphs({ items }) {\r\n return (\r\n <>\r\n {items.map((x, index ) => <Paragraph title={x} key={index} text={x} />)}\r\n </>\r\n\r\n\r\n );\r\n};\r\nexport default Paragraphs;","// Libs:\r\nimport React from 'react';\r\n// css:\r\nimport \"../../../assets/styles/pages/style.css\";\r\n\r\n\r\nfunction OrderedList({ items }) {\r\n return (\r\n <p>\r\n <ol>\r\n {items.map((x, index) => <li title={x} key={index}>{x}</li>)}\r\n </ol>\r\n </p>\r\n );\r\n};\r\nexport default OrderedList;","// Libs:\r\nimport React from 'react';\r\n// css:\r\nimport \"../../../assets/styles/pages/style.css\";\r\n\r\n\r\nfunction Picture( {item} ) {\r\n\r\n return (\r\n \r\n <img src={item} style={{ maxWidth: \"100%\", overflow: \"hidden\", }} className='rounded mx-auto d-block' alt=\"\" />\r\n \r\n );\r\n};\r\nexport default Picture;","//Using the react library\r\nimport React from \"react\";\r\n//Using the react library:\r\nimport { useEffect, useState } from \"react\";\r\n//API Middle man\r\nimport useApi from \"../../../utils/UseAPI\";\r\n// React loading spinner\r\nimport Spinner from 'react-bootstrap/Spinner';\r\n\r\nimport SanitizeHref from \"../../../utils/SanitizeHref\";\r\n\r\n\r\n\r\nfunction LinksTwo({ linkTypeID, ...props }) {\r\n\r\n const [links, setLinks] = useState([]);\r\n const { error, processing, getRequest } = useApi();\r\n\r\n useEffect(() => {\r\n\r\n const fetchLinks = async () => {\r\n const [data, status] = await getRequest(null, \"link/\" + linkTypeID);\r\n if (status == 200) {\r\n setLinks(data.data)\r\n }\r\n else {\r\n console.log(error)\r\n }\r\n };\r\n\r\n fetchLinks();\r\n\r\n }, []);\r\n return (\r\n <>\r\n <p>\r\n <div className=\"col-md-4 col-md-3\">\r\n <ul className=\"no-bullet\">\r\n {/* Return Links */}\r\n {\r\n processing ? <Spinner animation=\"border\" variant=\"success\" /> : links.map((data, index) => {\r\n return (\r\n <li><a key={index} title={data.text} target=\"_blank\" className=\"quick-links\" href={SanitizeHref(data.url)}>{data.text}</a></li>\r\n )\r\n })\r\n }\r\n </ul>\r\n </div>\r\n </p>\r\n </>\r\n );\r\n}\r\n\r\nexport default LinksTwo;","// Libs:\r\nimport React from 'react';\r\n// css:\r\nimport \"../../assets/styles/pages/style.css\";\r\n// Layout\r\nimport bodyHelperTypes from '../../utils/BodyHelperTypes';\r\nimport SectionTitle from './helpers/SectionTitle';\r\nimport Paragraph from './helpers/Paragraph';\r\nimport Paragraphs from './helpers/Paragraphs';\r\nimport OrderedList from './helpers/OrderedList';\r\nimport UnorderedList from './helpers/UnorderedList';\r\nimport Picture from './helpers/Picture';\r\nimport LinksTwo from '../../layouts/bodyLayouts/helpers/LinksTwo';\r\n\r\n\r\nfunction BodyContent({ content }) {\r\n const contentElements = content.sort((a, b) => a.order - b.order).map((item, index) => {\r\n\r\n switch (item.format) {\r\n case bodyHelperTypes.title:\r\n return <SectionTitle key={index} text={item.content} />;\r\n case bodyHelperTypes.paragraph:\r\n return <Paragraph key={index} text={item.content} />;\r\n case bodyHelperTypes.paragraphs:\r\n return <Paragraphs key={index} items={item.content} />;\r\n case bodyHelperTypes.orderedList:\r\n return <OrderedList key={index} items={item.content} />;\r\n case bodyHelperTypes.unorderedList:\r\n return <UnorderedList key={index} items={item.content} />;\r\n case bodyHelperTypes.image:\r\n return <Picture key={index} item={item.content} />; \r\n case bodyHelperTypes.links:\r\n return <LinksTwo key={index} linkTypeID={item.content} />; \r\n default:\r\n throw Error(\"Invalid format\");\r\n }\r\n\r\n });\r\n return (\r\n contentElements \r\n );\r\n};\r\nexport default BodyContent;","// Libs:\r\nimport React, { useEffect } from 'react';\r\n// css:\r\nimport \"../assets/styles/pages/style.css\";\r\n// Header\r\nimport DepartmentHeader from '../components/DepartmentHeader';\r\n// Layout\r\nimport LayoutOne from '../layouts/bodyLayouts/LayoutOne';\r\nimport BodyContent from './bodyLayouts/BodyContent';\r\nimport currentPageStore from '../utils/stores/currentPageStore';\r\nimport Navbar from '../layouts/Navbar';\r\nimport Breadcrumbs from '../components/buttons/Breadcrumbs';\r\nimport ScrollToTop from '../components/ScrollToTop';\r\nimport Footer from './Footer';\r\n\r\n// Most department/division pages will follow this format.\r\nfunction MasterPage({ pageID, bodyContent, pageHeader }) {\r\n\r\n const setCurrentPage = currentPageStore((state) => state.setCurrentPage);\r\n\r\n useEffect(() => {\r\n setCurrentPage(pageHeader);\r\n // console.log(pageHeader)\r\n }, [pageHeader])\r\n return (\r\n <>\r\n <Navbar iD={pageID} />\r\n <div className=\" central-nav-container wrapper\">\r\n <article className=\"main\">\r\n <Breadcrumbs />\r\n <DepartmentHeader header={pageHeader} />\r\n <div className='bodyText'>\r\n <BodyContent content={bodyContent} />\r\n </div>\r\n </article>\r\n {/* For Future Projects: Adding another Column */}\r\n {/* <aside className=\"aside aside-1\">\r\n Test\r\n </aside> */}\r\n \r\n <div className='aside aside-2'>\r\n <LayoutOne pageID={pageID} />\r\n </div>\r\n </div>\r\n <ScrollToTop />\r\n <Footer />\r\n </>\r\n );\r\n};\r\nexport default MasterPage;","import MasterPage from \"./MasterPage\";\r\n\r\nfunction Page({ iD, title, content, pageHeader }) {\r\n return <MasterPage pageID={iD} pageName={title} bodyContent={content} pageHeader={pageHeader} />\r\n}\r\n\r\nexport default Page;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport UnorderedList from \"../../../layouts/bodyLayouts/helpers/UnorderedList\";\r\n\r\nconst kIPContent = [\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"Purpose\",\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 20,\r\n content: \"To anonymously assess adolescent use of alcohol, tobacco, and other drugs (ATOD), as well as a number of additional factors related to adolescent social and emotional well-being, including school safety, mental health, bullying, relationship violence, school performance and community involvement. The survey provides information about student self-reported use of substances, student perceptions about substance use, and perceived accessibility of substances in the community.\",\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"History\",\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 40,\r\n content: [\r\n \"Since 1999, the KIP Survey has been administered through the Substance Use Prevention and Promotion Branch in the Cabinet for Health and Family Services, through agreements with individual school districts across the state. Originally, the KIP survey was used as part of a federal initiative the Kentucky Incentives for Prevention program (thus, the name “KIP Survey.â€) The survey was conducted biannually in the fall in even-numbered years from 2004-2018. Due to the Covid-19 pandemic, the survey administration planned for 2020 was rescheduled for fall 2021. In 2021, more than 93,000 students representing 127 school districts completed the KIP Survey.\",\r\n \"Effective with the 2021 administration, the KIP Survey has transitioned to a completely web-based administration process within a classroom setting. All KIP survey data are transferred over a secure connection and stored in a protected database to ensure confidentiality throughout the administration and analysis process. The web-based KIP Survey can successfully be administered on desktop computers, laptops, tablets, and smartphones.\",\r\n \"Due to new procedural requirements, the next administration of the KIP Survey has been delayed until fall 2024. \"\r\n ],\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 50,\r\n content: \"Content\",\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 60,\r\n content: \"The core items on the present KIP survey were originally chosen by the federal Center for Substance Abuse Prevention (CSAP), based on extensive research on risk and resilience factors associated with youth substance use. Basing the scale on the federal model enables comparisons to other states and to the nation, while at the same time making within-state comparisons. For each administration since 2006, questions addressing additional illicit substances, mental health, vaping, impacts of the COVID-19 pandemic, and several other critical items related to adolescent behavioral health have been added to the survey.\",\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 70,\r\n content: \"Results\",\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 80,\r\n content: \"Each participating school district receives the following:\",\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.orderedList,\r\n order: 90,\r\n content: [\r\n \"A district-level report including comparisons with the region, the rest of the state and the US (when available)\",\r\n \"A district-level trend report, showing within-district trend data for applicable questions from the current administration back to 2012\",\r\n <>\r\n \r\n A report synthesizing required measures to be submitted by all Drug- Free Communities (DFC) grant recipients\r\n \r\n\r\n <UnorderedList items={[\"District-level results are reported only to the school district and are not released in a public report.\", \"The fact that the KIP Survey has been administered within Kentucky since 1999 enables districts to monitor trends and analyze changes over time.\"]} />\r\n\r\n </>\r\n\r\n\r\n ],\r\n\r\n },\r\n\r\n\r\n\r\n\r\n\r\n\r\n];\r\n\r\nexport default kIPContent;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\n\r\n\r\nconst SAKPNContent = [\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n <>\r\n The <a href=\"https://sites.google.com/view/kypreventionnetwork/home\">Kentucky Prevention Network (KPN) </a>promotes evidence-based substance use/misuse prevention efforts, through training, education, and networking. KPN strives to increase the understanding of prevention strategies to reduce substance use/misuse and as a key component of public health. KPN encourages collaboration among prevention professionals, volunteers, community members, and other stakeholders in the interest of a healthy Commonwealth.\r\n </>\r\n ,\r\n\r\n \"KPN supports and advocates for data-driven decisions and evidence-based practices for effective alcohol, tobacco, and other substance use/misuse prevention strategies, resources, and programs. KPN recognizes that there is a relationship between mental health wellness, suicide prevention, and substance use and promotes the use of the Strategic Prevention Framework and upstream prevention strategies to address those in the community. \"\r\n ]\r\n\r\n \r\n\r\n },\r\n ];\r\n\r\n export default SAKPNContent;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport UnorderedList from \"../../../layouts/bodyLayouts/helpers/UnorderedList\";\r\nimport PESLogo from \"../../../assets/img/sud/PESLogo.png\"\r\nimport Picture from \"../../../layouts/bodyLayouts/helpers/Picture\";\r\n\r\nconst PESContent = [\r\n \r\n // {\r\n // format: bodyHelperTypes.image,\r\n // order: 20,\r\n // content: PESLogo\r\n\r\n \r\n\r\n // },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 30,\r\n content: [\r\n <><b>The Prevention Enhancement Specialists (PES)</b> through the Prevention Enhancement System provide technical assistance and training to Regional Prevention Centers, their partner prevention coalitions, and other stakeholders on best practices in alcohol, nicotine, cannabis, stimulant, and other drug use/misuse prevention, suicide prevention, and mental health promotion. A key focus of the PES is to empower the communities of the Commonwealth to decrease the harmful use of substances and related consequences, improve mental health, and increase engagement of community partners. </>\r\n\r\n \r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 40,\r\n content: [\"The PES help provide support on:\", <UnorderedList items={[\"Community collaboration\",\"Capacity building\",\"Data collection\",\"Evidence-based education program selection\",\"Current research and trends\",\"Policy and procedure review\",\"Resources\",\"Prevention presentations\",\"Other needs identified by communities\"]} />,\"PES services are free of charge to prevention providers in Kentucky.\"]\r\n\r\n \r\n\r\n },{\r\n format: bodyHelperTypes.paragraph,\r\n order: 50,\r\n content: [\r\n \r\n \"The system currently includes five prevention specialists, each with a particular area of expertise: alcohol, stimulants, cannabis, nicotine, and mental health promotion/suicide prevention.\"\r\n ]\r\n\r\n \r\n\r\n },\r\n \r\n ];\r\n\r\n export default PESContent;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport UnorderedList from \"../../../layouts/bodyLayouts/helpers/UnorderedList\";\r\nimport PESLogo from \"../../../assets/img/sud/PESLogo.png\"\r\nimport Picture from \"../../../layouts/bodyLayouts/helpers/Picture\";\r\n\r\nconst YGEContent = [\r\n \r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n \"The Youth Empowerment Grant is a funding opportunity for Kentucky youth groups (with an adult advisor) to plan and implement substance use/misuse prevention activities in their local communities.\",\r\n \"This funding opportunity allows youth groups, while being supported by their adult advisors, to take the lead in preventing substance use/misuse among their peers and in their local community. In addition to being supported by adult advisors, the group will also be provided technical assistance from the Regional Prevention Center (RPC) throughout the life of the grant.\", \r\n <>To gauge interest, as it relates to this funding opportunity, we have a short survey. Please find the survey link here: <a href=\"https://ky.readyop.com/fs/4oro/cde4efa8\">https://ky.readyop.com/fs/4oro/cde4efa8 .</a>\r\n <br/>\r\n <br/>\r\n </>\r\n ]\r\n\r\n \r\n\r\n },\r\n ];\r\n\r\n export default YGEContent;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport UnorderedList from \"../../../layouts/bodyLayouts/helpers/UnorderedList\";\r\n\r\nconst KRSPMGContent = [\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"Overview\"\r\n\r\n\r\n\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 20,\r\n content: \"The goals of the Kentucky Retail Survey Project Mini Grant are to (1) reduce retail access of tobacco/nicotine products and THC products to persons under the age of 21 and 2) increase awareness of the harms of youth tobacco/nicotine and/or THC use.\"\r\n\r\n\r\n\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"Application\"\r\n\r\n\r\n\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 40,\r\n content: <><i>Who May Apply</i><br />\r\n All Kentucky substance misuse prevention coalitions or youth groups (KY-ASAP Local Boards, Drug Free Community Coalitions, Unite Groups, etc.) may apply. <u>Youth must be involved in all planning and implementation aspects of the mini grant project, but they are not required to author the grant application.</u>\r\n </>\r\n\r\n\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 50,\r\n content: <><i>Mini Grant Project Details</i><br />\r\n Awarded applications will include the following two core components:\r\n <UnorderedList items={[\"conducting Kentucky Tobacco Retail Survey Project environmental scans in retail settings\", \"distributing Tobacco 21 toolkits to retailers\"]} />\r\n </>\r\n\r\n\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 60,\r\n content: <>\r\n In addition to the two core strategies, awarded applications will include one or more follow-up strategies from the list below: <br />\r\n\r\n <UnorderedList items={[\"Agreements from retailers to change product placement and/or post signage to limit youth access to ALL tobacco/nicotine and THC products\", \"Photovoice project developed from photos taken during the scan project\", \"Articles in the local paper about scan project findings\", \"Social media posts about scan project findings\", <>\r\n Presentation that displays scan project findings to share with community members: <br />\r\n <UnorderedList items={[\r\n \"Elected officials – fiscal courts, mayors, city councils, law enforcement, local school board officials, state and federal senators and representatives\",\r\n \"Parents and guardians \",\r\n \"Youth \"\r\n\r\n ]\r\n\r\n } />\r\n\r\n </>,\r\n \"Campaign to promote awareness of the need for local tobacco licensing that incorporates scan project findings\"\r\n\r\n ]} />\r\n\r\n </>\r\n\r\n\r\n\r\n\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 70,\r\n content: [\r\n <><i>Award Amount</i><br />\r\n Mini grants will be awarded in amounts of up to $2,000 per grant.\r\n </>,\r\n <><i>Time Frame</i><br />\r\n Notice of Funding Opportunity announcements are made annually in December and are awarded in March.\r\n </>,\r\n <>\r\n For more information contact Steve Cambron at <a href=\"mailto:steve.cambron@ky.gov\">steve.cambron@ky.gov</a> or Tara Rueckert at <a href=\"mailto:tara.rueckert@ky.gov\">tara.rueckert@ky.gov</a>.\r\n </>\r\n ]\r\n\r\n\r\n\r\n\r\n },\r\n];\r\n\r\nexport default KRSPMGContent;","//Using the react library\r\nimport React from \"react\";\r\n//Using the react library:\r\nimport { useEffect, useState } from \"react\";\r\n//API Middle man\r\nimport useApi from \"../utils/UseAPI\";\r\n// React loading spinner\r\nimport Spinner from 'react-bootstrap/Spinner';\r\nimport SanitizeHref from \"../utils/SanitizeHref\";\r\n\r\nfunction Links({ linkTypeID, ...props }) {\r\n\r\n const [links, setLinks] = useState([]);\r\n const { error, processing, getRequest } = useApi();\r\n\r\n useEffect(() => {\r\n const fetchLinks = async () => {\r\n const [data, status] = await getRequest(null, \"link/\" + linkTypeID);\r\n if (status == 200) {\r\n // console.log(data.data)\r\n setLinks(data.data.sort((a, b) => a.sort - b.sort));\r\n }\r\n else {\r\n console.log(error);\r\n }\r\n };\r\n fetchLinks();\r\n }, []);\r\n return (\r\n <>\r\n <div className=\"\">\r\n <ul className=\"no-bullet\">\r\n {/* Return Links */}\r\n {\r\n processing ? <Spinner animation=\"border\" variant=\"success\" /> : links.map((data, index) => {\r\n return (\r\n <li><a key={index} title={data.text} target=\"_blank\" className=\"quick-links-body\" href={SanitizeHref(data.url)}>{data.text}</a></li>\r\n )\r\n })\r\n }\r\n </ul>\r\n </div>\r\n </>\r\n );\r\n}\r\n\r\nexport default Links;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport UnorderedList from \"../../../layouts/bodyLayouts/helpers/UnorderedList\";\r\nimport ContinuumOfCare from \"../../../assets/img/sud/ContinuumOfCare.png\"\r\nimport { Link } from \"react-router-dom\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst ContinuumContent = [\r\n {\r\n format: bodyHelperTypes.image,\r\n order: 10,\r\n content: ContinuumOfCare\r\n\r\n\r\n\r\n\r\n },\r\n\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n \"The Continuum of care describes the scope of behavioral health services for individuals before, during, and after they experience a behavioral health problem or disorder. It includes promotion, prevention, treatment, and maintenance. As soon as someone begins treatment, they are in recovery and that continues beyond treatment and throughout the maintenance phase - potentially for a lifetime. \",\r\n \"The continuum segments the need for care and the type of care required from various parts of the health care system. This means there are multiple opportunities for addressing behavioral health problems. \",\r\n \"The continuum underscores the interrelationship among promotion, prevention, treatment, and maintenance. While some service may be more specific, individualized, or costly than others, it shows that each phase along the continuum does not exist in isolation.\",\r\n <><b>By forming strategic partnerships throughout state government and creating an interconnected system, agencies are better equipped to serve Kentuckians with behavioral health needs such as mental illness and/or substance use disorders. Through collaboration, agencies can leverage resources and promote wellness so that all citizens can thrive. </b></>\r\n\r\n ]\r\n\r\n\r\n\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 30,\r\n content: [\r\n <>\r\n The Division of Substance Use Disorder proudly collaborates with the following branches/programs within DBHDID:<br /><br/>\r\n\r\n <UnorderedList items={\r\n [\r\n \"Kentucky MOMS MATR\",\r\n \"Substance Use Disorder Treatment Branch\",\r\n \"Mental Health Promotion, Prevention, and Preparedness Branch\",\r\n \"Children's Branch\"\r\n ]\r\n } />\r\n </>,\r\n <>\r\n The Division collaborates with various other state government agencies:\r\n <br/>\r\n <br/>\r\n <Links linkTypeID=\"775\" />\r\n\r\n </>,\r\n <>\r\n The Division collaborates with various partners across the commonwealth:\r\n <br/>\r\n <br/>\r\n <Links linkTypeID=\"785\" />\r\n \r\n </>,\r\n <>\r\n In addition, the Division collaborates with several national partners:\r\n <br/>\r\n <br/>\r\n <Links linkTypeID=\"786\" />\r\n \r\n </>\r\n ]\r\n\r\n\r\n\r\n\r\n },\r\n];\r\n\r\nexport default ContinuumContent;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport UnorderedList from \"../../../layouts/bodyLayouts/helpers/UnorderedList\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst children = [\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: <>About Us</>\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n \"The Children’s Mental Health and Recovery Services Branch is responsible for the administration of services and supports for children and youth who have or are at-risk of developing behavioral health concerns (including both mental health and substance use), and their families. These services are primarily managed through contracts with the regional Community Mental Health Centers and other entities areas to deliver an array of behavioral health services and supports. Additionally, the branch manages contracts with entities that provide training, consultation, and technical assistance in various areas, such as family and youth leadership, evidence-based practices, and other system of care activities. \",\r\n \"Branch staff works collaboratively with contracted agencies to provide consultation and technical assistance to increase the capacity of providers to deliver a continuum of behavioral health care that includes promotion, prevention, early intervention, treatment, and recovery services and other supports.\",\r\n \"Additionally, staff works with specific state and regional initiatives, including but not limited to:\",\r\n <UnorderedList items={[\r\n \"Early Childhood Mental Health\",\r\n \"High-fidelity Wraparound\",\r\n \"Peer Support\",\r\n \"Transition Age Youth\",\r\n \"Trauma-informed Care\",\r\n \"School-based Behavioral Health\",\r\n \"State and Regional Interagency Councils\",\r\n \"System of Care Expansion and Sustainability\",\r\n \"Youth and Family Leadership Development\",\r\n \"Youth Substance Use Prevention and Treatment\",\r\n ]} />\r\n ]\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 21,\r\n content: [\r\n \r\n \"The branch adheres to and operates in accordance with the values and guiding principles of the system of care approach (see Related Links), as set forth by the federal Center for Mental Health Services within the Substance Abuse and Mental Health Services Administration (see Related Links).\"\r\n ],\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"Program Areas\",\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 40,\r\n content: \"The Children’s Mental Health and Recovery Services Branch staff is responsible for the following program areas:\",\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 50,\r\n content: <><Links linkTypeID=\"222\" /></>\r\n },\r\n\r\n];\r\n\r\nexport default children;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport UnorderedList from \"../../../layouts/bodyLayouts/helpers/UnorderedList\";\r\n\r\nconst adolescentContent = [\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n \"According to the World Health Organization, adolescence is the phase of life between childhood and adulthood, from ages 10 to 19. It is a unique stage of human development and an important time for laying the foundations of good health. Adolescents experience rapid physical, cognitive and psychosocial growth. This affects how they feel, think, make decisions, and interact with the world around them. \",\r\n \"The Division of Mental Health is committed to addressing the systemic needs of youth and young adults aged 16 – 25 with behavioral health and/or substance use issues by working to ensure they have access to services that are more inclusive, person-centered, and relative to their age and experiences. \",\r\n \"In light of the unique mental health and substance use needs of young people ranging from 10 – 25, adolescence is a tumultuous time as youth attempt to define themselves and become more independent. Most youth progress through the various milestones with little to no difficulty; however, for some, adolescence is the period during which behavioral and emotional difficulties emerge or are exacerbated.\",\r\n \"In fact, a recent study estimated that 8 percent of adolescents have a serious emotional disturbance, and 10 percent report having used an illicit drug in the past month.\",\r\n \"The University of Kentucky Center on Drug and Alcohol Research states that the neurodevelopment of the brain renders the adolescent brain more vulnerable to addiction than the adult brain, therefore making the effects of substance use more damaging to adolescents' brains than to adults' brains in many ways, and in some cases may have long-lasting effects. Early and effective treatment for substance abuse among adolescents is a high-priority public health problem.\"\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 20,\r\n content: \"Resources for Providers\"\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 30,\r\n content: <>\r\n\r\n <ul className=\"no-bullet\">\r\n\r\n <li> <a className=\"quick-links-body\" href=\"https://store.samhsa.gov/product/Identifying-Mental-Health-and-Substance-Use-Problems-of-Children-and-Adolescents-A-Guide-for-Child-Serving-Organizations/SMA12-4700\">\r\n SAMHSA: \"Identifying Mental Health and Substance Use Problems of Children and Adolescents: A Guide for Child-Serving Organizations\"\r\n </a>\r\n </li>\r\n\r\n <li>\r\n\r\n <a className=\"quick-links-body\" href=\"https://store.samhsa.gov/product/TIP-31-Screening-and-Assessing-Adolescents-for-Substance-Use-Disorders/SMA12-4079\">\r\n\r\n SAMHSA: \"Screening and Assessing Adolescents for Substance Use Disorders\"\r\n\r\n </a>\r\n\r\n </li>\r\n\r\n <li>\r\n <a className=\"quick-links-body\" href=\"chrome-extension://efaidnbmnnnibpcajpcglclefindmkaj/https://nasadad.org/wp-content/uploads/2014/09/State-Adolescent-Substance-Use-Disorder-Treatment-and-Recovery-Practice-Guide-9-24-14.pdf\">\r\n The National Association of State Alcohol and Drug Abuse Directors, Inc: \"State Adolescent Substance Use Disorder Treatment and Recovery Practice Guide\"\r\n </a>\r\n\r\n </li>\r\n\r\n\r\n\r\n\r\n </ul>\r\n\r\n\r\n\r\n\r\n\r\n </>\r\n\r\n\r\n\r\n\r\n\r\n\r\n }\r\n\r\n\r\n];\r\n\r\nexport default adolescentContent;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport UnorderedList from \"../../../layouts/bodyLayouts/helpers/UnorderedList\";\r\n\r\nconst eCMH_Content = [\r\n \r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"Program History and Description\"\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n \"Kentucky's Early Childhood Mental Health Program (ECMHP) was established in state fiscal year 2003 as a component of a large, statewide early childhood development initiative, Kentucky Invests in Developing Success NOW (KIDS NOW). Programs created under KIDS NOW fit within three broad areas: assuring maternal and child health; supporting families; and enhancing early care and education. The majority of the programs have been sustained and are administered by a variety of state agencies.\",\r\n \"The ECMHP is co-administered by the Department for Behavioral Health, Developmental and Intellectual Disabilities (DBHDID) and the Department for Public Health (DPH) through a Memorandum of Agreement.\",\r\n \"In turn, DBHDID contracts with the 14 Regional Community Mental Health Centers (CMHCs) for program implementation.\"\r\n ]\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"Program Goals\"\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 40,\r\n content: [\r\n \"The overarching goal of ECMHP is to build regional capacity to effectively identify and respond to the mental health needs of children age birth through age five in behavioral health provider agencies, early care and education settings, and other programs and initiatives that serve very young children and their families. This is accomplished through three primary activities:\",\r\n <UnorderedList items={[\r\n \"Program- and child-level consultation related to social, emotional, and behavioral issues to programs that serve children from birth through age five.\",\r\n \"Training on working with young children who have social, emotional and behavioral needs and their families provided to child-serving agencies and others.\",\r\n \"Evaluation, assessment, and therapeutic services for children from birth through age five and their families.\"\r\n ]} />\r\n ]\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 50,\r\n content: \"Early Childhood Mental Health Specialists\"\r\n\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 60,\r\n content: [\r\n \"Each regional CMHC employs an Early Childhood Mental Health Specialist whose time is devoted solely to their regional ECMHPs and is focused on the three activities listed above in order to improve the mental health of children birth through age five and their families.\",\r\n \"In recent years, the ECMHP has expanded to include a focus on supporting infants, young children, and families impacted by opioid and other substance use disorders, with a focus on infants and young children identified as having been exposed to substance in utero. To address this growing need, DBHDID added funds to CMHC contracts to support Early Childhood Consultants as an additional staff person dedicated to regional ECMHPs.\"\r\n // \"Improving the behavioral health of children birth through age five and their families. \"\r\n ]\r\n\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 70,\r\n content: \"Early Childhood Consultants \"\r\n\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 70,\r\n content: [\r\n \"Like the Early Childhood Mental Health Specialists, the Early Childhood Consultants are located in each of the 14 regional CMHCs. The Early Childhood Consultants also focus on the population of children age birth through five, and their families, specifically those who are experiencing challenges related to substance use disorders. They are responsible for increasing regional capacity to identify and serve infants who experienced in utero substance exposure; have had or are at risk for trauma exposure; and young children whose mothers are recovering from substance use disorders. This is achieved through consultation, training, and collaboration focused on mitigating the effects of adverse childhood experiences and improving early childhood development and attachment.\",\r\n // \"The Early Childhood Consultants are responsible for increasing regional capacity for early childhood education and consultation regarding substance exposed infants and trauma exposed youth whose mothers are recovering from OUD to mitigate adverse childhood experiences and improve early childhood development and attachment. \",\r\n \"To obtain more information about your local ECMHP, please use the ECMH Contacts List.\"\r\n ]\r\n\r\n\r\n },\r\n \r\n\r\n\r\n\r\n \r\n\r\n \r\n \r\n\r\n\r\n];\r\n\r\nexport default eCMH_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst eCMHLinks_Content = [\r\n \r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"Kentucky Resources\"\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 20,\r\n content: <><Links linkTypeID=\"5\" /></>\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"National Resources\"\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 40,\r\n content: <><Links linkTypeID=\"6\" /></>\r\n\r\n },\r\n \r\n\r\n\r\n\r\n \r\n\r\n \r\n \r\n\r\n\r\n];\r\n\r\nexport default eCMHLinks_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\n\r\n\r\nconst hFW_Content = [\r\n \r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"What is Wraparound?\"\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n \"The National Wraparound Initiative (see Related Links) tells us that in recent years, Wraparound has been most commonly conceived of as an intensive, individualized care planning and management process.\",\r\n \"Wraparound is not a treatment per se. It is a process to achieve positive outcomes for children and youth who are experiencing behavioral health concerns. The process provides structured, creative, and individualized team planning. Compared to traditional treatment planning, it results in plans that are more effective for and relevant to the child/youth and family.\"\r\n ]\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"Wraparound Teams\"\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 40,\r\n content: [\r\n \"Wraparound teams are unique to each child/youth and family, consist of people who are closest to the family, and should include both service providers and natural supports. The child/youth and family are integral members of the Wraparound team and should take the lead in selecting other team members.\",\r\n \"High Fidelity Wraparound (HFW) plans include traditional services provided by multiple child-serving agencies (e.g., child welfare, behavioral health, juvenile justice, special education), as well as informal and natural supports that are available or developed in the community (e.g., county extension office, youth sports league, mentoring program, extended family, faith community).\"\r\n \r\n ]\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 50,\r\n content: \"How Wraparound Works\"\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 60,\r\n content: \"Wraparound operationalizes the system of care approach (see Related Links) at the individual child/youth and family level. Research demonstrates that Wraparound implemented with high fidelity to the model leads to the best outcomes for families with children and youth who have behavioral health (mental health, substance use, or co-occurring mental health and substance use) challenges.\"\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 61,\r\n content: \"A Brief History\"\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 70,\r\n content: [\r\n \"Wraparound was developed in the 1980s as a process to serve children/youth who were at high risk for being placed outside of their homes and communities as a result of their complex behavioral health needs. The team-based approach has been successful in keeping children/youth at home, in their communities, and out of residential facilities.\",\r\n \"In the late 1990s a group of national Wraparound experts and researchers created clearly defined values, elements, and expectations for HFW to support consistent implementation across programs and states. This also made it easier to study the Wraparound process and outcomes for children/youth and families.\"\r\n ]\r\n\r\n },\r\n // {\r\n // format: bodyHelperTypes.title,\r\n // order: 80,\r\n // content: \"Ten Principles of the Wraparound Process\"\r\n\r\n // },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 80,\r\n content: [\r\n \"One outcome of this work was the identification of “Ten Principles of the Wraparound Process†(see Related Links). National leaders agree that for Wraparound to be implemented with high fidelity, the process must adhere to the following principles:\",\r\n <>\r\n <ol>\r\n <li>Family voice and choice</li>\r\n <li>Team based</li>\r\n <li>Natural supports</li>\r\n <li>Collaboration</li>\r\n <li>Community based</li>\r\n <li>Culturally competent</li>\r\n <li>Individualized</li>\r\n <li>Strengths based</li>\r\n <li>Unconditional</li>\r\n <li>Outcome based</li>\r\n </ol>\r\n </>,\r\n // \"Research since then has shown that Wraparound implemented with high fidelity to the model leads to the best outcomes for families with children and youth who have behavioral health challenges\",\r\n \"In January 2016, the Community Mental Health Centers (CMHCs) began providing HFW through the Kentucky IMPACT program (see Related Links).\",\r\n \"Department for Behavioral Health, Developmental and Intellectual Disabilities staff work with the National Wraparound Implementation Center to support HFW under Kentucky IMPACT within the CMHCs. HFW Facilitators and HFW Supervisors participate in a statewide HFW Learning Collaborative that includes ongoing technical assistance, coaching, and fidelity monitoring.\",\r\n \"Trained HFW Facilitators work with fewer children/youth than traditional Targeted Case Managers as the families partnering in HFW have more complex needs and require more coordination among formal and informal services and supports. This allows the HFW Facilitators to spend more time with each family, supporting them in meeting their goals and becoming connected with community resources to help them thrive.\",\r\n \"Initial eligibility is determined via a multi-step process. Ongoing assessment of child/youth and family functioning across a variety of life domains assists in determining the effectiveness of HFW in reducing behavioral health concerns and increasing connections within the community.\",\r\n // \"Information about High Fidelity Wraparound, including more details about the ten principles, can be found in the Resource Guide to Wraparound (see Related Links).\"\r\n ]\r\n\r\n },\r\n \r\n \r\n\r\n\r\n\r\n \r\n\r\n \r\n \r\n\r\n\r\n];\r\n\r\nexport default hFW_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport UnorderedList from \"../../../layouts/bodyLayouts/helpers/UnorderedList\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst kYImpact_Content = [\r\n \r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n \"Kentucky IMPACT (Interagency Mobilization for Progress in Adolescent and Child Treatment) was created as a statewide service coordination model in 1990. It was based on the work of a grant-funded pilot program (Bluegrass IMPACT) to support states in operationalization of the system of care approach (see Related Links).\",\r\n \"IMPACT was established as a coordinated, interagency approach to service delivery for children/youth with a serious emotional disability (SED) and their families.The model provided services not traditionally available, such as mentoring; respite; school-based services; case management for children/youth; and intensive in-home therapy, as well as flexible funding for informal supports such as community activities, family support, and therapeutic after-school and summer activities. IMPACT also established the State Interagency Council (SIAC) for Services and Supports to Children and Transition-age Youth to as the governing body for Kentucky’s system of care, and Regional Interagency Councils (RIACs) to administer regional management and implementation (see Related Links for SIAC and RIACs).\",\r\n \"The overall goal of Kentucky IMPACT is to prevent children/youth with SED from being placed outside of their homes to behavioral health treatment, and to provide support and assistance to those who are transitioning home from such residential placements. Kentucky IMPACT has embraced the Wraparound process since its inception. In fact, Kentucky IMPACT was one of the first statewide Wraparound initiatives in the country.\",\r\n \"Historically, Kentucky IMPACT supports the delivery of Targeted Case Management (TCM) for children/youth (see Related Links), in accordance with the values of Wraparound. As such, TCM has been the key mechanism by which children/youth and families have had access to Wraparound. Since the inception of Kentucky IMPACT, science related to Wraparound implementation has progressed dramatically. As a result, DBHDID and Kentucky Partnership for Families and Children (KPFC) staff are working with the National Wraparound Implementation Center (see Related Links) to support High Fidelity Wraparound (HFW) (see Related Links) under Kentucky IMPACT within the fourteen regional Community Mental Health Centers (CMHCs). HFW Facilitators and HFW Supervisors participate in a statewide HFW Learning Collaborative that includes ongoing technical assistance, coaching, and fidelity monitoring to support effective implementation of HFW.\"\r\n ]\r\n\r\n },\r\n \r\n \r\n\r\n\r\n\r\n \r\n\r\n \r\n \r\n\r\n\r\n];\r\n\r\nexport default kYImpact_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport UnorderedList from \"../../../layouts/bodyLayouts/helpers/UnorderedList\";\r\n\r\n\r\nconst rIAC_Content = [\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"Overview\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n \"Regional Interagency Councils (RIACs) are established in each of the CMHC regions; there are 18 RIACs [see Related Links]. RIACs are staffed by Local Resource Coordinator(s) who are employed by the Community Mental Health Centers (CMHCs). RIACs operate as the regional locus of accountability for the system of care, providing a structure for coordination, planning, and collaboration of services and supports to children and transition-age youth with or at risk of developing behavioral health needs and other challenges, and their families.\",\r\n \"This structure builds on existing resources of local public and private agencies and community partners within the community to support sustainable policy, practice, and system reform in order to improve the larger system of care for Kentucky’s children, transition-age youth, and their families, where they live, learn, work, and play.\",\r\n \"The system of care is not a model or a program that can be replicated, but instead an organizational framework that supports sustainable system change. The system of care philosophy specifies that the system of care should be:\",\r\n <UnorderedList items={[\r\n \"Youth- and family-driven\",\r\n \"Community-based\",\r\n \"Culturally- and linguistically-responsive\",\r\n // \"Trauma-informed\",\r\n ]} />\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"RIAC Membership\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 40,\r\n content: [\"There are a 18 RIACs across the commonwealth. Each council is composed of members representing the following:\",\r\n <UnorderedList items={[\r\n \"Regional Community Mental Health Centers\",\r\n \"Administrative Office of the Courts\",\r\n \"Department for Community Based Services\",\r\n \"Division of Family Resource and Youth Services Centers\",\r\n \"Office of Vocational Rehabilitation\",\r\n \"Kentucky Education Cooperatives/Special Education Services\",\r\n \"Department of Juvenile Justice\",\r\n \"Local Health Departments\",\r\n \"Parents (biological, adoptive, or relative caregivers with permanent legal custody) who are raising or have raised a child with mental health or co-occurring mental health and substance use challenges who has been or is a client of at least one service to address these challenges, prior to the age of 21\",\r\n \"Transition-age youth (16-25 years of age) who have a behavioral health disorder and who are receiving or have received a service to address mental health, substance use, or co-occurring mental health and substance use disorder before the age of 21\"\r\n\r\n ]}/> ,\r\n \"Collaboration is encouraged with other local public or private agencies that provide services and supports to children and transition-age youth with behavioral health needs.\"\r\n]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 50,\r\n content: \"RIAC Duties\"\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 60,\r\n content: [\r\n // \"Duties of the RIAC include:\",\r\n <UnorderedList items={[\r\n \"Conduct regional system of care planning and operations through ongoing regional and/or local needs assessments across agencies to identify service gaps and/or needs\",\r\n \"Coordinate system-level continuous quality improvement through review of local-, regional-, and state-level data to evaluate and strengthen the system of care\",\r\n \"Identify and develop system of care expansion opportunities to increase access and availability of high-quality services and supports\",\r\n \"Promote system of care awareness across the community, including the adoption of system of care core values and guiding principles across all sectors\",\r\n \"Initiate and adopt interagency agreements as necessary for providing services and supports to children and transition-age youth with behavioral health needs by the agencies represented on the RIAC\",\r\n \"Advise the SIAC regarding the system of care within the region\",\r\n \"Ensure that one or more RIAC members participate in family accountability, intervention, and response (FAIR) teams established pursuant to KRS 605.035 and collaborate with FAIR teams as appropriate to improve or promote the system of care\",\r\n ]}/>,\r\n ]\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 70,\r\n content: \"RIAC Meetings\"\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 80,\r\n content: \"RIACs meet monthly and meetings are open to the public. If you are interested in attending a RIAC meeting, please reach out to the Local Resource Coordinator (LRC) of the RIAC to request meeting information. RIAC Leader contact information and meeting dates and times can be found in the RIAC Leader Contact List in Related Links.\"\r\n\r\n },\r\n // {\r\n // format: bodyHelperTypes.title,\r\n // order: 90,\r\n // content: \"Resources for supporting Youth Representatives on RIACs:\"\r\n\r\n // },\r\n // {\r\n // format: bodyHelperTypes.paragraphs,\r\n // order: 100,\r\n // content: [<><UnorderedList items={[\r\n\r\n // \"RIAC/SIAC Youth Rep video \",\r\n // \"Membership Guidance book\",\r\n // <><a href=\"https://dbhdid.ky.gov/dbh/documents/riac/RIACYouthAndParentMembershipApplication_2.1.22.pdf\">RIAC Youth & Parent Representative Application</a></>,\r\n // <><a href=\"https://designrr.page/?id=51182&token=2794574586&type=FP\">SIAC/RIAC Parent/Youth Representative Guidance Document </a></>,\r\n // ]} /></>,\r\n // ]\r\n\r\n // },\r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n];\r\n\r\nexport default rIAC_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport UnorderedList from \"../../../layouts/bodyLayouts/helpers/UnorderedList\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst cCC_Content = [\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 10,\r\n content: \"Click on the name of an entity below for more information.\"\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 20,\r\n content: \"Commissions\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 30,\r\n content: <Links linkTypeID=\"255\" />\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 40,\r\n content: \"Councils\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 50,\r\n content: <Links linkTypeID=\"256\" />\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 60,\r\n content: \"Committees\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 70,\r\n content: <Links linkTypeID=\"257\" />\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 80,\r\n content: \"Other\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 90,\r\n content: <Links linkTypeID=\"258\" />\r\n },\r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n];\r\n\r\nexport default cCC_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport UnorderedList from \"../../../layouts/bodyLayouts/helpers/UnorderedList\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst sIAC_Content = [\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"Overview\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n \"The State Interagency Council for Services and Supports to Children and Transition-age Youth (SIAC) is a group of leaders representing 12 state agencies from across 5 Cabinets that serve children and transition-age youth and their families, a youth, a parent of a child or transition-age youth with a behavioral health need, a member of a nonprofit family organization, and a representative from the Subcommittee for Equity & Justice for All Youth (SEJAY).\",\r\n \r\n <>\r\n SIAC oversees coordinated policy development, comprehensive planning, and collaborative budgeting for services and supports to children and transition-age youth with or at risk of developing behavioral health needs and their families. SIAC operates in accordance with the system of care approach (see Related Links) and encourages community partners to do the same. SIAC conducts monthly meetings that are open to the public. These monthly meetings support collaboration among child- and family-serving agencies and system of care partners. SIAC serves as the governing body for the state system of care and directs Regional Interagency Councils (RIACs) (see Related Links) to operate as the regional locus of accountability for the system of care. RIACs provide a structure for coordination, planning, and collaboration of services and supports at the local level to children, adolescents, and transition-age youth and their families, to help them function better at home, in school, in the community, and throughout life. </>\r\n \r\n \r\n ]\r\n },\r\n\r\n // {\r\n // format:bodyHelperTypes.title,\r\n // order: 20,\r\n // content: '\"Justice For All: Moving From Protest to Policy\" Panel Discussion'\r\n\r\n // },\r\n\r\n // {\r\n // format: bodyHelperTypes.paragraph,\r\n // order: 30,\r\n // content: <><Links linkTypeID={794} /></>\r\n // }\r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n];\r\n\r\nexport default sIAC_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\n\r\n\r\nconst systemOfCare_Content = [\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n \"A system of care (SOC)* is a comprehensive spectrum of effective services and supports for children, youth, and young adults with or at risk for mental health or other challenges and their families that is organized into a coordinated network of care, builds meaningful partnerships with families and youth, and is culturally- and linguistically responsive in order to help them to thrive at home, in school, in the community, and throughout life. A system of care incorporates mental health promotion, prevention, early identification, and early intervention in addition to treatment to address the needs of all children, youth, and young adults.\",\r\n \"*Stroul, B.A., Blau, G.M., & Larsen, J. (2021). The Evolution of the System of Care Approach. Baltimore: The Institute for Innovation and Implementation, School of Social Work, University of Maryland. (see Related Links)\"\r\n\r\n ]\r\n },\r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n];\r\n\r\nexport default systemOfCare_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport UnorderedList from \"../../../layouts/bodyLayouts/helpers/UnorderedList\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst tCMChild_Content = [\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n \"Through state general revenue and Medicaid funding, Targeted Case Management (TCM) services are available to children/youth with a serious emotional disability in all 120 Kentucky counties. Within Kentucky’s community mental health centers (CMHCs), these services are offered under the auspices of Kentucky IMPACT (see Related Links). Targeted Case Management is also offered by other providers across the state.\",\r\n \"Within Kentucky IMPACT, TCM services for children/youth are referred to as Service Coordination, and Targeted Case Managers are referred to as Service Coordinators. A primary goal of Kentucky IMPACT is to reduce the utilization of inpatient mental health hospital days and other out-of-home placements. Due to the intensity of services, each Service Coordinator is limited to serving 25 children/youth at a time. Service Coordination under the Kentucky IMPACT model is based on the Wraparound process, a strengths-based, youth- and family-driven and individualized plan of care for children/youth with a serious emotional disability and their families.\",\r\n \"In addition to traditional Targeted Case Management (Service Coordination), Kentucky IMPACT also provides High Fidelity Wraparound (HFW) (see Related Links). HFW is intensive care coordination and is provided by HFW Facilitators who are limited to serving ten families at a time.\",\r\n \"Kentucky IMPACT can access limited flexible funds to purchase necessary goods and/or services for children/youth that are served by the program and for which no other resources are available to access the goods and/or services.\",\r\n \"All Kentucky IMPACT Service Coordinators and HFW Facilitators and Supervisors must attend and successfully complete the twelve-hour core components of the Targeted Case Management curriculum, as well as the six-hour specialized curriculum for children with a serious emotional disability (SED), as required by 908 KAR 2:260 (see Related Links). HFW Facilitators and their Supervisors must participate in additional training and ongoing coaching.\",\r\n \"For more information about Targeted Case Management services for children/youth, and about HFW and Kentucky IMPACT, please visit the relevant sections of this website through Related Links, or use the information in the Contact Information box above.\"\r\n ]\r\n },\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n];\r\n\r\nexport default tCMChild_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst youthAdult_Content = [\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"Overview\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 20,\r\n content: [\r\n \"The Department for Behavioral Health, Developmental and Intellectual Disabilities (DBHDID) is committed to addressing the systemic needs of youth and young adults with behavioral health and/or substance use issues. Through various grants and programs, DBHDID, the Division of Behavioral Health, is working to ensure that youth and young adults receive services that are more inclusive, person-centered, and relative to their age and experiences. Through various grants and programs, DBHDID, Division of Mental Health is working to ensure that youth and young adults receive services that are more inclusive, person-centered, and relative to their age and experiences.\",\r\n \"\"\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"Initiatives\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 40,\r\n content: [\r\n <><b>TAYLRD</b><br/></>,\r\n \"The Transition Age Youth Launching Realized Dreams (TAYLRD) program offers services and supports to youth and young adults aged 16–25 who are struggling with mental health and/or substance use (behavioral health) issues.\",\r\n \"Youth Peer Support Specialists have personal lived experience with BH issues and are specially trained to support other young people who are currently facing similar issues or situations. Youth Peer Support services are key to engaging this population in needed services and supports.\",\r\n \"The TAYLRD uses a drop-in center approach to behavioral health care. The hope is that by providing behavioral health support in an engaging environment, TAYLRD will give youth and young adults a sense of belonging and ownership in their wellness and recovery.\",\r\n \"TAYLRD’s goal is to empower young people by providing services and supports as chosen by the young adults. Examples include: peer support services; employment, education, and career planning; life skills development; medication management; health care navigation; and age-specific, developmentally appropriate behavioral health care.\"\r\n \r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 50,\r\n content: \"iHOPE\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 60,\r\n content: [\r\n <><b>What is psychosis?</b><br/></>,\r\n \"Psychosis involves the loss of contact with reality. A psychotic episode occurs when a person is unable to tell the difference between what is real and what is only occurring in their minds. There are significant changes in the person’s thoughts, beliefs, perceptions and behaviors when psychosis occurs. \",\r\n \"The person may experience hallucinations, such as hearing, seeing, tasting, smelling, and/or feeling things that are not there, or experience delusions. These experiences can feel very real and distressing it difficult to carry on with regular life tasks such as school, work, and relationships.\",\r\n <><b>What is iHope?</b><br/></>,\r\n \"iHOPE (Helping Others Pursue Excellence) is a specialized, team-based program that provides early intervention services for youth and young adults who are at risk of or have symptoms of psychosis. This program serves young people aged 15–30. Early intervention and support can increase the possibility of continuing with school, work, and full meaningful lives in the community.\"\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 80,\r\n content: <Links linkTypeID=\"738\"/>\r\n },\r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n];\r\n\r\nexport default youthAdult_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport UnorderedList from \"../../../layouts/bodyLayouts/helpers/UnorderedList\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst kEDC_Content = [\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"Overview\"\r\n },\r\n {\r\n\r\n format: bodyHelperTypes.paragraph,\r\n order: 20,\r\n content: \"In 2020, KRS 210.051 established the Kentucky Eating Disorder Council (KEDC) within the Cabinet for Health and Family Services. See KEDC legislation KRS 210.051 in under Related Links.\"\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"Goals of the Council\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 40,\r\n content: <><UnorderedList items={[\r\n \"Oversee the development and implementation of eating disorder awareness, education and prevention programs.\",\r\n \"Identify strategies for improving access to adequate diagnosis and treatment services.\",\r\n \"Assist the Cabinet for Health and Family Services in identifying eating disorder research projects.\",\r\n \"Work with the Cabinet for Health and Family Services and other appropriate entities to routinely examine existing surveillance systems, data collection systems, and administrative databases to determine the best strategies for implementing evidence-based eating disorder measures that provide data for program and policy planning purposes.\",\r\n \"As reasonably as possible, collaborate and coordinate on data research projects with the Cabinet for Health and Family Services and other appropriate entities.\",\r\n \"Make recommendations regarding legislative and regulatory changes as appropriate.\"\r\n ]} /></>\r\n },\r\n {\r\n\r\n format: bodyHelperTypes.title,\r\n order: 50,\r\n content: \"Membership\"\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 60,\r\n content: \"Members of the Kentucky Eating Disorder Council are appointed by the Governor’s Office and comprised of leaders of state government agencies, representatives of professional associations, individuals who have lived experience with an eating disorder, and researchers. Council meetings are open to the public, but meeting participation is limited to Council members. Standing committees are open to the public and have no restrictions on participation.\"\r\n\r\n },\r\n {\r\n\r\n format: bodyHelperTypes.title,\r\n order: 70,\r\n content: \"Meetings\"\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 80,\r\n content: \"Council meetings are open to the public, but meeting participation is limited to Council members. Standing committees are open to the public and have no restrictions on participation. Council meetings are held in a hybrid format, offering both in-person and virtual options, and are scheduled for the third Tuesday of odd-numbered months, from 2 to 3:30 p.m. Eastern Time or 1 to 2:30 p.m. Central Time. \"\r\n\r\n },\r\n {\r\n\r\n format: bodyHelperTypes.title,\r\n order: 90,\r\n content: \"Resources\"\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 100,\r\n content: [\r\n\r\n \r\n\r\n <>\r\n <b>For Individuals/Parents/Caregivers</b><br/><br/>\r\n\r\n <ul>\r\n <li><a href=\"https://www.confidentbody.net/about.html\"><b>Confident Body, Confident Child</b></a> is an Australian evidence-based prevention program for parents of 2 – 6-year-olds that helps prevent eating disorders by providing resources and strategies to promote positive body image, healthy eating, and physical activity.</li>\r\n\r\n <br />\r\n\r\n <li><a href=\"https://thedinnertableproject.org/\"><b>The Dinner Table Project</b></a> Eating dinner together, especially without electronics as a distraction, is one way adults can engage young people to support mental health, prevent substance use and eating disorders, and promote resilience in their everyday lives.</li>\r\n\r\n <br />\r\n\r\n <li><a href=\"https://www.feast-ed.org/ \"><b>Families Empowered And Supporting Treatment (FEAST)</b></a> is an international non-profit organization for parents and caregivers of loved ones affected by eating disorders.</li>\r\n\r\n <br />\r\n\r\n <li><a href=\"https://anad.org/\"><b>National Association of Anorexia Nervosa and Associated Disorders (ANAD)</b></a> free peer support services to anyone an eating disorder, regardless of age, race, gender identity, sexual orientation, or background.</li>\r\n\r\n <br />\r\n </ul>\r\n\r\n\r\n </>\r\n\r\n ]\r\n\r\n\r\n\r\n\r\n },\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 100,\r\n content: \"For Professionals\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 110,\r\n content: [\r\n\r\n <UnorderedList items={[\r\n <><b><a href=\"https://www.aedweb.org/home\">Academy for Eating Disorders</a></b> helps physicians, psychiatrists, psychologists, nutritionists, academic researchers, students, and experts, through lived experience, connect and collaborate with one another.\r\n\r\n <br />\r\n <br />\r\n\r\n </>,\r\n <><b><a href=\"https://www.iaedp.com/certification-overview/\">International Association of Eating Disorder Professionals (IAEDP)</a></b> Interested in learning more or obtaining your Certified Eating Disorder Specialist (CEDS)\r\n <br />\r\n <br />\r\n </>,\r\n <><b><a href=\"https://www.theprojectheal.org/insurance-resource-hub\">Project Heal Insurance Resource Hub</a></b> is an interactive tool to assist professionals and caregivers in finding providers who take a particular insurance by state </>\r\n\r\n\r\n\r\n ]} />\r\n ]\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 120,\r\n content: \"For Everyone\"\r\n },\r\n\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 130,\r\n content: [\r\n\r\n <>\r\n\r\n <ul>\r\n <li><a href=\"https://www.theprojectheal.org/free-eating-disorder-support-groups\"><b>Project Heal Directory of free support groups by type</b></a></li> <br />\r\n <li><a href=\"https://www.nationaleatingdisorders.org/\"><b>National Eating Disorders Association (NEDA)</b></a> works to advance research, community building, and awareness to support those who may be affected by an eating disorder.</li> <br />\r\n\r\n <li><a href=\"https://www.nceedus.org/ \"><b>National Center for Excellence for Eating Disorders (NCEEDS)</b></a> mission is to advance the education and training of healthcare providers and to promote public awareness of eating disorders and eating disorder treatment. NCEEDs holds resources for Parents/Caregivers/Individuals, Professionals, and Students.</li>\r\n </ul>\r\n </>\r\n\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 140,\r\n content: \"Find Eating Disorder Treatment\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 150,\r\n content: <>\r\n\r\n <b>\r\n\r\n <ul>\r\n <li><a href=\"https://anad.org/get-help/treatment-directory/\">https://anad.org/get-help/treatment-directory/</a></li><br />\r\n\r\n <li><a href=\"\r\n https://findedhelp.com/\">https://findedhelp.com/</a></li><br />\r\n\r\n <li><a href=\"https://www.theprojectheal.org/insurance-resource-hub\">https://www.theprojectheal.org/insurance-resource-hub</a></li><br />\r\n\r\n <li><a href=\"https://iaedp.site-ym.com/search/custom.asp?id=4255\">Find a Certified Eating Disorder Specialist (CEDS)</a></li>\r\n </ul>\r\n\r\n </b>\r\n\r\n\r\n </>\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 160,\r\n content: \"Screening Resources\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 170,\r\n content: <>\r\n\r\n <b>\r\n\r\n <ul>\r\n <li><a href=\"https://www.nceedus.org/sbirt-for-eating-disorders/\">SBIRT - ED</a></li> <br />\r\n\r\n\r\n <li><a href=\"https://www.ncbi.nlm.nih.gov/pmc/articles/PMC1070794/\">SCOFF</a></li> <br />\r\n\r\n <li><a href=\"https://www.maofp.org/resources/Documents/Disordered-Eating-Poster.pdf\">DESA 6 (for athletes) </a></li>\r\n </ul>\r\n\r\n </b>\r\n </>\r\n },\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 180,\r\n content: \"Annual Reports\"\r\n \r\n },\r\n\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 190,\r\n content: <>\r\n\r\n <Links linkTypeID=\"799\" />\r\n </>\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n];\r\n\r\nexport default kEDC_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\n\r\n\r\nconst pPP_Content = [\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 1,\r\n content: \"About Us\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 10,\r\n content: \"The Mental Health Promotion, Prevention and Preparedness Branch works closely with Community Mental Health Centers (CMHCs), Regional Prevention Centers (RPCs) as well as local and state partners.\"\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 20,\r\n content: \"What We Do\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 30,\r\n content: [\r\n <>\r\n <br/>\r\n <Link className=\"quick-links-body\" to=\"/mh/mhp\">Mental Health Promotion</Link></>,\r\n \"The goal for the Mental Health Promotion program is to build resilience and life skills and promote connectedness to support mental health wellness of all Kentuckians.\",\r\n <><Link className=\"quick-links-body\" to=\"https://www.chfs.ky.gov/agencies/dbhdid/Pages/Problem-Gambling-Program.aspx\">Problem Gambling</Link></>,\r\n \"The problem gambling program educates Kentuckians on safe gambling practices, the risks of developing a gambling problem, risk factors and warning signs of gambling problems, and available services to reduce the consequences of problem gambling.\",\r\n <><Link className=\"quick-links-body\" to=\"/mh/sp\">Suicide Prevention</Link></>,\r\n \"Kentucky’s coordinated and integrated suicide prevention, intervention, treatment and postvention services utilize best practices from local, state, national, and international subject matter experts. Throughout the state, Kentuckians work together to promote access to suicide prevention resources in communities, following diversity, equity, and inclusion principles. \",\r\n <><Link className=\"quick-links-body\" to=\"https://988lifeline.org/\">988 Suicide and Crisis Hotline</Link></>,\r\n <>988 serves as a universal entry point into mental health services for anyone, anywhere in the United States. 988 offers options for accessing trained crisis counselors 24/7 by calling or texting 988 or by chat at <a href=\"https://988lifeline.org/chat/\">https://988lifeline.org/chat/</a>. People can call, chat, or text if they are experiencing a crisis or are concerned about a loved one.</>,\r\n <><Link className=\"quick-links-body\" to=\"/crisis\">Crisis Intervention</Link></>,\r\n \"Kentucky Crisis Prevention and Response System\",\r\n \"Kentucky’s community mental health centers provide a continuum of crisis services for individuals experiencing a mental health or substance use crisis. Services are provided in various settings and via telehealth. They are available 24 hours a day for all individuals, regardless of payer source or ability to pay. Crisis services prevent future issues, stabilize individuals in distress, connect them with the least restrictive, most appropriate acute treatment services available when needed, and coordinate ongoing services and supports in the community.\",\r\n <><Link className=\"quick-links-body\" to=\"/crisis\">Disaster Preparedness and Response </Link></>,\r\n \"The Disaster Preparedness and Response program helps communities prepare for and respond to behavioral health needs during a disaster through planning, infrastructure development, and resilience development of all residents. DBHDID administers the statewide disaster behavioral health plan and coordinates with each of the 14 CMHCs to review and strengthen existing disaster response plans. DBHDID also administers the Kentucky Community Crisis Response Team (KCCRT), a group of highly trained volunteers who provide support, mainly to first responders, after critical incidents (line of duty deaths, multi-casualty incidents, use of deadly force, the suicide of a first responder, events involving children, prolonged incidents, terrorism, and any other overwhelming event.)\",\r\n <Link className=\"quick-links-body\" to=\"https://kccrt.ky.gov/Pages/index.aspx\">The Kentucky Community Crisis Response Team (KCCRT)</Link>,\r\n \"The KCCRT equips first responders, disaster survivors, and communities in kentucky to cope with critical incidents and traumatic events while building resilience. Our statewide team of volunteers, including first responders, chaplains, mental health professionals, and trained community members, deploy upon request to provide immediate peer support. We are dedicated to fostering recovery and resilience, ensuring that all kentuckians are safe, strong, and well-supported in the face of adversity.\"\r\n ],\r\n\r\n },\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n];\r\n\r\nexport default pPP_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport appleHeart from \"../../../assets/img/mentalHealthPromotion/AppleHeart.jpg\";\r\nimport mentalWell from \"../../../assets/img/mentalHealthPromotion/mental_wellness.jpg\";\r\nimport contact988 from \"../../../assets/img/mentalHealthPromotion/Contact988.jpg\";\r\nimport data from \"../../../data/data.json\"\r\n\r\nconst mHPromotion_Content = [\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"The Goals of Mental Health Promotion\"\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n <>\r\n <div style={{ marginTop: \"10px\" }} className=\"container overlap-box\">\r\n <div className=\"clearfix\">\r\n <img src={appleHeart} className=\"container col-md-6 float-md-end mb-3 ms-md-3 Home-Image-Top-Box\" alt=\"...\" />\r\n <ul>\r\n <li>Increase awareness about mental health and wellness in Kentucky, including:\r\n <ul>\r\n <li>definitions of mental health and wellness</li>\r\n <li>benefits of mental health and wellness</li>\r\n <li>disparities in mental health and wellness</li>\r\n </ul>\r\n </li>\r\n\r\n <li>Promote mental wellness for all kentuckians through education, including\r\n <ul>\r\n <li>risk factors for poor mental health</li>\r\n <li>strategies to improve mental health and wellness</li>\r\n </ul>\r\n </li>\r\n <li>\r\n Reduce stigma around mental health\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"What is Mental Wellness?\"\r\n\r\n },\r\n\r\n {\r\n\r\n format: bodyHelperTypes.paragraphs,\r\n order: 40,\r\n content: [\r\n \"Being mentally well is more than just the absence of a diagnosed mental health condition. It includesour overall emotional, psychological, and social well-being.\",\r\n \"Our level of mental wellness impacts our ability to cope with stress, engage in meaningful activities,and build positive relationships.\",\r\n <>\r\n <div style={{ backgroundColor: \"#50d39f\", width: \"\", height: \"100px\", paddingTop: \"20px\" }}>\r\n <p style={{ fontSize: \"50px !important\", paddingLeft: \"20px\", paddingTop: \"20px\" }}><b>EVERYONE HAS THE CAPACITY TO BE MENTALLY WELL</b></p>\r\n </div><br />\r\n\r\n <a href=\"https://dbhdid.ky.gov/documents/dbh/UnderstandingMentalWelness.pdf\">Download the Understanding Mental Health and Wellness Resource Guide</a>\r\n\r\n </>\r\n\r\n\r\n ]\r\n\r\n },\r\n {\r\n\r\n format: bodyHelperTypes.title,\r\n order: 50,\r\n content: \"Benefits of Mental Wellness The Mental Health Continuum Mental Health Checklist\"\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 60,\r\n content: [\r\n\r\n <>\r\n\r\n\r\n <b>The Benefits of Mental Wellness</b><br />\r\n\r\n\r\n \"Being mentally well can have many good impacts on your overall physical, mental, social, and emotional wellbeing.\",\r\n </>,\r\n <>\r\n <b>Focusing on your MENTAL WELLNESS can…</b><br /><br />\r\n <ol>\r\n <li>Reduce risk of physical health problems such as heart disease, stroke, and type 2 diabetes.</li>\r\n <li>Reduce risk of developing depression and anxiety.</li>\r\n <li>Increase positive outlook and ability to enjoy life.</li>\r\n <li>Increase ability to cope with stressful or difficult life events.</li>\r\n <li>Increase creativity and openness to new experiences.</li>\r\n <li>Improve relationships with the people in your life.</li>\r\n <li>Increase productivity to allow you to reach your potential.</li>\r\n <li>Enable you to make meaningful contributions to your family, community, and society.</li>\r\n <li>Increase ability to think clearly and make healthy decisions.</li>\r\n <li>Improve mood, self-esteem, and confidence.</li>\r\n </ol>\r\n </>,\r\n <>\r\n <div>\r\n <b style={{ textAlign: \"center !important\" }}>REMEMBER: EVERYONE HAS THE CAPACITY TO BE MENTALLY WELL,\r\n regardless of whether you have a mental health condition.</b>\r\n </div>\r\n </>,\r\n <>\r\n Download the <a href=\"\">“10 Benefits of Mental Wellness†flyer</a>\r\n </>,\r\n <>\r\n Download the <a href=\"\">\"What is Mental Wellness\"</a>\r\n </>,\r\n <>\r\n <b>LEARN MORE ABOUT THE BENEFITS OF CARING FOR YOUR MENTAL HEALTH:</b><br />\r\n <a href=\"https://www.nimh.nih.gov/health/topics/caring-for-your-mental-health\">https://www.nimh.nih.gov/health/topics/caring-for-your-mental-health</a>\r\n <a href=\"https://positivepsychology.com/benefits-of-mental-health/\">https://positivepsychology.com/benefits-of-mental-health/</a>\r\n <a href=\"https://www.cdc.gov/mentalhealth/learn/index.htm\">https://www.cdc.gov/mentalhealth/learn/index.htm</a>\r\n </>\r\n\r\n ]\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 70,\r\n content: \"The Mental Health Continuum\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 80,\r\n content: [\r\n \"Mental health exists on a continuum from “mentally well†to “mental health crisis†and contains a whole range of emotions.\",\r\n <><img src={mentalWell} /></>,\r\n \"Based on a variety of factors, including biology, genetics, and circumstances, we move along the continuum in both directions as we move through life. Everyone can experience mental wellness or a mental health crisis, regardless of whether they have a diagnosed mental health condition.\",\r\n <><img src={contact988} /></>,\r\n <><b>Mentally Well</b> <br /><br />\r\n Being mentally well means you are thriving and experiencing no major issues.<br />\r\n Signs of mental wellness include:<br /><br />\r\n <div className=\"col-md-4 col-md-3\">\r\n <select className=\"form-select\">\r\n\r\n {/* <option>test</option> */}\r\n {\r\n data.mhpromotionMentalWell.map((data, index) => {\r\n {/* console.log(data) */ }\r\n return (\r\n\r\n\r\n\r\n <option key={index} className=\"form-select\"\r\n >{data.signs}</option>\r\n\r\n )\r\n })\r\n }\r\n </select>\r\n\r\n </div><br />\r\n When you are feeling mentally well is a great time to develop a safety plan. Click here to download a <a href=\"\">CODERED Safety Plan</a>\r\n\r\n </>,\r\n\r\n\r\n\r\n\r\n <>\r\n <b>Mentally Distress</b> <br /><br />\r\n Mental distress is <b>common and expected discomfort</b> in response to the stresses of everyday life.<br />\r\n Signs of mental wellness include:<br /><br />\r\n <div className=\"col-md-4 col-md-3\">\r\n <select className=\"form-select\">\r\n\r\n {/* <option>test</option> */}\r\n {\r\n data.mhpromotionMentalDistress.map((data, index) => {\r\n {/* console.log(data) */ }\r\n return (\r\n\r\n\r\n\r\n <option key={index} className=\"form-select\"\r\n >{data.signs}</option>\r\n\r\n )\r\n })\r\n }\r\n </select>\r\n\r\n </div><br />\r\n Consider developing a safety plan to help prevent a mental health crisis. Click here to download a <a href=\"\">CODERED Safety Plan</a>\r\n\r\n </>,\r\n\r\n <>\r\n <b>Mental Health Problem</b> <br /><br />\r\n Mental health problems often occur as a reaction to major life changes or challenges. These feelings can be intense and may last awhile, but usually go away after enough time has passed.<br />\r\n Signs of a mental health problem include:<br /><br />\r\n <div className=\"col-md-4 col-md-3\">\r\n <select className=\"form-select\">\r\n\r\n {/* <option>test</option> */}\r\n {\r\n data.mhpromotionMentalHealthProblem.map((data, index) => {\r\n {/* console.log(data) */ }\r\n return (\r\n\r\n\r\n\r\n <option key={index} className=\"form-select\"\r\n >{data.signs}</option>\r\n\r\n )\r\n })\r\n }\r\n </select>\r\n\r\n </div><br />\r\n You may need to seek assistance from a doctor or mental health provider. Consult your safety plan, or develop one, to prevent a mental health crisis. Call 988 for assistance with finding a provider or developing a crisis plan.\r\n\r\n </>,\r\n\r\n\r\n <>\r\n\r\n <b>Mental Health Crisis</b> <br /><br />\r\n A mental health crisis refers to extreme or intense symptoms that severely impact ability to function. Symptoms may be sudden and resolve quickly or may persist for a long period of time.<br />\r\n Signs of a mental health problem include:<br /><br />\r\n <div className=\"col-md-4 col-md-3\">\r\n <select className=\"form-select\">\r\n\r\n {/* <option>test</option> */}\r\n {\r\n data.mhpromotionMentalHealthCrisis.map((data, index) => {\r\n {/* console.log(data) */ }\r\n return (\r\n\r\n\r\n\r\n <option key={index} className=\"form-select\"\r\n >{data.signs}</option>\r\n\r\n )\r\n })\r\n }\r\n </select>\r\n\r\n </div><br />\r\n You may need to seek assistance from a doctor or mental health provider. Consult your safety plan, or develop one, to prevent a mental health crisis. Call 988 for assistance with finding a provider or developing a crisis plan.\r\n\r\n </>,\r\n\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 90,\r\n content: \"Mental Health Check-In\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 100,\r\n content: [\r\n <>\r\n <ul>\r\n <li><b>How am I feeling today?</b></li>\r\n Take notice of your mood and how your body feels. Physical signs of mental health issues might include:<br />\r\n <ul>\r\n <li>Headaches</li>\r\n <li>Body Pains</li>\r\n <li>Skin Rashes</li>\r\n <li>Stomachaches</li>\r\n <li>Muscle Tension</li>\r\n <li>Frequent Urination</li>\r\n <li>Appetite Changes</li>\r\n <li>Weight Changes</li>\r\n <li>Changes in Energy</li>\r\n </ul>\r\n <br/>\r\n <li>What has been worrying me?</li>\r\n Identifying your stressors can help you address them.<br /><br/>\r\n\r\n <li><b>Am I taking care of my body? Do I…</b></li>\r\n <ul>\r\n <li><b>Eat healthy, regular meals?</b></li>\r\n <li><b>Drink plenty of water?</b></li>\r\n <li><b>Maintain personal hygiene?</b></li>\r\n <li><b>Move my body?</b></li>\r\n <li><b>Get enough sleep?</b></li>\r\n <li><b>Spend time outside?</b></li>\r\n </ul>\r\n <br/>\r\n <li><b>What am I doing to bring myself joy?</b></li>\r\n Examples may include:\r\n <ul>\r\n <li>Creative hobbies (cooking, art, music, etc.)</li>\r\n <li>Reading books for fun</li>\r\n <li>Watching a TV show I enjoy</li>\r\n <li>Spending time with my pets</li>\r\n <li>Keeping a gratitude journal</li>\r\n </ul>\r\n <br/>\r\n <li><b>Who is in my corner? Do I have someone in my life who…</b></li>\r\n <ul>\r\n <li>Gives good advice when I ask for it?</li>\r\n <li>Is respectful and trustworthy?</li>\r\n <li>Listens to me?</li>\r\n <li>Has my best interests at heart?</li>\r\n </ul>\r\n <br/>\r\n \r\n \r\n\r\n </ul>\r\n\r\n\r\n Visit <a href=\"https://www.psychologytoday.com/\">Psychology Today</a> to learn more about mental health treatment or to find a provider near you <br/><br/>\r\n Click here to download this <a href=\"\">checklist</a>\r\n </>,\r\n <><img src={contact988} /></>,\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 110,\r\n content: \"Resource Spotlight\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 120,\r\n content: [\r\n <>\r\n To explore more mental health promotion resources for each month, check out the <a href=\"\">Mental Health Awareness</a> Resources page.\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 130,\r\n content: \"More Helpful Links and Resources\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 140,\r\n content: [\r\n <>\r\n <b>National Institute of Mental Health</b><br/><br/>\r\n <ul>\r\n <li><a href=\"https://www.nimh.nih.gov/health/topics/caring-for-your-mental-health\">Caring for Your Mental Health</a><br/>\r\n Learn the basics of mental health self-care.\r\n </li>\r\n <li><a href=\"https://www.nih.gov/health-information/your-healthiest-self-wellness-toolkits\">Your Healthiest Self</a><br/>\r\n Find tips for improving emotional, social, physical, and environmental wellness.\r\n </li>\r\n <li><a href=\"https://www.nimh.nih.gov/health/publications/so-stressed-out-fact-sheet\">I’m So Stressed Out</a><br/>\r\n Understand the difference between stress and anxiety and how to manage each.\r\n </li>\r\n </ul>\r\n </>,\r\n <>\r\n <b>Mental Health America</b><br/><br/>\r\n <ul>\r\n <li><a href=\"https://screening.mhanational.org/screening-tools/?ref=MHAKY\">Mental Health Screening</a><br/>\r\n Everyone experiences times of anxiety, stress, and sadness. Knowing when it’s time to seek professionalmental health assistance is important. Take a mental health screen today.\r\n </li>\r\n <li><a href=\"https://mhanational.org/workplace/toolkit\">Workplace Wellness Toolkit</a><br/>\r\n Toolkit to help support employee mental health and well-being.\r\n </li>\r\n <li><a href=\"https://mhanational.org/youth-tech\">Navigating Virtual Spaces for Youth</a><br/>\r\n Resources to help young people navigate the virtual world.\r\n </li>\r\n </ul> \r\n </>\r\n ]\r\n }\r\n\r\n\r\n // {\r\n // format: bodyHelperTypes.paragraph,\r\n // order: 11,\r\n // content: \"Mental wellness is more than simply the absence of diagnosable mental health conditions. Rather, it encompasses overall emotional, psychological, and social wellbeing. Mental wellness impacts how we think, feel, and act and helps to determine how we handle stress, relate to others, and make choices.The goal for the Mental Health Promotion program is to build resilience and life skills and promote connectedness to support mental health wellness of all Kentuckians.\"\r\n // },\r\n // {\r\n // format: bodyHelperTypes.title,\r\n // order: 20,\r\n // content: \"Mental Health Promotion Resource Kits\"\r\n // },\r\n // {\r\n // format: bodyHelperTypes.paragraphs,\r\n // order: 30,\r\n // content: [\r\n\r\n\r\n\r\n // <>\r\n\r\n // <>Browse selected Mental Health Promotion Resources below. To view the full collection, visit <a href=\"https://drive.google.com/drive/folders/15oWTOSbsdMBM3XPw5uYtSQrZTNsUOjqp\">tinyurl.com/MHPResources</a>.</> <br /><br />\r\n // <a href=\"https://dbhdid.ky.gov/documents/dbh/UnderstandingMentalWellness.pdf\">Wellness Resources Guide</a><br /><br />\r\n // <a href=\"https://kyprevention.getbynder.com/m/6de9ee69363ae789/original/BIPOC-Mental-Health-Month-July-2024.pdf\">BIPOC Mental Health Month Resource Kit</a><br /><br />\r\n // Description: July is BIPOC Mental Health Month, a time to focus on supporting Black, Indigenous, and people of color mental wellness. This mini resource guide provides general information about how to achieve and maintain mental wellness, including how to seek culturally competent mental health care and how culturally-based practices can help to support mental wellness.Visit <a href=\"https://mhanational.org/bipoc\">https://mhanational.org/bipoc</a> for more information and resources.\r\n // <br />\r\n // <br />\r\n // To view the entire collection of Mental Health Promotion and Suicide Prevention resources, visit <a href=\"https://bit.ly/44bNJOu\">https://bit.ly/44bNJOu</a>.\r\n // </>,\r\n // <><a href=\"https://kyprevention.getbynder.com/m/7804e24912a271c7/original/Supporting-Mental-Health-and-Preventing-Suicide-Mini-Resource-Kit-2023.pdf\">Supporting Mental Health and Preventing Suicide Mini Resource Kit</a><br />\r\n // Description: This mini resource kit is flexible in its usage and provides information that can be used to meet the needs of communities to support mental wellness of its residents. It offers guidance in promoting mental wellness among all individuals, supporting connectedness, and developing healthy coping mechanisms and help-seeking behaviors.\r\n // </>,\r\n // <><a href=\"https://kyprevention.getbynder.com/m/2db6ba7ac2737761/original/2023-Kentucky-Suicide-Prevention-Awareness-Resource-Guide.pdf\">2023 Kentucky Suicide Prevention Awareness Resource Guide</a><br />\r\n // Description: The resource guide includes: the history of suicide prevention month, dates within the month that bring awareness, ways to take action, safe messaging, National and State mental wellness and suicide prevention resources and a list of Kentucky events that are happening in September 2023.\r\n // </>,\r\n\r\n // <><a href=\"https://rb.gy/6paxf\">Toolkit for Flooding Disaster Anniversary</a><br />\r\n // Description: Toolkit with common reactions and ideas for stress management related to the anniversary of disasters.\r\n // </>,\r\n\r\n\r\n // <><a href=\"https://kyprevention.getbynder.com/transfer/bc40509fd5c030fd15da799d3bf3312760fb130685cdc6210ba05de41bead5f8\">Toolkit for Tornado Disaster Anniversary</a><br />\r\n // Description: Toolkit with common reactions and ideas for stress management related to the anniversary of disasters.\r\n // </>,\r\n // ]\r\n // },\r\n // {\r\n // format: bodyHelperTypes.title,\r\n // order: 40,\r\n // content: \"Helpful Links & Resources\"\r\n // },\r\n // {\r\n // format: bodyHelperTypes.paragraphs,\r\n // order: 50,\r\n // content: [\r\n // <><a href=\"https://drive.google.com/file/d/14leYXneRepvGsYgTnVmwjtXZ6yvD324g/view?usp=drive_link\">Supporting Mental Health for Providers</a><br />\r\n // This resource guide is designed for non-behavioral health providers working with individuals who have behavioral health needs. It provides tips for discussing mental health with patients and handouts to provide in the office setting.\r\n // </>,\r\n\r\n // <><a href=\"https://drive.google.com/file/d/1oK77knznac3B4uEpmLgG2sVUQSFdzFbK/view?usp=drive_link\">National Depression and Mental Health Screening Month for Consumers</a><br />\r\n // This resource guide includes resources to learn more about the signs of common mental health issues, how to access screens, and tools to monitor and improve your mental health.\r\n // </>,\r\n\r\n // <><a href=\"https://www.nimh.nih.gov/health/topics/caring-for-your-mental-health\">National Institute of Mental Health - Caring for your Mental Health</a><br />\r\n // Description: Learn the basics of mental health self-care.\r\n // </>,\r\n // ,\r\n // <><a href=\"https://www.nih.gov/health-information/your-healthiest-self-wellness-toolkits\">National Institute of Mental Health - Your Healthiest Self</a><br />\r\n // Description: Find tips for improving emotional, social, physical, and environmental wellness.\r\n // </>,\r\n // <><a href=\"https://mhanational.org/workplace/toolkit\">Mental Health America - Workplace Wellness Toolkit </a><br />\r\n // Descriptions: Toolkit to help support employee mental health and well-being.\r\n // </>,\r\n // <><a href=\"https://www.nimh.nih.gov/health/publications/so-stressed-out-fact-sheet\">National Institute of Mental Health - I’m So Stressed Out </a><br />\r\n // Description: Understand the difference between stress and anxiety and how to manage each.\r\n // </>,\r\n // <><a href=\"https://mhanational.org/youth-tech\">Mental Health America - Navigating Virtual Spaces for Youth </a><br />\r\n // Description: Resources to help young people navigate the virtual world.\r\n // </>,\r\n // <><a href=\"https://screening.mhanational.org/screening-tools/?ref=MHAKY\">Mental Health America of Kentucky - Mental Health Screening </a><br />\r\n // Description: Everyone experiences times of anxiety, stress, and sadness. Knowing when it’s time to seek professional mental health assistance is important.\r\n // </>,\r\n\r\n\r\n // ]\r\n // },\r\n]\r\n\r\n\r\nexport default mHPromotion_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\n\r\nconst sP_Content = [\r\n \r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"Hotlines and Other Resources\"\r\n },\r\n \r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [<><li>988 English/Spanish- text 988, chat online at <a href=\"https://988.ky.gov/\">https://988.ky.gov/</a> or dial 988 then press 2 for Spanish speakers</li>\r\n <li>Veteran’s – text 988, chat online at <a href=\"https://988.ky.gov/\">https://988.ky.gov/</a> or dial 988 then press 1 for Veterans</li>\r\n <li>Crisis Text Line- text KY to 741-741</li>\r\n <li>Trans Lifeline- (877) 565-8860</li>\r\n <li>Trevor Project- (212) 695-8650 or chat online at <a href=\"https://www.thetrevorproject.org/get-help/\">https://www.thetrevorproject.org/get-help/ </a></li>\r\n </>]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"Prevention Resources\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 40,\r\n content: [<><a href=\"https://bit.ly/44bNJOu\">https://bit.ly/44bNJOu</a>: At this link you can find various resources surrounding mental health promotion and suicide prevention, including but not limited to: Regional Prevention Resources, Social Media Toolkits, Disaster Anniversary Resources, Resources for Addressing and Preventing Suicide in Schools, and more. The resources at this link are continually updated and more are added when available.</>]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 50,\r\n content: \"Suicide Information and Resources\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 60,\r\n content: [<div className=\"no-bullet\"><li><a className=\"quick-links-body\" href=\"https://theactionalliance.org/our-strategy/national-strategy-suicide-prevention\">National Strategy for Suicide Prevention</a></li>\r\n <li><a className=\"quick-links-body\" href=\"https://www.hhs.gov/sites/default/files/sprc-call-to-action.pdf\">Surgeon General’s Call to Action</a></li>\r\n </div>]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 70,\r\n content: \"State and Local Suicide Resources\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 80,\r\n content: [<div className=\"no-bullet\" ><li><a className=\"quick-links-body\" href=\"https://sprc.org/\">Suicide Prevention Resource Center State Suicide Prevention</a></li>\r\n </div>]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 90,\r\n content: \"Survivors of Suicide Support Groups\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 100,\r\n content: [<div className=\"no-bullet\"><li><a className=\"quick-links-body\" href=\"https://sprc.org/state/kentucky/\">Suicide Prevention Resource Center State Suicide Prevention</a></li>\r\n </div>]\r\n },\r\n \r\n]\r\n\r\n\r\n export default sP_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport { Link } from \"react-router-dom\";\r\nimport Links from \"../../../components/Links\";\r\n\r\n\r\n\r\nconst kCCRT_Content = [\r\n \r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"Kentucky Community Crisis Response Team (KCCRT)\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n \"The Kentucky Community Crisis Response Team’s (KCCRT) is a free, confidential State resource that provides leadership, education, training, consultation, and support services to prepare and support the Commonwealth to respond to and recover from critical incidents and disasters. \",\r\n \"KCCRT services are available to support first responders, schools, industry/businesses, and communities. \",\r\n \"An agency may consider contacting KCCRT when the local resources are limited or exhausted and are unable to meet the assessed need for services. KCCRT works collaboratively with the agency to assess the need for a crisis response team and assist in identifying the local capabilities and any gap in desired services.\",\r\n \"KCCRT’s role in any event is at the direction of the agency that is requesting services.\",\r\n <>You can find more information about KCCRT at <a href=\"https://kccrt.ky.gov/\">kccrt.ky.gov</a> and through viewing the documents below:</>, \r\n <><Links linkTypeID={777}/></>\r\n ]\r\n },\r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n];\r\n\r\nexport default kCCRT_Content;","//Using the react library\r\nimport React from \"react\";\r\n//Using the react library:\r\nimport { useEffect, useState } from \"react\";\r\n//API Middle man\r\nimport useApi from \"../utils/UseAPI\";\r\n// React loading spinner\r\nimport Spinner from 'react-bootstrap/Spinner';\r\n\r\nfunction DataGuideList() {\r\n\r\n const { error, processing, getRequest } = useApi();\r\n const [content, setContent] = useState([]);\r\n \r\n \r\n useEffect(() => {\r\n\r\n const fetchLinks = async () => {\r\n const [data, status] = await getRequest(null, \"cmhc/data-guide\");\r\n if (status == 200) {\r\n setContent(data.data)\r\n }\r\n else {\r\n console.log(error)\r\n }\r\n };\r\n fetchLinks();\r\n }, []);\r\n\r\n return (\r\n <>\r\n <div className=\"col-md-4 col-md-3\"> \r\n {/* Return List */}\r\n <select className=\"form-select\" onChange={(e) =>{\r\n window.location = e.target.value;\r\n }}>\r\n <option>Select a Report</option>\r\n {\r\n processing ? <Spinner animation=\"border\" variant=\"success\" /> : content.map((data, index) => {\r\n return (\r\n <option value={\"https://dbhdid.ky.gov/DataReports/Reports.aspx?r=\"+data.reportName+\"&x=rdl\"} key={index} className=\"form-select\">{data.reportDesc}</option>\r\n )\r\n })\r\n }\r\n </select>\r\n </div>\r\n </>\r\n );\r\n}\r\n\r\nexport default DataGuideList;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Links from \"../../../components/Links\";\r\nimport DataGuideList from \"../../../components/DataGuideList\";\r\n\r\n\r\nconst dataGuide_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"2025 Data Implementation Guide\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 20,\r\n content: <><Links linkTypeID={\"266\"} /></>\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"2024 Data Implementation Guide\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 40,\r\n content: <><Links linkTypeID={\"203\"} /></>\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 50,\r\n content: \"Reports\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 60,\r\n content: [<><b>Note: </b>These reports pop up in a new tab. If a report does not open, you might have to disable your popup blocker or allow popups from this site.</>,\r\n\r\n <b>Please use the newest browser version (Internet Explorer 10 contemporary or newer).</b>\r\n\r\n ]\r\n },\r\n {\r\n\r\n format: bodyHelperTypes.paragraph,\r\n order: 70,\r\n content: <><DataGuideList/></>\r\n },\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n];\r\n\r\nexport default dataGuide_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../utils/BodyHelperTypes\";\r\nimport UnorderedList from \"../../layouts/bodyLayouts/helpers/UnorderedList\";\r\nimport EventExperienceEffect from \"../../assets/img/trauma&Resilience/EventExperienceEffect.png\";\r\nimport PopWords from \"../../assets/img/trauma&Resilience/PopWords.png\";\r\nimport TraumaImpact from '../../assets/img/trauma&Resilience/TraumaImpact.PNG';\r\nimport ACE from \"../../assets/img/trauma&Resilience/ACE.png\";\r\nimport Resilience from \"../../assets/img/trauma&Resilience/resilience.png\"\r\nimport TFSP from \"../../assets/img/trauma&Resilience/TFSP.png\"\r\nimport BalloonThoughts from \"../../assets/img/trauma&Resilience/BalloonThoughts.png\"\r\nimport PEC from \"../../assets/img/trauma&Resilience/PCEs.png\";\r\nimport Links from \"../../components/Links\";\r\n\r\n\r\nconst traumaAndResilience_Content = [\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"Trauma & Its Impact \"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n <>\r\n Trauma is the response to an event or events that are physically or emotionally harmful, and negatively impact well-being and functioning. Trauma can happen to individuals, families, and whole communities. Rates of trauma are significantly higher among people who receive behavioral health services. Trauma can happen to us directly, or we can witness or hear about it happening to others. There are many types of traumas, and often people experience multiple traumas over their lifespan.\r\n\r\n <img style={{ maxWidth: \"100%\", textAlign: \"center !important\", overflow: \"hidden\" }} src={PopWords} />\r\n </>,\r\n // <><img style={{ maxWidth: \"100%\", textAlign: \"center !important\", overflow: \"hidden\", }} src={EventExperienceEffect} /></>,\r\n <>\r\n {/* <b>There are many types of trauma: </b><br /><br />\r\n <ul>\r\n <li>Natural Disasters: floods, wildfires, tornadoes, hurricanes, etc.</li>\r\n <li>Family or Household Trauma: domestic violence; child abuse or neglect; someone with mental illness or substance use/misuse in the household; someone in the household incarcerated; traumatic death of a family member </li>\r\n <li>Unexpected Trauma: car, boat or ATV accidents; housefires; accidental gunfire accidents; traumatic medical experiences; etc.</li>\r\n\r\n <img style={{ maxWidth: \"100%\", textAlign: \"center !important\", overflow: \"hidden\" }} src={PopWords} />\r\n\r\n <li>Societal Trauma: discrimination, oppression, racism, war, terrorism, relocation, etc.</li>\r\n </ul> */}\r\n\r\n Trauma impacts everyone differently and there is no right or wrong response: sometimes the impact is small or short-lived, for others it can be severe or last a long time. Trauma can have a significant impact on an individual's health and well-being, and can lead to a sense of powerlessness, fear or hopelessness, and a constant state of alertness within an individual. Here are some common responses to trauma:\r\n\r\n <img style={{ maxWidth: \"100%\", textAlign: \"center !important\", overflow: \"hidden\" }} src={TFSP} />\r\n\r\n </>,\r\n\r\n <>Learn more about trauma and its effects <a href=\"https://www.nimh.nih.gov/health/topics/coping-with-traumatic-events\">here.</a></>,\r\n <>Learn more about the impact of trauma <a href=\"https://www.traumainformedcare.chcs.org/what-is-trauma/\">here.</a><br /><br /></>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 30,\r\n content: <><b>Trauma-Informed Care</b></>\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 40,\r\n content: [\r\n <>\r\n Trauma-informed care is an approach to engaging people that recognizes the potential presence of trauma symptoms and acknowledges the role that trauma may play in an individual’s life. Resilience-oriented approaches ensure that people not only survive, but are supported to thrive to try to reach their full potential. When a human service agency becomes trauma-informed, every part of its organization, management and service delivery system is designed to be sensitive and responsive to recognizing how trauma affects the lives of individuals and their engagement in services.\r\n\r\n <br />\r\n <br />\r\n\r\n Trauma-informed, healing-centered, resilience-oriented care shifts the paradigm from asking “'What's wrong with you?†to asking: “What happened to you?\" and “What’s strong with you?â€\r\n\r\n <br />\r\n <br />\r\n\r\n <div class=\"\">\r\n <div class=\"row\">\r\n <div class=\"col-7 col-sm-4\"><img style={{ maxWidth: \"100%\", textAlign: \"center !important\", overflow: \"hidden\" }} src={BalloonThoughts} /></div>\r\n <div class=\"col\">Learn more about trauma-informed approaches: <br />\r\n <br />\r\n <ul>\r\n <li><a href=\"https://www.ncbi.nlm.nih.gov/books/NBK207201/\">Trauma-Informed Care in Behavioral Health Services </a></li>\r\n <li><a href=\"https://www.ncbi.nlm.nih.gov/books/NBK207201/\">Key Ingredients for Successful Trauma-Informed Care</a></li>\r\n <li><a href=\"https://www.traumainformedcare.chcs.org/what-is-trauma-informed-care/\">Trauma-Informed Care Implementation Resource Center</a></li>\r\n\r\n </ul>\r\n </div>\r\n\r\n\r\n \r\n\r\n\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n\r\n\r\n </>,\r\n <>\r\n\r\n </>,\r\n\r\n <>\r\n Looking for Training for your Organization? See the <a href=\"https://dbhdid.ky.gov/documents/dbh/tic/Trauma-InfomedCareTrainersStatewideContactList.pdf\">list of Trauma-Informed Care Trainers.</a><br /><br />\r\n\r\n Want to become a Trauma-Informed Care Trainer? Contact <a href=\"mailto:brittanya.barber@ky.gov\">Brittany A. Barber</a>\r\n <br/>\r\n <br/>\r\n\r\n\r\n\r\n\r\n </>,\r\n // <>\r\n // Trauma-informed, healing-centered, resilience-oriented care shifts the paradigm from asking “'What's wrong with you?†to asking: “What happened to you?\" and “What’s strong with you?â€\r\n // </>,\r\n\r\n // <>Trauma can happen to individuals or to families, groups or communities.</>,\r\n\r\n // <>Trauma can happen to us directly; or we can experience trauma by seeing, reading or hearing about the trauma of other people </>\r\n // <>\r\n // d.\tLength of time we are impacted varies – some people have a short-term response, and resume their lives quickly; others feel the impact for many years, even the rest of their life; the impact can come and go – sometimes it is better or worse depending on levels of supports and stress, or things that remind us of the original trauma; there is no right or wrong\r\n\r\n\r\n\r\n // </>,\r\n // <>\r\n // e.\tExamples of the impact of trauma:\r\n // <UnorderedList items={[\r\n // \"i.\tVeteran \",\r\n // \"ii.\tChild who experienced natural disaster\",\r\n // \"iii.\tAdult who has a history of childhood trauma\",\r\n // \"iv.\tAdolescent with traumatic grief\",\r\n // \"v.\tExample of trauma from media: watching images of September 11, see images of war or police brutality, etc.\",\r\n // ]} />\r\n // </>,\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 41,\r\n content: <><b>Positive and Adverse Childhood Experiences: PCEs and ACEs</b></>\r\n },\r\n\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 42,\r\n content: [\r\n <>Adverse Childhood Experiences (ACEs) refer to many different types of traumatic events that can happen in childhood. Research shows that ACEs increase risk for a variety of health, behavioral health and social concerns throughout life. Learn more about <a href=\"https://www.cdc.gov/violenceprevention/aces/index.html\">ACEs</a> and about <a href=\"https://developingchild.harvard.edu/resources/aces-and-toxic-stress-frequently-asked-questions/\">ACEs and toxic stress</a>.</>,\r\n\r\n <><img style={{ maxWidth: \"100%\", textAlign: \"center !important\", overflow: \"hidden\" }} src={ACE} /></>,\r\n\r\n <>\r\n Research also demonstrates that Positive Childhood Experiences (PCEs) or protective factors, are powerful agents to reduce risk from childhood adversity. The building blocks of positive experiences can help us build resilience to heal from the negative effects of trauma and adversity.\r\n </>,\r\n\r\n <><img style={{ maxWidth: \"100%\", textAlign: \"center !important\", overflow: \"hidden\" }} src={PEC} /></>,\r\n\r\n <>\r\n Learn more about the building blocks for positive experiences <a href=\"https://positiveexperience.org/wp-content/uploads/2023/03/The-Four-Building-Blocks-of-HOPE.pdf\">here</a> and how positive childhood experiences build good adult mental health <a href=\"https://positiveexperience.org/wp-content/uploads/2020/03/BRFShandout2-18.pdf\">here.</a>\r\n\r\n </>\r\n ]\r\n },\r\n\r\n\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 50,\r\n content: <><b>If you or someone you know is impacted by trauma</b></>\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 60,\r\n content: [\r\n\r\n <><b>Promote Connection</b> - talk to someone you trust about how you are doing; <a href=\"https://988lifeline.org/?utm_campaign=Vibrant,988AwarenessQ1Q224&utm_source=Google&utm_medium=Search&gad_source=1 gclid=CjwKCAjwrIixBhBbEiwACEqDJXbC6I9nGOJAJnThICGoeIbVv_FCZsLRyRjKie8C5H4t55Fxpf5EWhoCDEoQAvD_BwE\">call or text 988</a> if you are worried about your own or someone else’s safety. </>,\r\n <><b>Support Safety</b> - make sure you or the person are physically safe; help others feel psychologically safe by promoting trust through honesty, listening, and just being there. After a natural disaster or loss, make sure basic needs (i.e. housing, food, clothing, transportation, communication) are met as quickly as possible.</>,\r\n <>\r\n <b>When should I seek support from a behavioral health professional?</b> You may want to seek a professional behavioral health provider (counselor, therapist, psychologist, etc.) if the effects of the trauma are getting in the way of daily functioning over a period of time. For example, if you or someone you know are experiencing nightmares or flashbacks, or can’t stop thinking about what happened; avoiding certain places, people or things; can’t concentrate because you’re always on the alert for something bad to happen; or having persistent negative thoughts or feelings. Learn about <a href=\"https://www.nimh.nih.gov/sites/default/files/documents/health/publications/post-traumatic-stress-disorder-ptsd/post-traumatic-stress-disorder_1.pdf\">PTSD</a> here.\r\n\r\n </>\r\n\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 70,\r\n content: <><b>Building Resilience</b></>\r\n },\r\n\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 80,\r\n content: [\r\n \"Resilience is “the process of adapting well in the face of adversity, trauma, tragedy, threats, or significant sources of stress—such as family and relationship problems, serious health problems, or workplace and financial stressors†(American Psychological Association). We can build resilience over time through:\",\r\n <><img style={{ maxWidth: \"100%\", textAlign: \"center !important\", overflow: \"hidden\" }} src={Resilience} /></>,\r\n\r\n <>Resilience is important for everyone, and can be nurtured at anytime in our life. Supporting resilience may be especially important for people exposed to trauma including veterans, persons facing medical concerns, persons living in new or unexpected situations, persons who have experienced natural disasters, persons experiencing traumatic loss, and persons in recovery. Learn about building resilience <a href=\"https://www.apa.org/topics/resilience/building-your-resilience\">here</a> and about building childhood resilience <a href=\"https://developingchild.harvard.edu/science/key-concepts/resilience/\">here.</a></>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 90,\r\n content: <><b>Trauma & Resilience in Early Childhood, Childhood & Adolescence</b></>\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 100,\r\n content: [\r\n <>\r\n\r\n Exposure to trauma in childhood can have lasting impact, however, exposure to positive childhood experiences (PCEs) can counter those effects. Learn more about how to prevent and respond to childhood trauma, and promote positive childhood experiences below.\r\n <br /><br />\r\n\r\n <Links linkTypeID=\"793\" />\r\n\r\n\r\n </>\r\n\r\n\r\n\r\n\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 110,\r\n content: <><b>Trauma & Resilience and Mental Health</b></>\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 120,\r\n content: [\r\n <>Research indicates high rates of a history of trauma exposure among people with mental health challenges. Although post-traumatic stress disorder (PTSD) is a diagnosis, it should be seen as a human reaction to an extraordinary experience, an attempt to survive. Sometimes symptoms of PTSD co-occur with other mental health concerns and it’s important to ensure that trauma is considered in developing a treatment plan and diagnosis. Learn more <a href=\"https://www.psychiatry.org/patients-families/ptsd/what-is-ptsd#:~:text=People%20with%20PTSD%20have%20intense,or%20estranged%20from%20other%20people.\">here.</a></>\r\n\r\n\r\n\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 130,\r\n content: \"Trauma & Resilience and Substance Use Disorder (SUD) \"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 140,\r\n content: [\r\n\r\n <>\r\n Trauma exposure and substance use are closely connected: persons in treatment for substance use disorder report high rates of exposure to trauma in their lives. For some, they may use substances as a means of coping with the effects of their traumatic experiences. For others, their substance use may increase risk for experiencing trauma. The link between SUD and trauma is true for youth and adults; co-occurring treatment to address both traumatic stress and substance use is recommended. Learn more about <a href=\"https://istss.org/public-resources/friday-fast-facts/substance-use-and-traumatic-stress\">Substance Use and Traumatic Stress</a> and about <a href=\"https://www.nctsn.org/sites/default/files/resources/making_the_connection_trauma_substance_abuse.pdf\">Making the Connection: Trauma and Substance Abuse</a> in families.\r\n </>\r\n\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 150,\r\n content: [\r\n \"Trauma & Resilience and Intellectual and Developmental Disabilities \"\r\n ],\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 160,\r\n content: [\r\n\r\n <>\r\n Persons with developmental and intellectual disabilities may be at increased risk for experiencing some types of trauma, and for having significant effects across the lifespan. Research indicates that people with developmental and intellectual disabilities who have experienced trauma may not receive needed services to address their traumatic stress. See these resources about <a href=\"https://www.nctsn.org/what-child-trauma-populations-risk-intellectual-and-developmental-disabilities/nctsn-resources\">Trauma and Children with Intellectual and Developmental Disabilities</a> and these <a href=\"https://vkc.vumc.org/assets/files/tipsheets/traumatips.pdf\">Tips and Resources on Trauma and Individuals with Intellectual and Developmental Disabilities</a>.There are also many resources and trainings available at the <a href=\"https://www.mhddcenter.org/\">Mental Health and Developmental Disabilities National Training Center</a>.\r\n </>\r\n\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 170,\r\n content: <><b>Trauma & Resilience at Work</b></>,\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 180,\r\n content: [\r\n\r\n <>\r\n\r\n Many jobs put workers in contact with trauma, either directly (e.g. first responders, disaster responders) or by working with people who have experienced trauma (health care providers, behavioral health providers, educators, other helping professionals). It’s important to recognize when this exposure to trauma in the workplace may negatively impact professional well-being. And, it’s important to know strategies that can help prevent, or reduce the effect of burnout, compassion fatigue, vicarious traumatization and secondary traumatic stress. Learn more about how to recognize, prevent and manage stress from work at <a href=\"https://ctac.uky.edu/projects-and-programs/wellwork\">Well@Work</a>. You can learn about professional well-being from this <a href=\"https://youtube.com/playlist?list=PLRXrSMzWu9rGbMMzjKNVcO3T144pbkLYA&feature=shared\">video series</a>.\r\n\r\n\r\n </>,\r\n\r\n <>\r\n <i>\r\n For more information about trauma and resilience, contact: <br />\r\n <b><a href=\"mailto:brittanya.barber@ky.gov\">Brittany A. Barber</a></b> <br />\r\n Program Administrator for Trauma-Informed Care <br />\r\n Department for Behavioral Health, Developmental and Intellectual Disabilities <br />\r\n <br />\r\n </i>\r\n </>\r\n\r\n\r\n\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 190,\r\n content: [\r\n \"Additional Links \"\r\n ],\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 200,\r\n content: <><Links linkTypeID=\"794\" /></>\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 210,\r\n content: [\r\n \"Kentucky Resources\"\r\n ],\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 220,\r\n content: <><Links linkTypeID=\"798\" /></>\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n];\r\n\r\nexport default traumaAndResilience_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport { Link } from \"react-router-dom\";\r\nimport Links from \"../../../components/Links\";\r\nimport UnorderedList from \"../../../layouts/bodyLayouts/helpers/UnorderedList\";\r\n\r\n\r\n\r\nconst dHHS_Content = [\r\n \r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"Welcome\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n \"Do you need information on mental health services for individuals who are deaf or hard of hearing? Substance use treatment? Services for a person with a developmental or intellectual disability? We can help!\",\r\n \"Three community mental health center (CMHC) regions in Kentucky have specialized Deaf Mental Health Services. Access the links below for more information.\",\r\n <Links linkTypeID={759} />,\r\n \"Below is a list of the CMHCs. To access more specific information, click on the CMHC's name to access its individual website\",\r\n <Links linkTypeID={765} />,\r\n \"Psychiatric care is available through qualified interpreters. Access the 'Psychiatric Care' link in the Related Links box for a video explaining psychiatric care.\",\r\n \"Each CMHC also has DHHS contacts. Their job is to help make sure interpreters are provided and services are accessible. Use the 'CMHC Contacts' link the Related Links box for a list of contacts.\",\r\n \r\n\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"DHHS Information for Individuals with Developmental and Other Intellectual Disabilities\"\r\n },\r\n {\r\n format:bodyHelperTypes.paragraphs,\r\n order: 40,\r\n content: [\r\n \"Below are links to information for individuals with developmental and other intellectual disabilities. Click on a link for more information.\",\r\n <><Links linkTypeID={764}/></>\r\n\r\n ]\r\n }\r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n];\r\n\r\nexport default dHHS_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport { Link } from \"react-router-dom\";\r\nimport Links from \"../../../components/Links\";\r\nimport UnorderedList from \"../../../layouts/bodyLayouts/helpers/UnorderedList\";\r\n\r\n\r\n\r\nconst adultSA_Content = [\r\n \r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"About Us\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n \"The Adult Substance Use Treatment and Recovery Services Branch oversees state and federal funds that support community-based providers, such as the 14 Community Mental Health Centers (CMHCs) to deliver substance use disorder (SUD) treatment and recovery support services statewide.\",\r\n \"In addition, the branch supports several specialty programs that focus on key populations, coordinates efforts to build a recovery-oriented system of care across the lifespan, and provides guidance and technical assistance on the implementation of evidence-based practices.\"\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"Program Areas\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 40,\r\n content: <><Links linkTypeID=\"217\"/></>\r\n },\r\n \r\n\r\n\r\n];\r\n\r\nexport default adultSA_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\n\r\n\r\n\r\n\r\nconst coocurring_Content = [\r\n \r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n \"According to the Substance Abuse and Mental Health Services Administration (SAMHSA), the coexistence of both a mental health and a substance use disorder is referred to as co-occurring disorders. Co-occurring disorders exist when an individual has at least one mental disorder accompanied by an substance use disorder.\",\r\n \"People with co-occurring disorders are best served through integrated treatment. With integrated treatment, practitioners can address mental health, and substance use disorders at the same time, often lowering costs and creating better outcomes.\",\r\n \"Increasing awareness and building capacity in service systems are important in helping identify and treat co-occurring disorders. Early detection and treatment can improve treatment outcomes and the quality of life for those who need these services (SAMHSA)..\"\r\n ]\r\n },\r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n];\r\n\r\nexport default coocurring_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport { Link } from \"react-router-dom\";\r\nimport Links from \"../../../components/Links\";\r\nimport UnorderedList from \"../../../layouts/bodyLayouts/helpers/UnorderedList\";\r\n\r\n\r\n\r\nconst adultMHCJI_Content = [\r\n \r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"Criminal Justice Interface\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n <>In July 2004, Kentucky recognized the importance of keeping individuals who have a mental illness out of the criminal justice system by passing the \"Decriminalization of mental illness\" regulation (908 KAR 2:090). This regulation mandated that those who are mentally ill are not be subject to detention while awaiting a mental health evaluation for an involuntary hospitalization (KRS 202A).</>,\r\n \"The Department for Behavioral Health, Developmental and Intellectual Disabilities has continued to emphasize collaboration with the criminal justice system to identify—and when possible divert—those who with mental illness from detention centers and into treatment.\",\r\n \"The Department maintains several programs that seek to identify, divert and treat those who have a mental illness at different levels of the criminal justice system. These programs are described below.\"\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"Crisis Intervention Teams (CIT)\"\r\n \r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order:40,\r\n content:\"Created by legislation in June 2007, this program a 40-hour in-service training for police officers. The training is offered 10 times per year around the state and is a Kentucky Law Enforcement Counsel (KLEC)-approved training helps law enforcement identify and support persons in a mental health crisis.\"\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order:50,\r\n content:\"Behavioral Health Jail Triage System\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order:60,\r\n content:\"Created by legislation in June 2007, this system provides telephonic behavioral health screening for prisoners who exhibit signs of mental illness. The assessment is designed to address protocols for housing, supervision, and treatment to help mitigate the mental health risks identified by the system. This system is available for use by all county detention centers.\"\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order:70,\r\n content:\"Reintegration\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order:80,\r\n content:\"This program is housed at the Kentucky State Reformatory prison in LaGrange, Kentucky. It is designed to assist individuals with mental illnesses in transitioning back to the community from prison. Staffed by two case managers and a peer support specialist, the program begins working with individuals months before release to ensure that they have housing, treatment appointments, benefits, and other community supports in place before being released from prison.\"\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order:90,\r\n content:\"Forensic Assertive Community Treatment (FACT)\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order:100,\r\n content:\"This program was created in 2016 and provides wrap-around services in the community to keep individuals who have a mental illness thriving in the community. Much like a traditional Assertive Community Treatment (ACT) team, the FACT team's primary focus is persons who have a severe mental illness and frequent contact with the criminal justice system. Currently this program is operated in Louisville by Centerstone.\"\r\n }\r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n];\r\n\r\nexport default adultMHCJI_Content;","//Using the react library\r\nimport React from \"react\";\r\n//Using the react library:\r\nimport { useEffect, useState } from \"react\";\r\n//API Middle man\r\nimport useApi from \"../utils/UseAPI\";\r\n// React loading spinner\r\nimport Spinner from 'react-bootstrap/Spinner';\r\n\r\nfunction JCICList() {\r\n\r\n const { error, processing, getRequest } = useApi();\r\n const [contentCounties, setContentCounties] = useState([]);\r\n const [selected, setSelected] = useState(null);\r\n\r\n useEffect(() => {\r\n const fetchLinks = async () => {\r\n const [data, status] = await getRequest(null, \"cmhc/documents\");\r\n if (status == 200) {\r\n setContentCounties(data.data)\r\n // console.log(data.data)\r\n }\r\n else {\r\n console.log(error)\r\n }\r\n };\r\n fetchLinks();\r\n }, []);\r\n\r\n return (\r\n <>\r\n <div className=\"col-md-4 col-md-3\">\r\n {/* Return List */}\r\n <select className=\"form-select\" onChange={(e) => {\r\n // console.log(e.target.value);\r\n // console.log(contentCounties);\r\n const c = contentCounties?.find((x) => x.id == e.target.value)\r\n\r\n setSelected(c)\r\n // console.log(selected)\r\n }}>\r\n <option>Select a meeting date </option>\r\n {\r\n processing ? <Spinner animation=\"border\" variant=\"success\" /> : contentCounties.map((data, index) => {\r\n return (\r\n <option key={index} value={data.id} className=\"form-select\"\r\n >{data.description}</option>\r\n )\r\n })\r\n }\r\n </select>\r\n\r\n </div>\r\n {selected ?\r\n <>\r\n\r\n <b>Counties Served: </b> {selected.counties.map((data) => {\r\n return (\r\n <div>\r\n {data.name}\r\n </div>\r\n )\r\n })\r\n }\r\n <br />\r\n <a href={selected.web}>Center Website</a>\r\n <br />\r\n <br />\r\n {selected.contacts.map((data) => {\r\n return (\r\n <div>\r\n <b>{data.title}</b><br />\r\n {data.name}<br />\r\n {data.address1}<br />\r\n {data.city}, {data.state} {data.zip}<br />\r\n Phone: {data.phone}\r\n <br />\r\n <br />\r\n </div>\r\n )\r\n })\r\n }\r\n\r\n </>\r\n\r\n\r\n\r\n : null}\r\n </>\r\n\r\n );\r\n}\r\n\r\nexport default JCICList;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport UnorderedList from \"../../../layouts/bodyLayouts/helpers/UnorderedList\";\r\n\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst eBPIInterviewing = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"Motivational Interviewing\"\r\n\r\n\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n \"Motivational Interviewing (MI) is a person-centered, goal-directed method for engagement and enhancing intrinsic motivation to change behavior by exploring and resolving ambivalence. Resolving ambivalence will increase an individual's engagement in treatment and enhance his or her ability to stay and complete treatment and to sustain the changes.\",\r\n \"Motivational Interviewing is not a technique or a set of techniques that is applied to people; rather, it is an interpersonal style, not at all restricted to formal counseling settings.\",\r\n \"The clinician practices motivational interviewing with five general principles in mind:\",\r\n <><UnorderedList items={[\r\n \"Express empathy through reflective listening.\",\r\n \"Develop discrepancy between clients' goals or values and their current behavior.\",\r\n \"Avoid argument and direct confrontation.\",\r\n \"Adjust to client resistance rather than opposing it directly.\",\r\n \"Support self-efficacy and optimism.\"\r\n ]} /></>,\r\n \"Motivational Interviewing is a complex, advanced skill that requires consistent personal monitoring to remain faithful to the model.\",\r\n \"Use the Contact Information to obtain further information.\"\r\n ]\r\n\r\n\r\n\r\n },\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"Links\"\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 40,\r\n content: <Links linkTypeID=\"165\" />\r\n\r\n },\r\n\r\n\r\n];\r\n\r\nexport default eBPIInterviewing;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport JCICList from \"../../../components/JCICList\";\r\n\r\n\r\n\r\nconst jCIC_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"Purpose\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n <>\r\n <ol>\r\n <li>The primary purpose of this committee is to serve Kentuckians who need public mental health, intellectual disability or substance abuse services.</li>\r\n <li>Access, continuity and effectiveness must be continuously improved, to provide the most valuable public mental health, intellectual disability and substance abuse services.</li>\r\n <li>Timely, accurate and actionable information is essential for appropriate management.</li>\r\n </ol>\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"Mission\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 40,\r\n content: [\r\n \"Through regular collaborative discussions, the Joint Committee makes recommendations that ensure the appropriateness and improve the value of information available to:\",\r\n <>\r\n <ul>\r\n <li>Agencies serving consumers of public mental health, intellectual disability or substance abuse services in Kentucky.</li>\r\n <li>Consumers and family members.</li>\r\n <li>State and federal agencies.</li>\r\n <li>Accrediting organizations.</li>\r\n <li>Citizens of the commonwealth.</li>\r\n </ul>\r\n </>,\r\n \"The committee gives the highest regard to the confidential and sensitive nature of the information with which it is concerned.\"\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 50,\r\n content: [\r\n \"The committee makes policy recommendations concerning information management to the department's Executive Management Team. These recommendations are related to issues affecting the operation of both the department and the Community Mental Health Centers (CMHCs).\",\r\n \"The committee facilitates the development of data-related contract items between the department and CMHCs. A central function of the committee is to provide direction and assistance in the development of an information system to manage a public behavioral health system.\"\r\n \r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 60,\r\n content: \"Membership\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 70,\r\n content: <><b>Zara Bullock</b>, Chair/Facilitator, DBHDID, Division of Behavioral Health\r\n Director and Representatives, Division of Administration and Financial Management\r\n Director and Representatives, Division of Behavioral Health\r\n Director and Representatives, Division of Developmental and Intellectual Disabilities\r\n A representative from each Community Mental Health Center\r\n Representatives from UK Research and Data Management Center</>\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 80,\r\n content: \"JCIC Meeting Minutes\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 90,\r\n content: <><JCICList /></>\r\n },\r\n\r\n\r\n\r\n\r\n\r\n\r\n];\r\n\r\nexport default jCIC_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport UnorderedList from \"../../../layouts/bodyLayouts/helpers/UnorderedList\";\r\nimport PESLogo from \"../../../assets/img/sud/PESLogo.png\"\r\nimport Picture from \"../../../layouts/bodyLayouts/helpers/Picture\";\r\nimport Links from \"../../../components/Links\";\r\nimport OrderedList from \"../../../layouts/bodyLayouts/helpers/OrderedList\";\r\n\r\nconst eBPINiatx = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"NIATx\"\r\n\r\n\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n \"NIATx, formerly The Network for the Improvement of Addiction Treatment, is a partnership between the Robert Wood Johnson Foundation's Paths to Recovery program, the Center for Substance Abuse Treatment's Strengthening Treatment Access and Retention (STAR) program, the National Institute on Drug Abuse, and a number of independent addiction treatment organizations.\",\r\n \"NIATx works with addiction treatment providers to make more efficient use of their capacity and shares strategies for improving treatment access and retention.\",\r\n \"The Division of Behavioral Health (DBH) is working collaboratively with the University of Wisconsin–Madison's Center for Health Enhancement Systems Studies, where the national NIATx technical assistance center is located, to promote the use of the NIATx model as a performance improvement strategy within Kentucky's public substance abuse and mental health service system.\",\r\n \"The model is based on evidence-based practices in process improvement gleaned from a variety of fields, including engineering, business and social services. It is understood that improving access to and retention in treatment can lead to better client outcomes.\",\r\n \"DBH is promoting the use of NIATx as a practice improvement tool because it has been shown to lead to increased client satisfaction and substantial change. The four aims of NIATx are to:\",\r\n\r\n <><UnorderedList items={[\r\n \"Reduce waiting time.\",\r\n \"Reduce no-shows\",\r\n \"Increase admissions.\",\r\n \"Increase continuation.\"\r\n ]} /></>, \r\n \"The NIATx model is based on five key principles:\",\r\n\r\n <><OrderedList items={[\r\n \"Understand and involve the customer.\",\r\n \"Fix key problems that keep the CEO awake at night.\",\r\n \"Pick a powerful change leader.\",\r\n \"Get ideas from outside the organization or field.\",\r\n \"Use rapid-cycle testing to establish effective changes.\"\r\n ]} /></>,\r\n\r\n \"Use the Contact Information to obtain materials and further information.\"\r\n ]\r\n\r\n\r\n\r\n },\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order:30,\r\n content: <><Links linkTypeID=\"169\"/></>\r\n }\r\n \r\n\r\n\r\n];\r\n\r\nexport default eBPINiatx;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport UnorderedList from \"../../../layouts/bodyLayouts/helpers/UnorderedList\";\r\nimport PESLogo from \"../../../assets/img/sud/PESLogo.png\"\r\nimport Picture from \"../../../layouts/bodyLayouts/helpers/Picture\";\r\n\r\nconst ResourcesContent = [\r\n \r\n // {\r\n // format: bodyHelperTypes.image,\r\n // order: 20,\r\n // content: PESLogo\r\n\r\n \r\n\r\n // },\r\n\r\n \r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"Parent Resources:\"\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.links,\r\n order: 20,\r\n content: \"783\"\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"Opioid:\"\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.links,\r\n order: 40,\r\n content: \"784\"\r\n\r\n },\r\n \r\n ];\r\n\r\n export default ResourcesContent;","import React, { useState, useEffect } from 'react';\r\nimport useApi from '../utils/UseAPI';\r\n// import dataDates from \"../data/data.json\";\r\n// React loading spinner\r\nimport Spinner from 'react-bootstrap/Spinner';\r\n\r\n\r\nconst WIDScrollDown = () => {\r\n\r\n // const [selected, setSelected] = useState(null);\r\n const [content, setContent] = useState([]);\r\n const { processing, error, getRequest } = useApi();\r\n const [selected, setSelected] = useState(null);\r\n\r\n useEffect(() => {\r\n const fetchLinks = async () => {\r\n const [data, status] = await getRequest(null, \"link/792\");\r\n if (status == 200) {\r\n setContent(data.data.sort((a, b) => a.sort - b.sort));\r\n // console.log(content)\r\n }\r\n else {\r\n console.log(error);\r\n }\r\n };\r\n fetchLinks();\r\n }, []);\r\n return (\r\n <>\r\n <div title='Select a date' className=\"col-md-4 col-md-3\">\r\n {/* Return List */}\r\n <select className=\"form-select\" onChange={(e) => {\r\n // console.log(e.target.value);\r\n const c = content?.find((x) => x.url === e.target.value)\r\n // window.location = e.target.value;\r\n setSelected(c)\r\n // console.log(selected)\r\n }}>\r\n <option>Select a date</option>\r\n {\r\n processing ? <Spinner animation=\"border\" variant=\"success\" /> : content.map((data, index) => {\r\n return (\r\n <option key={index} value={data.url} className=\"form-select\"\r\n >{data.text}</option>\r\n )\r\n })\r\n }\r\n </select>\r\n\r\n </div>\r\n {selected ? <>\r\n <br />\r\n\r\n <a href={selected.url}>Recording</a><br/><br/>\r\n\r\n <b><u>General Information</u></b><br/><br/>\r\n\r\n <b>Understanding Workforce Needs</b> <br/><br/>\r\n\r\n <b>Increasing the Supply of Professionals</b> <br/> <br/>\r\n\r\n <b>Expanding the Reach of Existing Professionals</b> <br/> <br/>\r\n\r\n\r\n <b>Addressing the Distribution of Professionals</b> <br/> <br/>\r\n\r\n <b>Retaining High Quality Professionals</b> <br/> <br/>\r\n\r\n\r\n <b>Redesign the BHDID Workforce for the Future</b> <br/> <br/>\r\n\r\n \r\n <br/>\r\n </> : null}\r\n </>\r\n )\r\n};\r\n\r\nexport default WIDScrollDown;\r\n","import React from \"react\";\r\nimport bodyHelperTypes from \"../../utils/BodyHelperTypes\";\r\n// import { Link } from \"react-router-dom\";\r\n// import Links from \"../../components/Links\";\r\n// import UnorderedList from \"../../layouts/bodyLayouts/helpers/UnorderedList\";\r\nimport KYWIDStrategicFramework from \"../../assets/img/KYWIDStrategicFrameworkjpg.jpg\"\r\nimport WIDScrollDown from \"../../components/WIDScrollDown\";\r\nimport Links from \"../../components/Links\";\r\n\r\n\r\n\r\nconst wID_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 10,\r\n content: \"Workforce Innovation & Development (WID) Collaborative is an open forum through which new and promising approaches to behavioral health, developmental and intellectual disabilities workforce challenges and opportunities can be designed, implemented and evaluated and existing strategies can be adapted and improved.\"\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 20,\r\n content: \"About the WID Collaborative\"\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 30,\r\n content: [\r\n <>\r\n <b>Vision:</b><br />\r\n <b>Vision</b> of WID Collaborative is that the Kentucky behavioral health, developmental, and intellectual disabilities sectors will collaborate to explore, design, implement, and evaluate workforce practices that support service delivery that promotes the health, safety, and wellbeing of all Kentuckians.\r\n </>\r\n ,\r\n <>\r\n <b>Mission:</b><br />\r\n The <b>mission</b> of WID Collaborative is to establish an <b>open, participatory, and productive</b> collaborative that enables the review, design, implementation, and evaluation of policies and practices intended to improve recruitment, advancement, retention, performance and satisfaction of the behavioral health, developmental and intellectual disabilities workforce. The Collaborative will employ strategies to promote effective and efficient <b>brainstorming, coordination</b> and <b>communication</b> among key implementers as well as <b>alignment</b> with related initiatives.\r\n </>\r\n ,\r\n <>\r\n <b>Goal:</b><br />\r\n The overarching <b>goal</b> of WID is to <b>increase access to quality care by strengthening capacity of the behavioral health and intellectual and developmental disabilities workforce.</b>\r\n </>,\r\n\r\n <>\r\n <b>Framework:</b><br />\r\n <br />\r\n <img style={{ maxWidth: \"100%\", textAlign: \"center !important\", overflow: \"hidden\", }} src={KYWIDStrategicFramework} />\r\n\r\n\r\n </>,\r\n\r\n <>\r\n <span style={{ textAlign: \"center\" }}>\r\n\r\n <b>\r\n JOIN THE WID COLLABORATIVE TODAY! <br /> <br />\r\n Our meetings are open to all who register. <br />\r\n Please email <a href=\"mailto:vivian.pleasant@ky.gov\">vivian.pleasant@ky.gov</a> if you would like to be invited to all WID meetings.\r\n <br />\r\n\r\n Response tab for email addresses – on bottom of every page\r\n\r\n </b>\r\n <br /><br />\r\n\r\n\r\n\r\n </span>\r\n\r\n </>\r\n ]\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 40,\r\n content: \"Meetings and Events\"\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 41,\r\n content: [\r\n \"Thank you for your interest and participation in the KY Department for Behavioral Health, Developmental and Intellectual Disabilities’ Workforce Innovation and Development (WID) Collaborative. Session recordings and meeting materials can be found via the below calendar link.\",\r\n // \"Our next WID Collaborative session will take place on Wednesday, July 10th from 1 to 2:30 PM EDT. \",\r\n <>Contact KDBHDID Executive Advisor Dr. Tena Robbins, <a href=\"mailto:Vestena.Robbins@ky.gov\">Vestena.Robbins@ky.gov</a>, and Workforce Consultant Beth Kuhn, <a href=\"mailto:elizrkuhn@gmail.com\">elizrkuhn@gmail.com</a>, for more information and see below for past meeting materials and recordings.</>\r\n ]\r\n\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 42,\r\n content: \"Meeting Recordings\"\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 50,\r\n content: [\r\n\r\n <>\r\n <WIDScrollDown />\r\n <br />\r\n </>,\r\n\r\n ]\r\n\r\n },\r\n // {\r\n // format: bodyHelperTypes.title,\r\n // order: 60,\r\n // content: \"General Information\"\r\n\r\n // },\r\n // {\r\n // format: bodyHelperTypes.paragraphs,\r\n // order: 70,\r\n // content: [\r\n // <>\r\n // <br/>\r\n // <b>Understanding Workforce Needs</b>\r\n\r\n // <Links linkTypeID={805} />\r\n // </>,\r\n // <><b>Increasing the Supply of Professionals</b>\r\n\r\n // <Links linkTypeID={806} />\r\n // </>,\r\n // <><b>Expanding the Reach of Existing Professionals</b>\r\n\r\n // <Links linkTypeID={807} />\r\n // </>,\r\n // <><b>Addressing the Distribution of Professionals</b>\r\n\r\n // <Links linkTypeID={808} />\r\n // </>,\r\n // <><b>Retaining High Quality Professionals</b>\r\n\r\n // <Links linkTypeID={809} />\r\n // </>,\r\n // <><b>Redesign the BHDID Workforce for the Future</b>\r\n\r\n // <Links linkTypeID={810} />\r\n // </>\r\n\r\n\r\n // ]\r\n\r\n // }\r\n\r\n\r\n\r\n\r\n];\r\n\r\nexport default wID_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport UnorderedList from \"../../../layouts/bodyLayouts/helpers/UnorderedList\";\r\nimport OrderedList from \"../../../layouts/bodyLayouts/helpers/OrderedList\";\r\nimport Links from \"../../../components/Links\";\r\n\r\n\r\nconst EvidenceBasedInitiativesContent = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"Motivational Interviewing\"\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n \"Motivational Interviewing (MI) is a person-centered, goal-directed method for engagement and enhancing intrinsic motivation to change behavior by exploring and resolving ambivalence. Resolving ambivalence will increase an individual's engagement in treatment and enhance his or her ability to stay and complete treatment and to sustain the changes.\",\r\n \"Motivational Interviewing is not a technique or a set of techniques that is applied to people; rather, it is an interpersonal style, not at all restricted to formal counseling settings.\",\r\n \"The clinician practices motivational interviewing with five general principles in mind:\",\r\n <UnorderedList items={[\r\n \"Express empathy through reflective listening.\",\r\n \"Develop discrepancy between clients' goals or values and their current behavior.\",\r\n \"Avoid argument and direct confrontation.\",\r\n \"Adjust to client resistance rather than opposing it directly.\",\r\n \"Support self-efficacy and optimism.\"\r\n ]} />,\r\n \"Motivational Interviewing is a complex, advanced skill that requires consistent personal monitoring to remain faithful to the model.\",\r\n \"Use the Contact Information to obtain further information.\"\r\n ]\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"Recovery and Peer Support\"\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 40,\r\n content: [\r\n <>Recovery <br /><br />\r\n\r\n Recovery from mental illness is not only possible but expected. The President's New Freedom Commission Report (2003) envisioned \"a future when everyone with a mental illness will recover, a future when mental illnesses can be prevented or cured, a future when mental illnesses are detected early, and a future when everyone with a mental illness at any stage of life has access to effective treatment and supports—essentials for living, working, learning, and participating fully in the community.\"\r\n\r\n\r\n\r\n </>,\r\n\r\n <><b>Defining \"Recovery\"</b><br /><br />\r\n In August 2010, a group of leaders in the behavioral health field, including people in recovery from mental illness and substance use disorders, met with the national agency called the Substance Abuse Mental Health Services Administration (SAMHSA). The team worked together to develop a working definition of recovery that would apply to both mental health and substance use populations. The team developed the following definition for recovery:\r\n </>,\r\n\r\n <>\r\n A process of change through which individuals improve their health and wellness, live a self-directed life, and\r\n </>,\r\n\r\n <>\r\n The team identified for dimensions that support recovery:\r\n <br />\r\n <br />\r\n\r\n <UnorderedList items={[\r\n \"Health\",\r\n \"Home\",\r\n \"Purpose\",\r\n \"Community\"\r\n ]} />\r\n </>,\r\n\r\n <>\r\n\r\n The team also identified ten Principles of Recovery:\r\n\r\n <br />\r\n <br />\r\n\r\n <ol>\r\n <li>Recovery emerges from hope.</li>\r\n <li>Recovery is person-driven.</li>\r\n <li>Recovery occurs via many pathways.</li>\r\n <li>Recovery is holistic.</li>\r\n <li>Recovery is supported by peers and allies.</li>\r\n <li>Recovery is supported through relationship and social networks.</li>\r\n <li>Recovery is culturally-based and influenced.</li>\r\n <li>Recovery is supported by addressing trauma.</li>\r\n <li>Recovery involves individual, famiy, and community strengths, and responsibility.</li>\r\n <li>Recovery is based on respect.</li>\r\n </ol>\r\n\r\n\r\n </>,\r\n\r\n <>Click \"SAMHSA Recovery\" in the Related Links box to find more about the four dimensions and the ten Principles of Recovery.</>\r\n\r\n\r\n\r\n\r\n ]\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 50,\r\n content: \"Peer Support\"\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 60,\r\n content: [\r\n \"The President's New Freedom Commission Report (2003) also outlines a plan to transform mental health care in America to promote a recovery-oriented service system. Peer support is an important element in this transformation process. The Peer Specialist Service is a structured and scheduled therapeutic activity with an individual client or group, provided by a trained, self-identified consumer of mental health services. A Peer Specialist guides clients toward the identification and achievement of specific goals defined by the client and specified in the Treatment Plan.\",\r\n <><b>How to Become a Peer Support Specialist</b> <br /><br />\r\n To become qualified, a Kentucky Peer Specialist (KPS) completes 30 hours of training and passes both a written and oral test. The job of a KPS is not to replace current clinical mental health staff but to offer additional and/or alternative options to help people in their efforts to recover.\r\n </>,\r\n \"Regular supervision is required and each qualified Kentucky Peer Specialist must earn at least 6 hours of continuing education each year. To locate a training event in Kentucky, access the following links by the type of Peer Specialist.\",\r\n\r\n <Links linkTypeID=\"787\" />,\r\n\r\n <>\r\n <b>How to Become a Trainer for Peer Support Curricula</b><br /><br />\r\n\r\n The Division of Mental Health (DMH) supports consumer-driven recovery-oriented services. DMH approves training curricula for providers that request to become trainers for the Peer Specialist types listed above. For more information on how to become a trainer, access the \"Curriculum Approval Process for PSS\" link in Related Links.\r\n </>,\r\n <>\r\n <b>For More Information</b><br/><br/>\r\n The Kentucky regulation for adult peer support is 908 KAR 2:220 (see Related Links). For additional information about this service and the required training and supervision requirements, access \"Curriculum Approval Process for PSS\" in Related Links.\r\n </>\r\n ]\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 70,\r\n content: \"NIATx\"\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 80,\r\n content: [\r\n \"NIATx, formerly The Network for the Improvement of Addiction Treatment, is a partnership between the Robert Wood Johnson Foundation's Paths to Recovery program, the Center for Substance Abuse Treatment's Strengthening Treatment Access and Retention (STAR) program, the National Institute on Drug Abuse, and a number of independent addiction treatment organizations.\",\r\n \"NIATx works with addiction treatment providers to make more efficient use of their capacity and shares strategies for improving treatment access and retention.\",\r\n \"The Division of Behavioral Health (DBH) is working collaboratively with the University of Wisconsin–Madison's Center for Health Enhancement Systems Studies, where the national NIATx technical assistance center is located, to promote the use of the NIATx model as a performance improvement strategy within Kentucky's public substance abuse and mental health service system.\",\r\n \"The model is based on evidence-based practices in process improvement gleaned from a variety of fields, including engineering, business and social services. It is understood that improving access to and retention in treatment can lead to better client outcomes.\",\r\n \"DBH is promoting the use of NIATx as a practice improvement tool because it has been shown to lead to increased client satisfaction and substantial change. The four aims of NIATx are to:\",\r\n\r\n <><UnorderedList items={[\r\n \"Reduce waiting time.\",\r\n \"Reduce no-shows\",\r\n \"Increase admissions.\",\r\n \"Increase continuation.\"\r\n ]} /></>, \r\n \"The NIATx model is based on five key principles:\",\r\n\r\n <><OrderedList items={[\r\n \"Understand and involve the customer.\",\r\n \"Fix key problems that keep the CEO awake at night.\",\r\n \"Pick a powerful change leader.\",\r\n \"Get ideas from outside the organization or field.\",\r\n \"Use rapid-cycle testing to establish effective changes.\"\r\n ]} /></>,\r\n\r\n \"Use the Contact Information to obtain materials and further information.\",\r\n\r\n <Links linkTypeID=\"788\" />\r\n ]\r\n\r\n },\r\n\r\n\r\n];\r\n\r\nexport default EvidenceBasedInitiativesContent;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport UnorderedList from \"../../../layouts/bodyLayouts/helpers/UnorderedList\";\r\nimport ContinuumOfCare from \"../../../assets/img/sud/ContinuumOfCare.png\"\r\nimport { Link } from \"react-router-dom\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst TrustContent = [\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n \"The Substance Use Prevention & Promotion Branch of the Division of Substance Use Disorder, along with its partners, the Tobacco Prevention and Cessation Program of the Department for Public Health and the Department of Alcoholic Beverage Control, have developed a Tobacco Retailer Education Program called Tobacco Retailer Underage Sales Training (TRUST).\",\r\n \"Unlike other tobacco retailer training programs, TRUST is offered free of charge in an online training format. TRUST includes information specific to Kentucky, as well as the Food and Drug Administration (FDA) federal tobacco laws. According to FDA guidance documents, having store employees trained through a program such as TRUST that follows FDA training guidelines could reduce fines to store owners if they were found in violation of federal tobacco laws.\",\r\n 'For copies of the TRUST brochure, click the \"TRUST Brochure\" link or the contact shown in in the Contact Information box to request by email'\r\n ]\r\n\r\n },\r\n\r\n \r\n\r\n\r\n \r\n];\r\n\r\nexport default TrustContent;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst CBHTContent = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"Overview\"\r\n\r\n\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n \"Behavioral health is everyone's business.\",\r\n \"The Kentucky Department for Behavioral Health, Developmental and Intellectual Disabilities (DBHDID) is excited to offer a selection of training opportunities aimed at educating communities about how to assist anyone who may be experiencing a behavioral health crisis.\"\r\n\r\n\r\n\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"Description\"\r\n\r\n\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 50,\r\n content: [\r\n\r\n \"DBHDID, through legislative action (908 KAR 2:270), has established the Community Behavioral Health Training Program. When more individuals in the community gain knowledge of mental health and substance use disorders and acquire the skills to offer immediate assistance, this increases the likelihood that persons who are experiencing behavioral health challenges will be identified and connected to appropriate services. Access 908 KAR 2:270 through its link in the Related Links box.\",\r\n \"In 2019, Kentucky saw overdose deaths increase by 5 percent from the previous year, from 1,247 to 1,316. (Kentucky Office of Drug Control Policy, 2020). During the same year, 756 individuals died by suicide in the Commonwealth (CDC, 2021).\",\r\n \"Many more Kentuckians are dealing with mental health or substance use challenges daily and are at risk of overdose and suicide. DBHDID continually seeks to increase access to appropriate behavioral health services, and it takes the help of all citizens in the community to aid in identifying individuals and families who may be struggling with these issues.\"\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 60,\r\n content: \"Training Opportunities\"\r\n\r\n\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 70,\r\n content: [\r\n\r\n 'In an effort to increase the knowledge and skills of community members to be able to assist others, DBHDID offers a variety of evidence-based behavioral health training opportunities, including \"Question, Persuade, and Refer (QPR),\" \"Mental Health First Aid (MHFA),\" and \"Applied Suicide Intervention Skills Training (ASIST).\"',\r\n 'If you would like to be added to the email list to receive information about training that is offered, please access the \"Email List\" link in the Related Links box and provide the necessary contact information.',\r\n \"For additional information on these training opportunities, please visit these websites:\",\r\n <><Links linkTypeID=\"757\" /></>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 80,\r\n content: \"Resources\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 90,\r\n content: [\r\n\r\n \"If you or someone you know is experiencing challenges related to mental health and/or substance use, please reach out using the following resources:\",\r\n <><Links linkTypeID=\"758\" /></>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 100,\r\n content: \"DBHDID Commitment\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 110,\r\n content: [\r\n \"DBHDID is committed to increasing everyone's awareness of how to assist those in need of services and supports to overcome behavioral health challenges. Thank you for being part of the solution!\" \r\n ]\r\n },\r\n\r\n];\r\n\r\nexport default CBHTContent;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport UnorderedList from \"../../../layouts/bodyLayouts/helpers/UnorderedList\";\r\n\r\n\r\nconst BHPACContent = [\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n \"The Kentucky Behavioral Health Planning and Advisory Council is seeking membership applications from individuals to represent:\",\r\n <>\r\n <UnorderedList items={[\r\n \"Adults with Lived Experience of a mental health disorder, a substance use disorder, or a co-occurring mental health/substance use disorder\",\r\n \"Young Adults with Lived Experience (ages 18 – 25) of a mental health disorder, a substance use disorder, or a co-occurring mental health/substance use disorder\",\r\n \"Family members of an adult with lived experience of a mental health disorder, a substance use disorder, or a co-occurring mental health/substance use disorder\"\r\n ]} />\r\n </>,\r\n \"Membership eligibility is described on Page 1 of the Membership Application (see Related Links).\"\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 20,\r\n content: \"Council Description\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 30,\r\n content: [\r\n \"Established by administrative order in 1989, the Kentucky Behavioral Health Planning and Advisory Council conforms to Public Law 102-321, which requires formulation of such a council and specifies its composition be made up of 51 percent of consumers and family members of individuals with mental health and substance use disorders.\",\r\n \"The council is charged with the following duties:\"\r\n ]\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 40,\r\n content: \"Council Duties\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 50,\r\n content: [ <><UnorderedList items={[\r\n \"Report directly to the Commissioner of DBHDID.\",\r\n \"Assist DBHDID in designing a comprehensive, recovery-oriented system of care.\",\r\n \"Advise DBHDID on the use of the Substance Use Prevention, Treatment and Recovery Services Block Grant (SUPTRS-BG) funds and the Mental Health Block Grant (MHBG) funds, and on the quality of statewide, recovery-oriented behavioral health services.\",\r\n \"Review the biennial combined SUPTRS-BG and MHBG Application and annual SUPTRS – BG and MHBG Reports pursuant to Public Law 102-321, Section 1915(a), and submit recommendations to DBHDID prior to the September 1 and December 1 due dates, respectively.\",\r\n \"Advocate for individuals in recovery, children and youth with behavioral health challenges, and family members.\",\r\n \"Monitor, review, and evaluate, no less than once a year, the allocation and quality of statewide, recovery-oriented behavioral health services\"\r\n ]} /></>\r\n \r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 60,\r\n content: \"Council Meetings and Committees\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 70,\r\n content: \"The full council meets quarterly and has several established committees, including Executive, Bylaws, Membership, and Finance and Data, and ad hoc committees deemed appropriate by the council membership.\"\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 80,\r\n content: \"Council Mission and Vision\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 90,\r\n content: [\r\n \"The council’s mission and vision are as follows: \",\r\n <><b>Mission: </b>The council is the active voice promoting awareness of and access to effective, affordable, recovery-oriented and resiliency-based services in all communities</>,\r\n <><b>Vision: </b>We believe that all children, adolescents, and adults in the Commonwealth have the right to excellent, recovery-oriented, resilience-based behavioral health services that are affordable, equitable, client-driven, and assists community members to achieve their full potential, and live and thrive in their community.</>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 100,\r\n content: \"Council Membership\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 110,\r\n content: [\r\n 'The council is composed of representatives from state agencies, providers, individuals with lived experience of mental health and/or substance use disorders, family members of individuals with lived experience of mental health and/or substance use disorders, parents/guardians of a child with behavioral health challenges, and two young adults with lived experience of mental health and/or substance use disorders. Access the \"Membership List\" link in the Related Links box for a list of members.',\r\n \"The council currently has 37 members:\",\r\n <><UnorderedList items={[\r\n \"Six individuals with lived experience of mental health and/or substance use disorders.\",\r\n \"Six parents/grandparents/guardians/foster parents who are caring for a child (birth through age 20) with behavioral health challenges\",\r\n \"Six family members of an individual with lived experience of mental health and/or substance use disorders.\",\r\n \"Two young adults (age 18-25) with lived experience of mental health and/or substance use disorders.\",\r\n \"Four representatives of advocacy organizations with which DBHDID contracts with for services.\",\r\n \"Two provider organization representatives.\",\r\n \"Eleven state agency representatives.\"\r\n ]} /></>,\r\n \"The ratio of parents of children with behavioral health challenges to other members of the council must be sufficient to provide adequate representation of these children.\",\r\n <>Most importantly, the federal law council governing the council (Public Law 102-321) states that not less than 50 percent of the council members are individuals who are not state employees or providers of mental health services.</>\r\n \r\n ]\r\n },\r\n\r\n];\r\n\r\nexport default BHPACContent;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport UnorderedList from \"../../../layouts/bodyLayouts/helpers/UnorderedList\";\r\n\r\n\r\nconst BHPACAboutContent = [\r\n\r\n // {\r\n // format: bodyHelperTypes.image,\r\n // order: 20,\r\n // content: PESLogo\r\n\r\n\r\n\r\n // },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"What is the Council?\"\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 30,\r\n content: [\r\n \"The council serves as an advisory body to the Department for Behavioral Health, Developmental and Intellectual Disabilities (DBHDID), which is the state mental health authority and single state agency for substance use services.\",\r\n \"Federal law (Public Law 102-321) requires that every state receiving mental health block grant funds engage in a planning process with input from stakeholders, including consumers of mental health services, family members, other state agencies and providers. States are encouraged to integrate these councils to include individuals with substance use disorders and co-occurring mental health/substance use disorders. Kentucky has had an integrated council since 2011.\",\r\n \"In recent years, Kentucky has received more than $33 million annually in federal mental health and substance use prevention and treatment block grant funds:\",\r\n <><b>1. To Serve: </b></>,\r\n <>\r\n <UnorderedList items={[\r\n \"Adults with serious mental illness.\",\r\n \"Children with serious emotional disturbances and their families.\",\r\n \"Individuals with early serious mental illness/first episode psychosis.\",\r\n \"Individuals in need of behavioral health crisis services.\",\r\n \"Individuals who have, or are at risk of having, substance use disorders.\"\r\n ]} /></>,\r\n <><b>2. To address the need for services among special populations, such as:</b></>,\r\n <>\r\n <UnorderedList items={[\r\n \"Women who are pregnant and have a substance use disorder.\",\r\n \"Parents with substance use disorders who have dependent children.\",\r\n \"Individuals who inject drugs.\",\r\n \"Military personnel and their families\",\r\n \"Persons with substance use disorders who have, or are at risk of contracting, communicable diseases, such as HIV/AIDS/TB.\"\r\n ]} /></>,\r\n <>The council has several standing committees, including:</>,\r\n <><UnorderedList items={[\r\n <><b>Executive Committee: </b>This committee determines council meeting agendas and activities and conducts any council business that requires attention outside of meetings.</>,\r\n <><b>Bylaws Committee: </b>This committee reviews the bylaws, monitors them for needed changes, and offers recommendations to the full council for approval or amendment.</>,\r\n <><b>Membership Committee: </b>This committee is charged with ensuring that the council follows both public laws and council bylaws regarding of membership, recruiting and orienting new council members, making recommendations for council officers, and making recommendations to the Bylaws Committee regarding membership and nomination of officers.</>,\r\n <><b>Finance and Data Committee: </b>This committee is responsible for reviewing block grant allocations and recommending funding issues to the council.</>,\r\n \r\n ]} /></>,\r\n \"The council also creates ad hoc committees at its discretion. There are no ad hoc committees at present.\"\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 40,\r\n content: \"Who Serves on the Council?\"\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 50,\r\n content: \"State employee and provider members shall not exceed 49 percent of the total number of members of the Planning Council. Other representatives may include public and private entities concerned with the need and planning for, and the operation, funding and use of, behavioral health services and supports. The ratio of parents of children with serious emotional disturbances (SED) to other members of the council must be sufficient to provide adequate representation of such children in the deliberations of the council.\"\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 60,\r\n content: \"What are the Council’s duties?\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 70,\r\n content: [\r\n \"The council shall do all of the following:\",\r\n <><UnorderedList items={[\r\n \"Report directly to the Commissioner of DBHDID.\",\r\n \"Assist DBHDID in designing a comprehensive, recovery-oriented system of care.\",\r\n \"Advise DBHDID on the use of Substance Use Prevention, Treatment and Recovery Services – Block Grant (SUPTRS-BG) funds and Mental Health Block Grant (MHBG) funds and on the quality of statewide, recovery-oriented behavioral health services.\",\r\n \"Review the biennial combined SUPTRS-BG and MHBG Application and annual SUPTRS-BG and MHBG Reports pursuant to Public Law 102-321, Section 1915 (a) and submit recommendations to BHDID, prior to the September 1 and December 1 due dates, respectively.\",\r\n \"Advocate for with lived experience in mental health/substance use disorders, children and youth with behavioral health challenges, and family members.\",\r\n \"Monitor, review and evaluate, no less than once a year, the allocation and quality of statewide, recovery-oriented behavioral health services.\"\r\n ]} /></>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 80,\r\n content: \"Does the council participate in other behavioral health planning efforts?\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 90,\r\n content: [\r\n \"Yes, the council attempts to stay abreast of national and state-level activities, legislation, and local efforts of interest to individuals and families affected by mental health and substance use disorders. Consumer and family support networks are represented on the council and often bring information and recommendations to the group.\",\r\n \r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 100,\r\n content: \"Where can I find more information?\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 110,\r\n content: [\r\n \"Please see “Related Links†on the right side of this page for additional information. \",\r\n \r\n ]\r\n },\r\n\r\n];\r\n\r\nexport default BHPACAboutContent;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport UnorderedList from \"../../../layouts/bodyLayouts/helpers/UnorderedList\";\r\n\r\n\r\n\r\n\r\n\r\n\r\nconst immersionContent = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"Overview\"\r\n },\r\n\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n \"An innovative, four-day training event, Operation Immersion is designed to expand the knowledge base and skills of professionals and providers who support Kentucky’s Service Members, Veterans and their Families (SMVF).\",\r\n \"This event is presented by the Kentucky Cabinet for Health and Family Services (CHFS), the Kentucky Department for Behavioral Health, Developmental and Intellectual Disabilities (DBHDID), and the Kentucky National Guard. With classroom workshops taught by field experts and first-hand military experiences taught by military leaders, this unique training experience is unlike any other.\",\r\n \"This unique training event gives participants the opportunity to experience firsthand what life is like on a military facility. Operation Immersion combines the best of both worlds with classroom and field training sessions led by experts to keep you motivated and engaged\",\r\n \"Thank you in advance for your commitment to serving Kentucky’s heroes.\",\r\n <><i>\"I can honestly say that this was the single most valuable learning experience that I have ever encountered. The amount of learning and growth achieved during the four days is difficult to fully measure, as it is vast and deep.\"</i> <br /><br />\r\n –Susan M. Scully-Hill, Ph.D\r\n <br /><br />\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"Event Learning Objectives\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 40,\r\n content: [\r\n <>Operation Immersion is designed to:</>,\r\n <><UnorderedList items={[\r\n \"Equip professionals and service providers with knowledge and skills that increase their capacity to provide quality care and support the SMVF population.\",\r\n \"Promote integrated care and support systems by connecting behavioral health providers and professionals with military and veterans' resources.\",\r\n \"Provide all participants with a clearer understanding of the particular underlying causal factors (multiple deployments, Post Traumatic Stress, Traumatic Brain Injury and suicidal ideation) which put the SMVF population at risk for substance misuse, suicide and behavioral health disorders.\"\r\n ]} /></>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 50,\r\n content: \"Event Information\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 60,\r\n content: [\r\n 'A typical day begins with a \"PT\" workout modified for civilians. (Don’t worry, you can do it!) This will be followed by classroom sessions or military awareness training from experts in their field. During this training, you will have the unique opportunity to experience some of the following: team leadership events and combat missions training (including paintball).',\r\n \"Some of the training sessions will occur outdoors with experiences compatible to a moderate hike in the woods. Be prepared to experience dirt, grass, insects, wildlife and the elements.\",\r\n <><b>Note:</b>Regarding physical training participation, staff and trainers will encourage you to do your personal best. It is not about what others can do, but what you can do. It at any point you feel unable to complete a task, please feel free to step aside and encourage others. </>,\r\n <><i>\"It was challenging. It was emotional. I was tired. And yet, it did not even begin to approximate what our soldiers and military personnel experience. As the second day unfolded, I was enthralled and motivated to learn and grow as much as I possibly could…By the end of the program, I felt deeply connected to the other participants and the staff and did not want the experience to end.\"</i> <br /><br />\r\n –2017 Participant\r\n\r\n </>,\r\n <><b>Priority Registration will be given to first-time attendees and those that serve Kentucky’s Service Members, Veterans and their Families.</b></>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 70,\r\n content: \"Target Audience\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 80,\r\n content: <>The target audience includes, but is not limited to, community mental health and substance use disorder treatment agencies, social workers, professional counselors, prevention professionals, nurses, psychiatrists, physicians, psychologists, clergy/pastoral, judicial/corrections, college students, Department of Veterans Affairs staff, and anyone else that serves the SMVF population. <br /><br />\r\n <b>Space is limited to 100 participants.</b>\r\n </>\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 90,\r\n content: \"Cost Information\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 100,\r\n content: <>The cost for this all-inclusive event is typically <b>$100 per participant</b> (a $1,375 value). This fee includes: <br /><br />\r\n <UnorderedList items={[\r\n \"30.5 CEUs (approval pending). See below for more information.\",\r\n \"Classroom and field sessions.\",\r\n \"On-site lodging and meals.\",\r\n \"Use of equipment and facilities.\",\r\n \"Participant T-shirt.\",\r\n \"An experience that will enhance your skills for working with the SMVF population.\",\r\n \"A great networking opportunity to build your resources.\"\r\n ]} />\r\n </>\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 110,\r\n content: \"Contact Hours and Continuing Education Units\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 120,\r\n content: [\r\n \"Normally, a total of approximately 30 Contact Hours/Continuing Education Units (CEUs) have been requested from the following boards: Alcohol and Drug Counselors, Long-Term Care Administrators, Nursing, Pastoral Counselors, Professional Art Therapists, Psychology, Social Work, Licensed Professional Counselors, and Licensed Marriage and Family Therapists.\",\r\n \"Information will be available for submitting Continuing Education information to your respective entities for other specialties and those not preapproved. \"\r\n ]\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 130,\r\n content: \"Training Topics\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 140,\r\n content: [\r\n \"You will learn from expert trainers covering the following topics:\",\r\n <><UnorderedList items={[\r\n \"Military Cultural Competency Training As It Relates to Behavioral Health\",\r\n \"Therapeutic Risk Management of the Suicidal Patient (TRMSP)\",\r\n \"Field Leadership Reaction Training\",\r\n \"Adverse Childhood Experiences (ACES) and Their Impact on Current Service Members\",\r\n \"Role of Behavioral Health in the Military\",\r\n \"Introduction to Urban Combat and Improvised Explosive Devices\",\r\n \"Combat Missions Training Experience With Paintball\",\r\n \"Military Connected Youth: An At-Risk Population for Opioid Abuse and Suicide\",\r\n \"Insomnia and Suicide Risk\",\r\n \"Combat Stress and the Impact of Deployment Cycles\",\r\n \"Suicide Prevention: Lived Experience\",\r\n \"Military Chaplaincy\",\r\n \"An Introduction to Conceptualizing Moral Injury\",\r\n \"Soldier Experiences in Today's National Guard\",\r\n ]} /></>,\r\n <><i>\"OI is not just beneficial to us and our soldiers, but also to any veterans who receive services from providers who go through our program.\"</i><br /><br />\r\n\r\n –Brigadier General Charles Jones (Ret.), Kentucky National Guard\r\n\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 150,\r\n content: \"Eligiblity Requirements\"\r\n },\r\n {\r\n\r\n format: bodyHelperTypes.paragraphs,\r\n order: 160,\r\n content: [\r\n \"All individuals must be at least 18 years old. Other eligibility requirements are listed below.\",\r\n <><b>By registering for Operation Immersion, you are agreeing to the following terms:</b></>,\r\n <><UnorderedList items={[\r\n \"You are currently, or plan to be in the near future (within 12 months), serving the SMVF population in Kentucky.\",\r\n \"You will participate in a pre- and post-event evaluation process, including six-month and twelve-month follow-up surveys.\",\r\n \"Your photograph, electronic video image, or likeness may be utilized for future publicity and training opportunities by CHFS, DBHDID and Kentucky National Guard.\",\r\n \"Your professional contact information, including name, title, organization, email, and contact number will be shared with Operation Immersion participants, staff, presenters and the Kentucky National Guard.\"\r\n ]} /></>\r\n ]\r\n\r\n },\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 170,\r\n content: \"Registration Information\"\r\n },\r\n {\r\n\r\n format: bodyHelperTypes.paragraphs,\r\n order: 180,\r\n content: [\r\n <><b>Once registration reaches capacity, a selection process and waiting list will be established in order to fill any open slots that may become available.</b></>,\r\n\r\n <><b>Please note (regarding background check): Per military regulations, we must collect confidential personal information in order for you to gain security clearance and access onto the military installation.</b> This information is for Operation Immersion vetting purposes only. Your information will remain confidential and will only be shared with the registration team and the military security vetting office. Operation Immersion leadership will contact you directly if additional security clarification is needed regarding your access to the installation. Please DO NOT contact the Kentucky National Guard or the training site directly.</>,\r\n <><b>If you have general questions, questions regarding registration, or you did not receive registration confirmation within 72 hours, please use the contact in the Contact Information box, whose name is an email link.</b><br/><br/></>\r\n \r\n ]\r\n\r\n }\r\n\r\n\r\n\r\n];\r\n\r\nexport default immersionContent;","//Using the react library\r\nimport React from \"react\";\r\n//Using the react library:\r\nimport { useEffect, useState } from \"react\";\r\nimport useApi from \"../utils/UseAPI\";\r\nimport SanitizeHref from \"../utils/SanitizeHref\";\r\n\r\n\r\nfunction DocumentsDropdown({ typeID, ...props }) {\r\n\r\n const { error, processing, getRequest } = useApi();\r\n const [documentsDocs, setDocumentDocs] = useState([]);\r\n\r\n useEffect(() => {\r\n const fetchLinks = async () => {\r\n const [data, status] = await getRequest(null, \"document\");\r\n if (status == 200) {\r\n // console.log(data.data);\r\n FormFilter(data.data); \r\n }\r\n else {\r\n console.log(error);\r\n }\r\n };\r\n fetchLinks();\r\n }, []);\r\n\r\n function FormFilter(formsData) {\r\n\r\n const generalFilter = [];\r\n\r\n formsData.forEach((form) => {\r\n if (form.typeId.toString() === typeID) {\r\n generalFilter.push(form);\r\n }\r\n })\r\n setDocumentDocs(generalFilter); \r\n }\r\n return (\r\n <>\r\n <div className=\"col-md-4 col-md-3\">\r\n {/* Return List */}\r\n <select className=\"form-select\" onChange={(e) => {\r\n window.location = e.target.value;\r\n }}>\r\n <option>Select a meeting date</option>\r\n {\r\n documentsDocs.map((data, index) => {\r\n console.log(data)\r\n return (\r\n <option key={index} value={SanitizeHref(data.url)} className=\"form-select\"\r\n >{data.name}</option>\r\n )\r\n })\r\n }\r\n </select>\r\n </div>\r\n </>\r\n );\r\n}\r\n\r\nexport default DocumentsDropdown;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport DocumentsDropdown from \"../../../components/DocumentsDropdown\";\r\n\r\nconst BHPACSummariesContent = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"Meeting Summaries\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs, \r\n order: 20,\r\n content: [\r\n \"The council generally meets at least four times a year, with numerous committee meetings held throughout the year.\",\r\n \"Select a meeting date from the dropdown list below to view a summary of any meeting held from 2014 forward.\",\r\n <></>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"Planning Council\"\r\n },\r\n\r\n {\r\n format: bodyHelperTypes.paragraph, \r\n order: 40,\r\n content: <><DocumentsDropdown typeID=\"1\" /><br/></>\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 50,\r\n content: \"Advocacy and Policy Committee\"\r\n },\r\n\r\n {\r\n format: bodyHelperTypes.paragraph, \r\n order: 60,\r\n content: <><DocumentsDropdown typeID=\"18\" /><br/></>\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 70,\r\n content: \"Bylaws Committee\"\r\n },\r\n\r\n {\r\n format: bodyHelperTypes.paragraph, \r\n order: 80,\r\n content: <><DocumentsDropdown typeID=\"10\" /><br/></>\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 90,\r\n content: \"Executive Committee\"\r\n },\r\n\r\n {\r\n format: bodyHelperTypes.paragraph, \r\n order: 100,\r\n content: <><DocumentsDropdown typeID=\"11\" /><br/></>\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 110,\r\n content: \"Finance and Data Committee\"\r\n },\r\n\r\n {\r\n format: bodyHelperTypes.paragraph, \r\n order: 120,\r\n content: <><DocumentsDropdown typeID=\"12\" /><br/></>\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 130,\r\n content: \"Membership Committee\"\r\n },\r\n\r\n {\r\n format: bodyHelperTypes.paragraph, \r\n order: 140,\r\n content: <><DocumentsDropdown typeID=\"13\" /><br/></>\r\n }\r\n];\r\n\r\nexport default BHPACSummariesContent;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport UnorderedList from \"../../../layouts/bodyLayouts/helpers/UnorderedList\";\r\n\r\nimport Links from \"../../../components/Links\";\r\n\r\n\r\nconst BHPACBGContent = [\r\n\r\n\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"Annual Block Grant Plans and Reports\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph, \r\n order: 20,\r\n content: <><Links linkTypeID=\"94\" /></>\r\n }\r\n\r\n \r\n\r\n];\r\n\r\nexport default BHPACBGContent;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport UnorderedList from \"../../../layouts/bodyLayouts/helpers/UnorderedList\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst sOCA_Content = [\r\n\r\n // {\r\n // format: bodyHelperTypes.title,\r\n // order: 10,\r\n // content: \"Presented by the Department for Behavioral Health, Developmental and Intellectual Disabilities\"\r\n // },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n <>The System of Care (SOC) Academy is convened annually by the Department for Behavioral Health, Developmental & Intellectual Disabilities (DBHDID) and partners. In 2024, the SOC Academy celebrated its 10th anniversary with a virtual event hosted by DBHDID and Mental Health America of Kentucky.\r\n </>,\r\n <>\r\n Each year, DBHDID convenes the SOC Academy to strengthen Kentucky’s system of care (see Related Links) for children, transition-age youth, and their families. Since 2014, the Academy has prioritized themes such as promoting equity; reducing health disparities; collaboration among interagency state and community partners; prevention, early intervention, and treatment; building resilient youth, families and communities; and KY’s response to the opioid epidemic.\r\n\r\n </>,\r\n <>\r\n From 2020 – 2024, the SOC Academy was offered as a virtual event to reach a broader audience and provide expanded access to valuable content. The DBHDID is excited to announce the 2025 SOC Academy will return to an in-person event designed to foster meaningful connections and provide dedicated time for professional growth. Attendees will have the opportunity to engage with experts, collaborate with peers, and enhance professional skills.\r\n </>,\r\n <>The SOC Academy serves a diverse audience that includes advocates, clinicians, case managers, prevention specialists, peer support specialists, educators, faith-based leaders, psychologist/psychiatrists, child care providers, families and youth with lived mental health experience, and staff from Family Resource and Youth Services Centers, juvenile justice, family and juvenile services, community-based services, child welfare, and public health, as well as interested community members, and more.</>,\r\n\r\n\r\n // <>To learn more about System of Care core values and guiding principles, see the <b>Evolution of the SOC Approach 2021</b> in Related Links.</>,\r\n\r\n <>Continuing education units will be available pending licensure board approvals. American Sign Language (ASL) Interpreters and Communication Access Realtime Translation (CART) will be available upon request. </>,\r\n\r\n // <>Find 2022-2023 recorded sessions by clicking “SOC Learning Series Recordings †under Related Links. The Department is unable to offer certificates for viewing the recordings.</>,\r\n\r\n <>To request more information, click on the \"Contact Us\" link in the Contact Information box.\r\n <br />\r\n </>\r\n\r\n ]\r\n },\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n];\r\n\r\nexport default sOCA_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\n\r\n\r\n\r\nconst impactVideo_Content = [\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"The History of Kentucky IMPACT\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n <>Below is a video describing the history of Kentucky IMPACT. Start or stop the video by clicking on the image. </>,\r\n <>\r\n <center>\r\n <video width=\"750\" height=\"500\" controls>\r\n <source style={{ alignContent: \"center !important\" }} src={'https://dbhdid.ky.gov/video/impact.mp4'} type=\"video/mp4\" />\r\n </video>\r\n </center>\r\n </>,\r\n <>\r\n The control bar at the top of the image will let you pause or restart the video (arrow icon at the far left), control where you are in the video (slider to the right of the play/pause icon), control the volume, or toggle full-screen mode (the four-arrows icon at the far right)\r\n </>,\r\n <>\r\n You can also share the video on Facebook or Twitter using the share icon at the right of the image.\r\n </>\r\n\r\n\r\n ]\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n];\r\n\r\nexport default impactVideo_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport UnorderedList from \"../../../layouts/bodyLayouts/helpers/UnorderedList\";\r\n\r\nconst actPrinciplesContent = [\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content:[\r\n\r\n <>Assertive Community Treatment services adhere to certain essential standards and the following basic principles.</>,\r\n\r\n <UnorderedList items={[\r\n <><b>Assertive approach. </b>ACT team members are pro-active with clients, assisting them in participating in and continuing treatment, living independently, and recovering from disability.</>,\r\n <><b>Attention to health care needs. </b>The ACT team provides health education and access to and coordination of health care services.</>,\r\n <><b>Community integration. </b>ACT staff help clients to become less socially isolated and more integrated into the community by encouraging participation in community activities and membership in organizations of their choice.</>,\r\n <><b>Emphasis on vocational expectations. </b>Emphasis on vocational expectations. The team encourages all clients to participate in community employment and provides many vocational rehabilitation services directly.</>,\r\n <><b>Family support and education. </b>With the active involvement of the client, ACT staff work to include the client's natural support systems (family and significant others) in treatment, educating them and including them as part of the ACT services. It is often necessary to help improve family relationships in order to reduce conflicts and increase client autonomy.</>,\r\n <><b>Highly individualized services. </b>Treatment plans, developed with the client, are based on individual strengths and needs, hopes and desires. The plans are modified as needed through an ongoing assessment and goal-setting process.</>,\r\n <><b>Long-term services. </b>ACT services are intended to be long-term due to the severe impairments often associated with serious mental illness. The process of recovery often takes many years.</>,\r\n <><b>Primary provider of service. </b>The multidisciplinary make-up of each team (psychiatrist, nurses, social workers, rehabilitation, etc.) and the small client-to-staff ratio help the team provide most services with minimal referrals to other mental health programs or providers. The ACT team members share offices, and their roles are interchangeable when providing services, to ensure that services are not disrupted due to staff absence or turnover.</>,\r\n <><b>Psycho-educational services. </b>Staff work with clients and their family members to become collaborative partners in the treatment process. Clients are taught about mental illness and the skills needed to better manage their illnesses and their lives.</>,\r\n <><b>Services are provided out of office. </b>Services are provided within community settings, such as a person's own home and neighborhood, local restaurants, parks and nearby stores.</>,\r\n <><b>Co-occurring services. </b>The team coordinates and provides services for co-occurring disorders. </>\r\n ]} />\r\n\r\n ] ,\r\n }\r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n];\r\n\r\nexport default actPrinciplesContent;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../utils/BodyHelperTypes\";\r\nimport UnorderedList from \"../../layouts/bodyLayouts/helpers/UnorderedList\";\r\nimport Links from \"../../components/Links\";\r\n\r\nconst traumaAndTerrorismContent= [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"Coping: Trauma and Terrorism Web Resources\"\r\n },\r\n \r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 20,\r\n content: \"The websites below contain information that may be useful to help you and others to cope with terrorism and bioterrorism. Periodic Web updates and changes make it difficult to provide direct links to these issues; however, these sites provide search locations which can guide you to documents and articles regarding trauma and bioterrorism.\"\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"Kentucky Sites\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 40,\r\n content:<><Links linkTypeID={\"34\"} /></>\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 50,\r\n content: \"National Sites\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 60,\r\n content:<><Links linkTypeID={\"35\"} /></>\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 70,\r\n content: \"International Sites\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 80,\r\n content:<><Links linkTypeID={\"36\"} /></>\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 90,\r\n content: \"Bioterrorism\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 100,\r\n content:<><Links linkTypeID={\"37\"} /></>\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 110,\r\n content: \"Children and Teens\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 120,\r\n content:<><Links linkTypeID={\"38\"} /></>\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 130,\r\n content: \"Non-Governmental Link Policy\"\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 140,\r\n content: [\r\n \"No endorsement is intended or made of any hypertext link, product, service or information, either by its inclusion or exclusion from this page or site. While all attempts are made to insure the correctness and suitability of information under our control and to correct any errors brought to our attention, no representation or guarantee can be made as to the correctness or suitability of that information or any linked information presented, referenced, or implied.\",\r\n \"All critical information should be independently verified. The inclusion of links from this site does not imply endorsement by the Commonwealth of Kentucky. The Commonwealth makes no endorsement, express or implied, of any links to or from its site, nor is it responsible for the content or activities of any linked sites. Any questions should be directed to the administrator(s) of this or any other specific sites.\"\r\n ]\r\n }\r\n \r\n\r\n\r\n\r\n];\r\n\r\nexport default traumaAndTerrorismContent;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../utils/BodyHelperTypes\";\r\nimport UnorderedList from \"../../layouts/bodyLayouts/helpers/UnorderedList\";\r\nimport Links from \"../../components/Links\";\r\n\r\nconst guidePrinciplesContent = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"Anti-Discrimination and Anti-Stigma\"\r\n },\r\n \r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 20,\r\n content: <><Links linkTypeID={\"135\"} /></>\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"Self-Advocacy\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 40,\r\n content: [\r\n <>Self-Advocacy is \"a lifelong personal pursuit of control over one's own circumstances. It is the act of advocating for what one wants, for how one desires to live, for how one wants to be treated, within one's family, community and services, and it does not end with one concession or one victory.\" <br/>\r\n <br/>\r\n <i>Bonnie Shoultz, Center on Human Policy</i>\r\n </>,\r\n \"Please access the links below to learn more about self-advocacy.\",\r\n <><Links linkTypeID={\"133\"} /></>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 50,\r\n content: \"Self-Determination\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 60, \r\n content: [\r\n \"Self-determination is an international concept for all people everywhere. Relationships and interdependence in our communities is essential. All people can be self-determined even those perceived to have the most severe disabilities, who may or may not communicate with traditional speech. The first step is building those connections and relationships. Please access the links below to learn more.\",\r\n <><Links linkTypeID={\"131\"} /></>\r\n ]\r\n },\r\n \r\n\r\n\r\n\r\n];\r\n\r\nexport default guidePrinciplesContent;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../utils/BodyHelperTypes\";\r\nimport UnorderedList from \"../../layouts/bodyLayouts/helpers/UnorderedList\";\r\nimport Links from \"../../components/Links\";\r\n\r\nconst hIPPAALawContent = [\r\n\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n <><UnorderedList items={[\r\n <><a href=\"https://www.govinfo.gov/content/pkg/BILLS-107hr3323enr/pdf/BILLS-107hr3323enr.pdf\">Administrative Simplification Compliance Act (ASCA), Public Law 107-105.</a>ASCA extended the original implementation date of the Transaction and Code Sets Rule. </>,\r\n <>\r\n <a href=\"https://www.govinfo.gov/content/pkg/BILLS-104hr3103enr/pdf/BILLS-104hr3103enr.pdf\">Health Insurance Portability and Accountability Act of 1996, Public Law 104-191. </a>HIPAA Law amends the Internal Revenue Code of 1986 to improve portability and continuity of health insurance coverage in the group and individual markets, to combat waste, fraud and abuse in health insurance and health care delivery, to promote the use of medical savings accounts, to improve access to long-term care services and coverage, to simplify the administration of health insurance, administrative simplification, and for other purposes. <br/>\r\n <br/>\r\n Title II provides for administrative simplification that requires the development of standards for the electronic exchange of health care information.\r\n\r\n </>,\r\n <><a href=\"https://dbhdid.ky.gov/kdbhdid/hipaa-law.aspx#:~:text=HIPAA%20Title%20II%2C%20Subtitle%20F%3A%20Administrative%20Simplification.\">HIPAA Title II, Subtitle F: Administrative Simplification.</a>\r\n The purpose of this subtitle is to enhance health care insurance and delivery systems by making them more efficient, simpler, and less costly. <br/>\r\n <br/>\r\n Administrative Simplification requires that health plans and health care clearinghouses use certain standard transaction formats and code sets for the electronic transmission of health information. Health care providers that transmit any health information in electronic form in connection with a transaction covered in the rules are also required to use the standard transactions and codes sets for the electronic transmission of health information. <br/>\r\n <br/>\r\n\r\n Administrative Simplification establishes standards for the protection and security of individually identifiable health information, and provides penalties for its wrongful disclosure. Administrative simplification also requires rules to protect the privacy of personal health information and the establishment of security requirements to protect that information, and the development of standard identifiers.\r\n </>,\r\n \r\n ]} /></>\r\n ]\r\n },\r\n \r\n \r\n\r\n\r\n];\r\n\r\nexport default hIPPAALawContent;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\n\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst recordingsContent = [\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n <><Links linkTypeID=\"797\" /></>\r\n ]\r\n },\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 20,\r\n content: \"Dream Weavers Series – March 2024 \"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 30,\r\n content: [\r\n <><Links linkTypeID=\"795\" /></>\r\n ]\r\n },\r\n \r\n {\r\n format: bodyHelperTypes.title,\r\n order: 40,\r\n content: \"Medicaid Eligibility for Waiver Services - April 18, 2024\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 50,\r\n content: [\r\n <><Links linkTypeID=\"796\" /></>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 60,\r\n content: \"Community Mental Health Centers I/DD Crisis Services - May 15, 2024\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 70,\r\n content: [\r\n <><Links linkTypeID=\"801\" /></>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 80,\r\n content: \"Life Plan of KY and STABLE Accounts - June 20, 2024\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 90,\r\n content: [\r\n <><Links linkTypeID=\"802\" /></>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 100,\r\n content: \"Supported Decision Making - July 18, 2024\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 110,\r\n content: [\r\n <><Links linkTypeID=\"803\" /></>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 120,\r\n content: \"Medicaid Waiver Management Application (MWMA) - August 15, 2024\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 130,\r\n content: [\r\n <><Links linkTypeID=\"804\" /></>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 140,\r\n content: \"Social Role Valorization (SRV) and Employment - October 17, 2024 \"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 150,\r\n content: [\r\n <><Links linkTypeID=\"812\" /></>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 160,\r\n content: \"Adult Protective Services - Thursday, November 21, 2024 \"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 170,\r\n content: [\r\n <><Links linkTypeID=\"813\" /></>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 180,\r\n content: \"Technology Assisted Residential Services - December 5, 2024\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 190,\r\n content: [\r\n <><Links linkTypeID=\"814\" /></>\r\n ]\r\n },\r\n \r\n \r\n\r\n\r\n];\r\n\r\nexport default recordingsContent;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport UnorderedList from \"../../../layouts/bodyLayouts/helpers/UnorderedList\";\r\nimport ContinuumOfCare from \"../../../assets/img/sud/ContinuumOfCare.png\"\r\nimport { Link } from \"react-router-dom\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst BestPracticeContent = [\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n <><b>Evidence-based Practices</b> are prevention, treatment and recovery interventions used to support individuals, families and communities impacted by mental health and substance use disorders, shown by evidence to be effective. Such interventions are formally evaluated to be effective and able to be replicated and implemented with appropriate modifications in other settings.</>,\r\n <><b>Promising Practices</b> are not yet formally evaluated but identified by experts as a program with results suggesting efficacy and worthy of further study in broader pilot implementation efforts.</>,\r\n <>In April 2018, SAMHSA launched the <a href=\"https://www.samhsa.gov/resource-search/ebp\">Evidence-Based Practices Resource Center (Resource Center)</a> that aims to provide communities, clinicians, policy makers, and others in the field with the information and tools they need to incorporate evidence-based practices into their communities or clinical settings. The Resource Center contains a collection of science-based resources and is part of SAMHSA's comprehensive approach to identify and disseminate clinically sound and scientifically based policy, practices, and programs.</>\r\n ]\r\n\r\n\r\n\r\n\r\n },\r\n\r\n \r\n];\r\n\r\nexport default BestPracticeContent;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Links from \"../../../components/Links\";\r\nimport DataGuideList from \"../../../components/DataGuideList\";\r\n\r\n\r\nconst dataCommitteeContent = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"Quality Management & Outcomes Team (QMOT)\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 20,\r\n content: \"QMOT makes recommendations to provide direction for the collection of information relevant to desired outcomes, methods of measurement, and design of processes for continuous outcomes management across the Department. The team evaluates outcomes that support the provision of quality services and explores areas for improvement.\"\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"Joint Committee on Information Continuity (JCIC)\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 40,\r\n content: [\r\n \"JCIC makes recommendations concerning information management to the Department. The committee facilitates the development of data-related contract items between the Department and Certified Mental Health Centers (CMHCs). As a central function, the committee provides direction and assistance in the continued development an information system to manage a public behavioral health system.\",\r\n <>These data committees form part of the department's committee structure to coordinate data collection, data use, and data quality improvement. These committees are supported by DBHDID Commissioner Office leadership, Division Directors, and Branch Staff representation.\r\n \r\n <br/>\r\n <br/>\r\n </>\r\n ]\r\n }\r\n\r\n\r\n\r\n\r\n];\r\n\r\nexport default dataCommitteeContent;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport DocumentsDropdown from \"../../../components/DocumentsDropdown\";\r\n\r\nconst sIACSummaries_Content = [\r\n // {\r\n // format: bodyHelperTypes.title,\r\n // order: 10,\r\n // content: \"SIAC Newsletter\"\r\n // },\r\n // {\r\n // format: bodyHelperTypes.paragraphs,\r\n // order: 20,\r\n // content: [\r\n\r\n // \"The Outreach & Promotion Standing Committee created and disseminates a quarterly SIAC Newsletter. Select a date from the dropdown list to view newsletter first released September 2021.\",\r\n\r\n // <><DocumentsDropdown typeId=\"21\" /><br/></>\r\n // ]\r\n // },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: <>SIAC Meeting Summaries\r\n <br/> \r\n <br/>\r\n </>\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n <>\r\n {/* <b>Council Meeting Summaries</b> <br/><br/> */}\r\n Select a meeting date from the dropdown list below to view the summary.</>,\r\n <><DocumentsDropdown typeID=\"2\" /><br/></>\r\n ]\r\n },\r\n // {\r\n // format: bodyHelperTypes.paragraphs,\r\n // order: 50,\r\n // content: [\r\n // <><b>Handouts</b> <br/><br/>\r\n // Select a meeting date from the dropdown list below to view handouts for any meeting held from June 2015 forward.</>,\r\n // <><DocumentsDropdown typeId=\"16\" /><br/></>\r\n // ]\r\n // },\r\n {\r\n format: bodyHelperTypes.title, \r\n order: 21,\r\n content: \"SIAC Workgroups\"\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"SIAC Standing Committee Meeting Summaries\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 40,\r\n content: [\r\n <>\r\n {/* <b>Standing Committee Meeting Summaries</b> <br/><br/> */}\r\n Select a meeting date from the dropdown list below to view.</>,\r\n <><DocumentsDropdown typeID=\"17\" /><br/></>\r\n ]\r\n },\r\n // {\r\n // format: bodyHelperTypes.paragraphs,\r\n // order: 70,\r\n // content: [\r\n // <><b>Social and Emotional Health Task Force Meeting Summaries</b> <br/><br/>\r\n // Select a meeting date from the dropdown list below to view summaries of meetings held by this task force.</>,\r\n // <><DocumentsDropdown typeID=\"20\" /><br/></>\r\n // ]\r\n // },\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n];\r\n\r\nexport default sIACSummaries_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../utils/BodyHelperTypes\";\r\nimport UnorderedList from \"../../layouts/bodyLayouts/helpers/UnorderedList\";\r\nimport Links from \"../../components/Links\";\r\n\r\n\r\n\r\n\r\nconst kYCCL_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 10,\r\n content: \"Civil commitment laws (also called involuntary commitment laws) exist in every state in the U.S. These laws govern the detainment and treatment of individuals with mental illness, substance use disorder, or intellectual disability who pose a risk to themselves or others. Below are links to Kentucky’s laws and verified petitions that family members or other concerned individuals may complete to initiate the commitment process for individuals who are in crisis, pose a risk to themselves or others, and are unlikely to/unable to voluntarily initiate services.\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [ \r\n <><a href=\"http://apps.legislature.ky.gov/law/statutes/chapter.aspx?id=38119\"><b>KRS Chapter 202A: Adult Mental Health Hospitalization</b></a><br/>\r\n <a style={{color:\"green\"}} href=\"https://www.kycourts.gov/Legal-Forms/Legal Forms/710.pdf\"><b>Verified Petition</b></a></>,\r\n <><a href=\"http://apps.legislature.ky.gov/law/statutes/chapter.aspx?id=39435\"><b>KRS Chapter 645: Children's Mental Health Hospitalization</b></a><br/>\r\n <a style={{color:\"green\"}} href=\"https://www.kycourts.gov/Legal-Forms/Legal Forms/710.pdf\"><b>Verified Petition</b></a></>,\r\n <><a href=\"https://apps.legislature.ky.gov/law/statutes/chapter.aspx?id=38279\"><b>KRS Chapter 222: Treatment for Substance Use Disorder</b></a><br/>\r\n <a style={{color:\"green\"}} href=\"https://www.kycourts.gov/Legal-Forms/Legal Forms/700A.pdf\"><b>Verified Petition</b></a></>,\r\n <><a href=\"https://apps.legislature.ky.gov/law/statutes/chapter.aspx?id=38119\"><b>KRS Chapter 202A.0811: Assisted Outpatient Treatment</b></a><br/>\r\n <a style={{color:\"green\"}} href=\"https://www.kycourts.gov/Legal-Forms/Legal Forms/737.pdf\"><b>Verified Petition</b></a></>,\r\n <><a href=\"https://apps.legislature.ky.gov/law/statutes/chapter.aspx?id=38121\"><b>KRS Chapter 202B: Admission of an Individual with an Intellectual Disability</b></a><br/>\r\n <a style={{color:\"green\"}} href=\"https://www.kycourts.gov/Legal-Forms/Legal Forms/710.pdf\"><b>Verified Petition</b></a><br/><br/></>,\r\n\r\n ]\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n];\r\n\r\nexport default kYCCL_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../utils/BodyHelperTypes\";\r\nimport UnorderedList from \"../../layouts/bodyLayouts/helpers/UnorderedList\";\r\nimport Links from \"../../components/Links\";\r\n\r\n\r\n\r\n\r\nconst pASSRR_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n\r\n \"The Omnibus Reconciliation Act of 1987 (OBRA) and P.L. 100-203, Section 4211(c)(7), and OBRA 1990 contain provisions with major implications for persons with mental illness or intellectual disabilities who are applying to or residing in a nursing facility.The provisions were designed to eliminate the practice of inappropriately placing persons with mental illness, intellectual disabilities and related conditions in Medicaid- certified nursing facilities.\",\r\n \"This Act mandates the department, as the state mental health and intellectual disability authority, to establish preadmission screening and resident review (PASRR) for all persons applying for admission to or residing in a nursing facility. Through the PASRR evaluation, the department determines whether (1) the person meets PASRR criteria (2)the person requires a nursing facility level of care, if so, (3) whether the person also requires specialized services (active treatment).\",\r\n <>\r\n\r\n Specifically, the PASRR program must ensure that the following conditions are met.\r\n <br/>\r\n <br/>\r\n\r\n <ul>\r\n\r\n <li>\r\n As a result of this preadmission screening, referred to as the Level I, persons who appear to have a mental illness, intellectual disability or related condition will undergo a comprehensive evaluation, referred to as the Level II, to determine the need for nursing facility placement and specialized services.\r\n\r\n </li>\r\n\r\n <li>\r\n\r\n As of January 1, 1989, no person may be admitted to a Medicaid-certified nursing facility without first being screened for mental illness and intellectual disabilities. This provision applies to the source of nursing facility placement.\r\n\r\n </li>\r\n\r\n </ul>\r\n\r\n\r\n\r\n </>\r\n\r\n ]\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n];\r\n\r\nexport default pASSRR_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../utils/BodyHelperTypes\";\r\nimport UnorderedList from \"../../layouts/bodyLayouts/helpers/UnorderedList\";\r\nimport Links from \"../../components/Links\";\r\n\r\n\r\n\r\n\r\nconst pASSRRForms_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"PASRR Forms and Resources\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n \"Click on the name of a document in the list below to access a copy of the document.\",\r\n <><Links linkTypeID=\"227\" /></>\r\n\r\n\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"PASRR Regulations and Statues\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 40,\r\n content: [\r\n\r\n <><Links linkTypeID=\"773\" /></>\r\n\r\n\r\n\r\n ]\r\n },\r\n // {\r\n // format: bodyHelperTypes.title,\r\n // order: 50,\r\n // content: \"PASRR Regulations and Statues\"\r\n // },\r\n // {\r\n // format: bodyHelperTypes.paragraph,\r\n // order: 60,\r\n // content: <>\r\n\r\n // For the MAP-409, MAP-4092, MAP-4093, MAP-4094 AND MAP-4095, please visit the first link below and choose \"Provider\" from the \"Forms\" dropdown list near the top of the page, then scroll down to the MAP forms.\r\n\r\n // <br />\r\n // <br />\r\n\r\n // <Links linkTypeID=\"717\" />\r\n\r\n // </>\r\n // },\r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n];\r\n\r\nexport default pASSRRForms_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../utils/BodyHelperTypes\";\r\nimport UnorderedList from \"../../layouts/bodyLayouts/helpers/UnorderedList\";\r\nimport Links from \"../../components/Links\";\r\n\r\n\r\n\r\n\r\nconst crisis_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"Program Description\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n \"A crisis occurs when an individual presents with a sudden, unanticipated, or potentially dangerous behavioral health condition, episode or behavior. Crisis intervention services are provided to stabilize or prevent an escalation of crisis, determine the needed services, and assist the individual in receiving the least restrictive, most effective treatment available.\",\r\n \"Kentucky’s 14 regional community mental health centers (CMHCs) provide services for individuals experiencing an intellectual/developmental disability-related crisis or behavioral health crisis 24 hours a day, 7 days a week, 365 days a year and may be contacted by calling 988 or the community mental health center's crisis hotline.\",\r\n\r\n <><Links linkTypeID=\"536\" /></>\r\n\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"988 Suicide & Crisis Lifeline\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 40,\r\n content: [\r\n\r\n <>Kentuckians experiencing a mental health or substance use crisis can call, chat or text with a trained crisis counselor through the 988 Suicide & Crisis Lifeline. This free, confidential, and anonymous service is available 24/7. Individuals can call or text 988 or can chat by visiting <a href='https://988lifeline.org/chat/'>https://988lifeline.org/chat/</a> to speak with a trained crisis counselor for emotional support and connection to local mental health, substance use, and community resources. Information on Kentucky’s 988 system can be found by visiting <a href='https://988.ky.gov/'>https://988.ky.gov/</a>.</>\r\n \r\n\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 50,\r\n content: \"Behavioral Health Crisis Services\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 60,\r\n content: [\r\n\r\n <>\r\n <br/> <b>Residential Crisis Stabilization Units </b> <br/>\r\n\r\n Residential crisis stabilization services are provided in Residential Crisis Stabilization Units (RCSUs). These short-term residential services are provided to individuals experiencing a behavioral health crisis who need extended care but do not need hospitalization. \r\n\r\n </>,\r\n\r\n \"RCSUs provide crisis screening, assessment, and stabilization interventions. Services may also include developing a crisis plan, individual, group, and family therapy, psychoeducation, stabilization of withdrawal management symptoms, medication management with extended on-site monitoring, care coordination, and peer support. \",\r\n\r\n <><Links linkTypeID=\"718\" /></>,\r\n\r\n <><b>Kentucky Civil Commitment Laws</b></>,\r\n\r\n \"In every state in the U.S., including Kentucky, there are laws known as civil commitment laws (or involuntary commitment laws) that dictate how individuals with mental illness, substance use disorder, or intellectual disability who pose a risk to themselves or others can be detained and treated. Below are the links to Kentucky's laws that concerned individuals or family members can use to start the commitment process for individuals in crisis who pose a risk to themselves or others and who are unlikely or unable to seek help voluntarily.\",\r\n\r\n <><Links linkTypeID=\"811\" /></>,\r\n\r\n <><b>Walk-In Crisis Intervention </b></>,\r\n\r\n <>Kentucky Community Mental Health Centers (CMHCs) provide walk-in crisis services at many clinic locations. Contact your local <a href='/crisisnos'>CMHC Crisis Line</a> to find a walk-in location near you. <br/></>,\r\n\r\n <><b>Mobile Crisis Services</b></>,\r\n\r\n <>Mobile crisis teams provide assessment, intervention, referral, and follow-up services to individuals experiencing a behavioral health crisis at their home, job, or other community locations. Mobile crisis teams may be available in your area. Contact your local <a href=\"/crisisnos\">CMHC Crisis Line</a> to learn more.</>\r\n\r\n \r\n \r\n\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 70,\r\n content: \"Developmental and Intellectual Disabilities Services\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 80,\r\n content: [\r\n \"Individuals with a diagnosis of intellectual or developmental disability may also receive additional emergency services to provide the support needed to remain in the community. Individuals not experiencing a crisis but seeking to apply for or be connected to services may contact their corresponding Community Mental Health/Intellectual Disability Center (CMHC).\",\r\n <><Links linkTypeID=\"537\" /></>\r\n ]\r\n }\r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n];\r\n\r\nexport default crisis_Content;","import React from 'react';\r\n\r\nfunction BranchInfo(props) {\r\n return (\r\n <div>\r\n <br/>\r\n <b>County:</b> {props.county} <br/>\r\n <b>Region:</b> {props.regionNumber} <br/>\r\n <br/>\r\n <b>CMHC Corporate Office:</b> {props.regionName} <br/>\r\n <b>Corporate Office Phone:</b> {props.phone} <br/>\r\n <b>24-Hour Crisis Phone:</b> {props.countyPhone} <br/>\r\n <b>Adult State Psychiatric Hospital:</b> {props.hospital} <br/>\r\n <b>Hospital Phone:</b> {props.hospitalPhone} <br/> <br/>\r\n \r\n </div>\r\n );\r\n}\r\n\r\nexport default BranchInfo;","//Using the react library\r\nimport React from \"react\";\r\n//Using the react library:\r\nimport { useEffect, useState } from \"react\";\r\n//API Middle man\r\nimport useApi from \"../utils/UseAPI\";\r\n// React loading spinner\r\nimport Spinner from 'react-bootstrap/Spinner';\r\n// Check if Contact info is null\r\nimport BranchInfo from \"./BranchInfo\";\r\n\r\n\r\n\r\nfunction CountyList() {\r\n\r\n const { error, processing, getRequest } = useApi();\r\n const [content, setContent] = useState([]);\r\n const [selected, setSelected] = useState (null);\r\n \r\n useEffect(() => {\r\n\r\n const fetchLinks = async () => {\r\n const [data, status] = await getRequest(null, \"crisisnos\");\r\n if (status == 200) {\r\n setContent(data.data)\r\n }\r\n else {\r\n console.log(error)\r\n }\r\n };\r\n fetchLinks();\r\n }, []);\r\n\r\n return (\r\n\r\n <>\r\n <div title=\"County List\" className=\"col-md-4 col-md-3\"> \r\n {/* Return List */}\r\n <select className=\"form-select\" onChange={(e) => {\r\n // console.log(e.target.value);\r\n const c = content?.find((x) => x.county === e.target.value)\r\n setSelected(c) \r\n // console.log(selected) \r\n }}>\r\n <option>Select a County</option>\r\n {\r\n processing ? <Spinner animation=\"border\" variant=\"success\" /> : content.map((data, index) => {\r\n return (\r\n <option key={index} value={data.county} className=\"form-select\"\r\n \r\n >{data.county}</option>\r\n )\r\n })\r\n }\r\n </select>\r\n \r\n </div>\r\n {selected ? <BranchInfo \r\n county={selected.county}\r\n regionNumber={selected.regionNumber}\r\n regionName={selected.regionName}\r\n phone={selected.phone}\r\n countyPhone={selected.countyPhone}\r\n hospital={selected.hospital}\r\n hospitalPhone={selected.hospitalPhone}\r\n /> : null }\r\n </>\r\n\r\n );\r\n}\r\n\r\nexport default CountyList;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Links from \"../../../components/Links\";\r\nimport CountyList from \"../../../components/CountyList\";\r\n\r\n\r\nconst cMHCHome_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"Regional Boards for Mental Health or Individuals With an Intellectual Disability\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n \"Publicly-funded community services are provided for Kentuckians who have problems with mental health, developmental and intellectual disabilities, or substance abuse, through Kentucky's 14 regional Boards for Mental Health or Individuals With an Intellectual Disability (Regional MHID Boards). Regional MHID Boards are private, nonprofit organizations established by KRS Chapter 210 (see Related Links) which serve residents of a designated multi-county region.\",\r\n \"For information about mental health, developmental and intellectual disabilities, or substance abuse services, contact the local office of your Regional MHID Board. For contact information for the office for your county, select and click on your county on the dropdown list below.\",\r\n\r\n <>\r\n\r\n <b>County List: </b> <br /><br />\r\n <CountyList />\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"Consumer Perception of Care Survey\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 40,\r\n content: [\r\n\r\n <><Links linkTypeID=\"249\" /></>\r\n\r\n ]\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 50,\r\n content: \"Further Information\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 60,\r\n content: [\r\n\r\n \"See Related Links for information about regional boards, including links to their websites, if available.\",\r\n \"See Related Links for a list of contact information by county for all regional board offices, crisis lines, and corresponding state hospitals.\",\r\n \"If you have a problem with or inquiry about mental health, developmental and intellectual disabilities, or substance abuse, that cannot be handled by a local or regional office, get further information and contact information by clicking on one of the links below.\",\r\n <><Links linkTypeID=\"263\" /></>\r\n\r\n ]\r\n\r\n },\r\n\r\n\r\n\r\n\r\n\r\n\r\n];\r\n\r\nexport default cMHCHome_Content;","//Using the react library\r\nimport React from \"react\";\r\n//Using the react library:\r\nimport { useEffect, useState } from \"react\";\r\n//API Middle man\r\nimport useApi from \"../utils/UseAPI\";\r\n// React loading spinner\r\nimport Spinner from 'react-bootstrap/Spinner';\r\n// Report Names\r\nimport ReportName from '../data/dataReports.json';\r\n// React-Bootstrap Form\r\nimport Form from 'react-bootstrap/Form';\r\n\r\nfunction DataReportList() {\r\n\r\n const { error, processing, getRequest } = useApi();\r\n const [allClientsAllPrograms, setAllClientsAllPrograms] = useState([]);\r\n const [adultClientsAndAdultClientsSMI, setAdultClientsAndAdultClientsSMI] = useState([]);\r\n const [childClientsAndChildClientsSED, setChildClientsAndChildClientsSED] = useState([]);\r\n const [crisisStabilizationUnitReport, setCrisisStabilizationUnitReport] = useState([]);\r\n const [deafAndHardHearing, setDeafAndHardHearing] = useState([]);\r\n const [mentalHealth, setMentalHealth] = useState([]);\r\n const [intellectualDisabilities, setIntellectualDisabilities] = useState([]);\r\n const [substanceAbuse, setSubstanceAbuse] = useState([]);\r\n\r\n useEffect(() => {\r\n const fetchLinks = async () => {\r\n const [data, status] = await getRequest(null, \"cmhc/report-data\");\r\n if (status == 200) {\r\n // console.log(data.data);\r\n FilterDocuments(data.data);\r\n }\r\n else {\r\n console.log(error);\r\n }\r\n };\r\n fetchLinks();\r\n }, []);\r\n\r\n function FilterDocuments(formsData) {\r\n\r\n const allClientsAllProgramsFiltered = [];\r\n const adultClientsAndAdultClientsSMIFiltered = [];\r\n const childClientsAndChildClientsSEDFiltered = [];\r\n const crisisStabilizationUnitReportFiltered = [];\r\n const deafAndHardHearingFiltered = [];\r\n const mentalHealthFiltered = [];\r\n const intellectualDisabilitiesFiltered = [];\r\n const substanceAbuseFiltered = [];\r\n\r\n formsData.forEach((form) => {\r\n if (form.reportTypeId == 1 && form.webPage03 == 'I') {\r\n allClientsAllProgramsFiltered.push(form);\r\n // console.log(allClientsAllProgramsFiltered);\r\n }\r\n else if (form.reportTypeId == 2 && form.webPage03 == 'B') {\r\n adultClientsAndAdultClientsSMIFiltered.push(form);\r\n }\r\n else if (form.reportTypeId == 3 && form.webPage03 == 'C') {\r\n childClientsAndChildClientsSEDFiltered.push(form);\r\n }\r\n else if (form.reportTypeId == 4 && form.webPage03 == 'K') {\r\n crisisStabilizationUnitReportFiltered.push(form);\r\n }\r\n else if (form.reportTypeId == 5 && form.webPage03 == 'H') {\r\n deafAndHardHearingFiltered.push(form);\r\n }\r\n else if (form.reportTypeId == 6 && form.webPage03 == 'A') {\r\n mentalHealthFiltered.push(form);\r\n }\r\n else if (form.reportTypeId == 7 && form.webPage03 == 'D') {\r\n intellectualDisabilitiesFiltered.push(form);\r\n\r\n }\r\n else if (form.reportTypeId == 8 && form.webPage03 == 'E') {\r\n substanceAbuseFiltered.push(form);\r\n\r\n }\r\n })\r\n setAllClientsAllPrograms(allClientsAllProgramsFiltered);\r\n setAdultClientsAndAdultClientsSMI(adultClientsAndAdultClientsSMIFiltered);\r\n setChildClientsAndChildClientsSED(childClientsAndChildClientsSEDFiltered);\r\n setCrisisStabilizationUnitReport(crisisStabilizationUnitReportFiltered);\r\n setDeafAndHardHearing(deafAndHardHearingFiltered);\r\n setIntellectualDisabilities(intellectualDisabilitiesFiltered);\r\n setMentalHealth(mentalHealthFiltered);\r\n setSubstanceAbuse(substanceAbuseFiltered);\r\n }\r\n const [selectedListOne, setSelectedListOne] = useState(<></>);\r\n\r\n\r\n const handleRadioChange = (value) => {\r\n\r\n if (value.target.value == \"DBR\") {\r\n setSelectedListOne(\r\n <>\r\n <div className=\"homepage-quick-cta\">\r\n <div className=\"row\">\r\n <div className=\"col-md-10 col-md-10\">\r\n {/* Return List */}\r\n <b>All Clients Served in All Programs</b>\r\n <select target=\"_blank\" className=\"form-select\" onChange={(e) => {\r\n // window.open(window.location, '_blank')\r\n window.location = e.target.value;\r\n\r\n }}>\r\n <option>Select a report</option>\r\n {\r\n processing ? <Spinner animation=\"border\" variant=\"success\" /> : allClientsAllPrograms.map((data, index) => {\r\n return (\r\n <option target=\"_blank\" value={\"https://dbhdid.ky.gov/DataReports/Reports.aspx?r=\" + data.nameRFormatted + \"&x=\"+data.extension.replace(\".\",\"\")+\"&t=1\"} key={index} className=\"form-select\">{data.extension.replace(\".\",\"\") == \"rdl\" ? data.reportDescription +\"*\" : data.reportDescription}</option>\r\n )\r\n }).sort((a, b) => a.name - b.name)\r\n }\r\n </select>\r\n <br />\r\n <br />\r\n <b>Adult Clients and Adult Clients With SMI</b>\r\n <select className=\"form-select\" onChange={(e) => {\r\n window.location = e.target.value;\r\n }}>\r\n <option>Select a report</option>\r\n {\r\n processing ? <Spinner animation=\"border\" variant=\"success\" /> : adultClientsAndAdultClientsSMI.map((data, index) => {\r\n return (\r\n <option target=\"_blank\" value={\"https://dbhdid.ky.gov/DataReports/Reports.aspx?r=\" + data.nameRFormatted + \"&x=\"+data.extension.replace(\".\",\"\")+\"&t=1\"} key={index} className=\"form-select\">{data.extension.replace(\".\",\"\") == \"rdl\" ? data.reportDescription +\"*\" : data.reportDescription}</option>\r\n )\r\n })\r\n }\r\n </select>\r\n <br />\r\n <br />\r\n <b>Child Clients and Child Clients With SED</b>\r\n <select className=\"form-select\" onChange={(e) => {\r\n window.location = e.target.value;\r\n }}>\r\n <option>Select a report</option>\r\n {\r\n processing ? <Spinner animation=\"border\" variant=\"success\" /> : childClientsAndChildClientsSED.map((data, index) => {\r\n return (\r\n <option target=\"_blank\" value={\"https://dbhdid.ky.gov/DataReports/Reports.aspx?r=\" + data.nameRFormatted + \"&x=\"+data.extension.replace(\".\",\"\")+\"&t=1\"} key={index} className=\"form-select\">{data.extension.replace(\".\",\"\") == \"rdl\" ? data.reportDescription +\"*\" : data.reportDescription}</option>\r\n )\r\n })\r\n }\r\n </select>\r\n <br />\r\n <br />\r\n <b>Crisis Stabilization Unit Reports (available by fiscal year only)</b>\r\n <select className=\"form-select\" onChange={(e) => {\r\n window.location = e.target.value;\r\n }}>\r\n <option>Select a report</option>\r\n {\r\n processing ? <Spinner animation=\"border\" variant=\"success\" /> : crisisStabilizationUnitReport.map((data, index) => {\r\n return (\r\n <option target=\"_blank\" value={\"https://dbhdid.ky.gov/DataReports/Reports.aspx?r=\" + data.nameRFormatted + \"&x=\"+data.extension.replace(\".\",\"\")+\"&t=1\"} key={index} className=\"form-select\">{data.extension.replace(\".\",\"\") == \"rdl\" ? data.reportDescription +\"*\" : data.reportDescription}</option>\r\n )\r\n })\r\n }\r\n </select>\r\n <br />\r\n <br />\r\n <b>Deaf and Hard of Hearing</b>\r\n <select className=\"form-select\" onChange={(e) => {\r\n window.location = e.target.value;\r\n }}>\r\n <option>Select a report</option>\r\n {\r\n processing ? <Spinner animation=\"border\" variant=\"success\" /> : deafAndHardHearing.map((data, index) => {\r\n return (\r\n <option target=\"_blank\" value={\"https://dbhdid.ky.gov/DataReports/Reports.aspx?r=\" + data.nameRFormatted + \"&x=\"+data.extension.replace(\".\",\"\")+\"&t=1\"} key={index} className=\"form-select\">{data.extension.replace(\".\",\"\") == \"rdl\" ? data.reportDescription +\"*\" : data.reportDescription}</option>\r\n )\r\n })\r\n }\r\n </select>\r\n <br />\r\n <br />\r\n <b>Mental Health</b>\r\n <select className=\"form-select\" onChange={(e) => {\r\n window.location = e.target.value;\r\n }}>\r\n <option>Select a report</option>\r\n {\r\n processing ? <Spinner animation=\"border\" variant=\"success\" /> : mentalHealth.map((data, index) => {\r\n return (\r\n <option target=\"_blank\" value={\"https://dbhdid.ky.gov/DataReports/Reports.aspx?r=\" + data.nameRFormatted + \"&x=\"+data.extension.replace(\".\",\"\")+\"&t=1\"} key={index} className=\"form-select\">{data.extension.replace(\".\",\"\") == \"rdl\" ? data.reportDescription +\"*\" : data.reportDescription}</option>\r\n )\r\n })\r\n }\r\n </select>\r\n <br />\r\n <br />\r\n <b>Intellectual Disabilities</b>\r\n <select className=\"form-select\" onChange={(e) => {\r\n window.location = e.target.value;\r\n }}>\r\n <option>Select a report</option>\r\n {\r\n processing ? <Spinner animation=\"border\" variant=\"success\" /> : intellectualDisabilities.map((data, index) => {\r\n return (\r\n <option target=\"_blank\" value={\"https://dbhdid.ky.gov/DataReports/Reports.aspx?r=\" + data.nameRFormatted + \"&x=\"+data.extension.replace(\".\",\"\")+\"&t=1\"} key={index} className=\"form-select\">{data.extension.replace(\".\",\"\") == \"rdl\" ? data.reportDescription +\"*\" : data.reportDescription}</option>\r\n )\r\n })\r\n }\r\n </select>\r\n <br />\r\n <br />\r\n <b>Substance Use Disorder</b>\r\n <select className=\"form-select\" onChange={(e) => {\r\n window.location = e.target.value;\r\n }}>\r\n <option>Select a report</option>\r\n {\r\n processing ? <Spinner animation=\"border\" variant=\"success\" /> : substanceAbuse.map((data, index) => {\r\n return (\r\n <option target=\"_blank\" value={\"https://dbhdid.ky.gov/DataReports/Reports.aspx?r=\" + data.nameRFormatted + \"&x=\"+data.extension.replace(\".\",\"\")+\"&t=1\"} key={index} className=\"form-select\">{data.extension.replace(\".\",\"\") == \"rdl\" ? data.reportDescription +\"*\" : data.reportDescription}</option>\r\n )\r\n })\r\n }\r\n </select>\r\n </div>\r\n </div>\r\n </div>\r\n </>\r\n )\r\n }\r\n else {\r\n setSelectedListOne(\r\n <>\r\n\r\n <div className=\"homepage-quick-cta\">\r\n <div className=\"row\">\r\n <div className=\"col-md-10 col-md-10\">\r\n {/* Return List */}\r\n <b>All Clients Served in All Programs</b>\r\n <select className=\"form-select\" target=\"_blank\" onChange={(e) => {\r\n window.location = e.target.value;\r\n }}>\r\n <option>Select a report</option>\r\n {\r\n processing ? <Spinner animation=\"border\" variant=\"success\" /> : allClientsAllPrograms.map((data, index) => {\r\n return (\r\n <option target=\"_blank\" value={\"https://dbhdid.ky.gov/DataReports/Reports.aspx?r=\" + data.name + \"&x=\"+data.extension.replace(\".\",\"\")+\"&t=1\"} key={index} className=\"form-select\">{data.extension.replace(\".\",\"\") == \"rdl\" ? data.reportDescription +\"*\" : data.reportDescription}</option>\r\n )\r\n }).sort((a, b) => a.name - b.name)\r\n }\r\n </select>\r\n <br />\r\n <br />\r\n <b>Adult Clients and Adult Clients With SMI</b>\r\n <select className=\"form-select\" onChange={(e) => {\r\n window.location = e.target.value;\r\n }}>\r\n <option>Select a report</option>\r\n {\r\n processing ? <Spinner animation=\"border\" variant=\"success\" /> : adultClientsAndAdultClientsSMI.map((data, index) => {\r\n return (\r\n <option target=\"_blank\" value={\"https://dbhdid.ky.gov/DataReports/Reports.aspx?r=\" + data.name + \"&x=\"+data.extension.replace(\".\",\"\")+\"&t=1\"} key={index} className=\"form-select\">{data.extension.replace(\".\",\"\") == \"rdl\" ? data.reportDescription +\"*\" : data.reportDescription}</option>\r\n )\r\n })\r\n }\r\n </select>\r\n <br />\r\n <br />\r\n <b>Child Clients and Child Clients With SED</b>\r\n <select className=\"form-select\" onChange={(e) => {\r\n window.location = e.target.value;\r\n }}>\r\n <option>Select a report</option>\r\n {\r\n processing ? <Spinner animation=\"border\" variant=\"success\" /> : childClientsAndChildClientsSED.map((data, index) => {\r\n return (\r\n <option target=\"_blank\" value={\"https://dbhdid.ky.gov/DataReports/Reports.aspx?r=\" + data.name + \"&x=\"+data.extension.replace(\".\",\"\")+\"&t=1\"} key={index} className=\"form-select\">{data.extension.replace(\".\",\"\") == \"rdl\" ? data.reportDescription +\"*\" : data.reportDescription}</option>\r\n )\r\n })\r\n }\r\n </select>\r\n <br />\r\n <br />\r\n <b>Crisis Stabilization Unit Reports (available by fiscal year only)</b>\r\n <select className=\"form-select\" onChange={(e) => {\r\n window.location = e.target.value;\r\n }}>\r\n <option>Select a report</option>\r\n {\r\n processing ? <Spinner animation=\"border\" variant=\"success\" /> : crisisStabilizationUnitReport.map((data, index) => {\r\n return (\r\n <option target=\"_blank\" value={\"https://dbhdid.ky.gov/DataReports/Reports.aspx?r=\" + data.name + \"&x=\"+data.extension.replace(\".\",\"\")+\"&t=1\"} key={index} className=\"form-select\">{data.extension.replace(\".\",\"\") == \"rdl\" ? data.reportDescription +\"*\" : data.reportDescription}</option>\r\n )\r\n })\r\n }\r\n </select>\r\n <br />\r\n <br />\r\n <b>Deaf and Hard of Hearing</b>\r\n <select className=\"form-select\" onChange={(e) => {\r\n window.location = e.target.value;\r\n }}>\r\n <option>Select a report</option>\r\n {\r\n processing ? <Spinner animation=\"border\" variant=\"success\" /> : deafAndHardHearing.map((data, index) => {\r\n return (\r\n <option target=\"_blank\" value={\"https://dbhdid.ky.gov/DataReports/Reports.aspx?r=\" + data.name + \"&x=\"+data.extension.replace(\".\",\"\")+\"&t=1\"} key={index} className=\"form-select\">{data.extension.replace(\".\",\"\") == \"rdl\" ? data.reportDescription +\"*\" : data.reportDescription}</option>\r\n )\r\n })\r\n }\r\n </select>\r\n <br />\r\n <br />\r\n <b>Mental Health</b>\r\n <select className=\"form-select\" onChange={(e) => {\r\n window.location = e.target.value;\r\n }}>\r\n <option>Select a report</option>\r\n {\r\n processing ? <Spinner animation=\"border\" variant=\"success\" /> : mentalHealth.map((data, index) => {\r\n return (\r\n <option target=\"_blank\" value={\"https://dbhdid.ky.gov/DataReports/Reports.aspx?r=\" + data.name + \"&x=\"+data.extension.replace(\".\",\"\")+\"&t=1\"} key={index} className=\"form-select\">{data.extension.replace(\".\",\"\") == \"rdl\" ? data.reportDescription +\"*\" : data.reportDescription}</option>\r\n )\r\n })\r\n }\r\n </select>\r\n <br />\r\n <br />\r\n <b>Intellectual Disabilities</b>\r\n <select className=\"form-select\" onChange={(e) => {\r\n window.location = e.target.value;\r\n }}>\r\n <option>Select a report</option>\r\n {\r\n processing ? <Spinner animation=\"border\" variant=\"success\" /> : intellectualDisabilities.map((data, index) => {\r\n return (\r\n <option target=\"_blank\" value={\"https://dbhdid.ky.gov/DataReports/Reports.aspx?r=\" + data.name + \"&x=\"+data.extension.replace(\".\",\"\")+\"&t=1\"} key={index} className=\"form-select\">{data.extension.replace(\".\",\"\") == \"rdl\" ? data.reportDescription +\"*\" : data.reportDescription}</option>\r\n )\r\n })\r\n }\r\n </select>\r\n <br />\r\n <br />\r\n <b>Substance Use Disorder</b>\r\n <select className=\"form-select\" onChange={(e) => {\r\n window.location = e.target.value;\r\n }}>\r\n <option>Select a report</option>\r\n {\r\n processing ? <Spinner animation=\"border\" variant=\"success\" /> : substanceAbuse.map((data, index) => {\r\n return (\r\n <option target=\"_blank\" value={\"https://dbhdid.ky.gov/DataReports/Reports.aspx?r=\" + data.name + \"&x=\"+data.extension.replace(\".\",\"\")+\"&t=1\"} key={index} className=\"form-select\">{data.extension.replace(\".\",\"\") == \"rdl\" ? data.reportDescription +\"*\" : data.reportDescription}</option>\r\n )\r\n })\r\n }\r\n </select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </>\r\n )\r\n\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n <Form>\r\n {['radio'].map((type) => (\r\n <div key={`inline-${type}`} className=\"mb-3\">\r\n <Form.Check\r\n inline\r\n label=\"Display by Region\"\r\n name=\"group1\"\r\n type={type}\r\n value=\"DBR\"\r\n id={`inline-${type}-1`}\r\n onChange={handleRadioChange}\r\n />\r\n <Form.Check\r\n inline\r\n label=\"Display by Fiscal Year\"\r\n name=\"group1\"\r\n type={type}\r\n value=\"DFY\"\r\n id={`inline-${type}-2`}\r\n onChange={handleRadioChange}\r\n />\r\n\r\n <br />\r\n <br />\r\n </div>\r\n ))}\r\n {selectedListOne}\r\n </Form>\r\n </>\r\n );\r\n}\r\n\r\nexport default DataReportList;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport DataReportList from \"../../../components/DataReportList\";\r\n\r\n\r\nconst dataReports_Content = [\r\n\r\n \r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n <>Click on \"Display by Region\" or \"Display by Fiscal Year\" below to choose a method for grouping the report's results, then select a report from one of the dropdown lists. The header above the list of reports indicates by which method the reports will be grouped.</>,\r\n <><b>Note: </b>\r\n These reports open in a separate tab, so you may have to disable your popup blocker or allow popups from this site.The reports will take a minute to load. </>,\r\n <><DataReportList/></>\r\n ]\r\n },\r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n];\r\n\r\nexport default dataReports_Content;","//Using the react library\r\nimport React from \"react\";\r\n//Using the react library:\r\nimport { useEffect, useState } from \"react\";\r\n//API Middle man\r\nimport useApi from \"../utils/UseAPI\";\r\n// React loading spinner\r\nimport Spinner from 'react-bootstrap/Spinner';\r\n\r\nfunction CenterList() {\r\n\r\n const { error, processing, getRequest } = useApi();\r\n const [contentCounties, setContentCounties] = useState([]);\r\n const [selected, setSelected] = useState(null);\r\n\r\n useEffect(() => {\r\n const fetchLinks = async () => {\r\n const [data, status] = await getRequest(null, \"cmhc/center-info\");\r\n if (status == 200) {\r\n setContentCounties(data.data)\r\n // console.log(data.data)\r\n }\r\n else {\r\n console.log(error)\r\n }\r\n };\r\n fetchLinks();\r\n }, []);\r\n\r\n return (\r\n <>\r\n <div className=\"col-md-4 col-md-3\">\r\n {/* Return List */}\r\n <select className=\"form-select\" onChange={(e) => {\r\n // console.log(e.target.value);\r\n // console.log(contentCounties);\r\n const c = contentCounties?.find((x) => x.id == e.target.value)\r\n\r\n setSelected(c)\r\n // console.log(selected)\r\n }}>\r\n <option>Select a Center</option>\r\n {\r\n processing ? <Spinner animation=\"border\" variant=\"success\" /> : contentCounties.map((data, index) => {\r\n return (\r\n <option key={index} value={data.id} className=\"form-select\"\r\n >{data.description}</option>\r\n )\r\n })\r\n }\r\n </select>\r\n\r\n </div>\r\n {selected ?\r\n <>\r\n <b>Counties Served: </b> {selected.counties.map((data) => {\r\n return (\r\n <div>\r\n {data.name}\r\n </div>\r\n )\r\n })\r\n }\r\n <br />\r\n <a href={selected.web}>Center Website</a>\r\n <br />\r\n <br />\r\n {selected.contacts.map((data) => {\r\n return (\r\n <div>\r\n <b>{data.title}</b><br />\r\n {data.name}<br />\r\n {data.address1}<br />\r\n {data.city}, {data.state} {data.zip}<br />\r\n Phone: {data.phone}\r\n <br />\r\n <br />\r\n </div>\r\n )\r\n })\r\n }\r\n\r\n </>\r\n : null}\r\n </>\r\n\r\n );\r\n}\r\n\r\nexport default CenterList;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport CenterList from \"../../../components/CenterList\";\r\n\r\nconst centers_Content = [\r\n\r\n \r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n <>\r\n Select a regional center from the dropdown list to view information for that region.\r\n <br />\r\n <br />\r\n <CenterList />\r\n <br />\r\n </>\r\n ]\r\n },\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n];\r\n\r\nexport default centers_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst cRD_Content = [\r\n\r\n \r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n <><Links linkTypeID=\"535\" /></>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"Additional Contract Documents\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 40,\r\n content: [\r\n <><Links linkTypeID=\"538\" /></>\r\n ]\r\n },\r\n];\r\n\r\nexport default cRD_Content;","//Using the react library\r\nimport React from \"react\";\r\n//Using the react library:\r\nimport { useEffect, useState } from \"react\";\r\n//API Middle man\r\nimport useApi from \"../utils/UseAPI\";\r\n// React loading spinner\r\nimport Spinner from 'react-bootstrap/Spinner';\r\nimport SanitizeHref from \"../utils/SanitizeHref\";\r\n\r\nfunction DPRForms() {\r\n\r\n const { error, processing, getRequest } = useApi();\r\n const [general, setGeneral] = useState([]);\r\n const [dDID, setDDID] = useState([]);\r\n const [bH, setBH] = useState([]);\r\n const [bHObjective, setBHObjective] = useState([]);\r\n const [sA, setSA] = useState([]);\r\n const [sAObjective, setSAObjective] = useState([]);\r\n\r\n\r\n useEffect(() => {\r\n const fetchLinks = async () => {\r\n const [data, status] = await getRequest(null, \"document/dpr\");\r\n if (status == 200) {\r\n // console.log(data.data.documents);\r\n FormFilter(data.data.documents);\r\n }\r\n else {\r\n console.log(error);\r\n }\r\n };\r\n fetchLinks();\r\n }, []);\r\n\r\n function FormFilter(formsData) {\r\n\r\n const generalFilter = [];\r\n const dDIDFilter = [];\r\n const bHFilter = [];\r\n const sAFilter = [];\r\n const sAObjectiveFilter = [];\r\n const bHObjectiveFilter = [];\r\n formsData.forEach((form) => {\r\n if (form.categoryId == 1 && form.division == 'DID') {\r\n dDIDFilter.push(form);\r\n }\r\n else if (form.categoryId == 8 && form.division == 'BH') {\r\n bHFilter.push(form);\r\n }\r\n else if (form.categoryId == 1 && form.division == 'SA') {\r\n sAFilter.push(form);\r\n }\r\n else if (form.categoryId == 10 && form.division == 'SA') {\r\n sAObjectiveFilter.push(form);\r\n }\r\n else if (form.categoryId == 9 && form.division == null) {\r\n generalFilter.push(form);\r\n }\r\n else if (form.categoryId == 2 && form.division == 'BH') {\r\n bHObjectiveFilter.push(form);\r\n // console.log(bHObjectiveFilter);\r\n\r\n }\r\n })\r\n setGeneral(generalFilter);\r\n setDDID(dDIDFilter);\r\n setBH(bHFilter);\r\n setSA(sAFilter);\r\n setBHObjective(bHObjectiveFilter);\r\n setSAObjective(sAObjectiveFilter);\r\n }\r\n const BuildHref = (url) => {\r\n\r\n let href = \"\";\r\n\r\n const instructions = \"Department Periodic Reports Processing Instructions.pdf\";\r\n const noPrefix = url == \"pi\" || url == \"pb-forms\" || url == \"dataguide\" || url == \"dpr-forms\";\r\n\r\n if(noPrefix ){\r\n href = url;\r\n }else if(url == instructions){\r\n\r\n href = `documents/dpr/documents/${url}`;\r\n\r\n }else{\r\n\r\n href = `documents/pb/documents/${url}`;\r\n }\r\n return SanitizeHref(href);\r\n }\r\n\r\n return (\r\n <>\r\n <div className=\"\">\r\n <br />\r\n <h2 id=\"General Information\">General Information</h2>\r\n <br />\r\n <div className=\"row\">\r\n <div className=\"col-md-6 col-md-3\">\r\n <ul className=\"no-bullet\">\r\n {processing ? <Spinner animation=\"border\" variant=\"success\" /> : general.map((data, index) => {\r\n const sanitizeURL = BuildHref(data.url); \r\n return (\r\n \r\n <li className=\"quick-links-body\">\r\n <a title={data.name} key={index} href={sanitizeURL}>{data.name}</a>\r\n </li>\r\n )\r\n })}\r\n </ul>\r\n <br />\r\n <h2>Instructions and Objectives</h2>\r\n <br />\r\n <i>Developmental and Intellectual Disabilities</i>\r\n\r\n <ul className=\"no-bullet\">\r\n <b>Instructions</b><br />\r\n {processing ? <Spinner animation=\"border\" variant=\"success\" /> : dDID.map((data, index) => {\r\n return (\r\n <li className=\"quick-links-body\">\r\n <a key={index} href={SanitizeHref(\"/documents/cmhc/dpr/documents/\" + data.url)}>{data.name}</a>\r\n </li>\r\n )\r\n })}\r\n </ul>\r\n <br />\r\n <i>Mental Health</i>\r\n <ul className=\"no-bullet\">\r\n <b>Instructions</b><br />\r\n\r\n {processing ? <Spinner animation=\"border\" variant=\"success\" /> : bH.map((data, index) => {\r\n return (\r\n <li className=\"quick-links-body\">\r\n <a key={index} href={data.url == \"113H-iHOPE Project Report Form.pdf\" ? SanitizeHref(\"documents/cmhc/dpr/documents/\" + data.url) : SanitizeHref(\"documents/cmhc/dpr/documents/\" + data.url)}>{data.name}</a>\r\n </li>\r\n )\r\n })}\r\n </ul>\r\n <ul className=\"no-bullet\">\r\n <br />\r\n <b>Objectives</b><br />\r\n {processing ? <Spinner animation=\"border\" variant=\"success\" /> : bHObjective.map((data, index) => {\r\n return (\r\n <li className=\"quick-links-body\">\r\n <a key={index} href={SanitizeHref(\"/documents/cmhc/dpr/documents/\" + data.url)}>{data.name}</a>\r\n </li>\r\n )\r\n })}\r\n </ul>\r\n <br />\r\n <i>Substance Abuse</i>\r\n <ul className=\"no-bullet\">\r\n <b>Instructions</b><br />\r\n {processing ? <Spinner animation=\"border\" variant=\"success\" /> : sA.map((data, index) => {\r\n return (\r\n <li className=\"quick-links-body\">\r\n <a key={index} href={SanitizeHref(\"/documents/cmhc/dpr/documents/\" + data.url)}>{data.name}</a>\r\n </li>\r\n )\r\n })}\r\n </ul>\r\n <ul className=\"no-bullet\">\r\n <br />\r\n <b>Objectives</b><br />\r\n {processing ? <Spinner animation=\"border\" variant=\"success\" /> : sAObjective.map((data, index) => {\r\n return (\r\n <li className=\"quick-links-body\">\r\n <a key={index} href={SanitizeHref(\"/documents/cmhc/dpr/documents/\" + data.url)}>{data.name}</a>\r\n </li>\r\n )\r\n })}\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n </>\r\n );\r\n}\r\n\r\nexport default DPRForms;","//Using the react library\r\nimport React from \"react\";\r\n//Using the react library:\r\nimport { useEffect, useState } from \"react\";\r\n//API Middle man\r\nimport useApi from \"../utils/UseAPI\";\r\n// React loading spinner\r\nimport Spinner from 'react-bootstrap/Spinner';\r\nimport SanitizeHref from \"../utils/SanitizeHref\";\r\n\r\nfunction PBFormsInfo() {\r\n\r\n const { error, processing, getRequest } = useApi();\r\n const [general, setGeneral] = useState([]);\r\n const [dDID, setDDID] = useState([]);\r\n const [bH, setBH] = useState([]);\r\n const [bHObjective, setBHObjective] = useState([]);\r\n const [sA, setSA] = useState([]);\r\n const [sAObjective, setSAObjective] = useState([]);\r\n\r\n\r\n useEffect(() => {\r\n const fetchLinks = async () => {\r\n const [data, status] = await getRequest(null, \"document/dpr\");\r\n if (status == 200) {\r\n // console.log(data.data.documents);\r\n FormFilter(data.data.documents);\r\n }\r\n else {\r\n console.log(error);\r\n }\r\n };\r\n fetchLinks();\r\n }, []);\r\n\r\n function FormFilter(formsData) {\r\n\r\n const generalFilter = [];\r\n const dDIDFilter = [];\r\n const bHFilter = [];\r\n const sAFilter = [];\r\n const sAObjectiveFilter = [];\r\n const bHObjectiveFilter = [];\r\n formsData.forEach((form) => {\r\n if (form.categoryId == 1 && form.division == 'DID') {\r\n dDIDFilter.push(form);\r\n }\r\n else if (form.categoryId == 8 && form.division == 'BH') {\r\n bHFilter.push(form);\r\n }\r\n else if (form.categoryId == 1 && form.division == 'SA') {\r\n sAFilter.push(form);\r\n }\r\n else if (form.categoryId == 10 && form.division == 'SA') {\r\n sAObjectiveFilter.push(form);\r\n }\r\n else if (form.categoryId == 9 && form.division == null) {\r\n generalFilter.push(form);\r\n\r\n\r\n }\r\n else if (form.categoryId == 2 && form.division == 'BH') {\r\n bHObjectiveFilter.push(form);\r\n // console.log(bHObjectiveFilter);\r\n\r\n }\r\n })\r\n setGeneral(generalFilter);\r\n setDDID(dDIDFilter);\r\n setBH(bHFilter);\r\n setSA(sAFilter);\r\n setBHObjective(bHObjectiveFilter);\r\n setSAObjective(sAObjectiveFilter);\r\n }\r\n\r\n const BuildHref = (url) => {\r\n\r\n let href = \"\";\r\n\r\n const instructions = \"Department Periodic Reports Processing Instructions.pdf\";\r\n const noPrefix = url == \"pi\" || url == \"pb-forms\" || url == \"dataguide\" || url == \"dpr-forms\";\r\n\r\n if (noPrefix) {\r\n href = url;\r\n } else if (url == instructions) {\r\n\r\n href = `documents/cmhc/dpr/documents/${url}`;\r\n\r\n } else {\r\n\r\n href = `documents/cmhc/pb/documents/${url}`;\r\n }\r\n return SanitizeHref(href);\r\n }\r\n\r\n\r\n return (\r\n <>\r\n <div className=\"\">\r\n <br />\r\n <h2 id=\"General Information\">General Information</h2>\r\n <br />\r\n <div className=\"row\">\r\n <div className=\"col-md-6 col-md-3\">\r\n <ul className=\"no-bullet\">\r\n {processing ? <Spinner animation=\"border\" variant=\"success\" /> : general.map((data, index) => {\r\n const sanitizeURL = BuildHref(data.url);\r\n return (\r\n\r\n <li className=\"quick-links-body\">\r\n <a key={index} title={data.name} href={sanitizeURL}>{data.name}</a>\r\n </li>\r\n )\r\n })}\r\n </ul>\r\n <br />\r\n <h2>Instructions and Objectives</h2>\r\n <br />\r\n <i>Developmental and Intellectual Disabilities</i>\r\n\r\n <ul className=\"no-bullet\">\r\n <b>Instructions</b><br />\r\n {processing ? <Spinner animation=\"border\" variant=\"success\" /> : dDID.map((data, index) => {\r\n return (\r\n <li className=\"quick-links-body\">\r\n <a key={index} href={SanitizeHref(\"/documents/cmhc/pb/documents/\" + data.url)}>{data.name}</a>\r\n </li>\r\n )\r\n })}\r\n </ul>\r\n <br />\r\n <i>Mental Health</i>\r\n <ul className=\"no-bullet\">\r\n <b>Instructions</b><br />\r\n\r\n {processing ? <Spinner animation=\"border\" variant=\"success\" /> : bH.map((data, index) => {\r\n return (\r\n <li className=\"quick-links-body\">\r\n <a key={index} href={SanitizeHref(\"documents/cmhc/pb/documents/\" + data.url)}>{data.name}</a>\r\n </li> \r\n )\r\n })}\r\n </ul>\r\n <ul className=\"no-bullet\">\r\n <br />\r\n <b>Objectives</b><br />\r\n {processing ? <Spinner animation=\"border\" variant=\"success\" /> : bHObjective.map((data, index) => {\r\n return (\r\n <li className=\"quick-links-body\">\r\n <a key={index} href={SanitizeHref(\"/documents/cmhc/pb/documents/\" + data.url)}>{data.name}</a>\r\n </li>\r\n )\r\n })}\r\n </ul>\r\n <br />\r\n <i>Substance Abuse</i>\r\n <ul className=\"no-bullet\">\r\n <b>Instructions</b><br />\r\n {processing ? <Spinner animation=\"border\" variant=\"success\" /> : sA.map((data, index) => {\r\n return (\r\n <li className=\"quick-links-body\">\r\n <a key={index} href={SanitizeHref(\"/documents/cmhc/pb/documents/\" + data.url)}>{data.name}</a>\r\n </li>\r\n )\r\n })}\r\n </ul>\r\n <ul className=\"no-bullet\">\r\n <br />\r\n <b>Objectives</b><br />\r\n {processing ? <Spinner animation=\"border\" variant=\"success\" /> : sAObjective.map((data, index) => {\r\n return (\r\n <li className=\"quick-links-body\">\r\n <a key={index} href={SanitizeHref(\"/documents/cmhc/pb/documents/\" + data.url)}>{data.name}</a>\r\n </li>\r\n )\r\n })}\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n </>\r\n );\r\n}\r\n\r\nexport default PBFormsInfo;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport DPRForms from \"../../../components/DPRForms\";\r\nimport PBFormsInfo from \"../../../components/PBFormsInfo\";\r\n\r\nconst planAndBudget_Content = [\r\n\r\n \r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n <><PBFormsInfo /></>\r\n ]\r\n },\r\n];\r\n\r\nexport default planAndBudget_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Links from \"../../../components/Links\";\r\n\r\n\r\nconst qMOTSurveys_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"Consumer Perception of Care Survey Outcomes\"\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 20,\r\n content: <><br/>Survey Results:</>\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 30,\r\n content: <><Links linkTypeID=\"251\" /></>\r\n },\r\n];\r\n\r\nexport default qMOTSurveys_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport DocumentsDropdown from \"../../../components/DocumentsDropdown\";\r\nimport Links from \"../../../components/Links\";\r\n\r\n\r\nconst qMOTDocs_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"Meetings Agendas\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n <>\r\n Select an agenda date from the dropdown list below to view the agenda.\r\n\r\n\r\n <DocumentsDropdown typeId=\"8\" />\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"Meetings Summaries\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 40,\r\n content: [\r\n <>\r\n Select a meeting date from the dropdown list below to view the summary.\r\n\r\n <DocumentsDropdown typeId=\"1\" />\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 50,\r\n content: \"Presentations\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 60,\r\n content: [\r\n <>\r\n Select a presentation title from the list below to view the presentation.\r\n <br />\r\n <br />\r\n <Links linkTypeID=\"44\" />\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 70,\r\n content: \"Other Documents\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 80,\r\n content: [\r\n <>\r\n Select a document from the list below to view the document.\r\n <br />\r\n <br />\r\n <Links linkTypeID=\"45\" />\r\n\r\n </>\r\n ]\r\n\r\n }\r\n ];\r\n\r\n\r\nexport default qMOTDocs_Content; ","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Links from \"../../../components/Links\";\r\n\r\n\r\nconst pI_Content = [\r\n\r\n \r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n <><Links linkTypeID=\"736\" /></>\r\n ]\r\n },\r\n];\r\n\r\nexport default pI_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport DPRForms from \"../../../components/DPRForms\";\r\n\r\nconst dPR_Content = [\r\n\r\n \r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n <><DPRForms /></>\r\n ]\r\n },\r\n];\r\n\r\nexport default dPR_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst dataInfo_Content = [\r\n\r\n \r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n <><Links linkTypeID={112} /></>\r\n ]\r\n },\r\n];\r\n\r\nexport default dataInfo_Content;\r\n\r\n","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport { Link } from \"react-router-dom\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst sUDHome_Content = [\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n \"The Division of Substance (DSUD) supports implementation of programs and services for Kentuckians impacted by substance use and/or co-occurring substance use and mental health disorders. Partnerships with community-based organizations, service providers, people with lived experience, universities, and state agencies support the delivery of prevention, harm reduction, treatment, and recovery support services. Through state funding and federal grants, these services are publicly available to persons across the Commonwealth.\",\r\n <>In addition, the Division of Substance Use Disorder aims to expand access to <Link to='/sud/bestpractice'>evidence-based services</Link> that are person-centered, trauma-informed, accessible, and of quality for all Kentuckians.</>,\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 20,\r\n content: \"Division of Substance Use Disorder Branches\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 30,\r\n content:[\r\n <>\r\n Each branch provides guidance and technical assistance on the implementation of evidence-based practices, manages state-operated programs, and coordinates efforts to build a recovery-oriented system of care across the lifespan.\r\n <br />\r\n <br />\r\n\r\n <Links linkTypeID={\"776\"} />\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 40,\r\n content: \"Find Help\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 50,\r\n content:\r\n <>\r\n <ul className=\"no-bullet\">\r\n <li><a className='quick-links-body' href='https://findhelpnowky.org/ky '>Find Help Now</a></li>\r\n <li><a className='quick-links-body' href='/providerdirectory '>Treatment Locator Tool </a></li>\r\n <li><a className='quick-links-body' href='https://www.findrecoveryhousingnowky.org/'>Find Recovery Housing</a></li>\r\n <li><a className='quick-links-body' href='https://988.ky.gov/'>988 Suicide and Crisis Line </a></li>\r\n <li><a className='quick-links-body' href='https://dpt2.samhsa.gov/treatment/directory.aspx'>Methadone Treatment Directory</a></li>\r\n <li><a className='quick-links-body' href='https://nida.nih.gov/publications/drugfacts/naloxone'>Naloxone Website </a></li>\r\n </ul>\r\n\r\n </>\r\n }\r\n];\r\n\r\nexport default sUDHome_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst eBPIRecovery_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"Recovery\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n <>\r\n Recovery from mental illness is not only possible but expected. The President's New Freedom Commission Report (2003) envisioned \"a future when everyone with a mental illness will recover, a future when mental illnesses can be prevented or cured, a future when mental illnesses are detected early, and a future when everyone with a mental illness at any stage of life has access to effective treatment and supports—essentials for living, working, learning, and participating fully in the community.\"\r\n </>]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 21,\r\n content: <>Defining \"Recovery\"</>\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 22,\r\n content: [\r\n \"In August 2010, a group of leaders in the behavioral health field, including people in recovery from mental illness and substance use disorders, met with the national agency called the Substance Abuse Mental Health Services Administration (SAMHSA). The team worked together to develop a working definition of recovery that would apply to both mental health and substance use populations. The team developed the following definition for recovery:\",\r\n \"A process of change through which individuals improve their health and wellness, live a self-directed life, and strive to reach their full potential.\",\r\n <>\r\n The team identified four dimensions that support recovery:\r\n </>,\r\n <>\r\n <ul>\r\n <li><b>Health</b></li>\r\n <li><b>Home</b></li>\r\n <li><b>Purpose</b></li>\r\n <li><b>Community</b></li>\r\n </ul>\r\n </>,\r\n <>\r\n The team also identified ten Principles of Recovery:\r\n <br />\r\n <br />\r\n <ol>\r\n <li>Recovery emerges from hope.</li>\r\n <li>Recovery is person driven.</li>\r\n <li>Recovery occurs via many pathways.</li>\r\n <li>Recovery is holistic.</li>\r\n <li>Recovery is supported by peers and allies.</li>\r\n <li>Recovery is supported through relationship and social networks.</li>\r\n <li>Recovery is culturally-based and influenced.</li>\r\n <li>Recovery is supported by addressing trauma.</li>\r\n <li>Recovery involves individual, family, community strengths, and responsibility.</li>\r\n <li>Recovery is based on respect.</li>\r\n </ol>\r\n </>,\r\n <>Click \"SAMHSA Recovery\" in the Related Links box to find out more about the four dimensions and the 10 Principles of Recovery.</>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"Peer Support\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 40,\r\n content: [\r\n \"The President's New Freedom Commission Report (2003) also outlines a plan to transform mental health care in America to promote a recovery-oriented service system. Peer support is an important element in this transformation process.\",\r\n \"The Peer Specialist Service is a structured and scheduled therapeutic activity with an individual client or group, provided by a trained, self-identified consumer of mental health or substance use services. A Peer Specialist guides clients toward the identifying and achieving of specific goals defined by the client and specified in the Treatment Plan.\",\r\n <><b>How to Become a Peer Support Specialist</b></>,\r\n \"To become qualified, a Kentucky Peer Specialist (KPS) completes 30 hours of training and passes both a written and oral test. The job of a KPS is not to replace current clinical mental health staff but to offer additional and/or alternative options to help people in their efforts to recover.\",\r\n \"Regular supervision is required, and each qualified Kentucky Peer Specialist must earn at least six hours of continuing education each year. To locate a training event in Kentucky, access the following links by the type of Peer Specialist.\",\r\n <><Links linkTypeID=\"633\" /></>,\r\n <><b>How to Become a Trainer for Peer Support Curricula</b></>,\r\n <>The Department for Behavioral Health, Developmental & Intellectual Disabilities (DBHDID) supports consumer-driven recovery-oriented services. DBHDID approves training curricula for providers that request to become trainers for the Peer Specialist types listed above. For more information on how to become a trainer, access the \"Curriculum Approval Process for PSS\" link in Related Links.</>,\r\n <><b>For More Information</b></>,\r\n <>The Kentucky regulations for peer support are: </>\r\n\r\n ]\r\n },\r\n]\r\nexport default eBPIRecovery_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\n\r\nconst sMVF_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n \"The overall goal of the Service Members, Veterans and Their Families Behavioral Health Initiative (SMVF) is to strengthen the statewide behavioral health care systems and services for SMVF through ongoing collaboration at the federal, state and local levels.\"\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 20,\r\n content: \"SMVF Priorities\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 30,\r\n content: [\r\n <>\r\n <ol>\r\n <li>Increase access to appropriate and effective behavioral health services for the SMVF population.</li>\r\n <li>Maximize quality of services and efficiently allocate resources.</li>\r\n <li>Sustain a stable and healthy environment focused on awareness, employment and justice.</li>\r\n <li>Capture data to support decision-making.</li>\r\n </ol>\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 40,\r\n content: \"Operation Immersion\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 50,\r\n content: \"Representatives from federal, military, state and professional organizations across Kentucky unite to host the annual Operation: Headed Home (OHH) Conference, a statewide conference that addresses the needs of SMVF, caregivers, and behavioral and medical health professionals with information, resources, and support regarding Traumatic Brain Injury (TBI), Post-Traumatic Stress Disorder (PTSD) and Suicide Prevention.\"\r\n }\r\n];\r\n\r\nexport default sMVF_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\n\r\n\r\nconst headedHome_Content = [\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"OHH received the National Balderson Public Health Leadership Award\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n \"Representatives from federal, military, state and professional organizations across Kentucky unite to host the annual Operation Headed Home (OHH) Conference\",\r\n \"This statewide conference addresses the needs of Service Members, Veterans and Their Families (SMVF), caregivers, and behavioral and medical health professionals, with information, resources, and support regarding Traumatic Brain Injury (TBI), Post-Traumatic Stress Disorder (PTSD) and suicide prevention.\",\r\n <><b><i>I attended the Operation Headed Home Conference at Fort Campbell. I just wanted to let you know how proud I was to see such a \"Top Drawer\" program offered by my colleagues.</i></b> — Participant</>\r\n ]\r\n },\r\n];\r\n\r\nexport default headedHome_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst aSAMPPC_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"The ASAM Criteria\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n \"The ASAM Criteria is the most widely used and comprehensive set of standards for placement, continued service, and transfer of patients with addiction and co-occurring conditions. Formerly known as the ASAM patient placement criteria, The ASAM Criteria is the result of a collaboration that began in the 1980s to define one national set of criteria for providing outcome-oriented and results-based care in the treatment of addiction. Many states across the country are using The ASAM Criteria as the foundation of their efforts to improve the addiction treatment system.\",\r\n \"Level of care recommendations and treatment plans are developed based on multidimensional patient assessments that consider the patient’s biomedical, psychological, and social needs.\",\r\n \"As of July 1, 2012, all Community Mental Health Centers were required to use the American Society of Addiction Medicine (ASAM) Patient Placement Criteria (PPC).\",\r\n \"Additionally, the Managed Care Organizations (MCOs) require its use to authorize treatment initiation, continuation and discharge.\",\r\n \"For more information about The ASAM Criteria including the evidence-based, Levels of Care, and who uses The ASAM Criteria visit About the ASAM.\",\r\n \"The 4th Edition of The ASAM Criteria is available in print and digital versions to enable more effective implementation of The ASAM Criteria® in clinical practice. \"\r\n ]\r\n },\r\n];\r\n\r\nexport default aSAMPPC_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst faithBased_Content = [\r\n\r\n\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n \"Faith-based communities and organizations have an essential role to play in building resilience and facilitating recovery for those living with challenges associated with mental health, substance use, and/or co-occurring disorders.\",\r\n \"With accurate information and effective resources and partnerships these organizations can address the most pressing needs of their communities.\",\r\n \"The Division can support faith-based and community partners by:\",\r\n <>\r\n Help to:\r\n <br />\r\n <br />\r\n\r\n <ul>\r\n <li>Identify local resources and funding opportunities that may support substance use prevention, intervention, treatment and recovery.</li>\r\n <li>Providing training and technical assistance on various behavioral health topics, such as suicide prevention, evidence-based substance use treatment, recovery supports, the role of faith-based organizations, and more. </li>\r\n <li>Linking to community-based partners to support service delivery and connection to resources. </li>\r\n\r\n </ul>\r\n </>\r\n ]\r\n },\r\n];\r\n\r\nexport default faithBased_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst kYMomsMATR_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"Our Mission\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n \"KY-Moms MATR (Maternal Assistance Towards Recovery) is a behavioral health prevention and case management program focused on risks and effects of substance use/misuse while providing education, information, resources, support and hope to pregnant and postpartum individuals and their families and to the professionals who serve them.\",\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"Our Vision\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 40,\r\n content: [\r\n \"We are dedicated to connecting pregnant and postpartum individuals and their families in Kentucky with the resources and tools they need to recognize and overcome risk factors and symptoms of prenatal and postpartum substance use/misuse.\",\r\n \"We are dedicated to connecting and educating professionals in Kentucky with the resources and tools they need to recognize, learn, and treat risk factors and symptoms of prenatal and postpartum substance use/misuse, along with providing access to available treatment and recovery service options.\",\r\n \"We aim to increase overall awareness of and reduce the stigma surrounding prenatal and postpartum substance use/misuse allowing parents to feel heard, acknowledged and supported, and they will engage with informed resources to help lessen the burden, so they no longer feel alone or afraid.\",\r\n \"Through prevention education and case management services, we will provide information, resources, and supports to pregnant and postpartum individuals and their families from all backgrounds who might otherwise be unable to access the behavioral health services, recovery supports and medical care they need.\",\r\n \"Working in partnerships with community partners, organizations, and agencies, we aim to strengthen the support network in our communities to ensure pregnant and postpartum women are screened, referred and engaged in treatment and recovery supports throughout pregnancy and up to 60 days postpartum.\"\r\n\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 50,\r\n content: \"Our Service\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 60,\r\n content: [\r\n \"KY-Moms MATR services offer unique and tailored substance use prevention and case management services specifically to meet the needs of pregnant and postpartum individuals. KY-Moms MATR Prevention Specialists and Case Managers are specifically trained in specialized topics and needs of individuals experiencing pregnancy, postpartum and lactation periods.\",\r\n \"KY-Moms MATR prevention services educate pregnant and postpartum individuals and their families of potential risks related to substance use during pregnancy and postpartum periods. There are three (3) intensities of substance use prevention services: Universal Prevention Education, Selective Prevention Education, and Indicated Prevention Education. Through a brief screening, a KY-Moms MATR Prevention Specialist can assist the individual in identifying which level of prevention best fits their needs.\",\r\n \"A primary focus of the case management service is to engage high-risk pregnant women in needed services, such as mental health and/or substance abuse treatment, domestic violence services, and smoking cessation programs.\",\r\n \"KY-Moms MATR-case managers assist the client in identifying and addressing their immediate needs (for example, housing, child care, financial assistance, employment or GED); encourage prenatal care and the client’s involvement in programs such as HANDS and WIC; and encourage the client to practice harm reduction strategies.\",\r\n <>\r\n KY-Moms MATR prevention specialists and case managers are available to meet with\r\n pregnant and postpartum persons individually to resources and support that to reduce stress and risk factors during their pregnancy, postpartum and lactation periods. These resources and support may include the following: <br />\r\n\r\n <ul>\r\n <li>Financial resources.</li>\r\n <li>Housing resources.</li>\r\n <li>Nutritional information.</li>\r\n <li>Transportation to medical appointments.</li>\r\n <li>Assistance to stop using substances.</li>\r\n <li>Assistance for smoking cessation</li>\r\n <li>Assistance to reduce additional symptoms of substance use risk factors and disorders.</li>\r\n </ul>\r\n </>,\r\n \"KY-Moms MATR services are currently offered in all 14 regions and all counties across the state. Each region offers services specific to pregnant and postpartum individuals of in their communities. Please view the Services Map in Related Links for regional contact information, and visit the links below for specific services offered in each region.\",\r\n <><Links linkTypeID=\"416\" /></>\r\n\r\n ]\r\n },\r\n];\r\n\r\nexport default kYMomsMATR_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst oxfordHouse_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n \"Oxford House is a concept in recovery from drug and alcohol addiction. In its simplest form, an Oxford House describes a democratically run, self-supporting and drug free home. Parallel to this concept lies the organizational structure of Oxford House, Inc. This publicly supported, non-profit 501(c)3 corporation is the umbrella organization that provides the network connecting all Oxford Houses and allocates resources to duplicate the Oxford House concept where needs arise.\",\r\n \"Oxford Houses are established to be self-sustaining recovery homes. To be chartered: (1) the house must be democratically self-run, following the policies and procedures of the Oxford House Manual© (see Related Links); (2) the group must be financially self-supporting; and (3) the group must immediately expel any resident who returns to using alcohol or illicit drugs. Evicted residents are encouraged to seek treatment and reapply for admittance into the home following completion of a treatment program.\",\r\n \"Kentucky currently has over one-hundred Oxford Houses throughout the Commonwealth. The number of residents in a house may range from six to twelve; there are houses for men, women, women with children, and men with children.\",\r\n \"See Related Links for more information\"\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 20,\r\n content: \"Help and Crisis Lines\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 30,\r\n content: [\r\n <>\r\n <ul>\r\n <li>Mental Health Crisis Hotline: (800) 221-0446</li>\r\n <li>Substance Abuse Treatment Referral: (888) 729-8028</li>\r\n <li>Veterans Administration Benefits: (800) 827-100</li>\r\n\r\n </ul>\r\n </>\r\n ]\r\n\r\n }\r\n];\r\n\r\nexport default oxfordHouse_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nconst kRHN_Content = [\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n \"Recovery housing, also known as sober living, is a type of supportive housing that is designed to provide a safe and stable living environment for people who are in recovery from addiction. Recovery housing can be an important step for people who are transitioning from inpatient treatment programs or who are looking for a supportive living environment while they continue their recovery journey.\",\r\n \"Recovery housing is typically based on the social model of recovery, which emphasizes peer support and community involvement as important components of recovery. In a recovery housing setting, residents are encouraged to support each other through their recovery journeys, and to take an active role in the management of the house. This can include participating in house meetings, helping to plan social activities, and contributing to the upkeep of the house.\",\r\n <>\r\n For more information about different kinds of recovery housing, visit the resources below:\r\n <br />\r\n <br />\r\n <ol>\r\n <li><b><a href='https://narronline.org/'>National Alliance for Recovery Residences (NARR)</a>:</b> NARR is a non-profit organization that provides a national standard for recovery housing, as well as resources and support for recovery housing providers.</li>\r\n <li><b><Link to={\"/sud/oxfordhouse\"}>Oxford House</Link>:</b> Oxford House is a network of self-run recovery houses that are operated by residents themselves, with support from a central organization. Oxford Houses can be found in many communities across the United States.</li>\r\n <li><b><a href=\"https://www.chfs.ky.gov/agencies/dbhdid/Pages/krhn.aspx\">Kentucky Recovery Housing Network (KRHN)</a>:</b> The Kentucky Recovery Housing Network (KRHN) is the state affiliate of the National Alliance for Recovery Residences (NARR), and aims to support and enhance the quality of recovery housing in Kentucky. The KRHN operates a certification program for recovery housing, which sets standards for safe, supportive, and high-quality recovery housing in the state. KRHN provides training, technical assistance, and networking opportunities for recovery housing providers, and works to promote the adoption of best practices in recovery housing. The KRHN also serves as a resource for individuals in recovery who are seeking safe and supportive housing options. By working to improve the quality of recovery housing in Kentucky, the KRHN is helping to create a strong foundation for long-term recovery and improved quality of life for individuals in recovery.</li>\r\n </ol>\r\n </>\r\n ]\r\n },\r\n];\r\n\r\nexport default kRHN_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst women_Content = [\r\n\r\n \r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n \"Pregnant individuals that are dependent on substances face tremendous stigma from their family, social networks, and society. According to the National Institute on Drug Abuse, more than 19.5 million women in the U.S. have used illicit substances in the last year and 8.4 million women have misused prescription substances during the past year.\",\r\n \"Substance exposed infants and children have also been shown to have significantly higher rates of early mental health and behavioral problems, as well as higher rates of adverse birth outcomes, and require increased health care utilization after discharge.\",\r\n \"Opioid-dependent pregnant individuals often do not receive the treatment that they need and require, resulting in potential risks of harm to the baby.\",\r\n \"Across Kentucky, a variety of services exist and are provided to women, however they are often not well coordinated, which may lead to ineffective care delivery. Our goal is to support implementation of coordinated services that can intervene at multiple stages: pre-pregnancy, prenatal, birth, neonatal, and during childhood development.\"\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 20,\r\n content: \"Service Initiatives\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 30,\r\n content: [\r\n \"As a collaborative effort, Kentucky is working across many agencies and departments to collect data annually with relation to people of child-bearing age, substance use during pregnancy, substance-effected births and substance-exposed births. \",\r\n <>The Division is working with the Department for Public Health (DPH) and Department for Community-Based Services (DCBS) to implement an initiative around <a href='https://dbhdidtest.ky.gov/documents/dbh/siac/handouts/20160928.pdf'>plans of safe care</a> for babies identified as being substance-effected or potentially substance-exposed. A critical part of addressing concerns around substance-effected and/or substance-exposed infants assures that the child is able to live and thrive in a safe, stable, and nurturing environment during the early years of development and beyond. This requires services and support in the community for the family, mother, infant and developing child.</>,\r\n \"In addition, the Kentucky Justice and Public Safety Cabinet, Office of Drug Control Policy (ODCP), in collaboration with the Department for Behavioral Health, Developmental and Intellectual Disabilities (DBHDID), supports annual competitive funding opportunities that aim to decrease incidence of Neonatal Abstinence Syndrome (NAS), advance the delivery of treatment and recovery supports for pregnant and parenting people with opioid use disorder (OUD) and expand support for children and families impacted by substance use disorder (SUD).\",\r\n \"Through consistent early identification, appropriate referrals, and utilization of available services including case management, peer and family support services, therapeutic, medical, and other follow-up services, it is expected that both short and long term outcomes for families will improve.\",\r\n \"See related links below for additional resources.\"\r\n ]\r\n\r\n }\r\n];\r\n\r\nexport default women_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport { Link } from \"react-router-dom\";\r\nimport SharedRisk from '../../../assets/img/sud/Bhpp_Shared_Risk.png';\r\n\r\n\r\n\r\nconst bHPP_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n <>\r\n The Prevention and Promotion Branch of the Division of Substance Use Disorder (DSUD) provides training and technical assistance on evidence-based substance use/misuse prevention to the 14 Regional Prevention Centers (RPCs) across the state as well as other state and community partners. The Branch focuses on the following:\r\n <br />\r\n <ul>\r\n <li><b><Link to={\"/sud/sa-pes\"}>Prevention Enhancement Specialists</Link> </b>\r\n provide training and technical assistance on alcohol, cannabis, nicotine, and stimulant use/misuse prevention including addressing the shared risk and protective factors for using those substances, suicide, and mental health\r\n </li>\r\n <li><b><Link to={\"/sud/yeg\"}>Youth Empowerment</Link> </b>to enable youth to be leaders in substance use/misuse prevention in their communities</li>\r\n <li><b><Link to={\"/sud/wdye\"}>Workforce Development </Link></b>which includes training for current prevention workforce members as well as a paid internship program for undergraduate and graduate students\r\n\r\n </li>\r\n <li><b>Evidence-based programming</b> for schools such as <Link to='/sud/strength'><b>Sources of Strength</b></Link> (Sources) and <b><Link to={\"/sud/tgd\"}>Too Good for Drugs</Link></b> as well as toolkits, like the <b><a href={\"https://dbhdidtest.ky.gov/documents/dbh/bhpp/6EBProgrammingGuideforSchools.docx\"}>Evidence-Based Programming Guide for Schools </a></b></li>\r\n <li>Statewide projects such as <b><Link to={\"/sud/dtp\"}>The Dinner Table Project</Link></b> to promote family bonding and resilience and <b><Link to={\"/sud/pip\"}>Partners in Prevention</Link></b> to provide information on ways different segments of the community can help prevent substance use/misuse</li>\r\n <li><b><Link to={\"/sud/kpsap\"}>The Purple Star Program </Link></b>to recognize schools who provide extra support for military-connected youth</li>\r\n <li>The <b><Link to={\"/sud/synar\"}>Synar</Link></b> program to help prevent sales of nicotine products to those under 21</li>\r\n <li>The <b><Link to={\"/sud/zero\"}>Zero Tolerance</Link></b> program for youth who are charged with an under 21 alcohol-related driving </li>\r\n <li>Efforts to reduce opioid misuse and promote harm reduction measures</li>\r\n <li>Emerging issues in substance use and related consequences</li>\r\n </ul>\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 20,\r\n content: \"Why Prevention\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 30,\r\n content: [\r\n <>DBHDID supports prevention strategies that focus on increasing awareness of the issues related to substance use/misuse and mental health. This work is guided by the six Center for Substance Abuse and Prevention strategies: educating community members on ways to avoid risky behaviors, changing environmental contexts that encourage substance use or increase mental health issues, creating alternatives to engaging in substance use, building capacity of community partners to engage in prevention, and identifying those at greatest risk and connecting them with trained care and resources. Interventions are selected based on the individual needs of the community as identified in a multi-pronged needs assessment built from local data surveillance efforts.</>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 40,\r\n content: \"What works\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 50,\r\n content: [\r\n <>\r\n Evidence-Based Prevention <br />\r\n <br />\r\n\r\n When selecting prevention programs and strategies its best to select program that research has proven to be effective at changing behaviors and improving public health. These programs and strategies are often referred to and known as “evidence-based practices\". Evidence-based practices include “programs, policies, or other strategies that have been evaluated and demonstrated to be effective in preventing health problems based upon the best-available research evidence\".</>,\r\n <>\r\n <b>Types of prevention programs that have been shown to boost protective factors and eliminate or reduce risk factors for drug use/misuse include:</b>\r\n <br />\r\n <br />\r\n <ul>\r\n <li>Universal: address risk and protective factors common to all individuals in a given setting, such as a school or community.</li>\r\n <li>Selected: are for groups of individuals who have specific factors that put them at increased risk of drug use.</li>\r\n <li>Indicated: Designed for individuals who have already started using drugs or who have already experienced consequences to their substance use. </li>\r\n </ul>\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 60,\r\n content: \"What won’t work\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 70,\r\n content: [\r\n <>\r\n While research has identified important elements of effective drug prevention strategies, research has also identified strategies that have not been shown to reduce alcohol, tobacco, and other drug use. These strategies include:\r\n <br />\r\n <br />\r\n <ul>\r\n <li>scare tactics and moralistic appeals;</li>\r\n <li>curricula that rely solely on information about drugs and their dangers; </li>\r\n <li>curricula that only work to promote self-esteem and emotional well-being, without providing training in resistance skills and normative education;</li>\r\n <li>single shot assemblies and testimonials by former addicts may reinforce a negative norm that “everyone uses drugs†at some point in their lives. </li>\r\n </ul>\r\n </>,\r\n <>\r\n It is also important to avoid these types of strategies that have been shown to be ineffective in reducing substance use/misuse:\r\n <br />\r\n <br />\r\n\r\n <ul>\r\n <li>Counseling students, particularly in peer-group context. This does not reduce substance use or delinquency. </li>\r\n <li>Offering alternative activities such as recreation and community service activities without additional comprehensive strategies. </li>\r\n <li>Programs focusing on information dissemination, fear arousal, and moral appeal as they are also not effective prevention strategies.</li>\r\n </ul>\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 80,\r\n content: \"Intersection of Substance Use/Misuse and Mental Health\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 90,\r\n content: [\r\n <>\r\n <img src={SharedRisk} style={{ maxWidth: \"100%\", overflow: \"hidden\", }} className='rounded mx-auto d-block' alt=\"\" />\r\n </>,\r\n <>\r\n Effective prevention focuses on reducing the factors that put people at risk of substance use/misuse and mental health disorders and strengthening those factors that protect people from the problems.\r\n </>,\r\n <>\r\n <ul>\r\n <li>\r\n Risk factors are certain biological, psychological, family, community, or cultural characteristics that precede and are associated with a higher likelihood of behavioral health problems.\r\n\r\n </li>\r\n\r\n <li>\r\n\r\n Protective factors are characteristics at the individual, family or community level that are associated with lower likelihood of problem outcomes.\r\n\r\n </li>\r\n </ul>\r\n </>,\r\n <>\r\n Some risk and protective factors are the same for different problems. While there are unique risk and protective factors for each, there is also the intersection.\r\n\r\n </>,\r\n <>\r\n <b>\r\n Existing research and data suggest that there are several common or shared risk and protective factors that impact both substance use/misuse and mental health outcomes.\r\n </b>\r\n </>,\r\n <>\r\n One coalition, agency or individual cannot adequately impact one or more problems alone, so it makes sense to look for opportunities to work with other sectors/disciplines to address shared risk factors to avoid duplicating efforts, share data, and grow the victories we achieve in promoting health and wellness.\r\n </>,\r\n <>\r\n The Division of Substance Use Disorder is committed to addressing substance use/misuse and mental health through shared risk and protective factors.\r\n </>,\r\n <>\r\n <i>\r\n Citation <br />\r\n <br />\r\n Drug Strategies (1999). Making the grade: A guide to school drug prevention programs. Washington, D.C.: Levine and Associates, Inc.<br /><br />\r\n U.S. Department of Education, (2000). Key School-Linked Strategies and Principles for Preventing Substance Abuse and Violence. <a style={{ overflowWrap: 'break-word' }} href='http://notes.edc.org/HHD/MSC/mscres.nsf/0/5044870fadcb56d6852568e800532418/$FILE/Topic3-Strategy.do'>http://notes.edc.org/HHD/MSC/mscres.nsf/0/5044870fadcb56d6852568e800532418/$FILE/Topic3-Strategy.do </a> <br />\r\n <br />\r\n National Insititute of Health. (2020, July 10). Preventing drug misuse and addiction: The best strategy. National Institute on Drug Abuse. <a style={{ overflowWrap: 'break-word' }} href='https://nida.nih.gov/publications/drugs-brains-behavior-science-addiction/preventing-drug-misuse-addiction-best-strategy'>https://nida.nih.gov/publications/drugs-brains-behavior-science-addiction/preventing-drug-misuse-addiction-best-strategy </a>\r\n Prevention Action Alliance. (2020, November 17). The best kind of prevention: Evidence-based prevention. Prevention Action Alliance - Leading healthy communities in the prevention of substance misuse and the promotion of mental health wellness.\r\n </i>\r\n </>\r\n ]\r\n }\r\n];\r\n\r\nexport default bHPP_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Kentucky from \"../../../assets/img/sud/RPC_Map.png\"\r\nimport { Link } from \"react-router-dom\";\r\n\r\nconst sARPC_Content = [\r\n\r\n\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n \"Kentucky's Regional Prevention Centers (RPCs) assist communities in developing and implementing comprehensive plans to prevent alcohol, tobacco, and other drug (ATOD) use and misuse. Fourteen centers are available to serve all counties in the state.\",\r\n \"Prevention specialists, collaboration specialists, and youth empowerment specialists at each center provide education and training programs, information, and consultation services.\",\r\n <>\r\n You can find your local RPC <Link to=\"/providerDirectory\"><b>here</b></Link>.<br />\r\n\r\n <img className=\"img-fluid\" src={Kentucky} alt=\"\"></img>\r\n\r\n </>,\r\n\r\n ]\r\n },\r\n];\r\n\r\nexport default sARPC_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\n\r\nconst wDYE_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n \"Kentucky’s Division of Substance Use Disorder Prevention and Promotion Branch supports the development of a strong prevention workforce in Kentucky through our Intern and Youth Empowerment Programs.\",\r\n ]\r\n }, \r\n {\r\n format: bodyHelperTypes.title,\r\n order: 20,\r\n content: \"Intern Program\"\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 30,\r\n content: [\r\n \"The Prevention and Promotion Branch offers paid internships to undergraduate and graduate students interested in learning about substance use/misuse prevention. The goal of the internship is to cultivate prevention professionals who may seek to become Certified Prevention Specialists in the future. Interns participate in prevention activities and work with a Site Placement Supervisor to develop a tangible project related to primary prevention of substance use/misuse. Applicants with yearlong or academic year availability will receive preference over single-semester applicants. No internship/practicum course is required to participate. Some overnight travel may be required and interns must have reliable transportation. If you would like more information about the internship, please reach out to Laura Edwards (laura.edwards@ky.gov).\",\r\n ]\r\n }, \r\n {\r\n format: bodyHelperTypes.title,\r\n order: 40,\r\n content: \"Youth Empowerment Program\"\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 50,\r\n content: [\r\n \"The Youth Empowerment (YE) Program has three primary goals: to engage young people in the science of prevention through school and community-based activities, build capacity among youth groups to plan, implement, and evaluate substance use and misuse prevention programs in their communities, and educate groups on substance use/misuse and suicide prevention using the Youth Substance Use Prevention Skills (YSUPS) training.\",\r\n \"The YSUPS training helps to equip young people with the knowledge, skills, and confidence to be effective advocates and leaders in their communities. Through this training, youth learn about prevention strategies and gain hands-on experience working on prevention initiatives.\",\r\n \"Activities of the youth groups may include, but are not limited to, educating peers on substance use/misuse, advocating for smoke/vape-free schools and sporting arenas, raising community awareness through media, educating key leaders and policymakers, advocating for social host ordinances to combat underage alcohol use, and working to change the culture and social norms of substance use/misuse in their schools and communities.\",\r\n \"We also recognize the importance of youth empowerment and youth engagement in local community prevention efforts. Prevention specialists at each of Kentucky’s 14 Regional Prevention Centers work closely with local youth and community coalitions to increase youth involvement and representation.\",\r\n \"By involving young people in prevention efforts, we are ensuring that prevention initiatives are informed by the perspectives and experiences of those they aim to serve.\",\r\n <>The Youth Empowerment Program offers mini-grants of up to $1,500/year for youth groups to support their prevention activities. For more information, contact your local Regional Prevention Center. <a href='https://dbhdidtest.ky.gov/documents/dbh/KYRPCContactInfo.pdf'>(link to pdf document KY RPC Contact Info)</a></>\r\n ]\r\n }, \r\n];\r\n\r\nexport default wDYE_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\n\r\n\r\nconst sSPW_Content = [\r\n\r\n\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 110,\r\n content: [\r\n \"Kentucky’s Prevention and Promotion Branch is committed to building a strong and competent prevention workforce that can effectively address the complex and interconnected issues of substance use/misuse prevention. We believe that prevention programs must be designed with these characteristics in mind and that the success of program implementation relies on a competent, well-trained, ethical, and professional workforce.\",\r\n \"Prevention specialists are at the forefront of this effort, working closely with communities across Kentucky to deliver prevention services. We are proud to support their professional development through the Certified Prevention Specialist (CPS) credential, which ensures that prevention specialists have a thorough understanding of the latest evidence-based practices.\",\r\n \"To become a Certified Prevention Specialist through the Kentucky Board of Prevention Professionals (a member of the International Certification and Reciprocity Consortium), applicants must demonstrate their competency through experience, education, and supervision and pass a rigorous examination. In Kentucky, individuals who are hired to deliver prevention services and receive state or federal funding must complete the CPS credential requirements within three years of their hire date.\",\r\n <>\r\n To support Kentucky prevention specialists in their professional development, here are a few examples of trainings/resources we share with the workforce:\r\n <ul>\r\n <li>Kentucky PreventionU (online training system)</li>\r\n <li>KSUPS – Kentucky Substance Use Prevention Skills training</li>\r\n <li>CPS Study Guides <br />\r\n <a href='https://www.internationalcredentialing.org/examprep'>Exam Prep</a><br />\r\n <a href='https://www.riprc.org/resources/rhode-island-prevention-specialist-certification-study-guide-for-the-certification-exam/'>Study Guide</a>\r\n </li>\r\n <li><a href='https://www.chfs.ky.gov/agencies/dbhdid/Pages/KYSchoolofAlcoholandOtherDrugs.aspx'>Kentucky School of Alcohol and Other Drug Studies </a></li>\r\n <li><a href='https://pttcnetwork.org/'>Prevention Technology Transfer Center Network</a></li>\r\n </ul>,\r\n <>\r\n For more information about Kentucky’s credentialing process please visit this site: <a href='https://kyprevention.org/'>https://kyprevention.org/</a>\r\n \r\n </>\r\n\r\n </>\r\n ]\r\n },\r\n];\r\n\r\nexport default sSPW_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\n\r\nconst strength_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n <>\r\n <b>Sources of Strength </b>is an Upstream Prevention Program. Upstream prevention is an approach to care that examines and addresses root causes rather than symptoms. Using an upstream prevention program can improve long-term outcomes and decrease healthcare costs.\r\n </>,\r\n \"The SOURCES middle and high school program is more of a model than a program. There is no curricula. Rather, a diverse group of peer leaders come together and use their voice to promote culture change through planned message campaigns, activities, and by personal example. Sources employs a strength-based approach to suicide prevention by focusing on developing and promoting strengths, aka protective factors, and tapping into the students’ power of social networking through creative and regular message campaigns. Those campaigns utilize visual arts, storytelling, music, competitions, social media, drama, and other forms of expression to encourage healthy norms. The campaigns increase all students’ awareness of their strengths and how to use them as a resource throughout their lifetime.\",\r\n \"In the same way that a cold spreads through a classroom, attitudes, behaviors, and beliefs spread through a social network. SOURCES utilizes the power of peer social networks to spread messages of hope, help, and strength throughout communities. A diverse group of Peer Leaders, who ideally represent every social group within the school, develop and push out positive message campaigns school-wide to promote strength-building, help-seeking, and connectedness to school and community.\",\r\n \"SOURCES Elementary utilizes a universal curriculum-based approach and keeps an upstream focus to increase health and wellness and decrease negative downstream outcomes by using active learning, talking circles, guided reflection and celebrating growth. The program not only incorporates solid Social Emotional Learning content but includes a robust focus on mental health and proactive prevention for elementary schools, grades K-6.\",\r\n \"The Division provides both training and materials for schools who are interested in Sources of Strength at no charge; however, there are requirements to participation. Participating schools will be expected to sign a Letter of Agreement and complete a safety policy check list. In addition, schools will work with the Regional Prevention Centers (RPC) to review their current policies related to behavioral health, substance use/misuse and suicide prevention and participate in the Sources of Strength evaluation process conducted by our evaluation partner.\",\r\n <>Learn More: <a href='www.sourcesofstrength.org'>www.sourcesofstrength.org</a></>,\r\n <>Questions or information: <a href='mailto: sheila.barnard@ky.gov'>sheila.barnard@ky.gov</a></>\r\n ]\r\n },\r\n \r\n];\r\n\r\nexport default strength_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\n\r\n\r\nconst tGD_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n \"Too Good for Drugs (TGFD) is an evidence based, Tier 1, K-12 prevention education program designed to mitigate risk and enhance protection related to alcohol, nicotine, and other drug use/misuse. Too Good for Drugs teaches five essential social & emotional learning skills which research has linked with healthy development and academic success. Students build their skills from lessons infused with games, activities, and skits.\",\r\n \"The Too Good for Drugs curriculum is designed for students in kindergarten through high school and ideally implemented in every grade to have the most effect. If consecutive implementation is not possible, schools are encouraged to look at transitional grades for possible implementation, while also considering the age of onset for use of alcohol, tobacco, nicotine, and other drugs when deciding what grade levels in which to implement. The curriculum consists of 10 lessons that are 30 minutes to one hour in length and should be conducted in a classroom setting with no more than 30 students.\",\r\n \"The program is well suited for implementation in Health, Social Studies, Science, or other related classes.\",\r\n \"The Division provides materials for schools interested in implementing TGFD, and Regional Prevention Centers staff are available to train school staff members to deliver the curriculum. The materials and training are free to schools. Participating schools will be expected to work with the Regional Prevention Centers (RPC) to review their current policies related to behavioral health, substance use/misuse and suicide prevention and participate in required evaluation processes conducted by REACH of Louisville.\",\r\n <>\r\n TGFD has been aligned with:\r\n\r\n <ul>\r\n <li>Kentucky and National Health Standards and Performance Indicators 2,3,4,5,6, & 7</li>\r\n <li>PBIS (Positive Behavioral Supports and Intervention framework)</li>\r\n <li>RTI (Response to Intervention)</li>\r\n </ul>\r\n </>,\r\n <>\r\n Learn more: <a href='https://toogoodprograms.org/'>https://toogoodprograms.org/</a>\r\n </>,\r\n <>\r\n Questions or information: <a href='mailto: sheila.barnard@ky.gov'>sheila.barnard@ky.gov</a>\r\n </>\r\n ]\r\n },\r\n];\r\n\r\nexport default tGD_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\n\r\nconst pIP_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n \"Partners in Prevention (PIP) is an initiative to help create connections among local community partners to address substance use/misuse and suicide prevention. The PIP toolkit includes resources and information for multiple community sectors to increase awareness and promote evidence-based prevention strategies. It provides support for substance use/misuse and suicide prevention and aims to help reduce the stigma related to behavioral health.\",\r\n <>\r\n The goals of Partners in Prevention are to:\r\n <ul>\r\n <li>Connect with the sectors identified below to increase knowledge and awareness of their roles in substance use/misuse and suicide prevention and build community capacity to address those issues locally. </li>\r\n <li>Increase protective factors while decreasing risk factors among local communities. </li>\r\n <li>Increase the capacity of Regional Prevention Centers (RPCs) to work with the identified sectors and create working partnerships.</li>\r\n </ul>\r\n </>,\r\n <>\r\n Quick facts:\r\n <ul>\r\n <li>Partners in Prevention was developed by Comprehend Regional Prevention Center in 2017. </li>\r\n <li>In 2019, it was adopted by the Kentucky Regional Prevention Centers as a statewide project.</li>\r\n <li>PIP works with the 12 sectors identified in the Drug Free Communities (DFC) Grant application as vital to local prevention efforts: <br />\r\n <ul>\r\n <li>Youth</li>\r\n <li>Parents</li>\r\n <li>Law Enforcement</li>\r\n <li>Schools</li>\r\n <li>Businesses</li>\r\n <li>Media</li>\r\n <li>Youth-serving organizations</li>\r\n <li>Civic and volunteer groups</li>\r\n <li>Healthcare professionals</li>\r\n <li>State, local, and tribal agencies with expertise in substance misuse</li>\r\n <li>Other organizations involved in reducing substance misuse</li>\r\n </ul>\r\n </li>\r\n <li>What is DFC? How a community can find out more information: <br />\r\n <a href='https://www.cdc.gov/drugoverdose/drug-free- communities/about.html'>https://www.cdc.gov/drugoverdose/drug-free- communities/about.html</a>\r\n </li>\r\n </ul>\r\n </>,\r\n <>\r\n Potential Warning signs of Substance Use/Misuse\r\n <ul>\r\n <li>Increased absence from work or school</li>\r\n <li>Any unexplained changes in behavior</li>\r\n <li>Changes in appetite or sleep pattern</li>\r\n <li>Unusual or increased irritability </li>\r\n <li>Financial problems </li>\r\n <li>Changes in personal grooming </li>\r\n <li>Relationship problems</li>\r\n </ul>\r\n </>,\r\n <>\r\n Potential Warning Signs of Suicide\r\n <ul>\r\n <li>Suicide threats </li>\r\n <li>Previous suicide attempts </li>\r\n <li>Misuse of alcohol and other substances</li>\r\n <li>Sudden changes in behavior</li>\r\n <li>Prolonged, untreated depression</li>\r\n <li>Making final arrangements </li>\r\n <li>Giving away prized possessions</li>\r\n <li>Purchasing a gun or stockpiling pills</li>\r\n </ul>\r\n </>\r\n ]\r\n },\r\n];\r\n\r\nexport default pIP_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\n\r\nconst dTP_Content = [\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n \"The Dinner Table Project (DTP) is a resilience-building initiative focused on encouraging families to eat together, have fun, and grow closer through conversation.\",\r\n \"Research shows that children and youth who connect with their parents and other adults in activities are less likely to use substances and experience mental health issues.\",\r\n \"Each month, individuals, families, and organizations receive the DTP monthly newsletter and many of them subsequently share with 10,000+ parents and educators across the state through schools, extension offices, libraries, and churches. Thousands of people in Kentucky view DTP social media posts every month with many of those viewers sharing the information through their own social media channels.\",\r\n <>\r\n The newsletters include:\r\n <ul>\r\n <li>Recipes</li>\r\n <li>Activities </li>\r\n <li>Conversation starters</li>\r\n <li>Resources and tips for parents and caregivers on promoting healthy mental health and reducing substance use.</li>\r\n </ul>\r\n </>,\r\n <>\r\n The Dinner Table Project was developed by Four Rivers Behavioral Health in 2015. In the summer of 2019, it was adopted by the Kentucky Regional Prevention Centers as a statewide project. Each Regional Prevention Center (RPC) has the tools to help you implement The Dinner Table Project in your home, school, or community. <a href='/sud/sa-rpc'>Find your RPC here.</a>\r\n </>,\r\n \"The target population of the Dinner Table Project is elementary-age youth and their families. Table Talks is an extension of The Dinner Table Project targeted toward families with middle and/or high school students.\",\r\n \"Through the years, The Dinner Table Project has changed but the core has stayed the same. We encourage families to eat together at least once a week with no electronics!\",\r\n <>\r\n Website (Subscribe Here!): <a href='https://thedinnertableproject.org/'>https://thedinnertableproject.org/</a> <br />\r\n Facebook: <a href='https://www.facebook.com/thedinnertableproject/'>https://www.facebook.com/thedinnertableproject/</a><br />\r\n Instagram: <a href='https://www.instagram.com/kydinnertableproject/'>https://www.instagram.com/kydinnertableproject/</a> <br />\r\n </>\r\n ]\r\n },\r\n];\r\n\r\nexport default dTP_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport KSAPImage from '../../../assets/img/sud/KPSAP.png';\r\n\r\nconst kSAP_Content = [\r\n\r\n\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n <>{/* <img style={{ maxWidth: \"100%\", overflow: \"hidden\", }} className='rounded mx-auto d-block' src={KSAPImage} alt=\"\"></img> */}</>,\r\n\r\n <>\r\n <b>Vision: Every military-connected youth in Kentucky receives what they need to succeed.</b>\r\n </>,\r\n <>\r\n <b>Mission: Instill a sense of connection and strengthen resilience within Kentucky’s military- connected youth.</b>\r\n </>,\r\n \"The Purple Star Award is a state-sponsored recognition for individual schools’ dedication and support of military-connected youth. The Program focuses on strengthening the resilience of military-connected youth and ensuring that their social, emotional, and academic needs are met. The program was developed by the Ohio Department of Education in 2018.\",\r\n \"There are over 50,000 military connected youth in Kentucky. Military-connected youth can be affected by their family member’s deployments and military service. These youth face a distinct set of challenges that increase their risk of developing behavioral health problems and substance use disorders.\",\r\n \"Purple Star Schools provide a caring school climate, help increase student engagement, and encourage involvement from parents and other adults in the school and community. The Purple Star Award designation lets military parents know whether they are active duty, National Guard, Reserves, or Veterans, that the school is dedicated to helping their child gain the educational skills necessary to be college-, workforce-, and life-ready. The program is supported by the US Department of Defense, Military Child Education Coalition, and the Military Interstate Children’s Compact Commission. Currently forty-two states implement the program in their schools and school districts.\",\r\n \" The Kentucky Purple Star Award Program is a partnership involving twenty-five state agencies, military service providers, Kentucky National Guard, Fort Knox, Fort Campbell, and Kentucky’s Regional Prevention Centers.\",\r\n <>\r\n The four goals of the Kentucky Purple Star Award Program are to:\r\n\r\n <ol>\r\n <li>Create and sustain a statewide support system within schools and communities that work together to build resilience and support for military-connected youth in Kentucky.</li>\r\n <li>Increase protective factors to help prevent substance use and behavioral health challenges among military-connected youth in Kentucky.</li>\r\n <li>Partner with schools and communities to foster diverse, inclusive, and supportive environments for military-connected youth and families. </li>\r\n <li>Educate the schools and community on the challenges faced by military families.</li>\r\n\r\n </ol>\r\n </>\r\n\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 20,\r\n content: \"Outcomes\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 30,\r\n content: [\r\n <>\r\n A 2022 national evaluation <a href='https://www.militarychild.org/upload/images/Purple%20Star%20Schools/2022_602_PSS_CPRL_Report.pdf'>report</a> by the Center for Public Research and Leadership found that:\r\n\r\n <ul>\r\n <li>66 % of military families believe that the Purple Star program has a positive impact on military-connected students because of school staff’s increased awareness and special consideration of the unique social and emotional challenges that military-connected students often face.</li>\r\n <li>63.3% of military families report that their children are academically “Supported†or “Very Supported†by the Purple Star program. They cite the importance of school staff understanding of the unique academic challenges military-connected students often face, which is fostered by the Purple Star program.</li>\r\n <li>71.5% of families report that the Purple Star Program was either an “Important†or “Very Important†factor in their school selection.</li>\r\n <li>Military-connected students report that it is easier for them to make friends at a Purple Star school as compared to non-Purple Star schools. </li>\r\n </ul>\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 40,\r\n content: \"How to Become a Purple Star School\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 50,\r\n content: [\r\n <>{/* <img style={{ maxWidth: \"100%\", overflow: \"hidden\", }} className='rounded mx-auto d-block' src={KSAPImage} alt=\"\"></img> */}</>,\r\n <>\r\n Schools must submit an application in which they agree to:\r\n <ul>\r\n <li>Designate at least one trained staff to become the Purple Star Liaison </li>\r\n <li>Host at least one annual military recognition event during the school year</li>\r\n <li>Post local, state, and federal resources for military families on the school website. </li>\r\n </ul>\r\n </>,\r\n <>\r\n The submission deadline for the fall is September 15th. The deadline for the spring is February 15th. The application can be accessed at the link below: <br />\r\n\r\n <a href='http://www.kypurplestar.org/purple-star-award-application-2/'>http://www.kypurplestar.org/purple-star-award-application-2/</a>\r\n </>,\r\n <>\r\n For more information on the Kentucky Purple Star Program, please visit: <br />\r\n\r\n <a href='https://www.kypurplestar.org/'>https://www.kypurplestar.org/</a> Or contact Georgi Anne Johnson <a href='mailto:Georgianne.johnson@ky.gov'>Georgianne.johnson@ky.gov</a> or Steve Cambron <a href='mailto:steve.cambron@ky.gov'>steve.cambron@ky.gov</a>.\r\n </>\r\n ]\r\n }\r\n];\r\n\r\nexport default kSAP_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport SynarImage from '../../../assets/img/sud/Synar.png'\r\n\r\n\r\nconst synar_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n <>\r\n The Synar Program is a federally mandated program enacted into law in 1992 through the Synar amendment, named after its sponsor Congressman Mike Synar of Oklahoma. The legislation was developed in light of a growing body of evidence about the health problems related to tobacco use by youth, as well as evidence about the ease with which youth could purchase tobacco products through retail sources. The Synar Program requires States, territories, and tribal entities to:\r\n <br/>\r\n <br/>\r\n\r\n <ul>\r\n <li>Enforce underage tobacco and nicotine access laws to a degree that reasonably can be expected to reduce the illegal sale of tobacco products to individuals under the age of 21.</li>\r\n <li>Conduct annual, unannounced inspections that provide a valid sample of tobacco sales outlets that are accessible to minors.</li>\r\n <li>Report their sampling methodology and results of the annual Synar survey as a part of the <a href='https://dbhdid.ky.gov/documents/dbh/synar/FFYASRApproved.pdf'>Annual Synar Report</a> no later than December 31st.</li>\r\n <li>Achieve a noncompliance rate of no more than 20%. </li>\r\n </ul>\r\n </>,\r\n \"Synar inspections are conducted by the Department of Alcoholic Beverage Control (ABC). ABC trained youth under the age of 21 accompanied by ABC enforcement officers enter the store and attempt to buy tobacco and nicotine products. Stores that sell to minors are cited and fined.\",\r\n \"States that do not maintain violation rates below the 20% threshold could lose ten percent of their total Substance Use Prevention, Treatment, and Recovery Block Grant.\",\r\n \"The first Synar inspections were conducted in 1997. Since that time, Kentucky’s violation rates have averaged 8.2%.\",\r\n <>\r\n <img style={{ maxWidth: \"100%\", overflow: \"hidden\", }} className='rounded mx-auto d-block' src={SynarImage} alt=\"\"></img>\r\n </>,\r\n <>\r\n In addition to monitoring compliance of tobacco and nicotine retailers, the Kentucky Synar Program provides free online training and educational material to tobacco retailers and vape shops. The Tobacco Retail Underage Sales Training (TRUST) follows the FDA guidelines for effective merchant education. The training can be accessed here:\r\n\r\n <a href='http://training.chfs.ky.gov/061220_BHDID_TRUST_MOD_01/html/index.html'>http://training.chfs.ky.gov/061220_BHDID_TRUST_MOD_01/html/index.html</a>\r\n </>,\r\n <>\r\n Tobacco 21 Toolkits which include signage and forms required by Kentucky state law, WE ID badges for employees, helpful information on state and federal tobacco laws and how to prevent sales of tobacco and nicotine products are provided to tobacco retailers free of charge. To order a tool kit or to obtain any additional information about the Kentucky Synar program, please contact: <a href='mailto:steve.cambron@ky.gov'>steve.cambron@ky.gov</a>\r\n </>\r\n ]\r\n },\r\n];\r\n\r\nexport default synar_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\n\r\nconst zero_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n <>\r\n Zero Tolerance (ZT) is a court-ordered substance use service for persons under 21 who are convicted of operating a motor vehicle with a blood alcohol level of .02 to .08. The program includes evidence-based education designed to help individuals manage their substance use.\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 20,\r\n content: \"Program Description\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 30,\r\n content: [\r\n \"The Zero Tolerance program provides multifaceted prevention and intervention targeting specific needs related to alcohol and other substance use and related consequences.\",\r\n <>\r\n There are two primary target populations for this program.\r\n <ul>\r\n <li>Youth under 21 charged with a zero-tolerance offense - driving with a blood-alcohol content of .02-.08. </li>\r\n <li>2.\tJuveniles who are at risk of becoming involved or are already involved with the juvenile justice system and youth who are identified as using or are at increased risk for using substances. </li>\r\n </ul>\r\n </>,\r\n \"In accordance with KRS 189A.010 (1), persons under the age of 21 who are operating a motor vehicle with a blood alcohol level of .02 to .08 or under the influence of other substances, are required to receive an assessment/screening and either education or mental health and/or substance use treatment. These youth are referred by the adult traffic court to a licensed ZT provider for assessment/screening. Based on the results of the screening, youth are placed in an education program or are referred for additional assessment which may lead to treatment services.\"\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 40,\r\n content: \"Outcomes\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 50,\r\n content: [\r\n <>\r\n The outcomes of the ZT program are:\r\n <ul>\r\n <li>diverting youth from involvement with the juvenile justice system, </li>\r\n <li>reducing the recidivism rate of first- and second-time juvenile offenders, </li>\r\n <li>reducing the number of youth who experience future alcohol and other drug related problems.</li>\r\n </ul>\r\n </>,\r\n \"Screenings, prevention and intervention strategies, education, and referrals to community resources are key tools to achieving these outcomes. Program components contribute to reducing youth substance use, increasing communication between parent(s)/guardians and youth, and encouraging youth to make positive peer and lifestyle choices.\"\r\n ]\r\n }\r\n];\r\n\r\nexport default zero_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nconst mHHome_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n \"The Division of Mental Health (DMH) supports implementation of prevention, treatment, crisis, and recovery services for Kentuckians impacted by Serious Mental Illness (SMI), Severe Emotional Disabilities (SED) and/or co-occurring mental health and substance use disorders. DMH also supports behavioral health preparedness, response, and recovery in the time of disasters, either natural or man-made.\",\r\n \"Partnerships with community-based organizations, service providers, universities, and state agencies provide access to quality and evidence-based prevention, treatment, recovery, and harm reduction services. Through the provision of federal grants and state funding, these services are publicly available to persons across the Commonwealth.\",\r\n <>\r\n In addition, DMH aims to expand access to <b><a href='/sud/bestpractice'>evidence-based services</a></b> that are accessible, available, and acceptable for all Kentuckians. <br />\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 20,\r\n content: \"DMH Branches and Resources\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 30,\r\n content: [\r\n <>\r\n <ul className=\"no-bullet\">\r\n <li><a className='quick-links-body' href='/mh/adultmh'>Adult Mental Health and Recovery Services Branch</a></li>\r\n <li><Link className='quick-links-body' to={\"/mh/children\"}>Children’s Mental Health and Recovery Services Branch</Link></li>\r\n <li><Link className='quick-links-body' to={\"/mh/ppp\"}>Promotion, Prevention and Preparedness Branch</Link></li>\r\n </ul>\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 40,\r\n content: \"Find Help\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 50,\r\n content: [\r\n <>\r\n <ul className=\"no-bullet\">\r\n <li><a className='quick-links-body' href='https://988.ky.gov/'>988 Suicide and Crisis Line </a></li>\r\n <li><a className='quick-links-body' href='https://findhelpnow.org/ky'>Link to Mental Health Now Resource</a></li>\r\n <li><a className='quick-links-body' href='https://kccrt.ky.gov/Pages/index.aspx '>Kentucky Community Crisis Response Team (KCCRT) </a></li>\r\n <li><a className='quick-links-body' href='https://findhelpnow.org/ky'>Project Recovery</a></li>\r\n <li><a className='quick-links-body' href='https://findhelpnowky.org/ky'>Find Help Now </a></li>\r\n <li><a className='quick-links-body' href='https://www.findrecoveryhousingnowky.org/'>FindRecoveryHousing</a></li>\r\n <li><a className='quick-links-body' href='/ProviderDirectory'>Treatment Locator Tool</a></li>\r\n <li><a className='quick-links-body' href='https://findhelpnow.org/ky'>Naloxone Website (in development)</a></li>\r\n </ul>\r\n </>\r\n ]\r\n }\r\n];\r\n\r\nexport default mHHome_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst dDIDHome_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"Mission Statement\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n \"It is the mission of the Division of Developmental and Intellectual Disabilities (DDID) to empower each person to realize his or her place in the community as a citizen of the Commonwealth of Kentucky. To accomplish this mission, DDID will partner with and support persons with intellectual or developmental disabilities, families, advocates, stakeholders and government agencies.\"\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"Vision\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 40,\r\n content: [\r\n \"People, throughout their lifespan, are active, contributing and respected members of their community. People have the ability to choose from a full array of effective and meaningful natural and paid supports to access what is important for them and to access and maintain what is important to them.\"\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 50,\r\n content: \"Values\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 60,\r\n content: [\r\n \"The following principles guide the work of DDID staff as we strive to make a positive difference in the lives of all individuals with whom we come in contact.\"\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 70,\r\n content: \"Person-Centered Thinking and Communities\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 80,\r\n content: [\r\n \"Person-centered thinking drives our actions by emphasizing the importance of each person. Communities are the first places to seek, identify and nurture supports and opportunities.\"\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 90,\r\n content: \"Participation in the Community\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 100,\r\n content: [\r\n \"We affirm that all people can direct their own supports and thereby encourage and promote true and meaningful participation in the community as essential to person-centered practices.\"\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 110,\r\n content: \"Employment\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 120,\r\n content: [\r\n \"Individuals of working age are employable: employment is life-enriching.\"\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 130,\r\n content: \"Direct Support Professionals\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 140,\r\n content: [\r\n \"We recognize and embrace Direct Support Professionals as essential team members whose input is valued and respected at all levels of planning and implementation of services pertinent to individuals they support.\"\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 150,\r\n content: \"Natural Supports\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 160,\r\n content: [\r\n \"We promote and respect the involvement of family members and natural supports to empower individuals in the pursuit of active meaningful participation within their community.\"\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 170,\r\n content: \"Best Practice\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 180,\r\n content: [\r\n \"Initiatives and supports are driven by research and data to include the array of promising, evidence-based, and identified best practices.\"\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 190,\r\n content: \"DDID Branches\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 200,\r\n content: [\r\n <>\r\n DDID comprises three branches:\r\n\r\n <br />\r\n <br />\r\n <Links linkTypeID=\"789\" />\r\n\r\n <br />\r\n\r\n </>\r\n ]\r\n },\r\n];\r\n\r\nexport default dDIDHome_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst cSA_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"Becoming an Approved Community Support Associate Training Provider\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n \"Becoming an approved Community Support Associate (CSA) training provider authorizes entities to teach the required training that allows individuals to be certified Community Support Associates in Kentucky.\",\r\n \"The following curricula are available for approval by the Department for Behavioral Health, Developmental and Intellectual Disabilities (DBHDID): 10-hour training curriculum for the Community Support Associate.\",\r\n <>\r\n The Kentucky Administrative Regulations (KAR) specifically speak to the elements of a \"training curriculum\" and the training requirements (testing of the trainee and evaluation of the trainers), and provide the curriculum applicant with an understanding of the requirements for community support associates—both eligibility and training. These regulations can be found in the Related Links box on the right side of the page.\r\n </>,\r\n \"DBHDID requires the use of specific documents to ensure a complete submission of all necessary materials. This will allow DBHDID staff to review the curricula in their entirety, and to make an approval decision or request supplementary materials in an efficient manner, within the period specified in the regulations. Curriculum submission requirements are listed below.\"\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"Submission Requirements for Community Support Associate 10-Hour Curriculum\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 40,\r\n content: [\r\n <>\r\n <ol>\r\n <li>Review regulation 908 KAR 2:250 in Related Links.</li>\r\n <li>Complete the <b> CSA Single Curriculum Submission Summary </b> <a href=\"https://dbhdid.ky.gov/documents/dbh/csa/application.pdf\">PDF</a> <a href=\"https://dbhdid.ky.gov/documents/dbh/csa/application.docx\">Word</a> This document contains identifying information about the applicant who is applying for curriculum approval.</li>\r\n <li>Complete the <b> CSA 10-Hour Curriculum Rubric </b> <a href=\"https://dbhdid.ky.gov/documents/dbh/csa/rubric.pdf\">PFD</a> <a href=\"https://dbhdid.ky.gov/documents/dbh/csa/rubric.docx\">Word</a> This rubric identifies the required CSA core components and expectations for curriculum development. Please note that the curriculum cannot be reviewed if the rubric's yellow section is incomplete; the submitter's information will be returned and resubmission requested.</li>\r\n <li>Submit an <b>electronic version</b> of the curriculum, saved as a Word, PowerPoint and/or PDF file using a USB flash drive. These documents must be clearly labeled with entities/submission name.</li>\r\n <li>Include an <b>examination</b> and an <b>answer key</b> in your curriculum submission.</li>\r\n <li>Include an <b>evaluation form</b> of the training.</li>\r\n </ol>\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 50,\r\n content: \"Sample Curriculum Resources\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 60,\r\n content: [\r\n \"Below are some sample resources to assist with curriculum development.\",\r\n <><Links linkTypeID=\"754\" /></>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 70,\r\n content: \"Where to Submit Complete Curriculum and Supporting Documentation\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 80,\r\n content: [\r\n \"Submit this information to:\",\r\n <>\r\n Department for Behavioral Health, Developmental and Intellectual Disabilities <br />\r\n Division of Program Integrity <br />\r\n Program Support Branch <br />\r\n 275 E. Main Street 4CD <br />\r\n Frankfort, KY 40621 <br />\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 90,\r\n content: \"Curriculum Review\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 100,\r\n content: <>After a curriculum is received, it will be reviewed within 20 business days. Communication on the status of the submitted curriculum will be sent to the contact person listed on the \"Single Curriculum Submission Summary.\"</>\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 110,\r\n content: \"Approved Curriculum Guidelines\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 120,\r\n content: [\r\n \"Once the curriculum is approved, the provider will establish and maintain a TRIS account by entering trainee information and uploading documentation directly into the system. Correspondence concerning the submission of this information will be sent via mail or email.\",\r\n \"After the curriculum is approved, when modifications occur, please notify the department using the “Contact Us†link in the Contact Information box at the top right of the page.\"\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 130,\r\n content: \"Questions About the Process?\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 140,\r\n content: <>Please click on \"Contact Us\" in the Contact Information box to submit questions about the process.</>\r\n }\r\n]\r\nexport default cSA_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\n\r\nconst pSS_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"Becoming an Approved Peer Support Specialist Training Provider\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n \"Becoming an approved Peer Support Specialist (PSS) training provider authorizes entities to teach the required training that allows individuals to be certified Peer Support Specialists in Kentucky.\",\r\n \"The following curricula are available for approval by the Department for Behavioral Health, Developmental and Intellectual Disabilities (DBHDID), as established in the Kentucky Administrative Regulations:\",\r\n <>\r\n <li>Adult Peer Support Specialist (APSS)</li>\r\n <li>Family Peer Support Specialist (FPSS)</li>\r\n <li>Youth Peer Support Specialist (YPSS)</li>\r\n <li>Kentucky Family Leadership Academy (KFLA)</li>\r\n </>,\r\n <>\r\n The Kentucky Administrative Regulations (KAR) specifically speak to the elements of a \"training curriculum\" and the training requirements (testing of the trainee and evaluation of the trainers), and provide the curriculum applicant with an understanding of the requirements for peer support specialists—both eligibility and training. These regulations can be found in the Related Links box on the right side of the page.\r\n </>,\r\n \"DBHDID requires the use of specific documents to ensure a complete submission of all necessary materials. This will allow DBHDID staff to review the curricula in their entirety, and to make an approval decision or request supplementary materials in an efficient manner, within the period specified in the regulations. Curriculum submission requirements are listed below.\"\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"Submission Requirements for Adult Peer Support Specialist 30-Hour Curriculum\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 40,\r\n content: [\r\n <>\r\n <ol>\r\n <li>Review regulation 908 KAR 2:220 in Related Links.</li>\r\n <li>Complete the APSS Single Curriculum Submission Summary <a href=\"https://dbhdid.ky.gov/documents/dbh/pss/summary-adult.pdf\">PDF</a> <a href=\"https://dbhdid.ky.gov/documents/dbh/pss/summary-adult.docx\">Word</a>. \r\n This document contains identifying information about the applicant who is applying for curriculum approval.</li>\r\n <li>Complete the APSS 30-Hour Curriculum Rubric <a href=\"https://dbhdid.ky.gov/documents/dbh/pss/rubric-adult.pdf\">PDF</a> <a href=\"https://dbhdid.ky.gov/documents/dbh/pss/rubric-adult.docx\">Word</a>. \r\n This rubric identifies the required APSS core components and expectations for curriculum development. Please note that the curriculum cannot be reviewed if the rubric's\r\n yellow section is incomplete; the submitter's information will be returned and resubmission requested.</li>\r\n <li>Submit an electronic version of the curriculum, saved as a Word, PowerPoint and/or PDF file using a USB flash drive.\r\n These documents must be clearly labeled with entities/submission name.</li>\r\n <li>Include an examination and an answer key in your curriculum submission</li>\r\n <li>Include an evaluation form of the training.</li>\r\n </ol>\r\n </>\r\n ]\r\n },\r\n // {\r\n // format: bodyHelperTypes.title,\r\n // order: 50,\r\n // content: \"Submission Requirements for Family Peer Support Specialist 30-Hour Curriculum\"\r\n // },\r\n // {\r\n // format: bodyHelperTypes.paragraphs,\r\n // order: 60,\r\n // content: [\r\n // <>\r\n // <ol>\r\n // <li>Review regulation 908 KAR 2:220 in Related Links.</li>\r\n // <li>Complete the APSS Single Curriculum Submission Summary <a href=\"https://dbhdid.ky.gov/documents/dbh/pss/summary-family.pdf\">PDF</a> <a href=\"https://dbhdid.ky.gov/documents/dbh/pss/summary-family.docx\">Word. </a>\r\n // This document contains identifying information about the applicant who is applying for curriculum approval.</li>\r\n // <li>Complete the APSS 30-Hour Curriculum Rubric <a href=\"\">PDF</a> <a href=\"\">Word</a>\r\n // This rubric identifies the required APSS core components and expectations for curriculum development. Please note that the curriculum cannot be reviewed if the rubric's\r\n // yellow section is incomplete; the submitter's information will be returned and resubmission requested.</li>\r\n // <li>Submit an electronic version of the curriculum, saved as a Word, PowerPoint and/or PDF file using a USB flash drive.\r\n // These documents must be clearly labeled with entities/submission name.</li>\r\n // <li>Include an examination and an answer key in your curriculum submission</li>\r\n // <li>Include an evaluation form of the training.</li>\r\n // </ol>\r\n // </>\r\n // ]\r\n // },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 70,\r\n content: \"Submission Requirements for Family Peer Support Specialist 30-Hour Curriculum\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 80,\r\n content: [\r\n <ol>\r\n <li>Review regulation 908 KAR 2:230 in Related Links.</li>\r\n <li>Complete the FPSS Single Curriculum Submission Summary <a href=\"https://dbhdid.ky.gov/documents/dbh/pss/summary-family.pdf\">PDF</a> <a href=\"https://dbhdid.ky.gov/documents/dbh/pss/summary-family.docx\">Word</a>. \r\n This document contains identifying information about the applicant who is applying for curriculum approval.</li>\r\n <li>Complete the FPSS 30-Hour Curriculum Rubric <a href=\"https://dbhdid.ky.gov/documents/dbh/pss/rubric-family.pdf\">PDF</a> <a href=\"https://dbhdid.ky.gov/documents/dbh/pss/rubric-family.docx\">Word</a>. \r\n This rubric identifies the required FPSS core components and expectations for curriculum development. Please note that the curriculum cannot be reviewed if the rubric's yellow section is incomplete; the submitter's information will be returned and resubmission requested.</li>\r\n <li>Submit an electronic version of the curriculum, saved as a Word, PowerPoint and/or PDF file using a USB flash drive. These documents must be clearly labeled with entities/submission name.</li>\r\n <li>Include an examination and an answer key in your curriculum submission</li>\r\n <li>Include an evaluation form of the training.</li>\r\n </ol>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 90,\r\n content: \"Submission Requirements for Youth Peer Support Specialist 30-Hour Curriculum\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 100,\r\n content: [\r\n <>\r\n <ol>\r\n <li>Review regulation 908 KAR 2:240 in Related Links.</li>\r\n <li>Complete the YPSS Single Curriculum Submission Summary <a href=\"https://dbhdid.ky.gov/documents/dbh/pss/summary-youth.pdf\">PDF</a> <a href=\"https://dbhdid.ky.gov/documents/dbh/pss/summary-adult.docx\">Word</a>.\r\n This document contains identifying information about the applicant who is applying for curriculum approval.</li>\r\n <li>Complete the YPSS 30-Hour Curriculum Rubric <a href=\"https://dbhdid.ky.gov/documents/dbh/pss/rubric-youth.pdf\">PDF</a> <a href=\"https://dbhdid.ky.gov/documents/dbh/pss/rubric-youth.docx\">Word</a>. \r\n This rubric identifies the required YPSS core components and expectations for curriculum development. Please note that the curriculum cannot be reviewed if the rubric's yellow section is incomplete; the submitter's information will be returned and resubmission requested.</li>\r\n <li>Submit an electronic version of the curriculum, saved as a Word, PowerPoint and/or PDF file using a USB flash drive. These documents must be clearly labeled with entities/submission name.</li>\r\n <li>Include an examination and an answer key in your curriculum submission.</li>\r\n <li>Include an evaluation form of the training.</li>\r\n </ol>\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 110,\r\n content: \"Submission Requirements for Kentucky Family Leadership Academy Peer Support Specialist 15-Hour Curriculum\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 120,\r\n content: [\r\n <>\r\n <ol>\r\n <li>Review regulations 908 KAR 2:230 and 908 KAR 2:240 in Related Links.</li>\r\n <li>Complete the KFLA Single Curriculum Submission Summary <a href=\"https://dbhdid.ky.gov/documents/dbh/pss/summary-kfla.pdf\">PDF</a> <a href=\"https://dbhdid.ky.gov/documents/dbh/pss/summary-kfla.docx\">Word</a>. \r\n This document contains identifying information about the applicant who is applying for curriculum approval.</li>\r\n <li>Complete the KFLA 15-Hour Curriculum Rubric <a href=\"https://dbhdid.ky.gov/documents/dbh/pss/rubric-kfla.pdf\">PDF</a> <a href=\"https://dbhdid.ky.gov/documents/dbh/pss/rubric-kfla.docx\">Word</a>.\r\n This rubric identifies the required KFLA core components and expectations for curriculum development. Please note that the curriculum cannot be reviewed if the rubric's yellow section is incomplete; the submitter's information will be returned and resubmission requested.</li>\r\n <li>Submit an electronic version of the curriculum, saved as a Word, PowerPoint and/or PDF file using a USB flash drive. These documents must be clearly labeled with entities/submission name.</li>\r\n <li>Include an examination and an answer key in your curriculum submission</li>\r\n <li>Include an evaluation form of the training.</li>\r\n </ol>\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 110,\r\n content: \"Sample Curriculum Resources\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 120,\r\n content: [\r\n \"Below are some sample resources to assist with curriculum development.\",\r\n <>\r\n <ol>\r\n <li><a href=\"https://dbhdid.ky.gov/documents/dbh/csa/sample.pdf?t=08143807152024\">Sample curriculum</a></li>\r\n <li><a href=\"https://dbhdid.ky.gov/documents/dbh/tcm/sample-eval.pdf?t=08143807152024\">Sample evaluation of training</a></li>\r\n <li><a href=\"https://dbhdid.ky.gov/documents/dbh/tcm/sample-exam2.pdf?t=08143807152024\">Sample trainee test questions</a></li>\r\n </ol>\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 130,\r\n content: \"Where to Submit Complete Curriculum and Supporting Documentation\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 140,\r\n content: [\r\n \"Submit this information to:\",\r\n <>\r\n Department for Behavioral Health, Developmental and Intellectual Disabilities <br />\r\n Division of Program Integrity <br />\r\n Program Support Branch <br />\r\n 275 E. Main Street 4CD <br />\r\n Frankfort, KY 40621 <br />\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 150,\r\n content: \"Curriculum Review and Trainer Requirements\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 160,\r\n content: [\r\n <>\r\n After a curriculum is received, it will be reviewed within 20 business days.\r\n Communication on the status of the submitted curriculum will be sent to the contact person listed on the \"Single Curriculum Submission Summary.\"\r\n </>,\r\n\r\n <>\r\n ll training staff listed on the Single Curriculum Submission Summary must hold a current Peer Support Specialist certification in the state of Kentucky and be up-to-date on CE requirements in the DBHDID TRIS database. Any trainers found to be noncompliant will have 30 calendar days from curriculum receipt to rectify any certification issues.\r\n After 30 days, DBHDID will consider the curriculum incomplete and a denial letter will be issued.\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 170,\r\n content: \"Approved Curriculum Guidelines\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 180,\r\n content: [\r\n \"Once the curriculum is approved, the provider will establish and maintain a TRIS account by entering trainee information and uploading documentation directly into the system. Correspondence concerning the submission of this information will be sent via mail or email.\",\r\n \"After the curriculum is approved, when modifications occur, please notify the department using the “Contact Us†link in the Contact Information box at the top right of the page.\"\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 190,\r\n content: \"Questions About the Process?\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 200,\r\n content: [\r\n <>\r\n Please click on \"Contact Us\" in the Contact Information box to submit questions about the process.\r\n </>,\r\n \r\n ]\r\n }\r\n];\r\n\r\nexport default pSS_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst tCM_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"Becoming an Approved Targeted Case Management Training Provider\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n \"Becoming an approved Targeted Case Management (TCM) training provider authorizes entities to teach the required training that allows individuals to be certified Approved Targeted Case Management in Kentucky.\",\r\n \"The following curricula are available for approval by the Department for Behavioral Health, Developmental and Intellectual Disabilities (DBHDID):\",\r\n <>\r\n <ul>\r\n\r\n <li>Targeted Case Management 12-Hour Core (TCM Core)</li>\r\n <li>Serious Mental Illness (SMI)</li>\r\n <li>Severe Emotional Disability (SED)</li>\r\n <li>Substance Use Disorder (SUD)</li>\r\n <li>Co-occurring Behavioral Health (SMI, SED, SUD) and Chronic or Complex Physical Health Condition(s) (CCPHC)</li>\r\n\r\n </ul>\r\n </>,\r\n <>\r\n The Kentucky Administrative Regulations (KAR) specifically speak to the elements of a \"training curriculum\" and the training requirements (testing of the trainee and evaluation of the trainers) and provide the curriculum applicant with an understanding of the requirements for targeted case management—both eligibility and training. These regulations can be found in the Related Links box on the right side of the page.\r\n </>,\r\n <>\r\n DBHDID requires the use of specific documents to ensure the complete submission of all necessary materials. This will allow DBHDID staff to review the curricula in their entirety and make an approval decision or request supplementary materials efficiently within the period specified in the regulations. Curriculum submission requirements are listed below. For a list of Frequently Asked Questions, please see the Related Links below.\r\n\r\n </>,\r\n \r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"Submission Requirements for Targeted Case Management 12-Hour Curriculum\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 40,\r\n content: <>\r\n <ol>\r\n <li>Review regulation 908 KAR 2:260 in Related Links.</li>\r\n <li>Complete the Single Curriculum Submission Summary <a href=\"https://dbhdid.ky.gov/documents/dbh/tcm/summary.pdf\">PDF</a> <a href=\"https://dbhdid.ky.gov/documents/dbh/tcm/summary.docx\">Word</a>. This document contains identifying information about the applicant applying for curriculum approval.</li>\r\n <li>Complete the TCM 12-Hour Core Curriculum Rubric <a href=\"https://dbhdid.ky.gov/documents/dbh/tcm/rubric-tcm.pdf\">PDF</a> <a href=\"https://dbhdid.ky.gov/documents/dbh/tcm/rubric-tcm.docx\">Word</a>. This rubric identifies the required TCM core components and expectations for curriculum development. Please note that the curriculum cannot be reviewed if the rubric's yellow section is incomplete; the submitter's information will be returned, and resubmission is requested.</li>\r\n <li>Submit an electronic version of the curriculum, saved as a Word, PowerPoint and/or PDF file using a USB flash drive. These documents must be clearly labeled with entities/submission name.</li>\r\n <li>Include an examination and an answer key in your curriculum submission.</li>\r\n <li>Include an evaluation form of the training.</li>\r\n </ol>\r\n\r\n </>\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 50,\r\n content: \"Submission Requirements for Family Peer Support Specialist 30-Hour Curriculum\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 60,\r\n content: <>\r\n <ol>\r\n <li>Review regulation 908 KAR 2:260 in Related Links.</li>\r\n <li>Complete the Single Curriculum Submission Summary <a href=\"https://dbhdid.ky.gov/documents/dbh/tcm/summary.pdf\">PDF</a> <a href=\"https://dbhdid.ky.gov/documents/dbh/tcm/summary.docx\">Word</a>. This document contains identifying information about the applicant applying for curriculum approval.</li>\r\n <li>Complete the TCM 12-Hour Core Curriculum Rubric <a href=\"https://dbhdid.ky.gov/documents/tcm/summary.pdf\">PDF</a> <a href=\"https://dbhdid.ky.gov/documents/tcm/rubric-sed.docx\">Word</a>. This rubric identifies the required TCM core components and expectations for curriculum development. Please note that the curriculum cannot be reviewed if the rubric's yellow section is incomplete; the submitter's information will be returned, and resubmission requested.</li>\r\n <li>Submit an electronic version of the curriculum saved as a Word, PowerPoint, and/or PDF file on a USB flash drive. The documents must be clearly labeled with the entity/submission name.</li>\r\n <li>Include an examination and an answer key in your curriculum submission.</li>\r\n <li>Include an evaluation form of the training.</li>\r\n </ol>\r\n </>\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 70,\r\n content: \"Submission Requirements for Severe Mental Illness 6-Hour Curriculum\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 80,\r\n content: <>\r\n <ol>\r\n <li>Review regulation 908 KAR 2:260 in Related Links.</li>\r\n <li>Complete the Single Curriculum Submission Summary <a href=\"https://dbhdid.ky.gov/documents/dbh/tcm/summary.pdf\">PDF</a> <a href=\"https://dbhdid.ky.gov/documents/dbh/tcm/summary.dox\">Word</a>. This document contains identifying information about the applicant applying for curriculum approval.</li>\r\n <li>Complete the SMI 6-Hour Curriculum Rubric <a href=\"https://dbhdid.ky.gov/documents/dbh/tcm/rubric-smi.pdf\">PDF</a> <a href=\"https://dbhdid.ky.gov/documents/dbh/tcm/rubric-smi.docx\">Word</a>. This rubric identifies the required SMI core components and expectations for curriculum development. Please note that the curriculum cannot be reviewed if the rubric's yellow section is incomplete; the submitter's information will be returned, and resubmission is requested.</li>\r\n <li>Submit an electronic version of the curriculum saved as a Word, PowerPoint and/or PDF file using a USB flash drive. These documents must be clearly labeled with entities/submission name.</li>\r\n <li>Include an examination and an answer key in your curriculum submission.</li>\r\n <li>Include an evaluation form of the training.</li>\r\n </ol>\r\n </>\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 90,\r\n content: \"Submission Requirements for Severe Emotional Disability 6-Hour Curriculum\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 100,\r\n content: <>\r\n <ol>\r\n\r\n <li>Review regulation 908 KAR 2:260 in Related Links.</li>\r\n <li>Complete the Single Curriculum Submission Summary <a href=\"https://dbhdid.ky.gov/documents/dbh/tcm/summary.pdf\">PDF</a> <a href=\"https://dbhdid.ky.gov/documents/dbh/tcm/summary.docx\">Word</a>. This document contains identifying information about the applicant applying for curriculum approval.</li>\r\n <li>Complete the SED 6-Hour Curriculum Rubric <a href=\"https://dbhdid.ky.gov/documents/dbh/tcm/rubric-sed.pdf\">PDF</a> <a href=\"https://dbhdid.ky.gov/documents/dbh/tcm/rubric-sed.docx\">Word</a>. This rubric identifies the required SED core components and expectations for curriculum development. Please note that the curriculum cannot be reviewed if the rubric's yellow section is incomplete; the submitter's information will be returned, and resubmission requested.</li>\r\n <li>Submit an electronic version of the curriculum, saved as a Word, PowerPoint, and/or PDF file on a USB flash drive. The documents must be clearly labeled with the entity/submission name.</li>\r\n <li>Include an examination and an answer key in your curriculum submission.</li>\r\n <li>Include an evaluation form of the training.</li>\r\n </ol>\r\n </>\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 110,\r\n content: \"Submission Requirements for Substance Use Disorder 6-Hour Curriculum\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 120,\r\n content: <>\r\n <ol>\r\n <li>Review regulation 908 KAR 2:260 in Related Links.</li>\r\n <li>Complete the Single Curriculum Submission Summary <a href=\"https://dbhdid.ky.gov/documents/dbh/tcm/summary.pdf\">PDF</a> <a href=\"https://dbhdid.ky.gov/documents/dbh/tcm/summary.docx\">Word</a>. This document contains identifying information about the applicant applying for curriculum approval.</li>\r\n\r\n <li>Complete the SUD 6-Hour Curriculum Rubric <a href=\"https://dbhdid.ky.gov/documents/dbh/tcm/rubric-sud.pdf\">PDF</a> <a href=\"https://dbhdid.ky.gov/documents/dbh/tcm/rubric-sud.docx\">Word</a>.\r\n This rubric identifies the required SUD core components and expectations for curriculum development. Please note that the curriculum cannot be reviewed if the rubric's yellow section is incomplete; the submitter's information will be returned, and resubmission is requested.</li>\r\n <li>Submit an electronic version of the curriculum, saved as a Word, PowerPoint and/or PDF file using a USB flash drive. These documents must be clearly labeled with entities/submission name.</li>\r\n <li>Include an examination and an answer key in your curriculum submission.</li>\r\n <li>Include an evaluation form of the training.</li>\r\n </ol>\r\n </>\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 130,\r\n content: \"Submission Requirements for Co-Occurring Behavioral Health (Serious Mental Illness, Severe Emotional Disability, Substance Use Disorder) and Chronic or Complex Physical Health Condition(s) 6-Hour Curriculum\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 140,\r\n content: <>\r\n <ol>\r\n <li>Review regulation 908 KAR 2:260 in Related Links.</li>\r\n <li>Complete the Single Curriculum Submission Summary <a href=\"https://dbhdid.ky.gov/documents/dbh/tcm/summary.pdf\">PDF</a> <a href=\"https://dbhdid.ky.gov/documents/dbh/tcm/summary.docx\">Word</a>. This document contains identifying information about the applicant applying for curriculum approval.</li>\r\n <li>Complete the SMI, SED, or SUD and a Co-occurring Chronic or Complex Physical Health Condition 6-Hour Curriculum Rubric <a href=\"https://dbhdid.ky.gov/documents/dbh/tcm/rubric-cod.pdf\">PDF</a> <a href=\"https://dbhdid.ky.gov/documents/dbh/tcm/rubric-cod.docx\">Word</a>. This rubric identifies the required CCPHC core components and expectations for curriculum development. Please note that the curriculum cannot be reviewed if the rubric's yellow section is incomplete; the submitter's information will be returned, and resubmission requested.</li>\r\n <li>Submit an electronic version of the curriculum, saved as a Word, PowerPoint and/or PDF file using a USB flash drive. These documents must be clearly labeled with entities/submission name.</li>\r\n <li>Include an examination and an answer key in your curriculum submission.</li>\r\n <li>Include an evaluation form of the training.</li>\r\n </ol>\r\n </>\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 150,\r\n content: \"Sample Curriculum Resources\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 160,\r\n content: <>\r\n <ol>\r\n <li><a href=\"https://dbhdid.ky.gov/documents/dbh/csa/sample.pdf?t=00063507102024\">Sample curriculum</a></li>\r\n <li><a href=\"https://dbhdid.ky.gov/documents/dbh/tcm/sample-eval.pdf?t=00063507102024\">Sample evaluation of training</a></li>\r\n <li><a href=\"https://dbhdid.ky.gov/documents/dbh/tcm/sample-exam1.pdf?t=00063507102024\">Sample trainee test questions</a></li>\r\n </ol>\r\n </>\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 170,\r\n content: \"Where to Submit Complete Curriculum and Supporting Documentation\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 180,\r\n content: [\r\n \"Submit this information to:\",\r\n <>\r\n Department for Behavioral Health, Developmental and Intellectual Disabilities <br />\r\n Division of Program Integrity <br />\r\n Program Support Branch <br />\r\n 275 E. Main Street 4CD <br />\r\n Frankfort, KY 40621 <br />\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 190,\r\n content: \"Curriculum Review and Trainer Requirements\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 200,\r\n content: [\r\n <>After a curriculum is received, it will be reviewed within 20 business days. Communication on the status of the submitted curriculum will be sent to the contact person listed on the \"Single Curriculum Submission Summary.\"</>,\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 190,\r\n content: \"Approved Curriculum Guidelines\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 200,\r\n content: [\r\n <>Once the curriculum is approved, the provider will establish and maintain a TRIS account by entering trainee information and uploading documentation directly into the system. Correspondence concerning the submission of this information will be sent via mail or email.</>,\r\n \"After the curriculum is approved, when modifications occur, please notify the department using the “Contact Us†link in the Contact Information box at the top right of the page.\"\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 210,\r\n content: \"Questions About the Process?\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 220,\r\n content: [\r\n <>Please email us at <a href='mailto:csa@ky.gov'>csa@ky.gov</a></>,\r\n\r\n ]\r\n }\r\n\r\n];\r\n\r\nexport default tCM_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst eBPCYF_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"Early Childhood Mental Health Evidence-based Practices\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n <>\r\n <b>Attachment and Bio-behavioral Catch-up (ABC)</b> is a parent/child treatment approach designed to help caregivers provide nurturing care and engage in synchronous interactions with their infants. ABC helps caregivers re-interpret children's behavioral signals so that they can provide nurturance through parent coaching sessions. It is a home-visiting parenting program that helps parents nurture and respond sensitively to their infants and toddlers in order to foster their development and for strong and healthy attachments. For more information, please visit <a href='https://www.abcintervention.org/ '>https://www.abcintervention.org/</a>.<br />\r\n <b>Population of focus:</b> ABC was developed primarily for use with low-income African-American, Hispanic, and non-Hispanic White families who have experienced neglect, physical abuse, domestic violence, and placement instability. Children age birth – 24 months; both males and females; in low-income families and who have experienced neglect, abuse, domestic violence, placement instability.\r\n </>,\r\n <>\r\n <b>Child-Parent Psychotherapy (CPP)</b> focuses on attachment, self-regulation, competency, and trauma experience integration. The goal of the model is to support the child, family, and system’s ability to engage in the present moment. For more information, please visit <a href='www.childparentpsychotherapy.com'>HOME – Child-Parent Psychotherapy</a>.<br />\r\n <b>Population of focus: </b>Age 0-6; both males and females; for youth who have experienced a wide range of traumas and parents with chronic trauma.z\r\n </>,\r\n <>\r\n <b>Parent- Child Interaction Therapy (PCIT) </b>focuses on decreasing externalizing child behaviors problems, increasing child social skills and cooperation, and improving the parent-children attachment relationship. <a href='http://www.pcit.org/'>http://www.pcit.org/</a><br />\r\n <b>Population of focus: </b>Age 2-7.\r\n </>,\r\n <>\r\n <b>Trauma- Focused Cognitive Behavioral Therapy (TF-CBT) </b>focuses on addressing distorted beliefs and attributions related to abuse and trauma, providing a supportive environment for children to talk about traumatic experiences, and helping parents cope with their distress and learn effective ways to support their children. For more information visit <a href='https://tfcbt.org/ '>https://tfcbt.org/</a>.<br />\r\n <b>Population of focus: </b>Age 3-18.\r\n </>,\r\n <>\r\n <b>Nurturing Parenting Programs (CPP)</b> focuses on attachment, self-regulation, competency, and trauma experience integration. The goal of the model is to support the child, family, and system’s ability to engage in the present moment. For more information, please visit <a style={{ overflowWrap: 'break-word' }} href='www.childparentpsychotherapy.com'>HOME – Child-Parent Psychotherapy</a>.<br />\r\n <b>Population of focus: </b>Age 0-17.\r\n </>,\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"Trauma-informed, Evidence-based and Best Practices for Children, Youth, and Adults\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 40,\r\n content: [\r\n <>\r\n <b>Child-Parent Psychotherapy (CPP)</b> focuses on attachment, self-regulation, competency, and trauma experience integration. The goal of the model is to support the child, family, and system’s ability to engage in the present moment. For more information, please visit <a style={{ overflowWrap: 'break-word' }} href='www.childparentpsychotherapy.com'>HOME – Child-Parent Psychotherapy</a><br />\r\n <b>Population of focus: </b> Age 0-6; both males and females; for youth who have experienced a wide range of traumas and parents with chronic trauma\r\n </>,\r\n <>\r\n <b>Dialectical Behavior Therapy (DBT) </b> focuses on providing therapeutic skills in four key areas; mindfulness, emotional regulation, and interpersonal effectiveness. For more information, please visit <a style={{ overflowWrap: 'break-word' }} href='https://behavioraltech.org/resources/faqs/dialectical-behavior-therapy-dbt/ '>https://behavioraltech.org/resources/faqs/dialectical-behavior-therapy-dbt/ </a>\r\n <br /> <b>Population of focus: </b> Adolescents and Adults\r\n </>,\r\n <>\r\n <b>Eye Movement Desensitization and Reprocessing (EMDR) </b> focuses on spontaneous associations of traumatic images, thoughts, emotions, and sensations; and dual stimulations using bilateral eye moments, tones, and taps. For more information, please visit <a style={{ overflowWrap: 'break-word' }} href='https://www.apa.org/ptsd-guideline/treatments/eye-movement-reprocessing'>Eye Movement Desensitization and Reprocessing (EMDR) Therapy (apa.org)</a><br />\r\n <b>Population of focus: </b>Adults\r\n </>,\r\n <>\r\n <b>Kniffley Racial Trauma Therapy (KRTT) </b>is an evidence-based, race-based trauma therapy model. It addresses three areas: physiological, psychological, and relational impact of race-related stress and trauma; evidence-based assessment tools for racial identity development, quantifying discriminatory experiences, and determining the physical and emotional impact of racially stressful events; and the application of culturally relevant therapeutic techniques rooted in racial identity exploration/development, racial trauma processing, and skill development. Training is offered via a virtual, self-paced program. For more information, please visit: <a style={{ overflowWrap: 'break-word' }} href=' https://drstevenkniffleyjr.com/racial-trauma-therapy-training/'>https://drstevenkniffleyjr.com/racial-trauma-therapy-training/</a> <br />\r\n <b>Population of Focus: </b>Black, Indigenous, and People of Color (BIPOC) age 13 and up who have experienced race-related stress and trauma. It has been found to reduce race-related stress and trauma and promote racial identity exploration/development\r\n </>,\r\n <>\r\n <b>Kniffley Youth Racial Therapy (KYRTT) </b>is a promising trauma therapy model for children. It addresses three areas: physiological, psychological, and relational impact of race-related stress and trauma; evidence-based assessment tools for racial identity development, quantifying discriminatory experiences, and determining the physical and emotional impact of racially stressful events; and the application of culturally relevant therapeutic techniques rooted in racial identity exploration/development, racial trauma processing, and skill development. Training is offered via a virtual, self-paced program. For more information, please visit: <a style={{ overflowWrap: 'break-word' }} href=\"https://kniffleyyouthracialtraumatherapy.talentlms.com/catalog/info/id:127 \">https://kniffleyyouthracialtraumatherapy.talentlms.com/catalog/info/id:127</a><br />\r\n </>,\r\n <>\r\n <b>Nurturing Parenting Programs</b> focuses on family -centered trauma initiatives designed to build nurturing parenting skills as an alternative to abusive and neglecting parenting and child-rearing practices. The long term goals are to prevent recidivism in families receiving social services, lower the rate of multi-parent teenage pregnancies, reduce the rate of juvenile delinquency and alcohol abuse, and stop the intergenerational cycle of child abuse by teaching positive parenting behaviors. NPP has several models created to support subpopulations of families (i.e., military families; prenatal families; young parents; families in substance use treatment and recovery, and others). For more information visit <a style={{ overflowWrap: 'break-word' }} href='https://www.nurturingparenting.com/about.html '>https://www.nurturingparenting.com/about.html </a>\r\n <b>Population of Focus: </b>Parents and their children\r\n </>,\r\n <>\r\n <b>Parent - Child Interaction Therapy (PCIT)</b> focuses on decreasing externalizing child behaviors problems, increasing child social skills and cooperation, and improving the parent-children attachment relationship. <a href='http://www.pcit.org/ '>http://www.pcit.org/</a><br />\r\n <b>Population of focus: </b>Children age 2-7\r\n </>,\r\n <>\r\n <b>Seeking Safety</b> is a counseling model to help attain safety from trauma and/ substance abuse. For more information, please visit <a href='https://www.treatment-innovations.org/ss-description.html'>https://www.treatment-innovations.org/ss-description.html</a><br />\r\n <b>Population of focus: </b>Adolescents and adults who have trauma\r\n </>,\r\n <>\r\n <b>Trauma-Focused Cognitive Behavioral Therapy (TF-CBT) </b>focuses on addressing distorted beliefs and attributions related to abuse and trauma, providing a supportive environment for children to talk about traumatic experiences, and helping parents cope with their distress and learn effective ways to support their children. For more information visit <a href='https://tfcbt.org/'>https://tfcbt.org/</a><br />\r\n <b>Population of focus: </b>Children and youth 3-18\r\n </>,\r\n <>\r\n <b>Trauma Recovery and Empowerment Model (TREM) </b> is a group- based intervention that addresses PTSD and other closely related mental disorders. For more information, please visit <a href='https://www.improvingmipractices.org/resources/encyclopedia/trauma-recovery-and-empowerment-model-trem'>https://www.improvingmipractices.org/resources/encyclopedia/trauma-recovery-and-empowerment-model-trem</a><br />\r\n <b>Population of focus: </b>Adult women who have a history of sexual, physical, and/or emotional abuse and can have severe mental health problems and frequent co-occurring substance abuse issues\r\n </>,\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 50,\r\n content: \"Evidence-based / informed Care Coordination Practices for Children and Youth\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 60,\r\n content: [\r\n <>\r\n <b>FOCUS </b>is an evidence informed intermediate care coordination model that was designed to support decreased system involvement while working to build connections and supports for families through community-based resources. For more information, please visit: <a href='https://theinstitute.umaryland.edu/our-work/national/focus/'>https://theinstitute.umaryland.edu/our-work/national/focus/</a><br />\r\n <b>Population of focus:</b> FOCUS is intended for youth and their families with lesser or intermediate complexity involved with child welfare, juvenile justice, or behavioral health agencies who are at risk of deeper or multi-system involvement, and whose challenges exceed the resources of a single organization.\r\n </>,\r\n <>\r\n <b>High Fidelity Wraparound (HFW) </b>is an Evidence-informed Intensive Care Coordination model. It is an ecologically based process and approach to care planning that builds on the collective action of a committed group of family, friends, community, professional, and cross-system supports mobilizing resources and talents from a variety of sources resulting in the creation of a plan of care that is the best fit between the family vision and story, team mission, strengths, needs, and strategies. For more information, please visit: <a href='https://www.nwic.org/'>https://www.nwic.org/</a><br />\r\n <b>Population of focus</b>children youth who meet criteria for having a serious emotional disability and who have complex emotional, behavioral, or mental health needs, and their families. More effective for culturally diverse youth compared to traditional services. HFW has been shown to improve placement stability; decrease out of home placements; and improve emotional and behavioral functioning\r\n </>,\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 70,\r\n content: \"Evidence-based/informed Clinical Practices/Approaches for Children and Youth\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 80,\r\n content: [\r\n <>\r\n <b>Functional Family Therapy (FFT) </b> is an evidence-based, strength-focused family counseling approach. It is short term and is provided in home and clinic settings, and can also be provided in school; juvenile justice; mental health; and child welfare facilities. For more information please visit: <a href='https://www.fftllc.com/'>https://www.fftllc.com/</a><br />\r\n <b>Population of focus: </b> youth age 11-18 who have been referred by school, child welfare, or juvenile justice for emotional or behavioral problems, substance use, or delinquency.\r\n </>,\r\n <>\r\n <b>Managing and Adapting Practice (MAP) </b>is a system designed to improve the quality, efficiency, and outcomes of children’s mental health services by providing access to most current information about effective practice techniques and providing easy to use measurement resources and clinical protocols. It provides an online database for clinicians that suggests evidence-based treatment programs as well as detailed recommendations about discrete components of evidence-based treatments that are effective with youth’s characteristics. The MAP system also includes an evaluation framework that tracks outcomes and practice. For more information please visit: <a href='https://welcome.practicewise.com/product/managing-and-adapting-practice-map/'>https://welcome.practicewise.com/product/managing-and-adapting-practice-map/ </a><br />\r\n <b>Population of focus: </b>children and youth receiving mental health treatment.\r\n </>,\r\n <>\r\n <b>Multi-dimensional Family Therapy (MDFT) </b> is an evidence-based, family focused treatment intervention for adolescent substance use, delinquency, and other behavioral and emotional problems. Treatment addresses needs is the following four areas: the adolescent, parent, family, and community. Therapy sessions are held alone with the youth, alone with the parents, and with youth and parents together. Therapy focuses on facilitating behavioral and interactional change. The final stage of this approach is focused on solidifying behavioral and relational changes so that treatment gains are sustained over time. For more information, please visit: <a href='https://www.mdft.org/'>https://www.mdft.org/</a> <br />\r\n <b>Population of Focus</b> Youth age 11 to 18 with or at risk of substance use; delinquency/conduct disorder; school and other behavioral problems, and both internalizing and externalizing symptoms.\r\n </>,\r\n <>\r\n <b>Multi-systemic Therapy (MST)</b> is an evidenced based intensive treatment process that focuses on diagnosed behavioral health concerns and environmental systems (family, school, peer groups, culture, neighborhood and community) that contribute to, or influence an individual’s involvement, or potential involvement in the juvenile justice system. MST uses family strengths to promote positive coping activities, works with the caregivers to reinforce positive behaviors, and reduce negative behavior, and helps the family increase accountability and problem solving. Treatment is used at the onset of behaviors that could result in (or have resulted in) criminal involvement by treating the individual within the environment that has formed the basis of the problem behavior. For more information, please visit: <a href='https://www.mstservices.com/ '>https://www.mstservices.com/ </a><br />\r\n <b>Population of focus: </b>Youth 12-17 who are at risk of out-of-home placement, or who are returning home from an out of home placement, however youth of other ages can be receive the service if medically necessary.\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 90,\r\n content: \"Evidence-based and Best Practices Parent/Family and Youth Support Practices\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 100,\r\n content: [\r\n <>\r\n <b>Attachment and Bio-behavioral Catch-up (ABC)</b> is a parent/child treatment approach designed to help caregivers provide nurturing care and engage in synchronous interactions with their infants. ABC helps caregivers re-interpret children's behavioral signals so that they can provide nurturance through parent coaching sessions. It is a home-visiting parenting program that helps parents nurture and respond sensitively to their infants and toddlers in order to foster their development and for strong and healthy attachments. For more information, please visit <a href='https://www.abcintervention.org/'>https://www.abcintervention.org/</a> <br />\r\n <b>Population of Focus:</b> ABC was developed primarily for use with low-income African-American, Hispanic, and non-Hispanic White families who have experienced neglect, physical abuse, domestic violence, and placement instability. Children age birth – 24 months; both males and females; in low-income families and who have experienced neglect, abuse, domestic violence, placement instability.\r\n </>,\r\n <>\r\n <b>Family and Youth Cafés </b> are a method of facilitating meaningful, reflective conversations that promote leadership and collaboration. These gatherings, derived from the World Café model, bring community members together for a series of structured conversations that directly or indirectly address protective factors. Through participation in cafés, parents/caregivers or youth build leadership skills and relationships as well as the protective factors that help to strengthen their families. Family and Youth Cafés are supported through Strengthening Families and Youth Thrive. For more information, please visit <a href='https://cssp.org/wp-content/uploads/2018/08/CAFE-OVERVIEW-2015.pdf'>https://cssp.org/wp-content/uploads/2018/08/CAFE-OVERVIEW-2015.pdf</a><br />\r\n <b>Population of focus: </b>Family Cafés, parents and caregivers; Youth Cafés, adolescents.\r\n </>,\r\n <>\r\n <b>Nurturing Parenting Programs </b>focuses on family -centered trauma initiatives designed to build nurturing parenting skills as an alternative to abusive and neglecting parenting and child-rearing practices. The long term goals are to prevent recidivism in families receiving social services, lower the rate of multi-parent teenage pregnancies, reduce the rate of juvenile delinquency and alcohol abuse, and stop the intergenerational cycle of child abuse by teaching positive parenting behaviors. NPP has several models created to support subpopulations of families (i.e., military families; prenatal families; young parents; families in substance use treatment and recovery, and others).\r\n For more information visit <a href='https://www.nurturingparenting.com/about.html'>https://www.nurturingparenting.com/about.html</a><br />\r\n <b>Population of focus: </b>Parents and their children\r\n </>,\r\n <>\r\n <b>Peer Support</b> encompasses a range of activities and interactions between people who share similar experiences of being diagnosed with mental health conditions, substance use disorders, or both. This mutuality between a peer support specialist and person in or seeking recovery promotes connection and inspires hope. Peer support services promote:<br />\r\n <ul>\r\n <li>Engagement</li>\r\n <li>Socialization</li>\r\n <li>Wellness</li>\r\n <li>Self-advocacy; and</li>\r\n <li>Preservation & enhancement of community living skills</li>\r\n </ul>\r\n <b>Peer Support Specialists </b> are individuals who have lived experience of recovery from a mental health, substance use, or co-occurring MH/SU disorder and who have completed Peer Support certification training. They provide non-clinical, strengths-based support.\r\n Two types of Peer Support Specialists are available to work with children, youth, and families.\r\n </>,\r\n <>\r\n <b>Youth Peer Support Specialist (YPSS): </b>a person who is between 18 and 36 years old, received services for a behavioral health disorder prior to age 21, and has completed YPSS certification training. A YPSS works directly with youth up to age 26 to support them in navigating the system of care.<br />\r\n <b>Family Peer Support Specialist (FPSS): </b>a parent/caregiver with permanent legal custody of a child/youth who received services for a behavioral health condition prior to age 21 and who experienced navigating the receipt of these services and supports on behalf of their child/youth. A FPSS provides support to the parent/caregiver of the youth receiving services, and the family as whole, in navigating the system of care. <br />\r\n For more information, please visit: <br />\r\n\r\n <a href='https://www.samhsa.gov/brss-tacs/recovery-support-tools/peers'>https://www.samhsa.gov/brss-tacs/recovery-support-tools/peers</a><br />\r\n <a href='https://www.samhsa.gov/sites/default/files/programs_campaigns/brss_tacs/peer-support-2017.pdf '>https://www.samhsa.gov/sites/default/files/programs_campaigns/brss_tacs/peer-support-2017.pdf </a><br />\r\n <a href='https://youthmovenational.org/youth-peer-support/'>https://youthmovenational.org/youth-peer-support/ </a><br />\r\n <a href='https://www.fredla.org/parent-to-parent-support-resources/ '>https://www.fredla.org/parent-to-parent-support-resources/ </a>\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 110,\r\n content: \"Evidence-based and Best Practices for Youth That Address Substance Use and/or Co-occurring Mental Health and Substance Use\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 120,\r\n content: [\r\n <>\r\n <b>Adolescent Community Reinforcement Approach (A-CRA) </b> is a developmentally appropriate behavioral treatment and seeks to increase the family, social, and educational/vocational reinforces to support recovery. More information can be found here <a href='https://www.chestnut.org/ebtx/treatments-and-research/treatments/a-cra/.'>https://www.chestnut.org/ebtx/treatments-and-research/treatments/a-cra/.</a> <br />\r\n <b>Population of focus: </b>This intervention has been implemented with youth and young adults 12 – 24 in outpatient, intensive outpatient, and residential treatment settings.\r\n </>,\r\n <>\r\n <b>Cannabis Youth Treatment (CYT)</b> is the umbrella term of five volumes of manuals focusing on different treatment modalities including cognitive behavioral therapy, motivational enhancement therapy, multidimensional family, etc to engage young people and their families to cease cannabis use and can be found here <a href='https://www.chestnut.org/store/9/Cannabis-Youth-Treatment-CYT-Manuals/store/.'>https://www.chestnut.org/store/9/Cannabis-Youth-Treatment-CYT-Manuals/store/. </a><br />\r\n <b>Population of focus:</b> This intervention has been implemented with youth and young adults 12 – 24 in outpatient, intensive outpatient, and residential treatment settings\r\n </>,\r\n <>\r\n <b>CRAFFT 2.1+N </b>N is a health screening tool designed to identify substance use (including nicotine), substance-related risk and substance use disorder. It is free to use and requires no training to administer, all versions here <a href='https://crafft.org/.'>https://crafft.org/.</a><br />\r\n <b>Population of focus: </b>Youth 12 – 21 in all settings\r\n </>,\r\n <>\r\n <b>Global Appraisal of Individual Need (GAIN) </b>is a series of measures designed to measure how recent, how often and consumption of substance use, physical health, risk/protective involvement, mental health, environment and vocational situation. There are several versions of the GAIN, including the Initial (GAIN-I), Short Screener (GAIN-SS), Quick (GAIN-Q3), and can be found here <a href='https://gaincc.org/instruments/. '>https://gaincc.org/instruments/. </a><br />\r\n <b>Population of focus: </b>11+ and can be used in outpatient, intensive outpatient, probation and employee/student assistance settings at intake and follow for both adolescents and adults; for adolescents specifically, it can be used in short term residential, therapeutic community and residential aftercare programs for adolescents. In adults it can also be used in drug court program, methadone, short-term residential, long-term residential, Treatment Alternatives to Street Crimes (TASC) criminal justice residential program, pregnant/postpartum women’s program, dual diagnosis, and homeless subgroups for adults.\r\n </>,\r\n <>\r\n <b>Matrix Model </b> Model is an integrative treatment model meant to address Stimulant Use Disorder through a combination of evidence-based therapies. People who participate in Matrix therapy participate in an intensive outpatient treatment program for 16 weeks, where they are provided different evidence-based therapies in a highly structured environment. Modalities include cognitive behavioral therapy, contingency management, 12 Step facilitation, motivational interviewing and family therapy. More information can be found here <a href='https://www.hazelden.org/web/public/matrix.page.'>https://www.hazelden.org/web/public/matrix.page.</a> <br />\r\n <b>Population of focus: </b>Individuals with a Stimulant Use Disorder including methamphetamine and cocaine and their family members. There are additional modifications for teens and young adults as well as for those in the criminal justice system.\r\n </>,\r\n <>\r\n <b>Seven Challenges</b> is designed to motivate a decision and commitment to change to support success in implementing the desired changes in youth and young adults with co-occurring mental and health and substance use, trauma and family issues. <a href='www.sevenchallenges.com.'>www.sevenchallenges.com.</a><br />\r\n <b>Population of focus: </b> Adolescents and young adults 13 – 25 and is effective within racially, ethnically and culturally diverse group of youth, both male and female including outpatient, intensive outpatient, residential, day treatment and home-based. It is also used in public and private schools, drug courts, juvenile justice settings and wilderness/experiential programs, and can be used in both individual and group settings. The Seven Challenges can also be used with adults in individual and group settings.\r\n </>,\r\n <>\r\n <b>SMART Recovery </b> stands for Self-Management and Recovery Training and works as recovery peer support through self-empowerment, and working on underlying issues related to substance use. For more information, go to <a href='https://www.smartrecovery.org/.'>https://www.smartrecovery.org/.</a><br />\r\n <b>Population of focus: </b> Local chapters are open to individuals, typically under 30, and in recovery from substance use disorders, though older adults are welcome.\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 130,\r\n content: \"Evidence-based and Best Practices for Transition Age Youth and Young Adults\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 140,\r\n content: [\r\n <>\r\n <b>Applied Suicide Intervention Skills (ASIST) </b>is a 2-day training program that teaches participants how to assist those at risk for suicide. Although many healthcare professionals use ASIST, anyone 16 years or older can use the approach, regardless of professional background: <a href='https://www.livingworks.net/asist'>https://www.livingworks.net/asist</a>\r\n </>,\r\n <>\r\n <b>Assessing and Managing Suicide Risk (AMSR)</b> Training teaches clinicians and other healthcare professionals who conduct suicide risk assessments how to determine the level of suicide risk for an individual: <a href='https://solutions.edc.org/solutions/zero-suicide-institute/amsr/amsr-services/amsr-training'>https://solutions.edc.org/solutions/zero-suicide-institute/amsr/amsr-services/amsr-training</a>\r\n </>,\r\n <>\r\n <b>Double Trouble in Recovery (DTR) </b>is a mutual-aid, self-help program for adults who have been diagnosed with both a mental illness and a substance use disorder. In a mutual-aid program, people help each other address a common problem, usually in a group led by consumer facilitators rather than by professional treatment or service providers. DTR is adapted from the 12 Steps of Alcoholics Anonymous; however, DTR groups are structured with the intent of creating an environment in which people with an active addiction and psychiatric diagnosis can identify with other members and explore their dual recovery needs: <a href='http://dtrky.org/ '>http://dtrky.org/ </a>\r\n </>,\r\n <>\r\n <b>Pathways Transition Training Modules (Pathways Research and Training Center) </b>is a set of 10 online training modules to provide additional education to providers who work with youth and young adults focusing on specific youth/young adult issues and solutions to engaging youth/young adults more effectively <a href='https://www.pathwaysrtc.pdx.edu/pathways-transition-training-modules '>https://www.pathwaysrtc.pdx.edu/pathways-transition-training-modules </a>\r\n </>,\r\n <>\r\n <b>Screening, Brief Intervention, and Referral to Treatment (SBIRT) </b>is a comprehensive, integrated, public health approach to the delivery of early intervention and treatment services for people with substance use disorders, and those at-risk for developing them: <a href='https://sbirt.webs.com/webinars '>https://sbirt.webs.com/webinars </a>\r\n </>,\r\n <>\r\n <b>Teen Mental Health First Aid (TMHFA) </b> teaches teens in grades 10-12, or ages 15-18, how to identify, understand and respond to signs of mental health and substance use challenges among their friends and peers: <a href='https://www.mentalhealthfirstaid.org/population-focused-modules/teens/ '>https://www.mentalhealthfirstaid.org/population-focused-modules/teens/ </a>\r\n </>,\r\n <>\r\n <b>Youth Mental Health First Aid (YMHFA) </b>is designed to teach parents, family members, caregivers, teachers, school staff, peers, neighbors, health and human services workers, and other caring citizens how to help an adolescent (age 12-18) who is experiencing a mental health or addictions challenge or is in crisis. Youth Mental Health First Aid is primarily designed for adults who regularly interact with young people: <a href='https://www.mentalhealthfirstaid.org/population-focused-modules/youth/'>https://www.mentalhealthfirstaid.org/population-focused-modules/youth/</a>\r\n </>\r\n \r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 150,\r\n content: \"Additional Resources for Evidence-based Practices for Children, Youth, and Families:\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 160,\r\n content: [\r\n <>\r\n <a href='https://youth.gov/evidence-innovation/selecting-programs '>https://youth.gov/evidence-innovation/selecting-programs </a><br />\r\n <a href='https://www.blueprintsprograms.org/program-search/'>https://www.blueprintsprograms.org/program-search/</a><br />\r\n <a href='https://archive.cdc.gov/www_cdc_gov/healthyyouth/adolescenthealth/registries.htm'>https://archive.cdc.gov/www_cdc_gov/healthyyouth/adolescenthealth/registries.htm </a><br />\r\n <a href='https://cssp.org/our-work/project/strengthening-families/ '>https://cssp.org/our-work/project/strengthening-families/ </a><br />\r\n <a href='https://www.zerotothree.org/ '>https://www.zerotothree.org/ </a><br />\r\n <br />\r\n\r\n Additional trauma-based informed can be found here:<br />\r\n <a href='https://www.nctsn.org/treatments-and-practices '>https://www.nctsn.org/treatments-and-practices </a><br />\r\n <br />\r\n Additional practices for children and families (including but not limited to those who have involvement with the child welfare system) can be found here: <br />\r\n <a href='https://preventionservices.acf.hhs.gov/program'>https://preventionservices.acf.hhs.gov/program</a><br />\r\n <a href='https://www.childwelfare.gov/topics/management/practice-improvement/evidence/registries-resources/registries/child-youth-families/ '>https://www.childwelfare.gov/topics/management/practice-improvement/evidence/registries-resources/registries/child-youth-families/ </a><br />\r\n <a href='https://www.aecf.org/work/evidence-based-practice '>https://www.aecf.org/work/evidence-based-practice </a><br />\r\n <br />\r\n Additional practices for children and youth, including but not limited to those with justice involvement:<br />\r\n <a href='https://jjie.org/jjie-hub/evidence-based-practices/ '>https://jjie.org/jjie-hub/evidence-based-practices/ </a><br />\r\n <a href='https://ojjdp.ojp.gov/model-programs-guide/home '>https://ojjdp.ojp.gov/model-programs-guide/home</a>\r\n </>\r\n ]\r\n }\r\n];\r\n\r\nexport default eBPCYF_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport { Link } from \"react-router-dom\";\r\nimport Links from \"../../../components/Links\";\r\n\r\n\r\nconst adultMH_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"About Us\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n <>\r\n The Adult Mental Health and Recovery Services Branch is responsible for overseeing and supporting the 14 regional Community Mental Health Centers (CMHCs) in the delivery of behavioral health services to adults with serious mental illness<b>(SMI).</b>,\r\n \"Staff provide training and technical assistance to the CMHCS to enhance their capacity to deliver an array of evidence-based practices that focus on the promotion, treatment, and recovery services and supports for adults with SMI.\r\n </>,\r\n <>\r\n <ul className=\"no-bullet\">\r\n <li>\r\n <Link className=\"quick-links-body\" to={\"/mh/act\"}>\r\n <div>Assertive Community Treatment</div>\r\n </Link>\r\n <Link className=\"quick-links-body\" to={\"/mh/employment\"}>\r\n <div>Individual Placement Support Supported Employment</div>\r\n </Link>\r\n <Link className=\"quick-links-body\" to={\"/sud/ebpi-recovery\"}>\r\n <div>Peer Support</div>\r\n </Link>\r\n <Link className=\"quick-links-body\" to={\"/mh/housing\"}>\r\n <div>Supportive Housing</div>\r\n </Link>\r\n\r\n </li>\r\n </ul>\r\n\r\n </>,\r\n <>\r\n Program Administrators are directly involved with the implementation of the Third Amended Settlement Agreement (TASA), through which adults with serious mental illness are assisted in transitioning to the community from Personal Care Homes and diverted from institutionalization. They also serve as liaisons for the state psychiatric hospitals to ensure quality of services and continuity of care.\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"Program Areas\"\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 40,\r\n content: <>\r\n The Adult Mental Health and Recovery Services Branch staff is responsible for the following program areas:\r\n <br />\r\n <br />\r\n\r\n <Links linkTypeID=\"223\" />\r\n </>\r\n }\r\n];\r\n\r\nexport default adultMH_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\n\r\n\r\nconst act_Content = [\r\n\r\n\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n \"The ACT model is guided by multiple essential practices, including:\",\r\n \"Multidisciplinary team: Providers with various professional training and backgrounds work together to blend their knowledge and skills. A typical ACT team consists of a team leader, psychiatrist/ psychiatric nurse practitioner, registered nurses, a co-occurring disorders specialist, an employment may include additional specialist positions to provide support in areas such as forensics, housing, specialist, a peer specialist, clinicians and case managers, and a program assistant. Some team’s psychiatric rehabilitation, and family support or specific roles to assure culturally responsive and equitable care such as interpreter(s) or formal inclusion of natural community supports, (e.g., faith organizations, resettlement agency advocates).\",\r\n \"Small caseload: An ACT team that is practicing with fidelity has a staff-to-client ratio of no more than 1 to 10. A team gives each client individualized care.\",\r\n \"Shared caseload: Providers do not have individual caseloads; rather, the team as a whole is responsible for ensuring clients receive needed services.\",\r\n \"Fixed point of responsibility: The ACT team is responsible for helping a client develop their person-centered plan and collectively provides the services each client needs and wants to support achieving their expressed goals. If using another provider is optimal (e.g., to provide medical care), the ACT team ensures clients receive those services. The team also ensures effective communication about ongoing care needs and goals.\",\r\n \"Flexible service delivery: The ACT team meets daily to discuss how each client is doing. Team members quickly adjust their services to respond to changes in client needs.\",\r\n \"Community-based and community-focused services: ACT is not an office-based service. ACT teams provide assertive outreach and deliver services in the places where clients spend their time (e.g., homes, shelters, encampments). Services focus on full community integration. A hallmark of ACT is skills training within the community, such as helping people work, shop, bank, use the library, use recreation centers, and engage in other community-based activities. ACT includes community-based and community-focused services that reflect the needs of diverse communities, specifically culturally appropriate spaces.\",\r\n \"Time-unlimited services: The ACT team provides services for as long as needed.\",\r\n \"24/7 crisis availability: Services are available 24 hours a day, 7 days a week.\"\r\n ]\r\n },\r\n];\r\n\r\nexport default act_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst employment_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n <>\r\n <b>Individual Placement and Support (IPs) </b>is a model of supported employment for people with serious mental illness (SMI), such as schizophrenia spectrum disorder, bipolar, depression as well as substance use disorder (SUD) or co-occurring conditions. IPS supported employment helps those living with behavioral health conditions work at regular jobs of their choosing. Although variations of supported employment exist, IPS refers to the evidence-based practice of supported employment.\r\n </>,\r\n <>\r\n <b>Characteristics of IPS Supported Employment: </b>\r\n <ul>\r\n <li>It is an evidence-based practice. </li>\r\n <li>Practitioners focus on each person’s strengths.</li>\r\n <li>Work promotes recovery and wellness.</li>\r\n <li>Practitioners work in collaboration with state vocational rehabilitation counselors. </li>\r\n <li>IPS uses a multidisciplinary team approach. </li>\r\n <li>Services are individualized and last as long as the person needs and wants them. </li>\r\n <li>The IPS approach changes the way mental health services are delivered. </li>\r\n </ul>\r\n </>,\r\n <>\r\n <b>The 8 Practices and Principles of IPS: </b>\r\n\r\n <ul>\r\n <li>Focus on Competitive Integrated Employment</li>\r\n <li>Eligibility is based on consumer choice</li>\r\n <li>Integration of rehabilitation and mental health services</li>\r\n <li>Attention to worker preferences</li>\r\n <li>Personalized benefits counseling</li>\r\n <li>Rapid job search</li>\r\n <li>Systematic job search</li>\r\n <li>Time-unlimited individualized support</li>\r\n </ul>\r\n </>,\r\n <>\r\n Employment is an essential part of recovery for individuals with SMI and/or substance use disorder. In Kentucky, only about 10 percent of adults with SMI receiving services from Community Mental Health Centers were employed in fiscal year 2009. This employment rate has held steady for many years.\r\n </>,\r\n <>\r\n The goal of the Division of Mental Health (DMH) is to develop high-fidelity supported employment services, to increase access to these services for adults with SMI and /or SUD throughout the commonwealth, and to improve the overall employment rate for individuals who want to work.\r\n </>,\r\n <>\r\n DMH along with the Office of Vocational Rehabilitation (OVR) was selected to become a part of the IPS International Learning Collaborative in 2010. A small funding grant was secured and, technical assistance for the implementation of IPS in Kentucky was provided by the IPS Employment Center, formerly the Johnson & Johnson–Dartmouth Community Mental Health Program. Each IPS program has individualized IPS trainers to implement IPS and assist them in achieving good fidelity.\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 20,\r\n content: \"Individual Placement and Support Supported Employment (IPS)\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 30,\r\n content: [\r\n \"Using a combination of federal block grant funds, state general funds, and collaborative agreements with the Office of Vocational Rehabilitation, the Department coordinates the evidenced-based Individual Placement and Support Supported Employment (IPS) for consumers in all state regions.\",\r\n \"IPS Supported Employment programs play a vital role in offering vocational opportunities to individuals who have been unable to secure jobs due to psychiatric conditions and other factors. The program staff are dedicated to developing jobs that are tailored to the consumer's specific needs, desires, and work availability in the region, thereby maximizing their chances of successful employment.\",\r\n \"Once the consumer obtains employment, the IPS Program continues to support the them on the job based on their individualized needs. Consumers may work full or part-time, at minimum wage or above.\"\r\n ]\r\n }\r\n\r\n];\r\n\r\nexport default employment_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\n\r\n\r\nconst housing_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"Supportive Housing\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n \"The department embraces the Permanent Supportive Housing approach of the Substance Abuse and Mental Health Services Administration (SAMHSA), defined as voluntary, flexible supports to help people with serious mental illness to choose, get, and keep housing that is decent, safe, affordable, and integrated into the community.\",\r\n \"Central to the approach is a belief that people with serious mental illness should have the right to live in a home of their own, without any special rules or service requirements.\",\r\n <>\r\n <ol>\r\n <li><b>Choice of housing.</b> Providing access to scattered-site housing offers the best opportunity to meet tenants’ expressed choice of location, and for housing that is convenient to transportation, mental health services, family, shopping, and other essentials.</li>\r\n <li><b>Functional separation of housing and services.</b> Staff who provide support services such as case management, helping people find housing, and advocating for tenants, should not perform property management functions such as reviewing rental applications, collecting rent, and making eviction and renewal decisions. Separating housing provision from service provision helps to ensure that tenants’ rights under local and state landlord-tenant laws are respected.</li>\r\n <li><b>Decent, safe, and affordable housing.</b> Helping people with psychiatric disabilities to live in the community requires that decent housing be made affordable. For housing to be considered affordable, tenants must pay no more than 30 percent of their income toward rent plus basic utilities. Research indicates that access to housing subsidies improves housing quality, encourages engagement in mental health services, and leads to shorter hospital stays.</li>\r\n <li><b>Housing integration.</b> An integrated setting is one that allows people to interact with others who do not have disabilities. A desirable level of integration may be achieved by helping people find scattered-site homes on the rental market or by developing mixed-use buildings, in which most of the units are not reserved for people with psychiatric disabilities.</li>\r\n <li><b>Rights of Tenancy.</b> Housing is permanent in the sense that people have a lease, and as long as they meet the basic obligations of tenancy, such as paying rent, they are able to stay in their home. They do not need to move out of their home if their service needs change.</li>\r\n <li><b>Access to housing. </b>Part of having the same housing rights as everyone else is the ability to qualify for and keep housing regardless of whether services are accepted. Although Supportive Housing is designed for people who need services to live independently, and needed services are made available to tenants, acceptance of these services, including mental health treatments and medications, is not a requirement of receiving or maintaining housing.</li>\r\n <li><b>Flexible, voluntary, and recovery-focused services.</b> Supportive Housing is distinguished from residential treatment programs and congregate housing by the flexibility of the services offered and the freedom of tenants to choose the services that they need. Services and supports to foster success in desired housing should be accompanied by a thorough evaluation of what the individual needs and what they are willing to accept.</li>\r\n </ol>\r\n </>,\r\n \"With flexible supports, people with serious mental illness can live in housing of their choice, just like any other member of the community. These programs typically use a case management model but may utilize Assertive Community Treatment for service provision. Programs may also have on-site staff in permanent housing settings owned and managed by local CMHCs. All tenants have access to an array of services that help them keep their housing and live with maximum independence in community integrated housing with the goal of increasing community tenure.\"\r\n ]\r\n },\r\n];\r\n\r\nexport default housing_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\n\r\n\r\nconst tCMAdult_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"Targeted Case Management Services for Adults with Serious Mental Illness\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n <>\r\n Through state general revenue and Medicaid funding, targeted case management services are available to adults with serious mental illness (SMI) in all of Kentucky's 120 counties.\r\n </>,\r\n <>\r\n Targeted case management is defined as services that are furnished to assist adults with (SMI) in gaining access to needed medical, social, educational, or other services.\r\n </>,\r\n \"Guidance for targeted case management services for these populations can be found in 907 KAR 15:060, 907 KAR 15:065, 907 KAR 15:050, and 907 KAR 15:055 (see Related Links).\",\r\n \"Guidance for targeted case management eligibility and training requirements can be found at 908 KAR 2:260 and through “Related Links†on this page.\",\r\n <>\r\n Department for Behavioral Health, Developmental and Intellectual Disabilities (DBHDID) provides \"wraparound\" funds to Community Mental Health Centers (CMHCs) across the state to purchase necessary items and services that are not covered by available resources but are needed to adequately serve adults with SMI in the community. These funds are used for the nonrecurring cost of basic goods and services that are necessary for ensuring successful living in the community for adults with serious mental illness.\r\n </>\r\n ]\r\n },\r\n];\r\n\r\nexport default tCMAdult_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst housingResources_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: <h1 id='Housing'>Housing</h1>\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 20,\r\n content: \"Community Mental Health Centers\"\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 30,\r\n content: [\r\n \"Community Mental Health Centers (CMHCs) use a variety of strategies to develop housing options for individuals with serious mental illness.\",\r\n \"Some focus on actual housing development by employing regional housing developers; others focus on housing access by administering their own set-aside programs for rental assistance or through collaborative arrangements with local public housing agencies; while others operate more intensive supportive housing programs.\",\r\n \"Contact your local CMHC for more information on its housing opportunities.\",\r\n <> Use the \"Community Mental Health Centers\" link in the left navigation bar for more information.</>\r\n ]\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 40,\r\n content: \"Olmstead Housing Initiative\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 50,\r\n content: [\r\n \"The Olmstead Housing Initiative (OHI) is a partnership between the Department for Behavioral Health, Developmental and Intellectual Disabilities (DBHDID), New Beginnings Bluegrass (NBB), Community Mental Health Centers (CMHCs), Wellspring, and Kentucky Housing Corporation for Housing Quality Standards inspections (HQS). It was created in response to the 1999 Supreme Court decision Olmstead v. L.C., 527 U.S. 581, which was an interpretation of Title II of the Americans with Disabilities Act (ADA).\",\r\n \"OHI was created to meet the housing needs of persons with serious mental illness (SMI) who are transitioning from long-term stays in an institution, or who are at risk of institutionalization. Efforts have been made to move individuals living independently from institutions into affordable housing in their chosen communities.\",\r\n \"Institutions for this population includes, psychiatric hospitals, personal care homes, and nursing homes. OHI can pay for moving expenses, basic furnishings, and security and utility deposits provide an ongoing rental subsidy, and cover other housing-related expenses that are a barrier to transitioning to the community.\",\r\n \" Referrals to OHI can be made by CMHCs or other DBHDID contractors listed above.\"\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 60,\r\n content: \"Other Department-Contracted Housing Organizations\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 70,\r\n content: [\r\n <>\r\n <ul>\r\n <li><b><a href=\"http://www.newbeginningsbg.org/\">New Beginnings Bluegrass</a>. </b>Provides supported housing services in Lexington/Fayette County to individuals with serious mental illness who are transitioning from an institutional setting to integrated community housing, or who are at risk for institutionalization. New Beginnings links clients to services and activities of their choosing, accessing subsidies, locating suitable housing, negotiating leases, acquiring household items, moving the individual into the residence, and teaching basic life skills and other skills that strengthen recovery and promote community integration.</li>\r\n {/* <li><b><a href=\"http://www.newbeginningsbg.org/\">New Beginnings Bluegrass</a></b></li> */}\r\n </ul>\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 80,\r\n content: <h1 id='Homelessness'>Homelessness</h1>\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 90,\r\n content: \"Projects for Assistance in Transitioning from Homelessness Program\"\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 100,\r\n content: [\r\n \"The Stewart B. McKinney Homeless Assistance Amendments Act of 1990 created the Projects for Assistance in Transition from Homelessness (PATH) program. The PATH program is a federal formula grant distributed annually to all U.S. states and territories.\",\r\n \" The PATH program supports the delivery of services and resources to individuals who have serious mental illnesses, may have a co-occurring substance use disorder, and are homeless or at imminent risk of homelessness.\",\r\n \"PATH funds provide a menu of allowable services, including street outreach, case management, and services not supported by mainstream mental health programs.\",\r\n \"Programs receiving PATH funds target individuals who are experiencing homelessness with a serious mental illness as a priority population and maximize serving the most vulnerable adults who are literally and chronically homeless.\",\r\n \"The most recent state application for PATH funds is linked on the right side of this page under Related Links.\"\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 110,\r\n content: \"SSI/SSDI Outreach, Access, and Recovery (SOAR) Program\"\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 120,\r\n content: [\r\n \"The SOAR program is designed to increase access to Social Security Administration (SSA) disability benefits such as Supplemental Security Income and Social Security Disability Insurance (SSI/SSDI), for eligible adults who are experiencing or are at risk of homelessness and have a mental illness, medical impairment, or a co-occurring disorder.\",\r\n \"For people who are homeless or who are returning to the community from institutions (jails, prisons, or hospitals), access to these programs can be extremely challenging. Approval on initial applications for people who are homeless and who have no one to assist them is about 10-15 percent. For those who have a mental illness or co-occurring disorder that impairs cognition, the application process is even more difficult, yet accessing these benefits is often a critical first step in recovery.\",\r\n \" The SOAR Online Course is free and features video interviews, medical records, and progress notes to train case managers on completing an SSI/SSDI application for a fictional applicant in a practice case. The SOAR TA Center reviews all application packets and returns them to course participants with valuable feedback and tips. To access the online course, visit the SOAR Technical Assistance Center (see the link in Related Links).\",\r\n \" Some communities have local SOAR initiatives. Getting involved locally can be a great way to connect with others doing similar work. For more information on local initiatives, please use the contact information at the upper right of this page to contact the SOAR State Team Lead for Kentucky.\"\r\n ]\r\n },\r\n {\r\n format:bodyHelperTypes.title,\r\n order: 130,\r\n content: \"Homeless Prevention Project\"\r\n },\r\n {\r\n format:bodyHelperTypes.paragraphs,\r\n order: 140,\r\n content: [\r\n \"This project originated as an attempt to address institutional discharge into homelessness. A survey of Louisville shelters showed that 77.5 percent of the residents had an institutional background.\",\r\n \"The project offers institutional discharge planning to persons with mental illness who are exiting state-operated or -supervised institutions, including the prison system and foster care programs.\",\r\n \"The project has both an urban and a rural component. Seven Counties Services in Louisville, New Vista in Lexington, and LifeSkills in Bowling Green serve the urban component. The Adanta Group serves the rural component in south-central Kentucky. Coalition for the Homeless Louisville and the Homeless and Housing Coalition of Kentucky coordinate the program.\",\r\n \"The project's goal is to assist potentially homeless persons exiting state institutions for return or reentry into the community and to offer information about any necessary linkage to needed community services and supports. These include employment, medical and mental health services, housing, education, social supports, and other community-based services, decreasing the number of persons discharged from state-operated institutions into homelessness.\"\r\n ]\r\n }\r\n];\r\n\r\nexport default housingResources_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst adultMHAging_Content = [\r\n\r\n\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n \"The Kentucky Mental Health and Aging Coalition (KMHAC) was assembled in October 1999, with the assistance of a federal grant, to support the development of mental health services for the aging population. The KMHAC was modeled after the National Coalition on Mental Health and Aging.\",\r\n \"The Coalition comprises older adults, caregivers, local public and private organizations, state universities, and the Cabinet for Health and Family Services. The Coalition has four main purposes:\",\r\n <>\r\n FUNDING <br />\r\n\r\n Provide funding to local coalitions for events and/or activities promoting healthy mental health and aging community practices. <br />\r\n <br />\r\n Advocacy <br />\r\n Educate the aging population and their caregivers on their rights; empowering them to make informed decisions. <br />\r\n <br />\r\n EDUCATION <br />\r\n Support local trainings on mental health and related topics tailored towards the aging population. <br />\r\n <br />\r\n TECHNICAL ASSISTANCE <br />\r\n\r\n Assist local coalitions in developing sustainable plans that meet the needs of their aging populations within their communities.\r\n </>,\r\n <>\r\n <b>Local Coalitions and Resources:</b>\r\n <div class=\"row\">\r\n <div className=\"col\">\r\n\r\n <ul>\r\n <li>Northern Kentucky: 859-283-1885</li>\r\n <li>Buffalo Trace: 606-564-6894</li>\r\n <li>FIVCO: 606-929-1366</li>\r\n <li>Big Sandy: 606-886-2374</li>\r\n <li>Gateway: 606-780-0090</li>\r\n <li>Kentucky River: 606-666-7591</li>\r\n <li>Cumberland Valley: 606-877-5763</li>\r\n <li>Purchase: 270-247-7171</li>\r\n </ul>\r\n\r\n </div>\r\n <div className=\"col\">\r\n\r\n\r\n <ul>\r\n <li>Bluegrass: 859-269-8021</li>\r\n <li>Lake Cumberland: 270-866-4200</li>\r\n <li>Barren River: 270-781-2381</li>\r\n <li>Lincoln Trail: 270-769-2393</li>\r\n <li>KIPDA: 502-266-5571</li>\r\n <li>Green River: 270-926-4433</li>\r\n <li>Pennyrile: 270-886-9484</li>\r\n </ul>\r\n\r\n </div>\r\n </div>\r\n </>\r\n\r\n ]\r\n },\r\n];\r\n\r\nexport default adultMHAging_Content;","//Using the react library\r\nimport React from \"react\";\r\nimport Form from 'react-bootstrap/Form';\r\n//Using the react library:\r\nimport { useEffect, useState } from \"react\";\r\nimport useApi from \"../utils/UseAPI\";\r\nimport Spinner from 'react-bootstrap/Spinner';\r\nimport reportDataNames from '../data/data.json'\r\n\r\nfunction FacilitiesDataReports({ typeId, ...props }) {\r\n\r\n const { error, processing, getRequest } = useApi();\r\n const [allFacilities, setAllFacilities] = useState([]);\r\n const [mHSPCH, setMHSPCH] = useState([]);\r\n\r\n useEffect(() => {\r\n const fetchLinks = async () => {\r\n const [data, status] = await getRequest(null, \"facility/report-data\");\r\n if (status == 200) {\r\n // console.log(data.data);\r\n FormFilter(data.data);\r\n }\r\n else {\r\n console.log(error);\r\n }\r\n };\r\n fetchLinks();\r\n }, []);\r\n\r\n function FormFilter(reportData) {\r\n\r\n const allFacilitiesFilter = [];\r\n const mentalHealthSpecializedPersonalCareHomesFilter = [];\r\n\r\n reportData.forEach((reportDoc) => {\r\n if (reportDoc.reportTypeId == 1) {\r\n allFacilitiesFilter.push(reportDoc);\r\n }\r\n else if (reportDoc.reportTypeId == 2) {\r\n mentalHealthSpecializedPersonalCareHomesFilter.push(reportDoc);\r\n console.log(reportDoc)\r\n }\r\n })\r\n setAllFacilities(allFacilitiesFilter);\r\n setMHSPCH(mentalHealthSpecializedPersonalCareHomesFilter);\r\n }\r\n const [selectedListOne, setSelectedListOne] = useState(\r\n <>\r\n <option>Select a report</option>\r\n {processing ? <Spinner animation=\"border\" variant=\"success\" /> : allFacilities.map((data, index) => {\r\n return (\r\n <option value={\"https://dbhdid.ky.gov/DataReports/Reports.aspx?r=\" + data.nameRFormatted + \"&x=\"+ data.extension.replace(\".\",\"\") +\"&t=\" + data.reportTypeId} key={index}>{reportDataNames.facilitiesDataReportAllFacilities[index].name}</option >\r\n )\r\n })}\r\n </>);\r\n const [selectedListTwo, setSelectedListTwo] = useState(<>\r\n\r\n <option>Select a report</option>\r\n\r\n {processing ? <Spinner animation=\"border\" variant=\"success\" /> : mHSPCH.map((data, index) => {\r\n return (\r\n <option value={\"https://dbhdid.ky.gov/DataReports/Reports.aspx?r=\" + data.nameRFormatted + \"&x=\"+data.extension.replace(\".\",\"\")+\"&t=\" + data.reportTypeId} key={index}>{ reportDataNames.facilitiesDataReportMHSPCH[index].name}</option >\r\n )\r\n })}\r\n </>);\r\n\r\n const handleRadioChange = (value) => {\r\n \r\n if (value.target.value == \"DBF\") {\r\n setSelectedListOne(\r\n <>\r\n <option>Select a report</option>\r\n {processing ? <Spinner animation=\"border\" variant=\"success\" /> : allFacilities.map((data, index) => {\r\n return (\r\n <option value={\"https://dbhdid.ky.gov/DataReports/Reports.aspx?r=\" + data.nameFFormatted + \"&x=\"+data.extension.replace(\".\",\"\")+\"&t=\" + data.reportTypeId} key={index}>{data.extension.replace(\".\",\"\") == \"rdl\" ? data.reportDescription +\"*\" : data.reportDescription}</option >\r\n )\r\n })}\r\n </>\r\n )\r\n setSelectedListTwo(\r\n <>\r\n <option>Select a report</option>\r\n {processing ? <Spinner animation=\"border\" variant=\"success\" /> : mHSPCH.map((data, index) => {\r\n return (\r\n <option value={\"https://dbhdid.ky.gov/DataReports/Reports.aspx?r=\" + data.nameFFormatted + \"&x=\"+data.extension.replace(\".\",\"\")+\"&t=\" + data.reportTypeId} key={index}>{data.extension.replace(\".\",\"\") == \"rdl\" ? data.reportDescription +\"*\" : data.reportDescription}</option >\r\n )\r\n })}\r\n </>\r\n )\r\n }\r\n else {\r\n setSelectedListOne(\r\n <>\r\n <option>Select a report</option>\r\n {processing ? <Spinner animation=\"border\" variant=\"success\" /> : allFacilities.map((data, index) => {\r\n return (\r\n <option value={\"https://dbhdid.ky.gov/DataReports/Reports.aspx?r=\" + data.name + \"&x=\"+data.extension.replace(\".\",\"\")+\"&t=\" + data.reportTypeId} key={index}>{data.extension.replace(\".\",\"\") == \"rdl\" ? data.reportDescription +\"*\" : data.reportDescription}</option >\r\n )\r\n })}\r\n </>\r\n )\r\n setSelectedListTwo(\r\n <>\r\n <option>Select a report</option>\r\n {processing ? <Spinner animation=\"border\" variant=\"success\" /> : mHSPCH.map((data, index) => {\r\n return (\r\n <option value={\"https://dbhdid.ky.gov/DataReports/Reports.aspx?r=\" + data.name + \"&x=\"+data.extension.replace(\".\",\"\")+\"&t=\" + data.reportTypeId} key={index}>{data.extension.replace(\".\",\"\") == \"rdl\" ? data.reportDescription +\"*\" : data.reportDescription}</option >\r\n )\r\n })}\r\n\r\n </>\r\n )\r\n }\r\n };\r\n return (\r\n\r\n <>\r\n <Form >\r\n {['radio'].map((type) => (\r\n <div key={`inline-${type}`} className=\"mb-3\">\r\n <Form.Check \r\n inline\r\n className=\"radioButton\"\r\n label=\"Display by Facility\"\r\n name=\"group1\"\r\n type={type}\r\n value=\"DBF\"\r\n id={`inline-${type}-1`}\r\n onChange={handleRadioChange}\r\n />\r\n <Form.Check\r\n inline\r\n label=\"Display by Fiscal Year\"\r\n name=\"group1\"\r\n type={type}\r\n value=\"DFY\"\r\n id={`inline-${type}-2`}\r\n onChange={handleRadioChange}\r\n />\r\n\r\n <br />\r\n <br />\r\n </div>\r\n ))}\r\n <h4>All Facilities</h4>\r\n <div className=\"col-md-4 col-md-8\">\r\n {/* Return List */}\r\n <select className=\"form-select\" onChange={(e) => {\r\n window.open(e.target.value, '_blank')\r\n }}>\r\n {selectedListOne}\r\n </select>\r\n </div>\r\n <br />\r\n <div className=\"col-md-4 col-md-8\">\r\n <h4>Mental Health Specialized Personal Care Homes</h4>\r\n <select select className=\"form-select\" onChange={(e) => {\r\n window.open(e.target.value, '_blank')\r\n }}>\r\n {selectedListTwo}\r\n </select>\r\n </div>\r\n </Form>\r\n </>\r\n );\r\n}\r\n\r\nexport default FacilitiesDataReports;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport SanitizeHref from \"../../../utils/SanitizeHref\";\r\nimport DocumentsDropdown from \"../../../components/DocumentsDropdown\";\r\nimport FacilitiesDataReports from \"../../../components/FacilitiesDataReports\";\r\n\r\nconst dataReportsFacility_Content = [\r\n\r\n // {\r\n // format: bodyHelperTypes.title,\r\n // order: 10,\r\n // content: \"Facility Data Reports\"\r\n // },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n <>Select a report from one of the dropdown lists.</>,\r\n <>\r\n <b>Note: </b>\r\n These reports open in a separate tab, so you may have to disable your popup blocker or allow popups from this site.\r\n </>,\r\n <>\r\n <FacilitiesDataReports />\r\n </>\r\n ]\r\n },\r\n];\r\n\r\nexport default dataReportsFacility_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\n\r\n\r\nconst facilitesHome_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"Overview\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n <>\r\n <p>\r\n The department owns several inpatient facilities that provide psychiatric, rehabilitative and nursing care services to its clients.\r\n </p>\r\n <p>\r\n In addition, the department contracts with a private provider, Appalachian Regional Healthcare in Hazard, to provide up to 100 inpatient psychiatric beds for citizens of 21 eastern Kentucky counties as outlined in 908 KAR 2:040.\r\n </p>\r\n <p>\r\n For information on a specific facility, see the list below.\r\n </p>\r\n\r\n <h1 id='Psychiatric Hospitals'>Psychiatric Hospitals</h1>\r\n\r\n <p>\r\n These programs provide acute, inpatient psychiatric care for adults who are mentally ill. Many patients are referred through the CMHCs when it has been determined that community services/facilities are not appropriate.\r\n </p>\r\n <div class=\"row \">\r\n <div class=\"col\">\r\n <p>\r\n ARH Psychiatric Center - Hazard<br />\r\n <b><a href=\"mailto:thall8@arh.org \">Tiffany Hall, System Director</a></b><br />\r\n 102 Medical Center Drive <br />\r\n Hazard, Ky 41701 <br />\r\n <b>Phone:</b> (606) 439-6712 <br />\r\n <b>Fax:</b> (606) 439-5765 <br />\r\n <a href='https://www.arh.org/behavioral-health'>https://www.arh.org/behavioral-health <br /></a>\r\n </p>\r\n </div>\r\n <div class=\"col\">\r\n <p>\r\n Central State Hospital<br />\r\n <b>Matt Mooring, Director</b><br />\r\n 10510 LaGrange Road <br />\r\n Louisville, KY 40223-1228<br />\r\n <b>Phone:</b> (502) 253-7026 <br />\r\n <b>Fax:</b> (502) 253-7049 <br />\r\n </p>\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n\r\n <div class=\"row \">\r\n <div class=\"col\">\r\n <p>\r\n Eastern State Hospital<br />\r\n <b>Lindsey Jasinski, CAO</b><br />\r\n 1350 Bull Lea Road <br />\r\n Lexington, KY 40511 <br />\r\n <b>Phone:</b> (859) 246-8000 <br />\r\n <b>Fax:</b> (859) 246-8032 <br />\r\n <a href='http://ukhealthcare.uky.edu/eastern-state-hospital/'>http://ukhealthcare.uky.edu/<br />eastern-state-hospital/</a>\r\n </p>\r\n </div>\r\n <div class=\"col\">\r\n <p>\r\n Western State Hospital<br />\r\n <b>Rebecca Frost, Director</b><br />\r\n 2400 Russellville Road <br />\r\n P.O. Box 2220 <br />\r\n Hopkinsville, KY 42241-2200 <br />\r\n <b>Phone:</b> (270) 889-6025 <br />\r\n <b>Fax:</b> (270) 886-4487 <br />\r\n <a href='http://westernstatehospital.ky.gov/'>http://westernstatehospital.ky.gov/</a>\r\n </p>\r\n </div>\r\n </div>\r\n\r\n\r\n <h1 id='Intermediate Care Facilities for Individuals With Intellectual Disabilities (ICF/IID)'>Intermediate Care Facilities for Individuals With Intellectual Disabilities (ICF/IID)</h1>\r\n\r\n <p>\r\n\r\n These programs are designed to provide comprehensive and individualized health care, training and habilitation services to individuals to promote their functional skills and independence.\r\n </p>\r\n\r\n\r\n\r\n <div class=\"row \">\r\n <div class=\"col\">\r\n <p>\r\n Bingham Gardens<br />\r\n <b>Kelly T. Mangum, Director</b><br />\r\n 4407 Louise Underwood Way <br />\r\n Louisville, KY 40216<br />\r\n <b>Phone:</b> (502) 361-2301 <br />\r\n <b>Fax:</b> (502) 366-0367 <br />\r\n <a href='https://hazelwood.org/'>https://hazelwood.org/</a>\r\n\r\n </p>\r\n </div>\r\n <div class=\"col\">\r\n <p>\r\n Hazelwood ICF<br />\r\n <b>Kelly Mangum, Director</b><br />\r\n 1800 Old Bluegrass Center <br />\r\n P.O. Box 14506 <br />\r\n Louisville, KY 40215-1130<br />\r\n <b>Phone:</b> (502) 361-2301 <br />\r\n <b>Fax:</b> (502) 366-0367 <br />\r\n <a href='https://hazelwood.org/'>https://hazelwood.org/</a>\r\n </p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row \">\r\n <div class=\"col\">\r\n <p>\r\n Oakwood ICF<br />\r\n <b><a href=\"mailto:Darla.Crabtree@newvista.org \">Darla Crabtree, Director</a></b><br />\r\n 2441 US 27 South HWY 27<br />\r\n Somerset, KY 42501-2935<br />\r\n <b>Phone:</b> (606) 677-4068 <br />\r\n <b>Fax:</b> (606) 677-4148 <br />\r\n <a href='https://oakwoodky.org/'>https://oakwoodky.org/</a>\r\n\r\n\r\n </p>\r\n </div>\r\n <div class=\"col\">\r\n <p>\r\n Outwood ICF<br />\r\n <b>Kellie Stricker, Director</b><br />\r\n 23524 Dawson Springs Road<br />\r\n Dawson Springs, KY 42408-0524 <br />\r\n <b>Phone:</b> (270) 797-3771 <br />\r\n <b>Fax:</b> (270) 797-3592 <br />\r\n <a href='https://rescarecommunityliving.com/location/rescare-community-living-outwood-dawson-springs-ky/'>https://rescarecommunityliving.com/location/rescare-community-living-outwood-dawson-springs-ky/</a>\r\n </p>\r\n </div>\r\n </div>\r\n\r\n\r\n <h1 id='Nursing Facilities or Intermediate Care Facilities (ICFs)'>Nursing Facilities or Intermediate Care Facilities (ICFs)</h1>\r\n\r\n <p>\r\n\r\n These programs provide long-term medical care for mentally ill persons who also require treatment or supervision of the mental illness. Criteria for admission is inpatient status in other state-operated facilities.\r\n\r\n </p>\r\n\r\n\r\n <div class=\"row \">\r\n <div class=\"col\">\r\n <p>\r\n Glasgow SNF<br />\r\n <b><a href=\"mailto:Amanda.allen@ky.gov \"></a>Amanda Allen, Director</b><br />\r\n 207 State Avenue<br />\r\n P.O. Box 189<br />\r\n Glasgow, KY 42141<br />\r\n <b>Phone:</b> (270) 659-4700 <br />\r\n <b>Fax:</b> (270) 651-1726 <br />\r\n <a href='http://glasgowsnf.ky.gov/'>http://glasgowsnf.ky.gov/</a>\r\n\r\n </p>\r\n </div>\r\n <div class=\"col\">\r\n <p>\r\n Western SNF<br />\r\n <b>Terri Barbee, Director</b><br />\r\n 2400 Russellville Road<br />\r\n Hopkinsville, KY 42241 <br />\r\n <b>Phone:</b> (270) 889-2990 <br />\r\n <b>Fax:</b> (270) 886-7910 <br />\r\n <a href='http://westernstatehospital.ky.gov/'>http://westernstatehospital.ky.gov/</a>\r\n </p>\r\n </div>\r\n </div>\r\n\r\n <h1 id='Intermediate Care Facility Specialty Clinics'>Intermediate Care Facility Specialty Clinics</h1>\r\n\r\n <p>\r\n\r\n The specialty clinics provide evidence-based, holistic health care for people with intellectual and other developmental disabilities living in the facility or community.\r\n\r\n\r\n </p>\r\n\r\n\r\n <div class=\"row \">\r\n <div class=\"col\">\r\n <p>\r\n Oakwood Specialty Intermediate Care Clinic<br />\r\n <b>Adam Wright, Director</b><br />\r\n 2441 S. Highway 27<br />\r\n Somerset, KY 42501<br />\r\n <b>Phone:</b> (606) 677-4214 <br />\r\n <b>Fax:</b> (606) 677-4148 <br />\r\n <a href='http://www.oakwoodky.org/specialty-medical-clinic/getting-started'>http://www.oakwoodky.org/<br />\r\n specialty-medical-clinic/getting-started</a>\r\n\r\n </p>\r\n </div>\r\n <div class=\"col\">\r\n <p>\r\n Lee Specialty Clinic<br />\r\n <b>Lynzee Cornell, CEO</b><br />\r\n 4501 Louise Underwood Way<br />\r\n Louisville, KY 40216 <br />\r\n <b>Phone:</b> (502) 368-2348 <br />\r\n <a href='http://www.leespecialtyclinic.com'>http://www.leespecialtyclinic.com</a>\r\n </p>\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"row \">\r\n <div class=\"col\">\r\n <p>\r\n Hazelwood Center Specialty Intermediate Care Clinic<br />\r\n <b>Kelly Magum, Facility Director</b><br />\r\n Louisville, KY 40215-1130<br />\r\n <b>Phone:</b> (502) 361-2301 <br />\r\n <b>Fax:</b> (502) 366-0367 <br />\r\n <a href='https://hazelwood.org/'>https://hazelwood.org/</a>\r\n </p>\r\n </div>\r\n </div>\r\n\r\n\r\n <h1 id='Forensic Psychiatric Hospital'>Forensic Psychiatric Hospital</h1>\r\n\r\n <p>\r\n\r\n Kentucky Correctional Psychiatric Center (KCPC) is a licensed psychiatric hospital that conducts forensic competency evaluations, competency restoration, and criminal responsibility evaluations for pre-trial patients. The facility also provides inpatient treatment for individuals who have been adjudicated incompetent to stand trial and are held on a civil commitment order. All patients at KCPC are court-ordered under KRS 504.080, KRS 504.110, or KRS 202C. KCPC serves all 120 counties and is located in a secure facility on the grounds of Luther Luckett Correctional Complex in Lagrange, Kentucky.\r\n </p>\r\n\r\n\r\n\r\n <div class=\"row \">\r\n <div class=\"col\">\r\n <p>\r\n Kentucky Correctional Psychiatric Center<br />\r\n <b>Koleen Slusher, Director</b><br />\r\n 1612 Dawkins Road<br />\r\n P.O. Box 67<br />\r\n LaGrange, KY 40031 <br/>\r\n <b>Phone:</b> (502) 222-0067 <br />\r\n <b>Fax:</b> (502) 222-7798 <br />\r\n </p>\r\n </div>\r\n </div>\r\n\r\n </>\r\n ]\r\n },\r\n];\r\n\r\nexport default facilitesHome_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst pDRates_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"Per Diem Rates\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n <>\r\n Below are links to per diem rate sheets for the specified facilities. Click on a facility name to view its per diem rate sheet.\r\n <br/><br/>\r\n\r\n <Links linkTypeID=\"632\" />\r\n\r\n </>\r\n\r\n\r\n ]\r\n },\r\n];\r\n\r\nexport default pDRates_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst procedures_Content = [\r\n\r\n \r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n \"Click on a link below to view the document.\",\r\n\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"Facility Risk Management Protocol\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 40,\r\n content: [\r\n <><Links linkTypeID=\"146\" /></>\r\n\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 50,\r\n content: \"Related Facility Risk Management Forms and Information\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 60,\r\n content: [\r\n <><Links linkTypeID=\"145\" /></>\r\n\r\n ]\r\n },\r\n];\r\n\r\nexport default procedures_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst dPIHome_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"Description\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n <>\r\n The Division of Program Integrity (DPI) is designed to oversee critical organizational functions, including the following:\r\n\r\n <ul>\r\n <li>Regulation/legislative review.</li>\r\n <li>Business information/intelligence gathering, analysis and reporting.</li>\r\n <li>Contract monitoring.</li>\r\n <li>Risk management.</li>\r\n <li>Training support and facilitation.</li>\r\n <li>Oversight and monitoring for a statewide network of certified and licensed Substance Use Disorder (SUD) programs.</li>\r\n </ul>\r\n\r\n Within this division are three branches—the Data Analytics Branch, the Program Support Branch, and the Substance\r\n Use Disorder Program Licensure Branch—which are described below.\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"The Substance Use Disorder (SUD) Program Licensure Branch\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 40,\r\n content: [\r\n <>\r\n The Substance Use Disorder Program Licensure Branch is a newly created branch that brings together the Department’s Driving\r\n Under the Influence (DUI) Program and Narcotic Treatment Program (NTP) with the licensure of Alcohol and Other Drug Treatment Entities (AODEs).\r\n\r\n <ul>\r\n <li>The DUI Program is responsible for monitoring and regulating the statewide network of DUI programs licensed and certified to provide alcohol and other\r\n drug assessments, education, and treatment services to persons convicted of DUI. </li>\r\n <li>\r\n The NTP Program is responsible for the oversight and regulation of the NTPs across the Commonwealth that are licensed to\r\n provide medication-assisted treatment for individuals with an opioid use disorder.\r\n </li>\r\n <li>\r\n The Alcohol and other Drug Entity (AODE) licensure program oversees the outpatient and residential substance use disorder treatment facilities that are licensed, regulated, and inspected annually. The responsibility of AODEs was transferred over to BHDID on April 5, 2023.\r\n </li>\r\n </ul>\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 50,\r\n content: [\r\n <>\r\n The Data Analytics Branch provides oversight of application development and integration; business informatics;\r\n facility information system management, and the Electronic Medical Records project.\r\n </>,\r\n <>\r\n The branch also provides technical support to the Department for Behavioral Health, Developmental and Intellectual Disabilities and serves as the point of contact for development of technical solutions and interaction with the Commonwealth Office of Technology.\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 60,\r\n content: \"Program Support Branch\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 70,\r\n content: [\r\n \"The Program Support Branch is composed of four primary work units: Contract Monitoring, Education/Event Coordination, Risk Management and Mortality Reviews, and Legislation/Regulations.\",\r\n \"Each work unit is led by a Team Leader, and staff work cooperatively with other divisions to ensure delivery of high-quality products, accountability, and transparency that are representative of the department’s commitment to effective delivery of behavioral health, developmental and intellectual disability services to Kentuckians.\"\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 80,\r\n content: \"Contract Monitoring\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 90,\r\n content: [\r\n \"The Program Support Branch administers the contract monitoring process to assist in assuring delivery of specified goods and services in the manner contractually specified in selected contracts each year. Reported results provide accountability to DBHDID and their contracted vendors and offer an opportunity for improvement in future policy and resource allocation decisions. Contract monitoring also improves the quality of the contract content by proposing appropriate revisions that are written in more measurable and objective descriptions of specified goods and services.\"\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 100,\r\n content: \"Education/Event Coordination\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 110,\r\n content: [\r\n \"The Educational and Events Coordination Team coordinates and implements Department wide events and trainings which with continuing education units and are open to the general public. Determinations are issued on Provider Training Curricula for Community Support Associates, Peer Support Specialists and Targeted Case Managers to work in agencies to provide services to customers.\"\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 120,\r\n content: \"Risk Management & Mortality Reviews\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 130,\r\n content: [\r\n \"The risk management team oversees incidents that occur in facilities involving individuals served. Risk management includes the components of effective abuse protection recommended by the Centers for Medicare & Medicaid Services (CMS); incident investigation; tracking and trending of incidents; incident data analysis; and implementing effective actions to protect from harm those individuals served.\",\r\n \"The mortality review team analyzes all deaths that occur both within facilities and within the community (the SCL waiver program, Michelle P Waiver program, and individuals utilizing state general funds). A five-member mortality review committee meeting meets monthly.\"\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 140,\r\n content: \"Open Records & Media Requests\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 150,\r\n content: [\r\n <>\r\n Per KRS 61.870 individuals wishing to inspect a public record may submit an open records request by completing our Open Records Request Form\r\n <br />\r\n <br />\r\n\r\n <Links linkTypeID=\"778\" />\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 160,\r\n content: \"Kentucky Administrative Regulation (KAR) Filing Statements (KRS 13A.220(8))\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 170,\r\n content: [\r\n // <>\r\n // The legislation/regulations team is responsible for the drafting and amendment of administrative regulations. Additionally, they process open records requests and citizen complaints.\r\n // </>,\r\n <>\r\n The Department for Behavioral Health, Developmental and Intellectual Disabilities (DBHDID) filed the following proposed administrative regulations or amendments with the Legislative Research Commission (LRC). New and amended regulations are available for viewing online on the <a href='https://apps.legislature.ky.gov/law/kar/titles/908/'>LRC website.</a>\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 171,\r\n content: \"908 KAR 1:410 Recovery housing\"\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 180,\r\n content: [\r\n\r\n \r\n\r\n <>\r\n Filed: December 11, 2024\r\n </>,\r\n <>\r\n <b>Summary:</b> This administrative regulation establishes the requirements and standards for the certification of recovery houses. The proposed amendment clarifies the certification applications’ contents and process, incorporates fees for applications; introduces fines for operation of a noncertified, nonexempt recovery house; and establishes guidelines for provision of on-site medical and clinical services to recovery house residents consistent with best practices and other department regulations.\r\n </>,\r\n <>\r\n Material incorporated by reference has been filed. The KRH Application, Code of Ethics, and Attestations are all required documents that must be submitted by all entities applying for certification.\r\n </>,\r\n <>\r\n <Links linkTypeID=\"779\" />\r\n </>,\r\n <>\r\n Written public comments may be submitted to <a href='mailto:CHFSregs@ky.gov'>CHFSregs@ky.gov </a>through February 28, 2025. Upon request to the <a href='mailto:CHFSregs@ky.gov'>CHFSregs@ky.gov </a>by February 17, 2025, a public hearing will be held February 24, 2025, at 9:00 a.m. via Zoom.\r\n </>,\r\n <>\r\n The legislation/regulations team is responsible for the drafting and amendment of administrative regulations. Additionally, they process open records requests and citizen complaints.\r\n </>\r\n // <>\r\n // <b>Aug. 1, 2023</b><br /><br />\r\n\r\n // <b>908 KAR 2:300E & O Kentucky problem gambling assistance account.</b><br /><br />\r\n\r\n\r\n\r\n // <b>Summary:</b> This administrative regulation establishes the requirements and standards for the administration of the Kentucky problem gambling assistance fund. It also establishes the eligible entities and activities that may receive funds from the Kentucky Problem Gambling Assistance account and the process by which funds may be granted as required through 2023 Ky. Acts ch. 147. Additionally, entities must provide quality assurance measures and demonstrate the effectiveness of activities, programs, and services.\r\n // </>,\r\n // <>\r\n // Material incorporated by reference has been filed. The emergency version is in effect. The Kentucky Problem Gambling Assistance Application is used by eligible entities to apply for funds from the account. The emergency and ordinary versions are identical.\r\n // </>,\r\n // <>\r\n // Written public comments on the emergency version may be submitted to the Office of Regulatory Affairs through September 30, 2023. Upon request to the Office of Regulatory Affairs by September 18, 2023 a public hearing will be held September 25, 2023 at 9 a.m. via Zoom.\r\n // </>,\r\n // <>\r\n // Written public comments on the ordinary may be submitted to the <a href='mailto:CHFSregs@ky.gov'>Office of Regulatory Affairs</a> through October 31, 2023. Upon request to the <a href='CHFSregs@ky.gov'>Office of Regulatory Affairs</a> by October 16, 2023 a public hearing will be held October 23, 2023 at 9 a.m. via Zoom.\r\n // </>,\r\n // <>\r\n // <b>Aug. 4, 2022​</b><br /><br />\r\n\r\n // The Department for Behavioral Health, Developmental and Intellectual Disabilities filed the following proposed administrative regulation amendments Aug. 4, 2022. View the amendments on the <a href='https://apps.legislature.ky.gov/law/kar/titles/908/'>Legislative Research Commission website.</a>\r\n // </>,\r\n // <>\r\n // <b>908 KAR 1:374 Licensure of nonhospital-based outpatient alcohol and other drug treatment entities</b><br /><br />\r\n\r\n // <b>Summary:</b>The regulation amendment establishes standards for nonhospital-based alcohol and other drug treatment entities providing ambulatory withdrawal management, outpatient treatment services, intensive outpatient services, partial hospitalization or office-based opiate treatment services. It further establishes standards for operation of narcotic treatment programs in accordance with KRS 222.231(12) and 42 C.F.R. Part 8 and updates federal standards in compliance with Senate Bill 178 (2022 Regular Session).\r\n // </>,\r\n // <>\r\n // Written public comments may be submitted to the <a href='mailto:CHFSregs@ky.gov'></a>Office of Regulatory Affairs through Oct. 31, 2022. Upon request to the <a href='CHFSregs@ky.gov'>Office of Regulatory Affairs</a> by Oct. 17, 2022 a public hearing will be held Oct. 24, 2022, at 9 a.m. via Zoom.\r\n // </>,\r\n // <>\r\n // <b>Feb. 22, 2022</b><br /><br />\r\n\r\n // <b>908 KAR 3:010 E and O - Patient's rights</b><br /><br />\r\n\r\n // <b>Summary: </b>This amended emergency administrative regulation incorporates the designation of an essential personal care visitor, as defined and established in SB 100, for a resident of an assisted-living community, long-term care facility or state-owned or -operated psychiatric hospital. The ordinary amended administrative regulation is identical to the above-​referenced regulation.\r\n // </>,\r\n // <>\r\n // Written public comments on the emergency version may be submitted to the <a href='mailto:CHFSregs@ky.gov'>Office of Regulatory Affairs</a> through April 30, 2022. Upon request to the <a href='mailto:'>Office of Regulatory Affairs</a> ​by Apr. 21, 2022 a public hearing will be held Apr. 28, 2022, at 9 a.m. via Zoom.\r\n // </>,\r\n // <>\r\n // Written public comments on the identical ordinary version may be submitted to the <a href='CHFSregs@ky.gov'>Office of Regulatory Affairs</a> through May 31, 2022. Upon request to the <a href='CHFSregs@ky.gov'>Office of Regulatory Affairs</a> by May 16, 2022 a public hearing will be held May 23, 2022, at 9 a.m. via Zoom.\r\n // </>\r\n ]\r\n },\r\n\r\n];\r\n\r\nexport default dPIHome_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\n\r\n\r\nconst dUI_Content = [\r\n\r\n\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n <>\r\n Kentucky Revised Statute 189A.040(5) requires all DUI services to be received in an alcohol or sub-stance abuse education or treatment program or facility that is licensed, regulated, and monitored by the Cabinet for Health and Family Services.\r\n Therefore, Kentucky will not accept online DUI course completions. Please access the Provider Directory to identify the licensed, state-certified DUI provider(s) in your county.,\r\n </>,\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 20,\r\n content: \"Program Description\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 30,\r\n content: [\r\n \"The Driving Under the Influence (DUI) Program is responsible for monitoring and regulating the statewide network of Driving Under the Influence programs that are licensed and certified to provide alcohol and other drug assessments, education and treatment services to persons convicted of DUI.\",\r\n \"The program operates under the authority of administrative regulation 908 KAR 1:310, in accordance with the provisions of Kentucky Revised Statute 189A.\"\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 40,\r\n content: \"DUI Contact Information\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 50,\r\n content: [\r\n <>\r\n <ul> \r\n <li> Megan Kissel - DUI Coordinator </li>\r\n <a href=\"mailto: megan.kissel@ky.gov \"> megan.kissel@ky.gov</a> (606) 497-0208\r\n <li> James Farley - DUI Coordinator</li>\r\n <a href=\"mailto: james.farley@ky.gov\">james.farley@ky.gov</a> (502) 330-8205\r\n <li> Rae Williams - Training Coordinator</li>\r\n <a href=\"\">rae.williams@ky.gov</a> (502) 782-6143\r\n </ul>\r\n For out of state DUI questions or those pertaining to ignition interlock please contact the Department of Transportation at (502) 564-1257.\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 60,\r\n content: \"DUI Training\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 60,\r\n content: <>\r\n All applications must be submitted through the Kentucky Online Gateway (KOG) at <a href=\"https://kog.chfs.ky.gov/home/\">https://kog.chfs.ky.gov/home/</a>. In order for your application to be considered, all required documents must arrive by the stated deadline.\r\n Click the DUI Certification Training Dates link in the Related Links box to view a list of dates. Payment must be received before one will be permitted to attend the training.\r\n </>\r\n }\r\n];\r\n\r\nexport default dUI_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst opiate_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"Narcotic Treatment Programs and Medication-Assisted Treatment for Opioid Use Disorder\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n \"Narcotic Treatment Programs also known as Opioid Treatment Programs use provide medications for opioid use disorder including methadone and buprenorphine (e.g., Suboxone) to treat opioid use disorder. There are currently 31 Narcotic Treatment Program in Kentucky.\",\r\n <>\r\n The Substance Use Disorder Program Licensure Branch is responsible for the regulatory oversight, technical assistance, and compliance monitoring for methadone treatment. You can find the contact listing and map for each of these NTP locations <a href='https://dpt2.samhsa.gov/treatment/'><b>here</b></a>. If you are looking for a provider in your area, you can also utilize our provider directory <a href='/providerdirectory'><b>provider directory</b></a> to find more specific or specialized treatment. For more information on opioid use disorder and medications for substance use disorders, visit the <a href='https://www.samhsa.gov/medications-substance-use-disorders'><b>Substance Abuse and Mental Health Services Administration (SAMHSA).</b></a> \r\n </>,\r\n <>\r\n The regulations that govern this oversight can be found in related links. \r\n <br/> \r\n </>\r\n ]\r\n },\r\n];\r\n\r\nexport default opiate_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nconst cAP_Content = [\r\n\r\n\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n \"The links below provide information about curriculum approval processes outlined in Title 908, Chapter 2 of the Kentucky Administrative Regulations, which authorizes entities to teach the required training that allows individuals to become certified Community Support Associates, Peer Support Specialists, and Targeted Case Managers in Kentucky\",\r\n <>\r\n Click on a link below for more information about that area of interest.\r\n <br />\r\n <br />\r\n <ul className=\"no-bullet\">\r\n <li>\r\n <Link className=\"quick-links-body\" to={\"/mh/csa\"}>\r\n <div>Community Support Associate Training Provider Curriculum Approval Process</div>\r\n </Link>\r\n </li>\r\n <li>\r\n <Link className=\"quick-links-body\" to={\"/mh/pss\"}>\r\n <div>Peer Support Specialists Training Provider Curriculum Approval Process</div>\r\n </Link>\r\n </li>\r\n <li>\r\n <Link className=\"quick-links-body\" to={\"/mh/tcm\"}>\r\n <div>Targeted Case Management Training Provider Curriculum Approval Process</div>\r\n </Link>\r\n </li>\r\n <li>\r\n <Link className=\"quick-links-body\" to={\"/dpi/tris\"}>\r\n <div>DBHDID Training Records Information System</div>\r\n </Link>\r\n </li>\r\n </ul>\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 20,\r\n content: \"Certification Requirements\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 30,\r\n content: [\r\n <>\r\n <ul className=\"no-bullet\">\r\n\r\n <li>\r\n <h4 id='How to Become a Community Support Associate (CSA) in Kentucky'>How to Become a Community Support Associate (CSA) in Kentucky</h4>\r\n <a className=\"quick-links-body\" href=\"https://apps.legislature.ky.gov/law/kar/titles/908/002/250/\">Review regulation 908 KAR 2:220, Section 2.</a>\r\n </li>\r\n\r\n <li>\r\n If requesting a waiver for reciprocity purposes, please review regulation 908 KAR 2:220, Section 5.\r\n Waivers can be requested through the “Contact Us†link in the Contact Information box at the top right of the page.\r\n </li>\r\n </ul>\r\n </>,\r\n <>\r\n To become a Family Peer Support Specialist, an individual must complete the initial 30-hour training with an approved training provider\r\n </>,\r\n <>\r\n For questions regarding the schedule of training, cost of training, etc., please contact your nearest <b>approved training provider</b> from the \"PSS Training Providers: Family\" link in Related Links.\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 40,\r\n content: \"How to Become a Peer Support Specialist (PSS) in Kentucky\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 50,\r\n content: [\r\n <>\r\n <h4 id=\"Adult Peer Support Specialist (APSS)\">Adult Peer Support Specialist (APSS)</h4>\r\n <ul className=\"no-bullet\">\r\n\r\n <li>\r\n <a className=\"quick-links-body\" href=\"https://apps.legislature.ky.gov/law/kar/titles/908/002/220//\">Review regulation 908 KAR 2:220, Section 2.</a>\r\n </li>\r\n <li>\r\n If requesting a waiver for reciprocity purposes, please review regulation 908 KAR 2:220, Section 5. Waivers can be requested through the “Contact Us†link in the Contact Information box at the top right of the page.\r\n </li>\r\n\r\n </ul>\r\n </>,\r\n <>\r\n To become an Adult Peer Support Specialist, an individual must complete the initial 30-hour training with an approved training provider.\r\n </>,\r\n <>\r\n For questions regarding the schedule of training, cost of training, etc., please contact your nearest <b>approved training provider</b> from the \"PSS Training Providers: Adult\" link in Related Links.\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 60,\r\n content: \"Family Peer Support Specialist (FPSS)\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 70,\r\n content: [\r\n <>\r\n <ul className=\"no-bullet\">\r\n <li>\r\n <a className=\"quick-links-body\" href=\"https://apps.legislature.ky.gov/law/kar/titles/908/002/230/\">Review regulation 908 KAR 2:230, Section 2.</a>\r\n </li>\r\n <li>\r\n Review regulation 908 KAR 2:230, Section 2.\r\n If requesting a waiver for reciprocity purposes, please review regulation 908 KAR 2:230, Section 5.\r\n Waivers can be requested through the “Contact Us†link in the Contact Information box at the top right of the page.\r\n </li>\r\n </ul>\r\n </>,\r\n <>\r\n To become a Family Peer Support Specialist, an individual must complete the initial 30-hour training with an approved training provider.\r\n </>,\r\n <>\r\n For questions regarding the schedule of training, cost of training, etc., please contact your nearest <b>approved training provider</b> from the \"PSS Training Providers: Family\" link in Related Links.\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 80,\r\n content: \"Youth Peer Support Specialist (YPSS)\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 90,\r\n content: [\r\n <>\r\n <ul className=\"no-bullet\">\r\n\r\n <li>\r\n <a className=\"quick-links-body\" href=\"https://apps.legislature.ky.gov/law/kar/titles/908/002/240/\">Review regulation 908 KAR 2:240, Section 2 and Section 5.</a>\r\n </li>\r\n\r\n <li>\r\n If requesting a waiver for reciprocity purposes, please review regulation 908 KAR 2:240, Section 6.\r\n Waivers can be requested through the “Contact Us†link in the Contact Information box at the top right of the page.\r\n </li>\r\n </ul>\r\n </>,\r\n <>\r\n To become a Youth Peer Support Specialist, an individual must complete the initial 30-hour training with an approved training provider.\r\n </>,\r\n <>\r\n For questions regarding the schedule of training, cost of training, etc., please contact your nearest <b>approved training provider</b> from the \"PSS Training Providers: Family\" link in Related Links.\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 100,\r\n content: \"Alcohol and Other Drug Entities Continuing Education Requirements for Peer Support Specialists\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 110,\r\n content: [\r\n <>\r\n Pursuant to 908 KAR 2:220, 908 KAR 2:230, and 908 KAR 2:240, all peer support specialists are required to complete only 6 hours of continuing education annually.\r\n </>,\r\n <>\r\n If the peer support specialist falls under 908 KAR 1:370—alcohol and other drug entities—then the peer support specialist is required to complete only 10 hours of continuing education in alcohol and other drug-relevant training annually.\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 120,\r\n content: \"How to Become a Targeted Case Manager (TCM) in Kentucky\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 130,\r\n content: [\r\n <>\r\n <ul className=\"no-bullet\">\r\n\r\n <li>\r\n <a className=\"quick-links-body\" href=\"https://apps.legislature.ky.gov/law/kar/titles/908/002/260/\">Review regulation 908 KAR 2:260, Section 2.</a>\r\n </li>\r\n\r\n </ul>\r\n To become a Targeted Case Manager, an individual must complete the initial 12-hour training plus the additional 6-hour specialty training with an approved training provider.\r\n </>,\r\n <>\r\n For questions regarding the schedule of training, cost of training, etc., please contact your nearest approved training provider from the <b>\"TCM Training Providers\" </b>link in Related Links.\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 140,\r\n content: \"Alcohol and Other Drug Entities Continuing Education Requirements for Targeted Case Managers\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 150,\r\n content: [\r\n \"Pursuant to 908 KAR 2:260, all targeted case managers are required to complete only 6 hours of continuing education annually.\",\r\n \"If the peer support specialist falls under 908 KAR 1:370—alcohol and other drug entities—then the peer support specialist is required to complete only 10 hours of continuing education in alcohol and other drug-relevant training annually.\"\r\n ]\r\n }\r\n];\r\n\r\nexport default cAP_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst tRIS_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"What is DBHDID-TRIS?\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n <>\r\n The Department for Behavioral Health, Developmental and Intellectual Disabilities Training Records Information System (DBHDID-TRIS) is a web-based system for maintaining training information for DBHDID. All information transmitted on this site is secured via a digital secure socket layer (SSL).\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"How do DBHDID Approved Training Providers utilize DBHDID-TRIS?\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 40,\r\n content: [\r\n <>\r\n After the Training Provider becomes approved to teach a curriculum, they will be contacted by a DBHDID staff member regarding their access to DBHDID-TRIS. Training Providers will use DBHDID-TRIS to upload sign-in sheets and other required documentation for each training conducted. In addition, the training provider will assign credit to each individual that attended and passed the required\r\n examination to become certified. This important step will create a DBHDID TRIS account for each of those individuals.\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 50,\r\n content: \"How do PSS, CSA, and TCM utilize DBHDID-TRIS?\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 60,\r\n content: [\r\n <>\r\n Peer Support Specialists (PSS), Community Support Associates (CSA), and Targeted Case Managers (TCM) certified in Kentucky will use their unique DBHDID-TRIS account to submit proof of their required yearly 6.0 hours of continuing education, as outlined in the appropriate Kentucky Administrative Regulation (KAR), to the DBHDID.\r\n </>,\r\n <>\r\n Following the PSS, CSA, or TCM certification training through an approved DBHDID Training Provider, an individual account is created for each person that became certified. The individual shouldwill then:\r\n </>,\r\n <>\r\n <ol>\r\n <li>Receive an email from csa@ky.gov.</li>\r\n <li>Check their spam/junk folder for the email if they didn’t receive it.</li>\r\n <li>Click the link in the email to confirm their account.</li>\r\n <li>Set up their password per the instructions in the email.</li>\r\n <li>Receive another email that will contain their username.</li>\r\n </ol>\r\n </>,\r\n <>\r\n All trainings (certification trainings and CE trainings) entered into an account, will go onto the individual’s DBHDID TRIS Training Record. DBHDID-TRIS accounts will follow the individual no matter where they are employed and employers do not have access to these accounts.\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 70,\r\n content: \"Additional Questions?\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 80,\r\n content: [\r\n \"For additional questions regarding DBHDID-TRIS, please refer to the DBHDID-TRIS FAQs\",\r\n \"Contact the Department for Behavioral Health, Developmental and Intellectual Disabilities (DBHDID) for any other questions or comments:\",\r\n <>\r\n DBHDID <br />\r\n 275 E. Main Street 4CD <br />\r\n Frankfort, KY 40621<br />\r\n </>\r\n ]\r\n }\r\n];\r\n\r\nexport default tRIS_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\n\r\n\r\nconst dUITraining_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"DUI Training\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n <>\r\n If you wish to attend training, you will need to complete and submit the DUI Certification Training Dates form,\r\n and the appropriate application, both located in the \"DUI Training and Individual Certification Forms\" section on the DUI Forms page (see Related Links).\r\n </>,\r\n <>\r\n In order for your application to be considered, all required documents must arrive by the stated deadline.\r\n Click the Calendar of Events link in the Related Links box to view a list of training dates.\r\n </>,\r\n <>\r\n No applications will be accepted from any agency with payments 60 days or more past due. This is pursuant to the DUI regulation that states that no certification or recertification\r\n can be issued to any participant until the fee for the training has been paid. See the certification form for payment and mailing information.\r\n </>\r\n ]\r\n },\r\n];\r\n\r\nexport default dUITraining_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst dUIForms_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"DUI Training\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n \"Please visit the Calendar of Events to see upcoming training dates (see Related Links).\",\r\n <>\r\n <Links linkTypeID=\"469\" />\r\n </>\r\n ]\r\n },\r\n];\r\n\r\nexport default dUIForms_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst dUIFAQ_Content= [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"Frequently Asked Questions\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n <>\r\n This page contains links to types of frequently asked questions regarding Kentucky DUI program policy, for the purpose of informing DUI providers and the public. \r\n </>,\r\n <>\r\n Click on a link below to access that type's questions and answers. \r\n </>,\r\n <>\r\n For answers to Out-of-State Questions, contact the Department of Vehicle Regulation customer service center at (502) 564‑1257. \r\n </>,\r\n <>\r\n <Links linkTypeID=\"221\" />\r\n </>\r\n ]\r\n },\r\n];\r\n\r\nexport default dUIFAQ_Content;","//Using the react library\r\nimport React from \"react\";\r\n//Using the react library:\r\nimport { useState } from \"react\";\r\n\r\nimport service from '../data/CSBData.json'\r\n\r\nfunction CSBServiceDropdown() {\r\n \r\n const [selected, setSelected] = useState(null);\r\n\r\n return (\r\n <>\r\n <div title=\"CSB Services\" className=\"col-md-4 col-md-3\">\r\n {/* Return List */}\r\n <select className=\"form-select\" onChange={(e) => {\r\n // console.log(e.target.value);\r\n // console.log(contentCounties);\r\n const c = service.service?.find((x) => x.id == e.target.value)\r\n setSelected(c)\r\n // console.log(selected)\r\n }}>\r\n <option>Select a Service</option>\r\n \r\n {\r\n service.service.map((data, index) => {\r\n return (\r\n <option key={index} value={data.id} className=\"form-select\"\r\n >{data.title}</option>\r\n )\r\n })\r\n }\r\n </select>\r\n\r\n </div>\r\n {selected ?\r\n <> \r\n <p><b>{selected.title}. </b>{selected.description}</p>\r\n <p>{selected.descriptionTwo}</p>\r\n \r\n </>\r\n : null}\r\n </>\r\n\r\n );\r\n}\r\n\r\nexport default CSBServiceDropdown;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Links from \"../../../components/Links\";\r\nimport CSBServiceDropdown from \"../../../components/CSBServiceDropdown\";\r\n\r\nconst cSB_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"Description\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n \"The Community Supports Branch provides support, monitoring, and oversight of a variety of functions within the Division of Developmental and Intellectual Disabilities (DDID). It provides staff support, technical assistance, and monitoring of 14 Regional Community Mental Health/Intellectual Disability Centers (CMHCs).\",\r\n \"DDID Regional Liaisons work with CMHCs to assist persons with disabilities and their families in locating resources and supports. CMHCs provide services such as case management, community access, supported employment and respite. Services vary by region.\"\r\n\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"Services\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 40,\r\n content: [\r\n <>\r\n Click on a service to view its description.\r\n <br />\r\n <br />\r\n {/* <Links linkTypeID=\"411\" /> */}\r\n <CSBServiceDropdown />\r\n </>\r\n ]\r\n }\r\n];\r\n\r\nexport default cSB_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nconst sCL_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"Description\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n \"The Supports for Community Living (SCL) Waiver Branch of the Division of Developmental and Intellectual Disabilities (DDID) provides staff support for and oversight of the Supports for Community Living waiver program. The SCL waiver program is a home- and community-based program funded by the Kentucky Department for Medicaid Services and administered by DDID.\",\r\n \"The SCL waiver program was developed for Kentucky citizens as an alternative to institutionalization. The focus of SCL is to allow a person to remain in or return to the community, and to build and live a good life. Eligibility for enrollment in the SCL waiver program requires that a person with an intellectual disability or related conditions meets the level of care requirements for an Intermediate Care Facility for persons with Intellectual Disabilities (ICF/IID), and Medicaid eligibility requirements.\",\r\n \"Application to the SCL waiting list requires completion of an application and submission of required documentation. Application can be done in two ways:\",\r\n <>\r\n <ol>\r\n <li>By helping someone create an account in <a href='https://kynect.ky.gov/benefits/s/?language=en_US'>kynect benefits</a> and helping the person complete the </li>\r\n\r\n <li>\r\n For CMHCs and case management providers, by completing and submitting the application in the Medicaid Waiver Management Application (MWMA) using their logins. Utilize the <i>Integrated Waiver Application-Initiation and Management Reference Guide</i> in the TRIS training portal for instructions. Supports for Community Living program offers the services listed below. These are based on the person's goals, choices and priorities as identified through a person-centered service plan. Click on a service in the list below to view a description of the service or access the SCL Services page in the Related Links box on the right side of this page.\r\n </li>\r\n Supports for Community Living program offers the services listed below. These are based on the person's goals, choices and priorities as identified through a person-centered service plan. Click on a service in the list below to view a description of the service or access the SCL Services page in the Related Links box on the right side of this page.\r\n </ol>\r\n </>,\r\n <>\r\n <Link className=\"quick-links-body\" to={\"/ddid/scl-services\"}>Link to SCL Services</Link>\r\n </>\r\n\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"SCL Services\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 30,\r\n content: [\r\n \"SCL providers include regional comprehensive care centers and public and private agencies across the state. These providers are reviewed and certified by the Department for Behavioral Health, Developmental and Intellectual Disabilities initially and at least every two years thereafter, in accordance with the standards and requirements set forth by the Kentucky Department for Medicaid Services.\",\r\n \"SCL providers are continuously monitored to maintain quality of supports. All SCL providers have agreed to provide services according to the best practice accepted by their professional organization and to provide services in compliance with federal and state statutes regardless of age, color, creed, disability, ethnicity, gender, marital status, national origin, race, religion, or sexual orientation.\"\r\n\r\n\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 40,\r\n content: \"How to Obtain Services\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 50,\r\n content: [\r\n <>\r\n The first step is to complete an application in benefind (see the \"benefind\" link in Related Links) after creating an account OR ask a provider to help you with the application (see the \"Provider Directory\" link in Related Links). There is a waiting list for services and supports. An application will allow your name to be included on the list if you meet the criteria to receive SCL services.\r\n </>\r\n ]\r\n }\r\n];\r\n\r\nexport default sCL_Content;","//Using the react library\r\nimport React from \"react\";\r\n//Using the react library:\r\nimport { useEffect, useState } from \"react\";\r\n//API Middle man\r\nimport useApi from \"../utils/UseAPI\";\r\n// React loading spinner\r\nimport Spinner from 'react-bootstrap/Spinner';\r\nimport SanitizeHref from \"../utils/SanitizeHref\";\r\n\r\nfunction LinkNoNewPage({ linkTypeID, ...props }) {\r\n\r\n const [links, setLinks] = useState([]);\r\n const { error, processing, getRequest } = useApi();\r\n\r\n useEffect(() => {\r\n\r\n const fetchLinks = async () => {\r\n const [data, status] = await getRequest(null, \"link/\" + linkTypeID);\r\n if (status == 200) {\r\n setLinks(data.data)\r\n links.sort(((a, b) => a - b))\r\n }\r\n else {\r\n console.log(error)\r\n }\r\n };\r\n fetchLinks();\r\n }, []);\r\n return (\r\n <>\r\n <div className=\"\">\r\n <ul className=\"no-bullet\">\r\n {/* Return Links */}\r\n {\r\n processing ? <Spinner animation=\"border\" variant=\"success\" /> : links.map((data, index) => {\r\n return (\r\n <li><a key={index} className=\"quick-links-body\" href={SanitizeHref(data.url)}>{data.text}</a></li>\r\n )\r\n })\r\n }\r\n </ul>\r\n </div>\r\n </>\r\n );\r\n}\r\n\r\nexport default LinkNoNewPage;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Links from \"../../../components/Links\";\r\nimport LinkNoNewPage from \"../../../components/LinkNoNewPage\";\r\n\r\nconst clinical_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"Description\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n \"The Clinical Services Branch coordinates the quality assurance, quality improvement, and risk management responsibilities throughout the division.\"\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"Clinical Services Branch Projects\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 40,\r\n content: [\r\n <><LinkNoNewPage linkTypeID=\"721\" /></>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 50,\r\n content: \"National Core Indicators (NCI)\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 60,\r\n content: [\r\n \"DDID collaborates with the University of Kentucky Human Development Institute (HDI) to improve lifelong opportunities and services for individuals with disabilities, their families and the community. DDID also works with HDI to measure the quality of services provided to individuals with disabilities through participation in the NCI quality survey.\",\r\n \"The national core indicators are standard measures used across states to assess the outcomes of services provided to individuals and families. Indicators address key areas of concern including employment, rights, service planning, community inclusion, choice, and health and safety.\",\r\n \"Staff of HDI survey a sample of individuals with intellectual and developmental disabilities (IDD) each year. Those surveyed receive a variety of supports across settings and funding sources. The funding sources may vary based upon goals, but can include the Supports for Community Living (SCL) waiver, Michelle P. (MP) Waiver, intermediate care facilities (ICFs), and community mental health centers (CMHCs).\",\r\n <>\r\n A stakeholder committee reviews the Kentucky core indicator results each year, makes recommendations for improvement and suggests activities to accomplish the recommendations. Websites with more information include:\r\n <br />\r\n <br />\r\n <Links linkTypeID=\"709\" />\r\n </>,\r\n\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 70,\r\n content: \"Supports Intensity Scaleâ„¢ (SIS)\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 80,\r\n content: [\r\n \"The SIS includes complete person-centered assessments for Supports for Community Living (SCL) Waiver participants in order to assist in developing individualized person-centered service plans based on identified needs.\",\r\n \"The SIS-Adult (SIS-A) version is a standardized assessment tool designed to measure the pattern and intensity of supports required by a person aged 16 years or older with an intellectual or other developmental disability to be successful in community settings.\",\r\n \"Traditionally, a person's level of developmental disability was measured by the skills that the individual lacks. SIS-A shifts the focus from lacks to needs.\",\r\n \"The SIS evaluates practical supports that people with developmental disabilities need to lead independent lives. The SIS is administered by Division of Developmental and Intellectual Disabilities (DDID) staff with a respondent group for each person who receives supports through the SCL Waiver.\",\r\n <>\r\n See Related Links for a link to the American Association on Intellectual and Developmental Disabilities (AAIDD) Supports Intensity Scaleâ„¢.\r\n <br />\r\n <br />\r\n\r\n <Links linkTypeID=\"780\" />\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 90,\r\n content: \"Health Risk Screening Tool (HRST)\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 100,\r\n content: [\r\n \"The Health Risk Screening Tool (see Related Links) is utilized with people who receive residential supports through the SCL waiver. The HRST is used to determine where an individual is likely to be vulnerable for health risks. The greatest vulnerability to health risk could be exhibited or experienced among those individuals whose services are periodic or less intense than for someone who needs daily nursing care.\",\r\n <>\r\n The HRST assigns scores to rating items. The total points result in a Health Care Level with an associated Degree of Health Risk. The Health Care Levels are 1 through 6; Level 1 being the lowest risk for health concerns and Level 6 being the highest risk for poor health. It is important to understand that the HRST measures health risk, not disability. HRST is used for:\r\n\r\n <ul>\r\n <li>Identifying health risks to reduce and prevent complications.</li>\r\n <li>Increasing the monitoring of a person's health where applicable.</li>\r\n <li>Identifying additional training needs of provider staff.</li>\r\n <li>Identifying the need for increased monitoring of a person’s health</li>\r\n <li>Assisting the team in responding to identified health risks appropriately</li>\r\n </ul>\r\n <Links linkTypeID=\"781\" />\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 100,\r\n content: \"Risk Management\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 110,\r\n content: [\r\n <>\r\n Components of Risk Management include:\r\n <ul>\r\n <li>Utilizing the health risk screening tool with those who receive residential supports in SCL.</li>\r\n <li>Utilizing the supports intensity scale for recognizing and mitigating risk for those in SCL.</li>\r\n <li>Utilizing information gathered through NCI surveys.</li>\r\n <li>Medication administration training and reporting.</li>\r\n <li>Complaint reporting/follow-up process for all individuals with IDD who receive funding through the state.</li>\r\n <li>Incident reporting/follow-up process for all individuals with IDD who receive funding through the state.</li>\r\n\r\n </ul>\r\n <Links linkTypeID=\"782\" />\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 120,\r\n content: \"Medicaid Waiver Management Application (MWMA)\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 130,\r\n content: [\r\n \"The MWMA is utilized to apply for and manage waiver activities across waivers and roles, including providers, DDID staff, Medicaid staff, and entities that Medicaid contracts with regarding the waivers.\",\r\n <>\r\n DDID staff have utilized it for reviewing applications, placing individuals on the SCL and MP waiting lists, updating information regarding people on the those waiting lists, allocating waiver funding, recording information about SIS assessments, reviewing and following up on critical incidents, and some of the provider monitoring duties. Access the \"Medicaid Waiver Management Application\" Related Link for more information. \r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 140,\r\n content: \"Waiver Quality Improvement Strategy and Performance Measures\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 150,\r\n content: [\r\n \"In order to be approved by the Centers for Medicare & Medicaid Services (CMS), all waivers must include performance measures and a quality improvement strategy. The performance measures are gathered and trended, and strategies for improvement are developed and implemented as needed.\",\r\n \"Evidentiary reports must be submitted to CMS. The evidence is gathered and reports are drafted and submitted to the Department for Medicaid Services for submittal to CMS. The report must include a statewide improvement plan for any performance measure that falls below 86 percent.\"\r\n ]\r\n }\r\n];\r\n\r\nexport default clinical_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst sCLTraining_Content = [\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n \"Below is a list of current Supports for Community Living (SCL) training resources. More information about SCL and Division of Division of Developmental and Intellectual Disabilities training is available through the following links.\",\r\n <><Links linkTypeID=\"102\" /></>\r\n ]\r\n },\r\n];\r\n\r\nexport default sCLTraining_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst sCLNewProvider_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: [\r\n <>How to Become an SCL Provider\r\n\r\n <br />\r\n <br />\r\n\r\n \r\n </>\r\n\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 11,\r\n content: \"Enrollment Information\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n \"Quality SCL Providers are needed in all areas of community-based supports. Supported Employment, Community Access, Shared Living and Technology Assisted residential providers are currently in the greatest demand throughout Kentucky. We invite you to actively explore the application process.\",\r\n \"SCL New Provider Development Specialists offer an orientation at least every quarter. The required orientation is designed to answer your questions about becoming a certified SCL Provider and will provide you with step-by-step directions for assembling an enrollment packet.\",\r\n \"For more information about topics covered in orientation, please click the link below.\",\r\n <><Links linkTypeID=\"196\" /></>,\r\n \"After initial contact has been made the next step is to complete the prerequisites for New Provider Orientation and then register for orientation. During the interim, you will find it very helpful to visit the Related Links to the right and should become familiar with the SCL regulations.\"\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"Certification Information\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 40,\r\n content: [\r\n \"The Division of Developmental and Intellectual Disabilities (DDID) certifies provider agencies participating in the Supports for Community Living Waiver. Provider certification is based on regulations established by the Department for Medicaid Services.\",\r\n \"Providers may be certified in all or some of the following support and service areas. Click on a service to view its description.\",\r\n <><Links linkTypeID=\"240\" /></>,\r\n \"If DDID processes the enrollment packet and certifies a company, the Department for Medicaid Services will issue a provider number. After a provider number has been issued, a provider can initiate services.\"\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 50,\r\n content: \"Enrollment Packet\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 60,\r\n content: [\r\n <>\r\n <p>An Enrollment Packet can be submitted after attending New Provider Orientation Level I. For a full list of what should be included in the Enrollment Packet, please reach out to <a href='mailto:DDID.ProviderEnrollment@ky.gov'>DDID.ProviderEnrollment@ky.gov</a>. Items that are required as part of the Enrollment Packet include: </p>\r\n </>,\r\n <>\r\n <ul>\r\n <li>The credentials of the Executive Director </li>\r\n <li>Background checks: Criminal Record from the Administrative Office of the Courts, Child Abuse/Neglect Central Registry, Caregiver Misconduct Check, and Kentucky's Nurse Aid Registry for the Executive Director. </li>\r\n <li>A business plan, including a projected operating budget for the initial six months post-certification. </li>\r\n <li>A financial statement showing that the agency has the capacity to cover six months of expenses based on its budget. </li>\r\n <li>A copy of the agency's policy and procedure manual. </li>\r\n <li>A table of organization, articles of incorporation and bylaws, or articles of organization and operating agreement. </li>\r\n <li>A list of the members of the board of directors, if applicable. </li>\r\n <li>Verification of nonprofit status, if applicable, and a Tax ID number. </li>\r\n <li>Documentation of good standing, if a Medicaid provider in another state. </li>\r\n <li>Negative results of a 5 panel drug screening test for the Executive Director </li>\r\n </ul>\r\n </>\r\n ]\r\n }\r\n];\r\n\r\nexport default sCLNewProvider_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst hRCBIC_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n <><Links linkTypeID=\"768\" /></>\r\n ]\r\n },\r\n];\r\n\r\nexport default hRCBIC_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst cMTraining_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n <>\r\n Case management training will provide information about person-centered processes and relationship building to waiver program case managers.\r\n The training will empower case managers to facilitate effective team meetings that help people in a waiver program to move from a service life to a community life.\r\n </>,\r\n <>\r\n Use the links below for information about enrollment.\r\n <br /> <br />\r\n <Links linkTypeID=\"410\" />\r\n </>\r\n ]\r\n },\r\n];\r\n\r\nexport default cMTraining_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst commission_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n <>\r\n The Governor's signing of House Bill 144 on April 14, 2000, was the result of multiple efforts throughout the state to bring positive changes to Kentucky's system of services for persons with developmental, intellectual and other related disabilities.\r\n One of the major efforts began in September 1999, when the Commonwealth of Kentucky was invited to participate in what is now The President's Committee for People with Intellectual Disabilities (PCPID).\r\n </>,\r\n <>\r\n Under the leadership of the Governor and the Secretary of the Cabinet for Health Services, a contingent of state representatives – including legislators, state agency heads, advocates, providers, and family members representing individuals with intellectual and developmental disabilities – went to Washington to begin the planning effort. As a result, a planning committee was developed which was in operation from September 1999 until June 2000, when the commission was formed.\r\n </>,\r\n <>\r\n The PCPID planning committee, along with advocacy groups and strong legislative leadership, provided the impetus for the development of House Bill 144, which created what is now the Kentucky Commission on Services and Supports for Individuals with Intellectual or Other Developmental Disabilities. It also created KRS 210.575,\r\n which established the membership of the commission, and KRS 210.577, which defines the commission's meetings, purposes and goals.\r\n </>,\r\n <>\r\n The commission is to serve in an advisory capacity to the Governor and the General Assembly concerning the needs of persons with an intellectual disability and other developmental disabilities.\r\n </>\r\n ]\r\n },\r\n];\r\n\r\nexport default commission_Content;","//Using the react library\r\nimport React from \"react\";\r\n//Using the react library:\r\nimport { useEffect, useState } from \"react\";\r\nimport useApi from \"../utils/UseAPI\";\r\nimport SanitizeHref from \"../utils/SanitizeHref\";\r\n\r\n\r\n\r\nfunction DropdownList({ linkTypeID }) {\r\n\r\n\r\n const [links, setLinks] = useState([]);\r\n const { error, processing, getRequest } = useApi();\r\n\r\n useEffect(() => {\r\n const fetchLinks = async () => {\r\n const [data, status] = await getRequest(null, \"link/\" + linkTypeID);\r\n if (status == 200) {\r\n // console.log(data.data)\r\n setLinks(data.data.sort((a, b) => a.sort - b.sort));\r\n }\r\n else {\r\n console.log(error);\r\n }\r\n };\r\n fetchLinks();\r\n }, []);\r\n\r\n return (\r\n <>\r\n <div className=\"col-md-4 col-md-3\">\r\n {/* Return List */}\r\n <select className=\"form-select\" onChange={(e) => {\r\n window.location = e.target.value;\r\n }}>\r\n <option>Select a meeting date</option>\r\n {\r\n links.map((data, index) => {\r\n {/* console.log(data) */ }\r\n return (\r\n <option key={index} value={SanitizeHref(data.url)} className=\"form-select\"\r\n >{data.text}</option>\r\n )\r\n })\r\n }\r\n </select>\r\n </div>\r\n </>\r\n );\r\n}\r\n\r\nexport default DropdownList;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Links from \"../../../components/Links\";\r\nimport DropdownList from \"../../../components/DropdownList\";\r\n\r\nconst commissionDocuments_Content = [\r\n\r\n \r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n \"The Kentucky Commission on Services and Supports for Individuals with an Intellectual Disability and Other Developmental Disabilities meets at least biennially.\"\r\n \r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 20,\r\n content: \"Meeting Minutes\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 30,\r\n content: [\r\n \"The list below contains links to minutes for past meetings of the commission. To view minutes, select the meeting date from the dropdown list.\",\r\n <><DropdownList linkTypeID={243} /></>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 40,\r\n content: \"Meeting Materials\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 50,\r\n content: [\r\n \"The list below contains links to meeting materials distributed to commission members, beginning with the December 2015 meeting. To view materials, select the meeting date from the dropdown list.\",\r\n <><DropdownList linkTypeID={533} /></>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 60,\r\n content: \"Annual Status Reports\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 70,\r\n content: [\r\n \"The list below provides links to reports that document past meetings of the commission. To view a report, select its date from the dropdown list.\",\r\n <><DropdownList linkTypeID={244} /></>\r\n ]\r\n }\r\n];\r\n\r\nexport default commissionDocuments_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst sCLFormsCertification_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"SCL Certification Process Forms\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n <>\r\n Click on the name of a document in the list below to access a copy of the document.\r\n <br />\r\n <br />\r\n <Links linkTypeID=\"235\" />\r\n </>\r\n ]\r\n },\r\n];\r\n\r\nexport default sCLFormsCertification_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst sCLFormsCM_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"SCL Case Management Forms\"\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 20,\r\n content: [\r\n <>\r\n <br />\r\n SCL Application\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 30,\r\n content: [\r\n <>\r\n Applications are to be submitted in the Medicaid Waiver Management Application.\r\n <br />\r\n <br />\r\n\r\n <Links linkTypeID=\"316\" />\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 40,\r\n content: \"Level of Care (LOC) Determination Forms to Upload in MWMA\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 50,\r\n content: [\r\n <><Links linkTypeID=\"313\" /></>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 60,\r\n content: \"Prior Authorization of Person Centered Service Plan (PSCP) Forms to Upload in MWMA\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 70,\r\n content: [\r\n <><Links linkTypeID=\"314\" /></>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 80,\r\n content: \"Additional Forms and Tips To Use When Applicable\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 90,\r\n content: [\r\n <><Links linkTypeID=\"315\" /></>,\r\n \"All Medicaid (MAP) forms will continue to be found on the Department for Medicaid Services (DMS) SCL Web page under Forms in the right-hand column.\"\r\n ]\r\n },\r\n];\r\n\r\nexport default sCLFormsCM_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst sCLFormsEmployment_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"SCL Supported Employment Forms\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n \" Supported Employment is intensive, ongoing support for an SCL or SCL2 recipient to maintain paid employment in an environment in which an individual without a disability is employed. This service is available in both the SCL and SCL2 waiver programs.\",\r\n \"Click on the name of a document in the list below to access a copy of the document.\"\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"Supported Employment Forms\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 40,\r\n content: [\r\n <><Links linkTypeID=\"317\" /></>\r\n ]\r\n },\r\n];\r\n\r\nexport default sCLFormsEmployment_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst sCLFormsGeneral_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"SCL General Forms\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n <>\r\n Click on the name of a document in the list below to access a copy of the document.\r\n <br />\r\n <br />\r\n <Links linkTypeID=\"236\" />\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"To Apply for Medicaid and/or Waiver Services\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 40,\r\n content: [\r\n <>\r\n Applications can be completed in the Medicaid Waiver Management Application by anyone with the application initiator role.\r\n <br />\r\n <br />\r\n <Links linkTypeID=\"634\" />\r\n </>,\r\n <>\r\n Applications can also be completed using the link below through the account of the person or family member for whom SCL services are being requested.\r\n <br />\r\n <br />\r\n <Links linkTypeID=\"635\" />\r\n </>\r\n ]\r\n }\r\n];\r\n\r\nexport default sCLFormsGeneral_Content;\r\n\r\n","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst sCLFormsIncident_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"Waiver Incident Process\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n <>\r\n All incidents are to be submitted in the Medicaid Waiver Management Application (MWMA).\r\n <br />\r\n <br />\r\n <Links linkTypeID=\"237\" />\r\n </>,\r\n <>\r\n The Department for Community Based Services (DCBS) is to be notified of all suspected abuse neglect and exploitation.\r\n\r\n <br />\r\n <br />\r\n <Links linkTypeID=\"729\" />\r\n </>\r\n ]\r\n },\r\n];\r\n\r\nexport default sCLFormsIncident_Content;\r\n\r\n","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst sCLFormsRisk_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"SCL Risk Management Resources\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n <>\r\n Click on the name of a resource in the list below to access it. \r\n <br/>\r\n <br/>\r\n <Links linkTypeID=\"238\" />\r\n </>\r\n ]\r\n },\r\n];\r\n\r\nexport default sCLFormsRisk_Content;\r\n\r\n","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst sCLForms_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"SCL Forms\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n <>\r\n Click on the name of a form type in the list below to access a list of links to the forms.\r\n <br />\r\n <br />\r\n <Links linkTypeID=\"410\" />\r\n </>\r\n ]\r\n },\r\n];\r\n\r\nexport default sCLForms_Content;\r\n\r\n","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst sCLQASubmit_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"Submit an SCL Question\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n <>\r\n On this page you can submit questions about SCL. Your questions will be reviewed and answered by people who work with the SCL program.\r\n The answers to your questions will be provided on the \"SCL Questions and Answers\" page (see Related Links).\r\n </>,\r\n <>\r\n First, select the Question Area (topic) by clicking on it in the list below. If your question does not fit into one of the question areas on the list,\r\n select \"Other\" and fill in the \"Other\" textbox with your topic area. <b> Hover over a question area in the list to see its full text.</b>\r\n </>,\r\n <>\r\n Finally, complete the rest of the form and click the \"Submit Question\" button when you are ready to submit your question.\r\n </>,\r\n <>\r\n <b>Question Area</b>\r\n <p>Work in Progress</p>\r\n </>\r\n ]\r\n },\r\n];\r\n\r\nexport default sCLQASubmit_Content;\r\n\r\n","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst sCLRegulations_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"SCL and MPW Regulations\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n <><Links linkTypeID=\"310\" /></>\r\n ]\r\n },\r\n];\r\n\r\nexport default sCLRegulations_Content;\r\n\r\n","//Using the react library\r\nimport React from \"react\";\r\n//Using the react library:\r\nimport { useState } from \"react\";\r\n\r\nimport SCLServiceData from \"../data/SCLServiceData.json\"\r\n\r\nfunction SCLServiceList() {\r\n\r\n const [selected, setSelected] = useState(null);\r\n\r\n return (\r\n <>\r\n <div title=\"SCL Services\" className=\"col-md-4 col-md-3\">\r\n {/* Return List */}\r\n <select className=\"form-select\" onChange={(e) => {\r\n // console.log(e.target.value);\r\n // console.log(contentCounties);\r\n const c = SCLServiceData.sCLService?.find((x) => x.id == e.target.value)\r\n\r\n setSelected(c)\r\n console.log(selected)\r\n }}>\r\n <option title=\"SCL Services\">Select a Service</option>\r\n\r\n {\r\n SCLServiceData.sCLService.map((data, index) => {\r\n return (\r\n <option key={index} value={data.id} className=\"form-select\"\r\n >{data.title}</option>\r\n )\r\n })\r\n }\r\n </select>\r\n\r\n </div>\r\n {selected ?\r\n <>\r\n <br />\r\n <br />\r\n\r\n <b>{selected.title}. </b>\r\n\r\n <br />\r\n <br />\r\n {selected.para}\r\n <p>{selected.level1}</p>\r\n <p>{selected.level2}</p>\r\n <p>{selected.level3}</p>\r\n </>\r\n : null}\r\n </>\r\n\r\n );\r\n}\r\n\r\nexport default SCLServiceList;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport SCLServiceList from \"../../../components/SCLServiceList\";\r\n\r\nconst sCLServices_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"SCL Services\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n <>\r\n For links to regulations regarding SCL services and reimbursement, see \"SCL Regulations\" in Related Links.\r\n </>,\r\n \"The Supports for Community Living Waiver Branch offers the following supports and services. These are based on the individual's needs and are identified through an individual plan.\",\r\n \"Supports for Community Living (SCL) service can be delivered in the ways described below. Note that certain services are exclusive to the type of delivery chosen.\",\r\n <>\r\n <ul>\r\n <li>\r\n <b>Participant-directed.</b> This allows the participant to assist with the design of the participant's programs, and to recruit, hire, train, manage, evaluate and terminate staff, and direct the delivery of services to meet the participant's needs. The services are specifically nonresidential and nonmedical.\r\n\r\n </li>\r\n <li>\r\n\r\n <b>Traditional.</b> Unlike with participant-directed services, the agency supporting the participant recruits, hires, trains, manages, evaluates and terminates staff.\r\n\r\n </li>\r\n <li>\r\n <b>Blended.</b> This is a combination of different traditional and participant-directed services. For example, a person may choose to receive case management and physical therapy under traditional and choose to receive respite and personal care assistance under participant-directed services.\r\n\r\n </li>\r\n </ul>\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"List of Services\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 40,\r\n content: [\r\n <>\r\n <b>Note:</b> \"A person\" refers to someone who is receiving Supports for Community Living (SCL) Waiver funding. Within the regulations, a person is referred to as a participant.\r\n </>,\r\n <>\r\n If <b>*</b> appears before a service name in the descriptions, it indicates that a potential provider cannot be certified to provide the service. It is a service that is coordinated by, or its funding is secured by, the Case Manager or by a participant's representative.\r\n {/* <Links linkTypeID=\"240\" /> */}\r\n <br />\r\n <br />\r\n\r\n\r\n <SCLServiceList />\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 50,\r\n content: \"Service Providers\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 60,\r\n content: [\r\n \"SCL providers include regional comprehensive care centers and public and private agencies across the state. These providers are reviewed and certified by the Department for Behavioral Health, Developmental and Intellectual Disabilities initially and at least every two years thereafter, in accordance with the standards and requirements set forth by the Kentucky Department for Medicaid Services.\",\r\n \"SCL providers are continuously monitored to maintain quality of supports.\"\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 70,\r\n content: \"How to Obtain Services\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 80,\r\n content: [\r\n <>\r\n The first step is to complete an application in benefind (see the \"benefind\" link in Related Links) after creating an account OR ask a provider to help you with the application (see the \"Provider Directory\" link in Related Links). There is a waiting list for services and supports. An application will allow your name to be included on the list if you meet the criteria to receive SCL services and supports. An application will allow your name to be included on the list if you meet the criteria to receive SCL services.\r\n </>,\r\n <>\r\n Additional individuals are served based on urgency of need and chronological order, as funding becomes available. After you are selected for funding, you must then be determined to meet the level of care provided by an Intermediate Care Facility for Individuals with Intellectual Disabilities (ICF/IID) and to be eligible for the correct type of Medicaid.\r\n </>\r\n ]\r\n },\r\n];\r\n\r\nexport default sCLServices_Content;\r\n\r\n","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst sGFForms_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"State General Fund Forms\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n <>\r\n Click on the name of a document in the list below to access a copy of the document.\r\n <br />\r\n <br />\r\n\r\n <Links linkTypeID=\"241\" />\r\n </>\r\n ]\r\n },\r\n];\r\n\r\nexport default sGFForms_Content;\r\n\r\n","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst iM_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n <><Links linkTypeID=\"774\" /></>\r\n ]\r\n },\r\n];\r\n\r\nexport default iM_Content;\r\n\r\n","import React from \"react\";\r\nimport bodyHelperTypes from \"../../utils/BodyHelperTypes\";\r\n\r\n\r\n\r\nconst olmstead_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"Olmstead Planning\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n \"Olmstead planning activities in Kentucky began with grant funding from the Robert Wood Johnson Foundation and the Center for Health Care Strategies that convened a broad stakeholder group in 2000. The Olmstead Planning Committee presented a final report to the Cabinet for Health and Family Services in October 2001. In response, the Cabinet issued an Olmstead Compliance Plan in 2002.\",\r\n \"Kentucky's Legislature has provided $800,000 in Olmstead 'Wraparound' funding to assist in discharge planning efforts for individuals with complex service needs who are long-term inpatients in state psychiatric facilities. The Department has established an Olmstead Transition Committee at each of the four state hospitals that meet and plan for community placement.\",\r\n \"These Transition Committees comprise hospital discharge staff, community service providers, state staff and family and consumer organization members. They have successfully transitioned many individuals into the community who would not otherwise have had the opportunity to leave the hospital setting.\",\r\n \"In response to the Olmstead decision, the Department continues to explore new initiatives to reduce institutional care levels, expand access to community-based services, and help people return to their home communities.\",\r\n \"In 2009, the Department, in collaboration with Kentucky Housing Corporation, created the Olmstead Housing Initiative, which provides rental assistance and funds for deposits, furniture and moving expenses for individuals with serious mental illness who meet Olmstead criteria.\",\r\n \"The Department has also produced three DVDs covering Psychiatric Advanced Directives, Supportive Housing, and The Reality of Recovery that are available for use in educating consumers, providers, family members, and others. In the area of children's mental health, a series of training and technical assistance initiatives is currently being conducted to further educate parents and providers regarding the Individuals with Disabilities Education Act, the Americans with Disabilities Act, and Kentucky's newly revised laws.\",\r\n \"Training sessions are also available to providers and parents about working with adolescents, and plans exist to offer Trauma Informed Care training statewide. A work group has been established to further address the need for additional services and supports for transition-age youth with mental health and substance abuse disorders, including those who are aging out of the state's foster care system.\"\r\n\r\n ]\r\n }\r\n\r\n];\r\n\r\nexport default olmstead_Content;\r\n","import React from \"react\";\r\nimport bodyHelperTypes from \"../../utils/BodyHelperTypes\";\r\n\r\n\r\nconst hOTLINES_Content = [\r\n \r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n <><b>National Domestic Violence Hotline</b><br />\r\n (800) 799-7233<br/>\r\n If you are unable to speak safely, visit <a href=\"https://www.thehotline.org/\">thehotline.org</a> or text START to 88788.\r\n\r\n </>,\r\n <><b>National Sexual Assault Hotline</b><br />\r\n (800) 656-HOPE (4673)<br/>\r\n Routes to a local provider 24/7.<br/>\r\n You can also access 24/7 help online by visiting <a href=\"https://hotline.rainn.org/\">hotline.rainn.org</a>\r\n </>,\r\n <><b>988 Suicide and Crisis Lifeline\r\n Dial 988</b><br />\r\n <a href=\"https://988lifeline.org/\">988lifeline.org</a>\r\n </>,\r\n ]\r\n },\r\n];\r\n\r\nexport default hOTLINES_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../utils/BodyHelperTypes\";\r\nimport UnorderedList from \"../../layouts/bodyLayouts/helpers/UnorderedList\";\r\nimport Links from \"../../components/Links\";\r\nimport kyaca from \"../../assets/img/autism/kyacaLogo.jpg\"\r\nimport nauwu from \"../../assets/img/autism/nauwu.jpg\"\r\n\r\nconst autism_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 10,\r\n content: <>\r\n <img src={kyaca} style={{ maxWidth: \"100%\", overflow: \"hidden\", }} className='rounded mx-auto d-block' alt=\"\" />\r\n </>\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n <>\r\n <b>Vision</b><br />\r\n Autistics (individuals with autism) of all ages are engaged in self-determined lives and are valued citizens in the community.\r\n </>,\r\n <>\r\n <b>Mission</b><br />\r\n Promotes collaborative efforts and advocates to improve systems of supports for individuals with autism (autistics).\r\n\r\n </>,\r\n <>\r\n <b>Elevator Speech</b><br />\r\n The KYACA is a collaborative of autistics and allies who work to increase respect, understanding, and autonomy for ALL autistic Kentuckians, especially black, indigenous, people of color (BIPOC), through advocacy, education, and growing circles of support.\r\n </>,\r\n <>\r\n <b>Legislation and Council Membership</b><br />\r\n On April 1, 2016, Senate Bill 185 created new sections of KRS Chapter 194A to establish the Advisory Council on Autism. Council consists of governor appointed members including state agencies, autistics (consumer representatives), family members, and citizens-at-large. Full list is within the legislation at <a href=\"https://apps.legislature.ky.gov/law/statutes/statute.aspx?id=46882\">194A.624 Advisory Council</a>.\r\n </>,\r\n <>\r\n <b>Kentucky Advisory Council on Autism (KYACA)</b><br />\r\n While the original Advisory Council legislation (<a href=\"https://apps.legislature.ky.gov/law/statutes/statute.aspx?id=46882\">KRS 194A.624</a>) uses the term Autism Spectrum Disorder (ASD), the current Council has amended the title to <b>Kentucky Advisory Council</b> on Autism as this reflects and honors autism through a more strength-based perspective and through the <a href=\"https://www.optimistjenna.com/social-model-disability-autism/\">social model of disability</a>.\r\n </>,\r\n <>\r\n <img src={nauwu} style={{ maxWidth: \"100%\", overflow: \"hidden\", }} className='rounded mx-auto d-block' alt=\"\" />\r\n </>,\r\n <>\r\n <b>Quarterly Meetings</b><br />\r\n For accessibility, all meetings have a virtual option, and are open to the public. Quarterly meetings are the first Thursday of the month of February, May, August, November. There is a public comment period on each agenda for non-governor appointed representatives. For more information contact <a href=\"mailto:talt.curry@ky.gov\">Tal Curry</a>.\r\n </>,\r\n <>\r\n <b>Council Subcommittees</b><br />\r\n Lifespan subcommittees have recently addressed supporting families, children, and adults newly diagnosed with autism, addressing restraint and seclusion, addressing violence and abuse toward autistics, and increasing employment opportunities for autistic workers. The three subcommittees are:<br /><br />\r\n <ul>\r\n <li>Early Childhood (ages 0-5/8)</li>\r\n <li>School-Age (age 5-18/21)</li>\r\n <li>Adolescent & Adult (age 14 - 18/21+)</li>\r\n </ul>\r\n </>,\r\n <>\r\n In addition, these subcommittees address autism awareness, education of families and providers, increasing the availability of effective assessment and therapy, resource sharing, and other collaborative efforts. Subcommittees meet at least quarterly the month of January, April, July, and October. For more information contact <a href=\"mailto:talt.curry@ky.gov\">Tal Curry</a>.\r\n </>,\r\n <>\r\n For more information on KYACA, please visit this webpage: <a href=\"https://www.kyaca.org/\">Kentucky Advisory Council on Autism</a>.\r\n </>,\r\n <>\r\n <b>Office of Autism </b><br />\r\n Purpose is to address autism-related matters and provide support and consultation to autistics, families and community providers. Primary work of Executive Director includes: <br /><br />\r\n <ul>\r\n <li>Offering a centralized location to coordinate statewide to enhance the quality of life and independence of autistics and to support their families and caregivers.</li>\r\n <li>Improving coordination of autism resources within the system of care supporting children and adults with autism.</li>\r\n <li>Providing administrative support to Council & 3 lifespan subcommittees.</li>\r\n <li>Oversee Website & Council Project(s).</li>\r\n <li>Assist with constituent communication.</li>\r\n <li>Offer consultation to autistics, families, and community partners. </li>\r\n <li>Collaborate & serve on state councils and workgroups.</li>\r\n <li>Assist in submitting KYACA <a href=\"https://www.kyaca.org/2023/10/05/biennial-report-of-the-kentucky-advisory-council-on-autism-released/\">Biennial Report</a> to Governor.</li>\r\n </ul>\r\n </>,\r\n <>\r\n <b>Legislation</b><br/>\r\n On April 1, 2016, Senate Bill 185 created new sections of KRS Chapter 194A to create the Office of Autism.<br/><br/>\r\n <ul>\r\n <li><a href=\"https://apps.legislature.ky.gov/law/statutes/statute.aspx?id=44950\">194A.623 Office of Autism</a></li>\r\n </ul>\r\n </>,\r\n <>\r\n For more information on the Office of Autism, please visit this webpage: <a href=\"https://www.kyaca.org/about-us/kentucky-office-of-autism/\">Kentucky Office of Autism.</a> \r\n </>,\r\n <>\r\n <i>\r\n For more information about either KYACA or Office of Autism, contact: <br/>\r\n <a href=\"mailto:talt.curry@ky.gov\">Tal Curry</a> <br/>\r\n Executive Director Office of Autism <br/>\r\n Cabinet for Health and Family Services <br/>\r\n Department for Behavioral Health, Developmental and Intellectual Disabilities <br/>\r\n (859) 447-7792\r\n </i>\r\n </>\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"Additional Links\"\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 40,\r\n content: <><Links linkTypeID={800} /></>\r\n }\r\n\r\n\r\n\r\n\r\n\r\n];\r\n\r\nexport default autism_Content;","//Using the react library\r\nimport React from \"react\";\r\n//Using the react library:\r\nimport { useEffect, useState } from \"react\";\r\n//API Middle man\r\nimport useApi from \"../utils/UseAPI\";\r\n// React loading spinner\r\nimport Spinner from 'react-bootstrap/Spinner';\r\nimport SanitizeHref from \"../utils/SanitizeHref\";\r\n\r\nfunction PBForms() {\r\n\r\n const { error, processing, getRequest } = useApi();\r\n const [allForms, setAllForms] = useState([]);\r\n\r\n useEffect(() => {\r\n const fetchLinks = async () => {\r\n const [data, status] = await getRequest(null, \"form/dpr-pb/pb?sfy=2025\");\r\n if (status == 200) {\r\n setAllForms(data.data.pb);\r\n // console.log(data.data.pb);\r\n }\r\n else {\r\n console.log(error);\r\n }\r\n };\r\n fetchLinks();\r\n }, []); \r\n\r\n return (\r\n <>\r\n <div className=\"\">\r\n <br />\r\n <h2 title=\"All Forms By Number\" id=\"All Forms By Number\">All Forms By Number</h2>\r\n <br />\r\n <div className=\"row\">\r\n <div className=\"col-md-6 col-md-3\">\r\n <ul className=\"no-bullet\">\r\n {processing ? <Spinner animation=\"border\" variant=\"success\" /> : allForms.map((data, index) => {\r\n return (\r\n <li className=\"quick-links-body\">\r\n <a key={index} title={data.formName} href={SanitizeHref(\"documents/cmhc/pb/\"+ data.formName+data.formExtention)}>{data.formName}</a>\r\n </li>\r\n )\r\n })}\r\n </ul> \r\n </div>\r\n </div>\r\n </div>\r\n </>\r\n );\r\n}\r\n\r\nexport default PBForms;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport PBForms from \"../../../components/PBForms\";\r\n\r\nconst pBFormsLibrary_Content = [\r\n\r\n \r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n <><PBForms /></>\r\n ]\r\n },\r\n];\r\n\r\nexport default pBFormsLibrary_Content;","//Using the react library\r\nimport React from \"react\";\r\n//Using the react library:\r\nimport { useEffect, useState } from \"react\";\r\n//API Middle man\r\nimport useApi from \"../utils/UseAPI\";\r\n// React loading spinner\r\nimport Spinner from 'react-bootstrap/Spinner';\r\nimport SanitizeHref from \"../utils/SanitizeHref\";\r\n\r\nfunction DPRFormsLibrary() {\r\n\r\n const { error, processing, getRequest } = useApi();\r\n const [allForms, setAllForms] = useState([]);\r\n\r\n useEffect(() => {\r\n const fetchLinks = async () => {\r\n const [data, status] = await getRequest(null, \"form/dpr-pb/dpr?sfy=2025\");\r\n if (status == 200) {\r\n setAllForms(data.data.dpr);\r\n }\r\n else {\r\n console.log(error);\r\n }\r\n };\r\n fetchLinks();\r\n }, []); \r\n\r\n return (\r\n <>\r\n <div className=\"\">\r\n <br />\r\n <h2 id=\"All Forms By Number\">All Forms By Number</h2>\r\n <br />\r\n <div className=\"row\">\r\n <div className=\"col-md-6 col-md-3\">\r\n <ul className=\"no-bullet\">\r\n {processing ? <Spinner animation=\"border\" variant=\"success\" /> : allForms.map((data, index) => {\r\n return (\r\n <li className=\"quick-links-body\">\r\n <a key={index} href={SanitizeHref(\"documents/cmhc/dpr/\"+ data.formName+data.formExtention)}>{data.formName}</a>\r\n </li>\r\n )\r\n })}\r\n </ul> \r\n </div>\r\n </div>\r\n </div>\r\n </>\r\n );\r\n}\r\n\r\nexport default DPRFormsLibrary;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../utils/BodyHelperTypes\";\r\nimport DPRFormsLibrary from \"../../components/DPRFormLibrary\";\r\n\r\nconst dPRFormsLibrary_Content = [\r\n\r\n \r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n <><DPRFormsLibrary /></>\r\n ]\r\n },\r\n];\r\n\r\nexport default dPRFormsLibrary_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport UnorderedList from \"../../../layouts/bodyLayouts/helpers/UnorderedList\";\r\n\r\nconst aOTContent = [\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n\r\n <>Assisted Outpatient Treatment (AOT) provides qualifying individuals with Severe Mental Illness (SMI) the full range of behavioral health outpatient services under the direct supervision of a court with mental health jurisdiction. The AOT petition and services process is outlined at [XXXX link].</>,\r\n <>\r\n In 2017, the General Assembly passed Kentucky's first Assisted Outpatient Treatment (AOT) statute. Tim's Law, named for Tim Morton, a Lexington man with schizophrenia who was unable to acknowledge his own diagnosis and illness. During his lifetime, he was committed to inpatient treatment dozens of times, resisted attempts at outpatient treatment, and ultimately died in 2014 at age 56 from neglected health problems. Thanks to the efforts of his parents, advocacy groups, mental health agencies, and many others, Kentucky took a significant step toward stopping \"the revolving door of jails, hospitals and homelessness with little benefit for such individuals.\" (Courier-Journal, 6/24/2016)\r\n </>,\r\n <>\r\n In July 2020, KY Department of Behavioral Health, Developmental and Intellectual Disabilities (DBHDID) received a federal SAMHSA grant to fund a pilot project for 192 Assisted Outpatient Treatment (AOT) cases in Kentucky. The project coordinates the work of Community Mental Health Centers and state psychiatric hospitals in filing Tim's Law petitions and providing community-based treatment to individuals under court order. The project is currently operating in the regions served by Central State Hospital (CSH) and Western State Hospital (WSH).\r\n </>,\r\n <>\r\n The Pilot Project was expanded to the Eastern State Hospital (ESH) and Appalachian Regional Hospital (ARH) areas in FY2023 and FY2024 with state general funds, appropriated to DBHDID by the Kentucky General Assembly. DBHDID was awarded state general funds to continue AOT expansion efforts statewide in the amount of $2.5 million for FY2025 and FY2026.\r\n </>,\r\n <>\r\n With the addition of state general funds, the AOT program now has the resources to serve individuals court ordered to AOT from any petitioner source, including concerned family and community members, local behavioral health providers, physicians, law enforcement, and psychiatric hospitals.\r\n </>,\r\n <>\r\n University of Kentucky's College of Social Work continues to work with DBHDID on evaluation efforts, as part of a larger national review of AOT effectiveness.\r\n </>,\r\n \r\n \r\n\r\n\r\n ],\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n];\r\n\r\nexport default aOTContent;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Links from \"../../../components/Links\";\r\n\r\nconst eBPIIntegrated_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 10,\r\n content: \"What are co-occurring disorders?\"\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 20,\r\n content: [\r\n \"Many of our clients suffer from a mental health disorder along with an alcohol or drug use disorder. The combination of health disorders is referred to as a dual diagnosis, dual disorders, or co-occurring disorders.\",\r\n \"These conditions occur together frequently and are prevalent among persons seeking treatment in medical, mental health, or addictions treatment. To achieve the best possible outcome, both disorders need to be treated simultaneously. Focusing on one does not ensure that the other will go away.\",\r\n \"Dual-diagnosis services integrate assistance for both conditions, helping people to get treatment for both in one setting. When a multiple or integrated team approach is used, chances of recovery improve for those suffering from concurrent disorders.\",\r\n <>\r\n <ul>\r\n <li>\r\n Roughly 50 percent of individuals with severe mental disorders are affected by substance abuse.\r\n </li>,\r\n <li>\r\n Thirty-seven percent of alcohol abusers and 53 percent of drug abusers also have at least one serious mental illness.\r\n </li>\r\n <li>\r\n Of all people diagnosed with a mental illness, 29 percent abuse either alcohol or drugs.\r\n </li>\r\n <li>\r\n Fifty to 75 percent of people in addiction treatment centers also suffer from a current psychiatric disorder.\r\n </li>\r\n\r\n </ul>\r\n </>,\r\n <>\r\n The Division of Mental Health has launched a statewide initiative designed to achieve the goal of becoming a universally co-occurring-capable system of care. Programs within the public community mental health center system will be assessed using the DDCAT and DDCMHT fidelity tools to determine their dual diagnosis capabilities.\r\n </>,\r\n <>\r\n Dual diagnosis-capable programs are those that \"address co-occurring mental and substance-related disorders in their policies and procedures, assessment, treatment planning, program content and discharge planning.\"\r\n </>\r\n ]\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 30,\r\n content: \"What are DDCAT and DDCMHT?\"\r\n\r\n },\r\n\r\n\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 40,\r\n content: [\r\n \"DDCAT stands for Dual Diagnosis Capability in Addiction Treatment. DDCMHT stands for Dual Diagnosis Capability in Mental Health Treatment, in reference to the treatment of co-occurring mental health and substance use disorders.\",\r\n <>\r\n DDCAT is a nationally recognized fidelity instrument for measuring the essential program elements for co-occurring-capable and co-occurring-enhanced systems. In essence, DDCAT consists of program items that can be ranked along a 1-to-5 scale, where 1 represents an \"addiction or mental health only\" level of intervention, 3 represents co-occurring capability, and 5 represents a co-occurring-enhanced level.\r\n </>,\r\n <>\r\n DDCAT was developed by Mark McGovern, PhD, a faculty member at Dartmouth Medical School. He has worked in conjunction with other well-recognized experts in co-occurring disorders, including Kim Meuser, PhD and Robert Drake, MD.\r\n </>,\r\n <>\r\n Use the Contact Information to obtain further information about the pilot project.\r\n </>\r\n ]\r\n\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 50,\r\n content: \"Links\"\r\n\r\n\r\n },\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 60,\r\n content: [\r\n\r\n <><Links linkTypeID={170} /></>,\r\n <>\r\n <i>\r\n ASAM Patient Placement Criteria for the Treatment of Substance-Related Disorders, 2d ed. rev., American Society of Addictive Medicine, Chevy Chase, MD, 2001, p. 362.\r\n </i>\r\n </>\r\n ]\r\n\r\n\r\n\r\n\r\n },\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n];\r\n\r\nexport default eBPIIntegrated_Content;","//Using the react library\r\nimport React from \"react\";\r\nimport data from '../data/data.json'\r\nimport { useState } from \"react\";\r\n\r\nfunction DDIDCountyList() {\r\n\r\n const [selected, setSelected] = useState (null); \r\n \r\n // useEffect(() => {\r\n\r\n // const fetchLinks = async () => {\r\n // const [data, status] = await getRequest(null, \"crisisnos\");\r\n // if (status == 200) {\r\n // setContent(data.data)\r\n // }\r\n // else {\r\n // console.log(error)\r\n // }\r\n // };\r\n // fetchLinks();\r\n // }, []);\r\n\r\n return (\r\n\r\n <>\r\n <div title=\"County List\" className=\"col-md-4 col-md-3\"> \r\n {/* Return List */}\r\n <select className=\"form-select\" onChange={(e) => {\r\n // console.log(e.target.value);\r\n const c = data.ddidCountyListContacts?.find((x) => x.county === e.target.value)\r\n setSelected(c) \r\n // console.log(selected) \r\n }}>\r\n <option>Select a County</option>\r\n {/* { \r\n data.ddidCountyListContacts.map((data, index) => {\r\n \r\n return (\r\n <option key={index} value={data.county} className=\"form-select\" \r\n\r\n >{data.county}</option>\r\n )\r\n })\r\n } */}\r\n <option value=\"Adanta\" className=\"form-select\">Adair</option>\r\n <option value=\"LifeSkills\" className=\"form-select\">Allen</option>\r\n <option value=\"Adanta\" className=\"form-select\">Anderson</option>\r\n <option value=\"Four Rivers\" className=\"form-select\">Ballard</option>\r\n <option value=\"LifeSkills\" className=\"form-select\">Barren</option>\r\n <option value=\"Pathways\" className=\"form-select\">Bath</option>\r\n <option value=\"Bell\" className=\"form-select\">Bell</option>\r\n <option value=\"North Key\" className=\"form-select\">Boone</option>\r\n <option value=\"New Vista\" className=\"form-select\">Bourbon</option>\r\n <option value=\"Pathways\" className=\"form-select\">Boyd</option>\r\n <option value=\"New Vista\" className=\"form-select\">Boyle</option>\r\n <option value=\"Comprehend\" className=\"form-select\">Bracken</option>\r\n <option value=\"Kentucky River Community Care (KRCC) \" className=\"form-select\">Breathitt</option>\r\n <option value=\"Communicare\" className=\"form-select\">Breckinridge</option>\r\n <option value=\"Seven Counties\" className=\"form-select\">Bullitt</option>\r\n <option value=\"LifeSkills\" className=\"form-select\">Butler</option>\r\n <option value=\"Pennyroyal\" className=\"form-select\">Caldwell</option>\r\n <option value=\"Four Rivers\" className=\"form-select\">Calloway</option>\r\n <option value=\"North Key\" className=\"form-select\">Campbell</option>\r\n <option value=\"Four Rivers\" className=\"form-select\">Carlisle</option>\r\n <option value=\"North Key\" className=\"form-select\">Carroll</option>\r\n <option value=\"Pathways\" className=\"form-select\">Carter</option>\r\n <option value=\"Adanta\" className=\"form-select\">Casey</option>\r\n <option value=\"Pennyroyal\" className=\"form-select\">Christian</option>\r\n <option value=\"New Vista\" className=\"form-select\">Clark</option>\r\n <option value=\"Cumberland River Comprehensive Care (CRCC)\" className=\"form-select\">Clay</option>\r\n <option value=\"Adanta\" className=\"form-select\">Clinton</option>\r\n <option value=\"Pennyroyal\" className=\"form-select\">Crittenden</option>\r\n <option value=\"Adanta\" className=\"form-select\">Cumberland</option>\r\n <option value=\"River Valley\" className=\"form-select\">Daviess</option>\r\n <option value=\"LifeSkills\" className=\"form-select\">Edmonson</option>\r\n <option value=\"Pathways\" className=\"form-select\">Elliott</option>\r\n <option value=\"New Vista\" className=\"form-select\">Estill</option>\r\n <option value=\"New Vista\" className=\"form-select\">Fayette</option>\r\n <option value=\"Comprehend\" className=\"form-select\">Fleming</option>\r\n <option value=\"Mountain Comprehensive Care\" className=\"form-select\">Floyd</option>\r\n <option value=\"New Vista\" className=\"form-select\">Franklin</option>\r\n <option value=\"North Key\" className=\"form-select\">Gallatin</option>\r\n <option value=\"New Vista\" className=\"form-select\">Garrard</option>\r\n <option value=\"North Key\" className=\"form-select\">Grant</option>\r\n <option value=\"Four Rivers\" className=\"form-select\">Graves</option>\r\n <option value=\"Communicare\" className=\"form-select\">Grayson</option>\r\n <option value=\"Adanta\" className=\"form-select\">Green</option>\r\n <option value=\"Pathways\" className=\"form-select\">Greenup</option>\r\n <option value=\"River Valley\" className=\"form-select\">Hancock</option>\r\n <option value=\"Communicare\" className=\"form-select\">Hardin</option>\r\n <option value=\"Cumberland River Comprehensive Care (CRCC)\" className=\"form-select\">Harlan</option>\r\n <option value=\"New Vista\" className=\"form-select\">Harrison</option>\r\n <option value=\"LifeSkills\" className=\"form-select\">Hart</option>\r\n <option value=\"River Valley\" className=\"form-select\">Henderson</option>\r\n <option value=\"Seven Counties\" className=\"form-select\">Henry</option>\r\n <option value=\"Four Rivers\" className=\"form-select\">Hickman</option>\r\n <option value=\"Pennyroyal\" className=\"form-select\">Hopkins</option>\r\n <option value=\"Cumberland River Comprehensive Care (CRCC)\" className=\"form-select\">Jackson</option>\r\n <option value=\"Seven Counties\" className=\"form-select\">Jefferson</option>\r\n <option value=\"New Vista\" className=\"form-select\">Jessamine</option>\r\n <option value=\"Mountain Comprehensive Care\" className=\"form-select\">Johnson</option>\r\n <option value=\"North Key\" className=\"form-select\">Kenton</option>\r\n <option value=\"Kentucky River Community Care (KRCC)\" className=\"form-select\">Knott</option>\r\n <option value=\"Cumberland River Comprehensive Care (CRCC)\" className=\"form-select\">Knox</option>\r\n <option value=\"Communicare\" className=\"form-select\">Larue</option>\r\n <option value=\"Cumberland River Comprehensive Care (CRCC)\" className=\"form-select\">Laurel</option>\r\n <option value=\"Pathways\" className=\"form-select\">Lawrence</option>\r\n <option value=\"Kentucky River Community Care (KRCC)\" className=\"form-select\">Lee</option>\r\n <option value=\"Kentucky River Community Care (KRCC)\" className=\"form-select\">Leslie</option>\r\n <option value=\"Kentucky River Community Care (KRCC)\" className=\"form-select\">Letcher</option>\r\n <option value=\"Comprehend\" className=\"form-select\">Lewis</option>\r\n <option value=\"New Vista\" className=\"form-select\">Lincoln</option>\r\n <option value=\"Four Rivers\" className=\"form-select\">Livingston</option>\r\n <option value=\"LifeSkills\" className=\"form-select\">Logan</option>\r\n <option value=\"Pennyroyal\" className=\"form-select\">Lyon</option>\r\n <option value=\"New Vista\" className=\"form-select\">Madison</option>\r\n <option value=\"Mountain Comprehensive Care\" className=\"form-select\">Magoffin</option>\r\n <option value=\"Communicare\" className=\"form-select\">Marion</option>\r\n <option value=\"Four Rivers\" className=\"form-select\">Marshall</option>\r\n <option value=\"Mountain Comprehensive Care\" className=\"form-select\">Martin</option>\r\n <option value=\"Comprehend\" className=\"form-select\">Mason</option>\r\n <option value=\"Four Rivers\" className=\"form-select\">McCracken</option>\r\n <option value=\"Adanta\" className=\"form-select\">McCreary</option>\r\n <option value=\"River Valley\" className=\"form-select\">McLean</option>\r\n <option value=\"Communicare\" className=\"form-select\">Meade</option>\r\n <option value=\"Pathways\" className=\"form-select\">Menifee</option>\r\n <option value=\"New Vista\" className=\"form-select\">Mercer</option>\r\n <option value=\"LifeSkills\" className=\"form-select\">Metcalfe</option>\r\n <option value=\"LifeSkills\" className=\"form-select\">Monroe</option>\r\n <option value=\"Pathways\" className=\"form-select\">Montgomery</option>\r\n <option value=\"Pathways\" className=\"form-select\">Morgan</option>\r\n <option value=\"Pennyroyal\" className=\"form-select\">Muhlenberg</option>\r\n <option value=\"Communicare\" className=\"form-select\">Nelson</option>\r\n <option value=\"New Vista\" className=\"form-select\">Nicholas</option>\r\n <option value=\"River Valley\" className=\"form-select\">Ohio</option>\r\n <option value=\"Seven Counties\" className=\"form-select\">Oldham</option>\r\n <option value=\"North Key\" className=\"form-select\">Owen</option>\r\n <option value=\"Kentucky River Community Care (KRCC)\" className=\"form-select\">Owsley</option>\r\n <option value=\"North Key\" className=\"form-select\">Pendleton</option>\r\n <option value=\"Kentucky River Community Care (KRCC)\" className=\"form-select\">Perry</option>\r\n <option value=\"Mountain Comprehensive Care\" className=\"form-select\">Pike</option>\r\n <option value=\"New Vista\" className=\"form-select\">Powell</option>\r\n <option value=\"Adanta\" className=\"form-select\">Pulaski</option>\r\n <option value=\"Comprehend\" className=\"form-select\">Robertson</option>\r\n <option value=\"Cumberland River Comprehensive Care (CRCC)\" className=\"form-select\">Rockcastle</option>\r\n <option value=\"Pathways\" className=\"form-select\">Rowan</option>\r\n <option value=\"Adanta\" className=\"form-select\">Russell</option>\r\n <option value=\"New Vista\" className=\"form-select\">Scott</option>\r\n <option value=\"Seven Counties\" className=\"form-select\">Shelby</option>\r\n <option value=\"LifeSkills\" className=\"form-select\">Simpson</option>\r\n <option value=\"Seven Counties\" className=\"form-select\">Spencer</option>\r\n <option value=\"Adanta\" className=\"form-select\">Taylor</option>\r\n <option value=\"Pennyroyal\" className=\"form-select\">Todd</option>\r\n <option value=\"Pennyroyal\" className=\"form-select\">Trigg</option>\r\n <option value=\"Seven Counties\" className=\"form-select\">Trimble</option>\r\n <option value=\"River Valley\" className=\"form-select\">Union</option>\r\n <option value=\"LifeSkills\" className=\"form-select\">Warren</option>\r\n <option value=\"Communicare\" className=\"form-select\">Washington</option>\r\n <option value=\"Adanta\" className=\"form-select\">Wayne</option>\r\n <option value=\"River Valley\" className=\"form-select\">Webster</option>\r\n <option value=\"Cumberland River Comprehensive Care (CRCC)\" className=\"form-select\">Whitley</option>\r\n <option value=\"Kentucky River Community Care (KRCC)\" className=\"form-select\">Wolfe</option>\r\n <option value=\"New Vista\" className=\"form-select\">Woodford</option>\r\n </select>\r\n \r\n </div>\r\n {selected ? <>\r\n <br/>\r\n <b>Counties: </b> {selected.people}<br/>\r\n <b><u>{selected.county}:</u></b><br/>\r\n Contact Person: {selected.contact}<br/>\r\n Phone Number: {selected.number}<br/> \r\n </>\r\n : null }\r\n </>\r\n\r\n );\r\n}\r\n\r\nexport default DDIDCountyList;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../../utils/BodyHelperTypes\";\r\nimport Links from \"../../../components/Links\";\r\nimport LinkNoNewPage from \"../../../components/LinkNoNewPage\";\r\nimport DDIDCountyList from \"../../../components/DDIDCountyList\";\r\n\r\nconst accessAndReferral_Content = [\r\n\r\n {\r\n format: bodyHelperTypes.paragraphs,\r\n order: 10,\r\n content: [\r\n \"Are you looking for services for someone with a Developmental or Intellectual Disability (D/ID)? Have you reached out to your Community Mental Health Center (CMHC) about Access and Referral services?\",\r\n <><b>Access and Referral (A&R)</b> is a short-term service designed to identify D/ID related support needs and connect to related services. May include gathering and review of records to identify eligibility for services by establishing the presence of Intellectual or other qualifying Developmental Disability, for determination of financial eligibility for services, and application for waiver services. Those individuals who do not meet criteria for D/ID services shall be referred to other services. This service shall not be provided concurrent with case management services. Individuals who do qualify may also be eligible for other state general funds services such as the ones listed below. </>,\r\n\r\n ]\r\n },\r\n {\r\n format: bodyHelperTypes.title,\r\n order: 20,\r\n content: \"Which county do you reside in?\"\r\n },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 30,\r\n content: <><DDIDCountyList /></>\r\n }\r\n \r\n];\r\n\r\nexport default accessAndReferral_Content;","import React from \"react\";\r\nimport bodyHelperTypes from \"../../utils/BodyHelperTypes\";\r\nimport UnorderedList from \"../../layouts/bodyLayouts/helpers/UnorderedList\";\r\nimport Links from \"../../components/Links\";\r\n\r\n\r\n\r\n\r\nconst nursingFacilityPASRRRecources_Content = [\r\n\r\n // {\r\n // format: bodyHelperTypes.title,\r\n // order: 10,\r\n // content: \"PASRR Regulations and Statues\"\r\n // },\r\n {\r\n format: bodyHelperTypes.paragraph,\r\n order: 20,\r\n content: <>\r\n\r\n For the MAP-409, MAP-4092, MAP-4093, MAP-4094 AND MAP-4095, please visit the first link below and choose \"Provider\" from the \"Forms\" dropdown list near the top of the page, then scroll down to the MAP forms.\r\n\r\n <br />\r\n <br />\r\n\r\n <Links linkTypeID=\"717\" />\r\n\r\n </>\r\n\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n];\r\n\r\nexport default nursingFacilityPASRRRecources_Content;","// lib use to switch between pages\r\nimport { Routes, Route } from \"react-router-dom\";\r\nimport React from \"react\";\r\n// Pages:\r\n// External/Other Pages\r\nimport Crisisnos from \"./pages/crisisnos\";\r\nimport Home from \"./pages/Home\";\r\nimport Calendar from \"./pages/Calendar\"\r\nimport ProviderDirectory from \"./providerDirectory/ProviderDirectory\";\r\n// AFM:\r\nimport aFM_Content from \"./pages/afm/Content/aFM_Content\";\r\n// Error Page:\r\nimport Error from \"./pages/Error\";\r\nimport Page from \"./layouts/Page\";\r\n//Page Content\r\nimport kIPContent from \"./pages/sud/content/kIP_Content\";\r\nimport sAKPNContent from \"./pages/sud/content/sAKPN_Content\";\r\nimport pESContent from \"./pages/sud/content/pES_Content\";\r\nimport yEGContent from \"./pages/sud/content/yEG_Content\";\r\nimport kRSPMGContent from \"./pages/sud/content/kRSPMG_Content\";\r\nimport continuumContent from \"./pages/sud/content/continuum_Content\";\r\nimport childrenContent from \"./pages/mh/Content/children_Content\";\r\nimport adolescentContent from \"./pages/mh/Content/adolescent_Content\";\r\nimport eCMH_Content from \"./pages/mh/Content/eCMH_Content\";\r\nimport eCMHLinks_Content from \"./pages/mh/Content/eCMHLinks_Content\";\r\nimport hFW_Content from \"./pages/mh/Content/hFW_Content\";\r\nimport kYImpact_Content from \"./pages/mh/Content/kYImpact_Content\";\r\nimport rIAC_Content from \"./pages/mh/Content/rIAC_Content\";\r\nimport cCC_Content from \"./pages/mh/Content/cCC_Content\";\r\nimport sIAC_Content from \"./pages/mh/Content/sIAC_Content\";\r\nimport systemOfCare_Content from \"./pages/mh/Content/systemOfCare_Content\";\r\nimport tCMChild_Content from \"./pages/mh/Content/tCMChild_Content\";\r\nimport youthAdult_Content from \"./pages/mh/Content/youthAdult_Content\";\r\nimport kEDC_Content from \"./pages/mh/Content/kEDC_Content\";\r\nimport pPP_Content from \"./pages/mh/Content/pPP_Content\";\r\nimport mHPromotion_Content from \"./pages/mh/Content/mHPromotion_Content\";\r\nimport sP_Content from \"./pages/mh/Content/sP_Content\";\r\nimport kCCRT_Content from \"./pages/mh/Content/kCCRT_Content\";\r\nimport dataGuide_Content from \"./pages/cmhc/Content.js/dataGuide_Content\";\r\nimport traumaAndResilience_Content from \"./pages/Content/traumaAndResilience_Content\";\r\nimport dHHS_Content from \"./pages/mh/Content/dHHS_Content\";\r\nimport adultSA_Content from \"./pages/mh/Content/adultSA_Content\";\r\nimport coocurring_Content from \"./pages/mh/Content/cooccurring_Content\";\r\nimport adultMHCJI_Content from \"./pages/mh/Content/adultMHCJI_content\";\r\n\r\nimport jCIC_Content from \"./pages/cmhc/Content.js/jCIC_Content\";\r\nimport eBPIInterviewing from \"./pages/sud/content/eBPIInterviewing_Content\";\r\nimport eBPINiatx from \"./pages/sud/content/eBPINiatx_Content\";\r\nimport ResourcesContent from \"./pages/sud/content/resources_Content\";\r\nimport wID_Content from \"./pages/Content/wID_Content\";\r\nimport EvidenceBasedInitiativesContent from \"./pages/sud/content/evidenceBasedInitiatives_Content\";\r\nimport TrustContent from \"./pages/sud/content/trust_Content\";\r\nimport CBHTContent from \"./pages/mh/Content/cBHT_Content\";\r\nimport BHPACContent from \"./pages/mh/Content/bHPAC_Content\";\r\nimport BHPACAboutContent from \"./pages/mh/Content/bHPACAbout_Content\";\r\nimport immersionContent from \"./pages/sud/content/immersion_Content\";\r\nimport BHPACSummariesContent from \"./pages/mh/Content/bHPACSummaries_Content\";\r\nimport BHPACBGContent from \"./pages/mh/Content/bHPACBG_Content\";\r\nimport sOCA_Content from \"./pages/mh/Content/sOCA_Content\";\r\nimport impactVideo_Content from \"./pages/mh/Content/impactVideo_Content\";\r\nimport actPrinciplesContent from \"./pages/mh/Content/actPrinciples_Content\";\r\nimport traumaAndTerrorismContent from \"./pages/Content/trauma_Content\";\r\nimport guidePrinciplesContent from \"./pages/Content/guidePrinciples_Content\";\r\nimport hIPPAALawContent from \"./pages/Content/hIPAALaw_Content\";\r\nimport recordingsContent from \"./pages/ddid/Content/recordings_Content\";\r\nimport BestPracticeContent from \"./pages/sud/content/bestPractice_Content\";\r\nimport dataCommitteeContent from \"./pages/cmhc/Content.js/dataCommittee_Content\";\r\nimport sIACSummaries_Content from \"./pages/mh/Content/sIACSummaries_Content\";\r\nimport kYCCL_Content from \"./pages/Content/kYCCL_Content\";\r\nimport pASSRR_Content from \"./pages/Content/pASRR_Content\";\r\nimport pASSRRForms_Content from \"./pages/Content/pASRRForms_Content\";\r\nimport crisis_Content from \"./pages/Content/crisis_Content\";\r\nimport cMHCHome_Content from \"./pages/cmhc/Content.js/cMHCHome_Content\";\r\nimport dataReports_Content from \"./pages/cmhc/Content.js/dataReports_Content\";\r\nimport centers_Content from \"./pages/cmhc/Content.js/centers_Content\";\r\nimport cRD_Content from \"./pages/cmhc/Content.js/cRD_Content\";\r\nimport planAndBudget_Content from \"./pages/cmhc/Content.js/planAndBudget_Content\";\r\nimport qMOTSurveys_Content from \"./pages/cmhc/Content.js/qMOTSurveys_Content\";\r\nimport qMOTDocs_Content from \"./pages/cmhc/Content.js/qMOTDocs_Content\";\r\nimport pI_Content from \"./pages/cmhc/Content.js/pI_Content.\";\r\nimport dPR_Content from \"./pages/cmhc/Content.js/dPR_Content\";\r\nimport dataInfo_Content from \"./pages/cmhc/Content.js/dataInfo_Content\";\r\nimport sUDHome_Content from \"./pages/sud/content/sUDHome_Content\";\r\nimport eBPIRecovery_Content from \"./pages/sud/content/eBPIRecovery_Content\";\r\nimport sMVF_Content from \"./pages/sud/content/sMVF_Content\";\r\nimport headedHome_Content from \"./pages/sud/content/headedHome_Content\";\r\nimport aSAMPPC_Content from \"./pages/sud/content/aSAMPPC_Content\";\r\nimport faithBased_Content from \"./pages/sud/content/faithBased_Content\";\r\nimport kYMomsMATR_Content from \"./pages/sud/content/kYMomsMATR_Content\";\r\nimport oxfordHouse_Content from \"./pages/sud/content/oxfordHouse_Content\";\r\nimport kRHN_Content from \"./pages/sud/content/kRHN_Content\";\r\nimport women_Content from \"./pages/sud/content/women_Content\";\r\nimport bHPP_Content from \"./pages/sud/content/bHPP_Content\";\r\nimport sARPC_Content from \"./pages/sud/content/sARPC_Content\";\r\nimport wDYE_Content from \"./pages/sud/content/wDYE_Content\";\r\nimport sSPW_Content from \"./pages/sud/content/sSPW_Content\";\r\nimport strength_Content from \"./pages/sud/content/strength_Content\";\r\nimport tGD_Content from \"./pages/sud/content/tGD_Content\";\r\nimport pIP_Content from \"./pages/sud/content/pIP_Content\";\r\nimport dTP_Content from \"./pages/sud/content/dTP_Content\";\r\nimport kSAP_Content from \"./pages/sud/content/kSAP_Content\";\r\nimport synar_Content from \"./pages/sud/content/synar_Content\";\r\nimport zero_Content from \"./pages/sud/content/zero_Content\";\r\nimport mHHome_Content from \"./pages/mh/Content/mHHome_Content\";\r\nimport dDIDHome_Content from \"./pages/ddid/Content/dDIDHome_Content\";\r\nimport cSA_Content from \"./pages/mh/Content/cSA_Content\";\r\nimport pSS_Content from \"./pages/mh/Content/pSS_Content\";\r\nimport tCM_Content from \"./pages/mh/Content/tCM_Content\";\r\nimport eBPCYF_Content from \"./pages/mh/Content/eBPCYF_Content\";\r\nimport adultMH_Content from \"./pages/mh/Content/adultMH_Content\";\r\nimport act_Content from \"./pages/mh/Content/act_Content\";\r\nimport employment_Content from \"./pages/mh/Content/employment_Content\";\r\nimport housing_Content from \"./pages/mh/Content/housing_Content\";\r\nimport tCMAdult_Content from \"./pages/mh/Content/tCMAdult_Content\";\r\nimport housingResources_Content from \"./pages/mh/Content/housingResources_Content\";\r\nimport adultMHAging_Content from \"./pages/mh/Content/adultMHAging_Content\";\r\nimport dataReportsFacility_Content from \"./pages/facilites/Content/dataReport_Content\";\r\nimport facilitesHome_Content from \"./pages/facilites/Content/FaciliitesHome_Content\";\r\nimport pDRates_Content from \"./pages/facilites/Content/pDRates_Content\";\r\nimport procedures_Content from \"./pages/facilites/Content/procedures_Content\";\r\nimport dPIHome_Content from \"./pages/dpi/Content/dPIHome_Content\";\r\nimport dUI_Content from \"./pages/dpi/Content/dUI_Content\";\r\nimport opiate_Content from \"./pages/dpi/Content/opiate_Content\";\r\nimport cAP_Content from \"./pages/dpi/Content/cAP_Content\";\r\nimport tRIS_Content from \"./pages/dpi/Content/tRIS_Content\";\r\nimport dUITraining_Content from \"./pages/dpi/Content/dUITraining_Content\";\r\nimport dUIForms_Content from \"./pages/dpi/Content/dUIForms\";\r\nimport dUIFAQ_Content from \"./pages/dpi/Content/dUIFAQ\";\r\nimport cSB_Content from \"./pages/ddid/Content/cSB_Content\";\r\nimport sCL_Content from \"./pages/ddid/Content/sCL_Content\";\r\nimport clinical_Content from \"./pages/ddid/Content/clinical_Content\";\r\nimport sCLTraining_Content from \"./pages/ddid/Content/sCLTraining\";\r\nimport sCLNewProvider_Content from \"./pages/ddid/Content/sCLNewProvider\";\r\nimport hRCBIC_Content from \"./pages/ddid/Content/hRCBIC_Content\";\r\nimport cMTraining_Content from \"./pages/ddid/Content/cMTraining_Content\";\r\nimport commission_Content from \"./pages/ddid/Content/commission_Content\";\r\nimport commissionDocuments_Content from \"./pages/ddid/Content/commissionDocuments_Content\";\r\nimport sCLFormsCertification_Content from \"./pages/ddid/Content/sCLFormsCertification_Content\";\r\nimport sCLFormsCM_Content from \"./pages/ddid/Content/sCLFormsCM_Content\";\r\nimport sCLFormsEmployment_Content from \"./pages/ddid/Content/sCLFormsEmployment_Content\";\r\nimport sCLFormsGeneral_Content from \"./pages/ddid/Content/sCLFormsGeneral_Content\";\r\nimport sCLFormsIncident_Content from \"./pages/ddid/Content/sCLFormsIncident_Content\";\r\nimport sCLFormsRisk_Content from \"./pages/ddid/Content/sCLFormsRisk\";\r\nimport sCLForms_Content from \"./pages/ddid/Content/sCLForms_Content\";\r\nimport sCLQASubmit_Content from \"./pages/ddid/Content/sCLQASubmit_Content\";\r\nimport sCLRegulations_Content from \"./pages/ddid/Content/sCLRegulations_Content\";\r\nimport sCLServices_Content from \"./pages/ddid/Content/sCLServices_Content\";\r\nimport sGFForms_Content from \"./pages/ddid/Content/sGFForms_Content\";\r\nimport iM_Content from \"./pages/ddid/Content/iM_Content\";\r\nimport olmstead_Content from \"./pages/Content/olmstead_Content\";\r\nimport hOTLINES_Content from \"./pages/Content/hOTLINES_Content\";\r\nimport autism_Content from \"./pages/Content/autism_Content\";\r\nimport aPIURLStore from \"./utils/stores/aPIURLStore\";\r\nimport pBFormsLibrary_Content from \"./pages/cmhc/Content.js/pBFormsLibrary_Content\";\r\nimport dPRFormsLibrary_Content from \"./pages/cmhc/dPRFormsLibrary_Content\";\r\nimport aOTContent from \"./pages/mh/Content/aOT_Content\";\r\nimport eBPIIntegrated_Content from \"./pages/mh/Content/eBPIIntegrated_Content\";\r\nimport accessAndReferral_Content from \"./pages/ddid/Content/accessAndReferral_Content\";\r\nimport nursingFacilityPASRRRecources_Content from \"./pages/Content/nursingFacilityPASRRRecources_Content\";\r\n\r\n/* \r\nTask: \r\n- Sub headers for Related Links\r\n- Install CKEditor Ecosystem URL: https://ckeditor.com/docs/ckeditor5/latest/getting-started/index.html#are-you-new-to-ckeditor-5\r\n- Build Web Crawler for site.\r\n- Integrate Sass and CSS clean up.\r\n- Change naming convention for pages. \r\n- Combine and Delete Components.\r\n- Switch Comp. pages to content layout: Home, Calender, Crisisnos, Provider Directory, Error\r\n- Create open source calendar\r\n- Look into \"promise\" for validation\r\n- Take down Istock photos. Get new photos for Home page. Free photos: https://www.pexels.com/search/kentucky/\r\n\r\n\r\n*/\r\n\r\nconst App = () => {\r\n const setBaseURL = aPIURLStore(state => state.setBaseURL);\r\n const currentLocation = window.location.href\r\n if (currentLocation.includes(\"dbhdid.ky\")) {\r\n setBaseURL(\"https://dbhdid.ky.gov/api/\");\r\n }\r\n else {\r\n setBaseURL(\"https://dbhdidtest.ky.gov/api/\");\r\n }\r\n return (\r\n <>\r\n <Routes >\r\n {/* // ================================ Body =================================================== */}\r\n {/* Base on the database, some pages don't have a pageID, which default the page id to 11*/}\r\n {/* External Links */}\r\n <Route path=\"/\" element={<Home />} />\r\n <Route path=\"/calendar\" element={<Calendar pageHeader={\"Calendar of Events\"} />} />\r\n <Route path=\"/providerdirectory\" iD={1} element={<ProviderDirectory />} />\r\n {/* <Route path=\"/index\" element={<Index />} /> */}\r\n {/* <Route path=\"/contact\" element={<Contact />} /> */}\r\n <Route path=\"/crisisnos\" element={<Crisisnos pageHeader={\"County Contacts\"} />} />\r\n <Route path=\"/pasrr\" element={<Page iD={26} pageHeader={\"Preadmission Screening and Resident Review (PASRR)\"} content={pASSRR_Content} />} />\r\n <Route path=\"/pasrr-forms\" element={<Page iD={511} pageHeader={\"Preadmission Screening and Resident Review (PASRR)\"} content={pASSRRForms_Content} />} />\r\n <Route path=\"/pasrr-nursing\" element={<Page iD={512} pageHeader={\"Nursing Facility PASRR Resources\"} content={nursingFacilityPASRRRecources_Content} />} />\r\n <Route path=\"/crisis\" element={<Page iD={428} pageHeader={\"Crisis Prevention and Response System\"} content={crisis_Content} />} />\r\n <Route path=\"/hotlines\" element={<Page iD={457} pageHeader={\"Hotlines and Other Contacts\"} content={hOTLINES_Content} />} />\r\n <Route path=\"/tr\" element={<Page iD={503} pageHeader={\"Trauma, Resilience & Trauma-Informed Care\"} content={traumaAndResilience_Content} />} />\r\n {/* AFM */}\r\n <Route path=\"/afm\" element={<Page iD={228} pageHeader={\"Administration and Financial Management\"} content={aFM_Content} />} />\r\n <Route path=\"/olmstead\" element={<Page iD={74} pageHeader={\"Olmstead Planning\"} content={olmstead_Content} />} />\r\n <Route path=\"/wid\" element={<Page iD={510} pageHeader={\"The Workforce Innovation and Development (WID) Collaborative\"} content={wID_Content} />} />\r\n <Route path=\"/trauma\" element={<Page iD={5} pageHeader={\"Department for Behavioral Health, Developmental and Intellectual Disabilities\"} content={traumaAndTerrorismContent} />} />\r\n <Route path=\"/gp\" element={<Page iD={68} pageHeader={\"Department for Behavioral Health, Developmental and Intellectual Disabilities\"} content={guidePrinciplesContent} />} />\r\n <Route path=\"/hipaa-law\" element={<Page iD={70} pageHeader={\"Health Insurance Portability and Accountability Act\"} content={hIPPAALawContent} />} />\r\n <Route path=\"/ky-ccl\" element={<Page iD={508} pageHeader={\"Kentucky Civil Commitment Laws\"} content={kYCCL_Content} />} />\r\n <Route path=\"/autism\" element={<Page iD={436} pageHeader={\"Kentucky Advisory Council on Autism & Office of Autism\"} content={autism_Content} />} />\r\n {/* <Route path=\"/phonelist\" element={<PhoneList pageHeader={\"DBHDID Central Office Phone Listing\"} />} /> */}\r\n {/* CMHC */}\r\n <Route path=\"/cmhc\" element={<Page iD={229} pageHeader={\"Community Mental Health Centers\"} content={cMHCHome_Content} />} />\r\n <Route path=\"/cmhc/datareports\" element={<Page iD={446} pageHeader={\"Basic Statistical Reports\"} content={dataReports_Content} />} />\r\n <Route path=\"/cmhc/centers\" element={<Page iD={322} pageHeader={\"Center Information\"} content={centers_Content} />} />\r\n <Route path=\"/cmhc/crd\" element={<Page iD={427} pageHeader={\"CMHC Contract Reference Documents\"} content={cRD_Content} />} />\r\n <Route path=\"/cmhc/plan-and-budget\" element={<Page iD={321} pageHeader={\"Plan and Budget Information - FY 2025\"} content={planAndBudget_Content} />} />\r\n <Route path=\"/cmhc/qmot-surveys\" element={<Page iD={318} pageHeader={\"Quality Management and Outcomes Team \"} content={qMOTSurveys_Content} />} />\r\n <Route path=\"/cmhc/qmot-docs\" element={<Page iD={316} pageHeader={\"Quality Management and Outcomes Team Documents\"} content={qMOTDocs_Content} />} />\r\n {/* <Route path=\"/cmhc/qmot\" element={<QMOT />} /> */}\r\n <Route path=\"/cmhc/pi\" element={<Page iD={453} pageHeader={\"Performance Indicator Implementation Guides\"} content={pI_Content} />} />\r\n <Route path=\"/cmhc/dpr\" element={<Page iD={6} pageHeader={\"Department Periodic Reports Information - FY 2025\"} content={dPR_Content} />} />\r\n {/* <Route path=\"/cmhc/dpr-info\" element={<Page iD={432} pageHeader={\"Department Periodic Reports Forms\"} content={dPRForms_Content} />} /> */}\r\n <Route path=\"/cmhc/datainfo\" element={<Page iD={233} pageHeader={\"Data Information\"} content={dataInfo_Content} />} />\r\n <Route path=\"/cmhc/dataguide\" element={<Page iD={448} pageHeader={\"CMHC Data Guides and Documentation\"} content={dataGuide_Content} />} />\r\n {/* <Route path=\"/cmhc/jcic\" element={<Page iD={314} pageHeader={\"Joint Committee on Information Continuity\"} content={jCIC_Content} />} /> */}\r\n <Route path=\"/cmhc/data-committees\" element={<Page iD={508} pageHeader={\"Data Committees\"} content={dataCommitteeContent} />} />\r\n <Route path=\"/cmhc/pb-forms\" element={<Page iD={323} pageHeader={\"Plan and Budget Forms Library\"} content={pBFormsLibrary_Content} />} />\r\n <Route path=\"/cmhc/dpr-forms\" element={<Page iD={432} pageHeader={\"Department Periodic Reports Forms Library\"} content={dPRFormsLibrary_Content} />} />\r\n {/* // ===================================================================================================================== */}\r\n {/* // ================================ SUD: Substance Use Disorder =================================================== */}\r\n {/* SUD */}\r\n <Route path=\"/sud\" element={<Page iD={485} pageHeader={\"Substance Use Disorder\"} content={sUDHome_Content} />} />\r\n <Route path=\"/sud/ebpi-recovery\" element={<Page iD={245} pageHeader={\"Recovery and Peer Support\"} content={eBPIRecovery_Content} />} />\r\n <Route path=\"/sud/smvf\" element={<Page iD={424} pageHeader={\"Service Members, Veterans and Their Families Behavioral Health Initiative\"} content={sMVF_Content} />} />\r\n <Route path=\"/sud/headedhome\" element={<Page iD={425} pageHeader={\"Operation Headed Home\"} content={headedHome_Content} />} />\r\n <Route path=\"/sud/asamppc\" element={<Page iD={268} pageHeader={\"Adult Substance Abuse Treatment and Recovery Services Branch\"} content={aSAMPPC_Content} />} />\r\n <Route path=\"/sud/faithbased\" element={<Page iD={92} pageHeader={\"Faith-Based Community Support\"} content={faithBased_Content} />} />\r\n <Route path=\"/sud/kymomsmatr\" element={<Page iD={128} pageHeader={\"KY Moms Maternal Assistance Towards Recovery (MATR)\"} content={kYMomsMATR_Content} />} />\r\n <Route path=\"/sud/oxfordhouse\" element={<Page iD={405} pageHeader={\"Oxford House of Kentucky\"} content={oxfordHouse_Content} />} />\r\n <Route path=\"/sud/krhn\" element={<Page iD={472} pageHeader={\"Recovery Housing and Transitional Living\"} content={kRHN_Content} />} />\r\n <Route path=\"/sud/women\" element={<Page iD={38} pageHeader={\"Women's Substance Use Treatment\"} content={women_Content} />} />\r\n <Route path=\"/sud/bhpp\" element={<Page iD={106} pageHeader={\"Substance Use Prevention & Promotion Branch\"} content={bHPP_Content} />} />\r\n <Route path=\"/sud/sa-rpc\" element={<Page iD={208} pageHeader={\"Regional Prevention Centers (RPCs)\"} content={sARPC_Content} />} />\r\n <Route path=\"/sud/wdye\" element={<Page iD={486} pageHeader={\"Workforce Development and Youth Empowerment\"} content={wDYE_Content} />} />\r\n <Route path=\"/sud/sspw\" element={<Page iD={487} pageHeader={\"Supporting a Strong Prevention Workforce\"} content={sSPW_Content} />} />\r\n <Route path=\"/sud/strength\" element={<Page iD={488} pageHeader={\"Sources of Strength\"} content={strength_Content} />} />\r\n <Route path=\"/sud/tgd\" element={<Page iD={489} pageHeader={\"Too Good for Drugs\"} content={tGD_Content} />} />\r\n <Route path=\"/sud/pip\" element={<Page iD={490} pageHeader={\"Partners in Prevention (PIP)\"} content={pIP_Content} />} />\r\n <Route path=\"/sud/dtp\" element={<Page iD={491} pageHeader={\"The Dinner Table Project\"} content={dTP_Content} />} />\r\n <Route path=\"/sud/kpsap\" element={<Page iD={492} pageHeader={\"The Kentucky Purple Star Award Program\"} content={kSAP_Content} />} />\r\n <Route path=\"/sud/synar\" element={<Page iD={493} pageHeader={\"Synar Program\"} content={synar_Content} />} />\r\n <Route path=\"/sud/zero\" element={<Page iD={494} pageHeader={\"Zero Tolerance\"} content={zero_Content} />} />\r\n <Route path=\"/sud/kip\" element={<Page iD={192} pageHeader={\"Kentucky Incentives for Prevention (KIP) Survey\"} content={kIPContent} />} />\r\n <Route path=\"/sud/sa-kpn\" element={<Page iD={275} pageHeader={\"The Kentucky Prevention Network (KPN)\"} content={sAKPNContent} />} />\r\n <Route path=\"/sud/sa-pes\" element={<Page iD={196} pageHeader={\"Prevention Enhancement System\"} content={pESContent} />} />\r\n <Route path=\"/sud/yeg\" element={<Page iD={495} pageHeader={\"Youth Empowerment Grant\"} content={yEGContent} />} />\r\n <Route path=\"/sud/krspmg\" element={<Page iD={496} pageHeader={\"Kentucky Retail Survey Project (Nicotine & THC) Mini Grant\"} content={kRSPMGContent} />} />\r\n {/* Don't have a page ID */}\r\n <Route path=\"/sud/continuum\" element={<Page iD={497} pageHeader={\"Promoting Collaboration through the Behavioral Health Continuum of Care\"} content={continuumContent} />} />\r\n <Route path=\"/sud/ebpi-interviewing\" element={<Page iD={248} pageHeader={\"Evidence-Based Practice Initiatives\"} content={eBPIInterviewing} />} />\r\n <Route path=\"/sud/ebpi-niatx\" element={<Page iD={250} pageHeader={\"Evidence-Based Practice Initiatives\"} content={eBPINiatx} />} />\r\n <Route path=\"/sud/resources\" element={<Page iD={485} pageHeader={\"Resources\"} content={ResourcesContent} />} />\r\n {/* Don't have a page ID */}\r\n <Route path=\"/sud/ebpi-general\" element={<Page iD={504} pageHeader={\"Evidence-Based Initiatives \"} content={EvidenceBasedInitiativesContent} />} />\r\n <Route path=\"/sud/sa-trust\" element={<Page iD={286} pageHeader={\"Tobacco Retailer Underage Sales Training (TRUST)\"} content={TrustContent} />} />\r\n <Route path=\"/sud/immersion\" element={<Page iD={426} pageHeader={\"Operation Immersion \"} content={immersionContent} />} />\r\n <Route path=\"/sud/bestpractice\" element={<Page iD={242} pageHeader={\"Behavioral Health Best Practices \"} content={BestPracticeContent} />} />\r\n <Route path=\"/sud/ebpi-integrated\" element={<Page iD={244} pageHeader={\"DDCAT and DDCMHT Integrated Services Initiative\"} content={eBPIIntegrated_Content} />} />\r\n {/* // ===================================================================================================================== */}\r\n {/* // ================================ MH: Division of Mental Health =================================================== */}\r\n {/* MH */}\r\n <Route path=\"/mh\" element={<Page iD={484} pageHeader={\"Mental Health\"} content={mHHome_Content} />} />\r\n <Route path=\"/mh/csa\" element={<Page iD={396} pageHeader={\"Community Support Associate Curriculum Approval Process\"} content={cSA_Content} />} />\r\n <Route path=\"/mh/pss\" element={<Page iD={411} pageHeader={\"Peer Support Specialist Curriculum Approval Process\"} content={pSS_Content} />} />\r\n <Route path=\"/mh/tcm\" element={<Page iD={407} pageHeader={\"Targeted Case Management Curriculum Approval Process\"} content={tCM_Content} />} />\r\n <Route path=\"/mh/ebpcyf\" element={<Page iD={453} pageHeader={\"Evidence-based and Best Practices for Children, Youth, and Families\"} content={eBPCYF_Content} />} />\r\n <Route path=\"/mh/adultmh\" element={<Page iD={14} pageHeader={\"Adult Mental Health Branch\"} content={adultMH_Content} />} />\r\n <Route path=\"/mh/act\" element={<Page iD={47} pageHeader={\"ACT Principles\"} content={act_Content} />} />\r\n <Route path=\"/mh/employment\" element={<Page iD={159} pageHeader={\"Supported Employment\"} content={employment_Content} />} />\r\n <Route path=\"/mh/housing\" element={<Page iD={113} pageHeader={\"Housing and Homeless Programs\"} content={housing_Content} />} />\r\n <Route path=\"/mh/tcm-adult\" element={<Page iD={157} pageHeader={\"Adult Mental Health and Recovery Services\"} content={tCMAdult_Content} />} />\r\n <Route path=\"/mh/housing-resources\" element={<Page iD={115} pageHeader={\"Housing and Homeless Programs\"} content={housingResources_Content} />} />\r\n <Route path=\"/mh/adultmh-aging\" element={<Page iD={442} pageHeader={\"Kentucky Mental Health and Aging Coalition\"} content={adultMHAging_Content} />} />\r\n <Route path=\"/mh/children\" element={<Page iD={14} pageHeader={\"Children’s Mental Health and Recovery Services Branch\"} content={childrenContent} />} />\r\n <Route path=\"/mh/adolescent\" element={<Page iD={422} pageHeader={\"Youth Substance Use Treatment\"} content={adolescentContent} />} />\r\n <Route path=\"/mh/ecmh\" element={<Page iD={106} pageHeader={\"Early Childhood Mental Health Resources\"} content={eCMH_Content} />} />\r\n <Route path=\"/mh/ecmh-links\" element={<Page iD={111} pageHeader={\"Early Childhood Mental Health Resources\"} content={eCMHLinks_Content} />} />\r\n <Route path=\"mh/hfw\" element={<Page iD={420} pageHeader={\"High Fidelity Wraparound\"} content={hFW_Content} />} />\r\n <Route path=\"mh/kyimpact\" element={<Page iD={144} pageHeader={\"Kentucky IMPACT\"} content={kYImpact_Content} />} />\r\n <Route path=\"mh/riac\" element={<Page iD={473} pageHeader={\"Regional Interagency Councils\"} content={rIAC_Content} />} />\r\n <Route path=\"mh/ccc\" element={<Page iD={338} pageHeader={\"Commissions, Councils and Committees\"} content={cCC_Content} />} />\r\n <Route path=\"mh/siac\" element={<Page iD={37} pageHeader={\"State Interagency Council for Services and Supports to Children and Transition-age Youth\"} content={sIAC_Content} />} />\r\n <Route path=\"mh/siac-summaries\" element={<Page iD={374} pageHeader={\"State Interagency Council for Services and Supports to Children and Transition-age Youth\"} content={sIACSummaries_Content} />} />\r\n <Route path=\"mh/systemofcare\" element={<Page iD={18} pageHeader={\"System of Care Approach\"} content={systemOfCare_Content} />} />\r\n <Route path=\"mh/tcm-child\" element={<Page iD={32} pageHeader={\"Targeted Case Management Services for Children/Youth with a Serious Emotional Disability\"} content={tCMChild_Content} />} />\r\n <Route path=\"mh/tcm-adult\" element={<Page iD={157} pageHeader={\"Transition Age Youth\"} content={tCMChild_Content} />} />\r\n <Route path=\"mh/youth-adult\" element={<Page iD={19} pageHeader={\"Transition Age Youth\"} content={youthAdult_Content} />} />\r\n {/* <Route path=\"mh/tic\" element={<Page iD={249} pageHeader={\"Trauma-Informed Care\"} content={tIC_Content} />} /> */}\r\n <Route path=\"mh/kedc\" element={<Page iD={476} pageHeader={\"Kentucky Eating Disorder Council\"} content={kEDC_Content} />} />\r\n <Route path=\"mh/ppp\" element={<Page iD={486} pageHeader={\"Promotion, Prevention, and Preparedness\"} content={pPP_Content} />} />\r\n <Route path=\"mh/mhp\" element={<Page iD={499} pageHeader={\"Mental Health Promotion\"} content={mHPromotion_Content} />} />\r\n <Route path=\"mh/sp\" element={<Page iD={16} pageHeader={\"Suicide Prevention Program\"} content={sP_Content} />} />\r\n <Route path=\"mh/kccrt\" element={<Page iD={501} pageHeader={\"Kentucky Community Crisis Response Team \"} content={kCCRT_Content} />} />\r\n <Route path=\"/mh/dhhs\" element={<Page iD={43} pageHeader={\"Deaf and Hard of Hearing Services\"} content={dHHS_Content} />} />\r\n <Route path=\"/mh/adultsa\" element={<Page iD={160} pageHeader={\"Adult Substance Use Treatment and Recovery Services Branch\"} content={adultSA_Content} />} />\r\n <Route path=\"/mh/cooccurring\" element={<Page iD={251} pageHeader={\"Co-Occurring Disorders\"} content={coocurring_Content} />} />\r\n <Route path=\"/mh/adultmh-cji\" element={<Page iD={443} pageHeader={\"Adult Mental Health and Recovery Services Branch\"} content={adultMHCJI_Content} />} />\r\n <Route path=\"/mh/cbht\" element={<Page iD={475} pageHeader={\"Community Behavioral Health Training Program\"} content={CBHTContent} />} />\r\n <Route path=\"/mh/bhpac\" element={<Page iD={129} pageHeader={\"Behavioral Health Planning and Advisory Council\"} content={BHPACContent} />} />\r\n <Route path=\"/mh/bhpac-about\" element={<Page iD={107} pageHeader={\"About the Planning Council\"} content={BHPACAboutContent} />} />\r\n <Route path=\"/mh/bhpac-summaries\" element={<Page iD={131} pageHeader={\"Behavioral Health Planning and Advisory Council\"} content={BHPACSummariesContent} />} />\r\n <Route path=\"/mh/bhpac-bg\" element={<Page iD={130} pageHeader={\"Behavioral Health Planning and Advisory Council\"} content={BHPACBGContent} />} />\r\n <Route path=\"/mh/soca\" element={<Page iD={423} pageHeader={\"System of Care Academy\"} content={sOCA_Content} />} />\r\n <Route path=\"/mh/impact-video\" element={<Page iD={402} pageHeader={\"Kentucky IMPACT\"} content={impactVideo_Content} />} />\r\n <Route path=\"/mh/act-principles\" element={<Page iD={48} pageHeader={\"Principles of Assertive Community Treatment\"} content={actPrinciplesContent} />} />\r\n <Route path=\"/mh/aot\" element={<Page iD={482} pageHeader={\"Assisted Outpatient Treatment \"} content={aOTContent} />} />\r\n \r\n\r\n {/* // ================================ Developmental and Intellectual Disabilities =================================================== */}\r\n {/* DDID */}\r\n <Route path=\"/ddid\" element={<Page iD={267} pageHeader={\"Developmental and Intellectual Disabilities\"} content={dDIDHome_Content} />} />\r\n <Route path=\"/ddid/csb\" element={<Page iD={9} pageHeader={\"Community Supports Branch\"} content={cSB_Content} />} />\r\n {/* <Route path=\"/ddid/csb-services\" element={<CSBServices />} /> */}\r\n <Route path=\"/ddid/scl\" element={<Page iD={8} pageHeader={\"Waiver Branch\"} content={sCL_Content} />} />\r\n <Route path=\"/ddid/clinical\" element={<Page iD={434} pageHeader={\"Clinical Services Branch\"} content={clinical_Content} />} />\r\n <Route path=\"/ddid/scl-training\" element={<Page iD={306} pageHeader={\"Supports for Community Living Training and Resources\"} content={sCLTraining_Content} />} />\r\n <Route path=\"/ddid/scl-newprovider\" element={<Page iD={29} pageHeader={\"SCL Providers\"} content={sCLNewProvider_Content} />} />\r\n <Route path=\"/ddid/hrcbic\" element={<Page iD={768} pageHeader={\"Human Rights and Behavior Intervention Committees\"} content={hRCBIC_Content} />} />\r\n <Route path=\"/ddid/cm-training\" element={<Page iD={293} pageHeader={\"Case Management Training\"} content={cMTraining_Content} />} />\r\n <Route path=\"/ddid/commission\" element={<Page iD={235} pageHeader={\"House Bill 144 Commission\"} content={commission_Content} />} />\r\n <Route path=\"/ddid/commission-documents\" element={<Page iD={310} pageHeader={\"Meeting Minutes and Materials and Reports\"} content={commissionDocuments_Content} />} />\r\n <Route path=\"/ddid/scl-forms-certification\" element={<Page iD={299} pageHeader={\"Supports for Community Living Waiver Branch\"} content={sCLFormsCertification_Content} />} />\r\n <Route path=\"/ddid/scl-forms-cm\" element={<Page iD={298} pageHeader={\"Supports for Community Living Waiver Branch\"} content={sCLFormsCM_Content} />} />\r\n <Route path=\"/ddid/scl-forms-employment\" element={<Page iD={373} pageHeader={\"Supports for Community Living Waiver Branch\"} content={sCLFormsEmployment_Content} />} />\r\n <Route path=\"/ddid/scl-forms-general\" element={<Page iD={300} pageHeader={\"Supports for Community Living Waiver Branch\"} content={sCLFormsGeneral_Content} />} />\r\n <Route path=\"/ddid/scl-forms-incident\" element={<Page iD={301} pageHeader={\"Supports for Community Living Waiver Branch\"} content={sCLFormsIncident_Content} />} />\r\n <Route path=\"/ddid/scl-forms-risk\" element={<Page iD={302} pageHeader={\"Supports for Community Living Waiver Branch\"} content={sCLFormsRisk_Content} />} />\r\n <Route path=\"/ddid/scl-forms\" element={<Page iD={297} pageHeader={\"Supports for Community Living Waiver Branch\"} content={sCLForms_Content} />} />\r\n <Route path=\"/ddid/scl-qa-submit\" element={<Page iD={394} pageHeader={\"SCL Questions and Answers\"} content={sCLQASubmit_Content} />} />\r\n <Route path=\"/ddid/scl-regulations\" element={<Page iD={361} pageHeader={\"Supports for Community Living Waiver Branch\"} content={sCLRegulations_Content} />} />\r\n <Route path=\"/ddid/scl-services\" element={<Page iD={304} pageHeader={\"Supports for Community Living Waiver Branch\"} content={sCLServices_Content} />} />\r\n <Route path=\"/ddid/sgf-forms\" element={<Page iD={307} pageHeader={\"Supports for Community Living Waiver Branch\"} content={sGFForms_Content} />} />\r\n <Route path=\"/ddid/im\" element={<Page iD={483} pageHeader={\"Incident Management Trainings\"} content={iM_Content} />} />\r\n <Route path=\"/ddid/recordings\" element={<Page iD={306} pageHeader={\"DDID Recordings (webinars, presentations, training) \"} content={recordingsContent} />} />\r\n <Route path=\"/ddid/access-and-referral\" element={<Page iD={267} pageHeader={\"Access and Referral\"} content={accessAndReferral_Content} />} />\r\n\r\n {/* // ================================ DPI: Division of Program Integrity=================================================== */}\r\n {/* DPI */}\r\n <Route path=\"/dpi\" element={<Page iD={419} pageHeader={\"Program Integrity\"} content={dPIHome_Content} />} />\r\n <Route path=\"/dpi/dui\" element={<Page iD={467} pageHeader={\"Driving Under the Influence Program\"} content={dUI_Content} />} />\r\n <Route path=\"/dpi/opioid\" element={<Page iD={155} pageHeader={\"Medications for Opioid Use Disorder\"} content={opiate_Content} />} />\r\n <Route path=\"/dpi/cap\" element={<Page iD={412} pageHeader={\"Curriculum Approval Processes\"} content={cAP_Content} />} />\r\n <Route path=\"/dpi/tris\" element={<Page iD={474} pageHeader={\"DBHDID Training Records Information System\"} content={tRIS_Content} />} />\r\n <Route path=\"/dpi/dui-training\" element={<Page iD={459} pageHeader={\"Driving Under the Influence Program\"} content={dUITraining_Content} />} />\r\n <Route path=\"/dpi/dui-forms\" element={<Page iD={469} pageHeader={\"Driving Under the Influence Program\"} content={dUIForms_Content} />} />\r\n <Route path=\"/dpi/dui-faq\" element={<Page iD={460} pageHeader={\"Driving Under the Influence Program\"} content={dUIFAQ_Content} />} />\r\n {/* // ===================================================================================================================== */}\r\n {/* Facilites */}\r\n <Route path=\"/facilities\" element={<Page iD={311} pageHeader={\"Facilities\"} content={facilitesHome_Content} />} />\r\n <Route path=\"/facilities/datareports\" element={<Page iD={447} pageHeader={\"Facility Data Reports\"} content={dataReportsFacility_Content} />} />\r\n <Route path=\"/facilities/pdrates\" element={<Page iD={433} pageHeader={\"Facility Data Reports\"} content={pDRates_Content} />} />\r\n <Route path=\"/facilities/procedures\" element={<Page iD={313} pageHeader={\"Procedures\"} content={procedures_Content} />} />\r\n {/* Error Page */}\r\n <Route path=\"/*\" element={<Error />} />\r\n {/* Test Page */}\r\n {/* // ================================================================================================== */}\r\n {/* <Route path=\"/test\" element={<TestPage />} /> */}\r\n </Routes>\r\n {/* // ================================================================================================== */}\r\n </>\r\n )\r\n}\r\n\r\nexport default App;\r\n","const reportWebVitals = onPerfEntry => {\r\n if (onPerfEntry && onPerfEntry instanceof Function) {\r\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\r\n getCLS(onPerfEntry);\r\n getFID(onPerfEntry);\r\n getFCP(onPerfEntry);\r\n getLCP(onPerfEntry);\r\n getTTFB(onPerfEntry);\r\n });\r\n }\r\n};\r\n\r\nexport default reportWebVitals;\r\n","import { useEffect } from \"react\";\r\nimport { useLocation } from \"react-router-dom\";\r\n\r\nfunction ScrollToTopForNewPage() {\r\n const {pathname} = useLocation();\r\n useEffect(() => {\r\n window.scrollTo(0,0);\r\n },\r\n [pathname]\r\n );\r\n return null;\r\n}\r\n\r\nexport default ScrollToTopForNewPage;","// bootstrap\r\nimport 'bootstrap/dist/css/bootstrap.min.css';\r\nimport 'bootstrap/dist/js/bootstrap.bundle.min';\r\n// Libraries\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom/client';\r\nimport App from './App';\r\nimport reportWebVitals from './reportWebVitals';\r\nimport { BrowserRouter } from 'react-router-dom';\r\nimport ScrollToTopForNewPage from './components/ScrollToTopForNewPage';\r\n\r\nconst root = ReactDOM.createRoot(document.getElementById('root'));\r\nroot.render(\r\n // <React.StrictMode>\r\n <BrowserRouter>\r\n <ScrollToTopForNewPage />\r\n <App />\r\n </BrowserRouter>\r\n // </React.StrictMode>\r\n);\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals();\r\n"],"names":["module","exports","utils","require","settle","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","transitionalDefaults","AxiosError","CanceledError","parseProtocol","config","Promise","resolve","reject","onCanceled","requestData","data","requestHeaders","headers","responseType","done","cancelToken","unsubscribe","signal","removeEventListener","isFormData","isStandardBrowserEnv","request","XMLHttpRequest","auth","username","password","unescape","encodeURIComponent","Authorization","btoa","fullPath","baseURL","url","onloadend","responseHeaders","getAllResponseHeaders","response","responseText","status","statusText","value","err","open","method","toUpperCase","params","paramsSerializer","timeout","onreadystatechange","readyState","responseURL","indexOf","setTimeout","onabort","ECONNABORTED","onerror","ERR_NETWORK","ontimeout","timeoutErrorMessage","transitional","clarifyTimeoutError","ETIMEDOUT","xsrfValue","withCredentials","xsrfCookieName","read","undefined","xsrfHeaderName","forEach","val","key","toLowerCase","setRequestHeader","isUndefined","onDownloadProgress","addEventListener","onUploadProgress","upload","cancel","type","abort","subscribe","aborted","protocol","ERR_BAD_REQUEST","send","bind","Axios","mergeConfig","axios","createInstance","defaultConfig","context","instance","prototype","extend","create","instanceConfig","CancelToken","isCancel","VERSION","toFormData","Cancel","all","promises","spread","isAxiosError","executor","TypeError","resolvePromise","this","promise","token","then","_listeners","i","l","length","onfulfilled","_resolve","message","reason","throwIfRequested","listener","push","index","splice","source","c","call","ERR_CANCELED","name","inherits","__CANCEL__","InterceptorManager","dispatchRequest","validator","validators","defaults","interceptors","configOrUrl","assertOptions","silentJSONParsing","boolean","forcedJSONParsing","requestInterceptorChain","synchronousRequestInterceptors","interceptor","runWhen","synchronous","unshift","fulfilled","rejected","responseInterceptorChain","chain","Array","apply","concat","shift","newConfig","onFulfilled","onRejected","error","getUri","generateHTTPMethod","isForm","code","Error","toJSON","description","number","fileName","lineNumber","columnNumber","stack","descriptors","Object","defineProperties","defineProperty","from","customProps","axiosError","toFlatObject","obj","assign","handlers","use","options","eject","id","fn","h","isAbsoluteURL","combineURLs","requestedURL","transformData","throwIfCancellationRequested","transformRequest","merge","common","adapter","transformResponse","config1","config2","getMergedValue","target","isPlainObject","isArray","slice","mergeDeepProperties","prop","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","keys","configValue","validateStatus","ERR_BAD_RESPONSE","Math","floor","fns","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","process","toString","getDefaultAdapter","isArrayBuffer","isBuffer","isStream","isFile","isBlob","isArrayBufferView","buffer","isURLSearchParams","isFileList","isObjectPayload","isObject","contentType","_FormData","env","FormData","rawValue","parser","encoder","isString","JSON","parse","trim","e","stringify","stringifySafely","strictJSONParsing","maxContentLength","maxBodyLength","thisArg","args","arguments","encode","replace","serializedParams","parts","v","isDate","toISOString","join","hashmarkIndex","relativeURL","write","expires","path","domain","secure","cookie","isNumber","Date","toGMTString","document","match","RegExp","decodeURIComponent","remove","now","test","payload","originURL","msie","navigator","userAgent","urlParsingNode","createElement","resolveURL","href","setAttribute","host","search","hash","hostname","port","pathname","charAt","window","location","requestURL","parsed","normalizedName","ignoreDuplicateOf","split","line","substr","exec","callback","arr","formData","convertValue","isTypedArray","Blob","Buffer","build","parentKey","fullKey","endsWith","toArray","el","append","pop","thing","deprecatedWarnings","version","formatMessage","opt","desc","opts","ERR_DEPRECATED","console","warn","schema","allowUnknown","ERR_BAD_OPTION_VALUE","result","ERR_BAD_OPTION","cache","kindOf","str","kindOfTest","getPrototypeOf","isFunction","hasOwnProperty","TypedArray","Uint8Array","constructor","pattern","ArrayBuffer","isView","pipe","product","assignValue","a","b","stripBOM","content","charCodeAt","superConstructor","props","sourceObj","destObj","filter","merged","getOwnPropertyNames","searchString","position","String","lastIndex","t","Map","set","n","has","s","get","size","delete","CSS","escape","dispatchEvent","Event","o","jquery","nodeType","r","querySelector","getClientRects","getComputedStyle","getPropertyValue","closest","parentNode","Node","ELEMENT_NODE","classList","contains","disabled","hasAttribute","getAttribute","documentElement","attachShadow","getRootNode","ShadowRoot","d","offsetHeight","u","jQuery","body","f","p","dir","m","NAME","jQueryInterface","Constructor","noConflict","g","_","transitionDuration","transitionDelay","Number","parseFloat","_ref","max","min","y","w","A","E","T","mouseenter","mouseleave","C","Set","O","uidEvent","x","k","values","find","callable","delegationSelector","L","I","S","relatedTarget","delegateTarget","oneOff","querySelectorAll","P","N","off","D","Boolean","$","entries","includes","on","one","startsWith","trigger","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","bubbles","cancelable","preventDefault","defaultPrevented","configurable","j","M","F","setDataAttribute","removeDataAttribute","removeAttribute","getDataAttributes","dataset","getDataAttribute","H","Default","DefaultType","_getConfig","_mergeConfigObj","_configAfterMerge","_typeCheckConfig","W","super","_element","_config","DATA_KEY","dispose","EVENT_KEY","_queueCallback","static","getInstance","B","map","z","Element","findOne","children","matches","parents","prev","previousElementSibling","next","nextElementSibling","focusableChildren","getSelectorFromElement","getElementFromSelector","getMultipleElementsFromSelector","R","tagName","getOrCreateInstance","q","V","K","Q","close","_destroyElement","each","X","Y","toggle","U","G","J","Z","tt","et","it","endCallback","leftCallback","rightCallback","nt","st","isSupported","_deltaX","_supportPointerEvents","PointerEvent","_initEvents","_start","_eventIsPointerPenTouch","clientX","touches","_end","_handleSwipe","_move","abs","add","pointerType","maxTouchPoints","ot","rt","at","lt","ct","ht","dt","ut","ft","pt","mt","gt","_t","bt","vt","yt","wt","At","Et","Tt","ArrowLeft","ArrowRight","Ct","interval","keyboard","pause","ride","touch","wrap","Ot","xt","_interval","_activeElement","_isSliding","touchTimeout","_swipeHelper","_indicatorsElement","_addEventListeners","cycle","_slide","nextWhenVisible","hidden","_clearInterval","_updateInterval","setInterval","_maybeEnableCycle","to","_getItems","_getItemIndex","_getActive","defaultInterval","_keydown","_addTouchEventListeners","_directionToOrder","clearTimeout","_setActiveIndicatorElement","parseInt","direction","_orderToDirection","_isAnimated","clearInterval","kt","Lt","St","Dt","$t","It","Nt","Pt","jt","Mt","Ft","Ht","parent","Wt","Bt","_isTransitioning","_triggerArray","_initializeChildren","_addAriaAndCollapsedClass","_isShown","hide","show","_getFirstLevelChildren","_getDimension","style","getBoundingClientRect","zt","Rt","qt","Vt","Kt","Qt","Xt","Yt","Ut","Gt","Jt","Zt","te","reduce","ee","ie","ne","se","oe","re","ae","le","ce","he","de","ue","nodeName","fe","ownerDocument","defaultView","pe","me","HTMLElement","ge","_e","enabled","phase","state","elements","styles","attributes","effect","popper","strategy","left","top","margin","arrow","reference","requires","be","ve","ye","we","round","Ae","userAgentData","brands","brand","Ee","Te","offsetWidth","width","height","visualViewport","offsetLeft","offsetTop","right","bottom","Ce","Oe","isSameNode","xe","ke","Le","Se","assignedSlot","De","offsetParent","$e","transform","perspective","contain","willChange","Ie","Ne","Pe","je","Me","modifiersData","popperOffsets","placement","rects","padding","clientHeight","clientWidth","centerOffset","element","requiresIfExists","Fe","He","We","popperRect","variation","offsets","gpuAcceleration","adaptive","roundOffsets","isFixed","devicePixelRatio","Be","ze","passive","Re","scroll","resize","scrollParents","update","qe","Ve","Ke","start","end","Qe","Xe","scrollLeft","pageXOffset","scrollTop","pageYOffset","Ye","Ue","overflow","overflowX","overflowY","Ge","Je","Ze","ti","clientTop","clientLeft","scrollWidth","scrollHeight","ei","ii","boundary","rootBoundary","elementContext","altBoundary","contextElement","offset","ni","flipVariations","allowedAutoPlacements","sort","si","_skip","mainAxis","altAxis","fallbackPlacements","every","reset","oi","ri","some","ai","preventOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","li","ci","hi","tether","tetherOffset","di","ui","fi","modifiers","pi","mi","defaultModifiers","defaultOptions","orderedModifiers","setOptions","forceUpdate","destroy","onFirstUpdate","gi","_i","bi","yi","wi","Ai","Ei","Ti","Ci","Oi","xi","ki","Li","Si","Di","$i","Ii","Ni","Pi","ji","Mi","Fi","Hi","Wi","Bi","zi","autoClose","display","popperConfig","Ri","qi","_popper","_parent","_menu","_inNavbar","_detectNavbar","_createPopper","focus","_completeHide","vi","_getPopperConfig","_getPlacement","_getOffset","_selectMenuItem","_ref2","button","composedPath","clickEvent","stopPropagation","dataApiKeydownHandler","clearMenus","Vi","Ki","Qi","Xi","className","clickCallback","isAnimated","isVisible","rootElement","Yi","Ui","_isAppended","_append","_getElement","_emulateAnimation","Gi","Ji","Zi","tn","en","autofocus","trapElement","nn","sn","_isActive","_lastTabNavDirection","activate","_handleFocusin","_handleKeydown","deactivate","shiftKey","rn","an","ln","cn","getWidth","innerWidth","_disableOverFlow","_setElementAttributes","_resetElementAttributes","isOverflowing","_saveInitialAttribute","_applyManipulationCallback","setProperty","removeProperty","hn","dn","un","pn","mn","gn","_n","bn","vn","yn","wn","An","En","Tn","backdrop","Cn","On","_dialog","_backdrop","_initializeBackDrop","_focustrap","_initializeFocusTrap","_scrollBar","_adjustDialog","_showElement","_hideModal","handleUpdate","_triggerBackdropTransition","_resetAdjustments","paddingLeft","paddingRight","xn","kn","Ln","Sn","Dn","$n","In","Nn","Pn","jn","Mn","Fn","Hn","Wn","Bn","zn","Rn","qn","blur","Vn","area","br","col","dd","div","dl","em","hr","h1","h2","h3","h4","h5","h6","img","ol","pre","small","span","sub","sup","strong","ul","Kn","Qn","Xn","nodeValue","Yn","allowList","extraClass","html","sanitize","sanitizeFn","template","Un","Gn","entry","selector","Jn","getContent","_resolvePossibleFunction","hasContent","changeContent","_checkContent","toHtml","innerHTML","_maybeSanitize","_setContent","_putElementInTemplate","textContent","DOMParser","parseFromString","Zn","ts","es","is","ns","ss","os","rs","AUTO","TOP","RIGHT","BOTTOM","LEFT","as","animation","container","customClass","delay","title","ls","cs","_isEnabled","_timeout","_isHovered","_activeTrigger","_templateFactory","_newContent","tip","_setListeners","_fixTitle","enable","disable","toggleEnabled","click","_leave","_enter","_hideModalHandler","_disposePopper","_isWithContent","eventName","_getTipElement","_isWithActiveTrigger","_getTitle","_createTipElement","_getContentForTemplate","_getTemplateFactory","random","getElementById","setContent","_initializeOnDelegatedTarget","_getDelegateConfig","_setTimeout","hs","ds","us","_getContent","fs","ps","ms","gs","_s","bs","vs","ys","ws","rootMargin","smoothScroll","threshold","As","Es","_targetLinks","_observableSections","_rootElement","_activeTarget","_observer","_previousScrollData","visibleEntryTop","parentScrollTop","refresh","_initializeTargetsAndObservables","_maybeEnableSmoothScroll","disconnect","_getNewObserver","observe","scrollTo","behavior","root","IntersectionObserver","_observerCallback","_process","isIntersecting","_clearActiveClass","decodeURI","_activateParents","Ts","Cs","Os","xs","ks","Ls","Ss","Ds","$s","Is","Ns","Ps","js","Ms","Fs","Hs","Ws","Bs","zs","Rs","qs","Vs","Ks","_setInitialAttributes","_getChildren","_elemIsActive","_getActiveElem","_deactivate","_activate","_toggleDropDown","preventScroll","_setAttributeIfNotExists","_setInitialAttributesOnChild","_getInnerElement","_getOuterElement","_setInitialAttributesOnTargetPanel","Qs","Xs","Ys","Us","Gs","Js","Zs","eo","io","no","so","oo","autohide","ro","ao","_hasMouseInteraction","_hasKeyboardInteraction","_clearTimeout","_maybeScheduleHide","isShown","_onInteraction","Alert","Button","Carousel","Collapse","Dropdown","Modal","Offcanvas","Popover","ScrollSpy","Tab","Toast","Tooltip","hasOwn","classNames","classes","arg","argType","inner","default","condition","format","argIndex","framesToPop","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","getShim","isRequired","ReactPropTypes","array","bigint","bool","func","object","string","symbol","any","arrayOf","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","aa","ca","da","ea","fa","ha","ia","ja","ka","la","ma","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","ra","sa","ta","pa","isNaN","qa","oa","setAttributeNS","xlinkHref","ua","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","va","Symbol","for","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","iterator","Ka","La","Ma","Na","Oa","prepareStackTrace","Reflect","construct","displayName","Pa","tag","render","Qa","$$typeof","_context","_payload","_init","Ra","Sa","Ta","Va","_valueTracker","getOwnPropertyDescriptor","enumerable","getValue","setValue","stopTracking","Ua","Wa","checked","Xa","activeElement","Ya","defaultChecked","defaultValue","_wrapperState","initialChecked","Za","initialValue","controlled","ab","bb","cb","db","eb","fb","selected","defaultSelected","gb","dangerouslySetInnerHTML","hb","ib","jb","kb","lb","mb","nb","namespaceURI","valueOf","firstChild","removeChild","appendChild","MSApp","execUnsafeLocalFunction","ob","lastChild","pb","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","qb","rb","sb","substring","tb","menuitem","base","embed","input","keygen","link","meta","param","track","wbr","ub","vb","wb","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","onError","Ob","Pb","Qb","Rb","Sb","Tb","Vb","alternate","return","flags","Wb","memoizedState","dehydrated","Xb","Zb","child","sibling","current","Yb","$b","ac","unstable_scheduleCallback","bc","unstable_cancelCallback","cc","unstable_shouldYield","dc","unstable_requestPaint","unstable_now","ec","unstable_getCurrentPriorityLevel","fc","unstable_ImmediatePriority","gc","unstable_UserBlockingPriority","hc","unstable_NormalPriority","ic","unstable_LowPriority","jc","unstable_IdlePriority","kc","lc","oc","clz32","pc","qc","log","LN2","rc","sc","tc","uc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","vc","xc","yc","zc","Ac","eventTimes","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","Rc","Sc","pointerId","Tc","nativeEvent","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","priority","isDehydrated","containerInfo","Xc","Yc","Zc","$c","ad","bd","cd","ReactCurrentBatchConfig","ed","transition","fd","gd","hd","Uc","jd","kd","ld","md","nd","od","keyCode","charCode","pd","qd","rd","_reactName","_targetInst","currentTarget","returnValue","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","timeStamp","isTrusted","td","ud","view","detail","vd","Ad","screenX","screenY","clientY","pageX","pageY","ctrlKey","altKey","metaKey","getModifierState","zd","buttons","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","fromCharCode","repeat","locale","which","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","isPrimary","Vd","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","documentMode","color","date","datetime","email","month","range","tel","text","time","week","event","listeners","oninput","detachEvent","attachEvent","nextSibling","compareDocumentPosition","HTMLIFrameElement","contentWindow","contentEditable","focusedElem","selectionRange","selectionStart","selectionEnd","getSelection","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","createRange","setStart","removeAllRanges","addRange","setEnd","animationend","animationiteration","animationstart","transitionend","af","bf","cf","df","ef","ff","gf","hf","lf","mf","nf","Ub","of","pf","qf","rf","sf","capture","tf","uf","parentWindow","vf","wf","na","xa","$a","ba","char","xf","yf","zf","Af","Bf","Cf","Df","Ef","__html","Ff","Gf","Hf","Jf","queueMicrotask","catch","If","Kf","Lf","Mf","previousSibling","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","Vf","Wf","Xf","Yf","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","childContextTypes","$f","ag","bg","getChildContext","cg","__reactInternalMemoizedMergedChildContext","dg","eg","fg","gg","hg","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","zg","Ag","Bg","deletions","Cg","pendingProps","treeContext","retryLane","Dg","mode","Eg","Fg","Gg","memoizedProps","Hg","Ig","Jg","Kg","Lg","defaultProps","Mg","Ng","Og","Pg","Qg","Rg","_currentValue","Sg","childLanes","Tg","dependencies","firstContext","lanes","Ug","Vg","memoizedValue","Wg","Xg","Yg","interleaved","Zg","$g","ah","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","effects","bh","ch","eventTime","lane","dh","eh","fh","gh","hh","ih","jh","Component","refs","kh","nh","isMounted","_reactInternals","enqueueSetState","lh","mh","enqueueReplaceState","enqueueForceUpdate","oh","shouldComponentUpdate","isPureReactComponent","ph","contextType","updater","qh","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","rh","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","sh","ref","_owner","_stringRef","th","uh","vh","wh","xh","yh","implementation","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","revealOrder","Nh","Oh","_workInProgressVersionPrimary","Ph","ReactCurrentDispatcher","Qh","Rh","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","baseQueue","queue","lastRenderedReducer","action","hasEagerState","eagerState","lastRenderedState","dispatch","getSnapshot","lastEffect","stores","deps","readContext","useCallback","useContext","useEffect","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","useId","unstable_isNewReconciler","identifierPrefix","digest","WeakMap","getDerivedStateFromError","componentDidCatch","componentStack","pingCache","ReactCurrentOwner","aj","bj","compare","cj","dj","ej","baseLanes","cachePool","transitions","fj","gj","hj","ij","jj","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","kj","lj","pendingContext","mj","Aj","Bj","Cj","Dj","nj","oj","pj","fallback","qj","rj","tj","dgst","uj","vj","_reactRetry","sj","subtreeFlags","wj","xj","isBackwards","rendering","renderingStartTime","last","tail","tailMode","yj","Ej","Fj","Gj","wasMultiple","multiple","suppressHydrationWarning","onClick","onclick","createElementNS","autoFocus","createTextNode","Hj","Ij","Jj","Kj","Lj","WeakSet","Mj","Nj","Oj","Qj","Rj","Sj","Tj","Uj","Vj","Wj","insertBefore","_reactRootContainer","Xj","Yj","Zj","ak","onCommitFiberUnmount","componentWillUnmount","bk","ck","dk","ek","fk","isHidden","gk","hk","ik","jk","kk","lk","__reactInternalSnapshotBeforeUpdate","src","Wk","mk","ceil","nk","ok","pk","qk","rk","sk","tk","uk","Infinity","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","callbackNode","expirationTimes","expiredLanes","wc","callbackPriority","ig","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","Pk","finishedWork","finishedLanes","Qk","timeoutHandle","Rk","Sk","Tk","Uk","Vk","mutableReadLanes","Bc","Pj","onCommitFiberRoot","mc","onRecoverableError","Xk","onPostCommitFiberRoot","Yk","Zk","al","isReactComponent","pendingChildren","bl","mutableSourceEagerHydrationData","cl","pendingSuspenseBoundaries","fl","gl","hl","il","jl","zj","$k","ll","reportError","ml","_internalRoot","nl","pl","ql","sl","rl","unmount","unstable_scheduleHydration","form","tl","usingClientEntryPoint","Events","findFiberByHostInstance","bundleType","rendererPackageName","vl","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","__REACT_DEVTOOLS_GLOBAL_HOOK__","wl","isDisabled","supportsFiber","inject","createPortal","createRoot","unstable_strictMode","findDOMNode","flushSync","hydrate","hydrateRoot","hydratedSources","_getVersion","_source","unmountComponentAtNode","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","checkDCE","__self","__source","Fragment","jsx","jsxs","setState","_status","_result","Children","count","only","Profiler","PureComponent","StrictMode","Suspense","cloneElement","createContext","_currentValue2","_threadCount","Provider","Consumer","_defaultValue","_globalName","createFactory","createRef","forwardRef","isValidElement","lazy","memo","startTransition","unstable_act","sortIndex","performance","setImmediate","startTime","expirationTime","priorityLevel","scheduling","isInputPending","MessageChannel","port2","port1","onmessage","postMessage","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","unstable_wrapCallback","inst","useSyncExternalStoreWithSelector","hasValue","warning","_typeof","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","__esModule","leafPrototypes","getProto","def","definition","chunkId","miniCssF","globalThis","Function","inProgress","dataWebpackPrefix","script","needAttach","scripts","getElementsByTagName","charset","nc","onScriptComplete","onload","doneFns","head","toStringTag","installedChunks","installedChunkData","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","chunkLoadingGlobal","self","Action","PopStateEventType","invariant","cond","getHistoryState","usr","idx","createLocation","_extends","parsePath","createPath","parsedPath","hashIndex","searchIndex","getUrlBasedHistory","getLocation","createHref","validateLocation","v5Compat","globalHistory","history","Pop","getIndex","handlePop","nextIndex","delta","createURL","origin","URL","replaceState","listen","encodeLocation","Push","historyState","pushState","Replace","go","ResultType","matchRoutes","routes","locationArg","basename","stripBasename","branches","flattenRoutes","score","siblings","compareIndexes","routesMeta","childrenIndex","rankRouteBranches","matchRouteBranch","safelyDecodeURI","parentsMeta","parentPath","flattenRoute","route","relativePath","caseSensitive","joinPaths","computeScore","_route$path","exploded","explodeOptionalSegments","segments","first","rest","isOptional","required","restExploded","subpath","paramRe","dynamicSegmentValue","indexRouteValue","emptySegmentValue","staticSegmentValue","splatPenalty","isSplat","initialScore","segment","branch","matchedParams","matchedPathname","remainingPathname","matchPath","pathnameBase","normalizePathname","matcher","paramNames","regexpSource","paramName","compilePath","captureGroups","splatValue","safelyDecodeURIComponent","startIndex","nextChar","getInvalidPathError","field","dest","getPathContributingMatches","resolveTo","toArg","routePathnames","locationPathname","isPathRelative","isEmptyPath","toPathname","routePathnameIndex","toSegments","fromPathname","resolvePathname","normalizeSearch","normalizeHash","resolvePath","hasExplicitTrailingSlash","hasCurrentTrailingSlash","paths","AbortedDeferredError","isRouteErrorResponse","internal","validMutationMethodsArr","validRequestMethodsArr","React","checkIfSnapshotChanged","latestGetSnapshot","prevValue","nextValue","DataRouterContext","DataRouterStateContext","NavigationContext","LocationContext","RouteContext","outlet","RouteErrorContext","useInRouterContext","useLocation","UNSAFE_invariant","useNavigate","routePathnamesJson","UNSAFE_getPathContributingMatches","activeRef","navigate","relative","useResolvedPath","_temp2","DefaultErrorComponent","_state$errors","useDataRouterState","DataRouterStateHook","UseRouteError","routeId","useCurrentRouteId","errors","useRouteError","lightgrey","preStyles","backgroundColor","fontStyle","RenderErrorBoundary","errorInfo","routeContext","component","RenderedRoute","dataRouterContext","staticContext","errorElement","ErrorBoundary","_deepestRenderedBoundaryId","_renderMatches","parentMatches","dataRouterState","renderedMatches","errorIndex","findIndex","reduceRight","getChildren","DataRouterHook","hookName","useRouteContext","thisRoute","Route","_props","Router","_ref4","basenameProp","locationProp","navigationType","staticProp","navigationContext","locationContext","trailingPathname","Routes","_ref5","dataRouterStateContext","routeMatch","parentParams","parentPathnameBase","locationFromContext","_parsedLocationArg$pa","parsedLocationArg","useRoutes","router","createRoutesFromChildren","AwaitRenderStatus","AwaitErrorBoundary","renderError","_tracked","_error","_data","success","neverSettledPromise","AwaitContext","treePath","loader","hasErrorBoundary","shouldRevalidate","handle","_jsx","_Fragment","_jsxs","header","propTypes","tooltip","Feedback","DEFAULT_BREAKPOINTS","DEFAULT_MIN_BREAKPOINT","ThemeContext","prefixes","breakpoints","minBreakpoint","useBootstrapPrefix","prefix","defaultPrefix","useBootstrapBreakpoints","useBootstrapMinBreakpoint","useIsRTL","FormCheckInput","bsPrefix","isValid","isInvalid","controlId","FormContext","FormCheckLabel","htmlFor","FormCheck","bsSwitchPrefix","inline","reverse","feedbackTooltip","feedback","feedbackType","label","innerFormContext","hasLabel","hasChildOfType","Input","Label","FormControl","htmlSize","plaintext","readOnly","FormFloating","FormGroup","Col","colProps","spans","brkPoint","propValue","infix","useCol","FormLabel","column","visuallyHidden","columnClass","FormRange","FormSelect","FormText","muted","Switch","FloatingLabel","validated","Form","Group","Floating","Check","Text","Range","Select","Table","striped","bordered","borderless","hover","variant","responsive","decoratedBsPrefix","table","responsiveClass","useCallbackRef","useEventCallback","useCommittedRef","useMounted","mounted","isReactNative","global","_excluded","useButtonProps","rel","role","tabIndex","handleClick","isTrivialHref","onKeyDown","asProp","excluded","sourceKeys","_objectWithoutPropertiesLoose","buttonProps","Anchor","handleKeyDown","PageItem","active","activeLabel","linkStyle","linkClassName","createButton","First","Prev","Ellipsis","Next","Last","Pagination","Item","createStoreImpl","createState","partial","nextState","previousState","getState","api","getInitialState","initialState","clear","createStore","ReactExports","useSyncExternalStoreExports","didWarnAboutEqualityFn","identity","createImpl","useBoundStore","equalityFn","getServerState","useStore","setBaseURL","useApi","baseUrl","aPIURLStore","setError","processing","setProcessing","methods","procRequest","async","indata","endpoint","postRequest","endpointKey","getRequest","Spinner","bsSpinnerPrefix","dataProcessingAction","searchPredicate","setData","filteredData","setFilteredData","sortBy","setSortBy","sortDirection","setSortDirection","currentPage","setCurrentPage","itemsPerPage","tempLink","indexOfLastItem","indexOfFirstItem","sortedItems","tableSort","numeric","ignorePunctuation","switchKey","valueA","valueB","dateA","dateB","localeCompare","currentItems","placeholder","onChange","validSearch","trimmed","filtered","item","handleFilter","handleSortWrapper","handleSort","property","linkURL","linkURLArray","arrayFilter","BrowserRouter","historyRef","createBrowserHistory","isBrowser","ABSOLUTE_URL_REGEX","Link","absoluteHref","reloadDocument","preventScrollReset","UNSAFE_NavigationContext","isExternal","currentUrl","targetUrl","_temp","joinedPathname","useHref","internalOnClick","replaceProp","isModifiedEvent","shouldProcessLinkClick","useLinkClickHandler","NavLink","ariaCurrentProp","classNameProp","styleProp","_excluded2","routerState","UNSAFE_DataRouterStateContext","nextLocationPathname","navigation","isActive","isPending","ariaCurrent","department","GoogleTranslateBar","googleTranslateElementInit","google","translate","TranslateElement","pageLanguage","layout","InlineLayout","HORIZONTAL","addScript","isNullOrWhiteSpace","isNullComponent","notNullComponent","phone","IsNullOrWhiteSpace","fax","street","city","zip","mapHref","tollFree","pageID","phoneInfo","setPhoneInfo","tollFreeInfo","setTollFreeInfo","faxInfo","setFaxInfo","addressInfo","setAddressInfo","contactInfo","setContactInfo","phones","contacts","addresses","fetchLinks","phoneListItems","ContactInfoPhone","faxListItem","ContactInfoFax","tollFreeListItem","ContactInfoTollFree","addressListItems","ContactInfoAddress","address","personListItems","ContactInfoPerson","staff","firstName","lastName","links","setLinks","Row","sizePrefix","cols","setValidated","formError","setFormError","isButtonDisabled","setButtonDisabled","formSubmitted","setFormSubmitted","setFormData","organization","addressTwo","userEmail","subject","comment","alert","reload","disableButton","findFormErrors","noValidate","onSubmit","getFormError","minLength","rows","matchersByWindow","getMatcher","query","targetWindow","matchers","mql","matchMedia","refCount","media","useMediaQuery","setMatches","handleChange","addListener","removeListener","breakpointValues","names","and","getMaxQuery","breakpoint","getNext","breakpointOrMap","breakpointMap","getMinQuery","createBreakpointHook","sm","xl","xxl","doc","optionsSupported","onceSupported","once","canUseDOM","handler","wrappedHandler","__once","onceHandler","useWillUnmount","onUnmount","valueRef","useUpdatedRef","psuedoElement","ownerWindow","rUpper","msPattern","hyphenateStyleName","hyphenate","supportedTransforms","css","transforms","isTransform","cssText","OPEN_DATA_ATTRIBUTE","handleContainerOverflow","isRTL","modals","getScrollbarWidth","getBodyScrollbarWidth","getElement","setModalAttributes","_modal","removeModalAttributes","setContainerStyle","containerState","paddingProp","scrollBarWidth","removeContainerStyle","modal","modalIdx","isTopModal","Context","useWindow","resolveContainerRef","useWaitForDOMRef","onResolved","resolvedRef","setRef","earlyRef","nextRef","toFnRef","refA","refB","mergeRefs","in","inProp","onExited","mountOnEnter","unmountOnExit","hasEnteredRef","handleExited","combinedRef","useMergedRefs","useRTGTransitionProps","onEnter","onEntering","onEntered","onExit","onExiting","addEndListener","nodeRef","mergedRef","normalize","handleEnter","handleEntering","handleEntered","handleExit","handleExiting","handleAddEndListener","innerProps","RTGTransition","transitionProps","ImperativeTransition","exited","setExited","onTransition","isInitialRef","handleTransition","useIsomorphicEffect","stale","initial","isStale","onFinish","renderTransition","runTransition","NoopTransition","isEscKey","manager","useModalManager","provided","modalManager","ModalManager","getManager","dialog","setDialogRef","setBackdropRef","onBackdropClick","onEscapeKeyDown","backdropTransition","runBackdropTransition","enforceFocus","restoreFocus","restoreFocusOptions","renderDialog","renderBackdrop","providedManager","containerRef","onShow","onHide","prevShow","usePrevious","lastFocusRef","handleShow","removeKeydownListenerRef","handleDocumentKeyDown","removeFocusListenerRef","handleEnforceFocus","_modal$dialog$ownerDo","_modal$dialog","currentActiveElement","handleHide","_lastFocusRef$current","handleBackdropClick","dialogProps","appear","backdropElement","ReactDOM","Manager","_setPrototypeOf","setPrototypeOf","__proto__","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","Transition","_React$Component","subClass","superClass","_this","initialStatus","isMounting","enter","appearStatus","nextCallback","prevState","_proto","updateStatus","prevProps","nextStatus","cancelNextCallback","getTimeouts","exit","mounting","forceReflow","performEnter","performExit","_this2","appearing","maybeNode","maybeAppearing","timeouts","enterTimeout","safeSetState","onTransitionEnd","_this3","setNextCallback","_this4","doesNotHaveTimeoutOrListener","_ref3","maybeNextCallback","_this$props","childProps","TransitionGroupContext","noop","emulateTransitionEnd","duration","called","createEvent","initEvent","triggerEvent","transitionEnd","mult","parseDuration","removeEmulate","transitionEndListener","triggerBrowserReflow","safeFindDOMNode","componentOrElement","TransitionWrapper","childRef","attachRef","fadeStyles","Fade","transitionClasses","isAppearing","OffcanvasBody","transitionStyles","OffcanvasToggling","CloseButton","ariaLabel","AbstractModalHeader","closeLabel","closeVariant","closeButton","ModalContext","OffcanvasHeader","DivStyledAsH5","divWithClassName","OffcanvasTitle","hasClass","baseVal","qsa","replaceClassName","origClass","classToRemove","Selector","BootstrapModalManager","adjustAndStore","adjust","actual","restore","marginProp","sharedManager","getSharedManager","DialogTransition","BackdropTransition","ariaLabelledby","backdropClassName","propsManager","renderStaticNode","onToggle","NavbarContext","showOffcanvas","setShowOffcanvas","hideResponsiveOffcanvas","useBreakpoint","modalContext","backdropProps","BaseModal","visibility","_len","_key","_len2","_key2","Body","Header","Title","ContactUsForm","setShow","handleClose","ContactFormInput","searchInput","setSearchInput","searchForService","maxWidth","crisisNumber","marginBottom","arrows","textDecoration","class","logo","Department","ContactInfo","iD","EmergencyContact","breadCrumbMap","windowUrl","currentPageStore","currentLink","crumbs","crumb","isLast","SanitizeHref","getBreadCrumb","fontSize","pageHeader","Navbar","Breadcrumbs","DepartmentHeader","IBITable","regionString","county","countyPhone","RegionNameAndWebsite","regionNumber","regionName","regionUrl","officeNumber","crisisLine","hospitalNameAndPhone","hospital","hospitalPhone","hasRegionString","hasHospital","Footer","__assign","hashFragment","observer","asyncTimerId","scrollFunction","isInteractiveElement","getElAndScroll","originalTabIndex","genericHashLink","linkHash","passDownProps","isExact","filteredProps","getOwnPropertySymbols","propertyIsEnumerable","__rest","elementId","smooth","scrollIntoView","MutationObserver","childList","subtree","HashLink","relatedLinks","setRelatedLinks","isNull","backToTopButton","setBackToTopButton","scrollY","scrollUp","isFirst","MAX_DELAY_MS","setChainedTimeout","handleRef","timeoutAtMs","delayMs","useTimeout","defaultKey","_toPropertyKey","hint","prim","toPrimitive","res","_toPrimitive","useUncontrolledProp","wasPropRef","_useState","stateValue","isProp","wasProp","nextProps","__reactInternalSnapshotFlag","__reactInternalSnapshot","__suppressDeprecationWarning","CarouselCaption","CarouselItem","finalClassName","defaultActiveIndex","uncontrolledProps","slide","fade","controls","indicators","indicatorLabels","activeIndex","onSelect","onSlide","onSlid","onMouseOver","onMouseOut","onTouchStart","onTouchMove","onTouchEnd","prevIcon","prevLabel","nextIcon","nextLabel","fieldName","_extends2","Utils","propsValue","handlerName","_useUncontrolledProp","useUncontrolled","nextDirectionRef","setDirection","paused","setPaused","isSliding","setIsSliding","renderedActiveIndex","setRenderedActiveIndex","activeChildInterval","numChildren","activeChildIntervalRef","nextActiveIndex","elementRef","elementStyle","slideDirection","useUpdateEffect","orderClassName","directionalClassName","handleMouseOver","handleMouseOut","touchStartXRef","touchDeltaXRef","touchUnpauseTimeout","handleTouchStart","handleTouchMove","handleTouchEnd","touchDeltaX","shouldPlay","intervalHandleRef","_activeChildIntervalR","nextFunc","visibilityState","indicatorOnClicks","Caption","girlDrawing","LadiesWithTablet","WomanPlayingUno","GirlAndDrawing","FatherAndDaughter","Home","CarouselFade","GrandFatherPlayingWithDaughter","alt","GirlOnABikeWithHerMom","Family","RelatedLink","ScrollToTop","BsPrefixComponent","getOverlayDirection","bsDirection","getInitialPopperStyles","pointerEvents","arrowProps","hasDoneInitialMeasure","primaryPlacement","computedStyle","TOOLTIP_OFFSET","iter","tar","dequal","foo","bar","ctor","len","tmp","getTime","DataView","byteLength","getInt8","getBasePlacement","getWindow","isElement","isHTMLElement","isShadowRoot","getUAString","uaData","isLayoutViewport","includeScale","isFixedStrategy","clientRect","scaleX","scaleY","addVisualOffsets","getLayoutRect","rootNode","getNodeName","isTableElement","getDocumentElement","getParentNode","getTrueOffsetParent","getOffsetParent","isFirefox","currentNode","getContainingBlock","getMainAxisFromPlacement","within","mathMax","mathMin","mergePaddingObject","paddingObject","expandToHashMap","hashMap","auto","basePlacements","clippingParents","viewport","variationPlacements","acc","placements","modifierPhases","toPaddingObject","_state$modifiersData$","arrowElement","basePlacement","axis","arrowRect","minProp","maxProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","center","axisProp","_options$element","getVariation","unsetSides","mapToStyles","_Object$assign2","_offsets$x","_offsets$y","hasX","hasY","sideX","sideY","win","heightProp","widthProp","_Object$assign","commonStyles","dpr","roundOffsetsByDPR","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","_options$scroll","_options$resize","scrollParent","getOppositePlacement","matched","getOppositeVariationPlacement","getWindowScroll","getWindowScrollBarX","isScrollParent","_getComputedStyle","getScrollParent","listScrollParents","list","_element$ownerDocumen","isBody","updatedList","rectToClientRect","rect","getClientRectFromMixedType","clippingParent","layoutViewport","getViewportRect","getInnerBoundingClientRect","winScroll","getDocumentRect","getClippingRect","mainClippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","computeOffsets","commonX","commonY","detectOverflow","_options","_options$placement","_options$strategy","_options$boundary","_options$rootBoundary","_options$elementConte","_options$altBoundary","_options$padding","altContext","clippingClientRect","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","_options$mainAxis","checkMainAxis","_options$altAxis","checkAltAxis","specifiedFallbackPlacements","_options$flipVariatio","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","_options$allowedAutoP","allPlacements","allowedPlacements","overflows","computeAutoPlacement","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","check","_loop","fittingPlacement","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","_options$offset","invertDistance","skidding","distance","distanceAndSkiddingToXY","_data$state$placement","_options$tether","_options$tetherOffset","isBasePlacement","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","minLen","maxLen","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","clientOffset","offsetModifierValue","tetherMax","preventedOffset","_offsetModifierState$2","_mainSide","_altSide","_offset","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","withinMaxClamp","getCompositeRect","elementOrVirtualElement","isOffsetParentAnElement","offsetParentIsScaled","isElementScaled","getNodeScroll","visited","modifier","dep","depModifier","debounce","DEFAULT_OPTIONS","areValidElements","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","_generatorOptions$def2","effectCleanupFns","isDestroyed","setOptionsAction","cleanupModifierEffects","orderModifiers","existing","mergeByName","_ref$options","cleanupFn","noopFn","_state$elements","_state$orderedModifie","_state$orderedModifie2","createPopper","referenceOverflow","popperAltOverflow","computeStyles","eventListeners","flip","disabledApplyStylesModifier","ariaDescribedByModifier","ids","_popper$getAttribute","EMPTY_MODIFIERS","referenceElement","popperElement","prevModifiers","popperInstanceRef","_popperInstanceRef$cu","_popperInstanceRef$cu2","popperState","useSafeState","updateModifier","nextModifiers","getRefTarget","InitialTriggerEvents","mouseup","pointerup","onClickOutside","clickTrigger","preventMouseClickOutsideRef","waitingForTrigger","handleMouseCapture","isLeftClickEvent","handleInitialMouse","handleMouse","_ownerWindow$event","_ownerWindow$parent","currentEvent","removeInitialTriggerListener","removeMouseCaptureListener","removeMouseListener","mobileSafariHackListeners","onRootClose","onClose","useClickOutside","handleKeyUp","removeKeyupListener","toModifierArray","mergeOptionsWithPopperConfig","enableEvents","fixed","containerPadding","_modifiers$eventListe","_modifiers$preventOve","_modifiers$preventOve2","_modifiers$offset","_modifiers$arrow","toModifierMap","Overlay","outerRef","attachArrowRef","usePopper","mountOverlay","useRootClose","rootClose","rootCloseDisabled","rootCloseEvent","PopoverHeader","PopoverBody","POPPER_OFFSET","overlay","outerShow","outerProps","popperRef","firstRenderedState","setFirstRenderedState","customOffset","overlayRef","popoverClass","tooltipClass","useOverlayOffset","actualTransition","handleFirstUpdate","BaseOverlay","overlayProps","popperObj","_popperObj$state","_popperObj$state$modi","aRef","__wrapped","wrapRefs","updatedPlacement","outOfBoundaries","handleMouseOverOut","relatedNative","related","propsShow","defaultShow","propsDelay","triggerNodeRef","hoverStateRef","normalizeDelay","onFocus","onBlur","handleFocus","handleBlur","triggers","triggerProps","onReset","noResults","counties","setCounties","validationMessage","setValidationMessage","loading","setLoading","fetchCounties","kyCountyMap","useMap","countyDesc","coords","hotSpots","newSelection","isStateWide","handleMapClick","countyId","groups","services","otherProviders","OverlayTrigger","selectedCounties","selectedOptions","option","healthPlans","setHealthPlans","setOtherProviders","ipServices","setIpServices","currentSubOptions","setCurrentSubOptions","fetchHealthPlans","fetchServices","fetchOtherProviders","selectedOtherProvider","fetchSubOptions","plan","groupName","groupId","service","serviceUid","serviceDesc","selectServices","provider","providerTypeId","providerTypeDesc","subOption","providerName","setProviderName","onSearch","resetError","errorMessage","setErrorMessage","results","ProviderDesc","u8","u16","Uint16Array","u32","Uint32Array","fleb","fdeb","clim","freb","_a","revfl","_b","revfd","rev","hMap","co","rvb","sv","r_1","flt","fdt","flm","flrm","fdm","fdrm","bits","bits16","shft","slc","subarray","inflt","dat","buf","noBuf","noSt","cbuf","nbuf","final","pos","lm","dm","lbt","dbt","tbts","hLit","hcLen","ldt","clt","clb","clbmsk","clm","lms","dms","mxa","sym","dsym","wbits","wbits16","hTree","t2","i0","i1","i2","maxSym","tr","mbt","lft","cst","i2_1","i2_2","i2_3","cli","cln","cls","clen","wfblk","out","wblk","syms","dlt","mlb","ddt","mdb","_c","lclt","nlc","_d","lcdt","ndc","lcfreq","lct","mlcb","nlcc","flen","ftlen","dtlen","llm","lcts","clct","dst","deo","dflt","lvl","plvl","post","lst","msk_1","bs1_1","bs2_1","hsh","lc_1","hv","imod","pimod","rem","ch_1","dif","maxn","maxd","mmd","lin","din","adler","dopt","level","mem","wbytes","zlh","lv","zlv","zlibSync","unzlibSync","MouseEvent","initMouseEvent","saveAs","HTMLAnchorElement","webkitURL","download","createObjectURL","revokeObjectURL","msSaveOrOpenBlob","autoBom","innerText","safari","FileReader","readAsDataURL","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","feldspar","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslateblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","violetred","wheat","white","whitesmoke","yellow","yellowgreen","example","toRGB","toHex","atob","print","modify","copy","perm","processOwnerPassword","encryptionKey","lsbFirstWord","hexToBytes","publish","getTopics","objectNumber","gState","matrix","colors","boundingBox","xStep","yStep","stream","cloneIndex","orientation","unit","compress","compressPdf","encryption","userPassword","ownerPassword","userPermissions","userUnit","precision","floatPrecision","defaultPathOperation","filters","putOnlyUsedFonts","__private__","PubSub","getPdfVersion","setPdfVersion","a0","a1","a2","a3","a4","a5","a6","a7","a8","a9","a10","b0","b1","b2","b3","b4","b5","b6","b7","b8","b9","b10","c0","c1","c2","c3","c4","c5","c6","c7","c8","c9","c10","letter","legal","ledger","tabloid","getPageFormats","getPageFormat","COMPAT","ADVANCED","saveGraphicsState","Rr","setFontSize","getFontSize","restoreGraphicsState","combineFontStyleAndFontWeight","advancedAPI","compatAPI","isAdvancedAPI","roundToPrecision","toFixed","hpf","f2","f3","scale","setPrecision","getFileId","setFileId","convertDateToPDFDate","getTimezoneOffset","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","convertPDFDateToDate","setCreationDate","getCreationDate","padd2","padd2Hex","setCustomOutputDestination","resetCustomOutputDestination","getArrayBuffer","getStandardFonts","R2L","setR2L","getR2L","setZoomMode","getZoomMode","setPageMode","getPageMode","setLayoutMode","getLayoutMode","setDisplayMode","author","keywords","creator","getDocumentProperty","getDocumentProperties","setDocumentProperties","setProperties","setDocumentProperty","hotfixes","_matrix","atan2","shx","sx","decompose","sy","shy","tx","ty","sqrt","rotate","skew","inversed","applyToPoint","Cr","applyToRectangle","jr","clone","Matrix","matrixMult","unitMatrix","identityMatrix","ShadingPattern","TilingPattern","addShadingPattern","beginTilingPattern","Br","endTilingPattern","newObject","newObjectDeferred","newAdditionalObject","objId","decodeColorString","encodeColorString","ch1","ch2","ch3","ch4","pdfColorType","getFilters","putStream","alreadyAppliedFilters","addLength1","objectId","encryptor","additionalKeyValues","API","processDataByFilters","reverseChain","putPage","contentsObjId","rootDictionaryObjId","resourceDictionaryObjId","mediaBox","bottomLeftX","bottomLeftY","topRightX","topRightY","cropBox","bleedBox","trimBox","artBox","pageContext","pageNumber","page","putPages","font","isAlreadyPutted","postScriptName","encoding","pages","resourcesOid","objectOid","MAX_SAFE_INTEGER","fontName","isStandardFont","metadata","pdfEscape","sourceEncoding","outputEncoding","autoencode","codePages","noBOM","beginPage","pr","fr","Lr","kr","Ir","setPage","getNumberOfPages","disableWarning","noFallback","times","normal","putInfo","putCatalog","putTrailer","oid","putHeader","putXRef","buildDocument","toHexString","getBlob","output","filename","save","pdfObjectUrl","pdfJsUrl","PDFViewerApplication","getPageInfo","getPageInfoByObjId","getCurrentPageInfo","addPage","insertPage","movePage","deletePage","scope","angle","align","lineHeightFactor","lr","scaleFactor","TabLen","baseline","splitTextToSize","mutex","activeFontKey","fonts","activeFontSize","PI","rotationDirection","cos","sin","charSpace","_r","setCharSpace","getCharSpace","horizontalScale","lang","renderingMode","stroke","usedRenderingMode","pageSize","getStringUnitWidth","doKerning","yr","isHex","xr","clip","clipEvenOdd","discardPath","isValidStyle","setDefaultPathOperation","getStyle","er","fill","rr","fillEvenOdd","fillStroke","fillStrokeEvenOdd","ar","nr","ir","or","setGState","sr","moveTo","cr","lineTo","ur","curveTo","lines","op","triangle","roundedRect","SQRT2","ellipse","circle","setFont","getFont","getFontList","addFont","lineWidth","dr","getLineWidth","setLineWidth","setLineDash","setLineDashPattern","gr","getLineHeight","mr","setLineHeightFactor","vr","getLineHeightFactor","getHorizontalCoordinate","getVerticalCoordinate","wr","getHorizontalCoordinateString","Nr","getVerticalCoordinateString","strokeColor","getStrokeColor","getDrawColor","setStrokeColor","setDrawColor","Ar","fillColor","getFillColor","setFillColor","textColor","Sr","getTextColor","setTextColor","Pr","CapJoinStyles","butt","but","miter","rounded","projecting","project","square","bevel","setLineCap","setLineJoin","setLineMiterLimit","setMiterLimit","GState","Fr","equals","addGState","setCurrentTransformationMatrix","Or","pagesContext","qr","outputDestination","Dr","Tr","Er","beginFormObject","endFormObject","Mr","doFormObject","getFormObject","returnPromise","unload","events","getPageWidth","setPageWidth","getPageHeight","setPageHeight","getCoordinateString","collections","newObjectDeferredBegin","setWidth","getHeight","setHeight","encryptionOptions","getEncryptor","getPDFVersion","Point","Rectangle","hasHotfix","dictionary","__acroform__","BBox","setBit","clearBit","getBit","getBitForPdf","setBitForPdf","clearBitForPdf","calculateCoordinates","lowerLeft_X","lowerLeft_Y","upperRight_X","upperRight_Y","appearanceStreamContent","DV","_V","maxFontSize","multiline","textAlign","fields","xForms","acroFormDictionaryRoot","printedOut","isInitialized","annotations","acroformPlugin","FieldNum","_eventID","Fields","hasAnnotation","Kids","Rect","DA","createDefaultAppearanceStream","getKeyValueListForStream","hasAppearanceStream","arrayToPdfArray","_objId","_scope","writable","FT","getOptions","addOption","removeOption","combo","edit","CA","pushButton","radio","caption","appearanceState","_AppearanceType","RadioButton","Circle","createAppearanceStream","optionName","setAppearance","getCA","createOption","Parent","CheckBox","isInteger","YesNormal","YesPushDown","Off","OffPushDown","Bezier_C","Cross","calculateCross","x1","x2","x4","x3","addField","AcroFormChoiceField","AcroFormListBox","AcroFormComboBox","AcroFormEditBox","AcroFormButton","AcroFormPushButton","AcroFormRadioButton","AcroFormCheckBox","AcroFormTextField","AcroFormPasswordField","AcroFormAppearance","AcroForm","ChoiceField","ListBox","ComboBox","EditBox","PushButton","TextField","PasswordField","Appearance","__addimage__","PNG","TIFF","JPEG","JPEG2000","GIF87a","GIF89a","WEBP","BMP","getImageFileTypeByImageData","Uint8ClampedArray","colorSpace","INDEXED","palette","sMask","DEVICE_CMYK","bitsPerComponent","decodeParameters","transparency","predictor","addImage_images","loadFile","toDataURL","alias","color_spaces","DEVICE_RGB","DEVICE_GRAY","CAL_GREY","CAL_RGB","LAB","ICC_BASED","PATTERN","SEPARATION","DEVICE_N","decode","DCT_DECODE","FLATE_DECODE","LZW_DECODE","JPX_DECODE","JBIG2_DECODE","ASCII85_DECODE","ASCII_HEX_DECODE","RUN_LENGTH_DECODE","CCITT_FAX_DECODE","image_compression","NONE","FAST","MEDIUM","SLOW","sHashCode","validateStringAsBase64","extractImageFromDataUrl","mimeType","supportsArrayBuffer","Int8Array","Int16Array","Int32Array","Float32Array","Float64Array","binaryStringToUint8Array","arrayBufferToBinaryString","addImage","imageData","compression","rotation","convertBase64ToBinaryString","getImageProperties","fileType","bounds","contents","_nameMap","finalBounds","magFactor","createAnnotation","textWithLink","getTextWidth","__arabicParser__","isInArabicSubstitutionA","isArabicLetter","isArabicEndLetter","isArabicAlfLetter","arabicLetterHasIsolatedForm","arabicLetterHasFinalForm","arabicLetterHasInitialForm","arabicLetterHasMedialForm","resolveLigatures","isArabicDiacritic","getCorrectForm","processArabic","autoPrint","addJS","getContext","pageWrapXEnabled","pageWrapX","pageWrapYEnabled","pageWrapY","pdf","context2d","_canvas","canvas","__cell__","headerFunction","margins","lastCell","setHeaderFunction","getTextDimensions","cellAddPage","cell","tableHeaderRow","printHeaders","printHeaderRow","autoSize","headerBackgroundColor","headerTextColor","table_font_size","prompt","setTableHeaderRow","rowStart","row","cellStart","table_x","table_y","italic","oblique","family","weight","stretch","monospace","terminal","cursive","fantasy","serif","icon","menu","trimLeft","isStrokeTransparent","strokeStyle","fillStyle","isFillTransparent","textBaseline","lineJoin","lineCap","globalCompositeOperation","globalAlpha","clip_path","currentPoint","miterLimit","lastPoint","lineDashOffset","lineDash","prevPageLastElemOffset","ignoreClearRect","ctx","fontFaces","defaultFontFamily","genericFontFamilies","arial","Arial","verdana","Verdana","helvetica","Helvetica","getLineDash","beginPath","closePath","quadraticCurveTo","y1","bezierCurveTo","y2","arc","isIdentity","pow","radius","startAngle","endAngle","counterclockwise","arcTo","fillRect","strokeRect","clearRect","ctxStack","isCanvasGradient","getColor","fillText","strokeText","measureText","setTransform","drawImage","autoPaging","posY","posX","begin","deltas","createLinearGradient","colorStops","addColorStop","createPattern","createRadialGradient","y3","y4","prevLineDash","overrideMimeType","loadImageFile","html2canvas","DOMPurify","dompurify","convert","setProgress","progress","enableLinks","jsPDF","toContainer","toCanvas","toImg","toPdf","thenList","setPageSize","windowWidth","cloneNode","javascriptEnabled","border","float","onrendered","toContext2d","allowTaint","scrollX","imageTimeout","logging","proxy","removeContainer","foreignObjectRendering","useCORS","windowHeight","image","quality","outputImg","outputPdf","doCallback","setMargin","getPageSize","px","ratio","updateProgress","thenCore","thenExternal","catchExternal","using","export","run","worker","outline","createNamedDestinations","makeRef","genIds_r","renderRoot","renderItems","objStart","count_r","objEnd","makeString","processJPEG","numcomponents","imgData","readUInt32","colorType","compressionMethod","filterMethod","interlaceMethod","numFrames","numPlays","frames","xOffset","yOffset","readUInt16","disposeOp","blendOp","indexed","grayscale","rgb","hasAlphaChannel","pixelBitlength","decodePixels","decodePalette","copyToImageData","_decodedPalette","putImageData","Image","decodeFrames","createImageData","renderFrame","animate","stopAnimation","_png","has_local_palette","palette_offset","palette_size","data_offset","data_length","transparent_index","interlaced","disposal","loopCount","frameInfo","decodeAndBlitFrameBGRA","decodeAndBlitFrameRGBA","datav","is_with_alpha","bottom_up","flag","parseHeader","parseBGR","Ur","zr","Hr","Ed","Cd","RGBA","Sd","memory","Gr","Wr","Vr","Zr","$r","Yr","Qr","Xr","VP8LMapColor32b","Jr","VP8LMapColor8b","Kr","Kd","Ud","Gd","ga","put","Predictor0","Predictor1","Predictor2","Predictor3","Predictor4","Predictor5","Predictor6","Predictor7","Predictor8","Predictor9","Predictor10","Predictor11","Predictor12","Predictor13","PredictorAdd0","PredictorAdd1","PredictorAdd2","ColorIndexInverseTransform","MapARGB","VP8LColorIndexInverseTransformAlpha","MapAlpha","VP8LPredictorsAdd","VP8LPredictors","VP8LPredictorsAdd_C","VP8LPredictors_C","UpsampleRgbLinePair","UpsampleBgrLinePair","UpsampleRgbaLinePair","UpsampleBgraLinePair","UpsampleArgbLinePair","UpsampleRgba4444LinePair","UpsampleRgb565LinePair","WebPDecodeRGBA","src_off","src_size","feature_flags","canvas_width","canvas_height","bgcolor","loop_count","offset_x","offset_y","blend","rgbaoutput","dataurl","loop_counter","rgba","imgwidth","imgheight","processPNG","processGIF89A","processGIF87A","fileSize","getUint32","reserved","headerSize","getInt32","planes","getUint16","bitPP","rawSize","importantColors","getUint8","quad","bit1","bit4","bit8","bit15","bit16","bit24","bit32","getData","processBMP","processWEBP","processRGBA","alpha","setLanguage","languageSettings","isSubscribed","sq","hy","ast","az","eu","my","cv","fo","fy","fur","gu","hu","iu","km","ky","tlh","ko","mo","nv","om","qu","rm","ru","sz","sw","tig","hsb","vo","cy","zu","languageCode","getCharWidthsArray","widths","Unicode","fof","kerning","widthOfString","widthOfGlyph","characterToGlyph","textIndent","lineIndent","__fontmetrics__","uncompress","WinAnsiEncoding","Courier","ZapfDingbats","existsFileInVFS","getFileFromVFS","TTFFont","glyIdsUsed","canvg","addSvgAsImage","ignoreMouse","ignoreAnimation","ignoreDimensions","fromString","putTotalPages","pdfEscape16","viewerPreferences","HideToolbar","explicitSet","valueSet","pdfVersion","HideMenubar","HideWindowUI","FitWindow","CenterWindow","DisplayDocTitle","NonFullScreenPageMode","Direction","ViewArea","ViewClip","PrintArea","PrintClip","PrintScaling","Duplex","PickTrayByPDFSize","PrintPageRange","NumCopies","viewerpreferences","configuration","__metadata__","namespaceuri","metadata_object_number","addMetadata","toUnicode","subset","PDFObject","bbox","stemV","italicAngle","ascender","decender","capHeight","rawData","hmtx","unitsPerEm","cmap","unicode","codeMap","vFS","addFileToVFS","__bidiEngine__","EN","AN","hiLevel","doBidiReorder","isInputVisual","isOutputVisual","isInputRtl","isOutputRtl","isSymmetricSwapping","readString","registerTTF","directory","hhea","maxp","os2","loca","glyf","exists","lineGap","xMin","yMin","xMax","yMax","italic_angle","xHeight","familyClass","isSerif","isScript","isFixedPitch","forGlyph","advance","readByte","writeByte","writeUInt32","readInt32","writeInt32","writeUInt16","readInt16","writeInt16","writeString","readShort","writeShort","readLongLong","writeLongLong","readInt","writeInt","scalarType","tableCount","searchRange","entrySelector","rangeShift","tables","checksum","__super__","file","raw","revision","checkSumAdjustment","magicNumber","created","modified","macStyle","lowestRecPPEM","fontDirectionHint","indexToLocFormat","glyphDataFormat","platformID","encodingID","language","isUnicode","old","new","charMap","subtable","maxGlyphID","advanceWidthMax","minLeftSideBearing","minRightSideBearing","xMaxExtent","caretSlopeRise","caretSlopeRun","caretOffset","metricDataFormat","numberOfMetrics","averageCharWidth","weightClass","widthClass","ySubscriptXSize","ySubscriptYSize","ySubscriptXOffset","ySubscriptYOffset","ySuperscriptXSize","ySuperscriptYSize","ySuperscriptXOffset","ySuperscriptYOffset","yStrikeoutSize","yStrikeoutPosition","panose","charRange","vendorID","selection","firstCharIndex","lastCharIndex","ascent","descent","winAscent","winDescent","codePageRange","defaultChar","breakChar","maxContext","underlinePosition","underlineThickness","minMemType42","maxMemType42","minMemType1","maxMemType1","glyphNameIndex","numGlyphs","languageID","nameID","strings","copyright","fontFamily","fontSubfamily","uniqueSubfamily","postscriptName","trademark","manufacturer","designer","vendorUrl","designerUrl","license","licenseUrl","preferredFamily","preferredSubfamily","compatibleFull","sampleText","maxPoints","maxContours","maxCompositePoints","maxComponentContours","maxZones","maxTwilightPoints","maxStorage","maxFunctionDefs","maxInstructionDefs","maxStackElements","maxSizeOfInstructions","maxComponentElements","maxComponentDepth","metrics","lsb","leftSideBearings","glyphFor","lengthOf","numberOfContours","compound","glyphIDs","glyphOffsets","unicodes","generateCmap","glyphsFor","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","generatePDF","pageWidth","pageHeight","midPoint","physicalAddress","addressType","mailingAddress","physicalAddressLines","address1","address2","address3","address4","mailingAddressLines","contactInfoLines","altPhone","tollFreePhone","altFax","email2","web","contact1","contact2","contact3","contact4","servicesList","providerServices","totalLines","isLargeEntry","sectionHeight","contentY","providerDesc","servicesY","profile","renderProfileDetails","profileType","certificationStartDate","toLocaleDateString","certificationLength","certificationLengthDesc","acceptingReferrals","duiProfileDetails","providerValue","treatmentOptions","profileList","pcode","paymentOptions","colSpan","notes","missionAndValues","programDescription","scrollbarSize","recalc","scrollDiv","ModalBody","ModalDialog","contentClassName","centered","fullscreen","scrollable","dialogClass","fullScreenClass","ModalFooter","ModalHeader","DivStyledAsH4","ModalTitle","dialogClassName","dialogAs","Dialog","dataBsTheme","ariaDescribedby","modalStyle","setStyle","animateStaticModal","setAnimateStaticModal","waitingForMouseUpRef","ignoreBackdropClickRef","removeStaticModalAnimationRef","setModalRef","getModalManager","updateDialogStyle","containerIsOverflowing","modalIsOverflowing","getScrollbarSize","handleWindowResize","handleDialogMouseDown","handleMouseUp","handleStaticModalAnimation","handleStaticBackdropClick","baseModalStyle","onMouseUp","onMouseDown","TRANSITION_DURATION","BACKDROP_TRANSITION_DURATION","setResults","isSearchResults","setIsSearchResults","hasSearched","setHasSearched","resetSearchError","setResetSearchError","showModal","setShowModal","selectedProviderProfile","setSelectedProviderProfile","handleCloseModal","totalPages","paginationItems","currentResults","ProviderOptions","ProviderMap","searchResults","handleReset","ProviderSearch","ProviderContact","GeneratePDF","hasProfile","fetch","providerUid","profileData","json","handleProviderProfileClick","ProviderProfile","paragraph","paragraphs","orderedList","unorderedList","items","bodyHelperTypes","UnorderedList","getClassName","headings","setHeadings","activeId","setActiveId","elem","_observer$current","useHeadsObserver","xmlns","viewBox","heading","borderBottom","TableOfContent","Paragraph","linkTypeID","contentElements","SectionTitle","Paragraphs","OrderedList","Picture","LinksTwo","bodyContent","BodyContent","LayoutOne","MasterPage","pageName","ContinuumOfCare","Links","marginTop","appleHeart","paddingTop","mentalWell","contact988","signs","reportName","reportDesc","DataGuideList","PopWords","TFSP","BalloonThoughts","ACE","PEC","Resilience","contentCounties","setContentCounties","setSelected","WIDScrollDown","KYWIDStrategicFramework","typeID","documentsDocs","setDocumentDocs","formsData","generalFilter","typeId","FormFilter","DocumentsDropdown","alignContent","BranchInfo","CountyList","allClientsAllPrograms","setAllClientsAllPrograms","adultClientsAndAdultClientsSMI","setAdultClientsAndAdultClientsSMI","childClientsAndChildClientsSED","setChildClientsAndChildClientsSED","crisisStabilizationUnitReport","setCrisisStabilizationUnitReport","deafAndHardHearing","setDeafAndHardHearing","mentalHealth","setMentalHealth","intellectualDisabilities","setIntellectualDisabilities","substanceAbuse","setSubstanceAbuse","allClientsAllProgramsFiltered","adultClientsAndAdultClientsSMIFiltered","childClientsAndChildClientsSEDFiltered","crisisStabilizationUnitReportFiltered","deafAndHardHearingFiltered","mentalHealthFiltered","intellectualDisabilitiesFiltered","substanceAbuseFiltered","reportTypeId","webPage03","FilterDocuments","selectedListOne","setSelectedListOne","handleRadioChange","nameRFormatted","extension","reportDescription","DataReportList","CenterList","general","setGeneral","dDID","setDDID","bH","setBH","bHObjective","setBHObjective","sA","setSA","sAObjective","setSAObjective","dDIDFilter","bHFilter","sAFilter","sAObjectiveFilter","bHObjectiveFilter","categoryId","division","documents","BuildHref","PBFormsInfo","DPRForms","SharedRisk","overflowWrap","Kentucky","SynarImage","allFacilities","setAllFacilities","mHSPCH","setMHSPCH","reportData","allFacilitiesFilter","mentalHealthSpecializedPersonalCareHomesFilter","reportDoc","reportDataNames","selectedListTwo","setSelectedListTwo","nameFFormatted","select","FacilitiesDataReports","_service$service","descriptionTwo","CSBServiceDropdown","LinkNoNewPage","DropdownList","_SCLServiceData$sCLSe","SCLServiceData","para","level1","level2","level3","SCLServiceList","kyaca","allForms","setAllForms","formName","formExtention","PBForms","DPRFormsLibrary","_data$ddidCountyListC","people","contact","DDIDCountyList","App","Calendar","ProviderDirectory","Crisisnos","Page","pASSRR_Content","pASSRRForms_Content","nursingFacilityPASRRRecources_Content","crisis_Content","hOTLINES_Content","traumaAndResilience_Content","aFM_Content","olmstead_Content","wID_Content","traumaAndTerrorismContent","guidePrinciplesContent","hIPPAALawContent","kYCCL_Content","autism_Content","cMHCHome_Content","dataReports_Content","centers_Content","cRD_Content","planAndBudget_Content","qMOTSurveys_Content","qMOTDocs_Content","pI_Content","dPR_Content","dataInfo_Content","dataGuide_Content","dataCommitteeContent","pBFormsLibrary_Content","dPRFormsLibrary_Content","sUDHome_Content","eBPIRecovery_Content","sMVF_Content","headedHome_Content","aSAMPPC_Content","faithBased_Content","kYMomsMATR_Content","oxfordHouse_Content","kRHN_Content","women_Content","bHPP_Content","sARPC_Content","wDYE_Content","sSPW_Content","strength_Content","tGD_Content","pIP_Content","dTP_Content","kSAP_Content","synar_Content","zero_Content","kIPContent","sAKPNContent","pESContent","yEGContent","kRSPMGContent","continuumContent","eBPIInterviewing","eBPINiatx","ResourcesContent","EvidenceBasedInitiativesContent","TrustContent","immersionContent","BestPracticeContent","eBPIIntegrated_Content","mHHome_Content","cSA_Content","pSS_Content","tCM_Content","eBPCYF_Content","adultMH_Content","act_Content","employment_Content","housing_Content","tCMAdult_Content","housingResources_Content","adultMHAging_Content","childrenContent","adolescentContent","eCMH_Content","eCMHLinks_Content","hFW_Content","kYImpact_Content","rIAC_Content","cCC_Content","sIAC_Content","sIACSummaries_Content","systemOfCare_Content","tCMChild_Content","youthAdult_Content","kEDC_Content","pPP_Content","mHPromotion_Content","sP_Content","kCCRT_Content","dHHS_Content","adultSA_Content","coocurring_Content","adultMHCJI_Content","CBHTContent","BHPACContent","BHPACAboutContent","BHPACSummariesContent","BHPACBGContent","sOCA_Content","impactVideo_Content","actPrinciplesContent","aOTContent","dDIDHome_Content","cSB_Content","sCL_Content","clinical_Content","sCLTraining_Content","sCLNewProvider_Content","hRCBIC_Content","cMTraining_Content","commission_Content","commissionDocuments_Content","sCLFormsCertification_Content","sCLFormsCM_Content","sCLFormsEmployment_Content","sCLFormsGeneral_Content","sCLFormsIncident_Content","sCLFormsRisk_Content","sCLForms_Content","sCLQASubmit_Content","sCLRegulations_Content","sCLServices_Content","sGFForms_Content","iM_Content","recordingsContent","accessAndReferral_Content","dPIHome_Content","dUI_Content","opiate_Content","cAP_Content","tRIS_Content","dUITraining_Content","dUIForms_Content","dUIFAQ_Content","facilitesHome_Content","dataReportsFacility_Content","pDRates_Content","procedures_Content","onPerfEntry","getCLS","getFID","getFCP","getLCP","getTTFB","ScrollToTopForNewPage","reportWebVitals"],"sourceRoot":""}