%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/dordingu/public_html/hardkjarni/wp-content/plugins/gutenberg/build/data/
Upload File :
Create Path :
Current File : /home/dordingu/public_html/hardkjarni/wp-content/plugins/gutenberg/build/data/index.min.js.map

{"version":3,"file":"./build/data/index.min.js","mappings":"mCAEA,SAASA,EAAQC,GAWf,OATED,EADoB,mBAAXE,QAAoD,iBAApBA,OAAOC,SACtC,SAAUF,GAClB,cAAcA,CAChB,EAEU,SAAUA,GAClB,OAAOA,GAAyB,mBAAXC,QAAyBD,EAAIG,cAAgBF,QAAUD,IAAQC,OAAOG,UAAY,gBAAkBJ,CAC3H,EAGKD,EAAQC,EACjB,CAQA,SAASK,EAAkBC,EAAQC,GACjC,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAME,OAAQD,IAAK,CACrC,IAAIE,EAAaH,EAAMC,GACvBE,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDC,OAAOC,eAAeT,EAAQI,EAAWM,IAAKN,EAChD,CACF,CAmBA,SAASO,EAAaC,EAAUF,GAC9B,IAAIG,EAAOD,EAASC,KAChBC,EAAgBF,EAASE,cACzBC,EAAiBH,EAASG,eAG9B,GAAIF,EAAKG,IAAIN,GACX,OAAOG,EAAKI,IAAIP,GAQlB,IAJA,IAAIQ,EAAaV,OAAOW,KAAKT,GAAKU,OAE9BC,EAAMC,MAAMC,QAAQb,GAAOI,EAAgBC,EAEtCb,EAAI,EAAGA,EAAIgB,EAAWf,OAAQD,IAAK,CAC1C,IAAIsB,EAAWN,EAAWhB,GAG1B,QAAYuB,KAFZJ,EAAMA,EAAIJ,IAAIO,IAGZ,OAGF,IAAIE,EAAgBhB,EAAIc,GAGxB,QAAYC,KAFZJ,EAAMA,EAAIJ,IAAIS,IAGZ,MAEJ,CAEA,IAAIC,EAAYN,EAAIJ,IAAI,cAExB,OAAKU,GAMLd,EAAKe,OAAOD,EAAU,IAEtBA,EAAU,GAAKjB,EACfW,EAAIQ,IAAI,aAAcF,GAEtBd,EAAKgB,IAAInB,EAAKiB,GAEPA,QAbP,CAcF,CAOA,IAAIG,EAEJ,WAME,SAASA,EAAiBC,GAKxB,GApGJ,SAAyBnB,EAAUoB,GACjC,KAAMpB,aAAoBoB,GACxB,MAAM,IAAIC,UAAU,oCAExB,CA4FIC,CAAgBC,KAAML,GAEtBK,KAAKC,QAEDL,aAAoBD,EAAkB,CAExC,IAAIO,EAAgB,GACpBN,EAASO,SAAQ,SAAUC,EAAO7B,GAChC2B,EAAcG,KAAK,CAAC9B,EAAK6B,GAC3B,IACAR,EAAWM,CACb,CAEA,GAAgB,MAAZN,EACF,IAAK,IAAI7B,EAAI,EAAGA,EAAI6B,EAAS5B,OAAQD,IACnCiC,KAAKN,IAAIE,EAAS7B,GAAG,GAAI6B,EAAS7B,GAAG,GAG3C,CAlGF,IAAsB8B,EAAaS,EA+QjC,OA/QoBT,EA0GPF,EA1GoBW,EA0GF,CAAC,CAC9B/B,IAAK,MAUL6B,MAAO,SAAa7B,EAAK6B,GAEvB,GAAY,OAAR7B,GAAiC,WAAjBjB,EAAQiB,GAG1B,OAFAyB,KAAKtB,KAAKgB,IAAInB,EAAK6B,GAEZJ,KAST,IALA,IAAIjB,EAAaV,OAAOW,KAAKT,GAAKU,OAC9BO,EAAY,CAACjB,EAAK6B,GAElBlB,EAAMC,MAAMC,QAAQb,GAAOyB,KAAKrB,cAAgBqB,KAAKpB,eAEhDb,EAAI,EAAGA,EAAIgB,EAAWf,OAAQD,IAAK,CAC1C,IAAIsB,EAAWN,EAAWhB,GAErBmB,EAAIL,IAAIQ,IACXH,EAAIQ,IAAIL,EAAU,IAAIM,GAGxBT,EAAMA,EAAIJ,IAAIO,GACd,IAAIE,EAAgBhB,EAAIc,GAEnBH,EAAIL,IAAIU,IACXL,EAAIQ,IAAIH,EAAe,IAAII,GAG7BT,EAAMA,EAAIJ,IAAIS,EAChB,CAMA,IAAIgB,EAAoBrB,EAAIJ,IAAI,cAUhC,OARIyB,GACFP,KAAKtB,KAAKe,OAAOc,EAAkB,IAGrCrB,EAAIQ,IAAI,aAAcF,GAEtBQ,KAAKtB,KAAKgB,IAAInB,EAAKiB,GAEZQ,IACT,GAUC,CACDzB,IAAK,MACL6B,MAAO,SAAa7B,GAElB,GAAY,OAARA,GAAiC,WAAjBjB,EAAQiB,GAC1B,OAAOyB,KAAKtB,KAAKI,IAAIP,GAGvB,IAAIiB,EAAYhB,EAAawB,KAAMzB,GAEnC,OAAIiB,EACKA,EAAU,QADnB,CAGF,GAUC,CACDjB,IAAK,MACL6B,MAAO,SAAa7B,GAClB,OAAY,OAARA,GAAiC,WAAjBjB,EAAQiB,GACnByB,KAAKtB,KAAKG,IAAIN,QAKYe,IAA5Bd,EAAawB,KAAMzB,EAC5B,GAUC,CACDA,IAAK,SACL6B,MAAO,SAAiB7B,GACtB,QAAKyB,KAAKnB,IAAIN,KAMdyB,KAAKN,IAAInB,OAAKe,IACP,EACT,GAUC,CACDf,IAAK,UACL6B,MAAO,SAAiBI,GACtB,IAAIC,EAAQT,KAERU,EAAUC,UAAU3C,OAAS,QAAsBsB,IAAjBqB,UAAU,GAAmBA,UAAU,GAAKX,KAElFA,KAAKtB,KAAKyB,SAAQ,SAAUC,EAAO7B,GAErB,OAARA,GAAiC,WAAjBjB,EAAQiB,KAC1B6B,EAAQA,EAAM,IAGhBI,EAASI,KAAKF,EAASN,EAAO7B,EAAKkC,EACrC,GACF,GAKC,CACDlC,IAAK,QACL6B,MAAO,WACLJ,KAAKtB,KAAO,IAAImC,IAChBb,KAAKrB,cAAgB,IAAIkC,IACzBb,KAAKpB,eAAiB,IAAIiC,GAC5B,GACC,CACDtC,IAAK,OACLO,IAAK,WACH,OAAOkB,KAAKtB,KAAKoC,IACnB,IA3QER,GAAY1C,EAAkBiC,EAAYlC,UAAW2C,GA8QlDX,CACT,CAvMA,GAyMAoB,EAAOC,QAAUrB,C,WC/PjBoB,EAAOC,QAnDP,SAA0BC,GACzB,IACCC,EADGlC,EAAOX,OAAOW,KAAMiC,GA0BxB,OAvBAC,EAAe,WACd,IAAIC,EAAIpD,EAAGQ,EAGX,IADA4C,EAAK,WACCpD,EAAI,EAAGA,EAAIiB,EAAKhB,OAAQD,IAY7BoD,IAFA5C,EAAM6C,KAAKC,UAAWrC,EAAMjB,KAEhB,MAAQQ,EAAM,OAASA,EAAM,QAI1C,OAFA4C,GAAM,IAEC,IAAIG,SAAU,QAASH,EAC7B,CArBa,GAuBR,SAA0BI,EAAOC,GACvC,IAAIC,EAAW1D,EAAGQ,EAGlB,QAAee,IAAViC,EACJ,OAAOL,EAAcD,EAAU,CAAC,EAAGO,GAOpC,IAJAC,EAAYP,EAAcD,EAAUM,EAAOC,GAG3CzD,EAAIiB,EAAKhB,OACDD,KAEP,GAAKwD,EADLhD,EAAMS,EAAMjB,MACU0D,EAAWlD,GAEhC,OAAOkD,EAIT,OAAOF,CACR,CACD,C,GChDIG,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBtC,IAAjBuC,EACH,OAAOA,EAAab,QAGrB,IAAID,EAASW,EAAyBE,GAAY,CAGjDZ,QAAS,CAAC,GAOX,OAHAc,EAAoBF,GAAUb,EAAQA,EAAOC,QAASW,GAG/CZ,EAAOC,OACf,CCrBAW,EAAoBI,EAAKhB,IACxB,IAAIiB,EAASjB,GAAUA,EAAOkB,WAC7B,IAAOlB,EAAiB,QACxB,IAAM,EAEP,OADAY,EAAoBO,EAAEF,EAAQ,CAAEG,EAAGH,IAC5BA,CAAM,ECLdL,EAAoBO,EAAI,CAAClB,EAASoB,KACjC,IAAI,IAAI7D,KAAO6D,EACXT,EAAoBU,EAAED,EAAY7D,KAASoD,EAAoBU,EAAErB,EAASzC,IAC5EF,OAAOC,eAAe0C,EAASzC,EAAK,CAAEL,YAAY,EAAMY,IAAKsD,EAAW7D,IAE1E,ECNDoD,EAAoBU,EAAI,CAAC9E,EAAK+E,IAAUjE,OAAOV,UAAU4E,eAAe3B,KAAKrD,EAAK+E,GCClFX,EAAoBa,EAAKxB,IACH,oBAAXxD,QAA0BA,OAAOiF,aAC1CpE,OAAOC,eAAe0C,EAASxD,OAAOiF,YAAa,CAAErC,MAAO,WAE7D/B,OAAOC,eAAe0C,EAAS,aAAc,CAAEZ,OAAO,GAAO,E,0mCCL9D,MAAM,EAA+BsC,OAAe,OCA9C,EAA+BA,OAAW,GAAc,W,aCA/C,SAASC,EAAgBpF,EAAKgB,EAAK6B,GAYhD,OAXI7B,KAAOhB,EACTc,OAAOC,eAAef,EAAKgB,EAAK,CAC9B6B,MAAOA,EACPlC,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZb,EAAIgB,GAAO6B,EAGN7C,CACT,CCXA,SAASqF,EAAQC,EAAQC,GACvB,IAAI9D,EAAOX,OAAOW,KAAK6D,GAEvB,GAAIxE,OAAO0E,sBAAuB,CAChC,IAAIC,EAAU3E,OAAO0E,sBAAsBF,GAEvCC,IACFE,EAAUA,EAAQC,QAAO,SAAUC,GACjC,OAAO7E,OAAO8E,yBAAyBN,EAAQK,GAAKhF,UACtD,KAGFc,EAAKqB,KAAK+C,MAAMpE,EAAMgE,EACxB,CAEA,OAAOhE,CACT,CAEe,SAASqE,EAAexF,GACrC,IAAK,IAAIE,EAAI,EAAGA,EAAI4C,UAAU3C,OAAQD,IAAK,CACzC,IAAIuF,EAAyB,MAAhB3C,UAAU5C,GAAa4C,UAAU5C,GAAK,CAAC,EAEhDA,EAAI,EACN6E,EAAQvE,OAAOiF,IAAS,GAAMnD,SAAQ,SAAU5B,GAC9C,EAAeV,EAAQU,EAAK+E,EAAO/E,GACrC,IACSF,OAAOkF,0BAChBlF,OAAOmF,iBAAiB3F,EAAQQ,OAAOkF,0BAA0BD,IAEjEV,EAAQvE,OAAOiF,IAASnD,SAAQ,SAAU5B,GACxCF,OAAOC,eAAeT,EAAQU,EAAKF,OAAO8E,yBAAyBG,EAAQ/E,GAC7E,GAEJ,CAEA,OAAOV,CACT,CC7BA,SAAS4F,EAAuBC,GAC9B,MAAO,yBAA2BA,EAAO,4CAA8CA,EAAhF,iFACT,CAGA,IAAIC,EACuB,mBAAXnG,QAAyBA,OAAOoG,YAAc,eAS1DC,EAAe,WACjB,OAAOC,KAAKC,SAASC,SAAS,IAAIC,UAAU,GAAGC,MAAM,IAAIC,KAAK,IAChE,EAEIC,EAAc,CAChBC,KAAM,eAAiBR,IACvBS,QAAS,kBAAoBT,IAC7BU,qBAAsB,WACpB,MAAO,+BAAiCV,GAC1C,GAOF,SAASW,EAAcjH,GACrB,GAAmB,iBAARA,GAA4B,OAARA,EAAc,OAAO,EAGpD,IAFA,IAAIkH,EAAQlH,EAE4B,OAAjCc,OAAOqG,eAAeD,IAC3BA,EAAQpG,OAAOqG,eAAeD,GAGhC,OAAOpG,OAAOqG,eAAenH,KAASkH,CACxC,CAuFA,SAASE,EAAYC,EAASC,EAAgBC,GAC5C,IAAIC,EAEJ,GAA8B,mBAAnBF,GAAqD,mBAAbC,GAA+C,mBAAbA,GAAmD,mBAAjBnE,UAAU,GAC/H,MAAM,IAAIqE,MAA8CvB,EAAuB,IAQjF,GAL8B,mBAAnBoB,QAAqD,IAAbC,IACjDA,EAAWD,EACXA,OAAiBvF,QAGK,IAAbwF,EAA0B,CACnC,GAAwB,mBAAbA,EACT,MAAM,IAAIE,MAA8CvB,EAAuB,IAGjF,OAAOqB,EAASH,EAATG,CAAsBF,EAASC,EACxC,CAEA,GAAuB,mBAAZD,EACT,MAAM,IAAII,MAA8CvB,EAAuB,IAGjF,IAAIwB,EAAiBL,EACjBM,EAAeL,EACfM,EAAmB,GACnBC,EAAgBD,EAChBE,GAAgB,EASpB,SAASC,IACHF,IAAkBD,IACpBC,EAAgBD,EAAiBI,QAErC,CAQA,SAASC,IACP,GAAIH,EACF,MAAM,IAAIL,MAA8CvB,EAAuB,IAGjF,OAAOyB,CACT,CA0BA,SAASO,EAAUC,GACjB,GAAwB,mBAAbA,EACT,MAAM,IAAIV,MAA8CvB,EAAuB,IAGjF,GAAI4B,EACF,MAAM,IAAIL,MAA8CvB,EAAuB,IAGjF,IAAIkC,GAAe,EAGnB,OAFAL,IACAF,EAAc/E,KAAKqF,GACZ,WACL,GAAKC,EAAL,CAIA,GAAIN,EACF,MAAM,IAAIL,MAA8CvB,EAAuB,IAGjFkC,GAAe,EACfL,IACA,IAAIM,EAAQR,EAAcS,QAAQH,GAClCN,EAAcU,OAAOF,EAAO,GAC5BT,EAAmB,IAVnB,CAWF,CACF,CA4BA,SAASY,EAASvE,GAChB,IAAKgD,EAAchD,GACjB,MAAM,IAAIwD,MAA8CvB,EAAuB,IAGjF,QAA2B,IAAhBjC,EAAOwE,KAChB,MAAM,IAAIhB,MAA8CvB,EAAuB,IAGjF,GAAI4B,EACF,MAAM,IAAIL,MAA8CvB,EAAuB,IAGjF,IACE4B,GAAgB,EAChBH,EAAeD,EAAeC,EAAc1D,EAG9C,CAFE,QACA6D,GAAgB,CAClB,CAIA,IAFA,IAAIY,EAAYd,EAAmBC,EAE1BrH,EAAI,EAAGA,EAAIkI,EAAUjI,OAAQD,KAEpC2H,EADeO,EAAUlI,MAI3B,OAAOyD,CACT,CAaA,SAAS0E,EAAeC,GACtB,GAA2B,mBAAhBA,EACT,MAAM,IAAInB,MAA8CvB,EAAuB,KAGjFwB,EAAiBkB,EAKjBJ,EAAS,CACPC,KAAM5B,EAAYE,SAEtB,CASA,SAASV,IACP,IAAIwC,EAEAC,EAAiBZ,EACrB,OAAOW,EAAO,CASZX,UAAW,SAAmBa,GAC5B,GAAwB,iBAAbA,GAAsC,OAAbA,EAClC,MAAM,IAAItB,MAA8CvB,EAAuB,KAGjF,SAAS8C,IACHD,EAASE,MACXF,EAASE,KAAKhB,IAElB,CAIA,OAFAe,IAEO,CACLE,YAFgBJ,EAAeE,GAInC,IACM5C,GAAgB,WACtB,OAAO3D,IACT,EAAGoG,CACL,CAQA,OAHAL,EAAS,CACPC,KAAM5B,EAAYC,QAEbU,EAAQ,CACbgB,SAAUA,EACVN,UAAWA,EACXD,SAAUA,EACVU,eAAgBA,IACTvC,GAAgBC,EAAYmB,CACvC,CA6NA,SAAS2B,IACP,IAAK,IAAIC,EAAOhG,UAAU3C,OAAQ4I,EAAQ,IAAIzH,MAAMwH,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAChFD,EAAMC,GAAQlG,UAAUkG,GAG1B,OAAqB,IAAjBD,EAAM5I,OACD,SAAU8I,GACf,OAAOA,CACT,EAGmB,IAAjBF,EAAM5I,OACD4I,EAAM,GAGRA,EAAMG,QAAO,SAAU5E,EAAG6E,GAC/B,OAAO,WACL,OAAO7E,EAAE6E,EAAE5D,WAAM,EAAQzC,WAC3B,CACF,GACF,CAmBA,SAASsG,IACP,IAAK,IAAIN,EAAOhG,UAAU3C,OAAQkJ,EAAc,IAAI/H,MAAMwH,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IACtFK,EAAYL,GAAQlG,UAAUkG,GAGhC,OAAO,SAAUlC,GACf,OAAO,WACL,IAAIwC,EAAQxC,EAAYvB,WAAM,EAAQzC,WAElCyG,EAAY,WACd,MAAM,IAAIpC,MAA8CvB,EAAuB,IACjF,EAEI4D,EAAgB,CAClB7B,SAAU2B,EAAM3B,SAChBO,SAAU,WACR,OAAOqB,EAAUhE,WAAM,EAAQzC,UACjC,GAEE2G,EAAQJ,EAAYhI,KAAI,SAAUqI,GACpC,OAAOA,EAAWF,EACpB,IAEA,OADAD,EAAYV,EAAQtD,WAAM,EAAQkE,EAAtBZ,CAA6BS,EAAMpB,UACxC,EAAc,EAAc,CAAC,EAAGoB,GAAQ,CAAC,EAAG,CACjDpB,SAAUqB,GAEd,CACF,CACF,C,uBC9pBA,MAAM,EAA+B1E,OAAW,GAAgB,a,aCAhE,MAAM,EAA+BA,OAAW,GAAW,QCwCpD,SAAS8E,EAAwBC,GAIvC,MAAMC,EAAW,kBAChBD,EAAkBC,EAASC,SAASC,OAApCH,IAAiD,UADjC,EAYjB,OAFAC,EAASG,oBAAqB,EAEvBH,CACP,CAsBM,SAASI,EAAuBC,GAGtC,OAFAA,EAAgBC,mBAAoB,EAE7BD,CACP,CC5ED,MAAME,EAAS,gBACTC,EAAiB,wBACjBC,EAAW,kBAEjB,SAASC,EAAUvF,GAClB,OAAkB,OAAXA,GAAqC,iBAAXA,CACjC,CAsGM,MAAMwF,EAAW,CAAET,OA7E1B,SAAiBU,EAAuBC,GAAwB,2BAAPC,EAAO,iCAAPA,EAAO,kBAC/D,MAAO,CACNxC,KAAMiC,EACNQ,SAAUL,EAAUE,GACjBA,EAAsBI,KACtBJ,EACHC,eACAC,OAED,EAoEiCG,cA1ClC,SAAwBL,EAAuBC,GAAwB,2BAAPC,EAAO,iCAAPA,EAAO,kBACtE,MAAO,CACNxC,KAAMkC,EACNO,SAAUL,EAAUE,GACjBA,EAAsBI,KACtBJ,EACHC,eACAC,OAED,EAiCgDzC,SAXjD,SAAmBuC,EAAuBM,GAAsB,2BAAPJ,EAAO,iCAAPA,EAAO,kBAC/D,MAAO,CACNxC,KAAMmC,EACNM,SAAUL,EAAUE,GACjBA,EAAsBI,KACtBJ,EACHM,aACAJ,OAED,GAIYK,EAAkB,CAC9B,CAAEZ,GAAUH,GACTH,GACD,QAAE,SAAEc,EAAF,aAAYF,EAAZ,KAA0BC,GAA5B,SACCb,EAASC,OAAQa,GAAYF,MAAmBC,EADjD,IAGF,CAAEN,GAAkBJ,GACjBH,GACD,IAAwC,IAAtC,SAAEc,EAAF,aAAYF,EAAZ,KAA0BC,GAAY,EACvC,MAAMM,EAASnB,EAASC,OAAQa,GAAYF,GAC1CQ,YACC,gBACA,SACH,OAAOpB,EAAUmB,GAAUL,GAAYF,MACnCC,EADJ,IAKH,CAAEL,GAAYL,GACXH,GACD,QAAE,SAAEc,EAAF,WAAYG,EAAZ,KAAwBJ,GAA1B,SACCb,EAAS5B,SAAU0C,GAAYG,MAAiBJ,EADjD,KCnHH,EAZ0B,IAAQhC,GAAYhF,IAC7C,QCXiCjE,EDWjBiE,ICViB,iBAARjE,GAAmC,mBAARA,GAA2C,mBAAbA,EAAIyL,KDkB/ExC,EAAMhF,GAPLA,EAAOwH,MAAQC,IACrB,GAAKA,EACJ,OAAOzC,EAAMyC,EACb,ICfW,IAAmB1L,CDmBjC,EEsCD,EAzDsB,CACrBmL,KAAM,YACNQ,YAAavB,GACZ,MAAMwB,EACHZ,GACF,SAAEhK,GAAkB,2BAAViK,EAAU,iCAAVA,EAAU,kBACnB,OAAOb,EAASC,OAAQrJ,GAAOgK,MAAmBC,EAClD,EAEIY,EACHR,GACF,SAAErK,GAAkB,2BAAViK,EAAU,iCAAVA,EAAU,kBACnB,OAAOb,EAAS5B,SAAUxH,GAAOqK,MAAiBJ,EAClD,EAEF,MAAO,CACNa,aAAY,IACJhL,OAAOiL,YACb,CACC,iBACA,uBACA,wBACA,cACA,sBACCpK,KAAOqJ,GAAkB,CAC1BA,EACAY,EAAqBZ,OAKxBgB,WAAU,IACFlL,OAAOiL,YACb,CACC,kBACA,mBACA,uBACA,+BACA,wCACCpK,KAAO0J,GAAgB,CACxBA,EACAQ,EAAmBR,OAKtBnD,UAAS,IAKD,IAAM,OAGf,GCKF,EApCC,CAAEkC,EAAU6B,IAAgB,IAAQhD,GAAYhF,IAC/C,MAAMiI,EAAY9B,EAChBC,OAAQ8B,GACRC,mBAAoBH,GA8BtB,OA7BAnL,OAAOuL,QAASH,GAAYtJ,SAC3B,IAAyC,IAArCoI,EAAcsB,GAAuB,EACxC,MAAMC,GAAWhL,EAAAA,EAAAA,KAAK6I,EAASoC,OAAQ,CACtCP,EACA,YACAjB,IAEMuB,GAAcA,EAASE,kBAG9BH,EAAgB1J,SAAS,CAAEC,EAAOoI,KAKZ,cAAlBpI,aAAA,EAAAA,EAAO6J,SACU,WAAlB7J,aAAA,EAAAA,EAAO6J,UACNH,EAASE,iBAAkBxI,KAAWgH,IAMzCb,EACE5B,SAAU2D,GACVQ,qBAAsBV,EAAYjB,EAAcC,EAFlD,GAbD,IAmBKhC,EAAMhF,EAAb,ECTK,SAAS2I,EAAwB3B,GACvC,GAAKA,QACJ,MAAO,GAGR,MAAM4B,EAAM5B,EAAKxK,OACjB,IAAIqM,EAAMD,EACV,KAAQC,EAAM,QAAyB/K,IAApBkJ,EAAM6B,EAAM,IAC9BA,IAED,OAAOA,IAAQD,EAAM5B,EAAOA,EAAKjD,MAAO,EAAG8E,EAC3C,CCpBD,MAAMC,GAGH,eDxBD1F,GAED,WAAoD,IAAlDrD,EAAkD,uDAAhB,CAAC,EAAGC,EAAY,uCAGnD,MAAMjD,EAAMiD,EAAM,aAClB,QAAalC,IAARf,EACJ,OAAOgD,EAKR,MAAMgJ,EAAe3F,EAASrD,EAAOhD,GAAOiD,GAC5C,OAAK+I,IAAiBhJ,EAAOhD,GACrBgD,EAGD,IACHA,EACH,CAAEhD,GAAOgM,EAEV,ICGmB,WAAsD,IAApDhJ,EAAoD,uDAA5C,IAAI5B,KAAoB6B,EAAoB,uCAC1E,OAASA,EAAOwE,MACf,IAAK,mBAAoB,CACxB,MAAMvE,EAAY,IAAI9B,IAAJ,CAAsB4B,GAIxC,OAHAE,EAAU/B,IAAKyK,EAAwB3I,EAAOgH,MAAQ,CACrDyB,OAAQ,cAEFxI,CACP,CACD,IAAK,oBAAqB,CACzB,MAAMA,EAAY,IAAI9B,IAAJ,CAAsB4B,GAIxC,OAHAE,EAAU/B,IAAKyK,EAAwB3I,EAAOgH,MAAQ,CACrDyB,OAAQ,aAEFxI,CACP,CACD,IAAK,kBAAmB,CACvB,MAAMA,EAAY,IAAI9B,IAAJ,CAAsB4B,GAKxC,OAJAE,EAAU/B,IAAKyK,EAAwB3I,EAAOgH,MAAQ,CACrDyB,OAAQ,QACRO,MAAOhJ,EAAOgJ,QAER/I,CACP,CACD,IAAK,oBAAqB,CACzB,MAAMA,EAAY,IAAI9B,IAAJ,CAAsB4B,GACxC,IAAM,MAAMkJ,KAAkBjJ,EAAOgH,KACpC/G,EAAU/B,IAAKyK,EAAwBM,GAAkB,CACxDR,OAAQ,cAGV,OAAOxI,CACP,CACD,IAAK,qBAAsB,CAC1B,MAAMA,EAAY,IAAI9B,IAAJ,CAAsB4B,GACxC,IAAM,MAAMkJ,KAAkBjJ,EAAOgH,KACpC/G,EAAU/B,IAAKyK,EAAwBM,GAAkB,CACxDR,OAAQ,aAGV,OAAOxI,CACP,CACD,IAAK,mBAAoB,CACxB,MAAMA,EAAY,IAAI9B,IAAJ,CAAsB4B,GAiBxC,OAhBAC,EAAOgH,KAAKrI,SAAS,CAAEsK,EAAgBJ,KACtC,MAAMK,EAA8B,CACnCT,OAAQ,QACRO,WAAOlL,GAGFkL,EAAQhJ,EAAOmJ,OAAQN,GACxBG,IACJE,EAAgBF,MAAQA,GAGzB/I,EAAU/B,IACTyK,EAAwBM,GACxBC,EAFD,IAKMjJ,CACP,CACD,IAAK,wBAAyB,CAC7B,MAAMA,EAAY,IAAI9B,IAAJ,CAAsB4B,GAExC,OADAE,EAAUhC,OAAQ0K,EAAwB3I,EAAOgH,OAC1C/G,CACP,EAEF,OAAOF,CACP,IAYD,MA0BA,EA1BmB,WAA2D,IAAzDA,EAAyD,uDAAxB,CAAC,EAAGC,EAAoB,uCAC7E,OAASA,EAAOwE,MACf,IAAK,kCACJ,MAAO,CAAC,EACT,IAAK,2CACJ,GAAKxE,EAAO+G,gBAAgBhH,EAAQ,CACnC,MACC,CAAEC,EAAO+G,cAAgBqC,KACtBC,GACAtJ,EACJ,OAAOsJ,CACP,CACD,OAAOtJ,EAER,IAAK,mBACL,IAAK,oBACL,IAAK,kBACL,IAAK,oBACL,IAAK,qBACL,IAAK,mBACL,IAAK,wBACJ,OAAO+I,EAAmB/I,EAAOC,GAEnC,OAAOD,CACP,ECxHM,SAASuJ,EAAoBvJ,EAAOgH,EAAcC,GACxD,MAAMtJ,GAAMJ,EAAAA,EAAAA,KAAKyC,EAAO,CAAEgH,IAC1B,GAAOrJ,EAIP,OAAOA,EAAIJ,IAAKqL,EAAwB3B,GACxC,CAcM,SAASuC,EAAgBxJ,EAAOgH,EAAcC,GACpD,MAAMkC,EAAkBI,EAAoBvJ,EAAOgH,EAAcC,GAEjE,OAAOkC,GAA8C,cAA3BA,EAAgBT,MAC1C,CAYM,SAASe,EAAsBzJ,EAAOgH,EAAcC,GAC1D,YAA2DlJ,IAApDwL,EAAoBvJ,EAAOgH,EAAcC,EAChD,CAYM,SAASyC,EAAuB1J,EAAOgH,EAAcC,GAAO,MAClE,MAAMyB,EAAM,UAAGa,EAAoBvJ,EAAOgH,EAAcC,UAA5C,aAAG,EAAiDyB,OAChE,MAAkB,aAAXA,GAAoC,UAAXA,CAChC,CAYM,SAASiB,EAAqB3J,EAAOgH,EAAcC,GAAO,MAChE,MAAmE,WAA5D,UAAAsC,EAAoBvJ,EAAOgH,EAAcC,UAAzC,eAAiDyB,OACxD,CAaM,SAASkB,EAAoB5J,EAAOgH,EAAcC,GACxD,MAAMkC,EAAkBI,EAAoBvJ,EAAOgH,EAAcC,GACjE,MAAmC,WAA5BkC,aAAA,EAAAA,EAAiBT,QAAqBS,EAAgBF,MAAQ,IACrE,CAYM,SAASY,EAAa7J,EAAOgH,EAAcC,GAAO,MACxD,MAC6D,eAA5D,UAAAsC,EAAoBvJ,EAAOgH,EAAcC,UAAzC,eAAiDyB,OAElD,CASM,SAASN,EAAoBpI,GACnC,OAAOA,CACP,CChIM,SAAS8J,EAAiB9C,EAAcC,GAC9C,MAAO,CACNxC,KAAM,mBACNuC,eACAC,OAED,CAWM,SAAS8C,EAAkB/C,EAAcC,GAC/C,MAAO,CACNxC,KAAM,oBACNuC,eACAC,OAED,CAYM,SAAS+C,EAAgBhD,EAAcC,EAAMgC,GACnD,MAAO,CACNxE,KAAM,kBACNuC,eACAC,OACAgC,QAED,CAYM,SAASgB,EAAkBjD,EAAcC,GAC/C,MAAO,CACNxC,KAAM,oBACNuC,eACAC,OAED,CAYM,SAASiD,EAAmBlD,EAAcC,GAChD,MAAO,CACNxC,KAAM,qBACNuC,eACAC,OAED,CAaM,SAASkD,EAAiBnD,EAAcC,EAAMmC,GACpD,MAAO,CACN3E,KAAM,mBACNuC,eACAC,OACAmC,SAED,CAUM,SAAST,GAAsB3B,EAAcC,GACnD,MAAO,CACNxC,KAAM,wBACNuC,eACAC,OAED,CAQM,SAASmD,KACf,MAAO,CACN3F,KAAM,kCAEP,CAWM,SAAS4F,GAAsCrD,GACrD,MAAO,CACNvC,KAAM,2CACNuC,eAED,CCpHD,MAAMsD,GAAwBC,IAC7B,MAAMC,EAAS,IAAKD,GACpB,IAAM,IAAI/N,EAAIgO,EAAO/N,OAAS,EAAGD,GAAK,EAAGA,SACnBuB,IAAhByM,EAAQhO,IACZgO,EAAOjG,OAAQ/H,EAAG,GAGpB,OAAOgO,CAAP,EA0Dc,SAASC,GAAkBzN,EAAK0N,GAC9C,MAAO,CACNvD,KAAMnK,EACN2K,YAAevB,IACd,MAAM/C,EAAUqH,EAAQrH,QAqBlBuC,EA2GT,SAAgC5I,EAAK0N,EAAStE,EAAUuE,GACvD,MAAM7D,EAAW,IACb4D,EAAQ5D,YACRQ,GAGEsD,GAAqBC,EAAAA,EAAAA,WAAW/D,GAAYgE,GACjDA,EAAQrE,kBAAoBqE,EAAS1E,GAAa0E,IAU7CC,EAAY,CAAErF,EANnBsF,EAAgC5E,EAAUpJ,GAC1CiO,EACAC,IAA8BN,ICrPe3D,EDsPtB0D,ECrPjB,IAAQ1F,GAAYhF,GACH,mBAAXA,EACJA,EAAQgH,GAGThC,EAAMhF,MANA,IAAgCgH,ED2P3B,oBAAX9F,QACPA,OAAOgK,8BAEPJ,EAAUjM,KACTqC,OAAOgK,6BAA8B,CACpChE,KAAMnK,EACNoO,WAAYpO,KAKf,MAAM,QAAEqG,EAAF,aAAWgI,GAAiBX,EAMlC,OAAOtH,EALiBkI,IAAiB,CACxCC,SAAUC,EACVC,KAAMpI,IAKN,CAAEoI,KAAMJ,IACRlG,EAAAA,EAAAA,SAAS4F,GAEV,CApJgBW,CACb1O,EACA0N,EACAtE,EAvBiB,CACjBA,WACI5B,eACH,OAAO1H,OAAO6O,QACX1L,GAAY2F,EAAMpB,SAAUvE,IAC9B+H,IAED,EACG3B,aACH,OAAOvJ,OAAO6O,QACXxF,GACDA,EAAUP,EAAMgG,+BACjB9D,IAED,EACGV,oBACH,OAAOyE,GACP,IASIC,EAjFT,WACC,MAAMC,EAAQ,CAAC,EACf,MAAO,CACNC,UAAS,CAAEhF,EAAcC,IAEvB8E,EAAO/E,IACP+E,EAAO/E,GAAezJ,IAAK+M,GAAqBrD,IAIlDvI,MAAOsI,EAAcC,GACf8E,EAAO/E,IACX+E,EAAO/E,GAAe9I,OAAQoM,GAAqBrD,GAEpD,EAEDgF,cAAejF,EAAcC,GACrB8E,EAAO/E,KACb+E,EAAO/E,GAAiB,IAAI5I,MAG7B2N,EAAO/E,GAAe7I,IAAKmM,GAAqBrD,IAAQ,EACxD,EAEF,CAyDyBiF,GAEvB,IAAIhE,EACJ,MAAMiE,EAwLT,SAAqBA,EAASvG,GAO7B,OAAOiF,EAAAA,EAAAA,WAAWsB,GALflM,GACF,WACC,OAAOmM,QAAQC,QAASzG,EAAMpB,SAAUvE,KAAW,YACnD,GAGF,CAhMkBqM,CACf,IACIC,KACA7B,EAAQyB,SAEZvG,GAGD,IAAI4G,EA8IP,SAAuBA,EAAW5G,GAuBjC,OAAOiF,EAAAA,EAAAA,WAAW2B,GAtBYtG,IAC7B,MAAMC,EAAW,WAQhB,MAAMsG,EAAarN,UAAU3C,OACvBwK,EAAO,IAAIrJ,MAAO6O,EAAa,GACrCxF,EAAM,GAAMrB,EAAMgG,6BAClB,IAAM,IAAIpP,EAAI,EAAGA,EAAIiQ,EAAYjQ,IAChCyK,EAAMzK,EAAI,GAAM4C,UAAW5C,GAG5B,OAAO0J,KAAqBe,EAC5B,EAED,OADAd,EAASqB,aAAc,EAChBrB,CAAP,GAID,CAtKkBuG,CACf,KACI7B,EAAAA,EAAAA,WACF8B,GACExG,GACD,SAAEnG,GAAF,2BAAYiH,EAAZ,iCAAYA,EAAZ,yBACCd,EAAUnG,EAAMuL,YAAatE,EAD9B,QAGC4D,EAAAA,EAAAA,WAAWH,EAAQ8B,WAAarG,IAC7BA,EAASG,qBACbH,EAASC,SAAWA,GAGd,SAAEpG,GAAF,2BAAYiH,EAAZ,iCAAYA,EAAZ,yBACNd,EAAUnG,EAAMyL,QAASxE,EADnB,MAITrB,GAED,GAAK8E,EAAQxC,UAAY,CACxB,MAAMsC,EAyRV,SAAuBtC,EAAWsE,EAAW5G,EAAOkG,GAInD,MAAMc,GAAkB/B,EAAAA,EAAAA,WAAW3C,GAAaK,GAC1CA,EAASsE,QACNtE,EAGD,IACHA,EACHsE,QAAStE,KA0EX,MAAO,CACNL,UAAW0E,EACXJ,WAAW3B,EAAAA,EAAAA,WAAW2B,GAxEH,CAAErG,EAAUa,KAC/B,MAAMuB,EAAWL,EAAWlB,GAC5B,IAAOuB,EAEN,OADApC,EAASqB,aAAc,EAChBrB,EAGR,MAAM2G,EAAmB,WAAe,2BAAV7F,EAAU,yBAAVA,EAAU,gBACvC8F,eAAeC,IACd,MAAMhN,EAAQ4F,EAAM3B,WAEpB,GACC6H,EAAeE,UAAWhF,EAAcC,IACN,mBAAzBsB,EAAS0E,aACjB1E,EAAS0E,YAAajN,KAAUiH,GAEjC,OAGD,MAAM,SAAEsE,GAAa3F,EAAMgG,6BAG1Be,EACCpB,EACAvE,EACAC,KAMF6E,EAAeG,cAAejF,EAAcC,GAE5CiG,YAAYH,UACXjB,EAAepN,MAAOsI,EAAcC,GACpCrB,EAAMpB,SACL+H,EAAiCvF,EAAcC,IAEhD,UACOkG,GACLvH,EACAgH,EACA5F,KACGC,GAEJrB,EAAMpB,SACL+H,EACCvF,EACAC,GAWF,CARC,MAAQgC,GACTrD,EAAMpB,SACL+H,EACCvF,EACAC,EACAgC,GAGF,KAEF,CAGD,OADA+D,KAAoB/F,GACbd,KAAac,EACpB,EAED,OADA6F,EAAiBtF,aAAc,EACxBsF,CAAP,IAOD,CAlXkBM,CACd1C,EAAQxC,UACRsE,EACA5G,EACAkG,GAED5D,EAAYsC,EAAOtC,UACnBsE,EAAYhC,EAAOgC,SACnB,CAED,MAAMa,EAoKT,SAA8Bb,EAAW5G,GACxC,MAAM,eACL4D,EADK,qBAELC,EAFK,sBAGLC,EAHK,oBAILC,EAJK,YAKLE,EALK,mBAMLzB,EANK,mBAOLmB,EAPK,mBAQLK,KACG0D,GACAd,EAEJ,OAAO3B,EAAAA,EAAAA,WAAWyC,GAAgB,CAAEnH,EAAUa,IAGtCb,EAASqB,YAIT,WAAe,2BAAVP,EAAU,yBAAVA,EAAU,gBACrB,OAAO,IAAImF,SAAS,CAAEC,EAASkB,KAC9B,MAAMC,EAAc,IACnBhB,EAAU9C,sBAAuB1C,EAAcC,GAC1CwG,EAAajD,IAKlB,GAJkBgC,EAAU7C,oBAC3B3C,EACAC,GAEgB,CAChB,MAAMgC,EAAQuD,EAAU5C,mBACvB5C,EACAC,GAEDsG,EAAQtE,EACR,MACAoD,EAAS7B,EACT,EAEIkD,EAAY,IAAMvH,EAAStE,MAAO,KAAMoF,GAExCuD,EAASkD,IACf,GAAKF,IACJ,OAAOC,EAAUjD,GAGlB,MAAMtF,EAAcU,EAAM1B,WAAW,KAC/BsJ,MACJtI,IACAuI,EAAUC,KACV,GAJF,GAOD,EApCOX,iBAAA,2BAAW9F,EAAX,yBAAWA,EAAX,uBAAqBd,EAAStE,MAAO,KAAMoF,EAA3C,GAsCT,CA3N2B0G,CAAqBnB,EAAW5G,GACnDgI,EAoOT,SAA8BpB,EAAW5G,GACxC,OAAOiF,EAAAA,EAAAA,WAAW2B,GAAW,CAAErG,EAAUa,IAEjCb,EAASqB,YAIT,WAAe,2BAAVP,EAAU,yBAAVA,EAAU,gBACrB,MAAMuD,EAASrE,EAAStE,MAAO,KAAMoF,GAErC,GAAKuF,EAAU9C,sBAAuB1C,EAAcC,GAAS,CAC5D,GAAKuF,EAAU7C,oBAAqB3C,EAAcC,GACjD,MAAMuF,EAAU5C,mBAAoB5C,EAAcC,GAGnD,OAAOuD,CACP,CAED,MAAM,IAAI4B,SAAWC,IACpB,MAAMnH,EAAcU,EAAM1B,WAAW,KAEnCsI,EAAU9C,sBAAuB1C,EAAcC,KAE/CoF,IACAnH,IACA,GANF,GASD,EAxBOiB,GA0BT,CAlQ2B0H,CAAqBrB,EAAW5G,GAEnDkC,EAAe,IAAM0E,EACrBxE,EAAa,IAAMmE,EACnBN,EAAsB,IAAMwB,EAMlCzH,EAAMgG,2BAA6BhG,EAAM3B,SACzC2B,EAAM3B,SAAW,IAAM2B,EAAMgG,6BAA6BH,KAI1D,MAAMvH,EACL0B,GAAK,CACDzB,IACH,IAAI2J,EAAYlI,EAAMgG,6BACtB,OAAOhG,EAAM1B,WAAW,KACvB,MAAMlE,EAAQ4F,EAAMgG,6BACdmC,EAAa/N,IAAU8N,EAC7BA,EAAY9N,EAEP+N,GACJ5J,GACA,GAVE,GAgBN,MAAO,CACNd,UACAuC,QACAuG,UACAK,YACAtE,YACAJ,eACA+D,sBACAmC,oBAnC2B,IAAMJ,EAoCjC5F,aACA9D,YAVD,EAcF,CAmUD6I,eAAeI,GAAiBvH,EAAOsC,EAAWlB,GACjD,MAAMuB,GAAWhL,EAAAA,EAAAA,KAAK2K,EAAW,CAAElB,IACnC,IAAOuB,EACN,OAHwE,2BAAPtB,EAAO,iCAAPA,EAAO,kBAMzE,MAAMhH,EAASsI,EAASsE,WAAY5F,GAC/BhH,SACE2F,EAAMpB,SAAUvE,EAEvB,CEniBM,SAASgO,KACf,IAAIC,GAAW,EACXC,GAAY,EAChB,MAAMzJ,EAAY,IAAI0J,IAChBC,EAAkB,IAIvBzQ,MAAM0Q,KAAM5J,GAAY9F,SAAWuF,GAAcA,MAElD,MAAO,CACF+J,eACH,OAAOA,CACP,EAEDhK,UAAWC,IACVO,EAAU6J,IAAKpK,GACR,IAAMO,EAAUxG,OAAQiG,IAGhCqK,QACCN,GAAW,CACX,EAEDO,SACCP,GAAW,EACNC,IACJA,GAAY,EACZE,IAED,EAEDK,OACMR,EACJC,GAAY,EAGbE,GACA,EAEF,CCAD,SAASxH,GAAUvF,GAClB,OAAkB,OAAXA,GAAqC,iBAAXA,CACjC,CAWM,SAASqN,KAAmD,IAAnCC,EAAmC,uDAApB,CAAC,EAAGC,EAAgB,uDAAP,KAC3D,MAAMrG,EAAS,CAAC,EACVsG,EAAUb,KACVc,EAAkB,IAAIX,IAK5B,SAASY,IACRF,EAAQJ,MACR,CASD,MAAMxK,EAAcC,GACZ2K,EAAQ5K,UAAWC,GAW3B,SAASkC,EAAQU,GAChB,MAAMkI,EAAYpI,GAAUE,GACzBA,EAAsBI,KACtBJ,EACHgI,EAAgBR,IAAKU,GACrB,MAAMrJ,EAAQ4C,EAAQyG,GACtB,OAAKrJ,EACGA,EAAMkC,eAGP+G,aAAP,EAAOA,EAAQxI,OAAQ4I,EACvB,CAED,SAASC,EAA+BjQ,EAAUkQ,GACjDJ,EAAgBrQ,QAChB,IACC,OAAOO,EAASI,KAAMZ,KAGtB,CAJD,QAGC0Q,EAAIC,QAAUxR,MAAM0Q,KAAMS,EAC1B,CACD,CAaD,SAAS3H,EAAeL,GACvB,MAAMkI,EAAYpI,GAAUE,GACzBA,EAAsBI,KACtBJ,EACHgI,EAAgBR,IAAKU,GACrB,MAAMrJ,EAAQ4C,EAAQyG,GACtB,OAAKrJ,EACGA,EAAMiG,sBAGPgD,GAAUA,EAAOzH,cAAe6H,EACvC,CAaD,SAASI,EAAetI,GACvB,MAAMkI,EAAYpI,GAAUE,GACzBA,EAAsBI,KACtBJ,EACHgI,EAAgBR,IAAKU,GACrB,MAAMrJ,EAAQ4C,EAAQyG,GACtB,OAAKrJ,EACGA,EAAMoI,sBAGPa,GAAUA,EAAOQ,cAAeJ,EACvC,CAUD,SAASzK,EAAUuC,GAClB,MAAMkI,EAAYpI,GAAUE,GACzBA,EAAsBI,KACtBJ,EACGnB,EAAQ4C,EAAQyG,GACtB,OAAKrJ,EACGA,EAAMoC,aAGP6G,GAAUA,EAAOrK,SAAUyK,EAClC,CAKD,SAASK,EAAaC,GACrB,OAAO1E,EAAAA,EAAAA,WAAW0E,GAAY,CAAEC,EAAWxS,IAChB,mBAAdwS,EACJA,EAED,WACN,OAAOpJ,EAAUpJ,GAAM6E,MAAO,KAAMzC,UACpC,GAEF,CAQD,SAASqQ,EAAuBtI,EAAMvB,GACrC,GAAmC,mBAAvBA,EAAMkC,aACjB,MAAM,IAAIvJ,UAAW,yCAEtB,GAAiC,mBAArBqH,EAAMoC,WACjB,MAAM,IAAIzJ,UAAW,uCAEtB,GAAgC,mBAApBqH,EAAM1B,UACjB,MAAM,IAAI3F,UAAW,sCAKtBqH,EAAMkJ,QAAUb,KAChB,MAAMyB,EAAmB9J,EAAM1B,UAC/B0B,EAAM1B,UAAcC,IACnB,MAAMwL,EAAyB/J,EAAMkJ,QAAQ5K,UAAWC,GAClDyL,EAAuBF,GAAkB,KACzC9J,EAAMkJ,QAAQZ,SAClBtI,EAAMkJ,QAAQJ,OAGfvK,GAAU,IAGX,MAAO,KACNyL,SAAAA,IACAD,SAAAA,GAAsB,CAFvB,EAKDnH,EAAQrB,GAASvB,EACjBA,EAAM1B,UAAW8K,EACjB,CAOD,SAASa,EAAUjK,GAClB6J,EAAuB7J,EAAMuB,KAAMvB,EAAM+B,YAAavB,GACtD,CAED,SAAS0J,EAAsB3I,EAAMvB,GACpCmK,IAAY,+BAAgC,CAC3CC,MAAO,MACPC,YAAa,wCAEdR,EAAuBtI,EAAMvB,EAC7B,CAUD,SAASsK,EAAejB,EAAWvE,GAClC,IAAOA,EAAQrH,QACd,MAAM,IAAI9E,UAAW,8BAGtB,MAAMqH,EAAQ6E,GAAkBwE,EAAWvE,GAAU/C,YACpDvB,GAGD,OADAqJ,EAAuBR,EAAWrJ,GAC3BA,EAAMA,KACb,CASD,SAASuK,EAA0BlB,EAAWmB,GAC7C,OAAKnB,KAAazG,EACVA,EAAQyG,GAAY/K,UAAWkM,GAOhCvB,EAIAA,EAAOsB,yBAA0BlB,EAAWmB,GAH3ClM,EAAWkM,EAInB,CAED,SAASC,EAAOpR,GACf6P,EAAQN,QACR1R,OAAOwT,OAAQ9H,GAAS5J,SAAWgH,GAAWA,EAAMkJ,QAAQN,UAC5DvP,IACA6P,EAAQL,SACR3R,OAAOwT,OAAQ9H,GAAS5J,SAAWgH,GAAWA,EAAMkJ,QAAQL,UAC5D,CAED,IAAIrI,EAAW,CACdiK,QACA7H,SACA+H,WAAY/H,EACZtE,YACAmC,SACAe,gBACAiI,gBACA7K,WACAgM,MACAX,WACAC,uBACAI,gBACAhB,gCACAiB,4BAMD,SAASK,EAAKC,EAAQ/F,GACrB,GAAO+F,EASP,OALArK,EAAW,IACPA,KACAqK,EAAQrK,EAAUsE,IAGftE,CACP,CAEDA,EAASyJ,SAAU1H,GAEnB,IAAM,MAAQhB,EAAMuJ,KAAY5T,OAAOuL,QAASuG,GAC/CxI,EAASyJ,SAAUpF,GAAkBtD,EAAMuJ,IAO5C,OAJK7B,GACJA,EAAO3K,UAAW8K,GAGZM,EAAalJ,EACpB,CCpVD,SAAeuI,KCEf,SAAS,GAAS7N,GAChB,MAA6C,oBAAtChE,OAAOV,UAAUqG,SAASpD,KAAKyB,EACxC,CAEA,SAAS,GAAcA,GACrB,IAAI6P,EAAKC,EAET,OAAoB,IAAhB,GAAS9P,UAIA/C,KADb4S,EAAO7P,EAAE3E,eAKc,IAAnB,GADJyU,EAAOD,EAAKvU,aAIiC,IAAzCwU,EAAK5P,eAAe,iBAM1B,CC/BA,IAAI6P,GAEJ,MAAMC,GAAU,CACfC,QAAS/T,GACD6T,IAAmBA,GAAe7T,GAIlC6T,GAAe7T,GAHd,KAKTgU,QAAShU,EAAK6B,GACNgS,IACNC,GAAQpS,QAGTmS,GAAe7T,GAAQiU,OAAQpS,EAC/B,EACDH,QACCmS,GAAgB/T,OAAOoU,OAAQ,KAC/B,GAGF,MCjBA,IAAIJ,GAEJ,IAICA,GAAU3P,OAAOgQ,aACjBL,GAAQE,QAAS,2BAA4B,IAC7CF,GAAQM,WAAY,2BAGpB,CAFC,MAAQnI,GACT6H,GAAUD,EACV,CAED,MCaMQ,GDbN,GCoBMC,GAAsB,UAoF5B,SAASC,GAAmBnL,EAAUoL,GACrC,MAAMC,EA1DA,SAAqC/G,GAC3C,MAAM,QAAEoG,EAAUO,GAAZ,WAA6BK,EAAaJ,IAC/C5G,EAED,IAAIiH,EAuCJ,MAAO,CACNpU,IAjCD,WACC,QAAcQ,IAAT4T,EAAqB,CAGzB,MAAMC,EAAYd,EAAQC,QAASW,GACnC,GAAmB,OAAdE,EACJD,EAAO,CAAC,OAER,IACCA,EAAO9R,KAAKgS,MAAOD,EAKnB,CAJC,MAAQ3I,GAGT0I,EAAO,CAAC,CACR,CAEF,CAED,OAAOA,CACP,EAeAxT,IAPD,SAAkBnB,EAAK6B,GACtB8S,EAAO,IAAKA,EAAM,CAAE3U,GAAO6B,GAC3BiS,EAAQE,QAASU,EAAY7R,KAAKC,UAAW6R,GAC7C,EAMD,CAWoBG,CAA4BN,GAkDhD,MAAO,CACNtB,cAAejB,EAAWvE,GACzB,IAAOA,EAAQqH,QACd,OAAO3L,EAAS8J,cAAejB,EAAWvE,GAI3C,MAAMsH,EAAiBP,EAAYlU,MAAO0R,GAC1C,QAAwBlR,IAAnBiU,EAA+B,CACnC,IAAI3G,EAAeX,EAAQrH,QAASqH,EAAQW,aAAc,CACzD5G,KAAM,6BAYN4G,EARApI,GAAeoI,IACfpI,GAAe+O,IAOAC,EAAAA,EAAAA,OAAO,CAAC,EAAG5G,EAAc2G,GAIzBA,EAGhBtH,EAAU,IACNA,EACHW,eAED,CAED,MAAMzF,EAAQQ,EAAS8J,cAAejB,EAAWvE,GAUjD,OARA9E,EAAM1B,UA3ER,SAAgCD,EAAUgL,EAAWxR,GACpD,IAAIyU,EACJ,GAAKtU,MAAMC,QAASJ,GAAS,CAM5B,MAAMiC,EAAWjC,EAAK+H,QACrB,CAAE2M,EAAanV,IACdF,OAAO6O,OAAQwG,EAAa,CAC3B,CAAEnV,GAAO,CAAEgD,EAAOC,IAAYA,EAAOC,UAAWlD,MAElD,CAAC,GAnG8BqG,EAuG/BiI,GAAiB5L,GADlBwS,EAtG6C,CAAElS,EAAOC,IACnDA,EAAOC,YAAcF,EAClBA,EAGDqD,EAASrD,EAAOC,EAoGrB,MACAiS,EAAoB,CAAElS,EAAOC,IAAYA,EAAOC,UA1GhBmD,MA6GjC,IAAIyK,EAAYoE,OAAmBnU,EAAW,CAC7CmC,UAAW+D,MAGZ,MAAO,KACN,MAAMjE,EAAQkS,EAAmBpE,EAAW,CAC3C5N,UAAW+D,MAEPjE,IAAU8N,IACd2D,EAAYtT,IAAK8Q,EAAWjP,GAC5B8N,EAAY9N,EACZ,CAEF,CAwCEoS,CACCxM,EAAM3B,SACNgL,EACAvE,EAAQqH,UAIHnM,CACP,EAEF,CAED2L,GAAkBc,kBAAoB,OAEtC,YCjOe,SAASC,KAetB,OAdAA,GAAWxV,OAAO6O,QAAU,SAAUrP,GACpC,IAAK,IAAIE,EAAI,EAAGA,EAAI4C,UAAU3C,OAAQD,IAAK,CACzC,IAAIuF,EAAS3C,UAAU5C,GAEvB,IAAK,IAAIQ,KAAO+E,EACVjF,OAAOV,UAAU4E,eAAe3B,KAAK0C,EAAQ/E,KAC/CV,EAAOU,GAAO+E,EAAO/E,GAG3B,CAEA,OAAOV,CACT,EAEOgW,GAASzQ,MAAMpD,KAAMW,UAC9B,CChBA,MAAM,GAA+B+B,OAAW,GAAW,QCArD,GAA+BA,OAAc,MCgBnD,SAASoR,GAAW7E,EAAW8E,GAC7B,IAAIC,GAAU,KAAAC,WAAS,WACrB,MAAO,CACLF,OAAQA,EACRhI,OAAQkD,IAEZ,IAAG,GACCiF,GAAY,KAAAC,QAAOH,GAEnB1G,EADe8G,QAAQL,GAAUG,EAAUvD,QAAQoD,QAtBzD,SAAwBM,EAAWC,GACjC,GAAID,EAAUrW,SAAWsW,EAAWtW,OAClC,OAAO,EAGT,IAAK,IAAID,EAAI,EAAGA,EAAIsW,EAAUrW,OAAQD,IACpC,GAAIsW,EAAUtW,KAAOuW,EAAWvW,GAC9B,OAAO,EAIX,OAAO,CACT,CAUmEwW,CAAeR,EAAQG,EAAUvD,QAAQoD,SAC/EG,EAAUvD,QAAU,CAC7CoD,OAAQA,EACRhI,OAAQkD,KAKV,OAHA,KAAAuF,YAAU,WACRN,EAAUvD,QAAUrD,CACtB,GAAG,CAACA,IACGA,EAAMvB,MACf,CCjCA,MAAM,GAA+BrJ,OAAW,GAAiB,cCA3D,GAA+BA,OAAW,GAAkB,e,eCU3D,MAAM+R,IAAUC,EAAAA,GAAAA,eAAeC,KAEhC,SAAEC,GAAF,SAAYC,IAAaJ,GAiClBK,GAAmBF,GAShC,MCLe,SAASG,KACvB,OAAOC,EAAAA,GAAAA,YAAYP,GACnB,CC9CM,MAAMA,IAAUC,EAAAA,GAAAA,gBAAe,IAE9BE,SAAF,GAAYC,SAAQA,IAAKJ,GAuC/B,MCpCe,SAASQ,KACvB,OAAOD,EAAAA,GAAAA,YAAYP,GACnB,CCaD,MAAMS,GAAO,OACPC,IAAcC,EAAAA,GAAAA,eAgFL,SAASC,GAAWC,EAAWC,GAC7C,MAAMC,EAAqB,mBAAsBF,EAK1CE,IACND,EAAO,IAQR,MAAME,GAAiBC,EAAAA,GAAAA,aACtBF,EAAqBF,EAAYJ,GACjCK,GAEKI,EAAaH,EAAqBC,EAAiB,KAEnD9N,EAAWoN,KACXa,EAAUX,KAEVY,GAAiB1B,EAAAA,GAAAA,QAAQxM,GACzBmO,GAAkB3B,EAAAA,GAAAA,UAClB4B,GAAgB5B,EAAAA,GAAAA,QAAQyB,GACxBI,GAAkB7B,EAAAA,GAAAA,UAClB8B,GAAuB9B,EAAAA,GAAAA,UAIvB7D,GAAkB6D,EAAAA,GAAAA,QAAQ,IAC1B+B,GAAaR,EAAAA,GAAAA,cAChBlV,GACDmH,EAAS8I,+BACR,IAAMjQ,EAAUmH,EAASC,OAAQD,IACjC2I,IAEF,CAAE3I,IAMGwO,GAAkBC,EAAAA,GAAAA,UAAS,KAAM,CAAN,IAAcb,GAAQ,IAEvD,IAAIc,EAEAC,GAAc,EAClB,GAAKX,EAAa,CACjBU,EAAYL,EAAgBrF,QAC5B,MAAM4F,EAAsBV,EAAelF,UAAYhJ,EACjD6O,EAAuBV,EAAgBnF,UAAYgF,EACnDc,EAAmBV,EAAcpF,UAAaiF,EAC9Cc,IAAyBT,EAAqBtF,QAEpD,GACC4F,GACAC,GACAC,GACAC,EAEA,IACCL,EAAYH,EAAYP,GACxBW,GAAc,CAYd,CAXC,MAAQ9L,GACT,IAAImM,EAAgB,gDAAgDnM,EAAMoM,UAErEX,EAAqBtF,UACzBgG,GAAiB,4DACjBA,GAAiB,GAAGV,EAAqBtF,QAAQkG,YACjDF,GAAgB,yBAIjBG,QAAQtM,MAAOmM,EACf,CAEF,EAEDI,EAAAA,EAAAA,4BAA2B,KACnBvB,IAIPK,EAAelF,QAAUhJ,EACzBmO,EAAgBnF,QAAUgF,EAC1BI,EAAcpF,QAAUiF,EACnBU,IACJN,EAAgBrF,QAAU0F,GAE3BJ,EAAqBtF,aAAUrR,EAA/B,IAMD,MAAM0X,EAAelD,IAAY,KAAM,CAAImD,OAAO,KAAU,CAAEtP,KACvD,CAAGuP,IAAgBC,EAAAA,GAAAA,aAAcC,GAAOA,EAAI,GAAG,GAChDC,GAAYlD,EAAAA,GAAAA,SAAQ,GAwD1B,OAtDA4C,EAAAA,EAAAA,4BAA2B,KAC1B,IAAOvB,EACN,OAGD,MAAM8B,EAAgB,KACrB,IACC,MAAMC,EAAerB,EAAYJ,EAAgBnF,SAEjD,GAAK6G,KAAgBxB,EAAgBrF,QAAS4G,GAC7C,OAEDvB,EAAgBrF,QAAU4G,CAG1B,CAFC,MAAQ/M,GACTyL,EAAqBtF,QAAUnG,CAC/B,CACD0M,GAAa,EAGRO,EAAW,KACTJ,EAAU1G,UAIZoF,EAAcpF,QAClBwE,GAAYrF,IAAKkH,EAAcM,GAE/BA,IACA,EAKFA,IAEA,MAAMI,EAAgBpH,EAAgBK,QAAQzR,KAAOsR,GACpD7I,EAAS+J,yBAA0BlB,EAAWiH,KAK/C,OAFAJ,EAAU1G,SAAU,EAEb,KAEN+G,EAAcvX,SAAWsG,GAAiBA,aAAnB,EAAmBA,MAC1C0O,GAAYwC,OAAQX,GACpBK,EAAU1G,SAAU,CAApB,CAJD,GASE,CAAEhJ,EAAUuO,EAAYV,EAAoBW,KAE/CyB,EAAAA,GAAAA,eAAevB,GAERb,EAAqBa,EAAY1O,EAASC,OAAQ0N,EACzD,CAiBM,SAASuC,GAAmBvC,EAAWC,GAC7C,MAAMI,GAAaD,EAAAA,GAAAA,aAAaJ,EAAWC,GAErC5N,EAAWoN,KACXa,EAAUX,KAEVY,GAAiB1B,EAAAA,GAAAA,QAAQxM,GACzBmO,GAAkB3B,EAAAA,GAAAA,UAClB4B,GAAgB5B,EAAAA,GAAAA,QAAQyB,GACxBI,GAAkB7B,EAAAA,GAAAA,UAClB8B,GAAuB9B,EAAAA,GAAAA,UAIvB7D,GAAkB6D,EAAAA,GAAAA,QAAQ,IAC1B+B,GAAaR,EAAAA,GAAAA,cAChBlV,GACDmH,EAAS8I,+BACR,IAAMjQ,EAAUmH,EAASiJ,cAAejJ,IACxC2I,IAEF,CAAE3I,IAMGwO,GAAkBC,EAAAA,GAAAA,UAAS,KAAM,CAAN,IAAcb,GAAQ,IAEvD,IAAIc,EAAYL,EAAgBrF,QAC5BmH,EAAiB7B,EAAqBtF,QAE1C,MAAM4F,EAAsBV,EAAelF,UAAYhJ,EACjD6O,EAAuBV,EAAgBnF,UAAYgF,EACnDc,EAAmBV,EAAcpF,UAAaiF,EAEpD,IAAIU,GAAc,EAClB,GAAKC,GAAuBC,GAAwBC,EACnD,IACCJ,EAAYH,EAAYP,GACxBW,GAAc,CAGd,CAFC,MAAQ9L,GACTsN,EAAiBtN,CACjB,EAGFuM,EAAAA,EAAAA,4BAA2B,KAC1BlB,EAAelF,QAAUhJ,EACzBmO,EAAgBnF,QAAUgF,EAC1BI,EAAcpF,QAAUiF,EACnBU,IACJN,EAAgBrF,QAAU0F,GAE3BJ,EAAqBtF,QAAUmH,CAA/B,IAMD,MAAMd,EAAelD,IAAY,KAAM,CAAImD,OAAO,KAAU,CAAEtP,KACvD,CAAGuP,IAAgBC,EAAAA,GAAAA,aAAcC,GAAOA,EAAI,GAAG,GAChDC,GAAYlD,EAAAA,GAAAA,SAAQ,GAgD1B,IA9CA4C,EAAAA,EAAAA,4BAA2B,KAC1B,MAAMO,EAAgB,KACrB,IACC,MAAMC,EAAerB,EAAYJ,EAAgBnF,SAEjD,GAAK6G,KAAgBxB,EAAgBrF,QAAS4G,GAC7C,OAEDvB,EAAgBrF,QAAU4G,CAG1B,CAFC,MAAQ/M,GACTyL,EAAqBtF,QAAUnG,CAC/B,CAED0M,GAAa,EAGRO,EAAW,KACTJ,EAAU1G,UAIZoF,EAAcpF,QAClBwE,GAAYrF,IAAKkH,EAAcM,GAE/BA,IACA,EAKFA,IAEA,MAAMI,EAAgBpH,EAAgBK,QAAQzR,KAAOsR,GACpD7I,EAAS+J,yBAA0BlB,EAAWiH,KAK/C,OAFAJ,EAAU1G,SAAU,EAEb,KAEN+G,EAAcvX,SAAWsG,GAAiBA,aAAnB,EAAmBA,MAC1C0O,GAAYwC,OAAQX,GACpBK,EAAU1G,SAAU,CAApB,CAJD,GAME,CAAEhJ,EAAUuO,EAAYC,IAEtB2B,EACJ,MAAMA,EAGP,OAAOzB,CACP,CCxVD,MAYA,GAZqB0B,IACpBC,EAAAA,EAAAA,6BACGC,IACDC,EAAAA,EAAAA,OAAQC,IACP,MAEMC,EAAa/C,IAFD,CAAEzN,EAAQD,IAC3BoQ,EAAkBnQ,EAAQuQ,EAAUxQ,KAErC,OAAO,oBAACsQ,EAAD,MAAuBE,EAAgBC,GAA9C,KAEF,cC2CF,GAXuBC,IACtBL,EAAAA,EAAAA,6BACGC,GAAwBE,IACzB,MAEMG,EClEkB,EAAEC,EAAahD,KACzC,MAAM5N,EAAWoN,KACXyD,GAAqBrE,EAAAA,GAAAA,QAAQoE,GAMnC,OAJAxB,EAAAA,EAAAA,4BAA2B,KAC1ByB,EAAmB7H,QAAU4H,CAA7B,KAGMnC,EAAAA,GAAAA,UAAS,KACf,MAAMqC,EAAuBD,EAAmB7H,QAC/ChJ,EAAS5B,SACT4B,GAED,OAAOyE,EAAAA,EAAAA,WAAWqM,GAAsB,CAAEC,EAAYC,KAC1B,mBAAfD,GAEX5B,QAAQ8B,KACN,YAAYD,yEAGR,kBACNH,EACE7H,QAAShJ,EAAS5B,SAAU4B,GAC3BgR,MAAe,UAHZ,IAPR,GAYE,CAAEhR,KAAa4N,GAjBlB,ED0DwBsD,EAFF,CAAE9S,EAAU4B,IAC/B0Q,EAAoBtS,EAAUoS,EAAUxQ,IACc,IACvD,OAAO,oBAACsQ,EAAD,MAAuBE,EAAgBG,GAA9C,GAED,gBErEF,IAZqBN,EAAAA,EAAAA,6BAClBc,GAAyBhb,IAEzB,oBAACgX,GAAD,MACKnN,IACH,oBAACmR,EAAD,MAAwBhb,EAAxB,CAAgC6J,SAAWA,QAI/C,gBCwCD,GAPsBW,IACrB,MAAM,SAAEvC,GAAagP,KACrB,YAAiC,IAA1BzM,EACJvC,EACAA,EAAUuC,EAFb,ECkBYuE,GAAkBkM,IAqBlBnR,GAAS+M,GAAAA,OAqBThM,GAAgBgM,GAAAA,cAahB/D,GAAgB+D,GAAAA,cAsBhB5O,GAAW4O,GAAAA,SAsBXlP,GAAYkP,GAAAA,UAUZtD,GAAuBsD,GAAAA,qBAYvBlD,GAAgBkD,GAAAA,cAShB5C,GAAM4C,GAAAA,IAoBNvD,GAAWuD,GAAAA,Q","sources":["webpack://wp/./node_modules/equivalent-key-map/equivalent-key-map.js","webpack://wp/./node_modules/turbo-combine-reducers/index.js","webpack://wp/webpack/bootstrap","webpack://wp/webpack/runtime/compat get default export","webpack://wp/webpack/runtime/define property getters","webpack://wp/webpack/runtime/hasOwnProperty shorthand","webpack://wp/webpack/runtime/make namespace object","webpack://wp/external window \"lodash\"","webpack://wp/external window [\"wp\",\"deprecated\"]","webpack://wp/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://wp/./node_modules/@babel/runtime/helpers/esm/objectSpread2.js","webpack://wp/./node_modules/redux/es/redux.js","webpack://wp/external window [\"wp\",\"reduxRoutine\"]","webpack://wp/external window [\"wp\",\"compose\"]","webpack://wp/./packages/data/build-module/@wordpress/data/src/factory.js","webpack://wp/./packages/data/build-module/@wordpress/data/src/controls.js","webpack://wp/./packages/data/build-module/@wordpress/data/src/promise-middleware.js","webpack://wp/./node_modules/is-promise/index.mjs","webpack://wp/./packages/data/build-module/store/@wordpress/data/src/store/index.js","webpack://wp/./packages/data/build-module/@wordpress/data/src/resolvers-cache-middleware.js","webpack://wp/./packages/data/build-module/redux-store/metadata/@wordpress/data/src/redux-store/metadata/utils.ts","webpack://wp/./packages/data/build-module/redux-store/metadata/@wordpress/data/src/redux-store/metadata/reducer.ts","webpack://wp/./packages/data/build-module/redux-store/metadata/@wordpress/data/src/redux-store/metadata/selectors.js","webpack://wp/./packages/data/build-module/redux-store/metadata/@wordpress/data/src/redux-store/metadata/actions.js","webpack://wp/./packages/data/build-module/redux-store/@wordpress/data/src/redux-store/index.js","webpack://wp/./packages/data/build-module/redux-store/@wordpress/data/src/redux-store/thunk-middleware.js","webpack://wp/./packages/data/build-module/utils/@wordpress/data/src/utils/emitter.js","webpack://wp/./packages/data/build-module/@wordpress/data/src/registry.js","webpack://wp/./packages/data/build-module/@wordpress/data/src/default-registry.js","webpack://wp/./node_modules/is-plain-object/dist/is-plain-object.mjs","webpack://wp/./packages/data/build-module/plugins/persistence/storage/@wordpress/data/src/plugins/persistence/storage/object.js","webpack://wp/./packages/data/build-module/plugins/persistence/storage/@wordpress/data/src/plugins/persistence/storage/default.js","webpack://wp/./packages/data/build-module/plugins/persistence/@wordpress/data/src/plugins/persistence/index.js","webpack://wp/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://wp/external window [\"wp\",\"element\"]","webpack://wp/external window \"React\"","webpack://wp/./node_modules/use-memo-one/dist/use-memo-one.esm.js","webpack://wp/external window [\"wp\",\"priorityQueue\"]","webpack://wp/external window [\"wp\",\"isShallowEqual\"]","webpack://wp/./packages/data/build-module/components/registry-provider/@wordpress/data/src/components/registry-provider/context.js","webpack://wp/./packages/data/build-module/components/registry-provider/@wordpress/data/src/components/registry-provider/use-registry.js","webpack://wp/./packages/data/build-module/components/async-mode-provider/@wordpress/data/src/components/async-mode-provider/context.js","webpack://wp/./packages/data/build-module/components/async-mode-provider/@wordpress/data/src/components/async-mode-provider/use-async-mode.js","webpack://wp/./packages/data/build-module/components/use-select/@wordpress/data/src/components/use-select/index.js","webpack://wp/./packages/data/build-module/components/with-select/@wordpress/data/src/components/with-select/index.js","webpack://wp/./packages/data/build-module/components/with-dispatch/@wordpress/data/src/components/with-dispatch/index.js","webpack://wp/./packages/data/build-module/components/use-dispatch/@wordpress/data/src/components/use-dispatch/use-dispatch-with-map.js","webpack://wp/./packages/data/build-module/components/with-registry/@wordpress/data/src/components/with-registry/index.js","webpack://wp/./packages/data/build-module/components/use-dispatch/@wordpress/data/src/components/use-dispatch/use-dispatch.js","webpack://wp/./packages/data/build-module/@wordpress/data/src/index.js"],"sourcesContent":["'use strict';\n\nfunction _typeof(obj) {\n  if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n    _typeof = function (obj) {\n      return typeof obj;\n    };\n  } else {\n    _typeof = function (obj) {\n      return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n    };\n  }\n\n  return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\nfunction _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}\n\n/**\n * Given an instance of EquivalentKeyMap, returns its internal value pair tuple\n * for a key, if one exists. The tuple members consist of the last reference\n * value for the key (used in efficient subsequent lookups) and the value\n * assigned for the key at the leaf node.\n *\n * @param {EquivalentKeyMap} instance EquivalentKeyMap instance.\n * @param {*} key                     The key for which to return value pair.\n *\n * @return {?Array} Value pair, if exists.\n */\nfunction getValuePair(instance, key) {\n  var _map = instance._map,\n      _arrayTreeMap = instance._arrayTreeMap,\n      _objectTreeMap = instance._objectTreeMap; // Map keeps a reference to the last object-like key used to set the\n  // value, which can be used to shortcut immediately to the value.\n\n  if (_map.has(key)) {\n    return _map.get(key);\n  } // Sort keys to ensure stable retrieval from tree.\n\n\n  var properties = Object.keys(key).sort(); // Tree by type to avoid conflicts on numeric object keys, empty value.\n\n  var map = Array.isArray(key) ? _arrayTreeMap : _objectTreeMap;\n\n  for (var i = 0; i < properties.length; i++) {\n    var property = properties[i];\n    map = map.get(property);\n\n    if (map === undefined) {\n      return;\n    }\n\n    var propertyValue = key[property];\n    map = map.get(propertyValue);\n\n    if (map === undefined) {\n      return;\n    }\n  }\n\n  var valuePair = map.get('_ekm_value');\n\n  if (!valuePair) {\n    return;\n  } // If reached, it implies that an object-like key was set with another\n  // reference, so delete the reference and replace with the current.\n\n\n  _map.delete(valuePair[0]);\n\n  valuePair[0] = key;\n  map.set('_ekm_value', valuePair);\n\n  _map.set(key, valuePair);\n\n  return valuePair;\n}\n/**\n * Variant of a Map object which enables lookup by equivalent (deeply equal)\n * object and array keys.\n */\n\n\nvar EquivalentKeyMap =\n/*#__PURE__*/\nfunction () {\n  /**\n   * Constructs a new instance of EquivalentKeyMap.\n   *\n   * @param {Iterable.<*>} iterable Initial pair of key, value for map.\n   */\n  function EquivalentKeyMap(iterable) {\n    _classCallCheck(this, EquivalentKeyMap);\n\n    this.clear();\n\n    if (iterable instanceof EquivalentKeyMap) {\n      // Map#forEach is only means of iterating with support for IE11.\n      var iterablePairs = [];\n      iterable.forEach(function (value, key) {\n        iterablePairs.push([key, value]);\n      });\n      iterable = iterablePairs;\n    }\n\n    if (iterable != null) {\n      for (var i = 0; i < iterable.length; i++) {\n        this.set(iterable[i][0], iterable[i][1]);\n      }\n    }\n  }\n  /**\n   * Accessor property returning the number of elements.\n   *\n   * @return {number} Number of elements.\n   */\n\n\n  _createClass(EquivalentKeyMap, [{\n    key: \"set\",\n\n    /**\n     * Add or update an element with a specified key and value.\n     *\n     * @param {*} key   The key of the element to add.\n     * @param {*} value The value of the element to add.\n     *\n     * @return {EquivalentKeyMap} Map instance.\n     */\n    value: function set(key, value) {\n      // Shortcut non-object-like to set on internal Map.\n      if (key === null || _typeof(key) !== 'object') {\n        this._map.set(key, value);\n\n        return this;\n      } // Sort keys to ensure stable assignment into tree.\n\n\n      var properties = Object.keys(key).sort();\n      var valuePair = [key, value]; // Tree by type to avoid conflicts on numeric object keys, empty value.\n\n      var map = Array.isArray(key) ? this._arrayTreeMap : this._objectTreeMap;\n\n      for (var i = 0; i < properties.length; i++) {\n        var property = properties[i];\n\n        if (!map.has(property)) {\n          map.set(property, new EquivalentKeyMap());\n        }\n\n        map = map.get(property);\n        var propertyValue = key[property];\n\n        if (!map.has(propertyValue)) {\n          map.set(propertyValue, new EquivalentKeyMap());\n        }\n\n        map = map.get(propertyValue);\n      } // If an _ekm_value exists, there was already an equivalent key. Before\n      // overriding, ensure that the old key reference is removed from map to\n      // avoid memory leak of accumulating equivalent keys. This is, in a\n      // sense, a poor man's WeakMap, while still enabling iterability.\n\n\n      var previousValuePair = map.get('_ekm_value');\n\n      if (previousValuePair) {\n        this._map.delete(previousValuePair[0]);\n      }\n\n      map.set('_ekm_value', valuePair);\n\n      this._map.set(key, valuePair);\n\n      return this;\n    }\n    /**\n     * Returns a specified element.\n     *\n     * @param {*} key The key of the element to return.\n     *\n     * @return {?*} The element associated with the specified key or undefined\n     *              if the key can't be found.\n     */\n\n  }, {\n    key: \"get\",\n    value: function get(key) {\n      // Shortcut non-object-like to get from internal Map.\n      if (key === null || _typeof(key) !== 'object') {\n        return this._map.get(key);\n      }\n\n      var valuePair = getValuePair(this, key);\n\n      if (valuePair) {\n        return valuePair[1];\n      }\n    }\n    /**\n     * Returns a boolean indicating whether an element with the specified key\n     * exists or not.\n     *\n     * @param {*} key The key of the element to test for presence.\n     *\n     * @return {boolean} Whether an element with the specified key exists.\n     */\n\n  }, {\n    key: \"has\",\n    value: function has(key) {\n      if (key === null || _typeof(key) !== 'object') {\n        return this._map.has(key);\n      } // Test on the _presence_ of the pair, not its value, as even undefined\n      // can be a valid member value for a key.\n\n\n      return getValuePair(this, key) !== undefined;\n    }\n    /**\n     * Removes the specified element.\n     *\n     * @param {*} key The key of the element to remove.\n     *\n     * @return {boolean} Returns true if an element existed and has been\n     *                   removed, or false if the element does not exist.\n     */\n\n  }, {\n    key: \"delete\",\n    value: function _delete(key) {\n      if (!this.has(key)) {\n        return false;\n      } // This naive implementation will leave orphaned child trees. A better\n      // implementation should traverse and remove orphans.\n\n\n      this.set(key, undefined);\n      return true;\n    }\n    /**\n     * Executes a provided function once per each key/value pair, in insertion\n     * order.\n     *\n     * @param {Function} callback Function to execute for each element.\n     * @param {*}        thisArg  Value to use as `this` when executing\n     *                            `callback`.\n     */\n\n  }, {\n    key: \"forEach\",\n    value: function forEach(callback) {\n      var _this = this;\n\n      var thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this;\n\n      this._map.forEach(function (value, key) {\n        // Unwrap value from object-like value pair.\n        if (key !== null && _typeof(key) === 'object') {\n          value = value[1];\n        }\n\n        callback.call(thisArg, value, key, _this);\n      });\n    }\n    /**\n     * Removes all elements.\n     */\n\n  }, {\n    key: \"clear\",\n    value: function clear() {\n      this._map = new Map();\n      this._arrayTreeMap = new Map();\n      this._objectTreeMap = new Map();\n    }\n  }, {\n    key: \"size\",\n    get: function get() {\n      return this._map.size;\n    }\n  }]);\n\n  return EquivalentKeyMap;\n}();\n\nmodule.exports = EquivalentKeyMap;\n","function combineReducers( reducers ) {\n\tvar keys = Object.keys( reducers ),\n\t\tgetNextState;\n\n\tgetNextState = ( function() {\n\t\tvar fn, i, key;\n\n\t\tfn = 'return {';\n\t\tfor ( i = 0; i < keys.length; i++ ) {\n\t\t\t// Rely on Quoted escaping of JSON.stringify with guarantee that\n\t\t\t// each member of Object.keys is a string.\n\t\t\t//\n\t\t\t// \"If Type(value) is String, then return the result of calling the\n\t\t\t// abstract operation Quote with argument value. [...] The abstract\n\t\t\t// operation Quote(value) wraps a String value in double quotes and\n\t\t\t// escapes characters within it.\"\n\t\t\t//\n\t\t\t// https://www.ecma-international.org/ecma-262/5.1/#sec-15.12.3\n\t\t\tkey = JSON.stringify( keys[ i ] );\n\n\t\t\tfn += key + ':r[' + key + '](s[' + key + '],a),';\n\t\t}\n\t\tfn += '}';\n\n\t\treturn new Function( 'r,s,a', fn );\n\t} )();\n\n\treturn function combinedReducer( state, action ) {\n\t\tvar nextState, i, key;\n\n\t\t// Assumed changed if initial state.\n\t\tif ( state === undefined ) {\n\t\t\treturn getNextState( reducers, {}, action );\n\t\t}\n\n\t\tnextState = getNextState( reducers, state, action );\n\n\t\t// Determine whether state has changed.\n\t\ti = keys.length;\n\t\twhile ( i-- ) {\n\t\t\tkey = keys[ i ];\n\t\t\tif ( state[ key ] !== nextState[ key ] ) {\n\t\t\t\t// Return immediately if a changed value is encountered.\n\t\t\t\treturn nextState;\n\t\t\t}\n\t\t}\n\n\t\treturn state;\n\t};\n}\n\nmodule.exports = combineReducers;\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](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\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};","// 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__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// 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};","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"lodash\"];","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"deprecated\"];","export default function _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}","import defineProperty from \"./defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) {\n  var keys = Object.keys(object);\n\n  if (Object.getOwnPropertySymbols) {\n    var symbols = Object.getOwnPropertySymbols(object);\n\n    if (enumerableOnly) {\n      symbols = symbols.filter(function (sym) {\n        return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n      });\n    }\n\n    keys.push.apply(keys, symbols);\n  }\n\n  return keys;\n}\n\nexport default function _objectSpread2(target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i] != null ? arguments[i] : {};\n\n    if (i % 2) {\n      ownKeys(Object(source), true).forEach(function (key) {\n        defineProperty(target, key, source[key]);\n      });\n    } else if (Object.getOwnPropertyDescriptors) {\n      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n    } else {\n      ownKeys(Object(source)).forEach(function (key) {\n        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n      });\n    }\n  }\n\n  return target;\n}","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\n\n/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nfunction formatProdErrorMessage(code) {\n  return \"Minified Redux error #\" + code + \"; visit https://redux.js.org/Errors?code=\" + code + \" for the full message or \" + 'use the non-minified dev environment for full errors. ';\n}\n\n// Inlined version of the `symbol-observable` polyfill\nvar $$observable = (function () {\n  return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n})();\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n  return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n  INIT: \"@@redux/INIT\" + randomString(),\n  REPLACE: \"@@redux/REPLACE\" + randomString(),\n  PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n    return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n  }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n  if (typeof obj !== 'object' || obj === null) return false;\n  var proto = obj;\n\n  while (Object.getPrototypeOf(proto) !== null) {\n    proto = Object.getPrototypeOf(proto);\n  }\n\n  return Object.getPrototypeOf(obj) === proto;\n}\n\n// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\nfunction miniKindOf(val) {\n  if (val === void 0) return 'undefined';\n  if (val === null) return 'null';\n  var type = typeof val;\n\n  switch (type) {\n    case 'boolean':\n    case 'string':\n    case 'number':\n    case 'symbol':\n    case 'function':\n      {\n        return type;\n      }\n  }\n\n  if (Array.isArray(val)) return 'array';\n  if (isDate(val)) return 'date';\n  if (isError(val)) return 'error';\n  var constructorName = ctorName(val);\n\n  switch (constructorName) {\n    case 'Symbol':\n    case 'Promise':\n    case 'WeakMap':\n    case 'WeakSet':\n    case 'Map':\n    case 'Set':\n      return constructorName;\n  } // other\n\n\n  return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n}\n\nfunction ctorName(val) {\n  return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\n\nfunction isError(val) {\n  return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n}\n\nfunction isDate(val) {\n  if (val instanceof Date) return true;\n  return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n}\n\nfunction kindOf(val) {\n  var typeOfVal = typeof val;\n\n  if (process.env.NODE_ENV !== 'production') {\n    typeOfVal = miniKindOf(val);\n  }\n\n  return typeOfVal;\n}\n\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n  var _ref2;\n\n  if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n    throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');\n  }\n\n  if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n    enhancer = preloadedState;\n    preloadedState = undefined;\n  }\n\n  if (typeof enhancer !== 'undefined') {\n    if (typeof enhancer !== 'function') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : \"Expected the enhancer to be a function. Instead, received: '\" + kindOf(enhancer) + \"'\");\n    }\n\n    return enhancer(createStore)(reducer, preloadedState);\n  }\n\n  if (typeof reducer !== 'function') {\n    throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : \"Expected the root reducer to be a function. Instead, received: '\" + kindOf(reducer) + \"'\");\n  }\n\n  var currentReducer = reducer;\n  var currentState = preloadedState;\n  var currentListeners = [];\n  var nextListeners = currentListeners;\n  var isDispatching = false;\n  /**\n   * This makes a shallow copy of currentListeners so we can use\n   * nextListeners as a temporary list while dispatching.\n   *\n   * This prevents any bugs around consumers calling\n   * subscribe/unsubscribe in the middle of a dispatch.\n   */\n\n  function ensureCanMutateNextListeners() {\n    if (nextListeners === currentListeners) {\n      nextListeners = currentListeners.slice();\n    }\n  }\n  /**\n   * Reads the state tree managed by the store.\n   *\n   * @returns {any} The current state tree of your application.\n   */\n\n\n  function getState() {\n    if (isDispatching) {\n      throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n    }\n\n    return currentState;\n  }\n  /**\n   * Adds a change listener. It will be called any time an action is dispatched,\n   * and some part of the state tree may potentially have changed. You may then\n   * call `getState()` to read the current state tree inside the callback.\n   *\n   * You may call `dispatch()` from a change listener, with the following\n   * caveats:\n   *\n   * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n   * If you subscribe or unsubscribe while the listeners are being invoked, this\n   * will not have any effect on the `dispatch()` that is currently in progress.\n   * However, the next `dispatch()` call, whether nested or not, will use a more\n   * recent snapshot of the subscription list.\n   *\n   * 2. The listener should not expect to see all state changes, as the state\n   * might have been updated multiple times during a nested `dispatch()` before\n   * the listener is called. It is, however, guaranteed that all subscribers\n   * registered before the `dispatch()` started will be called with the latest\n   * state by the time it exits.\n   *\n   * @param {Function} listener A callback to be invoked on every dispatch.\n   * @returns {Function} A function to remove this change listener.\n   */\n\n\n  function subscribe(listener) {\n    if (typeof listener !== 'function') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : \"Expected the listener to be a function. Instead, received: '\" + kindOf(listener) + \"'\");\n    }\n\n    if (isDispatching) {\n      throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n    }\n\n    var isSubscribed = true;\n    ensureCanMutateNextListeners();\n    nextListeners.push(listener);\n    return function unsubscribe() {\n      if (!isSubscribed) {\n        return;\n      }\n\n      if (isDispatching) {\n        throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n      }\n\n      isSubscribed = false;\n      ensureCanMutateNextListeners();\n      var index = nextListeners.indexOf(listener);\n      nextListeners.splice(index, 1);\n      currentListeners = null;\n    };\n  }\n  /**\n   * Dispatches an action. It is the only way to trigger a state change.\n   *\n   * The `reducer` function, used to create the store, will be called with the\n   * current state tree and the given `action`. Its return value will\n   * be considered the **next** state of the tree, and the change listeners\n   * will be notified.\n   *\n   * The base implementation only supports plain object actions. If you want to\n   * dispatch a Promise, an Observable, a thunk, or something else, you need to\n   * wrap your store creating function into the corresponding middleware. For\n   * example, see the documentation for the `redux-thunk` package. Even the\n   * middleware will eventually dispatch plain object actions using this method.\n   *\n   * @param {Object} action A plain object representing “what changed”. It is\n   * a good idea to keep actions serializable so you can record and replay user\n   * sessions, or use the time travelling `redux-devtools`. An action must have\n   * a `type` property which may not be `undefined`. It is a good idea to use\n   * string constants for action types.\n   *\n   * @returns {Object} For convenience, the same action object you dispatched.\n   *\n   * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n   * return something else (for example, a Promise you can await).\n   */\n\n\n  function dispatch(action) {\n    if (!isPlainObject(action)) {\n      throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : \"Actions must be plain objects. Instead, the actual type was: '\" + kindOf(action) + \"'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.\");\n    }\n\n    if (typeof action.type === 'undefined') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n    }\n\n    if (isDispatching) {\n      throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : 'Reducers may not dispatch actions.');\n    }\n\n    try {\n      isDispatching = true;\n      currentState = currentReducer(currentState, action);\n    } finally {\n      isDispatching = false;\n    }\n\n    var listeners = currentListeners = nextListeners;\n\n    for (var i = 0; i < listeners.length; i++) {\n      var listener = listeners[i];\n      listener();\n    }\n\n    return action;\n  }\n  /**\n   * Replaces the reducer currently used by the store to calculate the state.\n   *\n   * You might need this if your app implements code splitting and you want to\n   * load some of the reducers dynamically. You might also need this if you\n   * implement a hot reloading mechanism for Redux.\n   *\n   * @param {Function} nextReducer The reducer for the store to use instead.\n   * @returns {void}\n   */\n\n\n  function replaceReducer(nextReducer) {\n    if (typeof nextReducer !== 'function') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : \"Expected the nextReducer to be a function. Instead, received: '\" + kindOf(nextReducer));\n    }\n\n    currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n    // Any reducers that existed in both the new and old rootReducer\n    // will receive the previous state. This effectively populates\n    // the new state tree with any relevant data from the old one.\n\n    dispatch({\n      type: ActionTypes.REPLACE\n    });\n  }\n  /**\n   * Interoperability point for observable/reactive libraries.\n   * @returns {observable} A minimal observable of state changes.\n   * For more information, see the observable proposal:\n   * https://github.com/tc39/proposal-observable\n   */\n\n\n  function observable() {\n    var _ref;\n\n    var outerSubscribe = subscribe;\n    return _ref = {\n      /**\n       * The minimal observable subscription method.\n       * @param {Object} observer Any object that can be used as an observer.\n       * The observer object should have a `next` method.\n       * @returns {subscription} An object with an `unsubscribe` method that can\n       * be used to unsubscribe the observable from the store, and prevent further\n       * emission of values from the observable.\n       */\n      subscribe: function subscribe(observer) {\n        if (typeof observer !== 'object' || observer === null) {\n          throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : \"Expected the observer to be an object. Instead, received: '\" + kindOf(observer) + \"'\");\n        }\n\n        function observeState() {\n          if (observer.next) {\n            observer.next(getState());\n          }\n        }\n\n        observeState();\n        var unsubscribe = outerSubscribe(observeState);\n        return {\n          unsubscribe: unsubscribe\n        };\n      }\n    }, _ref[$$observable] = function () {\n      return this;\n    }, _ref;\n  } // When a store is created, an \"INIT\" action is dispatched so that every\n  // reducer returns their initial state. This effectively populates\n  // the initial state tree.\n\n\n  dispatch({\n    type: ActionTypes.INIT\n  });\n  return _ref2 = {\n    dispatch: dispatch,\n    subscribe: subscribe,\n    getState: getState,\n    replaceReducer: replaceReducer\n  }, _ref2[$$observable] = observable, _ref2;\n}\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n  /* eslint-disable no-console */\n  if (typeof console !== 'undefined' && typeof console.error === 'function') {\n    console.error(message);\n  }\n  /* eslint-enable no-console */\n\n\n  try {\n    // This error was thrown as a convenience so that if you enable\n    // \"break on all exceptions\" in your console,\n    // it would pause the execution at this line.\n    throw new Error(message);\n  } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n  var reducerKeys = Object.keys(reducers);\n  var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n  if (reducerKeys.length === 0) {\n    return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n  }\n\n  if (!isPlainObject(inputState)) {\n    return \"The \" + argumentName + \" has unexpected type of \\\"\" + kindOf(inputState) + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n  }\n\n  var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n    return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n  });\n  unexpectedKeys.forEach(function (key) {\n    unexpectedKeyCache[key] = true;\n  });\n  if (action && action.type === ActionTypes.REPLACE) return;\n\n  if (unexpectedKeys.length > 0) {\n    return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n  }\n}\n\nfunction assertReducerShape(reducers) {\n  Object.keys(reducers).forEach(function (key) {\n    var reducer = reducers[key];\n    var initialState = reducer(undefined, {\n      type: ActionTypes.INIT\n    });\n\n    if (typeof initialState === 'undefined') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n    }\n\n    if (typeof reducer(undefined, {\n      type: ActionTypes.PROBE_UNKNOWN_ACTION()\n    }) === 'undefined') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle '\" + ActionTypes.INIT + \"' or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n    }\n  });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n  var reducerKeys = Object.keys(reducers);\n  var finalReducers = {};\n\n  for (var i = 0; i < reducerKeys.length; i++) {\n    var key = reducerKeys[i];\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (typeof reducers[key] === 'undefined') {\n        warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n      }\n    }\n\n    if (typeof reducers[key] === 'function') {\n      finalReducers[key] = reducers[key];\n    }\n  }\n\n  var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n  // keys multiple times.\n\n  var unexpectedKeyCache;\n\n  if (process.env.NODE_ENV !== 'production') {\n    unexpectedKeyCache = {};\n  }\n\n  var shapeAssertionError;\n\n  try {\n    assertReducerShape(finalReducers);\n  } catch (e) {\n    shapeAssertionError = e;\n  }\n\n  return function combination(state, action) {\n    if (state === void 0) {\n      state = {};\n    }\n\n    if (shapeAssertionError) {\n      throw shapeAssertionError;\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n      if (warningMessage) {\n        warning(warningMessage);\n      }\n    }\n\n    var hasChanged = false;\n    var nextState = {};\n\n    for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n      var _key = finalReducerKeys[_i];\n      var reducer = finalReducers[_key];\n      var previousStateForKey = state[_key];\n      var nextStateForKey = reducer(previousStateForKey, action);\n\n      if (typeof nextStateForKey === 'undefined') {\n        var actionType = action && action.type;\n        throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : \"When called with an action of type \" + (actionType ? \"\\\"\" + String(actionType) + \"\\\"\" : '(unknown type)') + \", the slice reducer for key \\\"\" + _key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\");\n      }\n\n      nextState[_key] = nextStateForKey;\n      hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n    }\n\n    hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n    return hasChanged ? nextState : state;\n  };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n  return function () {\n    return dispatch(actionCreator.apply(this, arguments));\n  };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n  if (typeof actionCreators === 'function') {\n    return bindActionCreator(actionCreators, dispatch);\n  }\n\n  if (typeof actionCreators !== 'object' || actionCreators === null) {\n    throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : \"bindActionCreators expected an object or a function, but instead received: '\" + kindOf(actionCreators) + \"'. \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n  }\n\n  var boundActionCreators = {};\n\n  for (var key in actionCreators) {\n    var actionCreator = actionCreators[key];\n\n    if (typeof actionCreator === 'function') {\n      boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n    }\n  }\n\n  return boundActionCreators;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n  for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n    funcs[_key] = arguments[_key];\n  }\n\n  if (funcs.length === 0) {\n    return function (arg) {\n      return arg;\n    };\n  }\n\n  if (funcs.length === 1) {\n    return funcs[0];\n  }\n\n  return funcs.reduce(function (a, b) {\n    return function () {\n      return a(b.apply(void 0, arguments));\n    };\n  });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n  for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n    middlewares[_key] = arguments[_key];\n  }\n\n  return function (createStore) {\n    return function () {\n      var store = createStore.apply(void 0, arguments);\n\n      var _dispatch = function dispatch() {\n        throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n      };\n\n      var middlewareAPI = {\n        getState: store.getState,\n        dispatch: function dispatch() {\n          return _dispatch.apply(void 0, arguments);\n        }\n      };\n      var chain = middlewares.map(function (middleware) {\n        return middleware(middlewareAPI);\n      });\n      _dispatch = compose.apply(void 0, chain)(store.dispatch);\n      return _objectSpread(_objectSpread({}, store), {}, {\n        dispatch: _dispatch\n      });\n    };\n  };\n}\n\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n  warning('You are currently using minified code outside of NODE_ENV === \"production\". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore };\n","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"reduxRoutine\"];","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"compose\"];","/**\n * Creates a selector function that takes additional curried argument with the\n * registry `select` function. While a regular selector has signature\n * ```js\n * ( state, ...selectorArgs ) => ( result )\n * ```\n * that allows to select data from the store's `state`, a registry selector\n * has signature:\n * ```js\n * ( select ) => ( state, ...selectorArgs ) => ( result )\n * ```\n * that supports also selecting from other registered stores.\n *\n * @example\n * ```js\n * import { store as coreStore } from '@wordpress/core-data';\n * import { store as editorStore } from '@wordpress/editor';\n *\n * const getCurrentPostId = createRegistrySelector( ( select ) => ( state ) => {\n *   return select( editorStore ).getCurrentPostId();\n * } );\n *\n * const getPostEdits = createRegistrySelector( ( select ) => ( state ) => {\n *   // calling another registry selector just like any other function\n *   const postType = getCurrentPostType( state );\n *   const postId = getCurrentPostId( state );\n *\t return select( coreStore ).getEntityRecordEdits( 'postType', postType, postId );\n * } );\n * ```\n *\n * Note how the `getCurrentPostId` selector can be called just like any other function,\n * (it works even inside a regular non-registry selector) and we don't need to pass the\n * registry as argument. The registry binding happens automatically when registering the selector\n * with a store.\n *\n * @param {Function} registrySelector Function receiving a registry `select`\n *                                    function and returning a state selector.\n *\n * @return {Function} Registry selector that can be registered with a store.\n */\nexport function createRegistrySelector( registrySelector ) {\n\t// Create a selector function that is bound to the registry referenced by `selector.registry`\n\t// and that has the same API as a regular selector. Binding it in such a way makes it\n\t// possible to call the selector directly from another selector.\n\tconst selector = ( ...args ) =>\n\t\tregistrySelector( selector.registry.select )( ...args );\n\n\t/**\n\t * Flag indicating that the selector is a registry selector that needs the correct registry\n\t * reference to be assigned to `selecto.registry` to make it work correctly.\n\t * be mapped as a registry selector.\n\t *\n\t * @type {boolean}\n\t */\n\tselector.isRegistrySelector = true;\n\n\treturn selector;\n}\n\n/**\n * Creates a control function that takes additional curried argument with the `registry` object.\n * While a regular control has signature\n * ```js\n * ( action ) => ( iteratorOrPromise )\n * ```\n * where the control works with the `action` that it's bound to, a registry control has signature:\n * ```js\n * ( registry ) => ( action ) => ( iteratorOrPromise )\n * ```\n * A registry control is typically used to select data or dispatch an action to a registered\n * store.\n *\n * When registering a control created with `createRegistryControl` with a store, the store\n * knows which calling convention to use when executing the control.\n *\n * @param {Function} registryControl Function receiving a registry object and returning a control.\n *\n * @return {Function} Registry control that can be registered with a store.\n */\nexport function createRegistryControl( registryControl ) {\n\tregistryControl.isRegistryControl = true;\n\n\treturn registryControl;\n}\n","/**\n * Internal dependencies\n */\nimport { createRegistryControl } from './factory';\n\n/** @typedef {import('./types').StoreDescriptor} StoreDescriptor */\n\nconst SELECT = '@@data/SELECT';\nconst RESOLVE_SELECT = '@@data/RESOLVE_SELECT';\nconst DISPATCH = '@@data/DISPATCH';\n\nfunction isObject( object ) {\n\treturn object !== null && typeof object === 'object';\n}\n\n/**\n * Dispatches a control action for triggering a synchronous registry select.\n *\n * Note: This control synchronously returns the current selector value, triggering the\n * resolution, but not waiting for it.\n *\n * @param {string|StoreDescriptor} storeNameOrDescriptor Unique namespace identifier for the store\n * @param {string}                 selectorName          The name of the selector.\n * @param {Array}                  args                  Arguments for the selector.\n *\n * @example\n * ```js\n * import { controls } from '@wordpress/data';\n *\n * // Action generator using `select`.\n * export function* myAction() {\n *   const isEditorSideBarOpened = yield controls.select( 'core/edit-post', 'isEditorSideBarOpened' );\n *   // Do stuff with the result from the `select`.\n * }\n * ```\n *\n * @return {Object} The control descriptor.\n */\nfunction select( storeNameOrDescriptor, selectorName, ...args ) {\n\treturn {\n\t\ttype: SELECT,\n\t\tstoreKey: isObject( storeNameOrDescriptor )\n\t\t\t? storeNameOrDescriptor.name\n\t\t\t: storeNameOrDescriptor,\n\t\tselectorName,\n\t\targs,\n\t};\n}\n\n/**\n * Dispatches a control action for triggering and resolving a registry select.\n *\n * Note: when this control action is handled, it automatically considers\n * selectors that may have a resolver. In such case, it will return a `Promise` that resolves\n * after the selector finishes resolving, with the final result value.\n *\n * @param {string|StoreDescriptor} storeNameOrDescriptor Unique namespace identifier for the store\n * @param {string}                 selectorName          The name of the selector\n * @param {Array}                  args                  Arguments for the selector.\n *\n * @example\n * ```js\n * import { controls } from '@wordpress/data';\n *\n * // Action generator using resolveSelect\n * export function* myAction() {\n * \tconst isSidebarOpened = yield controls.resolveSelect( 'core/edit-post', 'isEditorSideBarOpened' );\n * \t// do stuff with the result from the select.\n * }\n * ```\n *\n * @return {Object} The control descriptor.\n */\nfunction resolveSelect( storeNameOrDescriptor, selectorName, ...args ) {\n\treturn {\n\t\ttype: RESOLVE_SELECT,\n\t\tstoreKey: isObject( storeNameOrDescriptor )\n\t\t\t? storeNameOrDescriptor.name\n\t\t\t: storeNameOrDescriptor,\n\t\tselectorName,\n\t\targs,\n\t};\n}\n\n/**\n * Dispatches a control action for triggering a registry dispatch.\n *\n * @param {string|StoreDescriptor} storeNameOrDescriptor Unique namespace identifier for the store\n * @param {string}                 actionName            The name of the action to dispatch\n * @param {Array}                  args                  Arguments for the dispatch action.\n *\n * @example\n * ```js\n * import { controls } from '@wordpress/data-controls';\n *\n * // Action generator using dispatch\n * export function* myAction() {\n *   yield controls.dispatch( 'core/edit-post', 'togglePublishSidebar' );\n *   // do some other things.\n * }\n * ```\n *\n * @return {Object}  The control descriptor.\n */\nfunction dispatch( storeNameOrDescriptor, actionName, ...args ) {\n\treturn {\n\t\ttype: DISPATCH,\n\t\tstoreKey: isObject( storeNameOrDescriptor )\n\t\t\t? storeNameOrDescriptor.name\n\t\t\t: storeNameOrDescriptor,\n\t\tactionName,\n\t\targs,\n\t};\n}\n\nexport const controls = { select, resolveSelect, dispatch };\n\nexport const builtinControls = {\n\t[ SELECT ]: createRegistryControl(\n\t\t( registry ) =>\n\t\t\t( { storeKey, selectorName, args } ) =>\n\t\t\t\tregistry.select( storeKey )[ selectorName ]( ...args )\n\t),\n\t[ RESOLVE_SELECT ]: createRegistryControl(\n\t\t( registry ) =>\n\t\t\t( { storeKey, selectorName, args } ) => {\n\t\t\t\tconst method = registry.select( storeKey )[ selectorName ]\n\t\t\t\t\t.hasResolver\n\t\t\t\t\t? 'resolveSelect'\n\t\t\t\t\t: 'select';\n\t\t\t\treturn registry[ method ]( storeKey )[ selectorName ](\n\t\t\t\t\t...args\n\t\t\t\t);\n\t\t\t}\n\t),\n\t[ DISPATCH ]: createRegistryControl(\n\t\t( registry ) =>\n\t\t\t( { storeKey, actionName, args } ) =>\n\t\t\t\tregistry.dispatch( storeKey )[ actionName ]( ...args )\n\t),\n};\n","/**\n * External dependencies\n */\nimport isPromise from 'is-promise';\n\n/**\n * Simplest possible promise redux middleware.\n *\n * @type {import('redux').Middleware}\n */\nconst promiseMiddleware = () => ( next ) => ( action ) => {\n\tif ( isPromise( action ) ) {\n\t\treturn action.then( ( resolvedAction ) => {\n\t\t\tif ( resolvedAction ) {\n\t\t\t\treturn next( resolvedAction );\n\t\t\t}\n\t\t} );\n\t}\n\n\treturn next( action );\n};\n\nexport default promiseMiddleware;\n","export default function isPromise(obj) {\n  return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function';\n}\n","const coreDataStore = {\n\tname: 'core/data',\n\tinstantiate( registry ) {\n\t\tconst getCoreDataSelector =\n\t\t\t( selectorName ) =>\n\t\t\t( key, ...args ) => {\n\t\t\t\treturn registry.select( key )[ selectorName ]( ...args );\n\t\t\t};\n\n\t\tconst getCoreDataAction =\n\t\t\t( actionName ) =>\n\t\t\t( key, ...args ) => {\n\t\t\t\treturn registry.dispatch( key )[ actionName ]( ...args );\n\t\t\t};\n\n\t\treturn {\n\t\t\tgetSelectors() {\n\t\t\t\treturn Object.fromEntries(\n\t\t\t\t\t[\n\t\t\t\t\t\t'getIsResolving',\n\t\t\t\t\t\t'hasStartedResolution',\n\t\t\t\t\t\t'hasFinishedResolution',\n\t\t\t\t\t\t'isResolving',\n\t\t\t\t\t\t'getCachedResolvers',\n\t\t\t\t\t].map( ( selectorName ) => [\n\t\t\t\t\t\tselectorName,\n\t\t\t\t\t\tgetCoreDataSelector( selectorName ),\n\t\t\t\t\t] )\n\t\t\t\t);\n\t\t\t},\n\n\t\t\tgetActions() {\n\t\t\t\treturn Object.fromEntries(\n\t\t\t\t\t[\n\t\t\t\t\t\t'startResolution',\n\t\t\t\t\t\t'finishResolution',\n\t\t\t\t\t\t'invalidateResolution',\n\t\t\t\t\t\t'invalidateResolutionForStore',\n\t\t\t\t\t\t'invalidateResolutionForStoreSelector',\n\t\t\t\t\t].map( ( actionName ) => [\n\t\t\t\t\t\tactionName,\n\t\t\t\t\t\tgetCoreDataAction( actionName ),\n\t\t\t\t\t] )\n\t\t\t\t);\n\t\t\t},\n\n\t\t\tsubscribe() {\n\t\t\t\t// There's no reasons to trigger any listener when we subscribe to this store\n\t\t\t\t// because there's no state stored in this store that need to retrigger selectors\n\t\t\t\t// if a change happens, the corresponding store where the tracking stated live\n\t\t\t\t// would have already triggered a \"subscribe\" call.\n\t\t\t\treturn () => () => {};\n\t\t\t},\n\t\t};\n\t},\n};\n\nexport default coreDataStore;\n","/**\n * External dependencies\n */\nimport { get } from 'lodash';\n\n/**\n * Internal dependencies\n */\nimport coreDataStore from './store';\n\n/** @typedef {import('./registry').WPDataRegistry} WPDataRegistry */\n\n/**\n * Creates a middleware handling resolvers cache invalidation.\n *\n * @param {WPDataRegistry} registry   The registry reference for which to create\n *                                    the middleware.\n * @param {string}         reducerKey The namespace for which to create the\n *                                    middleware.\n *\n * @return {Function} Middleware function.\n */\nconst createResolversCacheMiddleware =\n\t( registry, reducerKey ) => () => ( next ) => ( action ) => {\n\t\tconst resolvers = registry\n\t\t\t.select( coreDataStore )\n\t\t\t.getCachedResolvers( reducerKey );\n\t\tObject.entries( resolvers ).forEach(\n\t\t\t( [ selectorName, resolversByArgs ] ) => {\n\t\t\t\tconst resolver = get( registry.stores, [\n\t\t\t\t\treducerKey,\n\t\t\t\t\t'resolvers',\n\t\t\t\t\tselectorName,\n\t\t\t\t] );\n\t\t\t\tif ( ! resolver || ! resolver.shouldInvalidate ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tresolversByArgs.forEach( ( value, args ) => {\n\t\t\t\t\t// resolversByArgs is the map Map([ args ] => boolean) storing the cache resolution status for a given selector.\n\t\t\t\t\t// If the value is \"finished\" or \"error\" it means this resolver has finished its resolution which means we need\n\t\t\t\t\t// to invalidate it, if it's true it means it's inflight and the invalidation is not necessary.\n\t\t\t\t\tif (\n\t\t\t\t\t\t( value?.status !== 'finished' &&\n\t\t\t\t\t\t\tvalue?.status !== 'error' ) ||\n\t\t\t\t\t\t! resolver.shouldInvalidate( action, ...args )\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Trigger cache invalidation\n\t\t\t\t\tregistry\n\t\t\t\t\t\t.dispatch( coreDataStore )\n\t\t\t\t\t\t.invalidateResolution( reducerKey, selectorName, args );\n\t\t\t\t} );\n\t\t\t}\n\t\t);\n\t\treturn next( action );\n\t};\n\nexport default createResolversCacheMiddleware;\n","/**\n * External dependencies\n */\nimport type { AnyAction, Reducer } from 'redux';\n\n/**\n * Higher-order reducer creator which creates a combined reducer object, keyed\n * by a property on the action object.\n *\n * @param  actionProperty Action property by which to key object.\n * @return Higher-order reducer.\n */\nexport const onSubKey =\n\t< TState extends unknown, TAction extends AnyAction >(\n\t\tactionProperty: string\n\t) =>\n\t(\n\t\treducer: Reducer< TState, TAction >\n\t): Reducer< Record< string, TState >, TAction > =>\n\t( state: Record< string, TState > = {}, action ) => {\n\t\t// Retrieve subkey from action. Do not track if undefined; useful for cases\n\t\t// where reducer is scoped by action shape.\n\t\tconst key = action[ actionProperty ];\n\t\tif ( key === undefined ) {\n\t\t\treturn state;\n\t\t}\n\n\t\t// Avoid updating state if unchanged. Note that this also accounts for a\n\t\t// reducer which returns undefined on a key which is not yet tracked.\n\t\tconst nextKeyState = reducer( state[ key ], action );\n\t\tif ( nextKeyState === state[ key ] ) {\n\t\t\treturn state;\n\t\t}\n\n\t\treturn {\n\t\t\t...state,\n\t\t\t[ key ]: nextKeyState,\n\t\t};\n\t};\n\n/**\n * Normalize selector argument array by defaulting `undefined` value to an empty array\n * and removing trailing `undefined` values.\n *\n * @param  args Selector argument array\n * @return Normalized state key array\n */\nexport function selectorArgsToStateKey( args: unknown[] | null | undefined ) {\n\tif ( args === undefined || args === null ) {\n\t\treturn [];\n\t}\n\n\tconst len = args.length;\n\tlet idx = len;\n\twhile ( idx > 0 && args[ idx - 1 ] === undefined ) {\n\t\tidx--;\n\t}\n\treturn idx === len ? args : args.slice( 0, idx );\n}\n","/**\n * External dependencies\n */\nimport EquivalentKeyMap from 'equivalent-key-map';\nimport type { Reducer } from 'redux';\n\n/**\n * Internal dependencies\n */\nimport { selectorArgsToStateKey, onSubKey } from './utils';\n\ntype Action =\n\t| ReturnType< typeof import('./actions').startResolution >\n\t| ReturnType< typeof import('./actions').finishResolution >\n\t| ReturnType< typeof import('./actions').failResolution >\n\t| ReturnType< typeof import('./actions').startResolutions >\n\t| ReturnType< typeof import('./actions').finishResolutions >\n\t| ReturnType< typeof import('./actions').failResolutions >\n\t| ReturnType< typeof import('./actions').invalidateResolution >\n\t| ReturnType< typeof import('./actions').invalidateResolutionForStore >\n\t| ReturnType<\n\t\t\ttypeof import('./actions').invalidateResolutionForStoreSelector\n\t  >;\n\ntype StateKey = unknown[] | unknown;\nexport type StateValue =\n\t| { status: 'resolving' | 'finished' }\n\t| { status: 'error'; error: Error | unknown };\n\nexport type Status = StateValue[ 'status' ];\nexport type State = EquivalentKeyMap< StateKey, StateValue >;\n\n/**\n * Reducer function returning next state for selector resolution of\n * subkeys, object form:\n *\n *  selectorName -> EquivalentKeyMap<Array,boolean>\n */\nconst subKeysIsResolved: Reducer< Record< string, State >, Action > = onSubKey<\n\tState,\n\tAction\n>( 'selectorName' )( ( state = new EquivalentKeyMap(), action: Action ) => {\n\tswitch ( action.type ) {\n\t\tcase 'START_RESOLUTION': {\n\t\t\tconst nextState = new EquivalentKeyMap( state );\n\t\t\tnextState.set( selectorArgsToStateKey( action.args ), {\n\t\t\t\tstatus: 'resolving',\n\t\t\t} );\n\t\t\treturn nextState;\n\t\t}\n\t\tcase 'FINISH_RESOLUTION': {\n\t\t\tconst nextState = new EquivalentKeyMap( state );\n\t\t\tnextState.set( selectorArgsToStateKey( action.args ), {\n\t\t\t\tstatus: 'finished',\n\t\t\t} );\n\t\t\treturn nextState;\n\t\t}\n\t\tcase 'FAIL_RESOLUTION': {\n\t\t\tconst nextState = new EquivalentKeyMap( state );\n\t\t\tnextState.set( selectorArgsToStateKey( action.args ), {\n\t\t\t\tstatus: 'error',\n\t\t\t\terror: action.error,\n\t\t\t} );\n\t\t\treturn nextState;\n\t\t}\n\t\tcase 'START_RESOLUTIONS': {\n\t\t\tconst nextState = new EquivalentKeyMap( state );\n\t\t\tfor ( const resolutionArgs of action.args ) {\n\t\t\t\tnextState.set( selectorArgsToStateKey( resolutionArgs ), {\n\t\t\t\t\tstatus: 'resolving',\n\t\t\t\t} );\n\t\t\t}\n\t\t\treturn nextState;\n\t\t}\n\t\tcase 'FINISH_RESOLUTIONS': {\n\t\t\tconst nextState = new EquivalentKeyMap( state );\n\t\t\tfor ( const resolutionArgs of action.args ) {\n\t\t\t\tnextState.set( selectorArgsToStateKey( resolutionArgs ), {\n\t\t\t\t\tstatus: 'finished',\n\t\t\t\t} );\n\t\t\t}\n\t\t\treturn nextState;\n\t\t}\n\t\tcase 'FAIL_RESOLUTIONS': {\n\t\t\tconst nextState = new EquivalentKeyMap( state );\n\t\t\taction.args.forEach( ( resolutionArgs, idx ) => {\n\t\t\t\tconst resolutionState: StateValue = {\n\t\t\t\t\tstatus: 'error',\n\t\t\t\t\terror: undefined,\n\t\t\t\t};\n\n\t\t\t\tconst error = action.errors[ idx ];\n\t\t\t\tif ( error ) {\n\t\t\t\t\tresolutionState.error = error;\n\t\t\t\t}\n\n\t\t\t\tnextState.set(\n\t\t\t\t\tselectorArgsToStateKey( resolutionArgs as unknown[] ),\n\t\t\t\t\tresolutionState\n\t\t\t\t);\n\t\t\t} );\n\t\t\treturn nextState;\n\t\t}\n\t\tcase 'INVALIDATE_RESOLUTION': {\n\t\t\tconst nextState = new EquivalentKeyMap( state );\n\t\t\tnextState.delete( selectorArgsToStateKey( action.args ) );\n\t\t\treturn nextState;\n\t\t}\n\t}\n\treturn state;\n} );\n\n/**\n * Reducer function returning next state for selector resolution, object form:\n *\n *   selectorName -> EquivalentKeyMap<Array, boolean>\n *\n * @param  state  Current state.\n * @param  action Dispatched action.\n *\n * @return Next state.\n */\nconst isResolved = ( state: Record< string, State > = {}, action: Action ) => {\n\tswitch ( action.type ) {\n\t\tcase 'INVALIDATE_RESOLUTION_FOR_STORE':\n\t\t\treturn {};\n\t\tcase 'INVALIDATE_RESOLUTION_FOR_STORE_SELECTOR': {\n\t\t\tif ( action.selectorName in state ) {\n\t\t\t\tconst {\n\t\t\t\t\t[ action.selectorName ]: removedSelector,\n\t\t\t\t\t...restState\n\t\t\t\t} = state;\n\t\t\t\treturn restState;\n\t\t\t}\n\t\t\treturn state;\n\t\t}\n\t\tcase 'START_RESOLUTION':\n\t\tcase 'FINISH_RESOLUTION':\n\t\tcase 'FAIL_RESOLUTION':\n\t\tcase 'START_RESOLUTIONS':\n\t\tcase 'FINISH_RESOLUTIONS':\n\t\tcase 'FAIL_RESOLUTIONS':\n\t\tcase 'INVALIDATE_RESOLUTION':\n\t\t\treturn subKeysIsResolved( state, action );\n\t}\n\treturn state;\n};\n\nexport default isResolved;\n","/**\n * External dependencies\n */\nimport { get } from 'lodash';\n\n/**\n * Internal dependencies\n */\nimport { selectorArgsToStateKey } from './utils';\n\n/** @typedef {Record<string, import('./reducer').State>} State */\n/** @typedef {import('./reducer').StateValue} StateValue */\n/** @typedef {import('./reducer').Status} Status */\n\n/**\n * Returns the raw resolution state value for a given selector name,\n * and arguments set. May be undefined if the selector has never been resolved\n * or not resolved for the given set of arguments, otherwise true or false for\n * resolution started and completed respectively.\n *\n * @param {State}      state        Data state.\n * @param {string}     selectorName Selector name.\n * @param {unknown[]?} args         Arguments passed to selector.\n *\n * @return {StateValue|undefined} isResolving value.\n */\nexport function getResolutionState( state, selectorName, args ) {\n\tconst map = get( state, [ selectorName ] );\n\tif ( ! map ) {\n\t\treturn;\n\t}\n\n\treturn map.get( selectorArgsToStateKey( args ) );\n}\n\n/**\n * Returns the raw `isResolving` value for a given selector name,\n * and arguments set. May be undefined if the selector has never been resolved\n * or not resolved for the given set of arguments, otherwise true or false for\n * resolution started and completed respectively.\n *\n * @param {State}      state        Data state.\n * @param {string}     selectorName Selector name.\n * @param {unknown[]?} args         Arguments passed to selector.\n *\n * @return {boolean | undefined} isResolving value.\n */\nexport function getIsResolving( state, selectorName, args ) {\n\tconst resolutionState = getResolutionState( state, selectorName, args );\n\n\treturn resolutionState && resolutionState.status === 'resolving';\n}\n\n/**\n * Returns true if resolution has already been triggered for a given\n * selector name, and arguments set.\n *\n * @param {State}      state        Data state.\n * @param {string}     selectorName Selector name.\n * @param {unknown[]?} args         Arguments passed to selector.\n *\n * @return {boolean} Whether resolution has been triggered.\n */\nexport function hasStartedResolution( state, selectorName, args ) {\n\treturn getResolutionState( state, selectorName, args ) !== undefined;\n}\n\n/**\n * Returns true if resolution has completed for a given selector\n * name, and arguments set.\n *\n * @param {State}      state        Data state.\n * @param {string}     selectorName Selector name.\n * @param {unknown[]?} args         Arguments passed to selector.\n *\n * @return {boolean} Whether resolution has completed.\n */\nexport function hasFinishedResolution( state, selectorName, args ) {\n\tconst status = getResolutionState( state, selectorName, args )?.status;\n\treturn status === 'finished' || status === 'error';\n}\n\n/**\n * Returns true if resolution has failed for a given selector\n * name, and arguments set.\n *\n * @param {State}      state        Data state.\n * @param {string}     selectorName Selector name.\n * @param {unknown[]?} args         Arguments passed to selector.\n *\n * @return {boolean} Has resolution failed\n */\nexport function hasResolutionFailed( state, selectorName, args ) {\n\treturn getResolutionState( state, selectorName, args )?.status === 'error';\n}\n\n/**\n * Returns the resolution error for a given selector name, and arguments set.\n * Note it may be of an Error type, but may also be null, undefined, or anything else\n * that can be `throw`-n.\n *\n * @param {State}      state        Data state.\n * @param {string}     selectorName Selector name.\n * @param {unknown[]?} args         Arguments passed to selector.\n *\n * @return {Error|unknown} Last resolution error\n */\nexport function getResolutionError( state, selectorName, args ) {\n\tconst resolutionState = getResolutionState( state, selectorName, args );\n\treturn resolutionState?.status === 'error' ? resolutionState.error : null;\n}\n\n/**\n * Returns true if resolution has been triggered but has not yet completed for\n * a given selector name, and arguments set.\n *\n * @param {State}      state        Data state.\n * @param {string}     selectorName Selector name.\n * @param {unknown[]?} args         Arguments passed to selector.\n *\n * @return {boolean} Whether resolution is in progress.\n */\nexport function isResolving( state, selectorName, args ) {\n\treturn (\n\t\tgetResolutionState( state, selectorName, args )?.status === 'resolving'\n\t);\n}\n\n/**\n * Returns the list of the cached resolvers.\n *\n * @param {State} state Data state.\n *\n * @return {State} Resolvers mapped by args and selectorName.\n */\nexport function getCachedResolvers( state ) {\n\treturn state;\n}\n","/**\n * Returns an action object used in signalling that selector resolution has\n * started.\n *\n * @param {string}    selectorName Name of selector for which resolver triggered.\n * @param {unknown[]} args         Arguments to associate for uniqueness.\n *\n * @return {{ type: 'START_RESOLUTION', selectorName: string, args: unknown[] }} Action object.\n */\nexport function startResolution( selectorName, args ) {\n\treturn {\n\t\ttype: 'START_RESOLUTION',\n\t\tselectorName,\n\t\targs,\n\t};\n}\n\n/**\n * Returns an action object used in signalling that selector resolution has\n * completed.\n *\n * @param {string}    selectorName Name of selector for which resolver triggered.\n * @param {unknown[]} args         Arguments to associate for uniqueness.\n *\n * @return {{ type: 'FINISH_RESOLUTION', selectorName: string, args: unknown[] }} Action object.\n */\nexport function finishResolution( selectorName, args ) {\n\treturn {\n\t\ttype: 'FINISH_RESOLUTION',\n\t\tselectorName,\n\t\targs,\n\t};\n}\n\n/**\n * Returns an action object used in signalling that selector resolution has\n * failed.\n *\n * @param {string}        selectorName Name of selector for which resolver triggered.\n * @param {unknown[]}     args         Arguments to associate for uniqueness.\n * @param {Error|unknown} error        The error that caused the failure.\n *\n * @return {{ type: 'FAIL_RESOLUTION', selectorName: string, args: unknown[], error: Error|unknown }} Action object.\n */\nexport function failResolution( selectorName, args, error ) {\n\treturn {\n\t\ttype: 'FAIL_RESOLUTION',\n\t\tselectorName,\n\t\targs,\n\t\terror,\n\t};\n}\n\n/**\n * Returns an action object used in signalling that a batch of selector resolutions has\n * started.\n *\n * @param {string}      selectorName Name of selector for which resolver triggered.\n * @param {unknown[][]} args         Array of arguments to associate for uniqueness, each item\n *                                   is associated to a resolution.\n *\n * @return {{ type: 'START_RESOLUTIONS', selectorName: string, args: unknown[][] }} Action object.\n */\nexport function startResolutions( selectorName, args ) {\n\treturn {\n\t\ttype: 'START_RESOLUTIONS',\n\t\tselectorName,\n\t\targs,\n\t};\n}\n\n/**\n * Returns an action object used in signalling that a batch of selector resolutions has\n * completed.\n *\n * @param {string}      selectorName Name of selector for which resolver triggered.\n * @param {unknown[][]} args         Array of arguments to associate for uniqueness, each item\n *                                   is associated to a resolution.\n *\n * @return {{ type: 'FINISH_RESOLUTIONS', selectorName: string, args: unknown[][] }} Action object.\n */\nexport function finishResolutions( selectorName, args ) {\n\treturn {\n\t\ttype: 'FINISH_RESOLUTIONS',\n\t\tselectorName,\n\t\targs,\n\t};\n}\n\n/**\n * Returns an action object used in signalling that a batch of selector resolutions has\n * completed and at least one of them has failed.\n *\n * @param {string}            selectorName Name of selector for which resolver triggered.\n * @param {unknown[]}         args         Array of arguments to associate for uniqueness, each item\n *                                         is associated to a resolution.\n * @param {(Error|unknown)[]} errors       Array of errors to associate for uniqueness, each item\n *                                         is associated to a resolution.\n * @return {{ type: 'FAIL_RESOLUTIONS', selectorName: string, args: unknown[], errors: Array<Error|unknown> }} Action object.\n */\nexport function failResolutions( selectorName, args, errors ) {\n\treturn {\n\t\ttype: 'FAIL_RESOLUTIONS',\n\t\tselectorName,\n\t\targs,\n\t\terrors,\n\t};\n}\n\n/**\n * Returns an action object used in signalling that we should invalidate the resolution cache.\n *\n * @param {string}    selectorName Name of selector for which resolver should be invalidated.\n * @param {unknown[]} args         Arguments to associate for uniqueness.\n *\n * @return {{ type: 'INVALIDATE_RESOLUTION', selectorName: string, args: any[] }} Action object.\n */\nexport function invalidateResolution( selectorName, args ) {\n\treturn {\n\t\ttype: 'INVALIDATE_RESOLUTION',\n\t\tselectorName,\n\t\targs,\n\t};\n}\n\n/**\n * Returns an action object used in signalling that the resolution\n * should be invalidated.\n *\n * @return {{ type: 'INVALIDATE_RESOLUTION_FOR_STORE' }} Action object.\n */\nexport function invalidateResolutionForStore() {\n\treturn {\n\t\ttype: 'INVALIDATE_RESOLUTION_FOR_STORE',\n\t};\n}\n\n/**\n * Returns an action object used in signalling that the resolution cache for a\n * given selectorName should be invalidated.\n *\n * @param {string} selectorName Name of selector for which all resolvers should\n *                              be invalidated.\n *\n * @return  {{ type: 'INVALIDATE_RESOLUTION_FOR_STORE_SELECTOR', selectorName: string }} Action object.\n */\nexport function invalidateResolutionForStoreSelector( selectorName ) {\n\treturn {\n\t\ttype: 'INVALIDATE_RESOLUTION_FOR_STORE_SELECTOR',\n\t\tselectorName,\n\t};\n}\n","/**\n * External dependencies\n */\nimport { createStore, applyMiddleware } from 'redux';\nimport { get, mapValues } from 'lodash';\nimport combineReducers from 'turbo-combine-reducers';\nimport EquivalentKeyMap from 'equivalent-key-map';\n\n/**\n * WordPress dependencies\n */\nimport createReduxRoutineMiddleware from '@wordpress/redux-routine';\nimport { compose } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { builtinControls } from '../controls';\nimport promise from '../promise-middleware';\nimport createResolversCacheMiddleware from '../resolvers-cache-middleware';\nimport createThunkMiddleware from './thunk-middleware';\nimport metadataReducer from './metadata/reducer';\nimport * as metadataSelectors from './metadata/selectors';\nimport * as metadataActions from './metadata/actions';\n\n/** @typedef {import('../types').DataRegistry} DataRegistry */\n/**\n * @typedef {import('../types').StoreDescriptor<C>} StoreDescriptor\n * @template C\n */\n/**\n * @typedef {import('../types').ReduxStoreConfig<State,Actions,Selectors>} ReduxStoreConfig\n * @template State,Actions,Selectors\n */\n\nconst trimUndefinedValues = ( array ) => {\n\tconst result = [ ...array ];\n\tfor ( let i = result.length - 1; i >= 0; i-- ) {\n\t\tif ( result[ i ] === undefined ) {\n\t\t\tresult.splice( i, 1 );\n\t\t}\n\t}\n\treturn result;\n};\n\n/**\n * Create a cache to track whether resolvers started running or not.\n *\n * @return {Object} Resolvers Cache.\n */\nfunction createResolversCache() {\n\tconst cache = {};\n\treturn {\n\t\tisRunning( selectorName, args ) {\n\t\t\treturn (\n\t\t\t\tcache[ selectorName ] &&\n\t\t\t\tcache[ selectorName ].get( trimUndefinedValues( args ) )\n\t\t\t);\n\t\t},\n\n\t\tclear( selectorName, args ) {\n\t\t\tif ( cache[ selectorName ] ) {\n\t\t\t\tcache[ selectorName ].delete( trimUndefinedValues( args ) );\n\t\t\t}\n\t\t},\n\n\t\tmarkAsRunning( selectorName, args ) {\n\t\t\tif ( ! cache[ selectorName ] ) {\n\t\t\t\tcache[ selectorName ] = new EquivalentKeyMap();\n\t\t\t}\n\n\t\t\tcache[ selectorName ].set( trimUndefinedValues( args ), true );\n\t\t},\n\t};\n}\n\n/**\n * Creates a data store descriptor for the provided Redux store configuration containing\n * properties describing reducer, actions, selectors, controls and resolvers.\n *\n * @example\n * ```js\n * import { createReduxStore } from '@wordpress/data';\n *\n * const store = createReduxStore( 'demo', {\n *     reducer: ( state = 'OK' ) => state,\n *     selectors: {\n *         getValue: ( state ) => state,\n *     },\n * } );\n * ```\n *\n * @template State,Actions,Selectors\n * @param {string}                                    key     Unique namespace identifier.\n * @param {ReduxStoreConfig<State,Actions,Selectors>} options Registered store options, with properties\n *                                                            describing reducer, actions, selectors,\n *                                                            and resolvers.\n *\n * @return   {StoreDescriptor<ReduxStoreConfig<State,Actions,Selectors>>} Store Object.\n */\nexport default function createReduxStore( key, options ) {\n\treturn {\n\t\tname: key,\n\t\tinstantiate: ( registry ) => {\n\t\t\tconst reducer = options.reducer;\n\t\t\tconst thunkArgs = {\n\t\t\t\tregistry,\n\t\t\t\tget dispatch() {\n\t\t\t\t\treturn Object.assign(\n\t\t\t\t\t\t( action ) => store.dispatch( action ),\n\t\t\t\t\t\tgetActions()\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tget select() {\n\t\t\t\t\treturn Object.assign(\n\t\t\t\t\t\t( selector ) =>\n\t\t\t\t\t\t\tselector( store.__unstableOriginalGetState() ),\n\t\t\t\t\t\tgetSelectors()\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tget resolveSelect() {\n\t\t\t\t\treturn getResolveSelectors();\n\t\t\t\t},\n\t\t\t};\n\n\t\t\tconst store = instantiateReduxStore(\n\t\t\t\tkey,\n\t\t\t\toptions,\n\t\t\t\tregistry,\n\t\t\t\tthunkArgs\n\t\t\t);\n\t\t\tconst resolversCache = createResolversCache();\n\n\t\t\tlet resolvers;\n\t\t\tconst actions = mapActions(\n\t\t\t\t{\n\t\t\t\t\t...metadataActions,\n\t\t\t\t\t...options.actions,\n\t\t\t\t},\n\t\t\t\tstore\n\t\t\t);\n\n\t\t\tlet selectors = mapSelectors(\n\t\t\t\t{\n\t\t\t\t\t...mapValues(\n\t\t\t\t\t\tmetadataSelectors,\n\t\t\t\t\t\t( selector ) =>\n\t\t\t\t\t\t\t( state, ...args ) =>\n\t\t\t\t\t\t\t\tselector( state.metadata, ...args )\n\t\t\t\t\t),\n\t\t\t\t\t...mapValues( options.selectors, ( selector ) => {\n\t\t\t\t\t\tif ( selector.isRegistrySelector ) {\n\t\t\t\t\t\t\tselector.registry = registry;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn ( state, ...args ) =>\n\t\t\t\t\t\t\tselector( state.root, ...args );\n\t\t\t\t\t} ),\n\t\t\t\t},\n\t\t\t\tstore\n\t\t\t);\n\t\t\tif ( options.resolvers ) {\n\t\t\t\tconst result = mapResolvers(\n\t\t\t\t\toptions.resolvers,\n\t\t\t\t\tselectors,\n\t\t\t\t\tstore,\n\t\t\t\t\tresolversCache\n\t\t\t\t);\n\t\t\t\tresolvers = result.resolvers;\n\t\t\t\tselectors = result.selectors;\n\t\t\t}\n\n\t\t\tconst resolveSelectors = mapResolveSelectors( selectors, store );\n\t\t\tconst suspendSelectors = mapSuspendSelectors( selectors, store );\n\n\t\t\tconst getSelectors = () => selectors;\n\t\t\tconst getActions = () => actions;\n\t\t\tconst getResolveSelectors = () => resolveSelectors;\n\t\t\tconst getSuspendSelectors = () => suspendSelectors;\n\n\t\t\t// We have some modules monkey-patching the store object\n\t\t\t// It's wrong to do so but until we refactor all of our effects to controls\n\t\t\t// We need to keep the same \"store\" instance here.\n\t\t\tstore.__unstableOriginalGetState = store.getState;\n\t\t\tstore.getState = () => store.__unstableOriginalGetState().root;\n\n\t\t\t// Customize subscribe behavior to call listeners only on effective change,\n\t\t\t// not on every dispatch.\n\t\t\tconst subscribe =\n\t\t\t\tstore &&\n\t\t\t\t( ( listener ) => {\n\t\t\t\t\tlet lastState = store.__unstableOriginalGetState();\n\t\t\t\t\treturn store.subscribe( () => {\n\t\t\t\t\t\tconst state = store.__unstableOriginalGetState();\n\t\t\t\t\t\tconst hasChanged = state !== lastState;\n\t\t\t\t\t\tlastState = state;\n\n\t\t\t\t\t\tif ( hasChanged ) {\n\t\t\t\t\t\t\tlistener();\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t} );\n\n\t\t\t// This can be simplified to just { subscribe, getSelectors, getActions }\n\t\t\t// Once we remove the use function.\n\t\t\treturn {\n\t\t\t\treducer,\n\t\t\t\tstore,\n\t\t\t\tactions,\n\t\t\t\tselectors,\n\t\t\t\tresolvers,\n\t\t\t\tgetSelectors,\n\t\t\t\tgetResolveSelectors,\n\t\t\t\tgetSuspendSelectors,\n\t\t\t\tgetActions,\n\t\t\t\tsubscribe,\n\t\t\t};\n\t\t},\n\t};\n}\n\n/**\n * Creates a redux store for a namespace.\n *\n * @param {string}       key       Unique namespace identifier.\n * @param {Object}       options   Registered store options, with properties\n *                                 describing reducer, actions, selectors,\n *                                 and resolvers.\n * @param {DataRegistry} registry  Registry reference.\n * @param {Object}       thunkArgs Argument object for the thunk middleware.\n * @return {Object} Newly created redux store.\n */\nfunction instantiateReduxStore( key, options, registry, thunkArgs ) {\n\tconst controls = {\n\t\t...options.controls,\n\t\t...builtinControls,\n\t};\n\n\tconst normalizedControls = mapValues( controls, ( control ) =>\n\t\tcontrol.isRegistryControl ? control( registry ) : control\n\t);\n\n\tconst middlewares = [\n\t\tcreateResolversCacheMiddleware( registry, key ),\n\t\tpromise,\n\t\tcreateReduxRoutineMiddleware( normalizedControls ),\n\t\tcreateThunkMiddleware( thunkArgs ),\n\t];\n\n\tconst enhancers = [ applyMiddleware( ...middlewares ) ];\n\tif (\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.__REDUX_DEVTOOLS_EXTENSION__\n\t) {\n\t\tenhancers.push(\n\t\t\twindow.__REDUX_DEVTOOLS_EXTENSION__( {\n\t\t\t\tname: key,\n\t\t\t\tinstanceId: key,\n\t\t\t} )\n\t\t);\n\t}\n\n\tconst { reducer, initialState } = options;\n\tconst enhancedReducer = combineReducers( {\n\t\tmetadata: metadataReducer,\n\t\troot: reducer,\n\t} );\n\n\treturn createStore(\n\t\tenhancedReducer,\n\t\t{ root: initialState },\n\t\tcompose( enhancers )\n\t);\n}\n\n/**\n * Maps selectors to a store.\n *\n * @param {Object} selectors Selectors to register. Keys will be used as the\n *                           public facing API. Selectors will get passed the\n *                           state as first argument.\n * @param {Object} store     The store to which the selectors should be mapped.\n * @return {Object} Selectors mapped to the provided store.\n */\nfunction mapSelectors( selectors, store ) {\n\tconst createStateSelector = ( registrySelector ) => {\n\t\tconst selector = function runSelector() {\n\t\t\t// This function is an optimized implementation of:\n\t\t\t//\n\t\t\t//   selector( store.getState(), ...arguments )\n\t\t\t//\n\t\t\t// Where the above would incur an `Array#concat` in its application,\n\t\t\t// the logic here instead efficiently constructs an arguments array via\n\t\t\t// direct assignment.\n\t\t\tconst argsLength = arguments.length;\n\t\t\tconst args = new Array( argsLength + 1 );\n\t\t\targs[ 0 ] = store.__unstableOriginalGetState();\n\t\t\tfor ( let i = 0; i < argsLength; i++ ) {\n\t\t\t\targs[ i + 1 ] = arguments[ i ];\n\t\t\t}\n\n\t\t\treturn registrySelector( ...args );\n\t\t};\n\t\tselector.hasResolver = false;\n\t\treturn selector;\n\t};\n\n\treturn mapValues( selectors, createStateSelector );\n}\n\n/**\n * Maps actions to dispatch from a given store.\n *\n * @param {Object} actions Actions to register.\n * @param {Object} store   The redux store to which the actions should be mapped.\n *\n * @return {Object} Actions mapped to the redux store provided.\n */\nfunction mapActions( actions, store ) {\n\tconst createBoundAction =\n\t\t( action ) =>\n\t\t( ...args ) => {\n\t\t\treturn Promise.resolve( store.dispatch( action( ...args ) ) );\n\t\t};\n\n\treturn mapValues( actions, createBoundAction );\n}\n\n/**\n * Maps selectors to functions that return a resolution promise for them\n *\n * @param {Object} selectors Selectors to map.\n * @param {Object} store     The redux store the selectors select from.\n *\n * @return {Object} Selectors mapped to their resolution functions.\n */\nfunction mapResolveSelectors( selectors, store ) {\n\tconst {\n\t\tgetIsResolving,\n\t\thasStartedResolution,\n\t\thasFinishedResolution,\n\t\thasResolutionFailed,\n\t\tisResolving,\n\t\tgetCachedResolvers,\n\t\tgetResolutionState,\n\t\tgetResolutionError,\n\t\t...storeSelectors\n\t} = selectors;\n\n\treturn mapValues( storeSelectors, ( selector, selectorName ) => {\n\t\t// If the selector doesn't have a resolver, just convert the return value\n\t\t// (including exceptions) to a Promise, no additional extra behavior is needed.\n\t\tif ( ! selector.hasResolver ) {\n\t\t\treturn async ( ...args ) => selector.apply( null, args );\n\t\t}\n\n\t\treturn ( ...args ) => {\n\t\t\treturn new Promise( ( resolve, reject ) => {\n\t\t\t\tconst hasFinished = () =>\n\t\t\t\t\tselectors.hasFinishedResolution( selectorName, args );\n\t\t\t\tconst finalize = ( result ) => {\n\t\t\t\t\tconst hasFailed = selectors.hasResolutionFailed(\n\t\t\t\t\t\tselectorName,\n\t\t\t\t\t\targs\n\t\t\t\t\t);\n\t\t\t\t\tif ( hasFailed ) {\n\t\t\t\t\t\tconst error = selectors.getResolutionError(\n\t\t\t\t\t\t\tselectorName,\n\t\t\t\t\t\t\targs\n\t\t\t\t\t\t);\n\t\t\t\t\t\treject( error );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresolve( result );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tconst getResult = () => selector.apply( null, args );\n\t\t\t\t// Trigger the selector (to trigger the resolver)\n\t\t\t\tconst result = getResult();\n\t\t\t\tif ( hasFinished() ) {\n\t\t\t\t\treturn finalize( result );\n\t\t\t\t}\n\n\t\t\t\tconst unsubscribe = store.subscribe( () => {\n\t\t\t\t\tif ( hasFinished() ) {\n\t\t\t\t\t\tunsubscribe();\n\t\t\t\t\t\tfinalize( getResult() );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t} );\n\t\t};\n\t} );\n}\n\n/**\n * Maps selectors to functions that throw a suspense promise if not yet resolved.\n *\n * @param {Object} selectors Selectors to map.\n * @param {Object} store     The redux store the selectors select from.\n *\n * @return {Object} Selectors mapped to their suspense functions.\n */\nfunction mapSuspendSelectors( selectors, store ) {\n\treturn mapValues( selectors, ( selector, selectorName ) => {\n\t\t// Selector without a resolver doesn't have any extra suspense behavior.\n\t\tif ( ! selector.hasResolver ) {\n\t\t\treturn selector;\n\t\t}\n\n\t\treturn ( ...args ) => {\n\t\t\tconst result = selector.apply( null, args );\n\n\t\t\tif ( selectors.hasFinishedResolution( selectorName, args ) ) {\n\t\t\t\tif ( selectors.hasResolutionFailed( selectorName, args ) ) {\n\t\t\t\t\tthrow selectors.getResolutionError( selectorName, args );\n\t\t\t\t}\n\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\tthrow new Promise( ( resolve ) => {\n\t\t\t\tconst unsubscribe = store.subscribe( () => {\n\t\t\t\t\tif (\n\t\t\t\t\t\tselectors.hasFinishedResolution( selectorName, args )\n\t\t\t\t\t) {\n\t\t\t\t\t\tresolve();\n\t\t\t\t\t\tunsubscribe();\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t} );\n\t\t};\n\t} );\n}\n\n/**\n * Returns resolvers with matched selectors for a given namespace.\n * Resolvers are side effects invoked once per argument set of a given selector call,\n * used in ensuring that the data needs for the selector are satisfied.\n *\n * @param {Object} resolvers      Resolvers to register.\n * @param {Object} selectors      The current selectors to be modified.\n * @param {Object} store          The redux store to which the resolvers should be mapped.\n * @param {Object} resolversCache Resolvers Cache.\n */\nfunction mapResolvers( resolvers, selectors, store, resolversCache ) {\n\t// The `resolver` can be either a function that does the resolution, or, in more advanced\n\t// cases, an object with a `fullfill` method and other optional methods like `isFulfilled`.\n\t// Here we normalize the `resolver` function to an object with `fulfill` method.\n\tconst mappedResolvers = mapValues( resolvers, ( resolver ) => {\n\t\tif ( resolver.fulfill ) {\n\t\t\treturn resolver;\n\t\t}\n\n\t\treturn {\n\t\t\t...resolver, // Copy the enumerable properties of the resolver function.\n\t\t\tfulfill: resolver, // Add the fulfill method.\n\t\t};\n\t} );\n\n\tconst mapSelector = ( selector, selectorName ) => {\n\t\tconst resolver = resolvers[ selectorName ];\n\t\tif ( ! resolver ) {\n\t\t\tselector.hasResolver = false;\n\t\t\treturn selector;\n\t\t}\n\n\t\tconst selectorResolver = ( ...args ) => {\n\t\t\tasync function fulfillSelector() {\n\t\t\t\tconst state = store.getState();\n\n\t\t\t\tif (\n\t\t\t\t\tresolversCache.isRunning( selectorName, args ) ||\n\t\t\t\t\t( typeof resolver.isFulfilled === 'function' &&\n\t\t\t\t\t\tresolver.isFulfilled( state, ...args ) )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst { metadata } = store.__unstableOriginalGetState();\n\n\t\t\t\tif (\n\t\t\t\t\tmetadataSelectors.hasStartedResolution(\n\t\t\t\t\t\tmetadata,\n\t\t\t\t\t\tselectorName,\n\t\t\t\t\t\targs\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolversCache.markAsRunning( selectorName, args );\n\n\t\t\t\tsetTimeout( async () => {\n\t\t\t\t\tresolversCache.clear( selectorName, args );\n\t\t\t\t\tstore.dispatch(\n\t\t\t\t\t\tmetadataActions.startResolution( selectorName, args )\n\t\t\t\t\t);\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait fulfillResolver(\n\t\t\t\t\t\t\tstore,\n\t\t\t\t\t\t\tmappedResolvers,\n\t\t\t\t\t\t\tselectorName,\n\t\t\t\t\t\t\t...args\n\t\t\t\t\t\t);\n\t\t\t\t\t\tstore.dispatch(\n\t\t\t\t\t\t\tmetadataActions.finishResolution(\n\t\t\t\t\t\t\t\tselectorName,\n\t\t\t\t\t\t\t\targs\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} catch ( error ) {\n\t\t\t\t\t\tstore.dispatch(\n\t\t\t\t\t\t\tmetadataActions.failResolution(\n\t\t\t\t\t\t\t\tselectorName,\n\t\t\t\t\t\t\t\targs,\n\t\t\t\t\t\t\t\terror\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} );\n\t\t\t}\n\n\t\t\tfulfillSelector( ...args );\n\t\t\treturn selector( ...args );\n\t\t};\n\t\tselectorResolver.hasResolver = true;\n\t\treturn selectorResolver;\n\t};\n\n\treturn {\n\t\tresolvers: mappedResolvers,\n\t\tselectors: mapValues( selectors, mapSelector ),\n\t};\n}\n\n/**\n * Calls a resolver given arguments\n *\n * @param {Object} store        Store reference, for fulfilling via resolvers\n * @param {Object} resolvers    Store Resolvers\n * @param {string} selectorName Selector name to fulfill.\n * @param {Array}  args         Selector Arguments.\n */\nasync function fulfillResolver( store, resolvers, selectorName, ...args ) {\n\tconst resolver = get( resolvers, [ selectorName ] );\n\tif ( ! resolver ) {\n\t\treturn;\n\t}\n\n\tconst action = resolver.fulfill( ...args );\n\tif ( action ) {\n\t\tawait store.dispatch( action );\n\t}\n}\n","export default function createThunkMiddleware( args ) {\n\treturn () => ( next ) => ( action ) => {\n\t\tif ( typeof action === 'function' ) {\n\t\t\treturn action( args );\n\t\t}\n\n\t\treturn next( action );\n\t};\n}\n","/**\n * Create an event emitter.\n *\n * @return {import(\"../types\").DataEmitter} Emitter.\n */\nexport function createEmitter() {\n\tlet isPaused = false;\n\tlet isPending = false;\n\tconst listeners = new Set();\n\tconst notifyListeners = () =>\n\t\t// We use Array.from to clone the listeners Set\n\t\t// This ensures that we don't run a listener\n\t\t// that was added as a response to another listener.\n\t\tArray.from( listeners ).forEach( ( listener ) => listener() );\n\n\treturn {\n\t\tget isPaused() {\n\t\t\treturn isPaused;\n\t\t},\n\n\t\tsubscribe( listener ) {\n\t\t\tlisteners.add( listener );\n\t\t\treturn () => listeners.delete( listener );\n\t\t},\n\n\t\tpause() {\n\t\t\tisPaused = true;\n\t\t},\n\n\t\tresume() {\n\t\t\tisPaused = false;\n\t\t\tif ( isPending ) {\n\t\t\t\tisPending = false;\n\t\t\t\tnotifyListeners();\n\t\t\t}\n\t\t},\n\n\t\temit() {\n\t\t\tif ( isPaused ) {\n\t\t\t\tisPending = true;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tnotifyListeners();\n\t\t},\n\t};\n}\n","/**\n * External dependencies\n */\nimport { mapValues } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport createReduxStore from './redux-store';\nimport coreDataStore from './store';\nimport { createEmitter } from './utils/emitter';\n\n/** @typedef {import('./types').StoreDescriptor} StoreDescriptor */\n\n/**\n * @typedef {Object} WPDataRegistry An isolated orchestrator of store registrations.\n *\n * @property {Function} registerGenericStore Given a namespace key and settings\n *                                           object, registers a new generic\n *                                           store.\n * @property {Function} registerStore        Given a namespace key and settings\n *                                           object, registers a new namespace\n *                                           store.\n * @property {Function} subscribe            Given a function callback, invokes\n *                                           the callback on any change to state\n *                                           within any registered store.\n * @property {Function} select               Given a namespace key, returns an\n *                                           object of the  store's registered\n *                                           selectors.\n * @property {Function} dispatch             Given a namespace key, returns an\n *                                           object of the store's registered\n *                                           action dispatchers.\n */\n\n/**\n * @typedef {Object} WPDataPlugin An object of registry function overrides.\n *\n * @property {Function} registerStore registers store.\n */\n\nfunction isObject( object ) {\n\treturn object !== null && typeof object === 'object';\n}\n\n/**\n * Creates a new store registry, given an optional object of initial store\n * configurations.\n *\n * @param {Object}  storeConfigs Initial store configurations.\n * @param {Object?} parent       Parent registry.\n *\n * @return {WPDataRegistry} Data registry.\n */\nexport function createRegistry( storeConfigs = {}, parent = null ) {\n\tconst stores = {};\n\tconst emitter = createEmitter();\n\tconst listeningStores = new Set();\n\n\t/**\n\t * Global listener called for each store's update.\n\t */\n\tfunction globalListener() {\n\t\temitter.emit();\n\t}\n\n\t/**\n\t * Subscribe to changes to any data.\n\t *\n\t * @param {Function} listener Listener function.\n\t *\n\t * @return {Function} Unsubscribe function.\n\t */\n\tconst subscribe = ( listener ) => {\n\t\treturn emitter.subscribe( listener );\n\t};\n\n\t/**\n\t * Calls a selector given the current state and extra arguments.\n\t *\n\t * @param {string|StoreDescriptor} storeNameOrDescriptor Unique namespace identifier for the store\n\t *                                                       or the store descriptor.\n\t *\n\t * @return {*} The selector's returned value.\n\t */\n\tfunction select( storeNameOrDescriptor ) {\n\t\tconst storeName = isObject( storeNameOrDescriptor )\n\t\t\t? storeNameOrDescriptor.name\n\t\t\t: storeNameOrDescriptor;\n\t\tlisteningStores.add( storeName );\n\t\tconst store = stores[ storeName ];\n\t\tif ( store ) {\n\t\t\treturn store.getSelectors();\n\t\t}\n\n\t\treturn parent?.select( storeName );\n\t}\n\n\tfunction __unstableMarkListeningStores( callback, ref ) {\n\t\tlisteningStores.clear();\n\t\ttry {\n\t\t\treturn callback.call( this );\n\t\t} finally {\n\t\t\tref.current = Array.from( listeningStores );\n\t\t}\n\t}\n\n\t/**\n\t * Given a store descriptor, returns an object containing the store's selectors pre-bound to\n\t * state so that you only need to supply additional arguments, and modified so that they return\n\t * promises that resolve to their eventual values, after any resolvers have ran.\n\t *\n\t * @param {StoreDescriptor|string} storeNameOrDescriptor The store descriptor. The legacy calling\n\t *                                                       convention of passing the store name is\n\t *                                                       also supported.\n\t *\n\t * @return {Object} Each key of the object matches the name of a selector.\n\t */\n\tfunction resolveSelect( storeNameOrDescriptor ) {\n\t\tconst storeName = isObject( storeNameOrDescriptor )\n\t\t\t? storeNameOrDescriptor.name\n\t\t\t: storeNameOrDescriptor;\n\t\tlisteningStores.add( storeName );\n\t\tconst store = stores[ storeName ];\n\t\tif ( store ) {\n\t\t\treturn store.getResolveSelectors();\n\t\t}\n\n\t\treturn parent && parent.resolveSelect( storeName );\n\t}\n\n\t/**\n\t * Given a store descriptor, returns an object containing the store's selectors pre-bound to\n\t * state so that you only need to supply additional arguments, and modified so that they throw\n\t * promises in case the selector is not resolved yet.\n\t *\n\t * @param {StoreDescriptor|string} storeNameOrDescriptor The store descriptor. The legacy calling\n\t *                                                       convention of passing the store name is\n\t *                                                       also supported.\n\t *\n\t * @return {Object} Object containing the store's suspense-wrapped selectors.\n\t */\n\tfunction suspendSelect( storeNameOrDescriptor ) {\n\t\tconst storeName = isObject( storeNameOrDescriptor )\n\t\t\t? storeNameOrDescriptor.name\n\t\t\t: storeNameOrDescriptor;\n\t\tlisteningStores.add( storeName );\n\t\tconst store = stores[ storeName ];\n\t\tif ( store ) {\n\t\t\treturn store.getSuspendSelectors();\n\t\t}\n\n\t\treturn parent && parent.suspendSelect( storeName );\n\t}\n\n\t/**\n\t * Returns the available actions for a part of the state.\n\t *\n\t * @param {string|StoreDescriptor} storeNameOrDescriptor Unique namespace identifier for the store\n\t *                                                       or the store descriptor.\n\t *\n\t * @return {*} The action's returned value.\n\t */\n\tfunction dispatch( storeNameOrDescriptor ) {\n\t\tconst storeName = isObject( storeNameOrDescriptor )\n\t\t\t? storeNameOrDescriptor.name\n\t\t\t: storeNameOrDescriptor;\n\t\tconst store = stores[ storeName ];\n\t\tif ( store ) {\n\t\t\treturn store.getActions();\n\t\t}\n\n\t\treturn parent && parent.dispatch( storeName );\n\t}\n\n\t//\n\t// Deprecated\n\t// TODO: Remove this after `use()` is removed.\n\tfunction withPlugins( attributes ) {\n\t\treturn mapValues( attributes, ( attribute, key ) => {\n\t\t\tif ( typeof attribute !== 'function' ) {\n\t\t\t\treturn attribute;\n\t\t\t}\n\t\t\treturn function () {\n\t\t\t\treturn registry[ key ].apply( null, arguments );\n\t\t\t};\n\t\t} );\n\t}\n\n\t/**\n\t * Registers a store instance.\n\t *\n\t * @param {string} name  Store registry name.\n\t * @param {Object} store Store instance object (getSelectors, getActions, subscribe).\n\t */\n\tfunction registerStoreInstance( name, store ) {\n\t\tif ( typeof store.getSelectors !== 'function' ) {\n\t\t\tthrow new TypeError( 'store.getSelectors must be a function' );\n\t\t}\n\t\tif ( typeof store.getActions !== 'function' ) {\n\t\t\tthrow new TypeError( 'store.getActions must be a function' );\n\t\t}\n\t\tif ( typeof store.subscribe !== 'function' ) {\n\t\t\tthrow new TypeError( 'store.subscribe must be a function' );\n\t\t}\n\t\t// The emitter is used to keep track of active listeners when the registry\n\t\t// get paused, that way, when resumed we should be able to call all these\n\t\t// pending listeners.\n\t\tstore.emitter = createEmitter();\n\t\tconst currentSubscribe = store.subscribe;\n\t\tstore.subscribe = ( listener ) => {\n\t\t\tconst unsubscribeFromEmitter = store.emitter.subscribe( listener );\n\t\t\tconst unsubscribeFromStore = currentSubscribe( () => {\n\t\t\t\tif ( store.emitter.isPaused ) {\n\t\t\t\t\tstore.emitter.emit();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tlistener();\n\t\t\t} );\n\n\t\t\treturn () => {\n\t\t\t\tunsubscribeFromStore?.();\n\t\t\t\tunsubscribeFromEmitter?.();\n\t\t\t};\n\t\t};\n\t\tstores[ name ] = store;\n\t\tstore.subscribe( globalListener );\n\t}\n\n\t/**\n\t * Registers a new store given a store descriptor.\n\t *\n\t * @param {StoreDescriptor} store Store descriptor.\n\t */\n\tfunction register( store ) {\n\t\tregisterStoreInstance( store.name, store.instantiate( registry ) );\n\t}\n\n\tfunction registerGenericStore( name, store ) {\n\t\tdeprecated( 'wp.data.registerGenericStore', {\n\t\t\tsince: '5.9',\n\t\t\talternative: 'wp.data.register( storeDescriptor )',\n\t\t} );\n\t\tregisterStoreInstance( name, store );\n\t}\n\n\t/**\n\t * Registers a standard `@wordpress/data` store.\n\t *\n\t * @param {string} storeName Unique namespace identifier.\n\t * @param {Object} options   Store description (reducer, actions, selectors, resolvers).\n\t *\n\t * @return {Object} Registered store object.\n\t */\n\tfunction registerStore( storeName, options ) {\n\t\tif ( ! options.reducer ) {\n\t\t\tthrow new TypeError( 'Must specify store reducer' );\n\t\t}\n\n\t\tconst store = createReduxStore( storeName, options ).instantiate(\n\t\t\tregistry\n\t\t);\n\t\tregisterStoreInstance( storeName, store );\n\t\treturn store.store;\n\t}\n\n\t/**\n\t * Subscribe handler to a store.\n\t *\n\t * @param {string[]} storeName The store name.\n\t * @param {Function} handler   The function subscribed to the store.\n\t * @return {Function} A function to unsubscribe the handler.\n\t */\n\tfunction __unstableSubscribeStore( storeName, handler ) {\n\t\tif ( storeName in stores ) {\n\t\t\treturn stores[ storeName ].subscribe( handler );\n\t\t}\n\n\t\t// Trying to access a store that hasn't been registered,\n\t\t// this is a pattern rarely used but seen in some places.\n\t\t// We fallback to regular `subscribe` here for backward-compatibility for now.\n\t\t// See https://github.com/WordPress/gutenberg/pull/27466 for more info.\n\t\tif ( ! parent ) {\n\t\t\treturn subscribe( handler );\n\t\t}\n\n\t\treturn parent.__unstableSubscribeStore( storeName, handler );\n\t}\n\n\tfunction batch( callback ) {\n\t\temitter.pause();\n\t\tObject.values( stores ).forEach( ( store ) => store.emitter.pause() );\n\t\tcallback();\n\t\temitter.resume();\n\t\tObject.values( stores ).forEach( ( store ) => store.emitter.resume() );\n\t}\n\n\tlet registry = {\n\t\tbatch,\n\t\tstores,\n\t\tnamespaces: stores, // TODO: Deprecate/remove this.\n\t\tsubscribe,\n\t\tselect,\n\t\tresolveSelect,\n\t\tsuspendSelect,\n\t\tdispatch,\n\t\tuse,\n\t\tregister,\n\t\tregisterGenericStore,\n\t\tregisterStore,\n\t\t__unstableMarkListeningStores,\n\t\t__unstableSubscribeStore,\n\t};\n\n\t//\n\t// TODO:\n\t// This function will be deprecated as soon as it is no longer internally referenced.\n\tfunction use( plugin, options ) {\n\t\tif ( ! plugin ) {\n\t\t\treturn;\n\t\t}\n\n\t\tregistry = {\n\t\t\t...registry,\n\t\t\t...plugin( registry, options ),\n\t\t};\n\n\t\treturn registry;\n\t}\n\n\tregistry.register( coreDataStore );\n\n\tfor ( const [ name, config ] of Object.entries( storeConfigs ) ) {\n\t\tregistry.register( createReduxStore( name, config ) );\n\t}\n\n\tif ( parent ) {\n\t\tparent.subscribe( globalListener );\n\t}\n\n\treturn withPlugins( registry );\n}\n","/**\n * Internal dependencies\n */\nimport { createRegistry } from './registry';\n\nexport default createRegistry();\n","/*!\n * is-plain-object <https://github.com/jonschlinkert/is-plain-object>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nfunction isObject(o) {\n  return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nfunction isPlainObject(o) {\n  var ctor,prot;\n\n  if (isObject(o) === false) return false;\n\n  // If has modified constructor\n  ctor = o.constructor;\n  if (ctor === undefined) return true;\n\n  // If has modified prototype\n  prot = ctor.prototype;\n  if (isObject(prot) === false) return false;\n\n  // If constructor does not have an Object-specific method\n  if (prot.hasOwnProperty('isPrototypeOf') === false) {\n    return false;\n  }\n\n  // Most likely a plain Object\n  return true;\n}\n\nexport { isPlainObject };\n","let objectStorage;\n\nconst storage = {\n\tgetItem( key ) {\n\t\tif ( ! objectStorage || ! objectStorage[ key ] ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn objectStorage[ key ];\n\t},\n\tsetItem( key, value ) {\n\t\tif ( ! objectStorage ) {\n\t\t\tstorage.clear();\n\t\t}\n\n\t\tobjectStorage[ key ] = String( value );\n\t},\n\tclear() {\n\t\tobjectStorage = Object.create( null );\n\t},\n};\n\nexport default storage;\n","/**\n * Internal dependencies\n */\nimport objectStorage from './object';\n\nlet storage;\n\ntry {\n\t// Private Browsing in Safari 10 and earlier will throw an error when\n\t// attempting to set into localStorage. The test here is intentional in\n\t// causing a thrown error as condition for using fallback object storage.\n\tstorage = window.localStorage;\n\tstorage.setItem( '__wpDataTestLocalStorage', '' );\n\tstorage.removeItem( '__wpDataTestLocalStorage' );\n} catch ( error ) {\n\tstorage = objectStorage;\n}\n\nexport default storage;\n","/**\n * External dependencies\n */\nimport { isPlainObject } from 'is-plain-object';\nimport { merge } from 'lodash';\n\n/**\n * Internal dependencies\n */\nimport defaultStorage from './storage/default';\nimport { combineReducers } from '../../';\n\n/** @typedef {import('../../registry').WPDataRegistry} WPDataRegistry */\n\n/** @typedef {import('../../registry').WPDataPlugin} WPDataPlugin */\n\n/**\n * @typedef {Object} WPDataPersistencePluginOptions Persistence plugin options.\n *\n * @property {Storage} storage    Persistent storage implementation. This must\n *                                at least implement `getItem` and `setItem` of\n *                                the Web Storage API.\n * @property {string}  storageKey Key on which to set in persistent storage.\n *\n */\n\n/**\n * Default plugin storage.\n *\n * @type {Storage}\n */\nconst DEFAULT_STORAGE = defaultStorage;\n\n/**\n * Default plugin storage key.\n *\n * @type {string}\n */\nconst DEFAULT_STORAGE_KEY = 'WP_DATA';\n\n/**\n * Higher-order reducer which invokes the original reducer only if state is\n * inequal from that of the action's `nextState` property, otherwise returning\n * the original state reference.\n *\n * @param {Function} reducer Original reducer.\n *\n * @return {Function} Enhanced reducer.\n */\nexport const withLazySameState = ( reducer ) => ( state, action ) => {\n\tif ( action.nextState === state ) {\n\t\treturn state;\n\t}\n\n\treturn reducer( state, action );\n};\n\n/**\n * Creates a persistence interface, exposing getter and setter methods (`get`\n * and `set` respectively).\n *\n * @param {WPDataPersistencePluginOptions} options Plugin options.\n *\n * @return {Object} Persistence interface.\n */\nexport function createPersistenceInterface( options ) {\n\tconst { storage = DEFAULT_STORAGE, storageKey = DEFAULT_STORAGE_KEY } =\n\t\toptions;\n\n\tlet data;\n\n\t/**\n\t * Returns the persisted data as an object, defaulting to an empty object.\n\t *\n\t * @return {Object} Persisted data.\n\t */\n\tfunction getData() {\n\t\tif ( data === undefined ) {\n\t\t\t// If unset, getItem is expected to return null. Fall back to\n\t\t\t// empty object.\n\t\t\tconst persisted = storage.getItem( storageKey );\n\t\t\tif ( persisted === null ) {\n\t\t\t\tdata = {};\n\t\t\t} else {\n\t\t\t\ttry {\n\t\t\t\t\tdata = JSON.parse( persisted );\n\t\t\t\t} catch ( error ) {\n\t\t\t\t\t// Similarly, should any error be thrown during parse of\n\t\t\t\t\t// the string (malformed JSON), fall back to empty object.\n\t\t\t\t\tdata = {};\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn data;\n\t}\n\n\t/**\n\t * Merges an updated reducer state into the persisted data.\n\t *\n\t * @param {string} key   Key to update.\n\t * @param {*}      value Updated value.\n\t */\n\tfunction setData( key, value ) {\n\t\tdata = { ...data, [ key ]: value };\n\t\tstorage.setItem( storageKey, JSON.stringify( data ) );\n\t}\n\n\treturn {\n\t\tget: getData,\n\t\tset: setData,\n\t};\n}\n\n/**\n * Data plugin to persist store state into a single storage key.\n *\n * @param {WPDataRegistry}                  registry      Data registry.\n * @param {?WPDataPersistencePluginOptions} pluginOptions Plugin options.\n *\n * @return {WPDataPlugin} Data plugin.\n */\nfunction persistencePlugin( registry, pluginOptions ) {\n\tconst persistence = createPersistenceInterface( pluginOptions );\n\n\t/**\n\t * Creates an enhanced store dispatch function, triggering the state of the\n\t * given store name to be persisted when changed.\n\t *\n\t * @param {Function}       getState  Function which returns current state.\n\t * @param {string}         storeName Store name.\n\t * @param {?Array<string>} keys      Optional subset of keys to save.\n\t *\n\t * @return {Function} Enhanced dispatch function.\n\t */\n\tfunction createPersistOnChange( getState, storeName, keys ) {\n\t\tlet getPersistedState;\n\t\tif ( Array.isArray( keys ) ) {\n\t\t\t// Given keys, the persisted state should by produced as an object\n\t\t\t// of the subset of keys. This implementation uses combineReducers\n\t\t\t// to leverage its behavior of returning the same object when none\n\t\t\t// of the property values changes. This allows a strict reference\n\t\t\t// equality to bypass a persistence set on an unchanging state.\n\t\t\tconst reducers = keys.reduce(\n\t\t\t\t( accumulator, key ) =>\n\t\t\t\t\tObject.assign( accumulator, {\n\t\t\t\t\t\t[ key ]: ( state, action ) => action.nextState[ key ],\n\t\t\t\t\t} ),\n\t\t\t\t{}\n\t\t\t);\n\n\t\t\tgetPersistedState = withLazySameState(\n\t\t\t\tcombineReducers( reducers )\n\t\t\t);\n\t\t} else {\n\t\t\tgetPersistedState = ( state, action ) => action.nextState;\n\t\t}\n\n\t\tlet lastState = getPersistedState( undefined, {\n\t\t\tnextState: getState(),\n\t\t} );\n\n\t\treturn () => {\n\t\t\tconst state = getPersistedState( lastState, {\n\t\t\t\tnextState: getState(),\n\t\t\t} );\n\t\t\tif ( state !== lastState ) {\n\t\t\t\tpersistence.set( storeName, state );\n\t\t\t\tlastState = state;\n\t\t\t}\n\t\t};\n\t}\n\n\treturn {\n\t\tregisterStore( storeName, options ) {\n\t\t\tif ( ! options.persist ) {\n\t\t\t\treturn registry.registerStore( storeName, options );\n\t\t\t}\n\n\t\t\t// Load from persistence to use as initial state.\n\t\t\tconst persistedState = persistence.get()[ storeName ];\n\t\t\tif ( persistedState !== undefined ) {\n\t\t\t\tlet initialState = options.reducer( options.initialState, {\n\t\t\t\t\ttype: '@@WP/PERSISTENCE_RESTORE',\n\t\t\t\t} );\n\n\t\t\t\tif (\n\t\t\t\t\tisPlainObject( initialState ) &&\n\t\t\t\t\tisPlainObject( persistedState )\n\t\t\t\t) {\n\t\t\t\t\t// If state is an object, ensure that:\n\t\t\t\t\t// - Other keys are left intact when persisting only a\n\t\t\t\t\t//   subset of keys.\n\t\t\t\t\t// - New keys in what would otherwise be used as initial\n\t\t\t\t\t//   state are deeply merged as base for persisted value.\n\t\t\t\t\tinitialState = merge( {}, initialState, persistedState );\n\t\t\t\t} else {\n\t\t\t\t\t// If there is a mismatch in object-likeness of default\n\t\t\t\t\t// initial or persisted state, defer to persisted value.\n\t\t\t\t\tinitialState = persistedState;\n\t\t\t\t}\n\n\t\t\t\toptions = {\n\t\t\t\t\t...options,\n\t\t\t\t\tinitialState,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst store = registry.registerStore( storeName, options );\n\n\t\t\tstore.subscribe(\n\t\t\t\tcreatePersistOnChange(\n\t\t\t\t\tstore.getState,\n\t\t\t\t\tstoreName,\n\t\t\t\t\toptions.persist\n\t\t\t\t)\n\t\t\t);\n\n\t\t\treturn store;\n\t\t},\n\t};\n}\n\npersistencePlugin.__unstableMigrate = () => {};\n\nexport default persistencePlugin;\n","export default function _extends() {\n  _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n\n  return _extends.apply(this, arguments);\n}","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"element\"];","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"React\"];","import { useState, useRef, useEffect } from 'react';\n\nfunction areInputsEqual(newInputs, lastInputs) {\n  if (newInputs.length !== lastInputs.length) {\n    return false;\n  }\n\n  for (var i = 0; i < newInputs.length; i++) {\n    if (newInputs[i] !== lastInputs[i]) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\nfunction useMemoOne(getResult, inputs) {\n  var initial = useState(function () {\n    return {\n      inputs: inputs,\n      result: getResult()\n    };\n  })[0];\n  var committed = useRef(initial);\n  var isInputMatch = Boolean(inputs && committed.current.inputs && areInputsEqual(inputs, committed.current.inputs));\n  var cache = isInputMatch ? committed.current : {\n    inputs: inputs,\n    result: getResult()\n  };\n  useEffect(function () {\n    committed.current = cache;\n  }, [cache]);\n  return cache.result;\n}\nfunction useCallbackOne(callback, inputs) {\n  return useMemoOne(function () {\n    return callback;\n  }, inputs);\n}\nvar useMemo = useMemoOne;\nvar useCallback = useCallbackOne;\n\nexport { useCallback, useCallbackOne, useMemo, useMemoOne };\n","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"priorityQueue\"];","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"isShallowEqual\"];","/**\n * WordPress dependencies\n */\nimport { createContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport defaultRegistry from '../../default-registry';\n\nexport const Context = createContext( defaultRegistry );\n\nconst { Consumer, Provider } = Context;\n\n/**\n * A custom react Context consumer exposing the provided `registry` to\n * children components. Used along with the RegistryProvider.\n *\n * You can read more about the react context api here:\n * https://reactjs.org/docs/context.html#contextprovider\n *\n * @example\n * ```js\n * import {\n *   RegistryProvider,\n *   RegistryConsumer,\n *   createRegistry\n * } from '@wordpress/data';\n *\n * const registry = createRegistry( {} );\n *\n * const App = ( { props } ) => {\n *   return <RegistryProvider value={ registry }>\n *     <div>Hello There</div>\n *     <RegistryConsumer>\n *       { ( registry ) => (\n *         <ComponentUsingRegistry\n *         \t\t{ ...props }\n *         \t  registry={ registry }\n *       ) }\n *     </RegistryConsumer>\n *   </RegistryProvider>\n * }\n * ```\n */\nexport const RegistryConsumer = Consumer;\n\n/**\n * A custom Context provider for exposing the provided `registry` to children\n * components via a consumer.\n *\n * See <a name=\"#RegistryConsumer\">RegistryConsumer</a> documentation for\n * example.\n */\nexport default Provider;\n","/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { Context } from './context';\n\n/**\n * A custom react hook exposing the registry context for use.\n *\n * This exposes the `registry` value provided via the\n * <a href=\"#RegistryProvider\">Registry Provider</a> to a component implementing\n * this hook.\n *\n * It acts similarly to the `useContext` react hook.\n *\n * Note: Generally speaking, `useRegistry` is a low level hook that in most cases\n * won't be needed for implementation. Most interactions with the `@wordpress/data`\n * API can be performed via the `useSelect` hook,  or the `withSelect` and\n * `withDispatch` higher order components.\n *\n * @example\n * ```js\n * import {\n *   RegistryProvider,\n *   createRegistry,\n *   useRegistry,\n * } from '@wordpress/data';\n *\n * const registry = createRegistry( {} );\n *\n * const SomeChildUsingRegistry = ( props ) => {\n *   const registry = useRegistry();\n *   // ...logic implementing the registry in other react hooks.\n * };\n *\n *\n * const ParentProvidingRegistry = ( props ) => {\n *   return <RegistryProvider value={ registry }>\n *     <SomeChildUsingRegistry { ...props } />\n *   </RegistryProvider>\n * };\n * ```\n *\n * @return {Function}  A custom react hook exposing the registry context value.\n */\nexport default function useRegistry() {\n\treturn useContext( Context );\n}\n","/**\n * WordPress dependencies\n */\nimport { createContext } from '@wordpress/element';\n\nexport const Context = createContext( false );\n\nconst { Consumer, Provider } = Context;\n\nexport const AsyncModeConsumer = Consumer;\n\n/**\n * Context Provider Component used to switch the data module component rerendering\n * between Sync and Async modes.\n *\n * @example\n *\n * ```js\n * import { useSelect, AsyncModeProvider } from '@wordpress/data';\n * import { store as blockEditorStore } from '@wordpress/block-editor';\n *\n * function BlockCount() {\n *   const count = useSelect( ( select ) => {\n *     return select( blockEditorStore ).getBlockCount()\n *   }, [] );\n *\n *   return count;\n * }\n *\n * function App() {\n *   return (\n *     <AsyncModeProvider value={ true }>\n *       <BlockCount />\n *     </AsyncModeProvider>\n *   );\n * }\n * ```\n *\n * In this example, the BlockCount component is rerendered asynchronously.\n * It means if a more critical task is being performed (like typing in an input),\n * the rerendering is delayed until the browser becomes IDLE.\n * It is possible to nest multiple levels of AsyncModeProvider to fine-tune the rendering behavior.\n *\n * @param {boolean} props.value Enable Async Mode.\n * @return {WPComponent} The component to be rendered.\n */\nexport default Provider;\n","/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { Context } from './context';\n\nexport default function useAsyncMode() {\n\treturn useContext( Context );\n}\n","/**\n * External dependencies\n */\nimport { useMemoOne } from 'use-memo-one';\n\n/**\n * WordPress dependencies\n */\nimport { createQueue } from '@wordpress/priority-queue';\nimport {\n\tuseRef,\n\tuseCallback,\n\tuseMemo,\n\tuseReducer,\n\tuseDebugValue,\n} from '@wordpress/element';\nimport isShallowEqual from '@wordpress/is-shallow-equal';\nimport { useIsomorphicLayoutEffect } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport useRegistry from '../registry-provider/use-registry';\nimport useAsyncMode from '../async-mode-provider/use-async-mode';\n\nconst noop = () => {};\nconst renderQueue = createQueue();\n\n/**\n * @typedef {import('../../types').StoreDescriptor<C>} StoreDescriptor\n * @template C\n */\n/**\n * @typedef {import('../../types').ReduxStoreConfig<State,Actions,Selectors>} ReduxStoreConfig\n * @template State,Actions,Selectors\n */\n/**\n * @typedef {import('../../types').UseSelectReturn<T>} UseSelectReturn\n * @template T\n */\n/** @typedef {import('../../types').MapSelect} MapSelect */\n\n/**\n * Custom react hook for retrieving props from registered selectors.\n *\n * In general, this custom React hook follows the\n * [rules of hooks](https://reactjs.org/docs/hooks-rules.html).\n *\n * @template {MapSelect | StoreDescriptor<any>} T\n * @param {T}         mapSelect Function called on every state change. The returned value is\n *                              exposed to the component implementing this hook. The function\n *                              receives the `registry.select` method on the first argument\n *                              and the `registry` on the second argument.\n *                              When a store key is passed, all selectors for the store will be\n *                              returned. This is only meant for usage of these selectors in event\n *                              callbacks, not for data needed to create the element tree.\n * @param {unknown[]} deps      If provided, this memoizes the mapSelect so the same `mapSelect` is\n *                              invoked on every state change unless the dependencies change.\n *\n * @example\n * ```js\n * import { useSelect } from '@wordpress/data';\n * import { store as myCustomStore } from 'my-custom-store';\n *\n * function HammerPriceDisplay( { currency } ) {\n *   const price = useSelect( ( select ) => {\n *     return select( myCustomStore ).getPrice( 'hammer', currency );\n *   }, [ currency ] );\n *   return new Intl.NumberFormat( 'en-US', {\n *     style: 'currency',\n *     currency,\n *   } ).format( price );\n * }\n *\n * // Rendered in the application:\n * // <HammerPriceDisplay currency=\"USD\" />\n * ```\n *\n * In the above example, when `HammerPriceDisplay` is rendered into an\n * application, the price will be retrieved from the store state using the\n * `mapSelect` callback on `useSelect`. If the currency prop changes then\n * any price in the state for that currency is retrieved. If the currency prop\n * doesn't change and other props are passed in that do change, the price will\n * not change because the dependency is just the currency.\n *\n * When data is only used in an event callback, the data should not be retrieved\n * on render, so it may be useful to get the selectors function instead.\n *\n * **Don't use `useSelect` this way when calling the selectors in the render\n * function because your component won't re-render on a data change.**\n *\n * ```js\n * import { useSelect } from '@wordpress/data';\n * import { store as myCustomStore } from 'my-custom-store';\n *\n * function Paste( { children } ) {\n *   const { getSettings } = useSelect( myCustomStore );\n *   function onPaste() {\n *     // Do something with the settings.\n *     const settings = getSettings();\n *   }\n *   return <div onPaste={ onPaste }>{ children }</div>;\n * }\n * ```\n * @return {UseSelectReturn<T>} A custom react hook.\n */\nexport default function useSelect( mapSelect, deps ) {\n\tconst hasMappingFunction = 'function' === typeof mapSelect;\n\n\t// If we're recalling a store by its name or by\n\t// its descriptor then we won't be caching the\n\t// calls to `mapSelect` because we won't be calling it.\n\tif ( ! hasMappingFunction ) {\n\t\tdeps = [];\n\t}\n\n\t// Because of the \"rule of hooks\" we have to call `useCallback`\n\t// on every invocation whether or not we have a real function\n\t// for `mapSelect`. we'll create this intermediate variable to\n\t// fulfill that need and then reference it with our \"real\"\n\t// `_mapSelect` if we can.\n\tconst callbackMapper = useCallback(\n\t\thasMappingFunction ? mapSelect : noop,\n\t\tdeps\n\t);\n\tconst _mapSelect = hasMappingFunction ? callbackMapper : null;\n\n\tconst registry = useRegistry();\n\tconst isAsync = useAsyncMode();\n\n\tconst latestRegistry = useRef( registry );\n\tconst latestMapSelect = useRef();\n\tconst latestIsAsync = useRef( isAsync );\n\tconst latestMapOutput = useRef();\n\tconst latestMapOutputError = useRef();\n\n\t// Keep track of the stores being selected in the _mapSelect function,\n\t// and only subscribe to those stores later.\n\tconst listeningStores = useRef( [] );\n\tconst wrapSelect = useCallback(\n\t\t( callback ) =>\n\t\t\tregistry.__unstableMarkListeningStores(\n\t\t\t\t() => callback( registry.select, registry ),\n\t\t\t\tlisteningStores\n\t\t\t),\n\t\t[ registry ]\n\t);\n\n\t// Generate a \"flag\" for used in the effect dependency array.\n\t// It's different than just using `mapSelect` since deps could be undefined,\n\t// in that case, we would still want to memoize it.\n\tconst depsChangedFlag = useMemo( () => ( {} ), deps || [] );\n\n\tlet mapOutput;\n\n\tlet selectorRan = false;\n\tif ( _mapSelect ) {\n\t\tmapOutput = latestMapOutput.current;\n\t\tconst hasReplacedRegistry = latestRegistry.current !== registry;\n\t\tconst hasReplacedMapSelect = latestMapSelect.current !== _mapSelect;\n\t\tconst hasLeftAsyncMode = latestIsAsync.current && ! isAsync;\n\t\tconst lastMapSelectFailed = !! latestMapOutputError.current;\n\n\t\tif (\n\t\t\thasReplacedRegistry ||\n\t\t\thasReplacedMapSelect ||\n\t\t\thasLeftAsyncMode ||\n\t\t\tlastMapSelectFailed\n\t\t) {\n\t\t\ttry {\n\t\t\t\tmapOutput = wrapSelect( _mapSelect );\n\t\t\t\tselectorRan = true;\n\t\t\t} catch ( error ) {\n\t\t\t\tlet errorMessage = `An error occurred while running 'mapSelect': ${ error.message }`;\n\n\t\t\t\tif ( latestMapOutputError.current ) {\n\t\t\t\t\terrorMessage += `\\nThe error may be correlated with this previous error:\\n`;\n\t\t\t\t\terrorMessage += `${ latestMapOutputError.current.stack }\\n\\n`;\n\t\t\t\t\terrorMessage += 'Original stack trace:';\n\t\t\t\t}\n\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\tconsole.error( errorMessage );\n\t\t\t}\n\t\t}\n\t}\n\n\tuseIsomorphicLayoutEffect( () => {\n\t\tif ( ! hasMappingFunction ) {\n\t\t\treturn;\n\t\t}\n\n\t\tlatestRegistry.current = registry;\n\t\tlatestMapSelect.current = _mapSelect;\n\t\tlatestIsAsync.current = isAsync;\n\t\tif ( selectorRan ) {\n\t\t\tlatestMapOutput.current = mapOutput;\n\t\t}\n\t\tlatestMapOutputError.current = undefined;\n\t} );\n\n\t// React can sometimes clear the `useMemo` cache.\n\t// We use the cache-stable `useMemoOne` to avoid\n\t// losing queues.\n\tconst queueContext = useMemoOne( () => ( { queue: true } ), [ registry ] );\n\tconst [ , forceRender ] = useReducer( ( s ) => s + 1, 0 );\n\tconst isMounted = useRef( false );\n\n\tuseIsomorphicLayoutEffect( () => {\n\t\tif ( ! hasMappingFunction ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst onStoreChange = () => {\n\t\t\ttry {\n\t\t\t\tconst newMapOutput = wrapSelect( latestMapSelect.current );\n\n\t\t\t\tif ( isShallowEqual( latestMapOutput.current, newMapOutput ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tlatestMapOutput.current = newMapOutput;\n\t\t\t} catch ( error ) {\n\t\t\t\tlatestMapOutputError.current = error;\n\t\t\t}\n\t\t\tforceRender();\n\t\t};\n\n\t\tconst onChange = () => {\n\t\t\tif ( ! isMounted.current ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( latestIsAsync.current ) {\n\t\t\t\trenderQueue.add( queueContext, onStoreChange );\n\t\t\t} else {\n\t\t\t\tonStoreChange();\n\t\t\t}\n\t\t};\n\n\t\t// Catch any possible state changes during mount before the subscription\n\t\t// could be set.\n\t\tonStoreChange();\n\n\t\tconst unsubscribers = listeningStores.current.map( ( storeName ) =>\n\t\t\tregistry.__unstableSubscribeStore( storeName, onChange )\n\t\t);\n\n\t\tisMounted.current = true;\n\n\t\treturn () => {\n\t\t\t// The return value of the subscribe function could be undefined if the store is a custom generic store.\n\t\t\tunsubscribers.forEach( ( unsubscribe ) => unsubscribe?.() );\n\t\t\trenderQueue.cancel( queueContext );\n\t\t\tisMounted.current = false;\n\t\t};\n\t\t// If you're tempted to eliminate the spread dependencies below don't do it!\n\t\t// We're passing these in from the calling function and want to make sure we're\n\t\t// examining every individual value inside the `deps` array.\n\t}, [ registry, wrapSelect, hasMappingFunction, depsChangedFlag ] );\n\n\tuseDebugValue( mapOutput );\n\n\treturn hasMappingFunction ? mapOutput : registry.select( mapSelect );\n}\n\n/**\n * A variant of the `useSelect` hook that has the same API, but will throw a\n * suspense Promise if any of the called selectors is in an unresolved state.\n *\n * @param {Function} mapSelect Function called on every state change. The\n *                             returned value is exposed to the component\n *                             using this hook. The function receives the\n *                             `registry.suspendSelect` method as the first\n *                             argument and the `registry` as the second one.\n * @param {Array}    deps      A dependency array used to memoize the `mapSelect`\n *                             so that the same `mapSelect` is invoked on every\n *                             state change unless the dependencies change.\n *\n * @return {Object} Data object returned by the `mapSelect` function.\n */\nexport function useSuspenseSelect( mapSelect, deps ) {\n\tconst _mapSelect = useCallback( mapSelect, deps );\n\n\tconst registry = useRegistry();\n\tconst isAsync = useAsyncMode();\n\n\tconst latestRegistry = useRef( registry );\n\tconst latestMapSelect = useRef();\n\tconst latestIsAsync = useRef( isAsync );\n\tconst latestMapOutput = useRef();\n\tconst latestMapOutputError = useRef();\n\n\t// Keep track of the stores being selected in the `mapSelect` function,\n\t// and only subscribe to those stores later.\n\tconst listeningStores = useRef( [] );\n\tconst wrapSelect = useCallback(\n\t\t( callback ) =>\n\t\t\tregistry.__unstableMarkListeningStores(\n\t\t\t\t() => callback( registry.suspendSelect, registry ),\n\t\t\t\tlisteningStores\n\t\t\t),\n\t\t[ registry ]\n\t);\n\n\t// Generate a \"flag\" for used in the effect dependency array.\n\t// It's different than just using `mapSelect` since deps could be undefined,\n\t// in that case, we would still want to memoize it.\n\tconst depsChangedFlag = useMemo( () => ( {} ), deps || [] );\n\n\tlet mapOutput = latestMapOutput.current;\n\tlet mapOutputError = latestMapOutputError.current;\n\n\tconst hasReplacedRegistry = latestRegistry.current !== registry;\n\tconst hasReplacedMapSelect = latestMapSelect.current !== _mapSelect;\n\tconst hasLeftAsyncMode = latestIsAsync.current && ! isAsync;\n\n\tlet selectorRan = false;\n\tif ( hasReplacedRegistry || hasReplacedMapSelect || hasLeftAsyncMode ) {\n\t\ttry {\n\t\t\tmapOutput = wrapSelect( _mapSelect );\n\t\t\tselectorRan = true;\n\t\t} catch ( error ) {\n\t\t\tmapOutputError = error;\n\t\t}\n\t}\n\n\tuseIsomorphicLayoutEffect( () => {\n\t\tlatestRegistry.current = registry;\n\t\tlatestMapSelect.current = _mapSelect;\n\t\tlatestIsAsync.current = isAsync;\n\t\tif ( selectorRan ) {\n\t\t\tlatestMapOutput.current = mapOutput;\n\t\t}\n\t\tlatestMapOutputError.current = mapOutputError;\n\t} );\n\n\t// React can sometimes clear the `useMemo` cache.\n\t// We use the cache-stable `useMemoOne` to avoid\n\t// losing queues.\n\tconst queueContext = useMemoOne( () => ( { queue: true } ), [ registry ] );\n\tconst [ , forceRender ] = useReducer( ( s ) => s + 1, 0 );\n\tconst isMounted = useRef( false );\n\n\tuseIsomorphicLayoutEffect( () => {\n\t\tconst onStoreChange = () => {\n\t\t\ttry {\n\t\t\t\tconst newMapOutput = wrapSelect( latestMapSelect.current );\n\n\t\t\t\tif ( isShallowEqual( latestMapOutput.current, newMapOutput ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tlatestMapOutput.current = newMapOutput;\n\t\t\t} catch ( error ) {\n\t\t\t\tlatestMapOutputError.current = error;\n\t\t\t}\n\n\t\t\tforceRender();\n\t\t};\n\n\t\tconst onChange = () => {\n\t\t\tif ( ! isMounted.current ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( latestIsAsync.current ) {\n\t\t\t\trenderQueue.add( queueContext, onStoreChange );\n\t\t\t} else {\n\t\t\t\tonStoreChange();\n\t\t\t}\n\t\t};\n\n\t\t// catch any possible state changes during mount before the subscription\n\t\t// could be set.\n\t\tonStoreChange();\n\n\t\tconst unsubscribers = listeningStores.current.map( ( storeName ) =>\n\t\t\tregistry.__unstableSubscribeStore( storeName, onChange )\n\t\t);\n\n\t\tisMounted.current = true;\n\n\t\treturn () => {\n\t\t\t// The return value of the subscribe function could be undefined if the store is a custom generic store.\n\t\t\tunsubscribers.forEach( ( unsubscribe ) => unsubscribe?.() );\n\t\t\trenderQueue.cancel( queueContext );\n\t\t\tisMounted.current = false;\n\t\t};\n\t}, [ registry, wrapSelect, depsChangedFlag ] );\n\n\tif ( mapOutputError ) {\n\t\tthrow mapOutputError;\n\t}\n\n\treturn mapOutput;\n}\n","/**\n * WordPress dependencies\n */\nimport { createHigherOrderComponent, pure } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport useSelect from '../use-select';\n\n/**\n * Higher-order component used to inject state-derived props using registered\n * selectors.\n *\n * @param {Function} mapSelectToProps Function called on every state change,\n *                                    expected to return object of props to\n *                                    merge with the component's own props.\n *\n * @example\n * ```js\n * import { withSelect } from '@wordpress/data';\n * import { store as myCustomStore } from 'my-custom-store';\n *\n * function PriceDisplay( { price, currency } ) {\n * \treturn new Intl.NumberFormat( 'en-US', {\n * \t\tstyle: 'currency',\n * \t\tcurrency,\n * \t} ).format( price );\n * }\n *\n * const HammerPriceDisplay = withSelect( ( select, ownProps ) => {\n * \tconst { getPrice } = select( myCustomStore );\n * \tconst { currency } = ownProps;\n *\n * \treturn {\n * \t\tprice: getPrice( 'hammer', currency ),\n * \t};\n * } )( PriceDisplay );\n *\n * // Rendered in the application:\n * //\n * //  <HammerPriceDisplay currency=\"USD\" />\n * ```\n * In the above example, when `HammerPriceDisplay` is rendered into an\n * application, it will pass the price into the underlying `PriceDisplay`\n * component and update automatically if the price of a hammer ever changes in\n * the store.\n *\n * @return {WPComponent} Enhanced component with merged state data props.\n */\nconst withSelect = ( mapSelectToProps ) =>\n\tcreateHigherOrderComponent(\n\t\t( WrappedComponent ) =>\n\t\t\tpure( ( ownProps ) => {\n\t\t\t\tconst mapSelect = ( select, registry ) =>\n\t\t\t\t\tmapSelectToProps( select, ownProps, registry );\n\t\t\t\tconst mergeProps = useSelect( mapSelect );\n\t\t\t\treturn <WrappedComponent { ...ownProps } { ...mergeProps } />;\n\t\t\t} ),\n\t\t'withSelect'\n\t);\n\nexport default withSelect;\n","/**\n * WordPress dependencies\n */\nimport { createHigherOrderComponent } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { useDispatchWithMap } from '../use-dispatch';\n\n/**\n * Higher-order component used to add dispatch props using registered action\n * creators.\n *\n * @param {Function} mapDispatchToProps A function of returning an object of\n *                                      prop names where value is a\n *                                      dispatch-bound action creator, or a\n *                                      function to be called with the\n *                                      component's props and returning an\n *                                      action creator.\n *\n * @example\n * ```jsx\n * function Button( { onClick, children } ) {\n *     return <button type=\"button\" onClick={ onClick }>{ children }</button>;\n * }\n *\n * import { withDispatch } from '@wordpress/data';\n * import { store as myCustomStore } from 'my-custom-store';\n *\n * const SaleButton = withDispatch( ( dispatch, ownProps ) => {\n *     const { startSale } = dispatch( myCustomStore );\n *     const { discountPercent } = ownProps;\n *\n *     return {\n *         onClick() {\n *             startSale( discountPercent );\n *         },\n *     };\n * } )( Button );\n *\n * // Rendered in the application:\n * //\n * // <SaleButton discountPercent=\"20\">Start Sale!</SaleButton>\n * ```\n *\n * @example\n * In the majority of cases, it will be sufficient to use only two first params\n * passed to `mapDispatchToProps` as illustrated in the previous example.\n * However, there might be some very advanced use cases where using the\n * `registry` object might be used as a tool to optimize the performance of\n * your component. Using `select` function from the registry might be useful\n * when you need to fetch some dynamic data from the store at the time when the\n * event is fired, but at the same time, you never use it to render your\n * component. In such scenario, you can avoid using the `withSelect` higher\n * order component to compute such prop, which might lead to unnecessary\n * re-renders of your component caused by its frequent value change.\n * Keep in mind, that `mapDispatchToProps` must return an object with functions\n * only.\n *\n * ```jsx\n * function Button( { onClick, children } ) {\n *     return <button type=\"button\" onClick={ onClick }>{ children }</button>;\n * }\n *\n * import { withDispatch } from '@wordpress/data';\n * import { store as myCustomStore } from 'my-custom-store';\n *\n * const SaleButton = withDispatch( ( dispatch, ownProps, { select } ) => {\n *    // Stock number changes frequently.\n *    const { getStockNumber } = select( myCustomStore );\n *    const { startSale } = dispatch( myCustomStore );\n *    return {\n *        onClick() {\n *            const discountPercent = getStockNumber() > 50 ? 10 : 20;\n *            startSale( discountPercent );\n *        },\n *    };\n * } )( Button );\n *\n * // Rendered in the application:\n * //\n * //  <SaleButton>Start Sale!</SaleButton>\n * ```\n *\n * _Note:_ It is important that the `mapDispatchToProps` function always\n * returns an object with the same keys. For example, it should not contain\n * conditions under which a different value would be returned.\n *\n * @return {WPComponent} Enhanced component with merged dispatcher props.\n */\nconst withDispatch = ( mapDispatchToProps ) =>\n\tcreateHigherOrderComponent(\n\t\t( WrappedComponent ) => ( ownProps ) => {\n\t\t\tconst mapDispatch = ( dispatch, registry ) =>\n\t\t\t\tmapDispatchToProps( dispatch, ownProps, registry );\n\t\t\tconst dispatchProps = useDispatchWithMap( mapDispatch, [] );\n\t\t\treturn <WrappedComponent { ...ownProps } { ...dispatchProps } />;\n\t\t},\n\t\t'withDispatch'\n\t);\n\nexport default withDispatch;\n","/**\n * External dependencies\n */\nimport { mapValues } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useMemo, useRef } from '@wordpress/element';\nimport { useIsomorphicLayoutEffect } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport useRegistry from '../registry-provider/use-registry';\n\n/**\n * Custom react hook for returning aggregate dispatch actions using the provided\n * dispatchMap.\n *\n * Currently this is an internal api only and is implemented by `withDispatch`\n *\n * @param {Function} dispatchMap Receives the `registry.dispatch` function as\n *                               the first argument and the `registry` object\n *                               as the second argument.  Should return an\n *                               object mapping props to functions.\n * @param {Array}    deps        An array of dependencies for the hook.\n * @return {Object}  An object mapping props to functions created by the passed\n *                   in dispatchMap.\n */\nconst useDispatchWithMap = ( dispatchMap, deps ) => {\n\tconst registry = useRegistry();\n\tconst currentDispatchMap = useRef( dispatchMap );\n\n\tuseIsomorphicLayoutEffect( () => {\n\t\tcurrentDispatchMap.current = dispatchMap;\n\t} );\n\n\treturn useMemo( () => {\n\t\tconst currentDispatchProps = currentDispatchMap.current(\n\t\t\tregistry.dispatch,\n\t\t\tregistry\n\t\t);\n\t\treturn mapValues( currentDispatchProps, ( dispatcher, propName ) => {\n\t\t\tif ( typeof dispatcher !== 'function' ) {\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\tconsole.warn(\n\t\t\t\t\t`Property ${ propName } returned from dispatchMap in useDispatchWithMap must be a function.`\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn ( ...args ) =>\n\t\t\t\tcurrentDispatchMap\n\t\t\t\t\t.current( registry.dispatch, registry )\n\t\t\t\t\t[ propName ]( ...args );\n\t\t} );\n\t}, [ registry, ...deps ] );\n};\n\nexport default useDispatchWithMap;\n","/**\n * WordPress dependencies\n */\nimport { createHigherOrderComponent } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { RegistryConsumer } from '../registry-provider';\n\n/**\n * Higher-order component which renders the original component with the current\n * registry context passed as its `registry` prop.\n *\n * @param {WPComponent} OriginalComponent Original component.\n *\n * @return {WPComponent} Enhanced component.\n */\nconst withRegistry = createHigherOrderComponent(\n\t( OriginalComponent ) => ( props ) =>\n\t\t(\n\t\t\t<RegistryConsumer>\n\t\t\t\t{ ( registry ) => (\n\t\t\t\t\t<OriginalComponent { ...props } registry={ registry } />\n\t\t\t\t) }\n\t\t\t</RegistryConsumer>\n\t\t),\n\t'withRegistry'\n);\n\nexport default withRegistry;\n","/**\n * Internal dependencies\n */\nimport useRegistry from '../registry-provider/use-registry';\n\n/**\n * @typedef {import('../../types').StoreDescriptor<StoreConfig>} StoreDescriptor\n * @template StoreConfig\n */\n/**\n * @typedef {import('../../types').UseDispatchReturn<StoreNameOrDescriptor>} UseDispatchReturn\n * @template StoreNameOrDescriptor\n */\n\n/**\n * A custom react hook returning the current registry dispatch actions creators.\n *\n * Note: The component using this hook must be within the context of a\n * RegistryProvider.\n *\n * @template {undefined | string | StoreDescriptor<any>} [StoreNameOrDescriptor=undefined]\n * @param {StoreNameOrDescriptor} [storeNameOrDescriptor] Optionally provide the name of the\n *                                                        store or its descriptor from which to\n *                                                        retrieve action creators. If not\n *                                                        provided, the registry.dispatch\n *                                                        function is returned instead.\n *\n * @example\n * This illustrates a pattern where you may need to retrieve dynamic data from\n * the server via the `useSelect` hook to use in combination with the dispatch\n * action.\n *\n * ```jsx\n * import { useDispatch, useSelect } from '@wordpress/data';\n * import { useCallback } from '@wordpress/element';\n * import { store as myCustomStore } from 'my-custom-store';\n *\n * function Button( { onClick, children } ) {\n *   return <button type=\"button\" onClick={ onClick }>{ children }</button>\n * }\n *\n * const SaleButton = ( { children } ) => {\n *   const { stockNumber } = useSelect(\n *     ( select ) => select( myCustomStore ).getStockNumber(),\n *     []\n *   );\n *   const { startSale } = useDispatch( myCustomStore );\n *   const onClick = useCallback( () => {\n *     const discountPercent = stockNumber > 50 ? 10: 20;\n *     startSale( discountPercent );\n *   }, [ stockNumber ] );\n *   return <Button onClick={ onClick }>{ children }</Button>\n * }\n *\n * // Rendered somewhere in the application:\n * //\n * // <SaleButton>Start Sale!</SaleButton>\n * ```\n * @return {UseDispatchReturn<StoreNameOrDescriptor>} A custom react hook.\n */\nconst useDispatch = ( storeNameOrDescriptor ) => {\n\tconst { dispatch } = useRegistry();\n\treturn storeNameOrDescriptor === void 0\n\t\t? dispatch\n\t\t: dispatch( storeNameOrDescriptor );\n};\n\nexport default useDispatch;\n","/**\n * External dependencies\n */\nimport turboCombineReducers from 'turbo-combine-reducers';\n\n/**\n * Internal dependencies\n */\nimport defaultRegistry from './default-registry';\nimport * as plugins from './plugins';\n\n/** @typedef {import('./types').StoreDescriptor} StoreDescriptor */\n\nexport { default as withSelect } from './components/with-select';\nexport { default as withDispatch } from './components/with-dispatch';\nexport { default as withRegistry } from './components/with-registry';\nexport {\n\tRegistryProvider,\n\tRegistryConsumer,\n\tuseRegistry,\n} from './components/registry-provider';\nexport {\n\tdefault as useSelect,\n\tuseSuspenseSelect,\n} from './components/use-select';\nexport { useDispatch } from './components/use-dispatch';\nexport { AsyncModeProvider } from './components/async-mode-provider';\nexport { createRegistry } from './registry';\nexport { createRegistrySelector, createRegistryControl } from './factory';\nexport { controls } from './controls';\nexport { default as createReduxStore } from './redux-store';\n\n/**\n * Object of available plugins to use with a registry.\n *\n * @see [use](#use)\n *\n * @type {Object}\n */\nexport { plugins };\n\n/**\n * The combineReducers helper function turns an object whose values are different\n * reducing functions into a single reducing function you can pass to registerReducer.\n *\n * @type  {import('./types').combineReducers}\n * @param {Object} reducers An object whose values correspond to different reducing\n *                          functions that need to be combined into one.\n *\n * @example\n * ```js\n * import { combineReducers, createReduxStore, register } from '@wordpress/data';\n *\n * const prices = ( state = {}, action ) => {\n * \treturn action.type === 'SET_PRICE' ?\n * \t\t{\n * \t\t\t...state,\n * \t\t\t[ action.item ]: action.price,\n * \t\t} :\n * \t\tstate;\n * };\n *\n * const discountPercent = ( state = 0, action ) => {\n * \treturn action.type === 'START_SALE' ?\n * \t\taction.discountPercent :\n * \t\tstate;\n * };\n *\n * const store = createReduxStore( 'my-shop', {\n * \treducer: combineReducers( {\n * \t\tprices,\n * \t\tdiscountPercent,\n * \t} ),\n * } );\n * register( store );\n * ```\n *\n * @return {Function} A reducer that invokes every reducer inside the reducers\n *                    object, and constructs a state object with the same shape.\n */\nexport const combineReducers = turboCombineReducers;\n\n/**\n * Given a store descriptor, returns an object of the store's selectors.\n * The selector functions are been pre-bound to pass the current state automatically.\n * As a consumer, you need only pass arguments of the selector, if applicable.\n *\n * @param {StoreDescriptor|string} storeNameOrDescriptor The store descriptor. The legacy calling\n *                                                       convention of passing the store name is\n *                                                       also supported.\n *\n * @example\n * ```js\n * import { select } from '@wordpress/data';\n * import { store as myCustomStore } from 'my-custom-store';\n *\n * select( myCustomStore ).getPrice( 'hammer' );\n * ```\n *\n * @return {Object} Object containing the store's selectors.\n */\nexport const select = defaultRegistry.select;\n\n/**\n * Given a store descriptor, returns an object containing the store's selectors pre-bound to state\n * so that you only need to supply additional arguments, and modified so that they return promises\n * that resolve to their eventual values, after any resolvers have ran.\n *\n * @param {StoreDescriptor|string} storeNameOrDescriptor The store descriptor. The legacy calling\n *                                                       convention of passing the store name is\n *                                                       also supported.\n *\n * @example\n * ```js\n * import { resolveSelect } from '@wordpress/data';\n * import { store as myCustomStore } from 'my-custom-store';\n *\n * resolveSelect( myCustomStore ).getPrice( 'hammer' ).then(console.log)\n * ```\n *\n * @return {Object} Object containing the store's promise-wrapped selectors.\n */\nexport const resolveSelect = defaultRegistry.resolveSelect;\n\n/**\n * Given a store descriptor, returns an object containing the store's selectors pre-bound to state\n * so that you only need to supply additional arguments, and modified so that they throw promises\n * in case the selector is not resolved yet.\n *\n * @param {StoreDescriptor|string} storeNameOrDescriptor The store descriptor. The legacy calling\n *                                                       convention of passing the store name is\n *                                                       also supported.\n *\n * @return {Object} Object containing the store's suspense-wrapped selectors.\n */\nexport const suspendSelect = defaultRegistry.suspendSelect;\n\n/**\n * Given a store descriptor, returns an object of the store's action creators.\n * Calling an action creator will cause it to be dispatched, updating the state value accordingly.\n *\n * Note: Action creators returned by the dispatch will return a promise when\n * they are called.\n *\n * @param {StoreDescriptor|string} storeNameOrDescriptor The store descriptor. The legacy calling\n *                                                       convention of passing the store name is\n *                                                       also supported.\n *\n * @example\n * ```js\n * import { dispatch } from '@wordpress/data';\n * import { store as myCustomStore } from 'my-custom-store';\n *\n * dispatch( myCustomStore ).setPrice( 'hammer', 9.75 );\n * ```\n * @return {Object} Object containing the action creators.\n */\nexport const dispatch = defaultRegistry.dispatch;\n\n/**\n * Given a listener function, the function will be called any time the state value\n * of one of the registered stores has changed. This function returns a `unsubscribe`\n * function used to stop the subscription.\n *\n * @param {Function} listener Callback function.\n *\n * @example\n * ```js\n * import { subscribe } from '@wordpress/data';\n *\n * const unsubscribe = subscribe( () => {\n * \t// You could use this opportunity to test whether the derived result of a\n * \t// selector has subsequently changed as the result of a state update.\n * } );\n *\n * // Later, if necessary...\n * unsubscribe();\n * ```\n */\nexport const subscribe = defaultRegistry.subscribe;\n\n/**\n * Registers a generic store instance.\n *\n * @deprecated Use `register( storeDescriptor )` instead.\n *\n * @param {string} name  Store registry name.\n * @param {Object} store Store instance (`{ getSelectors, getActions, subscribe }`).\n */\nexport const registerGenericStore = defaultRegistry.registerGenericStore;\n\n/**\n * Registers a standard `@wordpress/data` store.\n *\n * @deprecated Use `register` instead.\n *\n * @param {string} storeName Unique namespace identifier for the store.\n * @param {Object} options   Store description (reducer, actions, selectors, resolvers).\n *\n * @return {Object} Registered store object.\n */\nexport const registerStore = defaultRegistry.registerStore;\n\n/**\n * Extends a registry to inherit functionality provided by a given plugin. A\n * plugin is an object with properties aligning to that of a registry, merged\n * to extend the default registry behavior.\n *\n * @param {Object} plugin Plugin object.\n */\nexport const use = defaultRegistry.use;\n\n/**\n * Registers a standard `@wordpress/data` store descriptor.\n *\n * @example\n * ```js\n * import { createReduxStore, register } from '@wordpress/data';\n *\n * const store = createReduxStore( 'demo', {\n *     reducer: ( state = 'OK' ) => state,\n *     selectors: {\n *         getValue: ( state ) => state,\n *     },\n * } );\n * register( store );\n * ```\n *\n * @param {StoreDescriptor} store Store descriptor.\n */\nexport const register = defaultRegistry.register;\n"],"names":["_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","getValuePair","instance","_map","_arrayTreeMap","_objectTreeMap","has","get","properties","keys","sort","map","Array","isArray","property","undefined","propertyValue","valuePair","delete","set","EquivalentKeyMap","iterable","Constructor","TypeError","_classCallCheck","this","clear","iterablePairs","forEach","value","push","protoProps","previousValuePair","callback","_this","thisArg","arguments","call","Map","size","module","exports","reducers","getNextState","fn","JSON","stringify","Function","state","action","nextState","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","n","getter","__esModule","d","a","definition","o","prop","hasOwnProperty","r","toStringTag","window","_defineProperty","ownKeys","object","enumerableOnly","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","apply","_objectSpread2","source","getOwnPropertyDescriptors","defineProperties","formatProdErrorMessage","code","$$observable","observable","randomString","Math","random","toString","substring","split","join","ActionTypes","INIT","REPLACE","PROBE_UNKNOWN_ACTION","isPlainObject","proto","getPrototypeOf","createStore","reducer","preloadedState","enhancer","_ref2","Error","currentReducer","currentState","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","slice","getState","subscribe","listener","isSubscribed","index","indexOf","splice","dispatch","type","listeners","replaceReducer","nextReducer","_ref","outerSubscribe","observer","observeState","next","unsubscribe","compose","_len","funcs","_key","arg","reduce","b","applyMiddleware","middlewares","store","_dispatch","middlewareAPI","chain","middleware","createRegistrySelector","registrySelector","selector","registry","select","isRegistrySelector","createRegistryControl","registryControl","isRegistryControl","SELECT","RESOLVE_SELECT","DISPATCH","isObject","controls","storeNameOrDescriptor","selectorName","args","storeKey","name","resolveSelect","actionName","builtinControls","method","hasResolver","then","resolvedAction","instantiate","getCoreDataSelector","getCoreDataAction","getSelectors","fromEntries","getActions","reducerKey","resolvers","coreDataStore","getCachedResolvers","entries","resolversByArgs","resolver","stores","shouldInvalidate","status","invalidateResolution","selectorArgsToStateKey","len","idx","subKeysIsResolved","nextKeyState","error","resolutionArgs","resolutionState","errors","removedSelector","restState","getResolutionState","getIsResolving","hasStartedResolution","hasFinishedResolution","hasResolutionFailed","getResolutionError","isResolving","startResolution","finishResolution","failResolution","startResolutions","finishResolutions","failResolutions","invalidateResolutionForStore","invalidateResolutionForStoreSelector","trimUndefinedValues","array","result","createReduxStore","options","thunkArgs","normalizedControls","mapValues","control","enhancers","createResolversCacheMiddleware","promise","createReduxRoutineMiddleware","__REDUX_DEVTOOLS_EXTENSION__","instanceId","initialState","combineReducers","metadata","metadataReducer","root","instantiateReduxStore","assign","__unstableOriginalGetState","getResolveSelectors","resolversCache","cache","isRunning","markAsRunning","createResolversCache","actions","Promise","resolve","mapActions","metadataActions","selectors","argsLength","mapSelectors","metadataSelectors","mappedResolvers","fulfill","selectorResolver","async","fulfillSelector","isFulfilled","setTimeout","fulfillResolver","mapResolvers","resolveSelectors","storeSelectors","reject","hasFinished","finalize","getResult","mapResolveSelectors","suspendSelectors","mapSuspendSelectors","lastState","hasChanged","getSuspendSelectors","createEmitter","isPaused","isPending","Set","notifyListeners","from","add","pause","resume","emit","createRegistry","storeConfigs","parent","emitter","listeningStores","globalListener","storeName","__unstableMarkListeningStores","ref","current","suspendSelect","withPlugins","attributes","attribute","registerStoreInstance","currentSubscribe","unsubscribeFromEmitter","unsubscribeFromStore","register","registerGenericStore","deprecated","since","alternative","registerStore","__unstableSubscribeStore","handler","batch","values","namespaces","use","plugin","config","ctor","prot","objectStorage","storage","getItem","setItem","String","create","localStorage","removeItem","DEFAULT_STORAGE","DEFAULT_STORAGE_KEY","persistencePlugin","pluginOptions","persistence","storageKey","data","persisted","parse","createPersistenceInterface","persist","persistedState","merge","getPersistedState","accumulator","createPersistOnChange","__unstableMigrate","_extends","useMemoOne","inputs","initial","useState","committed","useRef","Boolean","newInputs","lastInputs","areInputsEqual","useEffect","Context","createContext","defaultRegistry","Consumer","Provider","RegistryConsumer","useRegistry","useContext","useAsyncMode","noop","renderQueue","createQueue","useSelect","mapSelect","deps","hasMappingFunction","callbackMapper","useCallback","_mapSelect","isAsync","latestRegistry","latestMapSelect","latestIsAsync","latestMapOutput","latestMapOutputError","wrapSelect","depsChangedFlag","useMemo","mapOutput","selectorRan","hasReplacedRegistry","hasReplacedMapSelect","hasLeftAsyncMode","lastMapSelectFailed","errorMessage","message","stack","console","useIsomorphicLayoutEffect","queueContext","queue","forceRender","useReducer","s","isMounted","onStoreChange","newMapOutput","isShallowEqual","onChange","unsubscribers","cancel","useDebugValue","useSuspenseSelect","mapOutputError","mapSelectToProps","createHigherOrderComponent","WrappedComponent","pure","ownProps","mergeProps","mapDispatchToProps","dispatchProps","dispatchMap","currentDispatchMap","currentDispatchProps","dispatcher","propName","warn","useDispatchWithMap","OriginalComponent","turboCombineReducers"],"sourceRoot":""}

Zerion Mini Shell 1.0