{"version":3,"mappings":"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EAAO,sBAAwBmW,EAAG,OAASC,EAAG,SAG9CpW,EAAO,sBAAwBwV,EAAG,OAClCxV,EAAO,sBAAwBwV,EAAG,QAE/B,EACvB,CAAa,EACD,IAAIM,EAAMzc,EAAM,QAAQ,CAAC,EAErByc,IAAQ,IACR9V,EAASkS,GAASA,GAAS,CAAE,EAAElS,CAAM,EAAG,CAAE,oBAAqB,gBAAgB,CAAE,EAE5E8V,IACL9V,EAASkS,GAASA,GAAS,CAAE,EAAElS,CAAM,EAAGsV,GAA0BQ,CAAG,CAAC,GAE1E,QACH,CAED,GAAIX,GAA4B,KAAK9b,EAAM,IAAI,EAAG,CAC9C2G,EAASkS,GAASA,GAAS,GAAIlS,CAAM,EAAGsV,GAA0Bjc,EAAM,IAAI,CAAC,EAC7E,QACH,CACD,IAAI0c,EAAWL,GAAUrc,EAAM,IAAI,EAC/B0c,IACA/V,EAASkS,GAASA,GAAS,CAAE,EAAElS,CAAM,EAAG+V,CAAQ,GAEpD,IAAIM,EAAsCV,IAAyCtc,EAAM,IAAI,EACzFgd,IACArW,EAASkS,GAASA,GAAS,CAAE,EAAElS,CAAM,EAAGqW,CAAmC,EAElF,CACD,OAAOrW,CACX,CCzTO,IAAIsW,GAAW,CAClB,MAAO,CACH,IACA,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,GACH,EACD,GAAM,CACF,IACA,KACA,GACH,EACD,GAAM,CACF,IACA,KACA,GACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,GACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,KACA,KACA,IACA,GACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,KACA,GACH,EACD,GAAM,CACF,IACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,GACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,KACA,KACA,IACA,GACH,EACD,GAAM,CACF,GACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,KACA,GACH,EACD,GAAM,CACF,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,IACA,GACH,EACD,GAAM,CACF,KACA,KACA,IACA,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,KACA,IACA,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,GACH,EACD,GAAM,CACF,KACA,KACA,IACA,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,KACA,KACA,IACA,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,KACA,GACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,GACH,EACD,GAAM,CACF,GACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,GACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,GACH,EACD,GAAM,CACF,GACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,KACA,KACA,IACA,GACH,EACD,GAAM,CACF,KACA,KACA,IACA,GACH,EACD,GAAM,CACF,IACA,KACA,GACH,EACD,GAAM,CACF,KACA,KACA,IACA,GACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,GACH,EACD,GAAM,CACF,IACA,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,KACA,GACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,QAAS,CACL,IACA,IACA,KACA,IACH,EACD,SAAU,CACN,IACA,KACA,KACA,GACH,EACD,QAAS,CACL,IACA,IACA,IACH,EACD,SAAU,CACN,IACA,KACA,IACA,IACH,EACD,QAAS,CACL,IACA,IACA,KACA,IACH,EACD,QAAS,CACL,IACA,IACA,KACA,IACH,EACD,QAAS,CACL,IACA,IACA,KACA,IACH,EACD,QAAS,CACL,IACA,IACA,KACA,IACH,EACD,QAAS,CACL,IACA,IACA,KACA,IACH,EACD,QAAS,CACL,IACA,IACA,KACA,IACH,EACD,QAAS,CACL,IACA,IACA,IACH,EACD,QAAS,CACL,IACA,IACA,IACH,EACD,QAAS,CACL,KACA,KACA,IACA,GACH,EACD,QAAS,CACL,KACA,IACA,GACH,EACD,QAAS,CACL,IACA,IACA,IACH,EACD,QAAS,CACL,IACA,IACA,IACH,EACD,QAAS,CACL,KACA,IACA,GACH,EACD,QAAS,CACL,KACA,IACA,GACH,EACD,QAAS,CACL,KACA,KACA,IACA,GACH,EACD,QAAS,CACL,KACA,KACA,IACA,GACH,EACD,QAAS,CACL,KACA,IACA,KACA,GACH,EACD,QAAS,CACL,KACA,IACA,GACH,EACD,QAAS,CACL,IACA,KACA,KACA,GACH,CACL,EC13CO,SAASC,IAAelC,EAAU9sB,EAAQ,CAE7C,QADIivB,EAAe,GACVC,EAAa,EAAGA,EAAapC,EAAS,OAAQoC,IAAc,CACjE,IAAIC,EAAcrC,EAAS,OAAOoC,CAAU,EAC5C,GAAIC,IAAgB,IAAK,CAErB,QADIC,EAAc,EACXF,EAAa,EAAIpC,EAAS,QAC7BA,EAAS,OAAOoC,EAAa,CAAC,IAAMC,GACpCC,IACAF,IAEJ,IAAIG,EAAU,GAAKD,EAAc,GAC7BE,EAAeF,EAAc,EAAI,EAAI,GAAKA,GAAe,GACzDG,EAAgB,IAChBC,EAAWC,IAA+BzvB,CAAM,EAIpD,KAHIwvB,GAAY,KAAOA,GAAY,OAC/BF,EAAe,GAEZA,KAAiB,GACpBL,GAAgBM,EAEpB,KAAOF,KAAY,GACfJ,EAAeO,EAAWP,CAEjC,MACQE,IAAgB,IACrBF,GAAgB,IAGhBA,GAAgBE,CAEvB,CACD,OAAOF,CACX,CAMA,SAASQ,IAA+BzvB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","names":["themeKey","sgbsVersion","cdnUrl","variableSgbsUrls","theme","variation","initSgBootstrap","updateThemeUrls","getTheme","appendUniqueLinkToDocument","id","url","setTheme","saveToLocalStorage","savedTheme","getFromLocalStorage","_a","linkElement","newLinkElement","l","n","p","q","r","t","u","v","w","x","y","z","A","a","B","C","D","E","b","e","F","G","H","I","J","K","L","M","d","c","k","h","g","f","m","N","O","escape","P","Q","R","S","T","U","V","W","react_production_min","reactModule","require$$0","reactJsxRuntime_production_min","jsxRuntimeModule","LuxonError","InvalidDateTimeError","reason","InvalidIntervalError","InvalidDurationError","ConflictingSpecificationError","InvalidUnitError","unit","InvalidArgumentError","ZoneIsAbstractError","s","DATE_SHORT","DATE_MED","DATE_MED_WITH_WEEKDAY","DATE_FULL","DATE_HUGE","TIME_SIMPLE","TIME_WITH_SECONDS","TIME_WITH_SHORT_OFFSET","TIME_WITH_LONG_OFFSET","TIME_24_SIMPLE","TIME_24_WITH_SECONDS","TIME_24_WITH_SHORT_OFFSET","TIME_24_WITH_LONG_OFFSET","DATETIME_SHORT","DATETIME_SHORT_WITH_SECONDS","DATETIME_MED","DATETIME_MED_WITH_SECONDS","DATETIME_MED_WITH_WEEKDAY","DATETIME_FULL","DATETIME_FULL_WITH_SECONDS","DATETIME_HUGE","DATETIME_HUGE_WITH_SECONDS","Zone","ts","opts","format","otherZone","singleton","SystemZone","locale","parseZoneInfo","formatOffset","dtfCache","makeDTF","zone","typeToPos","hackyOffset","dtf","date","formatted","parsed","fMonth","fDay","fYear","fadOrBc","fHour","fMinute","fSecond","partsOffset","filled","type","value","pos","isUndefined","ianaZoneCache","IANAZone","name","year","month","day","adOrBc","hour","minute","second","asUTC","objToLocalTS","asTS","over","intlLFCache","getCachedLF","locString","key","intlDTCache","getCachedDTF","intlNumCache","getCachedINF","inf","intlRelCache","getCachedRTF","base","cacheKeyOpts","sysLocaleCache","systemLocale","weekInfoCache","getCachedWeekInfo","data","parseLocaleString","localeStr","xIndex","uIndex","options","selectedStr","smaller","numberingSystem","calendar","intlConfigString","outputCalendar","mapMonths","ms","i","dt","DateTime","mapWeekdays","listStuff","loc","length","englishFn","intlFn","mode","supportsFastNumbers","PolyNumberFormatter","intl","forceSimple","padTo","floor","otherOpts","intlOpts","fixed","roundTo","padStart","PolyDateFormatter","gmtOffset","offsetZ","parts","part","offsetName","PolyRelFormatter","isEnglish","hasRelative","count","English.formatRelativeTime","fallbackWeekSettings","Locale","weekSettings","defaultToEN","specifiedLocale","Settings","localeR","numberingSystemR","outputCalendarR","weekSettingsR","validateWeekSettings","numbering","parsedLocale","parsedNumberingSystem","parsedOutputCalendar","isActuallyEn","hasNoWeirdness","alts","English.months","formatStr","English.weekdays","English.meridiems","English.eras","field","df","results","matching","hasLocaleWeekInfo","other","FixedOffsetZone","offset","signedOffset","InvalidZone","zoneName","normalizeZone","input","defaultZone","isString","lowered","isNumber","now","defaultLocale","defaultNumberingSystem","defaultOutputCalendar","twoDigitCutoffYear","throwOnInvalid","defaultWeekSettings","cutoffYear","Invalid","explanation","nonLeapLadder","leapLadder","unitOutOfRange","dayOfWeek","js","computeOrdinal","isLeapYear","uncomputeOrdinal","ordinal","table","month0","isoWeekdayToLocal","isoWeekday","startOfWeek","gregorianToWeek","gregObj","minDaysInFirstWeek","weekday","weekNumber","weekYear","weeksInWeekYear","timeObject","weekToGregorian","weekData","weekdayOfJan4","yearInDays","daysInYear","gregorianToOrdinal","gregData","ordinalToGregorian","ordinalData","usesLocalWeekValues","obj","hasInvalidWeekData","validYear","isInteger","validWeek","integerBetween","validWeekday","hasInvalidOrdinalData","validOrdinal","hasInvalidGregorianData","validMonth","validDay","daysInMonth","hasInvalidTimeData","millisecond","validHour","validMinute","validSecond","validMillisecond","o","isDate","maybeArray","thing","bestBy","arr","by","compare","best","next","pair","pick","keys","hasOwnProperty","prop","settings","bottom","top","floorMod","isNeg","padded","parseInteger","string","parseFloating","parseMillis","fraction","number","digits","towardZero","factor","modMonth","modYear","firstWeekOffset","weekOffset","weekOffsetNext","untruncateYear","offsetFormat","timeZone","modified","offHourStr","offMinuteStr","offHour","offMin","offMinSigned","asNumber","numericValue","normalizeObject","normalizer","normalized","hours","minutes","sign","monthsLong","monthsShort","monthsNarrow","months","weekdaysLong","weekdaysShort","weekdaysNarrow","weekdays","meridiems","erasLong","erasShort","erasNarrow","eras","meridiemForDateTime","weekdayForDateTime","monthForDateTime","eraForDateTime","formatRelativeTime","numeric","narrow","units","lastable","isDay","isInPast","fmtValue","singular","lilUnits","fmtUnit","stringifyTokens","splits","tokenToString","token","macroTokenToFormatOpts","Formats.DATE_SHORT","Formats.DATE_MED","Formats.DATE_FULL","Formats.DATE_HUGE","Formats.TIME_SIMPLE","Formats.TIME_WITH_SECONDS","Formats.TIME_WITH_SHORT_OFFSET","Formats.TIME_WITH_LONG_OFFSET","Formats.TIME_24_SIMPLE","Formats.TIME_24_WITH_SECONDS","Formats.TIME_24_WITH_SHORT_OFFSET","Formats.TIME_24_WITH_LONG_OFFSET","Formats.DATETIME_SHORT","Formats.DATETIME_MED","Formats.DATETIME_FULL","Formats.DATETIME_HUGE","Formats.DATETIME_SHORT_WITH_SECONDS","Formats.DATETIME_MED_WITH_SECONDS","Formats.DATETIME_FULL_WITH_SECONDS","Formats.DATETIME_HUGE_WITH_SECONDS","Formatter","fmt","current","currentFull","bracketed","formatOpts","interval","knownEnglish","useDateTimeFormatter","extract","meridiem","English.meridiemForDateTime","standalone","English.monthForDateTime","English.weekdayForDateTime","maybeMacro","era","English.eraForDateTime","dur","tokenToField","lildur","mapped","tokens","realTokens","found","literal","val","collapsed","ianaRegex","combineRegexes","regexes","full","combineExtractors","extractors","mergedVals","mergedZone","cursor","ex","parse","patterns","regex","extractor","simpleParse","match","ret","offsetRegex","isoExtendedZone","isoTimeBaseRegex","isoTimeRegex","isoTimeExtensionRegex","isoYmdRegex","isoWeekRegex","isoOrdinalRegex","extractISOWeekData","extractISOOrdinalData","sqlYmdRegex","sqlTimeRegex","sqlTimeExtensionRegex","int","fallback","extractISOYmd","extractISOTime","extractISOOffset","local","fullOffset","extractIANAZone","isoTimeOnly","isoDuration","extractISODuration","yearStr","monthStr","weekStr","dayStr","hourStr","minuteStr","secondStr","millisecondsStr","hasNegativePrefix","negativeSeconds","maybeNegate","num","force","obsOffsets","fromStrings","weekdayStr","result","English.monthsShort","English.weekdaysLong","English.weekdaysShort","rfc2822","extractRFC2822","obsOffset","milOffset","preprocessRFC2822","rfc1123","rfc850","ascii","extractRFC1123Or850","extractASCII","isoYmdWithTimeExtensionRegex","isoWeekWithTimeExtensionRegex","isoOrdinalWithTimeExtensionRegex","isoTimeCombinedRegex","extractISOYmdTimeAndOffset","extractISOWeekTimeAndOffset","extractISOOrdinalDateAndTime","extractISOTimeAndOffset","parseISODate","parseRFC2822Date","parseHTTPDate","parseISODuration","extractISOTimeOnly","parseISOTimeOnly","sqlYmdWithTimeExtensionRegex","sqlTimeCombinedRegex","extractISOTimeOffsetAndIANAZone","parseSQL","INVALID","lowOrderMatrix","casualMatrix","daysInYearAccurate","daysInMonthAccurate","accurateMatrix","orderedUnits","reverseUnits","clone","clear","conf","Duration","durationToMillis","matrix","vals","sum","normalizeValues","previous","previousVal","conv","rollUp","removeZeroes","newVals","config","accurate","durationLike","text","invalid","fmtOpts","millis","duration","fn","values","mixed","conversionAccuracy","built","accumulated","lastUnit","own","ak","negated","eq","v1","v2","validateStartEnd","start","end","Interval","builtStart","friendlyDateTime","builtEnd","validateError","startIsValid","endIsValid","dateTime","dateTimes","sorted","added","idx","numberOfParts","intervals","final","sofar","item","currentCount","ends","flattened","dateFormat","separator","mapFn","Info","proto","locObj","dayDiff","earlier","later","utcDayStart","highOrderDiffs","differs","days","lowestOrder","highWater","differ","diff","remainingMillis","lowerOrderUnits","numberingSystems","numberingSystemsUTF16","hanidecChars","parseDigits","str","code","min","max","digitRegex","append","MISSING_FTP","intUnit","post","NBSP","spaceOrNBSP","spaceOrNBSPRegExp","fixListRegex","stripInsensitivities","oneOf","strings","startIndex","groups","simple","escapeToken","unitForToken","one","two","three","four","six","oneOrTwo","oneToThree","oneToSix","oneToNine","twoToFour","fourToSix","partTypeStyleToTokenVal","tokenForPart","resolvedOpts","isSpace","style","actualType","buildRegex","handlers","matches","all","matchIndex","dateTimeFromMatches","toField","specificOffset","dummyDateTimeCache","getDummyDateTime","maybeExpandMacroToken","formatOptsToTokens","expandMacroTokens","explainFromTokens","disqualifyingUnit","regexString","rawMatches","parseFromTokens","invalidReason","MAX_DATE","unsupportedZone","possiblyCachedWeekData","possiblyCachedLocalWeekData","inst","fixOffset","localTS","tz","utcGuess","o2","o3","tsToObj","objToTS","adjustTime","oPre","millisToAdd","parseDataToDateTime","parsedZone","setZone","interpretationZone","toTechFormat","allowZ","toISODate","extended","longFormat","toISOTime","suppressSeconds","suppressMilliseconds","includeOffset","extendedZone","defaultUnitValues","defaultWeekUnitValues","defaultOrdinalUnitValues","orderedWeekUnits","orderedOrdinalUnits","normalizeUnit","normalizeUnitWithLocalWeeks","quickDT","tsNow","offsetProvis","diffRelative","round","lastOpts","argList","args","ot","zoneToUse","milliseconds","seconds","containsOrdinal","containsGregorYear","containsGregorMD","containsGregor","definiteWeekDef","useWeekData","defaultValues","objNow","foundFirst","higherOrderInvalid","gregorian","tsFinal","offsetFinal","localeToUse","localeOpts","tokenList","dayMs","minuteMs","oEarlier","oLater","o1","ts1","ts2","c1","c2","keepLocalTime","keepCalendarTime","newTS","offsetGuess","asObj","settingWeekStuff","useLocaleWeeks","normalizedUnit","ext","includePrefix","includeZone","includeOffsetSpace","otherDateTime","durOpts","otherIsLater","diffed","inputMs","adjustedToZone","padding","Formats.DATE_MED_WITH_WEEKDAY","Formats.DATETIME_MED_WITH_WEEKDAY","dateTimeish","CurrentTimeContext","createContext","CurrentTimeContextProvider","children","currenTime","setCurrentTime","useState","useEffect","ExpirationSessionGrowlContext","ExpirationSessionGrowlProvider","lastGrowlDismissedOrExpiredSessionTime","setLastGrowlDismissedOrExpiredSessionTime","extendStatics","__extends","__","__assign","__rest","__spreadArray","to","from","pack","ar","reactIs_production_min","reactIsModule","reactIs","FORWARD_REF_STATICS","MEMO_STATICS","TYPE_STATICS","invariant","condition","message","Err","ErrorKind","TYPE","SKELETON_TYPE","isLiteralElement","el","isArgumentElement","isNumberElement","isDateElement","isTimeElement","isSelectElement","isPluralElement","isPoundElement","isTagElement","isNumberSkeleton","isDateTimeSkeleton","SPACE_SEPARATOR_REGEX","DATE_TIME_REGEX","parseDateTimeSkeleton","skeleton","len","WHITE_SPACE_REGEX","parseNumberSkeletonFromString","stringTokens","_i","stringTokens_1","stringToken","stemAndOptions","stem","options_1","option","icuUnitToEcma","FRACTION_PRECISION_REGEX","SIGNIFICANT_PRECISION_REGEX","INTEGER_WIDTH_REGEX","CONCISE_INTEGER_WIDTH_REGEX","parseSignificantPrecision","_","g1","g2","parseSign","parseConciseScientificAndEngineeringStem","signDisplay","parseNotationOptions","opt","signOpts","parseNumberSkeleton","tokens_1","g3","g4","g5","conciseScientificAndEngineeringOpts","timeData","getBestPattern","skeletonCopy","patternPos","patternChar","extraLength","hourLen","dayPeriodLen","dayPeriodChar","hourChar","getDefaultHourSymbolFromLocale","hourCycle","languageTag","regionTag","hourCycles","SPACE_SEPARATOR_START_REGEX","SPACE_SEPARATOR_END_REGEX","createLocation","hasNativeStartsWith","hasNativeFromCodePoint","hasNativeFromEntries","hasNativeCodePointAt","hasTrimStart","hasTrimEnd","hasNativeIsSafeInteger","isSafeInteger","REGEX_SUPPORTS_U_AND_Y","re","RE","startsWith","search","position","fromCodePoint","codePoints","elements","fromEntries","entries","entries_1","codePointAt","index","size","first","trimStart","trimEnd","flag","matchIdentifierAtIndex","IDENTIFIER_PREFIX_RE_1","_isWhiteSpace","_isPatternSyntax","Parser","nestingLevel","parentArgType","expectingCloseTag","char","_isAlpha","startPosition","tagName","childrenResult","endTagStartPosition","closingTagNameStartPosition","closingTagName","startOffset","_isPotentialElementNameChar","parseQuoteResult","parseUnquotedResult","parseLeftAngleResult","location","_isAlphaOrSlash","ch","openingBracePosition","startingPosition","endOffset","endPosition","typeStartPosition","argType","typeEndPosition","styleAndLocation","styleStartPosition","styleLocation","argCloseResult","location_1","dateTimePattern","typeEndPosition_1","identifierAndLocation","pluralOffset","optionsResult","location_2","nestedBraces","apostrophePosition","expectCloseTag","parsedFirstIdentifier","hasOtherClause","parsedSelectors","selector","selectorLocation","fragmentResult","expectNumberError","invalidNumberError","hasDigits","decimal","kind","prefix","pattern","currentOffset","targetOffset","nextCode","codepoint","pruneLocation","els","error","memoize","cache","cacheDefault","serializer","serializerDefault","strategy","strategyDefault","isPrimitive","monadic","arg","cacheKey","computedValue","variadic","assemble","context","serialize","strategyVariadic","strategyMonadic","ObjectWithoutPrototypeCache","strategies","ErrorCode","FormatError","_super","msg","originalMessage","_this","InvalidValueError","variableId","InvalidValueTypeError","MissingValueError","PART_TYPE","mergeLiteral","lastPart","isFormatXMLElementFn","formatToParts","locales","formatters","formats","currentPluralValue","els_1","varName","value_1","formatFn","chunks","rule","mergeConfig","mergeConfigs","defaultConfig","configs","createFastMemoizeCache","store","createDefaultFormatters","IntlMessageFormat","overrideFormats","parseOpts","supportedLocales","IntlErrorCode","IntlError","exception","err","UnsupportedFormatterError","InvalidConfigError","MissingDataError","IntlFormatError","MessageFormatError","descriptor","MissingTranslationError","filterProps","props","allowlist","defaults","filtered","defaultErrorHandler","defaultWarnHandler","warning","DEFAULT_INTL_CONFIG","createIntlCache","createFormatters","RelativeTimeFormat","ListFormat","DisplayNames","getDateTimeFormat","getNumberFormat","getPluralRules","getNamedFormat","onError","formatType","setTimeZoneInOptions","deepMergeOptions","opts1","opts2","deepMergeFormatsAndSetTimeZone","f1","mfFormats","formatMessage","state","messageDescriptor","messages","defaultFormats","fallbackOnEmptyString","defaultRichTextElements","msgId","defaultMessage","formatter","DATE_TIME_FORMAT_OPTIONS","getFormatter","filteredOptions","formatDate","_b","formatTime","formatDateTimeRange","formatDateToParts","formatTimeToParts","DISPLAY_NAMES_OPTONS","formatDisplayName","getDisplayNames","LIST_FORMAT_OPTIONS","generateToken","formatList","getListFormat","formatListToParts","richValues_1","serializedValues","PLURAL_FORMAT_OPTIONS","formatPlural","RELATIVE_TIME_FORMAT_OPTIONS","getRelativeTimeFormat","NUMBER_FORMAT_OPTIONS","formatNumber","formatNumberToParts","messagesContainString","firstMessage","verifyConfigMessages","createIntl","resolvedConfig","invariantIntlContext","CORE_DEFAULT_INTL_CONFIG","React.Fragment","assignUniqueKeysToParts","formatXMLElementFn","React.Children","shallowEqual","objA","objB","aKeys","bKeys","IntlContext","React.createContext","IntlProvider","Provider","Context","useIntl","React.useContext","DisplayName","DisplayNameParts","createFormattedDateTimePartsComponent","ComponentParts","formatProps","formattedParts","createFormattedComponent","Component","formattedValue","Text","React.createElement","assignUniqueKeysToFormatXMLElementFnArgument","acc","rawValues","rest","coreFormatMessage","rawDefaultRichTextElements","coreIntl","coreCreateIntl","processIntlConfig","prevConfig","React.PureComponent","ReactIntlProvider","areEqual","prevProps","nextProps","otherProps","nextValues","nextOtherProps","FormattedMessage","description","ignoreTag","nodes","MemoizedFormattedMessage","React.memo","FormattedMessage$1","SGWTConnectErrorList","this","SGWTConnectError_1","ErrorList","SGWTConnectError","errorListKey","SGWTConnectEventList","SGWTConnectAuthorizationUri","generateCryptoStrongRandomValue","crypto","randomValues","base36RandomValue","normalizeAuthorizationEndpoint","authorization_endpoint","generateAuthorizationUri","isScopeListed_1","isScopeListed","checkedScope","actualScope","checkedScopeList","actualScopeList","scope","normalizeUrl_1","normalizeUrl","SGWTConnectServerResponse","parseQueryParametersString","queryParametersString","queryParametersRegex","queryParameters","keyValuePair","parseOAuth2Fragment","fragment","normalizeAuthServerResponse","authServerResponse","authError","expiresIn","authSuccess","SGWTConnectRedirectUri","require$$1","SGWTConnectServerResponse_1","require$$2","generateRedirectUri","redirectUri","origin","isOnRedirectUri","authEndpointResponse","hasRequestedAccessToken","hasRequestedIdToken","hasReceivedAccessToken","hasReceivedIdToken","hasReceivedError","currentUri","SGWTConnectConfiguration","SGWTConnectAuthorizationUri_1","SGWTConnectRedirectUri_1","normalizeConfiguration","SGWTConnectStorage_1","SGWTConnectStorage","hash","satisfiesCondition","parsedValue","ReflectApply","target","receiver","ReflectOwnKeys","ProcessEmitWarning","NumberIsNaN","EventEmitter","events","defaultMaxListeners","$getMaxListeners","that","doError","er","handler","listeners","arrayClone","_addListener","listener","prepend","existing","onceWrapper","_onceWrap","wrapped","list","originalListener","spliceOne","_listeners","unwrap","evlistener","unwrapListeners","emitter","listenerCount","copy","isSameOrigin_1","isSameOrigin","urlA","urlB","protocolA","hostA","protocolB","hostB","isObject_1","isObject","SGWTConnectOpenIDUserInfo","SGWTConnectErrorList_1","fetchOpenIDUserInfo","authorizationEndpoint","authorizationHeader","callback","xhr","openIDUserInfo","isValidOpenIDClaims","exports","events_1","require$$3","require$$4","require$$5","SGWTConnectEventList_1","require$$6","SGWTConnectOpenIDUserInfo_1","require$$7","require$$8","SGWTConnectCore","storage","fetchOpenIDMetadata","renew","maybeOpenIDMetadata","id_token_hint","post_logout_redirect_uri","end_session_endpoint","endSessionURL_1","authorization","grantedScope","idToken","idTokenParts","idTokenBody","event","addListenerAgain","iframe","isIframeLoaded","isMessageReceivedFromIframe","iframeTimeoutTimer","iframeMessageHandler","errorCode","iframeLoadHandler","element","appendElementAndRemoveListener_1","timeUntilTokenExpiration","expires_at","expires_in","renewalTime","renewalTimePositive","checkSessionIframeLoadHandler","prevIdToken","prevIdTokenClaims_1","nextIdTokenClaims","SGWTConnectHash","hex","md51","hexChr","rhex","x_1","md5cycle","ff","gg","hh","ii","add32","cmn","tail","md5blk","md5blks","SGWTConnectIdTokenClaims","SGWTConnectNoop_1","SGWTConnectCore_1","SGWTConnectNoop","SGWTConnectOpenIDMetadata","createOpenIDMetadataFetcher","openIDMetadata","isValidOpenIDMetadata","setupSGWTConnect_1","SGWTConnectConfiguration_1","SGWTConnectHash_1","SGWTConnectOpenIDMetadata_1","require$$9","hashConfigForConnectStorageKey","limitedConfig","setupSGWTConnect","userConfig","defaultUserConfig","stateInResponse","stateInStore","returnUrl","auth","sgwtConnect","__createBinding","k2","desc","__exportStar","getConfig","BUS_TOPIC_GLOBALLANGUAGE","BUS_TOPIC_SGCONNECT_USERCONNECTION","BUS_TOPIC_SGCONNECT_USERINFO","TOPIC_SGCONNECT_READY","getWidgetBus","widgetConfiguration","getUserConnection","bus","requestAuthorization","onAuthorizedSuccess","onAuthorizationError","subscribers","setupSgwtConnectWidget","subscribeToWidgetBus","authorizationError","onUserInfo","widget","handleSgwtConnectReady","en","fr","setLocale","languageSubscription","lang","jsx","Fragment","labelStyle","Clock","labelId","currentTime","useContext","jsxs","DateKpi","LuxonDatetime","predicates","isDefined","isNotDefined","hasDefinedValue","isEmpty","isNonEmpty","isEmptyObject","_key","isNonEmptyObject","makeLookupTable","lookupTable","makeValuesPredicate","makeDiscriminatedUnionPredicate","not","predicate","predicates_1","makeAssert","defaultThrowMsg","throwMsg","assertUnreachable","_value","comment","object","toObject","array","mapToKey","mapToValue","react","isValidClassName","getClassNames","utils","constant","noop","identity","clearUndefined","cleaned","Growl","testId","right","onClose","title","bodyMessage","titleColor","autocloseGrowl","useSyncExternalStoreWithSelector_production_min","withSelectorModule","React","ReactOriginal","ReactOriginal[\"default\"]","ContextKey","gT","getContext","contextMap","realContext","ReactReduxContext","notInitialized","createReduxContextHook","useReduxContext","useSyncExternalStoreWithSelector","initializeUseSelector","refEquality","createSelectorHook","useReduxContext2","useSelector2","equalityFnOrOptions","equalityFn","devModeChecks","subscription","getServerState","stabilityCheck","identityFunctionCheck","wrappedSelector","selectedState","useSelector","defaultNoopBatch","createListenerCollection","last","isSubscribed","nullListeners","createSubscription","parentSub","unsubscribe","subscriptionsAmount","selfSubscribed","addNestedSub","trySubscribe","cleanupListener","removed","tryUnsubscribe","notifyNestedSubs","handleChangeWrapper","trySubscribeSelf","tryUnsubscribeSelf","canUseDOM","useIsomorphicLayoutEffect","is","keysA","keysB","serverState","contextValue","previousState","Provider_default","createStoreHook","useStore2","useStore","createDispatchHook","useDispatch2","useDispatch","batch","useSyncExternalStoreWithSelector2","useAppDispatch","useAppSelector","formatProdErrorMessage","$$observable","symbol_observable_default","randomString","ActionTypes","actionTypes_default","isPlainObject","createStore","reducer","preloadedState","enhancer","currentReducer","currentState","currentListeners","nextListeners","listenerIdCounter","isDispatching","ensureCanMutateNextListeners","getState","subscribe","listenerId","dispatch","action","replaceReducer","nextReducer","observable","outerSubscribe","observer","observeState","observerAsObserver","assertReducerShape","reducers","combineReducers","reducerKeys","finalReducers","finalReducerKeys","shapeAssertionError","hasChanged","nextState","previousStateForKey","nextStateForKey","compose","funcs","applyMiddleware","middlewares","createStore2","middlewareAPI","chain","middleware","isAction","NOTHING","DRAFTABLE","DRAFT_STATE","die","getPrototypeOf","isDraft","isDraftable","isMap","isSet","objectCtorString","Ctor","original","each","iter","getArchtype","entry","has","get","set","propOrOldValue","latest","shallowCopy","strict","descriptors","freeze","deep","isFrozen","dontMutateFrozenCollections","plugins","getPlugin","pluginKey","plugin","loadPlugin","implementation","currentScope","getCurrentScope","createScope","parent_","immer_","usePatchesInScope","patchListener","revokeScope","leaveScope","revokeDraft","enterScope","immer2","draft","processResult","baseDraft","finalize","maybeFreeze","rootScope","path","childValue","finalizeProperty","resultEach","isSet2","parentState","targetObject","rootPath","targetIsSet","res","createProxyProxy","parent","isArray","traps","objectTraps","arrayTraps","revoke","proxy","source","readPropFromProto","peek","prepareCopy","createProxy","getDescriptorFromProto","current2","markChanged","owner","Immer2","recipe","defaultBase","self","base2","hasError","ip","patches","inversePatches","patch","applyPatchesImpl","currentImpl","enablePatches","REPLACE","ADD","REMOVE","generatePatches_","basePath","generatePatchesFromAssigned","generateArrayPatches","generateSetPatches","base_","assigned_","copy_","clonePatchValueIfNeeded","assignedValue","origValue","op","generateReplacementPatches_","baseValue","replacement","applyPatches_","parentType","deepClonePatchValue","cloned","immer","produce","produceWithPatches","applyPatches","assertIsFunction","func","errorMessage","assertIsObject","assertIsArrayOfFunctions","itemTypes","ensureIsArray","getDependencies","createSelectorArgs","dependencies","collectInputSelectorResults","inputSelectorArgs","inputSelectorResults","StrongRef","Ref","UNTERMINATED","TERMINATED","createCacheNode","weakMapMemoize","fnNode","resultEqualityCheck","lastResult","resultsCount","memoized","cacheNode","objectCache","objectNode","primitiveCache","primitiveNode","terminatedNode","lastResultValue","createSelectorCreator","memoizeOrOptions","memoizeOptionsFromArgs","createSelectorCreatorOptions","createSelector2","recomputations","dependencyRecomputations","directlyPassedOptions","resultFunc","combinedOptions","memoizeOptions","argsMemoize","argsMemoizeOptions","finalMemoizeOptions","finalArgsMemoizeOptions","memoizedResultFunc","createSelector","createStructuredSelector","inputSelectorsObject","selectorCreator","inputSelectorKeys","composition","createThunkMiddleware","extraArgument","thunk","withExtraArgument","createDraftSafeSelectorCreator","createDraftSafeSelector2","args2","composeWithDevTools","hasMatchFunction","createAction","prepareAction","actionCreator","prepared","Tuple","_Tuple","items","freezeDraftable","createNextState","emplace","map","inserted","isBoolean","buildGetDefaultMiddleware","immutableCheck","serializableCheck","actionCreatorCheck","middlewareArray","thunkMiddleware","SHOULD_AUTOBATCH","prepareAutoBatched","payload","createQueueWithTimer","timeout","notify","rAF","autoBatchEnhancer","notifying","shouldNotifyAtEndOfTick","notificationQueued","queueCallback","notifyListeners","listener2","wrappedListener","buildGetDefaultEnhancers","middlewareEnhancer","autoBatch","enhancerArray","IS_PRODUCTION","configureStore","getDefaultMiddleware","devTools","enhancers","rootReducer","isPlainObject2","finalMiddleware","finalCompose","compose2","getDefaultEnhancers","storeEnhancers","composedEnhancer","executeReducerBuilderCallback","builderCallback","actionsMap","actionMatchers","defaultCaseReducer","builder","typeOrActionCreator","matcher","isStateFunction","createReducer","initialState","mapOrBuilderCallback","finalActionMatchers","finalDefaultCaseReducer","getInitialState","frozenInitialState","caseReducers","reducer2","cr","caseReducer","isDraft2","isDraftable2","createNextState2","urlAlphabet","nanoid","isAnyOf","matchers","isAllOf","hasExpectedRequestMetadata","validStatus","hasValidRequestId","hasValidRequestStatus","isAsyncThunkArray","isPending","asyncThunks","asyncThunk","isRejected","isRejectedWithValue","hasFlag","isFulfilled","isAsyncThunkAction","commonProperties","RejectWithValue","meta","__publicField","FulfillWithMeta","miniSerializeError","simpleError","property","createAsyncThunk","createAsyncThunk2","typePrefix","payloadCreator","fulfilled","requestId","pending","rejected","extra","abortController","abortHandler","abortReason","abort","promise","finalAction","conditionResult","isThenable","abortedPromise","reject","unwrapResult","asyncThunkSymbol","getType","slice","actionKey","buildCreateSlice","creators","cAT","reducerPath","buildReducerCreators","reducerNames","contextMethods","name2","reducerName","reducerDefinition","reducerDetails","isAsyncThunkSliceReducerDefinition","handleThunkCaseReducerDefinition","handleNormalReducerDefinition","buildReducer","extraReducers","finalCaseReducers","sM","selectSelf","injectedSelectorCache","_reducer","makeSelectorProps","reducerPath2","injected","selectSlice","sliceState","getSelectors","selectState","selectorCache","wrapSelector","injectable","pathOpt","newReducerPath","wrapper","rootState","createSlice","prepare","createNotation","maybeReducerWithPrepare","prepareCallback","isCaseReducerWithPrepareDefinition","settled","assertFunction","expected","alm","getListenerEntryPropsFrom","effect","createListenerEntry","addListener","removeListener","QueryStatus","QueryStatus2","getRequestStatusFlags","status","isAbsoluteUrl","withoutTrailingSlash","withoutLeadingSlash","joinUrls","delimiter","flatten","isOnline","isDocumentVisible","copyWithStructuralSharing","oldObj","newObj","newKeys","oldKeys","isSameObject","mergeObj","defaultFetchFn","defaultValidateStatus","response","defaultIsJsonContentType","headers","stripUndefined","fetchBaseQuery","baseUrl","prepareHeaders","fetchFn","paramsSerializer","isJsonContentType","jsonContentType","jsonReplacer","defaultTimeout","globalResponseHandler","globalValidateStatus","baseFetchOptions","api","signal","endpoint","forced","params","responseHandler","validateStatus","isJsonifiable","body","divider","query","request","timedOut","timeoutId","responseClone","resultData","responseText","handleResponseError","handleResponse","HandledError","onFocus","onFocusLost","onOnline","onOffline","initialized","setupListeners","customHandler","defaultHandler","handleFocus","handleFocusLost","handleOnline","handleOffline","handleVisibilityChange","isQueryDefinition","isMutationDefinition","calculateProvidedBy","queryArg","assertTagTypes","isFunction","expandTagDescription","isNotNullish","countObjectKeys","asSafePromise","forceQueryFnSymbol","isUpsertQuery","buildInitiate","serializeQueryArgs","queryThunk","mutationThunk","runningQueries","runningMutations","unsubscribeQueryResult","removeMutationResult","updateSubscriptionOptions","buildInitiateQuery","buildInitiateMutation","getRunningQueryThunk","getRunningMutationThunk","getRunningQueriesThunk","getRunningMutationsThunk","endpointName","queryArgs","endpointDefinition","queryCacheKey","_endpointName","fixedCacheKeyOrRequestId","queryAction","forceRefetch","subscriptionOptions","forceQueryFn","thunkResult","stateAfter","skippedSynchronously","runningQuery","selectFromState","statePromise","running","track","fixedCacheKey","returnValuePromise","reset","defaultTransformResponse","baseQueryReturnValue","buildThunks","baseQuery","endpointDefinitions","assertTagType","patchQueryData","updateProvided","newValue","providedTags","updateQueryData","updateRecipe","upsertQueryData","executeEndpoint","rejectWithValue","fulfillWithValue","transformResponse","baseQueryApi","isForcedQuery","arg2","catchedError","transformErrorResponse","requestState","baseFetchOnMountOrArgChange","_c","fulfilledVal","refetchVal","queryThunkArgs","currentArg","previousArg","hasTheForce","hasMaxAge","prefetch","maxAge","force2","options2","latestStateValue","lastFulfilledTs","matchesEndpoint","buildMatchThunkActions","calculateProvidedByThunk","updateQuerySubstateIfExists","update","substate","getMutationCacheKey","updateMutationSubstateIfExists","buildSlice","definitions","apiUid","extractRehydrationInfo","hasRehydrationInfo","resetApiState","querySlice","upserting","merge","fulfilledTimeStamp","baseQueryMeta","newData","draftSubstateData","queries","mutationSlice","startedTimeStamp","mutations","invalidationSlice","tagTypeSubscriptions","idSubscriptions","foundAt","subscribedQueries","provided","incomingTags","cacheKeys","subscriptionSlice","internalSubscriptionsSlice","configSlice","combinedReducer","actions","skipToken","initialSubState","defaultQuerySubState","defaultMutationSubState","buildSelectors","selectSkippedQuery","selectSkippedMutation","buildQuerySelector","buildMutationSelector","selectInvalidatedBy","selectCachedArgsForQuery","withRequestFlags","selectInternalState","serializedArgs","mutationId","tags","apiState","toInvalidate","tag","invalidateSubscriptions","invalidate","querySubState","queryName","defaultSerializeQueryArgs","serialized","cached","stringified","key2","buildCreateApi","modules","optionsWithDefaults","queryArgsApi","finalSerializeQueryArgs","endpointSQA","queryArgsApi2","initialResult","injectEndpoints","addTagTypes","endpoints","eT","partialDefinition","initializedModules","inject","evaluatedEndpoints","definition","_formatProdErrorMessage2","isObjectEmpty","THIRTY_TWO_BIT_MAX_TIMER_SECONDS","buildCacheCollectionHandler","internalState","removeQueryResult","anySubscriptionsRemainingForKey","subscriptions","currentRemovalTimeouts","mwApi","internalState2","handleUnsubscribe","queryState","api2","keepUnusedDataFor","finalKeepUnusedDataFor","currentTimeout","buildInvalidationByTagsHandler","refetchQuery","isThunkActionWithTags","isQueryEnd","pendingTagInvalidations","invalidateTags","hasPendingRequests","newTags","valuesArray","subscriptionSubState","buildPollingHandler","currentPolls","updatePollingInterval","startNextPoll","clearPolls","lowestPollingInterval","skipPollingIfUnfocused","findLowestPollingInterval","currentPoll","nextPollTimestamp","cleanupPollForKey","existingPoll","buildWindowEventHandler","refetchValidQueries","sub","neverResolvedError","buildCacheLifecycleHandler","isQueryThunk","isMutationThunk","isFulfilledThunk","lifecycleMap","stateBefore","getCacheKey","oldState","handleNewKey","lifecycle","cacheKey2","originalArgs","onCacheEntryAdded","cacheEntryRemoved","resolve","cacheDataLoaded","extra2","lifecycleApi","runningHandler","buildQueryLifecycleHandler","isPendingThunk","isRejectedThunk","isFullfilledThunk","onQueryStarted","queryFulfilled","rejectedWithValue","buildDevCheckHandler","buildBatchedActionsHandler","subscriptionsPrefix","previousSubscriptions","updateSyncTimer","actuallyMutateSubscriptions","mutableState","mutated","getSubscriptions","subscriptionSelectors","subscriptionsForQueryArg","didMutate","actionShouldContinue","newSubscriptions","produceWithPatches2","isSubscriptionSliceAction","isAdditionalSubscriptionAction","buildMiddleware","isThisApiSliceAction","handlerBuilders","initialized2","builderArgs","build","batchedActionsHandler","windowEventsHandler","mwApiWithNext","internalProbeResult","override","safeAssign","coreModuleName","coreModule","tagTypes","refetchOnMountOrArgChange","refetchOnFocus","refetchOnReconnect","invalidationBehavior","sliceActions","middlewareActions","anyApi","capitalize","UNINITIALIZED_VALUE","useStableQueryArgs","incoming","useMemo","cache2","useRef","useShallowStableValue","useRef2","useEffect2","useLayoutEffect","useEffect3","noPendingQueryStateSelector","selected","buildHooks","unstable__sideEffectsInRender","usePossiblyImmediateEffect","cb","buildQueryHooks","buildMutationHook","usePrefetch","queryStatePreSelector","hasData","isFetching","isLoading","isSuccess","defaultOptions","stableDefaultOptions","useCallback","useQuerySubscription","skip","pollingInterval","initiate","subscriptionSelectorsRef","useRef3","returnedValue","stableArg","stableSubscriptionOptions","lastRenderHadSubscription","promiseRef","currentRenderHasSubscription","subscriptionRemoved","lastPromise","lastSubscriptionOptions","useMemo2","useLazyQuerySubscription","setArg","subscriptionOptionsRef","trigger","preferCacheValue","useQueryState","selectFromResult","select","lastValue","selectDefaultResult","shallowEqual2","querySelector","newLastValue","queryStateResults","info","querySubscriptionResults","isError","useDebugValue","setPromise","triggerMutation","promise2","mutationSelector","finalState","reactHooksModuleName","reactHooksModule","rrBatch","hooks","rrUseDispatch","rrUseSelector","rrUseStore","_createSelector","useQuery","useLazyQuery","useMutation","createApi","getRandomValues","rnds8","rng","byteToHex","unsafeStringify","randomUUID","native","v4","buf","rnds","getFakeUser","userConnection","fakeUser","retry","doWork","doWorkOnce","numberOfAttempts","HttpError","statusCode","trueProto","TimeoutError","AbortError","UnsupportedTransportError","transport","DisabledTransportError","FailedToStartTransportError","FailedToNegotiateWithServerError","AggregateErrors","innerErrors","HttpResponse","statusText","content","HttpClient","LogLevel","NullLogger","_logLevel","_message","VERSION","Arg","Platform","getDataDetail","includeContent","detail","isArrayBuffer","formatArrayBuffer","view","pad","sendMessage","logger","transportName","httpClient","getUserAgentHeader","responseType","createLogger","ConsoleLogger","SubjectSubscription","subject","minimumLogLevel","logLevel","userAgentHeaderName","constructUserAgent","getOsName","getRuntime","getRuntimeVersion","version","os","runtime","runtimeVersion","userAgent","majorAndMinor","getErrorString","getGlobalThis","configureFetch","configureAbortController","getWS","getEventSource","FetchHttpClient","fetchObj","abortObj","msTimeout","deserializeContent","cookies","XhrHttpClient","header","DefaultHttpClient","TextMessageFormat","output","HandshakeProtocol","handshakeRequest","messageData","remainingData","binaryData","separatorIndex","responseLength","textData","MessageType","Subject","MessageBuffer","protocol","connection","bufferSize","serializedMessage","backpressurePromise","backpressurePromiseResolver","backpressurePromiseRejector","BufferedItem","ackMessage","newestAckedMessage","currentId","sequenceId","resolver","rejector","DEFAULT_TIMEOUT_IN_MS","DEFAULT_PING_INTERVAL_IN_MS","DEFAULT_STATEFUL_RECONNECT_BUFFER_SIZE","HubConnectionState","HubConnection","reconnectPolicy","serverTimeoutInMilliseconds","keepAliveIntervalInMilliseconds","statefulReconnectBufferSize","handshakePromise","startPromise","methodName","streams","streamIds","invocationDescriptor","promiseQueue","cancelInvocation","invocationEvent","sendPromise","newMethod","method","removeIdx","responseMessage","nextPing","invocationMessage","methods","methodsCopy","expectsResponse","completionMessage","prevRes","reconnectStartTime","previousReconnectAttempts","retryError","nextRetryDelay","previousRetryCount","elapsedMilliseconds","retryReason","callbacks","nonblocking","invocationId","streamId","argument","DEFAULT_RETRY_DELAYS_IN_MILLISECONDS","DefaultReconnectPolicy","retryDelays","retryContext","HeaderNames","AccessTokenHttpClient","innerClient","accessTokenFactory","allowRetry","HttpTransportType","TransferFormat","AbortController$1","LongPollingTransport","AbortController","transferFormat","pollOptions","pollUrl","deleteOptions","logMessage","ServerSentEventsTransport","accessToken","opened","eventSource","WebSocketTransport","logMessageContent","webSocketConstructor","webSocket","_event","MAX_REDIRECTS","HttpConnection","webSocketModule","eventSourceModule","TransportSendQueue","negotiateResponse","redirects","negotiateUrl","connectionToken","requestedTransport","requestedTransferFormat","connectUrl","transportExceptions","transports","negotiate","transportOrError","callStop","useStatefulReconnect","transportMatches","aTag","searchParams","actualTransport","_transport","PromiseSource","transportResult","arrayBuffers","totalLength","JSON_HUB_PROTOCOL_NAME","JsonHubProtocol","hubMessages","parsedMessage","LogLevelNameMapping","parseLogLevel","mapping","HubConnectionBuilder","logging","isLogger","transportTypeOrOptions","retryDelaysOrReconnectPolicy","httpConnectionOptions","configuration","post_1","authTokenFactory","applicationHeaderFactory","fetch","buildHeaders","safeStringify","makeReplacer","seen","exposedError","fieldValue","authToken","applicationHeader","serverLogScheduler","configuration_1","INTERVAL_ADJUSTMENT_FACTOR","emptyBatch","makeScheduler","storageStrategy","scheduler","schedulerConf","scheduleInterval","nextTaskScheduled","isRunning","runTask","prefixMessages","adjustScheduleInterval","scheduleNextTask","lastBatchSize","adjustedInterval","clamp","log","module","require","_dereq_","global","Mutation","scheduleDrain","called","nextTick","channel","scriptEl","draining","queue","oldQueue","immediate","task","INTERNAL","REJECTED","FULFILLED","PENDING","Promise","safelyResolveThenable","onRejected","onFulfilled","QueueItem","returnValue","tryCatch","getThen","thenable","then","onSuccess","tryToUnwrap","out","iterable","resolved","allResolver","resolveFromAll","outValue","race","_typeof","_classCallCheck","instance","Constructor","getIDB","idb","isIndexedDBValid","isSafari","hasFetch","createBlob","properties","Builder","Promise$1","executeCallback","executeTwoCallbacks","errorCallback","normalizeKey","getCallback","DETECT_BLOB_SUPPORT_STORE","supportsBlobs","dbContexts","toString","READ_ONLY","READ_WRITE","_binStringToArrayBuffer","bin","_checkBlobSupportWithoutCaching","txn","blob","matchedChrome","matchedEdge","_checkBlobSupport","_deferReadiness","dbInfo","dbContext","deferredOperation","_advanceReadiness","_rejectReadiness","_getConnection","upgradeNeeded","createDbContext","dbArgs","openreq","db","_getOriginalConnection","_getUpgradedConnection","_isUpgradeNeeded","defaultVersion","isNewStore","isDowngrade","isUpgrade","incVersion","_encodeBlob","reader","base64","_decodeBlob","encodedBlob","arrayBuff","_isEncodedBlob","_fullyReady","_tryReconnect","forages","forage","createTransaction","retries","tx","_initStorage","initPromises","ignoreErrors","j","getItem","transaction","req","iterate","iterator","iterationNumber","setItem","blobSupport","removeItem","advanced","dropInstance","currentConfig","isCurrentDb","dbPromise","newVersion","dropObjectPromise","_forage2","dropDBPromise","_forage","asyncStorage","isWebSQLValid","BASE_CHARS","BLOB_TYPE_PREFIX","BLOB_TYPE_PREFIX_REGEX","SERIALIZED_MARKER","SERIALIZED_MARKER_LENGTH","TYPE_ARRAYBUFFER","TYPE_BLOB","TYPE_INT8ARRAY","TYPE_UINT8ARRAY","TYPE_UINT8CLAMPEDARRAY","TYPE_INT16ARRAY","TYPE_INT32ARRAY","TYPE_UINT16ARRAY","TYPE_UINT32ARRAY","TYPE_FLOAT32ARRAY","TYPE_FLOAT64ARRAY","TYPE_SERIALIZED_MARKER_LENGTH","toString$1","stringToBuffer","serializedString","bufferLength","encoded1","encoded2","encoded3","encoded4","buffer","bytes","bufferToString","base64String","valueType","marker","fileReader","deserialize","blobType","localforageSerializer","createDbTable","_initStorage$1","dbInfoPromise","tryExecuteSql","sqlStatement","getItem$1","iterate$1","rows","_setItem","retriesLeft","originalValue","sqlError","setItem$1","removeItem$1","clear$1","length$1","key$1","keys$1","getAllStoreNames","storeNames","dropInstance$1","operationInfo","dropTable","storeName","operations","webSQLStorage","isLocalStorageValid","_getKeyPrefix","keyPrefix","checkIfLocalStorageThrows","localStorageTestKey","_isLocalStorageUsable","_initStorage$2","clear$2","getItem$2","iterate$2","keyPrefixLength","key$2","keys$2","itemKey","length$2","removeItem$2","setItem$2","dropInstance$2","localStorageWrapper","sameValue","includes","searchElement","DefinedDrivers","DriverSupport","DefaultDrivers","DefaultDriverOrder","OptionalDriverMethods","LibraryMethods","DefaultConfig","callWhenReady","localForageInstance","libraryMethod","_args","extend","LocalForage","driverTypeKey","driver","driverName","driverObject","complianceError","driverMethods","driverMethodName","isRequired","configureMissingMethods","methodNotImplementedFactory","_len","optionalDriverMethod","setDriverSupport","support","getDriverPromise","serializerPromise","drivers","supportedDrivers","setDriverToConfig","extendSelfWithDriver","initDriver","currentDriverIndex","driverPromiseLoop","oldDriverSetDone","libraryMethodsAndProperties","localforage_js","createKey","__importDefault","mod","browserStorage","localforage_1","storage_strategy_1","BrowserStorage","logEvent","logEventWithoutData","batchSize","LogLevels","createConsoleLogger_1","log_event_1","createConsoleLogger","consoleConf","actualConsole","level","getLevel","getConsoleFunction","consoleImpl","REGEX","validate","uuid","stringify","_nodeId","_clockseq","_lastMSecs","_lastNSecs","node","clockseq","seedBytes","msecs","nsecs","tl","tmh","stringToBytes","DNS","URL","v35","hashfunc","generateUUID","namespace","md5","md5ToHexEncodedArray","wordsToMd5","bytesToWords","length32","hexTab","getOutputLength","inputLength8","olda","oldb","oldc","oldd","md5ff","md5gg","md5hh","md5ii","safeAdd","length8","lsw","msw","bitRotateLeft","cnt","md5cmn","v3","v3$1","ROTL","sha1","_i2","_t","_t2","v5","v5$1","nil","logBuilder","server_log_scheduler_1","browser_storage_1","create_console_logger_1","uuid_1","LogBuilder","factory","serverLogConfiguration","serverLogConf","consoleLogger","loggingSessionId","structuredLog","messageTemplate","parameters","optionalData","appConfig","isProd","streamingSlice","streamingStateChanged","streamingReducer","MAX_RETRIES","DELAY_MS","RECONNECT_DELAY","hubUrl","getAuthorizationToken","createSignalrConnection","retryReasonStack","signalrConnection","startConnection","connectionId","vacationSlice","setLastVacation","vacationReducer","errorsSlice","errorId","fields","dealId","_removedProperty","remainingObject","addErrorToShow","removeErrorToShow","hideError","getErrorsToDisplay","getDealId","_state","getErrorDealById","dealsInError","stateBackendError","getErrorInputsByDealId","errorForDeal","getErrorByDealId","_stateID","currentDealId","errorsReducer","dealsApi","_savePayload","savedDeals","failedDeals","getBackendErrors","_sendDealPayload","sendedDeals","_discardDealPayload","discardedDeals","formatMetadata","unfilteredPayload","updatedDeals","vacationApi","updateDealsWithNewValues","_deleteDealPayload","deletedDeals","vacationId","currency2","currency1","convertedDeals","useSaveDealsMutation","useSendDealsMutation","useDiscardDealsMutation","useDeleteDealMutation","useRefreshDealMutation","useConvertDealsMutation","responseDeals","isFailureReason","deal","failureReasons","backendError","dataWithMetadata","proposedDate","formattedProposedDate","vacationStateDraft","dealsValuesToUpdate","dealValues","targetedVacation","vacation","targetedCurrencyPair","currencyPair","targetedDeal","isRefreshDealPayload","updateStatusOnDeals","deals","draftVacations","currentVacation","draftDeal","blotterSlice","inputKey","rowId","columnId","dealStatus","selectedRows","savedDealsId","updateInput","updateNextTabPosition","clearBlotter","setSelectedStatusDeal","setSelectedRows","resetSelectedRows","blotterReducer","getUpdatedInputsAll","getUpdatedInputsByDealId","isBlotterReadOnly","getSelectedDealStatus","getSelectedRows","handleVacationEvent","updateCachedData","eventType","eventData","useGetVacationsQuery","selectVacationsResult","selectSessionId","sessionId","selectCurrencyPair","_sessionId","emptyVacations","selectAllVacations","vacationsResult","selectCurrentVacation","selectVacationById","allVacations","selectCurrencyPairsFromSessionIdVacation","selectCurrencyPairDealsFromSessionIdVacation","currencyPairs","currencyPairWithDeals","selectLastVacation","FIFTEEN_MINUTES","TWO_MINUTE","FIVE_MINUTES","SessionRemainingTimeCountDown","growlRightPosition","growlTopPosition","CountDown","lastSessionStartTime","remainingTimeInSeconds","computeRemainingTime","showExpirationGrowl","closeGrowl","ColoredRemainingTime","currentTimeString","currentTimeDate","formattedLastSessionStartTime","closestPreviousSessionStartTimeDate","secondsSinceLastSessionStarted","computeColorClassName","color","formatRemainingTime","remainingTime","Indicators","schedulerModule","aa","ca","da","ea","fa","ha","ia","ja","ka","la","ma","oa","pa","qa","ra","sa","ta","ua","va","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","Ra","Sa","Ta","Ua","Va","Wa","Xa","Ya","Za","ab","bb","eb","fb","gb","hb","ib","jb","kb","lb","mb","nb","ob","pb","qb","rb","sb","tb","ub","vb","wb","xb","yb","zb","Ab","Bb","Cb","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","Rb","Sb","Tb","Ub","Vb","Wb","Xb","Yb","Zb","$b","ac","bc","cc","dc","ec","fc","gc","hc","ic","jc","kc","lc","mc","oc","nc","pc","qc","rc","sc","tc","uc","vc","wc","xc","yc","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","Rc","Sc","Tc","Uc","Vc","Wc","Xc","Yc","Zc","$c","ad","bd","cd","dd","ed","fd","gd","hd","jd","kd","ld","md","nd","od","pd","qd","rd","sd","td","ud","vd","wd","xd","yd","Ad","zd","Bd","Cd","Dd","Ed","Fd","Gd","Hd","Id","Jd","Kd","Ld","Md","Nd","Od","Pd","Qd","Rd","Sd","Td","Ud","Vd","Wd","Xd","Yd","Zd","$d","ae","be","ce","de","ee","fe","ge","he","ie","je","ke","le","me","ne","oe","pe","qe","se","te","ue","ve","we","xe","ye","ze","Ae","Be","Ce","De","Ee","Fe","Ge","He","Ie","Je","Ke","Le","Me","Ne","Oe","Pe","Qe","Re","Se","Te","Ue","Ve","We","Xe","Ye","Ze","$e","af","bf","cf","ef","gf","hf","jf","kf","lf","mf","nf","of","pf","qf","rf","sf","tf","uf","vf","wf","na","xa","$a","ba","xf","yf","zf","Af","Bf","Cf","Df","Ef","Ff","Gf","Hf","Jf","If","Kf","Lf","Mf","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","Vf","Wf","Xf","Yf","Zf","$f","ag","bg","cg","dg","eg","fg","hg","ig","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","zg","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Hg","Ig","Jg","Kg","Lg","Mg","Ng","Og","Pg","Qg","Rg","Sg","Tg","Ug","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","dh","eh","fh","gh","ih","jh","kh","nh","lh","mh","oh","ph","qh","rh","sh","th","uh","vh","wh","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","Oh","Ph","Qh","Rh","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","ei","fi","gi","hi","ji","ki","li","mi","ni","oi","pi","qi","ri","si","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","Ci","Di","Ei","Fi","Gi","Hi","Ii","Ji","Ki","Li","Mi","Ni","Oi","Pi","Qi","Ri","Si","Ti","Ui","Vi","Wi","Xi","Yi","Zi","$i","aj","bj","cj","dj","ej","fj","gj","hj","ij","jj","kj","lj","mj","nj","oj","pj","qj","rj","sj","tj","uj","vj","wj","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Kj","Lj","Mj","Nj","Oj","Pj","Qj","Rj","Sj","Tj","Uj","Vj","Wj","Xj","X","Yj","Zj","bk","ck","dk","ek","fk","gk","hk","ik","jk","kk","lk","mk","nk","ok","pk","Y","Z","qk","rk","sk","tk","uk","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","Pk","Qk","Rk","Sk","Tk","Uk","Vk","Wk","Xk","Yk","Zk","$k","al","bl","cl","dl","fl","gl","hl","il","jl","kl","ll","ml","nl","ol","pl","ql","rl","sl","ul","vl","wl","reactDom_production_min","checkDCE","reactDomModule","_extends","Action","PopStateEventType","createBrowserHistory","createBrowserLocation","window","globalHistory","pathname","createBrowserHref","createPath","getUrlBasedHistory","cond","getHistoryState","parsePath","_ref","parsedPath","hashIndex","searchIndex","getLocation","createHref","validateLocation","v5Compat","getIndex","handlePop","nextIndex","delta","history","push","historyState","replace","createURL","href","ResultType","immutableRouteKeys","isIndexRoute","route","convertRoutesToDataRoutes","routes","mapRouteProperties","parentPath","manifest","treePath","indexRoute","pathOrLayoutRoute","matchRoutes","locationArg","basename","stripBasename","branches","flattenRoutes","rankRouteBranches","decoded","decodePath","matchRouteBranch","convertRouteMatchToUiMatch","loaderData","parentsMeta","flattenRoute","relativePath","joinPaths","routesMeta","computeScore","_route$path","exploded","explodeOptionalSegments","segments","isOptional","required","restExploded","subpath","compareIndexes","paramRe","dynamicSegmentValue","indexRouteValue","emptySegmentValue","staticSegmentValue","splatPenalty","isSplat","initialScore","score","segment","branch","matchedParams","matchedPathname","remainingPathname","matchPath","normalizePathname","compiledParams","compilePath","pathnameBase","captureGroups","memo","paramName","splatValue","caseSensitive","regexpSource","nextChar","resolvePath","fromPathname","toPathname","resolvePathname","normalizeSearch","normalizeHash","getInvalidPathError","dest","getPathContributingMatches","getResolveToMatches","v7_relativeSplatPath","pathMatches","resolveTo","toArg","routePathnames","locationPathname","isPathRelative","isEmptyPath","routePathnameIndex","toSegments","hasExplicitTrailingSlash","hasCurrentTrailingSlash","paths","ErrorResponseImpl","internal","isRouteErrorResponse","validMutationMethodsArr","validMutationMethods","validRequestMethodsArr","validRequestMethods","redirectStatusCodes","redirectPreserveMethodStatusCodes","IDLE_NAVIGATION","IDLE_FETCHER","IDLE_BLOCKER","ABSOLUTE_URL_REGEX","defaultMapRouteProperties","TRANSITIONS_STORAGE_KEY","createRouter","init","routerWindow","isBrowser","isServer","detectErrorBoundary","dataRoutes","inFlightDataRoutes","future","unlistenHistory","savedScrollPositions","getScrollRestorationKey","getScrollPosition","initialScrollRestored","initialMatches","initialErrors","getInternalRouterError","getShortCircuitMatches","hasLazyRoutes","hasLoaders","errors","isRouteInitialized","router","pendingAction","pendingPreventScrollReset","pendingNavigationController","pendingViewTransitionEnabled","appliedViewTransitions","removePageHideEventListener","isUninterruptedRevalidation","isRevalidationRequired","cancelledDeferredRoutes","cancelledFetcherLoads","fetchControllers","incrementingLoadId","pendingNavigationLoadId","fetchReloadIds","fetchRedirectIds","fetchLoadMatches","activeFetchers","deletedFetchers","activeDeferreds","blockerFunctions","ignoreNextHistoryUpdate","initialize","historyAction","blockerKey","shouldBlockNavigation","updateBlocker","blockers","updateState","startNavigation","restoreAppliedTransitions","_saveAppliedTransitions","persistAppliedTransitions","dispose","deleteFetcher","deleteBlocker","newState","completedFetchers","deletedFetchersKeys","fetcher","subscriber","completeNavigation","_temp","_location$state","_location$state2","flushSync","isActionReload","isMutationMethod","actionData","mergeLoaderData","preventScrollReset","viewTransitionOpts","priorPaths","toPaths","getSavedScrollPosition","navigate","normalizedPath","normalizeTo","submission","normalizeNavigateOptions","currentLocation","nextLocation","userReplace","revalidate","interruptActiveLoads","saveScrollPosition","routesToUse","loadingNavigation","notFoundMatches","cancelActiveDeferreds","isHashChangeOnly","createClientSideRequest","pendingActionData","pendingError","findNearestBoundary","actionOutput","handleAction","getLoadingNavigation","shortCircuited","handleLoaders","navigation","getSubmittingNavigation","actionMatch","getTargetMatch","callLoaderOrAction","isRedirectResult","startRedirectNavigation","isErrorResult","boundaryMatch","isDeferredResult","overrideNavigation","fetcherSubmission","initialHydration","activeSubmission","getSubmissionFromNavigation","matchesToLoad","revalidatingFetchers","getMatchesToLoad","routeId","updatedFetchers","markFetchRedirectsDone","revalidatingFetcher","getLoadingFetcher","abortFetcher","abortPendingFetchRevalidations","loaderResults","fetcherResults","callLoadersAndMaybeResolveData","redirect","findRedirect","fetcherKey","processLoaderData","deferredData","aborted","_ref2","_ref3","didAbortFetchLoads","abortStaleFetchLoads","shouldUpdateFetchers","setFetcherError","handleFetcherAction","handleFetcherLoader","requestMatches","existingFetcher","updateFetcherState","getSubmittingFetcher","fetchRequest","originatingLoadId","actionResult","getDoneFetcher","revalidationRequest","loadId","loadFetcher","staleKey","doneFetcher","resolveDeferredData","_temp2","redirectLocation","isDocumentReload","redirectHistoryAction","formMethod","formAction","formEncType","currentMatches","fetchersToLoad","resolveDeferredResults","getFetcher","deleteFetcherAndUpdateState","controller","markFetchersDone","doneKeys","landedId","yeetedKeys","getBlocker","blocker","newBlocker","_ref4","blockerFunction","cancelledRouteIds","dfd","enableScrollRestoration","positions","getPosition","getKey","getScrollKey","_internalSetRoutes","newRoutes","isSubmissionNavigation","prependBasename","fromRouteId","relative","contextualMatches","activeRouteMatch","hasNakedIndexQuery","normalizeFormMethod","isFetcher","isValidMethod","getInvalidBodyError","rawFormMethod","stripHashFromPath","_ref5","json","formData","convertFormDataToSearchParams","convertSearchParamsToFormData","getLoaderMatchesUntilBoundary","boundaryId","boundaryMatches","isInitialLoad","currentUrl","nextUrl","navigationMatches","isNewLoader","currentRouteMatch","nextRouteMatch","shouldRevalidateLoader","isNewRouteInstance","fetcherMatches","fetcherMatch","shouldRevalidate","currentLoaderData","currentMatch","isNew","isMissingData","currentPath","loaderMatch","routeChoice","loadLazyRouteModule","lazyRoute","routeToUpdate","routeUpdates","lazyRouteProperty","isPropertyStaticallyDefined","resultType","onReject","runHandler","abortPromise","handlerError","isResponse","isSameBasename","contentType","isDeferredData","_result$init","_result$init2","processRouteLoaderData","foundError","loaderHeaders","newLoaderData","mergedLoaderData","_temp5","deferred","signals","isRevalidatingLoader","_window","transitions","sessionPositions","DataRouterContext","DataRouterStateContext","NavigationContext","LocationContext","RouteContext","RouteErrorContext","useHref","useInRouterContext","UNSAFE_invariant","navigator","useResolvedPath","joinedPathname","useLocation","React.useLayoutEffect","useNavigate","isDataRoute","useNavigateStable","useNavigateUnstable","dataRouterContext","routePathnamesJson","UNSAFE_getResolveToMatches","activeRef","React.useRef","React.useCallback","OutletContext","useOutlet","outlet","useParams","routeMatch","React.useMemo","useRoutesImpl","dataRouterState","parentMatches","parentParams","parentPathnameBase","locationFromContext","_parsedLocationArg$pa","parsedLocationArg","parentSegments","renderedMatches","_renderMatches","DefaultErrorComponent","useRouteError","stack","preStyles","defaultErrorElement","RenderErrorBoundary","React.Component","errorInfo","RenderedRoute","routeContext","_dataRouterState2","_dataRouterState","errorIndex","renderFallback","fallbackIndex","needsToRunLoader","shouldRenderHydrateFallback","errorElement","hydrateFallbackElement","warningOnce","getChildren","DataRouterHook","DataRouterStateHook","useDataRouterContext","hookName","ctx","useDataRouterState","useRouteContext","useCurrentRouteId","thisRoute","_state$errors","alreadyWarned","Outlet","Router","basenameProp","locationProp","navigationType","staticProp","navigationContext","locationContext","trailingPathname","updates","_objectWithoutPropertiesLoose","excluded","sourceKeys","isModifiedEvent","shouldProcessLinkClick","_excluded","_excluded2","REACT_ROUTER_VERSION","createBrowserRouter","parseHydrationData","UNSAFE_mapRouteProperties","deserializeErrors","UNSAFE_ErrorResponseImpl","ErrorConstructor","ViewTransitionContext","FetchersContext","START_TRANSITION","startTransitionImpl","FLUSH_SYNC","flushSyncImpl","ReactDOM","startTransitionSafe","flushSyncSafe","Deferred","RouterProvider","fallbackElement","setStateImpl","React.useState","pendingState","setPendingState","vtContext","setVtContext","renderDfd","setRenderDfd","transition","setTransition","interruption","setInterruption","fetcherData","v7_startTransition","optInStartTransition","setState","isViewTransitionUnavailable","React.useEffect","renderPromise","UNSAFE_DataRouterContext","UNSAFE_DataRouterStateContext","DataRoutes","UNSAFE_useRoutesImpl","Link","React.forwardRef","_ref7","ref","onClick","reloadDocument","unstable_viewTransition","UNSAFE_NavigationContext","absoluteHref","isExternal","targetUrl","internalOnClick","useLinkClickHandler","handleClick","NavLink","_ref8","ariaCurrentProp","classNameProp","styleProp","routerState","isTransitioning","useViewTransitionState","nextLocationPathname","endSlashPosition","isActive","renderProps","ariaCurrent","className","replaceProp","nextPath","SessionTable","vacations","tradeDate","sessionTime","dealNumbers","ClosedIcon","Spinner","TableSessions","Sessions","isFetchingVacations","pastVacations","sessionsAreClosed","Homepage","makeNull","exists","allowEmptyString","missing","missingOrEmpty","toStringOrNull","attrToNumber","valueParsed","attrToBoolean","attrToString","jsonEquals","val1","val2","val1Json","val2Json","defaultComparator","valueA","valueB","accentedCompare","valueAMissing","valueBMissing","doQuickCompare","ColumnKeyCreator$1","colId","colField","idToTry","iterateObject","cloneObject","deepCloneDefinition","keysToSkip","isNonNullObject","getAllValuesInObject","anyObject","mergeDeep","copyUndefined","makeCopyOfSimpleObjects","sourceValue","destValue","getValueUsingField","fieldContainsDots","currentObject","removeAllReferences","preserveKeys","preDestroyLink","msgFunc","doOnceFlags","doOnce","warnOnce","errorOnce","getFunctionName","funcConstructor","executeInAWhile","executeAfter","executeNextVMTurnFuncs","executeNextVMTurnPending","executeNextVMTurn","funcsCopy","debounce","delay","throttle","wait","previousCall","currentCall","waitUntil","timeoutMessage","timeStamp","executed","internalCallback","reachedTimeout","fns","composed","ModuleNames","ModuleRegistry$1","ModuleRegistry","moduleBased","gridId","moduleMajor","moduleMinor","currentModuleMajor","currentModuleMinor","moduleName","warningKey","warningMessage","modName","chartType","PreConstruct","getOrCreateProps","PostConstruct","PreDestroy","Bean","beanName","classConstructor","Autowired","propertyKey","autowiredFunc","Optional","optional","classPrototype","methodOrAttributeName","Qualifier","constructor","__decorate","decorators","__param","paramIndex","decorator","EventService","gridOptionsService","frameworkOverrides","globalEventListener","globalSyncEventListener","async","autoCreateListenerCollection","listenerMap","agEvent","browserEvent","processEventListeners","originalListeners","queueCopy","FrameworkEventListenerService$1","userListener","COL_DEF_DEFAULTS","instanceIdSequence","getNextColInstanceId","Column$1","Column","colDef","userProvidedColDef","primary","sortIndex","initialSortIndex","hide","initialHide","flex","initialFlex","originalParent","suppressDotNotation","initialWidth","showingAllGroups","showingThisGroup","FrameworkEventListenerService","rowNode","userFunc","moving","sort","visible","sortOrder","aggFunc","left","active","additionalEventAttributes","filterChangedEvent","pinned","firstRightPinned","lastLeftPinned","numberOfParents","isSpanningTotal","height","changed","colSpan","rowSpan","actualWidth","silent","width","rowGroup","pivot","menuTabs","ProvidedColumnGroup$1","ProvidedColumnGroup","colGroupDef","groupId","child","expanded","leafColumns","col","atLeastOneShowingWhenOpen","atLeastOneShowingWhenClosed","atLeastOneChangeable","abstractColumn","headerGroupShow","expandable","process","DefaultColumnTypes","existsAndNotEmpty","comparator","shallowCompare","arr1","arr2","sortNumerically","removeRepeatsFromArray","thisOneMatches","nextOneMatches","removeFromUnorderedArray","removeFromArray","removeAllFromUnorderedArray","toRemove","removeAllFromArray","insertIntoArray","toIndex","insertArrayIntoArray","src","moveInArray","objectsToMove","arrayOfArrays","pushAll","toStrings","forEachReverse","AG_GRID_STOP_PROPAGATION","PASSIVE_EVENTS","supports","stopPropagationForAgGrid","isStopPropagationForAgGrid","isEventSupported","eventName","getCtrlForEventTarget","eventTarget","sourceElement","renderedComp","isElementInEventPath","getEventPath","createEventPath","pointer","eventNoType","addSafePassiveEventListener","eElement","BeanStub$1","BeanStub","destroyFunc","eventsKey","propertiesChangeEvent","bean","afterPreCreateCallback","beans","ColumnFactory","loggerFactory","defs","primaryColumns","existingTree","columnKeyCreator","ColumnKeyCreator","existingCols","existingGroups","existingColKeys","unbalancedTree","treeDept","columnTree","deptFirstCallback","group","autoGroupCols","gridBalancedTree","balancedColumnTree","column","dept","nextChild","autoGroup","currentDept","columnDept","originalGroup","newChildren","firstPaddedGroup","currentPaddedGroup","newColId","colGroupDefMerged","paddedGroup","leaf","treeChildren","maxDeptThisLevel","newDept","existingColsCopy","def","existingColumns","providedGroup","existingGroupAndIndex","existingGroup","existingColAndIndex","colDefMerged","widthBeforeUpdate","newColDef","newGroupDef","defaultColDef","columnType","autoGroupColDef","isSortingCoupled","typeKeys","allColumnTypes","userTypes","typeColDef","abstractColDef","ColumnGroup$1","ColumnGroup","providedColumnGroup","partId","instanceId","allLeafColumns","lastChildLeft","firstChildLeft","wantedChild","foundChild","groupActualWidth","groupChild","parentWithExpansion","Events$1","Events","GroupInstanceIdCreator$1","GROUP_AUTO_COLUMN_ID","AutoGroupColService","rowGroupColumns","groupAutoColumns","doingTreeData","doingMultiAutoColumn","rowGroupCol","autoGroupColumns","newCol","colToUpdate","oldColDef","underlyingColId","underlyingColumn","autoGroupColumnDef","hasOwnData","userDef","reUnescapedHtml","HTML_ESCAPES","utf8_encode","stringFromCharCode","ucs2decode","counter","checkScalarValue","point","createByte","shift","encodeCodePoint","symbol","codePoint","byteString","capitalise","escapeString","toEscape","skipEscapingHtmlChars","stringResult","chr","camelCaseToHumanText","camelCase","rex","rexCaps","word","camelCaseToHyphenated","convertToMap","mapById","ColumnModel","pivotMode","convertSourceType","columnDefs","colsPreviouslyExisted","oldTree","newTree","oldObjectsById","colsToDestroy","dispatchEventsFunc","oldPrimaryColumns","oldPrimaryTree","balancedTreeResult","gridColsNotProcessed","newColumnsLoadedEvent","eventEverythingChanged","primaryColsOrdered","otherCols","currentColumn","columns","afterScroll","scrollWidth","scrollPosition","pivotKeys","valueColKey","valueColumnToFind","foundColumn","thisPivotKeys","pivotValueColumn","lastLeft","firstRight","skipHeader","skipHeaderGroups","stopAtGroup","columnsAutosized","changesThisTimeAround","shouldSkipHeader","shouldSkipHeaderGroups","preferredWidth","newWidth","finished","flexColumns","movedColumns","changedColumns","columnGroups","headerGroupCtrl","resizedColumns","columnGroup","headerContainerCtrl","allDisplayedColumns","rootColumns","recursiveFindColumns","childColumns","displayedColumns","filterCallback","emptySpaceBeforeColumn","lastConsideredCol","maxAllowedColSpan","columnsToCheckFilter","colsToRemove","filterPasses","colForFilter","edge","allColumns","isFirst","columnToCompare","targetColumn","columnLeft","columnRight","leftBounds","rightBounds","columnToMuchLeft","columnToMuchRight","masterList","actionIsAdd","columnCallback","atLeastOne","columnToAdd","colKeys","detectOrderChange","changes","oldIndex","initialAggFunc","minWidth","maxWidth","columnWidths","shiftKey","sets","columnWidth","otherCol","widthDiff","otherColWidth","columnResizeSet","minWidthAccumulated","maxWidthAccumulated","maxWidthActive","minWidthPasses","maxWidthPasses","resizeSets","changedCols","allResizedCols","ratios","newWidths","finishedCols","finishedColsGrew","loopCount","subsetCols","subsetRatioTotal","pixelsToDistribute","ratioThisCol","ratioScale","lastCol","colNewWidth","atLeastOneColChanged","flexedCols","colsForEvent","fromIndex","impactedColumns","columnsToMoveKeys","columnsToMove","proposedColumnOrder","gridOrder","cols","indexA","indexB","lastPlacement","rulePassed","lockPositionToPlacement","placement","allColumnsCopy","newIndexes","newColIndex","maxIndex","minIndex","spread","maxSpread","newBodyWidth","newLeftWidth","newRightWidth","evt","actualPinned","createEvent","updatedColumns","direction","requiredLevel","colGroupLeafColumns","getDisplayColMethod","groupPointer","originalGroupLevel","groupPointerLevel","rowGroupIndex","pivotIndex","columnStateList","colIdToGridIndexMap","itemA","itemB","posA","posB","columnStates","letRowGroupIndex","letPivotIndex","colsToProcess","stateItem","getValueOrNull","applyStates","states","getById","columnsWithNoState","rowGroupIndexes","pivotIndexes","autoGroupColumnStates","unmatchedAndAutoStates","unmatchedCount","previousRowGroupCols","previousPivotCols","applyDefaultsFunc","indexes","oldList","colA","colB","aHasIndex","bHasIndex","oldIndexA","oldIndexB","aHasOldIndex","bHasOldIndex","autoGroupColsCopy","autoCol","newOrder","processedColIds","autoGroupInsertIndex","startState","columnStateBefore","columnStateBeforeMap","colsForState","dispatchWhenListsDifferent","colsBefore","colsAfter","idMapper","beforeList","afterList","changesArr","getChangedColumns","changedPredicate","colStateBefore","columnIdMapper","changedValues","cs","oldActive","activeChanged","aggFuncChanged","resizeChangePredicate","pinnedChangePredicate","visibilityChangePredicate","valueGetter","firstValue","colStateAfter","colStateAfterMapped","colsIntersectIds","beforeFiltered","afterFiltered","csAfter","csBefore","gridCol","defaultState","getValue","key1","calculated","minColWidth","columnLookupCallback","foundColumns","columnList","columnMap","groupCol","sourceColumnId","columnMatches","colDefMatches","idMatches","includeAggFunc","headerName","headerValueGetter","pivotActiveOnThisColumn","aggFuncFound","isCollapsedHeaderEnabled","isTotalColumn","measureActive","aggregationPresent","aggFuncString","allColumnGroups","checkPartId","matched","previousCols","setFlagFunc","getIndexFunc","getInitialIndexFunc","getValueFunc","getInitialValueFunc","colsWithIndex","colsWithValue","colIsNew","initialValue","initialIndex","include","getIndexForCol","defaultIndex","stateItems","groupState","columnGroupState","impactedGroups","groupKey","keyAsString","columnsForDisplay","isAutoGroupCol","isValueCol","checkFunc","rowGroupColumnId","colDefs","newColsPresent","groupCallback","searchForColDefs","colDefs2","prevGridCols","groupAutoColsMap","sortOrderToRecover","hasSameColumns","colsOrder","lastOrderMapped","noColsFound","gridColsMap","oldColsOrdered","oldColsMap","newColsOrdered","newGridColumns","siblings","leafCol","presentInNewGriColumns","noYetInSiblings","lastIndex","columnsForQuickFilter","normal","newAutoColsTree","pinnedLeft","center","pinnedRight","doingRtl","tree","virtualColIds","testGroup","addThisItem","displayedChildren","hashColumn","newHash","flexAfterDisplayIndex","allResizingCols","displayedCols","knownColumnsWidth","flexingColumns","minimumFlexedWidth","totalFlex","flexingColumnSizes","spaceForFlexingColumns","outer","spacePerFlex","widthByFlexRule","constrainedWidth","remainingSpace","gridWidth","_d","_e","limitsMap","dimensions","doColumnsAlreadyFit","colsToSpread","colsToNotSpread","colsToDispatchEventFor","finishedResizing","moveToNotSpread","widthOverride","minOverride","maxOverride","colWidth","availablePixels","scale","pixelsForLastCol","colMinWidth","colMaxWidth","visibleColumns","leftVisibleColumns","rightVisibleColumns","centerVisibleColumns","groupInstanceIdCreator","GroupInstanceIdCreator","forceRecreateAutoGroups","groupFullWidthRow","suppressAutoColumn","newAutoGroupCols","colsA","colsB","isRtl","queryOrder","container","defaultHeight","displayedHeights","resizeOperation","userColDef","groupLockGroupColumns","colIndex","updatedRowGroupColumnState","updatedPivotColumnState","existingColumnStateUpdates","orderColumns","updatedColumnState","colList","enableProp","initialEnableProp","indexProp","initialIndexProp","updatedColIdArray","updatedColIds","newColIds","allColIds","colIdsInOriginalOrder","originalOrderMap","orderIndex","hasAddedNewCols","processPrecedingNewCols","originalOrderIndex","autoSizeStrategy","propColumnLimits","defaultMinWidth","defaultMaxWidth","columnLimits","ColumnUtils","maxColWidth","colDefWidth","colDefInitialWidth","originalBalancedTree","recursePath","DisplayedGroupCreator","sortedVisibleColumns","oldDisplayedGroups","oldColumnsMapped","topLevelResultCols","groupsOrColsAtCurrentLevel","currentlyIterating","lastGroupedColIdx","createGroupToIndex","previousNode","previousNodeParent","newGroup","thisNode","thisNodeParent","uniqueId","displayedGroups","recursive","columnsOrGroups","columnOrGroup","columnsOrGroup","INITIAL_GRID_OPTION_KEYS","PropertyKeys$1","PropertyKeys","ComponentUtil$1","ComponentUtil","gridOptions","component","mergedOptions","gridChanges","hasChanges","AgStackComponentsRegistry","components","componentMeta","classUpperCase","htmlTag","toggleAriaAttribute","attribute","removeAriaAttribute","setAriaAttribute","ariaAttributeName","setAriaRole","role","getAriaSortState","sortDirection","getAriaLevel","getAriaPosInSet","getAriaLabel","setAriaLabel","label","setAriaLabelledBy","labelledBy","setAriaDescribedBy","describedby","setAriaLive","live","setAriaAtomic","atomic","setAriaRelevant","relevant","setAriaLevel","setAriaDisabled","disabled","setAriaHidden","hidden","setAriaActiveDescendant","descendantId","setAriaExpanded","removeAriaExpanded","setAriaSetSize","setsize","setAriaPosInSet","setAriaMultiSelectable","multiSelectable","setAriaRowCount","rowCount","setAriaRowIndex","rowIndex","setAriaColCount","colCount","setAriaColIndex","setAriaColSpan","setAriaSort","removeAriaSort","setAriaSelected","setAriaChecked","checked","setAriaControls","controllerElement","controlledElement","getAriaCheckboxStateName","translate","safariVersion","isChrome","isFirefox","isMacOs","isIOS","invisibleScrollbar","browserScrollbarWidth","isBrowserSafari","getSafariVersion","versionMatch","isBrowserChrome","win","isBrowserFirefox","isMacOsUserAgent","isIOSUserAgent","browserSupportsPreventScroll","getTabIndex","numberTabIndex","tabIndex","getMaxDivHeight","testUpTo","div","test","getBodyWidth","getBodyHeight","getScrollbarWidth","initScrollbarWidthAndVisibility","isInvisibleScrollbar","padStartWidthZeros","totalStringSize","createArrayOfNumbers","cleanNumber","decToHex","formatNumberTwoDecimalPlacesAndCommas","thousandSeparator","decimalSeparator","formatNumberCommas","total","serialiseDate","includeTime","serialised","calculateOrdinal","dateToFormattedString","fullYear","regexp","parseDateTimeFromString","dateStr","timeStr","rtlNegativeScroll","radioCssClass","elementClass","otherElementClass","sibling","FOCUSABLE_SELECTOR","FOCUSABLE_EXCLUDE","isFocusableFormField","isFocusable","isNotFocusable","isElementVisible","isVisible","setDisplayed","displayed","skipAriaHidden","setVisible","setDisabled","attributeName","addOrRemoveDisabledAttribute","nodeListForEach","isElementChildOfClass","cls","maxNest","getElementSize","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","paddingTop","paddingRight","paddingBottom","paddingLeft","marginTop","marginRight","marginBottom","marginLeft","boxSizing","getInnerHeight","getInnerWidth","getAbsoluteHeight","getAbsoluteWidth","marginWidth","getElementRectWithOffset","offsetElementRect","isRtlNegativeScroll","template","getScrollLeft","rtl","scrollLeft","setScrollLeft","clearElement","removeFromParent","isInDOM","loadTemplate","tempDiv","ensureDomOrder","eContainer","eChild","eChildBefore","setDomChildOrder","orderedChildren","correctCellAtIndex","actualCellAtIndex","insertWithDomOrder","eToInsert","addStylesToElement","styles","parsedKey","valueAsString","priority","isHorizontalScrollShowing","isVerticalScrollShowing","setElementWidth","setFixedWidth","formatSize","setElementHeight","setFixedHeight","isNodeOrElement","copyNodeList","nodeList","iterateNamedNodeMap","attr","addOrRemoveAttribute","bindCellRendererToHtmlElement","cellRendererPromise","eTarget","cellRenderer","gui","fuzzyCheckStrings","inputValues","validValues","allSuggestions","fuzzyMatches","invalidInputs","inputValue","validValue","invalidInput","fuzzySuggestions","hideIrrelevant","filterByPercentageOfBestMatch","thisSuggestions","stringWeightedDistances","suggestion","limit","indices","str1","str2","weight","iconNameClassMap","createIcon","iconName","iconContents","createIconNoSpan","eResult","forceCreate","userProvidedIcon","icons","optionsIcons","rendererResult","span","cssClass","KeyCode$1","KeyCode","A_KEYCODE","C_KEYCODE","V_KEYCODE","D_KEYCODE","Z_KEYCODE","Y_KEYCODE","isEventFromPrintableCharacter","isUserSuppressingKeyboardEvent","keyboardEvent","editing","colDefFunc","isUserSuppressingHeaderKeyboardEvent","headerRowIndex","normaliseQwertyAzerty","keyCode","isDeleteKey","alwaysReturnFalseOnBackspace","areEventsNear","e1","e2","pixelCount","diffX","diffY","sortRowNodesByOrder","rowNodes","rowNodeOrder","nodeA","nodeB","positionA","positionB","bothNodesAreUserNodes","bothNodesAreFillerNodes","rowNodeA","rowNodeB","atLeastOneOutOfOrder","convertToSet","AriaUtils","ArrayUtils","BrowserUtils","DateUtils","DomUtils","EventUtils","FunctionUtils","FuzzyMatchUtils","GenericUtils","IconUtils","KeyboardUtils","MapUtils","MouseUtils","NumberUtils","ObjectUtils","RowNodeUtils","SetUtils","StringUtils","NumberSequence$1","initValue","step","valToReturn","AgPromiseStatus","AgPromise$1","AgPromise","promises","remainingToResolve","combinedValues","ifNotResolvedValue","ifResolved","waiter","TooltipStates","TooltipTrigger","CustomTooltipFeature","parentComp","tooltipShowDelayOverride","tooltipHideDelayOverride","delayOption","relatedTarget","parentCompGui","tooltipGui","mouseEvent","forceHide","tooltipInstanceCopy","tooltipComp","eGui","addPopupRes","parentGui","tooltipPopupDestroyFunc","CssClassManager$1","getGui","addOrRemove","compIdSequence","NumberSequence","CssClassManager","newTooltipText","showDelayOverride","hideDelayOverride","removeTooltip","addTooltip","parentNode","paramsMap","childNode","childComp","componentParams","ComponentClass","newComponent","eComponent","thisNoType","thisPrototype","metaData","currentProtoName","setResult","resultOfQuery","cssSelector","newChild","childComponent","refName","RefSelector","querySelectorFunc","refSelector","addToObjectProps","instanceName","displayName","parentModel","filterInstance","modelAsString","ReadOnlyFloatingFilter","DateCompWrapper$1","userComponentFactory","dateComponentParams","eParent","dateComp","placeholder","hasRefreshed","OptionsFactory$1","filterOption","requiredProperties","propertyCheck","firstFilterOption","FILTER_LOCALE_TEXT","ManagedFocusFeature","eFocusableElement","nextRoot","RESIZE_CONTAINER_STYLE","RESIZE_TEMPLATE","clientHeight","clientWidth","centered","forcePopupParentAsOffsetParent","minHeight","computedMinHeight","computedMinWidth","boundaryEl","offsetParentComputedStyles","paddingWidth","paddingHeight","initialisedDuringPositioning","movable","moveElement","resizable","side","isSideResizable","resizerEl","popup","isPercent","availableHeight","elRect","offsetParentRect","yPosition","parentTop","additionalHeight","parentEl","xPosition","ePopup","constrain","applyMaxHeightToElement","isLeft","isTop","anywhereWithin","topBuffer","xDiff","yDiff","movementX","movementY","parentRect","boundaryElRect","skipX","skipY","resizers","currentEl","isFlex","nextHeight","nextWidth","computedStyle","vertical","containerToFlex","isRight","isBottom","isHorizontal","isVertical","offsetLeft","offsetTop","oldWidth","skipWidth","oldHeight","newHeight","skipHeight","PositionableFeature","ProvidedFilter","filterNameKey","templateString","buttons","hasButtons","addButton","clickListener","button","debounceMs","debounceFunc","model","currentModel","afterUiUpdatedFunc","afterAppliedFunc","newModel","previousModel","afterFloatingFilter","afterDataChange","closeOnApply","fromFloatingFilter","apply","isValid","applyFilterButton","containerType","isResizable","positionableFeature","debounceDefault","newParams","labelSeparator","labelWidth","labelAlignment","alignment","eGuiClassList","hasEllipsis","AgAbstractLabel","ariaEl","callbackFn","TEMPLATE","AgAbstractField","pickerGap","maxPickerHeight","variableWidth","minPickerWidth","maxPickerWidth","displayId","pickerIcon","icon","focusableEl","pickerGui","eDocument","ePicker","pickerAriaLabelKey","pickerAriaLabelValue","modalPicker","popupParams","shouldRestoreFocus","maxHeight","pickerType","alignSide","focused","gap","AgPickerField","AgList","cssIdentifier","isDown","itemToHighlight","nextPos","listOptions","listOption","sanitisedText","itemEl","AgSelect","eListAriaEl","listId","fromPicker","inputType","displayFieldTag","eInput","autoCompleteValue","AgAbstractInputField","passive","readOnly","previousValue","nextValue","checkboxChangedEvent","AgCheckbox","SimpleFilterModelFormatter$1","localeService","optionsFactory","valueFormatter","isCombined","combinedModel","conditions","condition1","condition2","customOptions","joinOperatorTranslateKey","SimpleFilter","customOption","displayKey","numberOfInputs","customOpts","zeroInputTypes","eType","aIsSimple","bIsSimple","aSimple","bSimple","aCombined","bCombined","aModel","bModel","newOptionsList","numConditions","numPrevConditions","orChecked","eJoinOperatorAnd","eJoinOperatorOr","simpleModel","operator","models","OptionsFactory","eConditionBody","eJoinOperatorPanel","uniqueGroupId","eJoinOperators","andOr","eJoinOperator","AgRadioButton","defaultJoinOperator","filterOptions","joinOperator","lastUiCompletePosition","areAllConditionsUiComplete","activePosition","removeStartPosition","numConditionsToRemove","deleteCount","joinOperatorIndex","comp","firstInput","appliedModel","updatedLastUiCompletePosition","conditionsRemoved","shouldRemovePositionAtEnd","positionBeforeLastUiCompletePosition","shouldUpdateConditionStatusesAndValues","defaultPlaceholder","filterPlaceholderFn","filterOptionKey","globalTranslate","ariaLabel","inputs","filteringLabel","elPosition","filterModel","cellValue","customFilterOption","customFilterResult","ScalarFilter","filterType","compareResult","compareToResult","DEFAULT_MIN_YEAR","DEFAULT_MAX_YEAR","SimpleFilterModelFormatter","dateFilterParams","isRange","dateFrom","dateTo","formattedFrom","formattedTo","DateFilter","filterDate","cellAsDate","yearParser","param","DateFilterModelFormatter","dateCompWrapper","DateCompWrapper","eCondition","eConditionPanels","dateConditionComps","fromTo","eConditionPanel","valid","_elPosition","editable","uneditableTypes","SimpleFloatingFilter","allowEditing","dateModel","filterValueDate","filterValueText","DateFloatingFilter","inputElement","shouldUseBrowserDatePicker","minValidYear","maxValidYear","minValidDate","maxValidDate","parsedMinValidDate","parsedMaxValidDate","DefaultDateComponent","preventCharacters","AgInputTextField","floatedValue","isScientificNotation","floatString","precision","setValueFunc","setInputValueOnlyFunc","setInputValueOnly","normalizedValue","getAllowedCharPattern","filterParams","allowedCharPattern","NumberFilter","filter","filterTo","NumberFilterModelFormatter","valueToSet","eValues","eValue","AgInputNumberField","filterText","TextFilter","trimmedInput","TextFilterModelFormatter","legacyComparator","applySideEffects","filterTypesAllowNulls","formattedValues","cellValueFormatted","columnApi","textFormatter","matcherParams","parentElement","autoComplete","toDebounce","isEnterKey","TextInputFloatingFilter","eNumberInput","eTextInput","FloatingFilterTextInputService","FloatingFilterNumberInputService","TouchListener$1","TouchListener","preventMouseClick","startListener","moveListener","endListener","touchList","touchEvent","touchStartCopy","touchesMatch","touch","SortIndicatorComp","skipTemplate","eSortOrder","eSortAsc","eSortDesc","eSortMixed","eSortNone","suppressOrder","eIcon","isAscending","isDescending","alwaysHideNoSort","isNone","isColumnShowingRowGroup","isMixedSort","allColumnsWithSorting","indexThisCol","moreThanOneColSorting","showIndex","HeaderComp","displayNameSanitised","touchListener","suppressMenuHide","tapMenuButton","menuTouchListener","showMenuFn","tapListener","filterButtonTouchListener","isLegacyMenu","isFilterShortcut","isLegacyMenuEnabled","movedRecently","multiSort","onSortingChanged","sourceColumns","isMultiSorting","sourceCol","enabled","filterChangedCallback","filterPresent","isFilter","HeaderGroupComp","expandAction","newExpandedValue","stopPropagationAction","LargeTextCellEditor","PopupComponent","eSelect","valueFormatterService","eventKey","hasValue","currentValue","valueFormatted","valueFormattedExits","valueListGap","valueListMaxWidth","valueListMaxHeight","SelectCellEditor","cellEditorInput","startValue","inputEl","focusEl","SimpleCellEditor","TextCellEditorInput$1","TextCellEditorInput","ARROW_UP","ARROW_DOWN","absDelta","valueToUse","deltaUp","refreshCountCopy","isInitialRender","AnimateShowChangeCellRenderer","slide","prevElement","AnimateSlideCellRenderer","RowNode$1","RowNode","oldData","oldNode","isRowSelectableFunc","newVal","suppressSelectionUpdate","getRowIdFunc","parentKeys","excludeSelf","pixel","firstChild","lastChild","childIndex","rowTop","dragging","highlighted","hovered","allChildrenCount","master","rowHeight","estimated","cellHeight","notAllPresent","nonePresent","newRowHeight","autoHeights","activeColsForRow","rowModel","uiLevel","colKey","oldValue","valueChanged","lockedClosedGroup","isOpenGroup","groupFootersEnabled","groupAlwaysShowAggData","ignoreAggData","newAggData","oldAggData","eventFunc","isTreeData","isGroupFunc","cellChangedEvent","atLeastOneSelected","atLeastOneDeSelected","atLeastOneMixed","childState","selectable","selectionNotAllowed","selectionNotChanged","clearSelection","potentialParent","rowGroupColumn","currentRowNode","isCandidate","foundFirstChildPath","nodeToSwapIn","parentRowNode","isFullWidthCellFunc","ignoredProperties","footerNode","groupSelectsFiltered","isSelected","showOrHideSelectListener","extraParams","CheckboxSelectionComponent","VerticalDirection","HorizontalDirection","DragAndDropService_1","DragSourceType","DragAndDropService","dragSource","allowTouch","sourceAndParams","draggingEvent","fromNudge","hDirection","vDirection","validDropTargets","dropTarget","secondaryContainers","containers","rect","horizontalFit","verticalFit","allContainersFromDropTarget","mouseOverTarget","currentContainers","elementStack","dragEnterEvent","dragLeaveEvent","zones","clientX","eClientX","clientY","eClientY","dropZoneTarget","dragItem","ghost","ghostHeight","browserWidth","browserHeight","offsetParentSize","windowScrollY","windowScrollX","eText","dragItemName","rootNode","targetEl","shake","cellValueFn","customGui","dragStartPixels","suppressVisibilityChange","ManagedVisibilityStrategy","NonManagedVisibilityStrategy","dragElement","selection","managed","dragItemCount","rowDragText","RowDragComp","neverDisplayed","displayedOptions","shown","isShownSometimes","VisibilityStrategy","rowDragFeature","shouldPreventRowMove","suppressRowDrag","hasExternalDropZones","eCheckbox","eExpanded","eContracted","compClass","topLevelFooter","showRowGroup","showingFooterTotal","showOpenGroupValue","leafWithValues","isExpandable","showPivotModeLeafValue","colDefAriaRole","columnColDefAriaRole","eGridCell","rowGroupCols","pinnedLeftCell","pinnedRightCell","bodyCell","keyOfGroupingColumn","valPresent","paramsAdjusted","innerCompDetails","valueWhenNoRenderer","isGroupColForNode","relatedColumn","footerValueGetter","footerValue","paramsClone","isGroupRowRenderer","details","relatedColDef","relatedCompDetails","countString","eExpandedIcon","eContractedIcon","eGroupCell","expandableChangedListener","nextExpandState","reducedLeafNode","displayedGroup","columnModel","pivotModeAndLeafGroup","addExpandableCss","isTotalFooterNode","fullWithRow","treeData","paddingCount","rowDragComp","paramsCheckbox","checkboxNeeded","cbSelectionComponent","GroupCellRendererCtrl","GroupCellRenderer","compProxy","compDetails","valueToDisplay","ctrl","fullWidth","componentPromise","destroyComp","LoadingCellRenderer","localeTextFunc","eLoadingIcon","LoadingOverlayComponent","customTemplate","NoRowsOverlayComponent","NumberCellEditorInput$1","NumberCellEditorInput","DateCellEditorInput$1","DateCellEditorInput","DateStringCellEditorInput$1","getDataTypeService","DateStringCellEditorInput","DateStringCellEditor","CheckboxCellRenderer","stateName","eventStarted","eventStopped","CheckboxCellEditor","shortcut","suffix","UserComponentRegistry","TextFloatingFilter","NumberFloatingFilter","TextCellEditor","NumberCellEditor","DateCellEditor","TooltipComponent","AgMenuItemRenderer","propertyName","createResult","componentFromFramework","registeredViaFrameworkComp","jsComponent","isFwkComp","defaultComponent","moduleForComponent","componentName","validComponents","suggestions","DateComponent","HeaderComponent","HeaderGroupComponent","CellRendererComponent","CellEditorComponent","InnerRendererComponent","FilterComponent","FloatingFilterComponent","ToolPanelComponent","StatusPanelComponent","FullWidth","FullWidthLoading","FullWidthGroup","FullWidthDetail","MenuItemComponent","FloatingFilterMapper$1","FloatingFilterMapper","UserComponentFactory","defaultFilter","defaultFloatingFilter","toolPanelDef","defObject","defaultName","mandatory","compName","jsComp","fwComp","paramsFromSelector","popupFromSelector","popupPositionFromSelector","lookupFromRegistry","paramsMerged","componentClass","defObjectAny","selectorFunc","selectorRes","assignComp","providedJsComp","thisComponentConfig","deferredInit","paramsFromGrid","userParams","userParamsFromFunc","getFromDefault","defaultFloatingFilterType","ColDefUtil$1","ColDefUtil","ExcelFactoryMode","DragService","dragSourceAndListener","mouseDownListener","touchStartListener","mouseListener","includeTouch","stopPropagationForTouch","suppressTouch","touchMoveEvent","touchEndEvent","documentTouchMove","mouseMoveEvent","mouseUpEvent","contextEvent","currentEvent","startEvent","requiredPixelDiff","isEnableCellTextSelect","isMouseMove","eventOrTouch","AutoScrollService$1","forceSkipVerticalScroll","skipVerticalScroll","scrollTick","tickAmount","vScrollPosition","hScrollPosition","LIST_ITEM_HOVERED","virtualList","virtualListGui","AutoScrollService","hoveredListItem","scrollTop","maxLen","normalizedRowIndex","VirtualListDragFeature","RowHighlightPosition","unwrapUserComp","compAsAny","GridApi","gridInfo","eGrid","ariaProperty","apiMethod","requiredRowModels","expandParents","advancedFilterModel","nodesAsRowNode","nodeSelector","includeFooterNodes","rowPinned","activeDropTarget","show","maxRowFound","gridCtrl","chartId","chartModel","chartContainer","buttonElement","cancel","cellPosition","cell","aggFuncs","startRow","rowDataTransaction","page","paramsOrGridWidth","ePopupParent","dataTypeDefinitions","enable","advancedFilterParent","newFilter","quickFilterParser","quickFilterMatcher","columnTypes","newTreeData","datasource","blockSize","viewportDatasource","rowData","headerHeight","domLayout","animateRows","isExternalFilterPresentFunc","doesExternalFilterPassFunc","navigateToNextCellFunc","tabToNextCellFunc","tabToNextHeaderFunc","navigateToNextHeaderFunc","rowGroupPanelShow","getGroupRowAggFunc","getBusinessKeyForNodeFunc","getChildCountFunc","processRowPostCreateFunc","rowClassFunc","isFullWidthRowFunc","isRowMasterFunc","postSortRowsFunc","getDocumentFunc","getContextMenuItemsFunc","getMainMenuItemsFunc","processCellForClipboardFunc","sendToClipboardFunc","processCellFromClipboardFunc","processPivotResultColDefFunc","processPivotResultColGroupDefFunc","postProcessPopupFunc","initialGroupOrderComparatorFunc","getChartToolbarItemsFunc","paginationNumberFormatterFunc","getServerSideGroupLevelParamsFunc","isServerSideGroupOpenByDefaultFunc","isApplyServerSideTransactionFunc","isServerSideGroupFunc","getServerSideGroupKeyFunc","rowStyleFunc","rowHeightFunc","QuickFilterService_1","QuickFilterService","usingCache","quickFilter","parser","parsedFilter","filterPart","quickFilterAggregateText","quickFilterParts","stringParts","FilterManager","isFilterPresent","doesFilterPass","allPromises","modelKeys","filterWrapper","before","after","filterPromise","promiseFilter","filterToSkip","isFilterActive","groupFilterEnabled","isAggFilter","isShowingPrimaryColumns","filterComp","targetAggregates","aggData","targetedFilters","targetedData","filterColumn","columnToUse","createIfDoesNotExist","cellDataType","eFilterGui","guiFromFilter","groupColumns","groupColumn","showParentFilter","parentFilterInstance","filterComponent","finalFilterParams","columnListener","newFilterParams","oldCompDetails","newCompDetails","oldComponentClass","newComponentClass","expression","unwrapped","eCompToInsertBefore","HeaderFilterCellComp","AbstractHeaderCellComp","cssClassName","on","LayoutCssClasses","LayoutFeature","ScrollDirection","ScrollSource","eBodyViewport","fakeHScroll","fakeVScroll","isDebounce","onVScroll","onFakeVScroll","topCenterContainer","stickyTopCenterContainer","bottomCenterContainer","centerViewport","isCenterViewportLastHorizontal","centerContainerViewport","newScrollLeft","fakeScrollLeft","bodyScrollEvent","bodyScrollEndEvent","scrollTo","touchOnly","scrollHeight","frameNeeded","fromAlignedGridsService","maxScrollLeft","pixels","oldScrollPosition","indexToSelect","paginationPanelEnabled","stickyTopHeight","rowGotShiftedDuringOperation","startingRowTop","startingRowHeight","paginationOffset","rowTopPixel","rowBottomPixel","heightOffset","vScrollTop","vScrollBottom","viewportHeight","pxTop","pxBottom","pxMiddle","rowAboveViewport","rowBelowViewport","newScrollPosition","newHorizontalScroll","columnBeforeStart","columnAfterEnd","viewportTooSmallForColumn","viewportWidth","alignColToStart","alignColToEnd","isMiddle","colLeft","colMiddle","colRight","viewportStart","viewportEnd","bodyWidth","multiplier","colLeftPixel","colRightPixel","colMidPixel","viewportStartPixel","viewportEndPixel","GridBodyScrollFeature","gridBodyCon","isRowDragMultiRow","selectedNodes","currentNode","dragSourceDomDataKey","gridGui","isFromThisGrid","managedDrag","lastHighlightedRowNode","isBelow","increment","addIndex","processedParams","getContainer","onDragEnter","onDragLeave","onDragging","onDragStop","yNormalised","mouseIsPastLastRow","overIndex","overNode","vDirectionString","RowDragFeature","RowAnimationCssClasses","CSS_CLASS_FORCE_VERTICAL_SCROLL","CSS_CLASS_CELL_SELECTABLE","CSS_CLASS_COLUMN_MOVING","eGridBody","eTop","eBottom","eStickyTop","isFocusedElementNested","gridContainRelatedTarget","isNestedRelatedTarget","scrollbarWidth","focusOutListener","elementWithFocus","clickInsideGrid","viewports","viewport","popupService","headerCount","overflowY","allowVerticalScroll","animateRowsCssClass","fullWidthContainer","eCenterColsViewport","longTapListener","pinnedRowModel","floatingTopHeight","floatingBottomHeight","vScrollVisible","pinnedTopHeight","nextTimeout","scrollWidthToRemove","availableWidth","GridBodyCtrl","SelectionHandleType","CellRangeType","CSS_CELL_RANGE_SELECTED","CSS_CELL_RANGE_CHART","CSS_CELL_RANGE_SINGLE_CELL","CSS_CELL_RANGE_CHART_CATEGORY","CSS_CELL_RANGE_HANDLE","CSS_CELL_RANGE_TOP","CSS_CELL_RANGE_RIGHT","CSS_CELL_RANGE_BOTTOM","CSS_CELL_RANGE_LEFT","CellRangeFeature$1","cellComp","rangeBorders","isSingleCell","rangeService","cellRanges","range","thisCol","leftCol","rightCol","ranges","endRow","shouldHaveSelectionHandle","rangesLen","cellRange","isFillHandleAvailable","isRangeHandleAvailable","handleIsAvailable","isCategoryCell","cellRangeType","colsSpanning","mostLeftCol","leftPosition","leftWidth","totalRowHeight","cellClassRules","cellClassParams","cellStyleParams","cellStyleFunc","tooltip","Beans","eventService","isMultiKey","cellClickedEvent","nowMillis","cellDoubleClickedEvent","ctrlKey","metaKey","cellCtrl","focusService","forceBrowserFocus","focusedCellPosition","focusedRowCtrl","focusedCellCtrl","thisCell","cellInRange","isRightClick","cellMouseOutEvent","cellMouseOverEvent","cellContainsTarget","cellContainsRelatedTarget","rowCtrl","endCell","currentSelection","newSelection","updatedCount","eCell","dragEvent","providedOnRowDrag","defaultOnRowDrag","jsonData","DndSourceComp","CSS_FIRST_COLUMN","CSS_LAST_COLUMN","CssClassApplier$1","classesOrFunc","classToUse","CSS_CELL","CSS_AUTO_HEIGHT","CSS_NORMAL_HEIGHT","CSS_CELL_FOCUS","CSS_CELL_FIRST_RIGHT_PINNED","CSS_CELL_LAST_LEFT_PINNED","CSS_CELL_NOT_INLINE_EDITING","CSS_COLUMN_HOVER","CSS_CELL_WRAP_TEXT","CellCtrl","CellPositionFeature","CellCustomStyleFeature","CellMouseListenerFeature","CellKeyboardListenerFeature","CellRangeFeature","tooltipCtrl","TooltipFeature","eCellWrapper","printLayout","startEditing","eParentCell","minRowHeight","measureHeight","timesCalled","extraHeight","autoHeight","doc","notYetInDom","possiblyNoContentYet","destroyResizeObserver","forceNewCellRendererInstance","selectionChanged","rowDragChanged","dndSourceChanged","cellStartedEdit","editorParams","noValueResult","cellEditor","newValueExists","editingStoppedEvent","rowDraggerElement","suppressFlash","noValueProvided","forceRefresh","isCellCompReady","valuesDifferent","dataNeedsUpdating","processingFilterChange","suppressNavigateAfterEdit","delays","flashDuration","fadeDuration","cssName","fullName","animationFullName","cellId","compareValues","oldValueFormatted","domEvent","CssClassApplier","colIdx","htmlElement","cellFocused","fullRowEdit","isHovered","cellContextMenuEvent","dndSourceComp","customElement","newComp","pagination","rowDragManaged","clientSideRowModelActive","RowType","RowCtrl","animateIn","useAnimationFrameForCreate","businessKey","rowComp","RowContainerType","rowGui","displayValue","gos","rowDragBean","isLeftReady","isCenterReady","isRightReady","isStub","isFullWidthCell","isDetailCell","isFullWidthGroup","suppressAnimationFrame","useFlushSync","prev","addCell","colInstanceId","prevCellCtrl","cellControls","exhaustiveCheck","centerCols","leftCols","rightCols","nextContainerPinned","oldRowTopExists","pinningLeft","pinningRight","tryRefresh","fullWidthSuccess","centerSuccess","leftSuccess","rightSuccess","aboveOn","belowOn","currentFullWidthComp","lastFocusedCell","currentFullWidthContainer","isFullWidthContainerFocused","nextEl","isFocused","cellCtrlToRemove","isShiftKey","multiSelectOnClick","rowDeselectionWithCtrl","eDetailGui","checkRowSizeFunc","updateRowHeightFunc","resizeObserverDestroyFunc","eRow","newLevel","classToAdd","classToRemove","newFirst","newLast","isRowEdit","fireRowEditEvent","sourceRenderedCell","cssClasses","classStr","updateStyles","rowContainerType","rowStyle","rowStyleFuncResult","minPixel","maxPixel","defaultRowHeight","heightFromFunc","lineHeight","suppressAnimation","destroyCellCtrls","ctrls","rowFocused","currentPage","topPx","reverse","pixelOffset","afterPaginationPixels","rowIndexStr","headerRowCount","rowIsEven","ariaRowIndex","rowCon","anchorToElement","cellKeyDownEvent","focusedCell","paginationProxy","isEmptyPinnedTop","isEmptyPinnedBottom","floatingStart","floatingEnd","rowEnd","RowContainerEventsFeature","centerContainerCtrl","columnsToRemove","processUnpinnedColumns","pinnedRightWidth","pinnedLeftWidth","totalPinnedWidth","pinnedLeftColumns","pinnedRightColumns","indexRight","indexLeft","totalWidthRemoved","spaceNecessary","bodyHeight","ViewportSizeFeature","SetPinnedLeftWidthFeature","rightWidth","SetPinnedRightWidthFeature","eViewport","heightString","SetHeightFeature","DragListenerFeature","addSpacer","centerWidth","totalWidth","CenterWidthFeature","RowContainerName","getRowContainerTypeForName","ContainerCssClasses","ViewportCssClasses","RowContainerCtrl","containerClass","viewportClass","names","allTopNoFW","allStickyTopNoFW","allBottomNoFW","allMiddleNoFW","allNoFW","allMiddle","allCenter","allLeft","allRight","isEnsureDomOrder","isPrintLayout","resetScrollLeft","preventScroll","unsubscribeFromResize","amount","embedFW","rowsThisContainer","fullWidthRow","GRID_BODY_TEMPLATE","setHeight","animate","display","classList","overflow","ct","bodyViewportClassList","GridBodyComp","ScrollVisibleService","centerRowCtrl","MouseEventService_1","MouseEventService","eGridDiv","gridPanelHasScrolls","vRange","hRange","NavigationService","fromFullWidth","alt","rangeServiceShouldHandleShift","currentCell","processed","navigateParams","scrollIndex","scrollType","scrollColumn","focusIndex","focusColumn","gridCell","pixelsInOnePage","pagingPixelOffset","currentPageBottomPixel","currentPageBottomRow","currentPageTopPixel","currentPageTopRow","up","firstRow","lastRow","rowPixelDiff","nextCellPixel","lastRowIndex","pixelSum","currentIndex","currentCellHeight","cellToFocus","homeKey","columnToSelect","backwards","cellOrRow","row","previousCell","previousPos","nextCell","previousEditable","nextEditable","rowsMatch","cellPos","previousPosition","nextPosition","userCell","headerLen","allowUserOverride","hitEdgeOfGrid","normalisedPosition","currentCellFocused","fromBelow","focusEvent","colSpanningList","isGroupStickyEnabled","PopupEditorWrapper","editingRow","cellDiv","setAttribute","controlWrapperChanged","providingControls","usingWrapper","putWrapperIn","wrapperDiv","takeWrapperOut","usingCellValue","putCellValueIn","cellSpan","takeCellValueOut","templateChanged","versionCopy","cellEditorPromise","escapedValue","compClassAndParams","useTaskService","displayComponentVersionCopy","createCellRendererFunc","cellRendererVersion","cellRendererClass","requestVersion","cellEditorInPopup","isPopup","ePopupGui","useModelPopup","positionToUse","positionParams","positionCallback","rowDiv","domOrder","cellCtrls","transform","getUpdatedParams","cellsToRemove","cellCompsToRemove","elementsInOrder","CellComp","cellsToDestroy","cp","fullWidthRowComponent","cellComps","fullWidthCellRenderer","templateFactory","rowCtrls","oldRows","processRow","existingRowComp","RowComp","oldRowComp","RowContainerComp","BodyDropPivotTarget$1","dragColumns","BodyDropPivotTarget","ColumnMoveHelper$1","isFromHeader","fromEnter","fakeEvent","draggingLeft","draggingRight","allMovingColumns","newCols","movingGroup","allMovingColumnsOrdered","validMoves","firstValidMove","constrainDirection","potentialMoves","targetOrder","move","order","displayedOrder","fragCount","movingCols","gridCols","firstIndex","parents","allDisplayedCols","allGridCols","movingDisplayedCols","otherDisplayedCols","otherGridCols","displayIndex","widthOfMovingDisplayedCols","leftColumn","numberComparator","displacedCol","firstDisplayIndex","fromKeyboard","ctrlsService","MoveColumnFeature$1","visibleState","allowedCols","xAdjustedForScroll","firstVisiblePixel","lastVisiblePixel","ColumnMoveHelper","mouseX","dragSourceType","lastMovedInfo","pixelsToMove","pixelsMoved","scrollFeature","columnsThatCanPin","pinType","MoveColumnFeature","BodyDropTarget","HeaderCellComp","selectAllGui","headerComp","HeaderGroupCellComp","headerGroupComp","eHeaderGroupGui","HeaderRowType","forceOrder","oldComps","comps","leftA","leftB","headerCtrl","HeaderRowComp","AbstractHeaderCellCtrl","columnGroupChild","parentRowCtrl","activeEl","isLeftOrRight","wrapperHasFocus","suppressMoveAnimation","oldLeftExists","colOrGroup","oldLeft","oldActualLeft","actualLeft","SetLeftFeature","HoverFeature","eButtonShowMainFilter","eFloatingFilterBody","filterExists","floatingFilterExists","eMenuIcon","nextFocusableEl","nextFocusableColumn","nextCol","notFromHeaderWrapper","fromWithinHeader","lastFocusEvent","fromTab","shouldFocusLast","setLeftFeature","filterManager","syncWithFilter","compPromise","isFilterAllowed","wasActive","becomeActive","compInstance","userCompDetails","floatingFilter","eResize","destroyResizeFuncs","canResize","canAutosize","addResize","finishedWithResizeFunc","skipHeaderOnAutoSize","autoSizeColListener","removeResize","refresh","resize","autoSize","resizeAmount","lastResizeAmount","resizeStartWidth","resizeAmountNormalised","resizing","dragChange","notPinningLeft","ResizeFeature","checkbox","allSelected","hasNodesToSelect","ariaStatus","feature","rowModelType","justFiltered","justCurrentPage","SelectAllFeature","eHeaderCompWrapper","tooltipFeature","refreshHeaderClasses","classes","oldClasses","eSource","dragAndDropService","hideColumnOnExit","unlockedColumns","updateSortableCssClass","wrapText","groupHeaderHeight","wrapperElement","resizeObserverService","isMeasuring","stopResizeObserver","checkMeasuring","startMeasuring","stopMeasuring","ariaDescription","contextMenuListener","isMouseOver","initialValues","columnsToResize","resizeRatios","columnSizeAndRatios","groupAfter","takeFromLeafCols","groupAfterColumns","groupAfterStartWidth","groupAfterRatios","preferredSize","initialSizeOfColumns","GroupResizeFeature","widthChangedListener","GroupWidthFeature","leafCols","headerPosition","displayedLeafColumns","previousColumnGroup","newColumnGroup","providedColGroup","eHeaderGroup","allColumnsOriginalOrder","allColumnsCurrentOrder","childSuppressesMoving","typeClass","initCompState","topOffset","sizes","numberOfFloating","groupHeight","numberOfNonGroups","numberOfGroups","ctrlsToDisplay","oldCtrls","isFocusedAndDisplayed","oldCtrl","headerColumn","idOfChild","HeaderFilterCellCtrl","HeaderGroupCellCtrl","HeaderCellCtrl","viewportColumns","actualDepth","HeaderRowCtrl","dropContainer","bodyDropTarget","keepColumns","sequence","focusedHeaderPosition","refreshColumnGroups","groupRowCount","refreshColumns","needNewInstance","refreshFilters","destroyPreviousComp","rowIndexMismatch","allCtrls","includeFloatingFilter","hiddenChanged","widthWithPadding","HeaderRowContainerCtrl","HeaderRowContainerComp","oldRowComps","prevGui","appendEnsuringDomOrder","ctrlId","existingComp","HeaderNavigationDirection","HeaderNavigationService","centerHeaderContainer","fromHeader","rowLen","isUp","nextRow","nextFocusColumn","headerRowIndexWithoutSpan","skipColumn","focusedHeader","nextHeader","normalisedDirection","nextRowIndex","columnToScrollTo","totalHeaderHeight","px","shouldAllowOverflow","GridHeaderCtrl","GridHeaderComp","addContainer","HorizontalResizeService","StandardMenuFactory","eMenu","nudgeX","nudgeY","hidePopup","afterGuiDetached","closedCallback","isKeyboardEvent","menu","displayedEvent","TabGuardClassNames","eTopGuard","eBottomGuard","focusTrapActive","forceFocusOutWhenTabGuardsAreEmpty","focusInnerElement","onFocusIn","onFocusOut","shouldStopEventPropagation","onTabKeyDown","handleKeyDown","guard","fromBottom","focusableEls","focusableRange","targetTabIndex","tabGuardsAreActive","focusable","tabGuardToFocus","TabGuardCtrl","tabGuards","tabGuard","topTabGuard","bottomTabGuard","TabbedLayout","TabGuardComp","isRightKey","currentPosition","nextItem","eHeader","eBody","activeItem","activeElement","eHeaderButton","tabbedItem","itemWrapper","_f","onlyUnmanaged","scrollableContainer","DEBOUNCE_DELAY","ResizeObserverService","useBrowserResizeObserver","resizeObserver","usePolyfill","widthLastTime","heightLastTime","periodicallyCheckWidthAndHeight","suppressResize","executeAllFuncs","AnimationFrameService","isPaginationActive","taskItem","taskList","p1TaskList","p1Tasks","p2TaskList","p2Tasks","destroyTasks","frameStart","noMaxMillis","ClientSideRowModelSteps","ExpansionService","rowIds","rowIdSet","expandedRows","MenuService","menuFactory","suppressMenu","suppressHeaderMenuButton","menuHides","legacySuppressFilterButton","filtersOnly","positionBy","headerCellCtrl","AutoWidthCalculator","eHeaderCell","eDummyContainer","eBodyContainer","dummyContainerWidth","autoSizePadding","eCellClone","eCloneParent","eCloneParentClassList","createRowCon","destroyRowCtrls","stickyRows","firstPixel","addStickyRow","stickyRow","lastChildBottom","lastAncestor","storeBounds","stickRowBottom","thisRowLastPx","firstPixelAfterStickyRows","firstMissingParent","stickRowNode","allStickyNodes","stickyRowsChanged","removedCtrls","addedNodes","ctrlsToDestroy","removedCtrl","newCtrls","StickyRowFeature","RowRenderer","onRangeSelectionChanged","onColumnMovedPinnedVisible","addRangeSelectionListeners","removeRangeSelectionListeners","countProp","RowCtrlCache","liveList","zombieList","cachedList","forEachCellWithThisCol","leftChangedListener","firstRightPinnedChangedListener","lastLeftPinnedChangedListener","colDefChangedListener","embedFullWidthRows","destroyRows","rowIndexesToRemove","rowComps","suppressEvent","destroyAndRecreateCtrl","dataStruct","cellDomData","rowDomData","recycleRows","rowsToRecycle","scrollToTop","suppressScrollToTop","containerHeight","rowCtrlsLength","cellCtrlsLength","stickyRowCtrls","refreshCellParams","cellRenderers","renderer","fullWidthRenderers","rowIdMap","renderers","rowIdsMap","floating","allRowCtrls","colIdsMap","stubNodeIndexes","ctrlsByIdMap","rowsToRemove","indexToRemove","oldFirstRow","oldLastRow","hasStickyRowChanges","rangeChanged","newFocusedCell","indexesToDraw","indexesToDrawMap","indexesNotToDraw","checkRowToDraw","indexStr","currRow","fullWidthCtrl","rowNodesMap","rowCtrlsMap","executeInAWhileFuncs","nodeId","rowsToBuffer","bufferPixels","gridBodyCtrl","suppressRowVirtualisation","rowHeightsChanged","lastPixel","pageFirstPixel","pageLastPixel","divStretchOffset","bodyVRange","bodyTopPixel","bodyBottomPixel","firstRowIndex","pageFirstRow","pageLastRow","rowLayoutNormal","suppressRowCountRestriction","rowBufferMaxSize","firstDiffers","lastDiffers","topPixel","bottomPixel","rowHasFocus","rowIsEditing","rowIsDetail","rowCtrlFromCache","renderedRows","rowPosition","gridRow","endIndex","blockAfterViewport","RowCtrlCache$1","maxCount","rowCtrlToDestroy","rowNodeId","ValueFormatterService","suppliedFormatter","useFormatterFromColumn","PinnedRowModel","allData","nextRowTop","dataItem","idPrefix","lastNode","ServerSideTransactionResultStatus","ChangedPath$1","keepingColumns","pathItem","traverseEverything","traverseLeafNodes","includeUnchangedNodes","newEntryCount","newEntry","thisItem","parentItem","valueColumns","colsForThisNode","RowNodeBlock","thisIsMostRecentRequest","weAreNotDestroyed","success","RowNodeBlockLoader_1","RowNodeBlockLoader","blockLoadDebounceMillis","block","loadAvailability","blocksToLoad","PaginationProxy","startPixel","endPixel","startLimitIndex","endLimitIndex","modelUpdatedEvent","paginationChangedEvent","pageNumber","lastPage","oldPageSize","currentSize","masterLastRowIndex","masterPageStartIndex","masterPageEndIndex","firstIndexNotToShow","maxRowIndex","StylingService","onApplicableClass","onNotApplicableClass","previousClassRules","classRules","classesToApply","classesToRemove","forEachSingleClass","singleClass","classNames","resultOfRule","cellClass","classOrClasses","cssClassItem","wrapperEl","matchString","hasMatch","highlightEndIndex","startPart","highlightedPart","endPart","parentId","parentAriaEl","RichSelectRow","VirtualList","ariaRole","listName","destroyObserver","rowNumber","renderedRow","scrollPartialIntoView","viewportTopPixel","viewportBottomPixel","viewportScrolledPastRow","viewportScrolledBeforeRow","componentCreator","componentUpdater","softRefresh","finish","eDiv","rowComponent","cellRowHeight","valueList","searchStringCreator","allowTyping","searchDebounceDelay","eListGui","eDisplayField","initialInputValue","userCompDetailsPromise","currentList","cmp","searchStringFn","oldRow","newRow","currentValueIndex","searchKey","searchStrings","searchValue","filteredValues","searchType","filterList","fuzzySearchResult","valueToMatch","isMatch","highlightMatch","filterValueLen","shouldFilter","topSuggestionIndex","toggleValue","preventUnnecessaryScroll","listComponent","mouseY","newIndex","fromEnterKey","AgRichSelect","AgSlider","eventChanged","textValue","sliderValue","minValue","maxValue","AgGroupComponent","suppressEnabledCheckbox","suppressOpenCloseIcons","initialItems","showIcon","newCls","itemToHide","skipToggle","oldFocusedElement","newFocusedElement","menuItems","menuItemOrString","menuItemDef","menuItem","AgMenuItemComponent","currentItem","foundCurrent","AgMenuList","wrappedComponent","AgMenuPanel","isAnotherSubMenuOpen","contextParams","activateFirstItem","configureDefaults","destroySubMenu","afterGuiAttached","menuPanel","subMenuGui","mouseEnterListener","childMenu","openSubMenu","rootElement","it","AgPanel","closable","hideTitleBar","closeButtonComp","bodyComponent","eTitleBarButtons","maximizable","alwaysOnTop","modal","destroyListener","eTitleBar","maximizeButtonComp","AgDialog","PopupService_1","DIRECTION","instanceIdSeq","PopupService","popupIdx","sourceRect","maxX","xLeftPosition","xRightPosition","skipObserver","keepWithinBounds","updatePosition","targetCompRect","spaceAvailableUnder","spaceAvailableAbove","spaceRequired","positioned","alignedToElement","lastSize","updatePopupPosition","fromResizeObserver","popupParent","sizeProperty","anchorProperty","offsetProperty","scrollPositionProperty","docElement","documentRect","isBody","offsetSize","sizeOfParent","removeListeners","ePopupParentRect","eWrapper","allThemes","popupEl","pointerEvent","closeOnEsc","popupHidden","hidePopupOnKeyboardEvent","hidePopupOnMouseEvent","hidePopupOnTouchEvent","relativeElement","popupIndex","destroyPositionTracker","initialDiffTop","initialDiffLeft","lastDiffTop","lastDiffLeft","leftPx","pRect","sRect","currentDiffTop","newTop","currentDiffLeft","newLeft","intervalId","indexOfThisChild","popupList","popupLen","alwaysOnTopList","onTopLength","innerEls","innerElsScrollMap","searchString","keepHighlighting","AgAutocompleteList","topMatch","topMatchStartsWithSearchString","lowerCaseSearchString","allMatches","startsWithSearchString","autocompleteEntries","matchingStrings","topSuggestion","containsMatches","filteredEntries","AgAutocompleteRow","AgAutocomplete","autocompleteListParams","selectedValue","setFocus","listGenerator","validator","updateListOnlyIfOpen","restoreFocus","forceLastSelection","CellNavigationService","ctrlPressed","upKey","downKey","leftKey","lastCell","colToLeft","colToRight","nextStickyPosition","nextCtrl","rowBelow","rowAbove","newRowIndex","newFloating","newColumn","AlignedGridsService","alignedGrids","isCallbackConfig","seeUrl","alignedGrid","refOrComp","alignedGridService","alignedGridsService","colEvent","groupOpenedEvent","masterGroup","otherColumnGroup","masterColumn","otherColumn","masterColumns","movedEvent","destColState","visibleEvent","pinnedEvent","resizedEvent","SelectionService","suppressFinishActions","rangeSelect","filteredNodes","toNode","fromNode","nodesToSelect","selectedKeys","newSelectedNodes","changedPath","ChangedPath","rowNodeToKeepSelected","groupsToRefresh","otherRowNode","selectionCount","topLevelNodes","traverse","maybeGroup","rowModelClientSide","selectedCount","notSelectedCount","recursivelyAddChildren","clientSideRowModel","selectedIds","ColumnApi","gridAp","funcName","ValueService","propChange","forFilter","groupDataExists","aggDataExists","ignoreSsrmAggData","ssrmFooterGroupCol","cellValueGetter","openedGroup","valueSetter","valueWasDifferent","onCellValueChanged","isFieldContainsDots","valuesAreSame","fieldPieces","fieldPiece","valueFromCache","keyCreator","keyParams","ExpressionService","functionBody","theFunction","TemplateService","templateFromCache","callbackList","client","httpResult","LoggerFactory","Logger","Logger$2","isLoggingFunc","focusableContainers","nextIdx","lastColumn","GridCtrl","eRootWrapperBodyClassList","dropZones","sideBar","statusBar","watermark","GridComp","SortController_1","SortController","nextDirection","isColumnsSortingCoupledToGroup","columnsToUpdate","sortableRowGroupColumns","doingMultiSort","clearedColumns","lastColToChange","isCoupled","groupParent","lastSortIndexCol","allSortedCols","allSortedColsWithoutChangesOrGroups","sortedCols","columnsToSkip","columnToClear","sortingOrder","notInArray","lastItemInArray","isSortingLinked","isAggregated","isSecondary","isGroup","sortedRowGroupCols","isSortLinked","allColsIndexes","iA","iB","indexMap","groupDisplayCol","col1","idx1","col2","idx2","isColumnSortCouplingActive","isGroupDisplayColumn","linkedColumns","sortableColumns","firstSort","FocusService_1","FocusService","isKeyboardActive","clearFocusedCellListener","colFromColumnModel","eBrowserCell","ePointer","preventScrollOnBrowserFocus","gridColumn","focusedColumn","focusedHeaderRowIndex","fromCell","rowWithoutSpanValue","focusSuccess","firstColumn","exclude","focusableString","excludeString","excludeNodes","focusableElements","toFocus","referenceElement","referenceIndex","lastTabGuardIndex","onlyManaged","managedContainers","forceOut","forceFirstColumn","ColumnHoverService","ColumnAnimationService","suppress","animationThreadCountCopy","runFuncs","PaginationAutoPageSizeService","newPageSize","ValueCache","SOURCE_PASTE","ChangeDetectionService","nodesToRefresh","onlyChangedColumns","AgComponentUtils","jsCompFunc","metadata","Adapter","callbackResult","candidate","ComponentMetadataProvider","DEFAULT_ROW_HEIGHT","MIN_COL_WIDTH","MAT_GRID_SIZE","BASE_GRID_SIZE","BALHAM_GRID_SIZE","ALPINE_GRID_SIZE","QUARTZ_ICON_SIZE","QUARTZ_FONT_SIZE","QUARTZ_GRID_SIZE","HARD_CODED_SIZES","SASS_PROPERTY_BUILDER","Environment","themeFamily","themeElement","useTheme","defaultValue","classesFromThemeElement","prevEl","currentClass","currentDiv","calculatedValue","sizeName","reg","themeMatch","sassVariableName","oldRowHeight","measuredMin","RowContainerHeightService","newScrollY","newBodyHeight","scrollPercent","newOffset","newOffsetFloor","modelHeight","modelPixel","modelMaxScroll","SelectableService","skipLeafNodes","isRowSelecting","isRowSelectable","isGroupSelectsChildren","isCsrmGroupSelectsChildren","nodesToDeselect","nodeCallback","hasSelectableChild","rowSelectable","csrm","btFirst","btPrevious","btNext","btLast","pageSizeComp","pagesExist","toDisplay","strPage","strTo","strOf","strFirst","strPrevious","strNext","strLast","compId","totalPages","zeroPagesToDisplay","onLastPage","pageSize","lastPageFound","moreText","PaginationComp","OverlayWrapperComponent","overlayWrapperClassList","overlayWrapperCssClass","overlayComp","updateListenerDestroyFunc","RowPositionUtils","pinnedBottomCount","pinnedTopCount","rowA","rowB","CellPositionUtils","cellA","cellB","colsMatch","floatingMatch","indexMatch","UndoRedoAction$1","cellValueChanges","UndoRedoAction","initialRange","finalRange","UndoRedoStack$1","UndoRedoStack","maxStackSize","UndoRedoService","eventCell","isCellEditing","isRowEditing","cellValueChange","undoRedoLimit","operationPerformed","endEvent","undoRedoStack","opposingUndoRedoStack","rangeProperty","cellValueChangeProperty","undoRedoAction","RangeUndoRedoAction","valueExtractor","currentRow","cellRangeParams","setRangeToCell","HeaderPositionUtils","nextColumn","getGroupMethod","getColMethod","columnsInPath","indexToFocus","currentRowType","isFloatingFilter","isColumn","leafColumn","columnsInTheWay","colToFocus","ColumnDefFactory","pivotColumns","colGroupDefs","addToResult","childDef","lastPointer","parentDef","existingParentDef","defCloned","colDefCloned","RowCssClassCalculator","rowCls","rowClass","rowClassFuncResult","rowClassParams","RowNodeSorter","sortOptions","mapper","sortedRowNodes","sortedNodeA","sortedNodeB","sortOption","comparatorResult","providedComparator","comparatorOnCol","groupLeafField","primaryColumn","leafChild","displayCol","CtrlsService_1","CtrlsService","gridHeaderCtrl","CtrlsFactory","ControllerClass","activateEvents","deactivateEvents","AbstractFakeScrollComp","FakeHScrollComp","spacerWidthsListener","bottomPinnedHeight","vScrollShowing","rightSpacing","scrollOnRight","leftSpacing","hScrollShowing","isSuppressHorizontalScroll","scrollContainerSize","PinnedWidthService","RowNodeEventThrottle","COLUMN_DEFINITION_DEPRECATIONS","CSRM_REQUIRES_ROW_GROUP_MODULE","_options","COLUMN_DEFINITION_VALIDATIONS","enterpriseMenuTabs","tab","rowSelection","COL_DEF_VALIDATORS","GRID_OPTION_DEPRECATIONS","GRID_OPTION_DEFAULTS","GRID_OPTION_VALIDATIONS","csrmWarning","ssrmWarning","GRID_OPTIONS_VALIDATORS","GridOptionsService_1","GridOptionsService","restrictToSyncOnly","alwaysSync","eventHandlerName","eventHandler","callbackParams","mergedParams","coerceFunc","newGo","coercedValue","changeSet","shouldForce","allowEstimate","domData","domDataKey","userValue","updatedParams","LocaleService","getLocaleText","variableValues","localeText","localisedText","FakeVScrollComp","adjustedScrollbarWidth","gridBodyViewportEl","eViewportScrollTop","gridBodyViewportScrollTop","MONTH_LOCALE_TEXT","MONTH_KEYS","DataTypeService","defaultDataTypes","dataTypeDefinition","mergedDataTypeDefinition","overriddenDataTypeMatcher","parentDataTypeDefinition","childDataTypeDefinition","alreadyProcessedDataTypes","extendsCellDataType","baseDataTypeDefinition","overriddenBaseDataTypeDefinition","extendedDataTypeDefinition","mergedExtendedDataTypeDefinition","parentCellDataType","dataTypeDefinitionColumnType","columnStateUpdates","propsToCheckForInference","columnTypeDefs","columnTypeDef","comparisonValue","checkProps","initialData","_cellDataType","dataTypeMatcher","columnTypeOverridesExist","firstRowData","dataTypesInferredEvent","newRowGroupColumnStateWithoutIndex","newPivotColumnStateWithoutIndex","columnState","resolvedObjectDataTypeDefinition","defaultObjectDataTypeDefinition","formatValue","usingSetFilter","mergeFilterParams","valA","valB","_filterValues","pathKey","monthKey","convertToDate","defaultDateFormatMatcher","ValueParserService","valueParser","SyncService","isEnterprise","readyEvent","OverlayService","overlayWrapperComp","wrapperCssClass","gridOption","listenerDestroyFunc","isSuppressNoRowsOverlay","StateService","newColumnsLoadedDestroyFunc","rowCountReadyDestroyFunc","firstDataRenderedDestroyFunc","filterState","rowGroupExpansionState","rowSelectionState","paginationState","scrollState","rangeSelectionState","focusedCellState","columnOrderState","sortColumns","groupColIds","aggregationColumns","pivotColIds","leftColIds","rightColIds","hiddenColIds","columnSizes","sortState","aggregationState","pivotState","columnPinningState","columnVisibilityState","columnSizingState","columnStateMap","getColumnState","applyOrder","columnGroupStates","secondaryColumnStates","openColumnGroups","open","gridOptionAdvancedFilterModel","startColumn","selectionState","expandedRowGroups","features","newColumnState","existingValue","sources","updateFunc","ValidationService","validations","deprecations","allProperties","propertyExceptions","objectName","docsUrl","warnings","deprecation","renamed","rulesOrGetter","rules","fromGetter","supportedRowModels","allRegistered","failed","gridOptionValue","failedKey","possibleOptions","exceptions","validProperties","containerName","VUE_FRAMEWORK_PROPS","invalidProperties","ApiEventService","asyncListeners","hasAsync","paginationPageSize","pageSizeOptions","paginationPageSizeOption","shouldAddAndSelectEmptyOption","localisedLabel","localisedAriaLabel","paginationPageSizeSelectorValues","isPositive","PageSizeSelectorComp","AriaAnnouncementService","descriptionContainer","BarColumnLabelPlacement","globalObj","MD5","hex_chr","LICENSE_TYPES","LicenseManager","document","licenseDetails","currentLicenseName","suppliedLicenseName","gridReleaseDate","formattedReleaseDate","license","restrictionHashed","licenseKey","cleanedLicenseKey","hashStart","isTrial","currentLicenseType","trialExpired","expired","expiry","incorrectLicenseType","suppliedLicenseType","handleTrial","hostname","monthNames","monthIndex","keystr","dependantLicenseManager","rawVersion","paddingRequired","terminateWithPadding","formattedExpiryDate","GridLicenseManager","chartsLicenseManager","WatermarkComp","EnterpriseCoreModule","licence","core_1","SG_LICENSE_IN_USE","setupAgGridLicence","createRoot","ErrorPage","descriptionLabel","fullScreen","descriptionError","actionButtonLabel","titleLabel","DEFAULT_INFRASTRUCTURE","SgwtWidgetContext","SgwtWidgetContextProvider","infrastructure","widgets","setWidgets","registerWidget","widgetName","_jsx","WIDGETS_CDN_URL","propsBoolean","propsObject","loadWidget","infra","useLoadWidget","SgwtHelpCenter","additionalMessageInformation","allowScreenshot","applicationId","cmt","conversationId","debug","emailEndpoint","feedbackContext","handleVisible","i18n","introductionTour","knowledgeUrls","knowledge","language","mailSubject","messageOnly","messageTopics","noConsole","noImproment","unity","user","onCategoryClicked","onTopicClicked","onTourStart","onWidgetReady","startTour","categoryClicked","topicClicked","SgwtWebAnalytics","siteId","disableUserTracking","environment","userId","apmRumEnabled","apmRumServerurl","apmRumServiceName","useSgwtWidgets","ErrorBoundary","errorDetected","AccountCenter","Switcher","onChange","handleChange","Header","sgwtWebAnalytics","locationTitle","ThemeSwitcher","currentTheme","setCurrentTheme","changeTheme","HelpCenter","MiniFooter","Footer","checkNotificationIsAvailable","requestPermission","getNotification","useNotifications","lastVacation","appDispatch","asyncRequestPermission","getNotificationBody","showNotification","notification","App","StatusBadge","badgeClass","PanelItem","numberOfDeals","numberOfAlreadyBookedDeals","dealOwner","actualCurrency1","actualCurrency2","handleClickCurrency","CollapsableButton","isBlotterOpen","setIsBlotterOpen","Panel","xoneDealNumbers","Booking","ErrorLayout","POSITIONALS_EXP","serializePositional","positional","positionals","positionalIndex","formattedMessage","isEscaped","STACK_FRAMES_TO_IGNORE","cleanErrorStack","nextStack","InvariantError","LIBRARY_PREFIX","interpolatedMessage","warn","devUtils","SOURCE_FRAME","BUILD_FRAME","getCallFrame","declarationFrame","frame","isIterable","_RequestHandler","callFrame","parsedResult","existingClone","clonedRequest","requestClone","executeResolver","resolverExtras","mockedResponse","errorOrResponse","done","nextResponse","RequestHandler","until","executeHandlers","resolutionContext","matchingHandler","toPublicUrl","urlInstance","onUnhandledRequest","publicUrl","unhandledRequestMessage","applyStrategy","strategy2","__create","__defProp","__getOwnPropDesc","__getOwnPropNames","__getProtoOf","__hasOwnProp","__commonJS","__copyProps","except","__toESM","isNodeMode","require_set_cookie","defaultParseOptions","isNonEmptyString","parseString","setCookieValue","nameValuePairStr","parseNameValuePair","cookie","sides","value2","nameValueArr","sch","cookies2","splitCookiesString","cookiesString","cookiesStrings","lastComma","nextStart","cookiesSeparatorFound","skipWhitespace","notSpecialChar","import_set_cookie_parser","PERSISTENCY_KEY","supportsLocalStorage","testKey","isPropertyAccessible","CookieStore","requestUrl","responseCookies","parsedResponseCookies","prevCookies","originCookies","persistedCookies","expires","serializedCookies","readResponseCookies","handleRequest","handleRequestOptions","lookupResult","requiredLookupResult","transformedResponse","toResponseInit","mergeRight","rightValue","leftValue","MemoryLeakError","_Emitter","internalEventName","onceListener","maxListeners","memoryLeakWarning","Emitter","pipeEvents","destination","rawEmit","sourceEmit","toReadonlyArray","Disposable","InMemoryHandlersController","initialHandlers","runtimeHandles","nextHandlers","SetupApi","runtimeHandlers","define_process_env_default","checkGlobals","isStringEqual","actual","getStatusCodeColor","getTimestamp","chunk","serializeRequest","requestText","require_codes","require_statuses","codes","status2","createMessageToStatusCodeMap","createStatusCodeList","codes2","status3","getStatusCode","getStatusMessage","import_statuses","source_default","statuses","serializeResponse","responseStatus","responseStatusText","lexer","prefixes","defaultPattern","tryConsume","mustConsume","nextType","consumeText","name_1","pattern_1","pathToRegexp","regexpToFunction","decode","_loop_1","flags","regexpToRegexp","groupsRegex","execResult","arrayToRegexp","stringToRegexp","tokensToRegexp","encode","endsWith","endsWithRe","delimiterRe","endToken","isEndDelimited","isNodeProcess","getCleanUrl","isAbsolute","REDUNDANT_CHARACTERS_EXP","getSearchParams","cleanUrl","getAbsoluteUrl","normalizePath","maybeAbsoluteUrl","coercePath","parameterName","wildcard","matchRequestUrl","cleanPath","require_cookie","__toString","fieldContentRegExp","dec","eqIdx","endIdx","tryDecode","enc","sameSite","decode2","import_cookie","getAllDocumentCookies","cookieUtils","getRequestCookies","getAllRequestCookies","requestCookiesString","cookiesFromHeaders","cookiesFromStore","forwardedCookies","HttpMethods","HttpMethods2","HttpHandler","hasMatchingMethod","hasMatchingUrl","actualMethod","loggedRequest","loggedResponse","statusColor","createHttpHandler","http","SET_TIMEOUT_MAX_ALLOWED_INT","MIN_SERVER_RESPONSE_TIME","MAX_SERVER_RESPONSE_TIME","NODE_SERVER_RESPONSE_TIME","getRealisticResponseTime","durationOrMode","delayTime","apiUrl","saveDeals","refreshDealsErrors","convertErrors","setupWorker","openStatus","hasOwn","appendClass","parseValue","newClass","_setPrototypeOf","_inheritsLoose","subClass","superClass","setPrototypeOf","DEFAULT_BREAKPOINTS","DEFAULT_MIN_BREAKPOINT","ThemeContext","useBootstrapPrefix","defaultPrefix","useIsRTL","dir","ownerDocument","ownerWindow","getComputedStyle","psuedoElement","rUpper","hyphenate","msPattern","hyphenateStyleName","supportedTransforms","isTransform","css","transforms","ReactPropTypesSecret","ReactPropTypesSecret_1","emptyFunction","emptyFunctionWithReset","factoryWithThrowingShims","shim","propName","propFullName","secret","getShim","ReactPropTypes","propTypesModule","TransitionGroupContext","forceReflow","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","Transition","_React$Component","parentGroup","appear","initialStatus","prevState","nextIn","_proto","nextStatus","exit","enter","mounting","_this2","appearing","maybeNode","maybeAppearing","timeouts","enterTimeout","_this3","_this4","doesNotHaveTimeoutOrListener","maybeNextCallback","_this$props","childProps","Transition$1","optionsSupported","onceSupported","addEventListener","once","capture","wrappedHandler","onceHandler","removeEventListener","listen","triggerEvent","bubbles","cancelable","parseDuration","mult","emulateTransitionEnd","handle","remove","transitionEnd","removeEmulate","transitionEndListener","triggerBrowserReflow","toFnRef","mergeRefs","refA","refB","useMergedRefs","safeFindDOMNode","componentOrElement","TransitionWrapper","onEnter","onEntering","onEntered","onExit","onExiting","onExited","addEndListener","childRef","nodeRef","mergedRef","attachRef","normalize","handleEnter","handleEntering","handleEntered","handleExit","handleExiting","handleExited","handleAddEndListener","innerProps","TransitionWrapper$1","useCommittedRef","useEventCallback","divWithClassName","useCallbackRef","useMounted","mounted","isMounted","usePrevious","isReactNative","isDOM","useIsomorphicEffect","fadeStyles","Fade","transitionClasses","isAppearing","React.cloneElement","Fade$1","propTypes","PropTypes","CloseButton","variant","CloseButton$1","useUpdatedRef","valueRef","useWillUnmount","onUnmount","toArray","qsa","find","tar","dequal","foo","bar","ctor","tmp","useSafeState","auto","basePlacements","clippingParents","popper","reference","variationPlacements","placements","beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite","modifierPhases","getBasePlacement","getWindow","isElement","OwnElement","isHTMLElement","isShadowRoot","getUAString","uaData","isLayoutViewport","getBoundingClientRect","includeScale","isFixedStrategy","clientRect","scaleX","scaleY","visualViewport","addVisualOffsets","getLayoutRect","contains","getNodeName","isTableElement","getDocumentElement","getParentNode","getTrueOffsetParent","getContainingBlock","isIE","elementCss","getOffsetParent","offsetParent","getMainAxisFromPlacement","within","mathMax","mathMin","withinMaxClamp","getFreshSideObject","mergePaddingObject","paddingObject","expandToHashMap","hashMap","toPaddingObject","arrow","_state$modifiersData$","arrowElement","popperOffsets","basePlacement","axis","arrowRect","minProp","maxProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","axisProp","_options$element","arrow$1","getVariation","unsetSides","roundOffsetsByDPR","dpr","mapToStyles","_Object$assign2","popperRect","offsets","gpuAcceleration","adaptive","roundOffsets","isFixed","_offsets$x","_offsets$y","hasX","hasY","sideX","sideY","heightProp","widthProp","offsetY","offsetX","commonStyles","_Object$assign","computeStyles","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","computeStyles$1","_options$scroll","scroll","_options$resize","scrollParents","scrollParent","eventListeners","getOppositePlacement","getOppositeVariationPlacement","getWindowScroll","getWindowScrollBarX","getViewportRect","html","layoutViewport","getDocumentRect","_element$ownerDocumen","winScroll","isScrollParent","_getComputedStyle","overflowX","getScrollParent","listScrollParents","updatedList","rectToClientRect","getInnerBoundingClientRect","getClientRectFromMixedType","clippingParent","getClippingParents","canEscapeClipping","clipperElement","getClippingRect","boundary","rootBoundary","mainClippingParents","firstClippingParent","clippingRect","accRect","computeOffsets","commonX","commonY","mainAxis","detectOverflow","_options$placement","_options$strategy","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","clippingClientRect","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","computeAutoPlacement","flipVariations","_options$allowedAutoP","allowedAutoPlacements","allPlacements","allowedPlacements","overflows","getExpandedFallbackPlacements","oppositePlacement","flip","_options$mainAxis","checkMainAxis","_options$altAxis","checkAltAxis","specifiedFallbackPlacements","_options$flipVariatio","preferredPlacement","isBasePlacement","fallbackPlacements","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","mainVariationSide","altVariationSide","checks","check","numberOfChecks","_loop","fittingPlacement","_ret","flip$1","getSideOffsets","preventedOffsets","isAnySideFullyClipped","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","hide$1","distanceAndSkiddingToXY","rects","invertDistance","skidding","distance","_options$offset","_data$state$placement","offset$1","popperOffsets$1","getAltAxis","preventOverflow","_options$tether","tether","_options$tetherOffset","tetherOffset","altAxis","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","minLen","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","clientOffset","offsetModifierValue","tetherMin","tetherMax","preventedOffset","_offsetModifierState$2","_mainSide","_altSide","_offset","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","preventOverflow$1","getHTMLElementScroll","getNodeScroll","isElementScaled","getCompositeRect","elementOrVirtualElement","isOffsetParentAnElement","offsetParentIsScaled","documentElement","modifiers","visited","modifier","requires","dep","depModifier","orderModifiers","orderedModifiers","phase","mergeByName","merged","DEFAULT_OPTIONS","areValidElements","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","effectCleanupFns","isDestroyed","setOptionsAction","cleanupModifierEffects","runModifierEffects","_state$elements","_state$orderedModifie","_state$orderedModifie2","_ref$options","cleanupFn","noopFn","createPopper","disabledApplyStylesModifier","ariaDescribedByModifier","ids","_popper$getAttribute","EMPTY_MODIFIERS","usePopper","popperElement","prevModifiers","popperInstanceRef","_popperInstanceRef$cu","forceUpdate","_popperInstanceRef$cu2","popperState","updateModifier","attributes","nextModifiers","warning_1","isLeftClickEvent","getRefTarget","InitialTriggerEvents","useClickOutside","onClickOutside","clickTrigger","preventMouseClickOutsideRef","waitingForTrigger","handleMouseCapture","currentTarget","handleInitialMouse","handleMouse","_ownerWindow$event","_ownerWindow$parent","removeInitialTriggerListener","removeMouseCaptureListener","removeMouseListener","mobileSafariHackListeners","toModifierMap","toModifierArray","mergeOptionsWithPopperConfig","enableEvents","containerPadding","popperConfig","_modifiers$eventListe","_modifiers$preventOve","_modifiers$preventOve2","_modifiers$offset","_modifiers$arrow","ATTRIBUTE_PREFIX","dataAttr","useWindow","scrollbarSize","recalc","scrollDiv","getBodyScrollbarWidth","OPEN_DATA_ATTRIBUTE","ModalManager","handleContainerOverflow","isRTL","_modal","containerState","paddingProp","modalIdx","ModalManager$1","resolveContainerRef","useWaitForDOMRef","onResolved","resolvedRef","setRef","earlyRef","nextRef","NoopTransition","inProp","mountOnEnter","unmountOnExit","hasEnteredRef","combinedRef","cloneElement","useRTGTransitionProps","RTGTransition","transitionProps","RTGTransition$1","useTransition","onTransition","isInitialRef","handleTransition","stale","ImperativeTransition","exited","setExited","onFinish","renderTransition","runTransition","isEscKey","manager","getManager","useModalManager","modalManager","Modal","forwardRef","backdrop","keyboard","onBackdropClick","onEscapeKeyDown","backdropTransition","runBackdropTransition","autoFocus","enforceFocus","restoreFocusOptions","renderDialog","renderBackdrop","providedManager","containerRef","onShow","onHide","prevShow","lastFocusRef","useImperativeHandle","handleShow","removeKeydownListenerRef","handleDocumentKeyDown","removeFocusListenerRef","handleEnforceFocus","_modal$dialog$ownerDo","_modal$dialog","currentActiveElement","handleHide","_lastFocusRef$current","handleBackdropClick","handleHidden","dialogProps","dialog","backdropElement","_Fragment","_jsxs","BaseModal","hasClass","addClass","replaceClassName","origClass","removeClass","Selector","BootstrapModalManager","adjust","marginProp","sharedManager","getSharedManager","ModalBody","bsPrefix","ModalBody$1","ModalContext","ModalContext$1","ModalDialog","contentClassName","fullscreen","scrollable","dialogClass","fullScreenClass","ModalDialog$1","ModalFooter","ModalFooter$1","AbstractModalHeader","closeLabel","closeVariant","closeButton","AbstractModalHeader$1","ModalHeader","ModalHeader$1","DivStyledAsH4","ModalTitle","ModalTitle$1","DialogTransition","BackdropTransition","dialogClassName","Dialog","dataBsTheme","ariaLabelledby","ariaDescribedby","animation","backdropClassName","propsManager","modalStyle","setStyle","animateStaticModal","setAnimateStaticModal","waitingForMouseUpRef","ignoreBackdropClickRef","removeStaticModalAnimationRef","setModalRef","modalContext","getModalManager","updateDialogStyle","containerIsOverflowing","modalIsOverflowing","getScrollbarSize","handleWindowResize","handleDialogMouseDown","handleMouseUp","handleStaticModalAnimation","handleStaticBackdropClick","handleEscapeKeyDown","backdropProps","baseModalStyle","Modal$1","useRootClose","onRootClose","handleKeyUp","removeKeyupListener","Overlay","outerRef","attachArrowRef","mountOverlay","BaseOverlay","PopoverHeader","PopoverHeader$1","PopoverBody","PopoverBody$1","getOverlayDirection","bsDirection","getInitialPopperStyles","Popover","arrowProps","hasDoneInitialMeasure","decoratedBsPrefix","primaryPlacement","Popover$1","Tooltip","Tooltip$1","useOverlayOffset","customOffset","overlayRef","popoverClass","tooltipClass","wrapRefs","aRef","overlay","rootClose","outerShow","outerProps","popperRef","firstRenderedState","setFirstRenderedState","actualTransition","handleFirstUpdate","overlayProps","popperObj","_popperObj$state","_popperObj$state$modi","updatedPlacement","Overlay$1","PopoverGlobalUpdate","buttonRef","dateOptions","isEmptyDateArray","setDate","bid","setBid","ask","setAsk","isButtonDisabled","handleChangeSelect","handleSubmit","InputGlobalUpdate","dataE2e","valueState","setValueState","FormRates","buttonClasses","popoverPlacement","dealsToConvert","isSwapPointColumn","setShow","blotterReadOnly","updatedInputsAll","convertDeals","_result","applyAllRates","convertMetaDataPayload","dealToConvert","prepareDealsPayload","rateType","updatedInput","getUpdatedInput","dealSwapPoint","dealSpotRate","swapPoint","spotRate","possibleDates","getPossibleDates","updatedInputKey","dates","dealDate","RatesColumnsHeader","dealsToConvertArray","product","valueDate","isValidSwapPointDeal","NumberInput","readonly","fieldName","updatedInputs","currentInput","fieldsInError","errorToDisplay","isInError","convertDeal","tabPosition","shouldCurrentCellBeFocused","handleOnBlur","getNextFieldName","prepareConvertPayload","userInputValue","setUserInputValue","handleOnChange","targetValue","stateId","rateCellRendererSelector","isCurrent","isReadOnly","SaveButton","overrideClassName","isFromBulkAction","onSave","savePayload","RefreshButton","refreshDeal","RepriceButton","onReprice","userSlice","setUser","userReducer","getUserSesameId","getPermission","SendButton","sendDeals","onSend","DeleteButton","deleteDeal","showModal","setShowModal","handleClose","DiscardButton","discardDeals","ActionButtons","counterparty","originalAmount","computedAmount","currencyPairId","margin","marketRate","clientRate","showRefresh","showSave","showDelete","showRepriceAndSend","showDiscard","dealToSend","dealToDiscard","dealToDelete","refreshDealPayload","repriceProps","SmallStatusBadge","errorDeal","getStatus","smallStatusBadgeRenderSelector","bookingStatus","makeColumnDef","convertedDealsId","getHeaderName","amountFormatter","getCellClass","getAmountCellClass","getConvertedValuesCellClass","BLOTTER_DATE_FORMAT","theoreticalDate","isDifferentTheoreticalDate","suppressKeyboardEvent","basicClasses","extraClassesFn","addedClasses","extraclasses","getExtraclass","currency","useDebounce","timeoutRef","arr_1","__values$b","__read$D","e_1","e_1_1","sourceIsSimpleObject","objectIsDueToBeCopied","dontCopy","__read$C","__spreadArray$u","errorResult","__read$B","__spreadArray$t","beanInstances","beanEntry","constructorParamsMeta","constructorParams","newInstance","createdBeanNames","BeanClass","beanInstance","otherBean","wireParams","initParams","prototype","constructorString","beansList","otherBeanName","wiringBean","lifeCycleMethod","methodToIgnore","allMethods","allMethodsList","beanAny","getOrCreateProps$1","__decorate$2O","__param$8","globalListeners","__decorate$2N","instanceIdSequence$4","filterDefined","editableFunc","__decorate$2M","event_1","skipBecausePadding","PASSIVE_EVENTS$1","eventChecker","isPassive","__decorate$2L","__extends$3g","__decorate$2K","__param$7","hasGroups","noFlexThisCol","newHasId","newHasField","existingDef","colType","__decorate$2J","emptyGroup","__extends$3f","__decorate$2I","noFieldOrValueGetter","userHasProvidedGroupCellRenderer","utf8_encode$1","convertedCode","paddedCode","words","__extends$3e","__decorate$2H","__param$6","__read$A","__spreadArray$s","__values$a","processGridCols","viewportColumnsChanged","pivotKeyMatches","pivotValueMatches","e_2","columnGroups_1","columnGroups_1_1","e_2_1","gapBeforeColumn","out_i_1","defaultIsShift","passMinMaxCheck","_loop_2","thisColFinished","state_1","failedRules","notAllColsInGridColumns","marryChildren","atLeastOneChanged","event_2","resultOfAction","event_3","groupPointerProvidedColumnGroup","isAutoGroupColumn","alreadyProcessed","unchanged","valueChangePredicate","sortChangePredicate","aggFuncStringTranslated","valuePresent","indexPresent","initialValuePresent","initialIndexPresent","useIndex","event_4","areAutoColsChanged","groupAutoColsMap_1","event_5","supportedRowModel","e_3","allColumns_1","allColumns_1_1","e_3_1","left_1","left_2","fromMap","groupingActive","needAutoColumns","autoColsDifferent","groupDisplayType","isCustomRowGroups","treeDataDisplayType","event_6","missingIndex","propEnabled","__extends$3d","__decorate$2G","nextNode","__extends$3c","__decorate$2F","previousNodeProvided","thisNodeProvided","__read$z","__spreadArray$r","__assign$q","__read$y","__spreadArray$q","__extends$3b","__decorate$2E","classEscaped","__read$x","remainder","__values$9","__read$w","inputSelector","isHidden","__values$8","bestMatch","limit_1","thisSuggestions_1","thisSuggestions_1_1","printableCharacter","colDefFuncResult","__assign$p","Timer","__extends$3a","__assign$o","__decorate$2D","userDetails","compNoLongerNeeded","updateNeeded","__extends$39","__decorate$2C","childNodeList","childGui","topLevelRefMatch","QuerySelector","__extends$38","__decorate$2B","__extends$37","__assign$n","__decorate$2A","__extends$36","__decorate$2z","top_1","resizableStructure","__extends$35","__decorate$2y","buttonType","__extends$34","__decorate$2x","__extends$33","__extends$32","__decorate$2w","TEMPLATE$1","__extends$31","__decorate$2v","currentIdx","__extends$30","__assign$m","__extends$2$","__decorate$2u","__extends$2_","__extends$2Z","__extends$2Y","__read$v","__spreadArray$p","oneSimpleOneCombined","allConditionsExistInNewOptionsList","parentRefreshed","orChecked_1","combineFunction","removedElements","removedComponents","__extends$2X","__extends$2W","__assign$l","__decorate$2t","__extends$2V","__extends$2U","__decorate$2s","__extends$2T","__decorate$2r","__read$u","__extends$2S","__extends$2R","__extends$2Q","__extends$2P","__assign$k","__extends$2O","__decorate$2q","__extends$2N","__extends$2M","eventIsFarAway","__extends$2L","__decorate$2p","areGroupsCoupled","__extends$2K","__decorate$2o","filterButtonTouchListener_1","nowTime","columnMoving","sortUsingCtrl","sortDirectionsMatch","configured","__extends$2J","__decorate$2n","paramsAny","__extends$2I","hasParent","__extends$2H","__decorate$2m","__extends$2G","__decorate$2l","__extends$2F","__decorate$2k","__extends$2E","__extends$2D","__decorate$2j","__extends$2C","__decorate$2i","__assign$j","displayedAutoHeightCols","getColumnFromKey","getGroupIncludeFooter","isSsrm","__extends$2B","__assign$i","__decorate$2h","checkboxVisibleIsDynamic","disableInsteadOfHide","__extends$2A","__decorate$2g","__values$7","containers_1","containers_1_1","allContainersFromDropTarget_1","allContainersFromDropTarget_1_1","e_4","elementStack_1","elementStack_1_1","validDropTargets_1","validDropTargets_1_1","e_4_1","externalTargets","ghostRect","__extends$2z","__decorate$2f","__extends$2y","__assign$h","__decorate$2e","embeddedRowMismatch","isAlwaysShowing","canSkipRenderingCell","doingFullWidth","firstRowGroupCol","showingGroupNode","configuredToShowThisGroupLevel","notFullWidth","showingThisRowGroup","footerTotalPrefix","showingGroupForThisNode","showCount","thisColumnIsInterested","isDoubleClickEdit","expandableGroup","displayingForOneColumnOnly","showing","suppressPadding","manyDimensionThisColumn","cbSelectionComponent_1","cellEditable","targetIsExpandIcon","__extends$2x","__decorate$2d","__extends$2w","__decorate$2c","__extends$2v","LoadingOverlayComponent$1","localeTextFunc_1","__extends$2u","NoRowsOverlayComponent$1","__extends$2t","TooltipComponent$1","__extends$2s","__extends$2r","__extends$2q","__decorate$2b","__extends$2p","__decorate$2a","__extends$2o","__decorate$29","__extends$2n","__extends$2m","__decorate$28","__read$t","__spreadArray$o","__extends$2l","__decorate$27","usingDefaultFilter","__extends$2k","__decorate$26","__extends$2j","__decorate$25","__decorate$24","isProxy","allNodesValid","notPinned","__extends$2i","__decorate$23","__extends$2h","__assign$g","__decorate$22","modelKeys_1","isValueActive","isAggFiltering","allowShowChangeAfterFilter","shouldRefreshFilter","isSameComponentClass","gridColumns","resolve_1","convertPromise","__extends$2g","__extends$2f","__decorate$21","__extends$2e","__decorate$20","validLayouts","__extends$2d","__assign$f","__decorate$1$","notYetInitialised","minScrollLeft","isPaging","__extends$2c","__assign$e","__decorate$1_","__read$s","__spreadArray$n","isSortActive","getRowIdFunc_1","rowWasMoved","__extends$2b","__decorate$1Z","isNestedTarget","removeScrollWidth","bodyViewportWidth","hasCategoryRange","selectionHandleFill","__extends$2a","singleRowHeight","__extends$29","__extends$28","__decorate$1Y","__extends$27","editOnSingleClick","editOnDoubleClick","__extends$26","eventOnChildComponent","__extends$25","__decorate$1X","__read$r","__spreadArray$m","__extends$24","__assign$d","instanceIdSequence$3","rangeSelectionEnabled","getTooltipValue","wrapperHeight","forceWrapper","rowNodePinned","isFunc","userWantsToCancel","eventImpactsThisCell","flashCell","enterNavigatesVerticallyAfterEdit","shouldFlash","isAutoHeight","isTooltipEnabled","__extends$23","__values$6","__read$q","__spreadArray$l","RowType$1","instanceIdSequence$2","initialRowClasses","shouldSlide","shouldFade","isGroupRow","noAnimation","cellInResult","keepCell","REMOVE_CELL","KEEP_CELL","mightWantToKeepCell","column_1","cellStillDisplayed","allFullWidthRowsRefreshed","useRowDragEntireRow","fullWidthChanged","stop","groupSelectsChildren","classToAdd_1","classToRemove_1","cellControls_1","cellControls_1_1","atLeastOneEditing","hasFocus","isHeightFromFunc","rowStillVisibleJustNotInViewport","skipScaling","afterScalingPixels","__extends$22","__decorate$1W","__read$p","mouseDownEvent","eventNames","gridProcessingAllowed","wasScrollKey","__extends$21","__decorate$1V","__read$o","__spreadArray$k","__extends$20","__decorate$1U","__extends$1$","__decorate$1T","__extends$1_","__decorate$1S","__extends$1Z","__decorate$1R","isEnabled","isRangeSelection","__extends$1Y","__decorate$1Q","relevantWidth","__extends$1X","__decorate$1P","__read$n","__spreadArray$j","allStickyContainers","isStickContainer","isAlwaysShowHorizontalScroll","__extends$1W","__decorate$1O","classLists","__extends$1V","__decorate$1N","atLeastOneDifferent","__extends$1U","__decorate$1M","eventFromThisGrid","__extends$1T","__assign$c","__decorate$1L","movedToNextCell","pRow","nRow","cellIsEditable","skipScrollToRow","__extends$1S","__decorate$1K","__extends$1R","isInlineEditing","neverRefresh","cellRendererRefreshSuccessful","cellEditorAsync","staleTask","staleComp","editingCancelledByUserComp","__extends$1Q","existingCellComp","__extends$1P","__assign$b","__decorate$1J","centerTemplate","__decorate$1I","totalColumns","__read$m","newCols_1","isMarryChildren","gapsExist","isMoveBlocked","widthOfMovingDisplayedCols_1","__decorate$1H","dragCameFromToolPanel","visibleState_1","__extends$1O","__decorate$1G","__extends$1N","__decorate$1F","__extends$1M","__decorate$1E","__extends$1L","__decorate$1D","__extends$1K","__decorate$1C","instanceIdSequence$1","suppressHeaderFocus","__extends$1J","__decorate$1B","animateColumnMove","__extends$1I","__decorate$1A","__extends$1H","isRelatedWithin","__extends$1G","__decorate$1z","skipHeaderOnAutoSize_1","autoSizeColListener_1","touchListener_1","propertyChange","__extends$1F","__decorate$1y","isMultiSelect","rowModelMatches","__extends$1E","attemptRefresh","headerCompRefreshed","isSuppressMovableColumns","colCanMove","__extends$1D","__decorate$1x","__extends$1C","__decorate$1w","__extends$1B","__assign$a","__extends$1A","__decorate$1v","__values$5","__read$l","columns_1","columns_1_1","isDisplayed","oldCtrls_1","oldCtrls_1_1","keepCtrl","forOldColumn","__extends$1z","__decorate$1u","__read$k","__spreadArray$i","shouldDestroyInstance","addPaddingForScrollbar","__extends$1y","__decorate$1t","notAlreadyIn","__extends$1x","__decorate$1s","__extends$1w","__decorate$1r","hasFloatingFilters","__extends$1v","__decorate$1q","__extends$1u","__decorate$1p","__extends$1t","__decorate$1o","__extends$1s","__decorate$1n","__extends$1r","__read$j","__spreadArray$h","__extends$1q","__decorate$1m","scrollableContainer_1","scrollPosition_1","__extends$1p","__decorate$1l","resizeObserverExists","__extends$1o","__decorate$1k","gridBodyDidSomething","__extends$1n","__decorate$1j","__extends$1m","__decorate$1i","isSuppressMenuButton","onIpadAndMenuHides","__extends$1l","__decorate$1h","isHeader","isRow","__extends$1k","__decorate$1g","__values$4","__read$i","__spreadArray$g","__extends$1j","__decorate$1f","__read$h","__spreadArray$f","__values$3","partialRefresh","gridElementFocused","refreshed","excludeColFromRefresh","stubNode","existingIndexes","useAnimationFrame","creatingNewRowCtrl","REMOVE_ROW","KEEP_ROW","mightWantToKeepRow","rowNodePresent","parentClosed","blockBeforeViewport","blockInsideViewport","rowNodeMismatch","__extends$1i","__decorate$1e","__extends$1h","__decorate$1d","nextRowTop_1","__extends$1g","requestMostRecentAndLive","__extends$1f","__decorate$1c","__param$5","ssrm","__extends$1e","__decorate$1b","shouldPaginate","nodeIsInPage","rowPage","__extends$1d","__decorate$1a","this_1","cellClassFunc","__extends$1c","AgToggleButton","__extends$1b","AgInputTextArea","__extends$1a","AgInputDateField","usingSafari","minDate","maxDate","__extends$19","AgInputRange","__extends$18","__decorate$19","rendererSuccessful","__extends$17","__decorate$18","__extends$16","__assign$9","__decorate$17","wasScrolled","__extends$15","__decorate$16","__extends$14","__decorate$15","__extends$13","__decorate$14","isManaged","separatorHtml","__extends$12","__decorate$13","__extends$11","__assign$8","__decorate$12","subMenuGui_1","mouseEvent_1","mouseEnterListener_1","childMenu_1","__extends$10","__decorate$11","__extends$$","__assign$7","__decorate$10","__extends$_","__assign$6","__decorate$$","__read$g","__spreadArray$e","__values$2","widthOfParent","alignSide_1","resizeObserverDestroyFunc_1","getSize","_g","elementNotInDom","isPopupAlwaysOnTop","__extends$Z","__extends$Y","__decorate$_","lowerCaseString","__extends$X","__decorate$Z","VanillaFrameworkOverrides","frameworkName","useCapture","framework","__extends$W","__decorate$Y","__read$f","__spreadArray$d","suppressNavigable","lastTopIndex","lastBottomIndex","lastBodyIndex","isFirstRow","lastBodyRow","lastFloatingRow","__extends$V","__decorate$X","__param$4","apis","srcColState","columnWidths_1","__extends$U","__decorate$W","newRowClicked","skipThisNode","thisNodeWasSelected","clearOtherNodes","nodeWasSelected","passesPredicate","oldNodeHasDifferentId","oldNodeSelected","recursivelyAddChildren_1","__decorate$V","__read$e","__spreadArray$c","__extends$T","__decorate$U","__extends$S","__decorate$T","__param$3","javaScriptFunction","__extends$R","__decorate$S","__extends$Q","__decorate$R","__param$2","__extends$P","__decorate$Q","idxWithFocus","__extends$O","__decorate$P","__extends$N","__decorate$O","__read$d","__spreadArray$b","sortedColsWithIndices","allCols","isSortingLinked_1","columnHasUniqueData","allMatch","__extends$M","__assign$5","__decorate$N","params_1","params_2","headerRowContainerCtrl","__extends$L","__decorate$M","__extends$K","__decorate$L","__extends$J","__decorate$K","update_1","__extends$I","__decorate$J","__extends$H","__decorate$I","__extends$G","__decorate$H","__extends$F","__decorate$G","__extends$E","__decorate$F","__read$c","__spreadArray$a","__extends$D","__decorate$E","__param$1","scrollPixel","__extends$C","__decorate$D","__extends$B","__decorate$C","hiddenGroupRow","__extends$A","__decorate$B","__extends$z","__decorate$A","__extends$y","__decorate$z","__extends$x","shouldAddActions","__extends$w","__assign$4","__decorate$y","__read$b","__spreadArray$9","shouldCaptureAction","shouldPushAction","__extends$v","__decorate$x","childContainer","__decorate$w","__decorate$v","__extends$u","__decorate$u","validResult","isNodeGroupedAtLevel","isGroupRows","__extends$t","__decorate$t","p_1","__extends$s","__decorate$s","__extends$r","__decorate$r","__extends$q","__decorate$q","scrollOnLeft","__extends$p","__decorate$p","__extends$o","__decorate$o","__read$a","__spreadArray$8","__decorate$n","__read$9","__spreadArray$7","useGridOptions","gridLayout","__extends$n","__decorate$m","__extends$m","__decorate$l","__extends$l","__assign$3","__decorate$k","__read$8","__spreadArray$6","columnTypeDefs_1","hasPropsPreventingInference","invalidArray","convertToDate_1","__extends$k","__decorate$j","__extends$j","__decorate$i","__extends$i","__assign$2","__decorate$h","__extends$h","__assign$1","__decorate$g","__values$1","__read$7","columnStates_1","columnStates_1_1","existingColumnGroupState","noSelections","__extends$g","__decorate$f","__read$6","__spreadArray$5","optionKeys","fromGetter_1","allRegistered_1","optionEntries","__extends$f","__decorate$e","__extends$e","__decorate$d","__read$5","__spreadArray$4","__extends$d","__decorate$c","__read$4","__spreadArray$3","createGrid","GridCoreCreator","gridComp","apiUrl_1","Grid","nextGridId","createUi","acceptChanges","registeredModules","beanClasses","providedBeanInstances","contextLogger","agStackComponents","passedViaConstructor","registered","allModules","mapNames","addModule","addIndividualModule","currentModule","moduleUserComps","compMeta","seed","moduleAgStackComps","rowModelModules","rowModelModuleNames","moduleBeans","beansNoDuplicates","moduleEntities","BaseComponentWrapper","OriginalConstructor","mandatoryMethodList","optionalMethodList","componentType","DEFAULT_CHART_GROUPS","CHART_TOOL_PANEL_ALLOW_LIST","CHART_TOOLBAR_ALLOW_LIST","CHART_TOOL_PANEL_MENU_OPTIONS","__FORCE_MODULE_DETECTION","__read$3","__spreadArray$2","ClientSideNodeManager","selectionService","rowDataTran","rowNodeTransaction","nodesToUnselect","add","newNodes","allLeafChildren","normalisedAddIndex","nodesBeforeIndex","nodesAfterIndex","rowIdsRemoved","suppressParentsInRowNodes","setExpanded","masterDetail","numRowGroupColumns","masterRowLevel","expandByDefault","__extends$c","__decorate$b","__read$2","__spreadArray$1","RecursionType","ClientSideRowModel","refreshEverythingFunc","refreshEverythingAfterColsChangedFunc","resetProps","groupStageRefreshProps","filterStageRefreshProps","pivotStageRefreshProps","aggregateStageRefreshProps","sortStageRefreshProps","filterAggStageRefreshProps","flattenStageRefreshProps","allProps","arePropertiesImpacted","propSet","atLeastOneChange","rowAtStartPixel","rowAtEndPixel","displayedRowsMapped","changedPathActive","clearIfNotDisplayed","recurse","isRootNode","skipChildren","indexAtPixelNow","rowNodeAtPixelNow","highlight","showingRootNode","filteredChildren","topLevelIndex","primaryOrQuickFilterChanged","rowNodeTransactions","noTransactions","transWithAddsOrDeletes","transactionsContainUpdatesOnly","paramsStep","stepsMapped","modelParams","paramsOrStep","displayedNodesMapped","rowsMissing","firstInRange","lastInRange","started","groupsSelectChildren","includeThisNode","pixelToMatch","bottomPointer","topPointer","oldBottomPointer","oldTopPointer","midPointer","caughtInInfiniteLoop","pixelInRow","recursionType","nodeChildren","totalFooters","isGroupIncludeFooter","expand","usingTreeData","usingPivotMode","recursiveExpandOrCollapse","actionRow","hasChildren","notLeafGroup","isRowGroup","afterColumnsChanged","idIsGroup","res_1","rowDataUpdatedEvent","waitMillis","callbackFuncsBound","rowNodeTrans","forceRowNodeOrder","tranItem","rowNodeTran","suppressSortOrder","orderMap","detailNode","__extends$b","__decorate$a","FilterStage","__extends$a","__decorate$9","SortStage","sortActive","deltaSort","sortContainsGroupColumns","__extends$9","__decorate$8","FlattenStage","showRootNode","topList","atLeastOneRowPresent","includeGroupTotalFooter","groupRemoveSingleChildren","groupRemoveLowestSingleChildren","rowsToFlatten","isParent","isSkippedLeafNode","isRemovedSingleChildrenGroup","isRemovedLowestSingleChildrenGroup","neverAllowToExpand","isHiddenOpenParent","thisRowShouldBeRendered","excludedParent","uiLevelForChildren","doesRowShowFooter","masterNode","__extends$8","__decorate$7","SortService","useDeltaSort","groupMaintainOrder","groupColumnsPresent","allDirtyNodes","isPivotMode","postSortFunc","skipSortingPivotLeafs","skipSortingGroups","nextGroup","wasSortExplicitlyRemoved","childrenToBeSorted","indexedOrders_1","row1","row2","dirtyNodes","addNodesFunc","tran","allTouchedNodes","unsortedRows","oldSortedRows","untouchedRowsMap","touchedRows","sortedUntouchedRows","mapNodeToSortedNode","sortedChangedRows","listToSort","clearOperation","childRowNode","groupDisplayCols","displayingGroupKey","thisRowNodeMatches","parentToStealFrom","__extends$7","__decorate$6","FilterService","filterActive","includeChildNodes","passBecauseChildren","passBecauseDataPasses","treeDataDepthFirstFilter_1","alreadyFoundInParent","foundInParent","treeDataFilterCallback","defaultFilterCallback","__extends$6","__decorate$5","__read$1","ImmutableService","getRowIdProvided","resetRowDataOnUpdate","transactionAndMap","orderIdMap","existingNodesMap","existingNode","dataHasChanged","VERSION$2","ClientSideRowModelModule","__extends$5","__decorate$4","InfiniteBlock","parentCache","dontTouchLastAccessed","localIndex","finalRowCount","__extends$4","__decorate$3","InfiniteCache","dontCreatePage","blockId","blockNumber","newBlock","nothingToRefresh","blockToExclude","blocksForPurging","lastAccessedComparator","maxBlocksProvided","blocksToKeep","emptyBlocksToKeep","purgeBecauseBlockEmpty","purgeBecauseCacheFull","blockIndexStart","blockIndexEnd","blockToRemove","lastRowIndexPlusOverflow","lastRowIndexKnown","blockComparator","blocks","blocksToDestroy","lastBlockId","inActiveRange","numberSequence","foundGapInSelection","hitFirstOrLast","invalidRange","__extends$3","__decorate$2","InfiniteRowModel","resetRequired","userGeneratingIds","rowIndexForPixel","foundRowNode","VERSION$1","InfiniteRowModelModule","BaseCreator","fileName","extension","serializingSession","BaseGridSerializingSession","valueService","valueParserService","processCellCallback","processHeaderCallback","processGroupHeaderCallback","processRowGroupCallback","columnsToExport","accumulatedRowIndex","hideOpenParents","processedValue","currentColumnIndex","isGroupNode","currentColumnGroupIndex","isFullWidth","isGroupUseEntireRow","isSuppressGroupMaintainValueType","getValueFromNode","isFooter","groupValue","valueToParse","valueToFormat","Downloader","__extends$2","LINE_SEPARATOR$1","CsvSerializingSession","suppressQuotes","columnSeparator","rowCellValue","stringValue","valueEscaped","__extends$1","__decorate$1","CsvCreator","baseParams","packagedFile","skipDefaultParams","GridSerializer","gridSerializingSession","columnKeys","skipRowGroups","serializeChain","rowSkipper","skipSingleChildrenGroup","skipLowestSingleChildrenGroup","isClipboardExport","isExplicitExportSelection","isLeafNode","shouldSkipLowestGroup","shouldSkipCurrentGroup","nodeIsRootNode","shouldRowBeSkipped","rowAccumulator","appendContent","prependContent","gridRowIterator_1","usingCsrm","usingSsrm","onlySelectedNonStandardModel","exportedRows","compareNodes","directChildrenHeaderGroups","gridRowIterator","columnIndex","collapsibleGroupRanges","collapsibleGroups","lastGroup","groupShow","CsvExportModule","LINE_SEPARATOR","XmlFactory","headerElement","headerStart","headerEnd","att","xmlElement","booleanTransformer","prefixedSet","xmlValue","convertTime","time","convertDate","convertDecToHex","getCrcFromCrc32TableAndByteArray","crc","crcTable","getCrcFromCrc32Table","__awaiter$2","thisArg","_arguments","generator","adopt","__generator$2","verb","compressBlob","chunksSize","writeCompressedData","readable","compressStream","deflateLocalFile","rawContent","contentAsBlob","compressedSize","compressedContent","compressedContentAsUint8Array","__awaiter$1","__generator$1","getDeflatedHeaderAndContent","currentFile","deflatedContent","deflatedSize","deflationPerformed","shouldDeflate","getDecodedContent","getHeaders","getHeaderAndContent","isCompressed","rawSize","creationDate","crcFlag","zipSize","utfPath","isUTF8","extraFields","uExtraFieldPath","commonHeader","localFileHeader","centralDirectoryHeader","buildCentralDirectoryEnd","tLen","cLen","lLen","convertStringToByteArray","contentToUse","__awaiter","__generator","__values","__read","ZipContainer","isBase64","mimeType","textOutput","files","fileData","folderData","filesContentAndHeaderLength","folderHeadersLength","files_1","files_1_1","dataWithHeader","dataWithContent","folderDataWithFolderHeader","folderEnd","totalFiles","readyFiles","lL","totalFiles_1","totalFiles_1_1","totalFiles_2","totalFiles_2_1","readyFile","AllCommunityModules","customContext","react_1","__setModuleDefault","__importStar","customWrapperComp","customContext_1","CustomWrapperComp","initialProps","addUpdateCallback","CustomComponentClass","setMethods","setProps","newProps","keyGenerator","generateNewKey","reactDomServerLegacy_browser_production_min","reactDomServer_browser_production_min","server_browser","reactComponent","ag_grid_community_1","keyGenerator_1","react_dom_1","server_1","ReactComponent","portalManager","suppressFallbackMethods","componentWrappingElement","eParentElement","parentContainerClasses","frameworkComponentInstance","originalConsoleError","staticMarkup","customComponentWrapper","customWrapperComp_1","reactComponent_1","addOptionalMethods","optionalMethodNames","providedMethods","providedMethod","CustomComponentWrapper","dateComponentWrapper","customComponentWrapper_1","DateComponentWrapper","filterComponentWrapper","FilterComponentWrapper","floatingFilterComponentProxy","updateFloatingFilterParent","FloatingFilterComponentProxy","floatingFilterParams","refreshProps","floatingFilterComponentWrapper","floatingFilterComponentProxy_1","FloatingFilterComponentWrapper","loadingOverlayComponentWrapper","LoadingOverlayComponentWrapper","menuItemComponentWrapper","MenuItemComponentWrapper","noRowsOverlayComponentWrapper","NoRowsOverlayComponentWrapper","statusPanelComponentWrapper","StatusPanelComponentWrapper","toolPanelComponentWrapper","ToolPanelComponentWrapper","PortalManager","refresher","wrappingElement","maxComponentCreationTimeMs","portal","curPortal","oldPortal","newPortal","startTime","beansContext","classesList","CssClasses","initialClasses","nothingHasChanged","isComponentStateless","hasSymbol","getMemoType","createRootAndFlushSyncAvailable","disableFlushSync","runWithoutFlushSync","agFlushSync","getNextValueIfDifferent","maintainOrder","oldValues","newValues","prevMap","nextMap","showJsComp","doNothing","compGui","destroyed","refCallback","refObj","createSyncJsComp","groupCellRenderer","beansContext_1","jsComp_1","utils_1","eValueRef","eCheckboxRef","eExpandedRef","eContractedRef","ctrlRef","setInnerCompDetails","childCount","setChildCount","setValue","setCssClasses","expandedCssClasses","setExpandedCssClasses","contractedCssClasses","setContractedCssClasses","_h","checkboxCssClasses","setCheckboxCssClasses","expandedClassName","contractedClassName","checkboxClassName","useFwRenderer","FwRenderer","useValue","headerCellComp","isAlive","setUserCompDetails","userCompRef","cssClassManager","userCompStateless","reactUserComp","UserCompClass","headerGroupCellComp","cssResizableClasses","setResizableCssClasses","resizableAriaHidden","setResizableAriaHidden","ariaExpanded","resizableClassName","util","getInstance","wrapperComponent","warnReactiveCustomComponents","headerFilterCellComp","util_1","cssBodyClasses","setBodyCssClasses","cssButtonWrapperClasses","setButtonWrapperCssClasses","buttonWrapperAriaHidden","setButtonWrapperAriaHidden","setRenderKey","eButtonWrapper","userCompResolve","userCompPromise","bodyClassName","buttonWrapperClassName","reactiveCustomComponents","floatingFilterCompProxy","floatingFilterProps","headerRowComp","headerCellComp_1","headerGroupCellComp_1","headerFilterCellComp_1","setTop","setCellCtrls","createCellJsx","headerRowContainerComp","headerRowComp_1","headerRowCtrls","setHeaderRowCtrls","eCenterContainer","headerRowCtrlRef","centre","insertRowsJsx","gridHeaderComp","headerRowContainerComp_1","gridCtrlRef","reactComment","useReactCommentEffect","eForCommentRef","eForComment","eParent_1","eComment_1","useEffectOnce_1","useEffectOnce","effectFn","destroyFn","effectCalled","rendered","setVal","popupEditorComp","PopupEditorComp","popupEditorWrapper","setPopupEditorWrapper","editDetails","eChildGui","hideEditorPopup","showJsRenderer","useJsCellRenderer","showDetails","showTools","eCellValue","cellValueVersion","jsCellRendererRef","destroyCellRenderer","showValue","jsCompDetails","waitingForToolsSetup","showComp","comp_1","refreshResult","refreshWorked","cellEditorComponentProxy","CellEditorComponentProxy","cellEditorParams","componentInstance","popupEditorComp_1","showJsRenderer_1","cellEditorComponentProxy_1","CellCompState","checkCellEditorDeprecations","msg_1","msg_2","jsxEditorProxy","CellEditorClass","isStateless","jsxEditor","newFormat","jsxEditValue","setInlineCellEditorRef","setPopupCellEditorRef","jsEditorComp","reactInlineEditor","reactPopupEditor","jsPopupEditor","jsxShowValue","cellRendererRef","showCellWrapper","reactCellRendererStateless","setECellValue","noCellRenderer","reactCellRenderer","CellRendererClass","valueForNoCellRenderer","bodyJsxFunc","cellInstanceId","renderDetails","setRenderDetails","setEditDetails","renderKey","userStyles","setUserStyles","includeSelection","setIncludeSelection","includeRowDrag","setIncludeRowDrag","includeDndSource","setIncludeDndSource","setJsEditorComp","cellAriaRole","cellEditorRef","cellWrapperDestroyFuncs","_j","setCellValueVersion","setCellValueRef","setCellEditorRef","lastRenderDetails","oldDetails","newDetails","doingJsEditor","setCellWrapperRef","addComp","eGui_1","checkboxSelectionComp","popupPosition","compProxy_1","cellWrapperOrUndefined","showContents","cellComp_1","domOrderRef","setRowIndex","setRowId","rowBusinessKey","setRowBusinessKey","fullWidthCompDetails","setFullWidthCompDetails","setTransform","fullWidthCompRef","autoHeightSetup","_k","autoHeightSetupAttempt","setAutoHeightSetupAttempt","canRefreshFullWidthRef","prevFullWidthCompDetails","rowStyles","showFullWidthFramework","showCells","reactFullWidthCellRendererStateless","showCellsJsx","showFullWidthFrameworkJsx","FullWidthComp","rowContainerComp","reactComment_1","rowComp_1","rowCtrlsRef","rowCtrlsOrdered","setRowCtrlsOrdered","rowContainerCtrlRef","viewportClasses","containerClasses","topLevelRef","areElementsReady","areElementsRemoved","updateRowCtrlsOrdered_1","useFlush","setContainerRef","setViewportRef","buildContainer","gridBodyComp","gridHeaderComp_1","rowContainerComp_1","agStackComponentsRegistry","rowAnimationClass","setRowAnimationClass","topHeight","setTopHeight","bottomHeight","setBottomHeight","setStickyTopHeight","stickyTopTop","setStickyTopTop","stickyTopWidth","setStickyTopWidth","topDisplay","setTopDisplay","bottomDisplay","setBottomDisplay","forceVerticalScrollClass","setForceVerticalScrollClass","_l","topAndBottomOverflowY","setTopAndBottomOverflowY","_m","cellSelectableCss","setCellSelectableCss","_o","layoutClass","setLayoutClass","eRoot","beansToDestroy","destroyFuncs","CompClass","attachToDom","unsubscribeFromResize_1","rootClasses","bodyViewportClasses","bodyClasses","topClasses","stickyTopClasses","bottomClasses","topStyle","stickyTopStyle","bottomStyle","createRowContainer","createSection","section","tabGuardComp","TabGuardCompRef","topTabGuardRef","bottomTabGuardRef","tabGuardCtrlRef","setTabIndex","setupCtrl","setTopRef","setBottomRef","createTabGuard","gridBodyComp_1","tabGuardComp_1","rtlClass","setRtlClass","keyboardFocusClass","setCursor","userSelect","setUserSelect","initialised","setInitialised","tabGuardReady","setTabGuardReady","eRootWrapperRef","tabGuardRef","eGridBodyParent","setGridBodyParent","focusInnerElementRef","gridBodyCompEl","sideBarEl","HeaderDropZonesClass","SideBarClass","StatusBarClass","WatermarkClass","PaginationClass","additionalEls","eRootWrapper","headerDropZonesComp","sideBarComp","statusBarComp","paginationComp","watermarkComp","rootWrapperClasses","rootWrapperBodyClasses","setTabGuardCompRef","dateComponentWrapper_1","filterComponentWrapper_1","floatingFilterComponentWrapper_1","loadingOverlayComponentWrapper_1","menuItemComponentWrapper_1","noRowsOverlayComponentWrapper_1","statusPanelComponentWrapper_1","toolPanelComponentWrapper_1","require$$10","portalManager_1","require$$11","require$$12","require$$13","groupCellRenderer_1","require$$14","gridComp_1","require$$15","require$$16","AgGridReactUi","apiRef","whenReadyFuncs","ready","setContext","setPortalRefresher","mergedGridOps","gridParams","ReactFrameworkComponentWrapper","ReactFrameworkOverrides","createUiCallback","acceptChangesCallback","gridCoreCreator","processWhenReady","extractGridPropertyChanges","propKey","propValue","UserReactComponent","getComponentClass","DetailCellRenderer","ctrlsFactory","serverSideRowModel","gridCssClasses","setGridCssClasses","detailGridOptions","setDetailGridOptions","detailRowData","setDetailRowData","eGuiRef","parentModules","topClassName","gridClassName","setGridApi","isJsComp","agGridReact","agGridReactUi_1","AgGridReact","ChangeDetectionStrategyType","interfaces","useGridCustomComponent","useGridCellEditor","useGridDate","useGridFilter","useGridFloatingFilter","useGridMenuItem","agGridReact_1","Blotter","selectedStatus","selectedDeals","hasUserWritePermission","sizeToFit","onGridReady","rowStatus","onSelectionChanged","dealSelectedStatus","dealsId","strongLabelStyle","strongAmoutStyle","normalAmountStyle","formatNumeric","isMillion","fixAmounts","addAmounts","amount1","amount2","getAmountsByCurrency","amounts","TotalAmount","ccy1OriginalAmountSum","ccy2ComputedAmountSum","ccy1ComputedAmountSum","ccy2OriginalAmountSum","ccy1","ccy2","WrappedInABox","labelSessionTime","DealsStatusBadge","sendDealNumbers","BookingKpi","currentSessionTime","OpenDealsSelectionButton","selectAllOpenDeals","selectButtonLabel","SavedDealsSelectionButton","selectAllSavedDeals","SentDealsSelectionActionButton","selectAllSentDeals","DefaultBulkActionsFooter","openDealsCount","sentDealsCount","savedDealsCount","messagePrefix","DeselectButton","ApplySpotRateButton","OpenDealsBulkActionsFooter","selectedOpenDeals","deselectAllOpenDeals","dealsToRefresh","openedDeal","dealsToSave","dealsToDiscard","SavedDealsBulkActionsFooter","deselectAllSavedDeals","selectedSavedDeals","savedDeal","dealsToSend","SentDealsBulkActionsFooter","deselectAllSentDeals","dealsToDelete","DealsBulkActionsFooter","selectedDealStatus","toggleSelectedStatus","dealToSelect","deselectAllDeals","openDeals","sentDeals","SessionPage","isFailureReasonsAction","rtkQueryErrorLogger","setupStore","ErrorGrowl","errorsToDisplay","autocloseAction","_stateId","NAMESPACE","contentRef","hostTagName","useNativeShadowDom","checkSlotFallbackVisibility","checkSlotRelocate","isSvgMode","renderingRef","queuePending","createTime","uniqueTime","HYDRATED_CSS","XLINK_NS","EMPTY_OBJ","SVG_NS","HTML_NS","isComplexType","queryNonceMetaTagContent","newVNode","vdomFnUtils","$","Host","isHost","convertToPublic","convertToPrivate","parsePropertyValue","getElement","getHostRef","emitEvent","plt","rootAppliedStyles","registerStyle","supportsConstructableStylesheets","addStyle","getScopeId","attachStyles","setAccessor","isMemberInElement","parseClassList","parseClassListRegex","updateElement","createElm","putBackInOriginalLocation","parentReferenceNode","referenceNode","addVnodes","removeVnodes","nullifyVNodeRefs","updateChildren","isSameVnode","updateFallbackSlotVisibility","relocateNodes","relocateSlotContent","isNodeLocatedInSlot","renderVdom","attachToAncestor","scheduleUpdate","dispatchHooks","writeTask","safeCall","enqueue","updateComponent","isPromisey","callRender","postUpdateComponent","consoleError","getRenderingRef","addHydratedFlag","appDidLoad","proxyComponent","initializeComponent","loadModule","fireConnectedCallback","connectedCallback","addHostEventListeners","setContentReference","disconnectInstance","disconnectedCallback","patchCloneNode","patchSlotAppendChild","getSlotName","getHostSlotNode","getHostSlotChildNodes","patchChildSlotNodes","bootstrapLazy","registerHost","getHostListenerTarget","hostListenerProxy","hostListenerOpts","hostRefs","registerInstance","cmpModules","__vitePreload","promiseResolve","queueDomReads","queueDomWrites","queueTask","flush","consume","defineCustomElements","renderApp","root","siteid","StrictMode","ServiceLoader","renderError","userInfo","checkIAMRights","lmafxPermission","permissionType"],"ignoreList":[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,95,96,97,98,99,100,101,103,104,105,107,108,109,110,111,112,113,114,115,116,117,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,183,184,185,186,187,188,189,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,469,470,471,472,473,474,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,753,754,755],"sources":["../../src/utils/theme.ts","../../src/initTheme.ts","../../node_modules/.pnpm/react@18.2.0/node_modules/react/cjs/react.production.min.js","../../node_modules/.pnpm/react@18.2.0/node_modules/react/index.js","../../node_modules/.pnpm/react@18.2.0/node_modules/react/cjs/react-jsx-runtime.production.min.js","../../node_modules/.pnpm/react@18.2.0/node_modules/react/jsx-runtime.js","../../node_modules/.pnpm/luxon@3.4.4/node_modules/luxon/src/errors.js","../../node_modules/.pnpm/luxon@3.4.4/node_modules/luxon/src/impl/formats.js","../../node_modules/.pnpm/luxon@3.4.4/node_modules/luxon/src/zone.js","../../node_modules/.pnpm/luxon@3.4.4/node_modules/luxon/src/zones/systemZone.js","../../node_modules/.pnpm/luxon@3.4.4/node_modules/luxon/src/zones/IANAZone.js","../../node_modules/.pnpm/luxon@3.4.4/node_modules/luxon/src/impl/locale.js","../../node_modules/.pnpm/luxon@3.4.4/node_modules/luxon/src/zones/fixedOffsetZone.js","../../node_modules/.pnpm/luxon@3.4.4/node_modules/luxon/src/zones/invalidZone.js","../../node_modules/.pnpm/luxon@3.4.4/node_modules/luxon/src/impl/zoneUtil.js","../../node_modules/.pnpm/luxon@3.4.4/node_modules/luxon/src/settings.js","../../node_modules/.pnpm/luxon@3.4.4/node_modules/luxon/src/impl/invalid.js","../../node_modules/.pnpm/luxon@3.4.4/node_modules/luxon/src/impl/conversions.js","../../node_modules/.pnpm/luxon@3.4.4/node_modules/luxon/src/impl/util.js","../../node_modules/.pnpm/luxon@3.4.4/node_modules/luxon/src/impl/english.js","../../node_modules/.pnpm/luxon@3.4.4/node_modules/luxon/src/impl/formatter.js","../../node_modules/.pnpm/luxon@3.4.4/node_modules/luxon/src/impl/regexParser.js","../../node_modules/.pnpm/luxon@3.4.4/node_modules/luxon/src/duration.js","../../node_modules/.pnpm/luxon@3.4.4/node_modules/luxon/src/interval.js","../../node_modules/.pnpm/luxon@3.4.4/node_modules/luxon/src/info.js","../../node_modules/.pnpm/luxon@3.4.4/node_modules/luxon/src/impl/diff.js","../../node_modules/.pnpm/luxon@3.4.4/node_modules/luxon/src/impl/digits.js","../../node_modules/.pnpm/luxon@3.4.4/node_modules/luxon/src/impl/tokenParser.js","../../node_modules/.pnpm/luxon@3.4.4/node_modules/luxon/src/datetime.js","../../src/context/CurrentTimeContext.tsx","../../src/context/ExpirationSessionGrowlContext.tsx","../../node_modules/.pnpm/tslib@2.6.2/node_modules/tslib/tslib.es6.mjs","../../node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/cjs/react-is.production.min.js","../../node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/index.js","../../node_modules/.pnpm/hoist-non-react-statics@3.3.2/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../../node_modules/.pnpm/@formatjs+ecma402-abstract@1.18.2/node_modules/@formatjs/ecma402-abstract/lib/utils.js","../../node_modules/.pnpm/@formatjs+icu-messageformat-parser@2.7.6/node_modules/@formatjs/icu-messageformat-parser/lib/error.js","../../node_modules/.pnpm/@formatjs+icu-messageformat-parser@2.7.6/node_modules/@formatjs/icu-messageformat-parser/lib/types.js","../../node_modules/.pnpm/@formatjs+icu-messageformat-parser@2.7.6/node_modules/@formatjs/icu-messageformat-parser/lib/regex.generated.js","../../node_modules/.pnpm/@formatjs+icu-skeleton-parser@1.8.0/node_modules/@formatjs/icu-skeleton-parser/lib/date-time.js","../../node_modules/.pnpm/@formatjs+icu-skeleton-parser@1.8.0/node_modules/@formatjs/icu-skeleton-parser/lib/regex.generated.js","../../node_modules/.pnpm/@formatjs+icu-skeleton-parser@1.8.0/node_modules/@formatjs/icu-skeleton-parser/lib/number.js","../../node_modules/.pnpm/@formatjs+icu-messageformat-parser@2.7.6/node_modules/@formatjs/icu-messageformat-parser/lib/time-data.generated.js","../../node_modules/.pnpm/@formatjs+icu-messageformat-parser@2.7.6/node_modules/@formatjs/icu-messageformat-parser/lib/date-time-pattern-generator.js","../../node_modules/.pnpm/@formatjs+icu-messageformat-parser@2.7.6/node_modules/@formatjs/icu-messageformat-parser/lib/parser.js","../../node_modules/.pnpm/@formatjs+icu-messageformat-parser@2.7.6/node_modules/@formatjs/icu-messageformat-parser/lib/index.js","../../node_modules/.pnpm/@formatjs+fast-memoize@2.2.0/node_modules/@formatjs/fast-memoize/lib/index.js","../../node_modules/.pnpm/intl-messageformat@10.5.11/node_modules/intl-messageformat/lib/src/error.js","../../node_modules/.pnpm/intl-messageformat@10.5.11/node_modules/intl-messageformat/lib/src/formatters.js","../../node_modules/.pnpm/intl-messageformat@10.5.11/node_modules/intl-messageformat/lib/src/core.js","../../node_modules/.pnpm/@formatjs+intl@2.10.0_typescript@5.4.2/node_modules/@formatjs/intl/lib/src/error.js","../../node_modules/.pnpm/@formatjs+intl@2.10.0_typescript@5.4.2/node_modules/@formatjs/intl/lib/src/utils.js","../../node_modules/.pnpm/@formatjs+intl@2.10.0_typescript@5.4.2/node_modules/@formatjs/intl/lib/src/message.js","../../node_modules/.pnpm/@formatjs+intl@2.10.0_typescript@5.4.2/node_modules/@formatjs/intl/lib/src/dateTime.js","../../node_modules/.pnpm/@formatjs+intl@2.10.0_typescript@5.4.2/node_modules/@formatjs/intl/lib/src/displayName.js","../../node_modules/.pnpm/@formatjs+intl@2.10.0_typescript@5.4.2/node_modules/@formatjs/intl/lib/src/list.js","../../node_modules/.pnpm/@formatjs+intl@2.10.0_typescript@5.4.2/node_modules/@formatjs/intl/lib/src/plural.js","../../node_modules/.pnpm/@formatjs+intl@2.10.0_typescript@5.4.2/node_modules/@formatjs/intl/lib/src/relativeTime.js","../../node_modules/.pnpm/@formatjs+intl@2.10.0_typescript@5.4.2/node_modules/@formatjs/intl/lib/src/number.js","../../node_modules/.pnpm/@formatjs+intl@2.10.0_typescript@5.4.2/node_modules/@formatjs/intl/lib/src/create-intl.js","../../node_modules/.pnpm/react-intl@6.6.2_react@18.2.0_typescript@5.4.2/node_modules/react-intl/lib/src/utils.js","../../node_modules/.pnpm/react-intl@6.6.2_react@18.2.0_typescript@5.4.2/node_modules/react-intl/lib/src/components/injectIntl.js","../../node_modules/.pnpm/react-intl@6.6.2_react@18.2.0_typescript@5.4.2/node_modules/react-intl/lib/src/components/useIntl.js","../../node_modules/.pnpm/react-intl@6.6.2_react@18.2.0_typescript@5.4.2/node_modules/react-intl/lib/src/components/createFormattedComponent.js","../../node_modules/.pnpm/react-intl@6.6.2_react@18.2.0_typescript@5.4.2/node_modules/react-intl/lib/src/components/createIntl.js","../../node_modules/.pnpm/react-intl@6.6.2_react@18.2.0_typescript@5.4.2/node_modules/react-intl/lib/src/components/provider.js","../../node_modules/.pnpm/react-intl@6.6.2_react@18.2.0_typescript@5.4.2/node_modules/react-intl/lib/src/components/message.js","../../node_modules/.pnpm/react-intl@6.6.2_react@18.2.0_typescript@5.4.2/node_modules/react-intl/lib/index.js","../../node_modules/.pnpm/@sgwt+connect-core@0.18.0/node_modules/@sgwt/connect-core/dist/src/SGWTConnectErrorList.js","../../node_modules/.pnpm/@sgwt+connect-core@0.18.0/node_modules/@sgwt/connect-core/dist/src/SGWTConnectError.js","../../node_modules/.pnpm/@sgwt+connect-core@0.18.0/node_modules/@sgwt/connect-core/dist/src/SGWTConnectEventList.js","../../node_modules/.pnpm/@sgwt+connect-core@0.18.0/node_modules/@sgwt/connect-core/dist/src/SGWTConnectAuthorizationUri.js","../../node_modules/.pnpm/@sgwt+connect-core@0.18.0/node_modules/@sgwt/connect-core/dist/src/isScopeListed.js","../../node_modules/.pnpm/@sgwt+connect-core@0.18.0/node_modules/@sgwt/connect-core/dist/src/normalizeUrl.js","../../node_modules/.pnpm/@sgwt+connect-core@0.18.0/node_modules/@sgwt/connect-core/dist/src/SGWTConnectServerResponse.js","../../node_modules/.pnpm/@sgwt+connect-core@0.18.0/node_modules/@sgwt/connect-core/dist/src/SGWTConnectRedirectUri.js","../../node_modules/.pnpm/@sgwt+connect-core@0.18.0/node_modules/@sgwt/connect-core/dist/src/SGWTConnectConfiguration.js","../../node_modules/.pnpm/@sgwt+connect-core@0.18.0/node_modules/@sgwt/connect-core/dist/src/SGWTConnectStorage.js","../../node_modules/.pnpm/events@3.0.0/node_modules/events/events.js","../../node_modules/.pnpm/@sgwt+connect-core@0.18.0/node_modules/@sgwt/connect-core/dist/src/isSameOrigin.js","../../node_modules/.pnpm/@sgwt+connect-core@0.18.0/node_modules/@sgwt/connect-core/dist/src/isObject.js","../../node_modules/.pnpm/@sgwt+connect-core@0.18.0/node_modules/@sgwt/connect-core/dist/src/SGWTConnectOpenIDUserInfo.js","../../node_modules/.pnpm/@sgwt+connect-core@0.18.0/node_modules/@sgwt/connect-core/dist/src/SGWTConnectCore.js","../../node_modules/.pnpm/@sgwt+connect-core@0.18.0/node_modules/@sgwt/connect-core/dist/src/SGWTConnectHash.js","../../node_modules/.pnpm/@sgwt+connect-core@0.18.0/node_modules/@sgwt/connect-core/dist/src/SGWTConnectIdTokenClaims.js","../../node_modules/.pnpm/@sgwt+connect-core@0.18.0/node_modules/@sgwt/connect-core/dist/src/SGWTConnectNoop.js","../../node_modules/.pnpm/@sgwt+connect-core@0.18.0/node_modules/@sgwt/connect-core/dist/src/SGWTConnectOpenIDMetadata.js","../../node_modules/.pnpm/@sgwt+connect-core@0.18.0/node_modules/@sgwt/connect-core/dist/src/setupSGWTConnect.js","../../node_modules/.pnpm/@sgwt+connect-core@0.18.0/node_modules/@sgwt/connect-core/dist/index.js","../../src/config/config.ts","../../src/widgets/sgwtConnect.ts","../../src/widgets/widgets.ts","../../src/context/IntlContext.tsx","../../src/components/shared/Clock.tsx","../../src/components/shared/DateKpi.tsx","../../node_modules/.pnpm/@sgme+fp@2.3.0/node_modules/@sgme/fp/lib/src/predicates.js","../../node_modules/.pnpm/@sgme+fp@2.3.0/node_modules/@sgme/fp/lib/src/assertions.js","../../node_modules/.pnpm/@sgme+fp@2.3.0/node_modules/@sgme/fp/lib/src/object.js","../../node_modules/.pnpm/@sgme+fp@2.3.0/node_modules/@sgme/fp/lib/src/react.js","../../node_modules/.pnpm/@sgme+fp@2.3.0/node_modules/@sgme/fp/lib/src/utils.js","../../node_modules/.pnpm/@sgme+fp@2.3.0/node_modules/@sgme/fp/lib/src/clear.js","../../node_modules/.pnpm/@sgme+fp@2.3.0/node_modules/@sgme/fp/lib/src/index.js","../../src/components/shared/Growl.tsx","../../node_modules/.pnpm/use-sync-external-store@1.2.0_react@18.2.0/node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.production.min.js","../../node_modules/.pnpm/use-sync-external-store@1.2.0_react@18.2.0/node_modules/use-sync-external-store/with-selector.js","../../node_modules/.pnpm/react-redux@9.1.0_@types+react@18.2.66_react@18.2.0_redux@5.0.1/node_modules/react-redux/dist/react-redux.mjs","../../src/hooks/reduxHook.ts","../../node_modules/.pnpm/redux@5.0.1/node_modules/redux/dist/redux.mjs","../../node_modules/.pnpm/immer@10.0.3/node_modules/immer/dist/immer.mjs","../../node_modules/.pnpm/reselect@5.1.0/node_modules/reselect/dist/reselect.mjs","../../node_modules/.pnpm/redux-thunk@3.1.0_redux@5.0.1/node_modules/redux-thunk/dist/redux-thunk.mjs","../../node_modules/.pnpm/@reduxjs+toolkit@2.2.1_react-redux@9.1.0_react@18.2.0/node_modules/@reduxjs/toolkit/dist/redux-toolkit.modern.mjs","../../node_modules/.pnpm/@reduxjs+toolkit@2.2.1_react-redux@9.1.0_react@18.2.0/node_modules/@reduxjs/toolkit/dist/query/rtk-query.modern.mjs","../../node_modules/.pnpm/@reduxjs+toolkit@2.2.1_react-redux@9.1.0_react@18.2.0/node_modules/@reduxjs/toolkit/dist/query/react/rtk-query-react.modern.mjs","../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/rng.js","../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/stringify.js","../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/native.js","../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/v4.js","../../src/api/fakeUser.ts","../../src/api/prepareHeader.ts","../../src/core/signalR/retry.ts","../../node_modules/.pnpm/@microsoft+signalr@8.0.0/node_modules/@microsoft/signalr/dist/esm/Errors.js","../../node_modules/.pnpm/@microsoft+signalr@8.0.0/node_modules/@microsoft/signalr/dist/esm/HttpClient.js","../../node_modules/.pnpm/@microsoft+signalr@8.0.0/node_modules/@microsoft/signalr/dist/esm/ILogger.js","../../node_modules/.pnpm/@microsoft+signalr@8.0.0/node_modules/@microsoft/signalr/dist/esm/Loggers.js","../../node_modules/.pnpm/@microsoft+signalr@8.0.0/node_modules/@microsoft/signalr/dist/esm/Utils.js","../../node_modules/.pnpm/@microsoft+signalr@8.0.0/node_modules/@microsoft/signalr/dist/esm/DynamicImports.js","../../node_modules/.pnpm/@microsoft+signalr@8.0.0/node_modules/@microsoft/signalr/dist/esm/FetchHttpClient.js","../../node_modules/.pnpm/@microsoft+signalr@8.0.0/node_modules/@microsoft/signalr/dist/esm/XhrHttpClient.js","../../node_modules/.pnpm/@microsoft+signalr@8.0.0/node_modules/@microsoft/signalr/dist/esm/DefaultHttpClient.js","../../node_modules/.pnpm/@microsoft+signalr@8.0.0/node_modules/@microsoft/signalr/dist/esm/TextMessageFormat.js","../../node_modules/.pnpm/@microsoft+signalr@8.0.0/node_modules/@microsoft/signalr/dist/esm/HandshakeProtocol.js","../../node_modules/.pnpm/@microsoft+signalr@8.0.0/node_modules/@microsoft/signalr/dist/esm/IHubProtocol.js","../../node_modules/.pnpm/@microsoft+signalr@8.0.0/node_modules/@microsoft/signalr/dist/esm/Subject.js","../../node_modules/.pnpm/@microsoft+signalr@8.0.0/node_modules/@microsoft/signalr/dist/esm/MessageBuffer.js","../../node_modules/.pnpm/@microsoft+signalr@8.0.0/node_modules/@microsoft/signalr/dist/esm/HubConnection.js","../../node_modules/.pnpm/@microsoft+signalr@8.0.0/node_modules/@microsoft/signalr/dist/esm/DefaultReconnectPolicy.js","../../node_modules/.pnpm/@microsoft+signalr@8.0.0/node_modules/@microsoft/signalr/dist/esm/HeaderNames.js","../../node_modules/.pnpm/@microsoft+signalr@8.0.0/node_modules/@microsoft/signalr/dist/esm/AccessTokenHttpClient.js","../../node_modules/.pnpm/@microsoft+signalr@8.0.0/node_modules/@microsoft/signalr/dist/esm/ITransport.js","../../node_modules/.pnpm/@microsoft+signalr@8.0.0/node_modules/@microsoft/signalr/dist/esm/AbortController.js","../../node_modules/.pnpm/@microsoft+signalr@8.0.0/node_modules/@microsoft/signalr/dist/esm/LongPollingTransport.js","../../node_modules/.pnpm/@microsoft+signalr@8.0.0/node_modules/@microsoft/signalr/dist/esm/ServerSentEventsTransport.js","../../node_modules/.pnpm/@microsoft+signalr@8.0.0/node_modules/@microsoft/signalr/dist/esm/WebSocketTransport.js","../../node_modules/.pnpm/@microsoft+signalr@8.0.0/node_modules/@microsoft/signalr/dist/esm/HttpConnection.js","../../node_modules/.pnpm/@microsoft+signalr@8.0.0/node_modules/@microsoft/signalr/dist/esm/JsonHubProtocol.js","../../node_modules/.pnpm/@microsoft+signalr@8.0.0/node_modules/@microsoft/signalr/dist/esm/HubConnectionBuilder.js","../../node_modules/.pnpm/@sgme+logger@4.3.5/node_modules/@sgme/logger/lib/src/configuration/configuration.js","../../node_modules/.pnpm/@sgme+logger@4.3.5/node_modules/@sgme/logger/lib/src/output/server/post.js","../../node_modules/.pnpm/@sgme+logger@4.3.5/node_modules/@sgme/logger/lib/src/output/server/server-log-scheduler.js","../../node_modules/.pnpm/localforage@1.10.0/node_modules/localforage/dist/localforage.js","../../node_modules/.pnpm/@sgme+logger@4.3.5/node_modules/@sgme/logger/lib/src/output/server/storage/storage-strategy.js","../../node_modules/.pnpm/@sgme+logger@4.3.5/node_modules/@sgme/logger/lib/src/output/server/storage/browser-storage.js","../../node_modules/.pnpm/@sgme+logger@4.3.5/node_modules/@sgme/logger/lib/src/input/log-event.js","../../node_modules/.pnpm/@sgme+logger@4.3.5/node_modules/@sgme/logger/lib/src/output/create-console-logger.js","../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/rng.js","../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/regex.js","../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/validate.js","../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/stringify.js","../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/v1.js","../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/parse.js","../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/v35.js","../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/md5.js","../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/v3.js","../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/v4.js","../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/sha1.js","../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/v5.js","../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/nil.js","../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/version.js","../../node_modules/.pnpm/@sgme+logger@4.3.5/node_modules/@sgme/logger/lib/src/builder/log-builder.js","../../node_modules/.pnpm/@sgme+logger@4.3.5/node_modules/@sgme/logger/lib/src/index.js","../../src/core/logger/logger.ts","../../src/features/streaming/streamingSlice.ts","../../src/core/signalR/signalr.service.ts","../../src/features/vacation/vacationSlice.ts","../../src/features/errors/errorsSlice.ts","../../src/api/deals.api.ts","../../src/features/blotter/blotterSlice.ts","../../src/api/vacation.service.ts","../../src/api/vacation.api.ts","../../src/features/vacation/vacationSelectors.ts","../../src/components/shared/SessionRemainingTimeCountDown.tsx","../../src/components/homepage/Indicators.tsx","../../node_modules/.pnpm/scheduler@0.23.0/node_modules/scheduler/cjs/scheduler.production.min.js","../../node_modules/.pnpm/scheduler@0.23.0/node_modules/scheduler/index.js","../../node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.production.min.js","../../node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/index.js","../../node_modules/.pnpm/@remix-run+router@1.15.3/node_modules/@remix-run/router/dist/router.js","../../node_modules/.pnpm/react-router@6.22.3_react@18.2.0/node_modules/react-router/dist/index.js","../../node_modules/.pnpm/react-router-dom@6.22.3_react-dom@18.2.0_react@18.2.0/node_modules/react-router-dom/dist/index.js","../../src/components/homepage/SessionTable.tsx","../../src/components/shared/ClosedIcon.tsx","../../src/components/shared/Spinner.tsx","../../src/components/homepage/TableSessions.tsx","../../src/components/homepage/Sessions.tsx","../../src/pages/Homepage.tsx","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/utils/generic.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/columns/columnKeyCreator.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/utils/object.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/utils/function.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/modules/moduleNames.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/modules/moduleRegistry.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/context/context.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/eventService.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/misc/frameworkEventListenerService.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/entities/column.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/entities/providedColumnGroup.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/entities/defaultColumnTypes.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/utils/array.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/utils/event.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/context/beanStub.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/columns/columnFactory.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/entities/columnGroup.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/eventKeys.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/columns/groupInstanceIdCreator.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/columns/autoGroupColService.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/utils/string.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/utils/map.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/columns/columnModel.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/columns/columnUtils.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/columns/displayedGroupCreator.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/propertyKeys.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/components/componentUtil.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/components/agStackComponentsRegistry.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/utils/aria.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/utils/browser.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/utils/number.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/utils/date.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/utils/dom.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/utils/fuzzyMatch.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/utils/icon.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/constants/keyCode.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/utils/keyboard.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/utils/mouse.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/utils/rowNode.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/utils/set.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/utils/utils.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/utils/numberSequence.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/utils/promise.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/widgets/customTooltipFeature.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/rendering/cssClassManager.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/widgets/component.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/widgets/componentAnnotations.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/filter/floating/provided/readOnlyFloatingFilter.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/filter/provided/date/dateCompWrapper.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/filter/provided/optionsFactory.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/filter/filterLocaleText.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/widgets/managedFocusFeature.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/rendering/features/positionableFeature.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/filter/provided/providedFilter.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/widgets/agAbstractLabel.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/widgets/agAbstractField.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/widgets/agPickerField.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/widgets/agList.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/widgets/agSelect.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/widgets/agAbstractInputField.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/widgets/agCheckbox.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/widgets/agRadioButton.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/filter/provided/simpleFilter.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/filter/provided/scalarFilter.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/filter/provided/date/dateFilter.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/filter/floating/provided/simpleFloatingFilter.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/filter/provided/date/dateFloatingFilter.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/filter/provided/date/defaultDateComponent.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/widgets/agInputTextField.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/widgets/agInputNumberField.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/filter/provided/number/numberFilter.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/filter/provided/text/textFilter.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/filter/floating/provided/textInputFloatingFilter.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/filter/provided/number/numberFloatingFilter.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/filter/provided/text/textFloatingFilter.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/widgets/touchListener.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/headerRendering/cells/column/sortIndicatorComp.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/headerRendering/cells/column/headerComp.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/headerRendering/cells/columnGroup/headerGroupComp.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/widgets/popupComponent.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/rendering/cellEditors/largeTextCellEditor.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/rendering/cellEditors/selectCellEditor.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/rendering/cellEditors/simpleCellEditor.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/rendering/cellEditors/textCellEditor.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/rendering/cellRenderers/animateShowChangeCellRenderer.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/rendering/cellRenderers/animateSlideCellRenderer.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/entities/rowNode.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/rendering/checkboxSelectionComponent.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/constants/direction.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/dragAndDrop/dragAndDropService.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/rendering/row/rowDragComp.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/rendering/cellRenderers/groupCellRendererCtrl.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/rendering/cellRenderers/groupCellRenderer.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/rendering/cellRenderers/loadingCellRenderer.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/rendering/overlays/loadingOverlayComponent.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/rendering/overlays/noRowsOverlayComponent.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/rendering/tooltipComponent.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/rendering/cellEditors/numberCellEditor.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/rendering/cellEditors/dateCellEditor.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/rendering/cellEditors/dateStringCellEditor.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/rendering/cellRenderers/checkboxCellRenderer.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/rendering/cellEditors/checkboxCellEditor.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/widgets/agMenuItemRenderer.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/components/framework/userComponentRegistry.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/components/framework/componentTypes.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/filter/floating/floatingFilterMapper.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/components/framework/userComponentFactory.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/components/colDefUtil.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/interfaces/iExcelCreator.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/dragAndDrop/dragService.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/autoScrollService.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/dragAndDrop/virtualListDragFeature.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/interfaces/iRowNode.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/gridApi.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/filter/quickFilterService.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/filter/filterManager.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/headerRendering/cells/abstractCell/abstractHeaderCellComp.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/headerRendering/cells/floatingFilter/headerFilterCellComp.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/styling/layoutFeature.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/gridBodyComp/gridBodyScrollFeature.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/gridBodyComp/rowDragFeature.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/gridBodyComp/gridBodyCtrl.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/interfaces/IRangeService.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/rendering/cell/cellRangeFeature.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/rendering/cell/cellPositionFeature.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/rendering/cell/cellCustomStyleFeature.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/widgets/tooltipFeature.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/rendering/beans.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/rendering/cell/cellMouseListenerFeature.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/rendering/cell/cellKeyboardListenerFeature.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/rendering/dndSourceComp.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/headerRendering/cells/cssClassApplier.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/rendering/cell/cellCtrl.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/rendering/row/rowCtrl.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/gridBodyComp/rowContainer/rowContainerEventsFeature.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/gridBodyComp/viewportSizeFeature.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/gridBodyComp/rowContainer/setPinnedLeftWidthFeature.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/gridBodyComp/rowContainer/setPinnedRightWidthFeature.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/gridBodyComp/rowContainer/setHeightFeature.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/gridBodyComp/rowContainer/dragListenerFeature.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/gridBodyComp/centerWidthFeature.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/gridBodyComp/rowContainer/rowContainerCtrl.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/gridBodyComp/gridBodyComp.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/gridBodyComp/scrollVisibleService.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/gridBodyComp/mouseEventService.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/gridBodyComp/navigationService.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/rendering/cellEditors/popupEditorWrapper.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/rendering/cell/cellComp.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/rendering/row/rowComp.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/gridBodyComp/rowContainer/rowContainerComp.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/headerRendering/columnDrag/bodyDropPivotTarget.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/headerRendering/columnMoveHelper.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/headerRendering/columnDrag/moveColumnFeature.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/headerRendering/columnDrag/bodyDropTarget.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/headerRendering/cells/column/headerCellComp.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/headerRendering/cells/columnGroup/headerGroupCellComp.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/headerRendering/row/headerRowComp.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/headerRendering/cells/abstractCell/abstractHeaderCellCtrl.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/rendering/features/setLeftFeature.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/headerRendering/cells/hoverFeature.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/headerRendering/cells/floatingFilter/headerFilterCellCtrl.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/headerRendering/cells/column/resizeFeature.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/headerRendering/cells/column/selectAllFeature.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/headerRendering/cells/column/headerCellCtrl.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/headerRendering/cells/columnGroup/groupResizeFeature.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/headerRendering/cells/columnGroup/groupWidthFeature.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/headerRendering/cells/columnGroup/headerGroupCellCtrl.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/headerRendering/row/headerRowCtrl.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/headerRendering/rowContainer/headerRowContainerCtrl.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/headerRendering/rowContainer/headerRowContainerComp.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/headerRendering/common/headerNavigationService.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/headerRendering/gridHeaderCtrl.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/headerRendering/gridHeaderComp.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/headerRendering/common/horizontalResizeService.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/headerRendering/cells/column/standardMenu.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/widgets/tabGuardCtrl.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/widgets/tabGuardComp.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/layout/tabbedLayout.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/misc/resizeObserverService.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/misc/animationFrameService.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/interfaces/iClientSideRowModel.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/misc/expansionService.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/misc/menuService.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/rendering/autoWidthCalculator.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/rendering/features/stickyRowFeature.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/rendering/rowRenderer.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/rendering/valueFormatterService.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/pinnedRowModel/pinnedRowModel.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/interfaces/serverSideTransaction.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/utils/changedPath.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/rowNodeCache/rowNodeBlock.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/rowNodeCache/rowNodeBlockLoader.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/pagination/paginationProxy.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/styling/stylingService.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/widgets/agRichSelectRow.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/widgets/virtualList.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/widgets/agRichSelect.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/widgets/agSlider.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/widgets/agGroupComponent.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/widgets/agMenuList.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/widgets/agMenuPanel.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/widgets/agMenuItemComponent.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/widgets/agPanel.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/widgets/agDialog.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/widgets/popupService.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/widgets/agAutocompleteRow.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/widgets/agAutocompleteList.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/widgets/agAutocomplete.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/cellNavigationService.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/alignedGridsService.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/selectionService.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/columns/columnApi.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/valueService/valueService.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/valueService/expressionService.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/templateService.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/logger.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/gridComp/gridCtrl.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/gridComp/gridComp.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/sortController.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/focusService.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/rendering/columnHoverService.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/rendering/columnAnimationService.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/pagination/paginationAutoPageSizeService.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/valueService/valueCache.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/valueService/changeDetectionService.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/components/framework/agComponentUtils.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/components/framework/componentMetadataProvider.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/environment.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/rendering/rowContainerHeightService.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/rowNodes/selectableService.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/pagination/paginationComp.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/rendering/overlays/overlayWrapperComponent.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/entities/rowPositionUtils.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/entities/cellPositionUtils.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/undoRedo/undoRedoStack.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/undoRedo/undoRedoService.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/headerRendering/common/headerPosition.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/columns/columnDefFactory.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/rendering/row/rowCssClassCalculator.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/rowNodes/rowNodeSorter.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/ctrlsService.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/ctrlsFactory.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/gridBodyComp/abstractFakeScrollComp.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/gridBodyComp/fakeHScrollComp.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/gridBodyComp/pinnedWidthService.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/entities/rowNodeEventThrottle.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/validation/rules/colDefValidations.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/validation/rules/gridOptionsValidations.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/gridOptionsService.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/localeService.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/gridBodyComp/fakeVScrollComp.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/columns/dataTypeService.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/valueService/valueParserService.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/syncService.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/rendering/overlays/overlayService.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/misc/stateService.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/validation/validationService.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/misc/apiEventService.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/pagination/pageSizeSelector/pageSizeSelectorComp.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/rendering/ariaAnnouncementService.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/interfaces/iSparklineCellRendererParams.mjs","../../node_modules/.pnpm/@ag-grid-community+core@31.1.1/node_modules/@ag-grid-community/core/dist/esm/es6/main.mjs","../../node_modules/.pnpm/@ag-grid-enterprise+core@31.1.1/node_modules/@ag-grid-enterprise/core/dist/esm/es6/license/shared/md5.mjs","../../node_modules/.pnpm/@ag-grid-enterprise+core@31.1.1/node_modules/@ag-grid-enterprise/core/dist/esm/es6/license/shared/licenseManager.mjs","../../node_modules/.pnpm/@ag-grid-enterprise+core@31.1.1/node_modules/@ag-grid-enterprise/core/dist/esm/es6/license/gridLicenseManager.mjs","../../node_modules/.pnpm/@ag-grid-enterprise+core@31.1.1/node_modules/@ag-grid-enterprise/core/dist/esm/es6/license/watermark.mjs","../../node_modules/.pnpm/@ag-grid-enterprise+core@31.1.1/node_modules/@ag-grid-enterprise/core/dist/esm/es6/version.mjs","../../node_modules/.pnpm/@ag-grid-enterprise+core@31.1.1/node_modules/@ag-grid-enterprise/core/dist/esm/es6/agGridEnterpriseModule.mjs","../../node_modules/.pnpm/@sgme+aggrid@1.2.2_@ag-grid-enterprise+core@31.1.1/node_modules/@sgme/aggrid/lib/licence.js","../../node_modules/.pnpm/@sgme+aggrid@1.2.2_@ag-grid-enterprise+core@31.1.1/node_modules/@sgme/aggrid/lib/index.js","../../node_modules/.pnpm/@sgme+ui@0.5.9_react-dom@18.2.0_react@18.2.0/node_modules/@sgme/ui/dist/components/ServiceLoader/ServiceLoader.js","../../node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/client.js","../../src/pages/ErrorPage.tsx","../../node_modules/.pnpm/@sgwt+sgwt-widgets-react@1.3.0_@sgwt+connect-core@0.18.0_react-dom@18.2.0_react@18.2.0/node_modules/@sgwt/sgwt-widgets-react/dist/context/SgwtWidgetContext.js","../../node_modules/.pnpm/@sgwt+sgwt-widgets-react@1.3.0_@sgwt+connect-core@0.18.0_react-dom@18.2.0_react@18.2.0/node_modules/@sgwt/sgwt-widgets-react/dist/utils/utils.js","../../node_modules/.pnpm/@sgwt+sgwt-widgets-react@1.3.0_@sgwt+connect-core@0.18.0_react-dom@18.2.0_react@18.2.0/node_modules/@sgwt/sgwt-widgets-react/dist/utils/use-load-widget.js","../../node_modules/.pnpm/@sgwt+sgwt-widgets-react@1.3.0_@sgwt+connect-core@0.18.0_react-dom@18.2.0_react@18.2.0/node_modules/@sgwt/sgwt-widgets-react/dist/sgwt-help-center/SgwtHelpCenter.js","../../node_modules/.pnpm/@sgwt+sgwt-widgets-react@1.3.0_@sgwt+connect-core@0.18.0_react-dom@18.2.0_react@18.2.0/node_modules/@sgwt/sgwt-widgets-react/dist/sgwt-web-analytics/SgwtWebAnalytics.js","../../node_modules/.pnpm/@sgwt+sgwt-widgets-react@1.3.0_@sgwt+connect-core@0.18.0_react-dom@18.2.0_react@18.2.0/node_modules/@sgwt/sgwt-widgets-react/dist/hook/useSgwtWidgets.js","../../src/context/ErrorBoundary.tsx","../../src/core/sgwt/AccountCenter.tsx","../../src/core/bootstrap/Switcher.tsx","../../src/layout/Header.tsx","../../src/core/sgwt/HelpCenter.tsx","../../src/core/sgwt/MiniFooter.tsx","../../src/layout/Footer.tsx","../../src/hooks/notificationServices.ts","../../src/hooks/useNotifications.ts","../../src/layout/App.tsx","../../src/components/booking/StatusBadge.tsx","../../src/components/booking/PanelItem.tsx","../../src/components/booking/CollapsableButton.tsx","../../src/components/booking/Panel.tsx","../../src/layout/Booking.tsx","../../src/layout/ErrorLayout.tsx","../../node_modules/.pnpm/outvariant@1.4.2/node_modules/outvariant/lib/index.mjs","../../node_modules/.pnpm/msw@2.2.7_typescript@5.4.2/node_modules/msw/lib/core/utils/internal/devUtils.mjs","../../node_modules/.pnpm/msw@2.2.7_typescript@5.4.2/node_modules/msw/lib/core/utils/internal/getCallFrame.mjs","../../node_modules/.pnpm/msw@2.2.7_typescript@5.4.2/node_modules/msw/lib/core/utils/internal/isIterable.mjs","../../node_modules/.pnpm/msw@2.2.7_typescript@5.4.2/node_modules/msw/lib/core/handlers/RequestHandler.mjs","../../node_modules/.pnpm/@open-draft+until@2.1.0/node_modules/@open-draft/until/lib/index.mjs","../../node_modules/.pnpm/msw@2.2.7_typescript@5.4.2/node_modules/msw/lib/core/utils/executeHandlers.mjs","../../node_modules/.pnpm/msw@2.2.7_typescript@5.4.2/node_modules/msw/lib/core/utils/request/toPublicUrl.mjs","../../node_modules/.pnpm/msw@2.2.7_typescript@5.4.2/node_modules/msw/lib/core/utils/request/onUnhandledRequest.mjs","../../node_modules/.pnpm/@mswjs+cookies@1.1.0/node_modules/@mswjs/cookies/lib/index.mjs","../../node_modules/.pnpm/msw@2.2.7_typescript@5.4.2/node_modules/msw/lib/core/utils/request/readResponseCookies.mjs","../../node_modules/.pnpm/msw@2.2.7_typescript@5.4.2/node_modules/msw/lib/core/utils/handleRequest.mjs","../../node_modules/.pnpm/msw@2.2.7_typescript@5.4.2/node_modules/msw/lib/core/utils/toResponseInit.mjs","../../node_modules/.pnpm/msw@2.2.7_typescript@5.4.2/node_modules/msw/lib/core/utils/internal/isObject.mjs","../../node_modules/.pnpm/msw@2.2.7_typescript@5.4.2/node_modules/msw/lib/core/utils/internal/mergeRight.mjs","../../node_modules/.pnpm/strict-event-emitter@0.5.1/node_modules/strict-event-emitter/lib/index.mjs","../../node_modules/.pnpm/msw@2.2.7_typescript@5.4.2/node_modules/msw/lib/core/utils/internal/pipeEvents.mjs","../../node_modules/.pnpm/msw@2.2.7_typescript@5.4.2/node_modules/msw/lib/core/utils/internal/toReadonlyArray.mjs","../../node_modules/.pnpm/msw@2.2.7_typescript@5.4.2/node_modules/msw/lib/core/utils/internal/Disposable.mjs","../../node_modules/.pnpm/msw@2.2.7_typescript@5.4.2/node_modules/msw/lib/core/SetupApi.mjs","../../node_modules/.pnpm/msw@2.2.7_typescript@5.4.2/node_modules/msw/lib/browser/index.mjs","../../node_modules/.pnpm/msw@2.2.7_typescript@5.4.2/node_modules/msw/lib/core/utils/internal/checkGlobals.mjs","../../node_modules/.pnpm/msw@2.2.7_typescript@5.4.2/node_modules/msw/lib/core/utils/internal/isStringEqual.mjs","../../node_modules/.pnpm/msw@2.2.7_typescript@5.4.2/node_modules/msw/lib/core/utils/logging/getStatusCodeColor.mjs","../../node_modules/.pnpm/msw@2.2.7_typescript@5.4.2/node_modules/msw/lib/core/utils/logging/getTimestamp.mjs","../../node_modules/.pnpm/msw@2.2.7_typescript@5.4.2/node_modules/msw/lib/core/utils/logging/serializeRequest.mjs","../../node_modules/.pnpm/@bundled-es-modules+statuses@1.0.1/node_modules/@bundled-es-modules/statuses/index-esm.js","../../node_modules/.pnpm/msw@2.2.7_typescript@5.4.2/node_modules/msw/lib/core/utils/logging/serializeResponse.mjs","../../node_modules/.pnpm/path-to-regexp@6.2.1/node_modules/path-to-regexp/dist.es2015/index.js","../../node_modules/.pnpm/@mswjs+interceptors@0.25.16/node_modules/@mswjs/interceptors/lib/browser/chunk-UJZOJSMP.mjs","../../node_modules/.pnpm/is-node-process@1.2.0/node_modules/is-node-process/lib/index.mjs","../../node_modules/.pnpm/@mswjs+interceptors@0.25.16/node_modules/@mswjs/interceptors/lib/browser/index.mjs","../../node_modules/.pnpm/msw@2.2.7_typescript@5.4.2/node_modules/msw/lib/core/utils/url/cleanUrl.mjs","../../node_modules/.pnpm/msw@2.2.7_typescript@5.4.2/node_modules/msw/lib/core/utils/url/isAbsoluteUrl.mjs","../../node_modules/.pnpm/msw@2.2.7_typescript@5.4.2/node_modules/msw/lib/core/utils/url/getAbsoluteUrl.mjs","../../node_modules/.pnpm/msw@2.2.7_typescript@5.4.2/node_modules/msw/lib/core/utils/matching/normalizePath.mjs","../../node_modules/.pnpm/msw@2.2.7_typescript@5.4.2/node_modules/msw/lib/core/utils/matching/matchRequestUrl.mjs","../../node_modules/.pnpm/@bundled-es-modules+cookie@2.0.0/node_modules/@bundled-es-modules/cookie/index-esm.js","../../node_modules/.pnpm/msw@2.2.7_typescript@5.4.2/node_modules/msw/lib/core/utils/request/getRequestCookies.mjs","../../node_modules/.pnpm/msw@2.2.7_typescript@5.4.2/node_modules/msw/lib/core/handlers/HttpHandler.mjs","../../node_modules/.pnpm/msw@2.2.7_typescript@5.4.2/node_modules/msw/lib/core/http.mjs","../../node_modules/.pnpm/msw@2.2.7_typescript@5.4.2/node_modules/msw/lib/core/delay.mjs","../../node_modules/.pnpm/msw@2.2.7_typescript@5.4.2/node_modules/msw/lib/core/index.mjs","../../src/mocks/handlers.ts","../../src/mocks/browser.ts","../../src/features/vacation/vacationModel.ts","../../node_modules/.pnpm/classnames@2.5.1/node_modules/classnames/index.js","../../node_modules/.pnpm/@babel+runtime@7.23.9/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../node_modules/.pnpm/@babel+runtime@7.23.9/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../../node_modules/.pnpm/@babel+runtime@7.23.9/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../../node_modules/.pnpm/react-bootstrap@2.10.2_@types+react@18.2.66_react-dom@18.2.0_react@18.2.0/node_modules/react-bootstrap/esm/ThemeProvider.js","../../node_modules/.pnpm/dom-helpers@5.2.1/node_modules/dom-helpers/esm/ownerDocument.js","../../node_modules/.pnpm/dom-helpers@5.2.1/node_modules/dom-helpers/esm/ownerWindow.js","../../node_modules/.pnpm/dom-helpers@5.2.1/node_modules/dom-helpers/esm/getComputedStyle.js","../../node_modules/.pnpm/dom-helpers@5.2.1/node_modules/dom-helpers/esm/hyphenate.js","../../node_modules/.pnpm/dom-helpers@5.2.1/node_modules/dom-helpers/esm/hyphenateStyle.js","../../node_modules/.pnpm/dom-helpers@5.2.1/node_modules/dom-helpers/esm/isTransform.js","../../node_modules/.pnpm/dom-helpers@5.2.1/node_modules/dom-helpers/esm/css.js","../../node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/lib/ReactPropTypesSecret.js","../../node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/factoryWithThrowingShims.js","../../node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/index.js","../../node_modules/.pnpm/react-transition-group@4.4.5_react-dom@18.2.0_react@18.2.0/node_modules/react-transition-group/esm/config.js","../../node_modules/.pnpm/react-transition-group@4.4.5_react-dom@18.2.0_react@18.2.0/node_modules/react-transition-group/esm/TransitionGroupContext.js","../../node_modules/.pnpm/react-transition-group@4.4.5_react-dom@18.2.0_react@18.2.0/node_modules/react-transition-group/esm/utils/reflow.js","../../node_modules/.pnpm/react-transition-group@4.4.5_react-dom@18.2.0_react@18.2.0/node_modules/react-transition-group/esm/Transition.js","../../node_modules/.pnpm/dom-helpers@5.2.1/node_modules/dom-helpers/esm/canUseDOM.js","../../node_modules/.pnpm/dom-helpers@5.2.1/node_modules/dom-helpers/esm/addEventListener.js","../../node_modules/.pnpm/dom-helpers@5.2.1/node_modules/dom-helpers/esm/removeEventListener.js","../../node_modules/.pnpm/dom-helpers@5.2.1/node_modules/dom-helpers/esm/listen.js","../../node_modules/.pnpm/dom-helpers@5.2.1/node_modules/dom-helpers/esm/triggerEvent.js","../../node_modules/.pnpm/dom-helpers@5.2.1/node_modules/dom-helpers/esm/transitionEnd.js","../../node_modules/.pnpm/react-bootstrap@2.10.2_@types+react@18.2.66_react-dom@18.2.0_react@18.2.0/node_modules/react-bootstrap/esm/transitionEndListener.js","../../node_modules/.pnpm/react-bootstrap@2.10.2_@types+react@18.2.66_react-dom@18.2.0_react@18.2.0/node_modules/react-bootstrap/esm/triggerBrowserReflow.js","../../node_modules/.pnpm/@restart+hooks@0.4.15_react@18.2.0/node_modules/@restart/hooks/esm/useMergedRefs.js","../../node_modules/.pnpm/react-bootstrap@2.10.2_@types+react@18.2.66_react-dom@18.2.0_react@18.2.0/node_modules/react-bootstrap/esm/safeFindDOMNode.js","../../node_modules/.pnpm/react-bootstrap@2.10.2_@types+react@18.2.66_react-dom@18.2.0_react@18.2.0/node_modules/react-bootstrap/esm/TransitionWrapper.js","../../node_modules/.pnpm/@restart+hooks@0.4.15_react@18.2.0/node_modules/@restart/hooks/esm/useCommittedRef.js","../../node_modules/.pnpm/@restart+hooks@0.4.15_react@18.2.0/node_modules/@restart/hooks/esm/useEventCallback.js","../../node_modules/.pnpm/react-bootstrap@2.10.2_@types+react@18.2.66_react-dom@18.2.0_react@18.2.0/node_modules/react-bootstrap/esm/divWithClassName.js","../../node_modules/.pnpm/@restart+hooks@0.4.15_react@18.2.0/node_modules/@restart/hooks/esm/useCallbackRef.js","../../node_modules/.pnpm/@restart+hooks@0.4.15_react@18.2.0/node_modules/@restart/hooks/esm/useMounted.js","../../node_modules/.pnpm/@restart+hooks@0.4.15_react@18.2.0/node_modules/@restart/hooks/esm/usePrevious.js","../../node_modules/.pnpm/@restart+hooks@0.4.15_react@18.2.0/node_modules/@restart/hooks/esm/useIsomorphicEffect.js","../../node_modules/.pnpm/react-bootstrap@2.10.2_@types+react@18.2.66_react-dom@18.2.0_react@18.2.0/node_modules/react-bootstrap/esm/Fade.js","../../node_modules/.pnpm/react-bootstrap@2.10.2_@types+react@18.2.66_react-dom@18.2.0_react@18.2.0/node_modules/react-bootstrap/esm/CloseButton.js","../../node_modules/.pnpm/@restart+hooks@0.4.15_react@18.2.0/node_modules/@restart/hooks/esm/useUpdatedRef.js","../../node_modules/.pnpm/@restart+hooks@0.4.15_react@18.2.0/node_modules/@restart/hooks/esm/useWillUnmount.js","../../node_modules/.pnpm/dom-helpers@5.2.1/node_modules/dom-helpers/esm/querySelectorAll.js","../../node_modules/.pnpm/dequal@2.0.3/node_modules/dequal/dist/index.mjs","../../node_modules/.pnpm/@restart+hooks@0.4.15_react@18.2.0/node_modules/@restart/hooks/esm/useSafeState.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/enums.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/math.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/userAgent.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/contains.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/within.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/arrow.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getVariation.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/computeOffsets.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/detectOverflow.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/flip.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/hide.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/offset.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getAltAxis.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/orderModifiers.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/debounce.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/mergeByName.js","../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/createPopper.js","../../node_modules/.pnpm/@restart+ui@1.6.8_react-dom@18.2.0_react@18.2.0/node_modules/@restart/ui/esm/popper.js","../../node_modules/.pnpm/@restart+ui@1.6.8_react-dom@18.2.0_react@18.2.0/node_modules/@restart/ui/esm/usePopper.js","../../node_modules/.pnpm/dom-helpers@5.2.1/node_modules/dom-helpers/esm/contains.js","../../node_modules/.pnpm/warning@4.0.3/node_modules/warning/warning.js","../../node_modules/.pnpm/@restart+ui@1.6.8_react-dom@18.2.0_react@18.2.0/node_modules/@restart/ui/esm/useClickOutside.js","../../node_modules/.pnpm/@restart+ui@1.6.8_react-dom@18.2.0_react@18.2.0/node_modules/@restart/ui/esm/mergeOptionsWithPopperConfig.js","../../node_modules/.pnpm/@restart+ui@1.6.8_react-dom@18.2.0_react@18.2.0/node_modules/@restart/ui/esm/DataKey.js","../../node_modules/.pnpm/@restart+ui@1.6.8_react-dom@18.2.0_react@18.2.0/node_modules/@restart/ui/esm/useWindow.js","../../node_modules/.pnpm/dom-helpers@5.2.1/node_modules/dom-helpers/esm/scrollbarSize.js","../../node_modules/.pnpm/dom-helpers@5.2.1/node_modules/dom-helpers/esm/activeElement.js","../../node_modules/.pnpm/@restart+ui@1.6.8_react-dom@18.2.0_react@18.2.0/node_modules/@restart/ui/esm/getScrollbarWidth.js","../../node_modules/.pnpm/@restart+ui@1.6.8_react-dom@18.2.0_react@18.2.0/node_modules/@restart/ui/esm/ModalManager.js","../../node_modules/.pnpm/@restart+ui@1.6.8_react-dom@18.2.0_react@18.2.0/node_modules/@restart/ui/esm/useWaitForDOMRef.js","../../node_modules/.pnpm/@restart+ui@1.6.8_react-dom@18.2.0_react@18.2.0/node_modules/@restart/ui/esm/NoopTransition.js","../../node_modules/.pnpm/@restart+ui@1.6.8_react-dom@18.2.0_react@18.2.0/node_modules/@restart/ui/esm/useRTGTransitionProps.js","../../node_modules/.pnpm/@restart+ui@1.6.8_react-dom@18.2.0_react@18.2.0/node_modules/@restart/ui/esm/RTGTransition.js","../../node_modules/.pnpm/@restart+ui@1.6.8_react-dom@18.2.0_react@18.2.0/node_modules/@restart/ui/esm/ImperativeTransition.js","../../node_modules/.pnpm/@restart+ui@1.6.8_react-dom@18.2.0_react@18.2.0/node_modules/@restart/ui/esm/utils.js","../../node_modules/.pnpm/@restart+ui@1.6.8_react-dom@18.2.0_react@18.2.0/node_modules/@restart/ui/esm/Modal.js","../../node_modules/.pnpm/dom-helpers@5.2.1/node_modules/dom-helpers/esm/hasClass.js","../../node_modules/.pnpm/dom-helpers@5.2.1/node_modules/dom-helpers/esm/addClass.js","../../node_modules/.pnpm/dom-helpers@5.2.1/node_modules/dom-helpers/esm/removeClass.js","../../node_modules/.pnpm/react-bootstrap@2.10.2_@types+react@18.2.66_react-dom@18.2.0_react@18.2.0/node_modules/react-bootstrap/esm/BootstrapModalManager.js","../../node_modules/.pnpm/react-bootstrap@2.10.2_@types+react@18.2.66_react-dom@18.2.0_react@18.2.0/node_modules/react-bootstrap/esm/ModalBody.js","../../node_modules/.pnpm/react-bootstrap@2.10.2_@types+react@18.2.66_react-dom@18.2.0_react@18.2.0/node_modules/react-bootstrap/esm/ModalContext.js","../../node_modules/.pnpm/react-bootstrap@2.10.2_@types+react@18.2.66_react-dom@18.2.0_react@18.2.0/node_modules/react-bootstrap/esm/ModalDialog.js","../../node_modules/.pnpm/react-bootstrap@2.10.2_@types+react@18.2.66_react-dom@18.2.0_react@18.2.0/node_modules/react-bootstrap/esm/ModalFooter.js","../../node_modules/.pnpm/react-bootstrap@2.10.2_@types+react@18.2.66_react-dom@18.2.0_react@18.2.0/node_modules/react-bootstrap/esm/AbstractModalHeader.js","../../node_modules/.pnpm/react-bootstrap@2.10.2_@types+react@18.2.66_react-dom@18.2.0_react@18.2.0/node_modules/react-bootstrap/esm/ModalHeader.js","../../node_modules/.pnpm/react-bootstrap@2.10.2_@types+react@18.2.66_react-dom@18.2.0_react@18.2.0/node_modules/react-bootstrap/esm/ModalTitle.js","../../node_modules/.pnpm/react-bootstrap@2.10.2_@types+react@18.2.66_react-dom@18.2.0_react@18.2.0/node_modules/react-bootstrap/esm/Modal.js","../../node_modules/.pnpm/@restart+ui@1.6.8_react-dom@18.2.0_react@18.2.0/node_modules/@restart/ui/esm/useRootClose.js","../../node_modules/.pnpm/@restart+ui@1.6.8_react-dom@18.2.0_react@18.2.0/node_modules/@restart/ui/esm/Overlay.js","../../node_modules/.pnpm/react-bootstrap@2.10.2_@types+react@18.2.66_react-dom@18.2.0_react@18.2.0/node_modules/react-bootstrap/esm/PopoverHeader.js","../../node_modules/.pnpm/react-bootstrap@2.10.2_@types+react@18.2.66_react-dom@18.2.0_react@18.2.0/node_modules/react-bootstrap/esm/PopoverBody.js","../../node_modules/.pnpm/react-bootstrap@2.10.2_@types+react@18.2.66_react-dom@18.2.0_react@18.2.0/node_modules/react-bootstrap/esm/helpers.js","../../node_modules/.pnpm/react-bootstrap@2.10.2_@types+react@18.2.66_react-dom@18.2.0_react@18.2.0/node_modules/react-bootstrap/esm/getInitialPopperStyles.js","../../node_modules/.pnpm/react-bootstrap@2.10.2_@types+react@18.2.66_react-dom@18.2.0_react@18.2.0/node_modules/react-bootstrap/esm/Popover.js","../../node_modules/.pnpm/react-bootstrap@2.10.2_@types+react@18.2.66_react-dom@18.2.0_react@18.2.0/node_modules/react-bootstrap/esm/Tooltip.js","../../node_modules/.pnpm/react-bootstrap@2.10.2_@types+react@18.2.66_react-dom@18.2.0_react@18.2.0/node_modules/react-bootstrap/esm/useOverlayOffset.js","../../node_modules/.pnpm/react-bootstrap@2.10.2_@types+react@18.2.66_react-dom@18.2.0_react@18.2.0/node_modules/react-bootstrap/esm/Overlay.js","../../src/components/booking/FormRates/PopoverGlobalUpdate.tsx","../../src/components/booking/FormRates.tsx","../../src/components/booking/Blotter/RatesColumnsHeader.tsx","../../src/components/booking/NumberInput.tsx","../../src/components/booking/CellRendererSelector/rateCellRendererSelector.ts","../../src/components/booking/DealsActions/SaveButton.tsx","../../src/components/booking/DealsActions/RefreshButton.tsx","../../src/components/booking/DealsActions/RepriceButton.tsx","../../src/features/user/userSlice.ts","../../src/components/booking/DealsActions/SendButton.tsx","../../src/components/booking/DealsActions/DeleteButton.tsx","../../src/components/booking/DealsActions/DiscardButton.tsx","../../src/components/booking/DealsActions/ActionButtons.tsx","../../src/components/booking/SmallStatusBadge.tsx","../../src/components/booking/Blotter/columnDefinition.tsx","../../src/hooks/debounce.ts","../../node_modules/.pnpm/ag-grid-community@31.1.1/node_modules/ag-grid-community/dist/ag-grid-community.auto.esm.js","../../node_modules/.pnpm/ag-grid-react@31.1.1_react-dom@18.2.0_react@18.2.0/node_modules/ag-grid-react/lib/shared/customComp/customContext.js","../../node_modules/.pnpm/ag-grid-react@31.1.1_react-dom@18.2.0_react@18.2.0/node_modules/ag-grid-react/lib/reactUi/customComp/customWrapperComp.js","../../node_modules/.pnpm/ag-grid-react@31.1.1_react-dom@18.2.0_react@18.2.0/node_modules/ag-grid-react/lib/shared/keyGenerator.js","../../node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.min.js","../../node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js","../../node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/server.browser.js","../../node_modules/.pnpm/ag-grid-react@31.1.1_react-dom@18.2.0_react@18.2.0/node_modules/ag-grid-react/lib/shared/reactComponent.js","../../node_modules/.pnpm/ag-grid-react@31.1.1_react-dom@18.2.0_react@18.2.0/node_modules/ag-grid-react/lib/shared/customComp/customComponentWrapper.js","../../node_modules/.pnpm/ag-grid-react@31.1.1_react-dom@18.2.0_react@18.2.0/node_modules/ag-grid-react/lib/shared/customComp/dateComponentWrapper.js","../../node_modules/.pnpm/ag-grid-react@31.1.1_react-dom@18.2.0_react@18.2.0/node_modules/ag-grid-react/lib/shared/customComp/filterComponentWrapper.js","../../node_modules/.pnpm/ag-grid-react@31.1.1_react-dom@18.2.0_react@18.2.0/node_modules/ag-grid-react/lib/shared/customComp/floatingFilterComponentProxy.js","../../node_modules/.pnpm/ag-grid-react@31.1.1_react-dom@18.2.0_react@18.2.0/node_modules/ag-grid-react/lib/shared/customComp/floatingFilterComponentWrapper.js","../../node_modules/.pnpm/ag-grid-react@31.1.1_react-dom@18.2.0_react@18.2.0/node_modules/ag-grid-react/lib/shared/customComp/loadingOverlayComponentWrapper.js","../../node_modules/.pnpm/ag-grid-react@31.1.1_react-dom@18.2.0_react@18.2.0/node_modules/ag-grid-react/lib/shared/customComp/menuItemComponentWrapper.js","../../node_modules/.pnpm/ag-grid-react@31.1.1_react-dom@18.2.0_react@18.2.0/node_modules/ag-grid-react/lib/shared/customComp/noRowsOverlayComponentWrapper.js","../../node_modules/.pnpm/ag-grid-react@31.1.1_react-dom@18.2.0_react@18.2.0/node_modules/ag-grid-react/lib/shared/customComp/statusPanelComponentWrapper.js","../../node_modules/.pnpm/ag-grid-react@31.1.1_react-dom@18.2.0_react@18.2.0/node_modules/ag-grid-react/lib/shared/customComp/toolPanelComponentWrapper.js","../../node_modules/.pnpm/ag-grid-react@31.1.1_react-dom@18.2.0_react@18.2.0/node_modules/ag-grid-react/lib/shared/portalManager.js","../../node_modules/.pnpm/ag-grid-react@31.1.1_react-dom@18.2.0_react@18.2.0/node_modules/ag-grid-react/lib/reactUi/beansContext.js","../../node_modules/.pnpm/ag-grid-react@31.1.1_react-dom@18.2.0_react@18.2.0/node_modules/ag-grid-react/lib/reactUi/utils.js","../../node_modules/.pnpm/ag-grid-react@31.1.1_react-dom@18.2.0_react@18.2.0/node_modules/ag-grid-react/lib/reactUi/jsComp.js","../../node_modules/.pnpm/ag-grid-react@31.1.1_react-dom@18.2.0_react@18.2.0/node_modules/ag-grid-react/lib/reactUi/cellRenderer/groupCellRenderer.js","../../node_modules/.pnpm/ag-grid-react@31.1.1_react-dom@18.2.0_react@18.2.0/node_modules/ag-grid-react/lib/reactUi/header/headerCellComp.js","../../node_modules/.pnpm/ag-grid-react@31.1.1_react-dom@18.2.0_react@18.2.0/node_modules/ag-grid-react/lib/reactUi/header/headerGroupCellComp.js","../../node_modules/.pnpm/ag-grid-react@31.1.1_react-dom@18.2.0_react@18.2.0/node_modules/ag-grid-react/lib/shared/customComp/util.js","../../node_modules/.pnpm/ag-grid-react@31.1.1_react-dom@18.2.0_react@18.2.0/node_modules/ag-grid-react/lib/reactUi/header/headerFilterCellComp.js","../../node_modules/.pnpm/ag-grid-react@31.1.1_react-dom@18.2.0_react@18.2.0/node_modules/ag-grid-react/lib/reactUi/header/headerRowComp.js","../../node_modules/.pnpm/ag-grid-react@31.1.1_react-dom@18.2.0_react@18.2.0/node_modules/ag-grid-react/lib/reactUi/header/headerRowContainerComp.js","../../node_modules/.pnpm/ag-grid-react@31.1.1_react-dom@18.2.0_react@18.2.0/node_modules/ag-grid-react/lib/reactUi/header/gridHeaderComp.js","../../node_modules/.pnpm/ag-grid-react@31.1.1_react-dom@18.2.0_react@18.2.0/node_modules/ag-grid-react/lib/reactUi/reactComment.js","../../node_modules/.pnpm/ag-grid-react@31.1.1_react-dom@18.2.0_react@18.2.0/node_modules/ag-grid-react/lib/reactUi/useEffectOnce.js","../../node_modules/.pnpm/ag-grid-react@31.1.1_react-dom@18.2.0_react@18.2.0/node_modules/ag-grid-react/lib/reactUi/cells/popupEditorComp.js","../../node_modules/.pnpm/ag-grid-react@31.1.1_react-dom@18.2.0_react@18.2.0/node_modules/ag-grid-react/lib/reactUi/cells/showJsRenderer.js","../../node_modules/.pnpm/ag-grid-react@31.1.1_react-dom@18.2.0_react@18.2.0/node_modules/ag-grid-react/lib/shared/customComp/cellEditorComponentProxy.js","../../node_modules/.pnpm/ag-grid-react@31.1.1_react-dom@18.2.0_react@18.2.0/node_modules/ag-grid-react/lib/reactUi/cells/cellComp.js","../../node_modules/.pnpm/ag-grid-react@31.1.1_react-dom@18.2.0_react@18.2.0/node_modules/ag-grid-react/lib/reactUi/rows/rowComp.js","../../node_modules/.pnpm/ag-grid-react@31.1.1_react-dom@18.2.0_react@18.2.0/node_modules/ag-grid-react/lib/reactUi/rows/rowContainerComp.js","../../node_modules/.pnpm/ag-grid-react@31.1.1_react-dom@18.2.0_react@18.2.0/node_modules/ag-grid-react/lib/reactUi/gridBodyComp.js","../../node_modules/.pnpm/ag-grid-react@31.1.1_react-dom@18.2.0_react@18.2.0/node_modules/ag-grid-react/lib/reactUi/tabGuardComp.js","../../node_modules/.pnpm/ag-grid-react@31.1.1_react-dom@18.2.0_react@18.2.0/node_modules/ag-grid-react/lib/reactUi/gridComp.js","../../node_modules/.pnpm/ag-grid-react@31.1.1_react-dom@18.2.0_react@18.2.0/node_modules/ag-grid-react/lib/reactUi/agGridReactUi.js","../../node_modules/.pnpm/ag-grid-react@31.1.1_react-dom@18.2.0_react@18.2.0/node_modules/ag-grid-react/lib/agGridReact.js","../../node_modules/.pnpm/ag-grid-react@31.1.1_react-dom@18.2.0_react@18.2.0/node_modules/ag-grid-react/lib/shared/interfaces.js","../../node_modules/.pnpm/ag-grid-react@31.1.1_react-dom@18.2.0_react@18.2.0/node_modules/ag-grid-react/lib/shared/customComp/interfaces.js","../../node_modules/.pnpm/ag-grid-react@31.1.1_react-dom@18.2.0_react@18.2.0/node_modules/ag-grid-react/lib/main.js","../../src/components/booking/Blotter.tsx","../../src/components/booking/TotalAmount.tsx","../../src/components/booking/BookingKpi.tsx","../../src/components/booking/DealsBulkActionFooter/OpenDealsSelectionButton.tsx","../../src/components/booking/DealsBulkActionFooter/SavedDealsSelectionButton.tsx","../../src/components/booking/DealsBulkActionFooter/SentDealsSelectionButton.tsx","../../src/components/booking/DealsBulkActionFooter/DefaultBulkActionsFooter.tsx","../../src/components/booking/DealsBulkActionFooter/DeselectButton.tsx","../../src/components/booking/DealsBulkActionFooter/ApplySpotRateButton.tsx","../../src/components/booking/DealsBulkActionFooter/OpenDealsBulkActionsFooter.tsx","../../src/components/booking/DealsBulkActionFooter/SavedDealsBulkActionsFooter.tsx","../../src/components/booking/DealsBulkActionFooter/SentDealsBulkActionsFooter.tsx","../../src/components/booking/DealsBulkActionFooter/DealsBulkActionsFooter.tsx","../../src/pages/SessionPage.tsx","../../src/api/rtkQueryErrorHandler.ts","../../src/state/store.ts","../../src/components/shared/ErrorGrowl.tsx","../../node_modules/.pnpm/@sg-bootstrap+components@5.22.0_@sg-bootstrap+core@5.22.0/node_modules/@sg-bootstrap/components/dist/esm-es5/index-413a24c6.js","../../node_modules/.pnpm/@sg-bootstrap+components@5.22.0_@sg-bootstrap+core@5.22.0/node_modules/@sg-bootstrap/components/dist/esm-es5/loader.js","../../node_modules/.pnpm/@sg-bootstrap+components@5.22.0_@sg-bootstrap+core@5.22.0/node_modules/@sg-bootstrap/components/loader/index.js","../../src/main.tsx"],"sourcesContent":["export const themeKey = 'Theme';\nexport type Theme = 'DARK' | 'LIGHT';\n\nconst sgbsVersion = import.meta.env.VITE_SGBS_VERSION;\nconst cdnUrl = `https://sgwt-cdn-sgbs.sgmarkets.com/sg-bootstrap/${sgbsVersion}`;\n\nfunction variableSgbsUrls(theme: string | null) {\n const variation = theme === 'DARK' ? 'dark' : 'standard';\n return {\n sgbs: `${cdnUrl}/core/css/sg-bootstrap-${variation}.min.css`,\n icons: `${cdnUrl}/icons/index.min.css`,\n aggrid: `${cdnUrl}/ag-grid-theme/29-${variation}.min.css`,\n };\n}\n\nexport function initSgBootstrap(theme?: Theme) {\n updateThemeUrls(theme ?? getTheme());\n appendUniqueLinkToDocument('icons', `${cdnUrl}/icons/index.min.css`);\n}\n\nfunction updateThemeUrls(theme: Theme) {\n Object.entries(variableSgbsUrls(theme)).forEach(([id, url]) => {\n appendUniqueLinkToDocument(id, url);\n });\n}\n\nexport function setTheme(theme: Theme) {\n updateThemeUrls(theme);\n saveToLocalStorage(theme);\n}\n\nexport function getTheme(): Theme {\n const savedTheme = getFromLocalStorage();\n if (savedTheme !== null) {\n return savedTheme?.toUpperCase() === 'DARK' ? 'DARK' : 'LIGHT';\n }\n const prefersDark = window.matchMedia?.('(prefers-color-scheme: dark)').matches;\n return prefersDark ? 'DARK' : 'LIGHT';\n}\n\nfunction saveToLocalStorage(theme: Theme) {\n if (typeof localStorage === 'undefined') {\n return;\n }\n try {\n localStorage.setItem(themeKey, theme);\n } catch {\n console.error('Unable to store theme, localStorage might be full');\n }\n}\n\nfunction getFromLocalStorage(): string | null {\n if (typeof localStorage === 'undefined') {\n return null;\n }\n return localStorage.getItem(themeKey);\n}\n\nfunction appendUniqueLinkToDocument(id: string, url: string) {\n const linkElement = document.querySelector(`link[id=\"${id}\"]`);\n const newLinkElement = document.createElement('link');\n newLinkElement.rel = 'stylesheet';\n newLinkElement.id = id;\n newLinkElement.href = url;\n if (linkElement !== null) {\n newLinkElement.onload = () => {\n if (document.head.contains(linkElement)) {\n document.head.removeChild(linkElement);\n }\n };\n }\n document.head.appendChild(newLinkElement);\n}\n","import { initSgBootstrap } from '@/utils/theme';\n\ninitSgBootstrap();\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1 true\n * @example IANAZone.isValidSpecifier(\"Sport~~blorp\") //=> false\n * @deprecated This method returns false for some valid IANA names. Use isValidZone instead.\n * @return {boolean}\n */\n static isValidSpecifier(s) {\n return this.isValidZone(s);\n }\n\n /**\n * Returns whether the provided string identifies a real zone\n * @param {string} zone - The string to check\n * @example IANAZone.isValidZone(\"America/New_York\") //=> true\n * @example IANAZone.isValidZone(\"Fantasia/Castle\") //=> false\n * @example IANAZone.isValidZone(\"Sport~~blorp\") //=> false\n * @return {boolean}\n */\n static isValidZone(zone) {\n if (!zone) {\n return false;\n }\n try {\n new Intl.DateTimeFormat(\"en-US\", { timeZone: zone }).format();\n return true;\n } catch (e) {\n return false;\n }\n }\n\n constructor(name) {\n super();\n /** @private **/\n this.zoneName = name;\n /** @private **/\n this.valid = IANAZone.isValidZone(name);\n }\n\n /** @override **/\n get type() {\n return \"iana\";\n }\n\n /** @override **/\n get name() {\n return this.zoneName;\n }\n\n /** @override **/\n get isUniversal() {\n return false;\n }\n\n /** @override **/\n offsetName(ts, { format, locale }) {\n return parseZoneInfo(ts, format, locale, this.name);\n }\n\n /** @override **/\n formatOffset(ts, format) {\n return formatOffset(this.offset(ts), format);\n }\n\n /** @override **/\n offset(ts) {\n const date = new Date(ts);\n\n if (isNaN(date)) return NaN;\n\n const dtf = makeDTF(this.name);\n let [year, month, day, adOrBc, hour, minute, second] = dtf.formatToParts\n ? partsOffset(dtf, date)\n : hackyOffset(dtf, date);\n\n if (adOrBc === \"BC\") {\n year = -Math.abs(year) + 1;\n }\n\n // because we're using hour12 and https://bugs.chromium.org/p/chromium/issues/detail?id=1025564&can=2&q=%2224%3A00%22%20datetimeformat\n const adjustedHour = hour === 24 ? 0 : hour;\n\n const asUTC = objToLocalTS({\n year,\n month,\n day,\n hour: adjustedHour,\n minute,\n second,\n millisecond: 0,\n });\n\n let asTS = +date;\n const over = asTS % 1000;\n asTS -= over >= 0 ? over : 1000 + over;\n return (asUTC - asTS) / (60 * 1000);\n }\n\n /** @override **/\n equals(otherZone) {\n return otherZone.type === \"iana\" && otherZone.name === this.name;\n }\n\n /** @override **/\n get isValid() {\n return this.valid;\n }\n}\n","import { hasLocaleWeekInfo, hasRelative, padStart, roundTo, validateWeekSettings } from \"./util.js\";\nimport * as English from \"./english.js\";\nimport Settings from \"../settings.js\";\nimport DateTime from \"../datetime.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\n\n// todo - remap caching\n\nlet intlLFCache = {};\nfunction getCachedLF(locString, opts = {}) {\n const key = JSON.stringify([locString, opts]);\n let dtf = intlLFCache[key];\n if (!dtf) {\n dtf = new Intl.ListFormat(locString, opts);\n intlLFCache[key] = dtf;\n }\n return dtf;\n}\n\nlet intlDTCache = {};\nfunction getCachedDTF(locString, opts = {}) {\n const key = JSON.stringify([locString, opts]);\n let dtf = intlDTCache[key];\n if (!dtf) {\n dtf = new Intl.DateTimeFormat(locString, opts);\n intlDTCache[key] = dtf;\n }\n return dtf;\n}\n\nlet intlNumCache = {};\nfunction getCachedINF(locString, opts = {}) {\n const key = JSON.stringify([locString, opts]);\n let inf = intlNumCache[key];\n if (!inf) {\n inf = new Intl.NumberFormat(locString, opts);\n intlNumCache[key] = inf;\n }\n return inf;\n}\n\nlet intlRelCache = {};\nfunction getCachedRTF(locString, opts = {}) {\n const { base, ...cacheKeyOpts } = opts; // exclude `base` from the options\n const key = JSON.stringify([locString, cacheKeyOpts]);\n let inf = intlRelCache[key];\n if (!inf) {\n inf = new Intl.RelativeTimeFormat(locString, opts);\n intlRelCache[key] = inf;\n }\n return inf;\n}\n\nlet sysLocaleCache = null;\nfunction systemLocale() {\n if (sysLocaleCache) {\n return sysLocaleCache;\n } else {\n sysLocaleCache = new Intl.DateTimeFormat().resolvedOptions().locale;\n return sysLocaleCache;\n }\n}\n\nlet weekInfoCache = {};\nfunction getCachedWeekInfo(locString) {\n let data = weekInfoCache[locString];\n if (!data) {\n const locale = new Intl.Locale(locString);\n // browsers currently implement this as a property, but spec says it should be a getter function\n data = \"getWeekInfo\" in locale ? locale.getWeekInfo() : locale.weekInfo;\n weekInfoCache[locString] = data;\n }\n return data;\n}\n\nfunction parseLocaleString(localeStr) {\n // I really want to avoid writing a BCP 47 parser\n // see, e.g. https://github.com/wooorm/bcp-47\n // Instead, we'll do this:\n\n // a) if the string has no -u extensions, just leave it alone\n // b) if it does, use Intl to resolve everything\n // c) if Intl fails, try again without the -u\n\n // private subtags and unicode subtags have ordering requirements,\n // and we're not properly parsing this, so just strip out the\n // private ones if they exist.\n const xIndex = localeStr.indexOf(\"-x-\");\n if (xIndex !== -1) {\n localeStr = localeStr.substring(0, xIndex);\n }\n\n const uIndex = localeStr.indexOf(\"-u-\");\n if (uIndex === -1) {\n return [localeStr];\n } else {\n let options;\n let selectedStr;\n try {\n options = getCachedDTF(localeStr).resolvedOptions();\n selectedStr = localeStr;\n } catch (e) {\n const smaller = localeStr.substring(0, uIndex);\n options = getCachedDTF(smaller).resolvedOptions();\n selectedStr = smaller;\n }\n\n const { numberingSystem, calendar } = options;\n return [selectedStr, numberingSystem, calendar];\n }\n}\n\nfunction intlConfigString(localeStr, numberingSystem, outputCalendar) {\n if (outputCalendar || numberingSystem) {\n if (!localeStr.includes(\"-u-\")) {\n localeStr += \"-u\";\n }\n\n if (outputCalendar) {\n localeStr += `-ca-${outputCalendar}`;\n }\n\n if (numberingSystem) {\n localeStr += `-nu-${numberingSystem}`;\n }\n return localeStr;\n } else {\n return localeStr;\n }\n}\n\nfunction mapMonths(f) {\n const ms = [];\n for (let i = 1; i <= 12; i++) {\n const dt = DateTime.utc(2009, i, 1);\n ms.push(f(dt));\n }\n return ms;\n}\n\nfunction mapWeekdays(f) {\n const ms = [];\n for (let i = 1; i <= 7; i++) {\n const dt = DateTime.utc(2016, 11, 13 + i);\n ms.push(f(dt));\n }\n return ms;\n}\n\nfunction listStuff(loc, length, englishFn, intlFn) {\n const mode = loc.listingMode();\n\n if (mode === \"error\") {\n return null;\n } else if (mode === \"en\") {\n return englishFn(length);\n } else {\n return intlFn(length);\n }\n}\n\nfunction supportsFastNumbers(loc) {\n if (loc.numberingSystem && loc.numberingSystem !== \"latn\") {\n return false;\n } else {\n return (\n loc.numberingSystem === \"latn\" ||\n !loc.locale ||\n loc.locale.startsWith(\"en\") ||\n new Intl.DateTimeFormat(loc.intl).resolvedOptions().numberingSystem === \"latn\"\n );\n }\n}\n\n/**\n * @private\n */\n\nclass PolyNumberFormatter {\n constructor(intl, forceSimple, opts) {\n this.padTo = opts.padTo || 0;\n this.floor = opts.floor || false;\n\n const { padTo, floor, ...otherOpts } = opts;\n\n if (!forceSimple || Object.keys(otherOpts).length > 0) {\n const intlOpts = { useGrouping: false, ...opts };\n if (opts.padTo > 0) intlOpts.minimumIntegerDigits = opts.padTo;\n this.inf = getCachedINF(intl, intlOpts);\n }\n }\n\n format(i) {\n if (this.inf) {\n const fixed = this.floor ? Math.floor(i) : i;\n return this.inf.format(fixed);\n } else {\n // to match the browser's numberformatter defaults\n const fixed = this.floor ? Math.floor(i) : roundTo(i, 3);\n return padStart(fixed, this.padTo);\n }\n }\n}\n\n/**\n * @private\n */\n\nclass PolyDateFormatter {\n constructor(dt, intl, opts) {\n this.opts = opts;\n this.originalZone = undefined;\n\n let z = undefined;\n if (this.opts.timeZone) {\n // Don't apply any workarounds if a timeZone is explicitly provided in opts\n this.dt = dt;\n } else if (dt.zone.type === \"fixed\") {\n // UTC-8 or Etc/UTC-8 are not part of tzdata, only Etc/GMT+8 and the like.\n // That is why fixed-offset TZ is set to that unless it is:\n // 1. Representing offset 0 when UTC is used to maintain previous behavior and does not become GMT.\n // 2. Unsupported by the browser:\n // - some do not support Etc/\n // - < Etc/GMT-14, > Etc/GMT+12, and 30-minute or 45-minute offsets are not part of tzdata\n const gmtOffset = -1 * (dt.offset / 60);\n const offsetZ = gmtOffset >= 0 ? `Etc/GMT+${gmtOffset}` : `Etc/GMT${gmtOffset}`;\n if (dt.offset !== 0 && IANAZone.create(offsetZ).valid) {\n z = offsetZ;\n this.dt = dt;\n } else {\n // Not all fixed-offset zones like Etc/+4:30 are present in tzdata so\n // we manually apply the offset and substitute the zone as needed.\n z = \"UTC\";\n this.dt = dt.offset === 0 ? dt : dt.setZone(\"UTC\").plus({ minutes: dt.offset });\n this.originalZone = dt.zone;\n }\n } else if (dt.zone.type === \"system\") {\n this.dt = dt;\n } else if (dt.zone.type === \"iana\") {\n this.dt = dt;\n z = dt.zone.name;\n } else {\n // Custom zones can have any offset / offsetName so we just manually\n // apply the offset and substitute the zone as needed.\n z = \"UTC\";\n this.dt = dt.setZone(\"UTC\").plus({ minutes: dt.offset });\n this.originalZone = dt.zone;\n }\n\n const intlOpts = { ...this.opts };\n intlOpts.timeZone = intlOpts.timeZone || z;\n this.dtf = getCachedDTF(intl, intlOpts);\n }\n\n format() {\n if (this.originalZone) {\n // If we have to substitute in the actual zone name, we have to use\n // formatToParts so that the timezone can be replaced.\n return this.formatToParts()\n .map(({ value }) => value)\n .join(\"\");\n }\n return this.dtf.format(this.dt.toJSDate());\n }\n\n formatToParts() {\n const parts = this.dtf.formatToParts(this.dt.toJSDate());\n if (this.originalZone) {\n return parts.map((part) => {\n if (part.type === \"timeZoneName\") {\n const offsetName = this.originalZone.offsetName(this.dt.ts, {\n locale: this.dt.locale,\n format: this.opts.timeZoneName,\n });\n return {\n ...part,\n value: offsetName,\n };\n } else {\n return part;\n }\n });\n }\n return parts;\n }\n\n resolvedOptions() {\n return this.dtf.resolvedOptions();\n }\n}\n\n/**\n * @private\n */\nclass PolyRelFormatter {\n constructor(intl, isEnglish, opts) {\n this.opts = { style: \"long\", ...opts };\n if (!isEnglish && hasRelative()) {\n this.rtf = getCachedRTF(intl, opts);\n }\n }\n\n format(count, unit) {\n if (this.rtf) {\n return this.rtf.format(count, unit);\n } else {\n return English.formatRelativeTime(unit, count, this.opts.numeric, this.opts.style !== \"long\");\n }\n }\n\n formatToParts(count, unit) {\n if (this.rtf) {\n return this.rtf.formatToParts(count, unit);\n } else {\n return [];\n }\n }\n}\n\nconst fallbackWeekSettings = {\n firstDay: 1,\n minimalDays: 4,\n weekend: [6, 7],\n};\n\n/**\n * @private\n */\n\nexport default class Locale {\n static fromOpts(opts) {\n return Locale.create(\n opts.locale,\n opts.numberingSystem,\n opts.outputCalendar,\n opts.weekSettings,\n opts.defaultToEN\n );\n }\n\n static create(locale, numberingSystem, outputCalendar, weekSettings, defaultToEN = false) {\n const specifiedLocale = locale || Settings.defaultLocale;\n // the system locale is useful for human readable strings but annoying for parsing/formatting known formats\n const localeR = specifiedLocale || (defaultToEN ? \"en-US\" : systemLocale());\n const numberingSystemR = numberingSystem || Settings.defaultNumberingSystem;\n const outputCalendarR = outputCalendar || Settings.defaultOutputCalendar;\n const weekSettingsR = validateWeekSettings(weekSettings) || Settings.defaultWeekSettings;\n return new Locale(localeR, numberingSystemR, outputCalendarR, weekSettingsR, specifiedLocale);\n }\n\n static resetCache() {\n sysLocaleCache = null;\n intlDTCache = {};\n intlNumCache = {};\n intlRelCache = {};\n }\n\n static fromObject({ locale, numberingSystem, outputCalendar, weekSettings } = {}) {\n return Locale.create(locale, numberingSystem, outputCalendar, weekSettings);\n }\n\n constructor(locale, numbering, outputCalendar, weekSettings, specifiedLocale) {\n const [parsedLocale, parsedNumberingSystem, parsedOutputCalendar] = parseLocaleString(locale);\n\n this.locale = parsedLocale;\n this.numberingSystem = numbering || parsedNumberingSystem || null;\n this.outputCalendar = outputCalendar || parsedOutputCalendar || null;\n this.weekSettings = weekSettings;\n this.intl = intlConfigString(this.locale, this.numberingSystem, this.outputCalendar);\n\n this.weekdaysCache = { format: {}, standalone: {} };\n this.monthsCache = { format: {}, standalone: {} };\n this.meridiemCache = null;\n this.eraCache = {};\n\n this.specifiedLocale = specifiedLocale;\n this.fastNumbersCached = null;\n }\n\n get fastNumbers() {\n if (this.fastNumbersCached == null) {\n this.fastNumbersCached = supportsFastNumbers(this);\n }\n\n return this.fastNumbersCached;\n }\n\n listingMode() {\n const isActuallyEn = this.isEnglish();\n const hasNoWeirdness =\n (this.numberingSystem === null || this.numberingSystem === \"latn\") &&\n (this.outputCalendar === null || this.outputCalendar === \"gregory\");\n return isActuallyEn && hasNoWeirdness ? \"en\" : \"intl\";\n }\n\n clone(alts) {\n if (!alts || Object.getOwnPropertyNames(alts).length === 0) {\n return this;\n } else {\n return Locale.create(\n alts.locale || this.specifiedLocale,\n alts.numberingSystem || this.numberingSystem,\n alts.outputCalendar || this.outputCalendar,\n validateWeekSettings(alts.weekSettings) || this.weekSettings,\n alts.defaultToEN || false\n );\n }\n }\n\n redefaultToEN(alts = {}) {\n return this.clone({ ...alts, defaultToEN: true });\n }\n\n redefaultToSystem(alts = {}) {\n return this.clone({ ...alts, defaultToEN: false });\n }\n\n months(length, format = false) {\n return listStuff(this, length, English.months, () => {\n const intl = format ? { month: length, day: \"numeric\" } : { month: length },\n formatStr = format ? \"format\" : \"standalone\";\n if (!this.monthsCache[formatStr][length]) {\n this.monthsCache[formatStr][length] = mapMonths((dt) => this.extract(dt, intl, \"month\"));\n }\n return this.monthsCache[formatStr][length];\n });\n }\n\n weekdays(length, format = false) {\n return listStuff(this, length, English.weekdays, () => {\n const intl = format\n ? { weekday: length, year: \"numeric\", month: \"long\", day: \"numeric\" }\n : { weekday: length },\n formatStr = format ? \"format\" : \"standalone\";\n if (!this.weekdaysCache[formatStr][length]) {\n this.weekdaysCache[formatStr][length] = mapWeekdays((dt) =>\n this.extract(dt, intl, \"weekday\")\n );\n }\n return this.weekdaysCache[formatStr][length];\n });\n }\n\n meridiems() {\n return listStuff(\n this,\n undefined,\n () => English.meridiems,\n () => {\n // In theory there could be aribitrary day periods. We're gonna assume there are exactly two\n // for AM and PM. This is probably wrong, but it's makes parsing way easier.\n if (!this.meridiemCache) {\n const intl = { hour: \"numeric\", hourCycle: \"h12\" };\n this.meridiemCache = [DateTime.utc(2016, 11, 13, 9), DateTime.utc(2016, 11, 13, 19)].map(\n (dt) => this.extract(dt, intl, \"dayperiod\")\n );\n }\n\n return this.meridiemCache;\n }\n );\n }\n\n eras(length) {\n return listStuff(this, length, English.eras, () => {\n const intl = { era: length };\n\n // This is problematic. Different calendars are going to define eras totally differently. What I need is the minimum set of dates\n // to definitely enumerate them.\n if (!this.eraCache[length]) {\n this.eraCache[length] = [DateTime.utc(-40, 1, 1), DateTime.utc(2017, 1, 1)].map((dt) =>\n this.extract(dt, intl, \"era\")\n );\n }\n\n return this.eraCache[length];\n });\n }\n\n extract(dt, intlOpts, field) {\n const df = this.dtFormatter(dt, intlOpts),\n results = df.formatToParts(),\n matching = results.find((m) => m.type.toLowerCase() === field);\n return matching ? matching.value : null;\n }\n\n numberFormatter(opts = {}) {\n // this forcesimple option is never used (the only caller short-circuits on it, but it seems safer to leave)\n // (in contrast, the rest of the condition is used heavily)\n return new PolyNumberFormatter(this.intl, opts.forceSimple || this.fastNumbers, opts);\n }\n\n dtFormatter(dt, intlOpts = {}) {\n return new PolyDateFormatter(dt, this.intl, intlOpts);\n }\n\n relFormatter(opts = {}) {\n return new PolyRelFormatter(this.intl, this.isEnglish(), opts);\n }\n\n listFormatter(opts = {}) {\n return getCachedLF(this.intl, opts);\n }\n\n isEnglish() {\n return (\n this.locale === \"en\" ||\n this.locale.toLowerCase() === \"en-us\" ||\n new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith(\"en-us\")\n );\n }\n\n getWeekSettings() {\n if (this.weekSettings) {\n return this.weekSettings;\n } else if (!hasLocaleWeekInfo()) {\n return fallbackWeekSettings;\n } else {\n return getCachedWeekInfo(this.locale);\n }\n }\n\n getStartOfWeek() {\n return this.getWeekSettings().firstDay;\n }\n\n getMinDaysInFirstWeek() {\n return this.getWeekSettings().minimalDays;\n }\n\n getWeekendDays() {\n return this.getWeekSettings().weekend;\n }\n\n equals(other) {\n return (\n this.locale === other.locale &&\n this.numberingSystem === other.numberingSystem &&\n this.outputCalendar === other.outputCalendar\n );\n }\n}\n","import { formatOffset, signedOffset } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nlet singleton = null;\n\n/**\n * A zone with a fixed offset (meaning no DST)\n * @implements {Zone}\n */\nexport default class FixedOffsetZone extends Zone {\n /**\n * Get a singleton instance of UTC\n * @return {FixedOffsetZone}\n */\n static get utcInstance() {\n if (singleton === null) {\n singleton = new FixedOffsetZone(0);\n }\n return singleton;\n }\n\n /**\n * Get an instance with a specified offset\n * @param {number} offset - The offset in minutes\n * @return {FixedOffsetZone}\n */\n static instance(offset) {\n return offset === 0 ? FixedOffsetZone.utcInstance : new FixedOffsetZone(offset);\n }\n\n /**\n * Get an instance of FixedOffsetZone from a UTC offset string, like \"UTC+6\"\n * @param {string} s - The offset string to parse\n * @example FixedOffsetZone.parseSpecifier(\"UTC+6\")\n * @example FixedOffsetZone.parseSpecifier(\"UTC+06\")\n * @example FixedOffsetZone.parseSpecifier(\"UTC-6:00\")\n * @return {FixedOffsetZone}\n */\n static parseSpecifier(s) {\n if (s) {\n const r = s.match(/^utc(?:([+-]\\d{1,2})(?::(\\d{2}))?)?$/i);\n if (r) {\n return new FixedOffsetZone(signedOffset(r[1], r[2]));\n }\n }\n return null;\n }\n\n constructor(offset) {\n super();\n /** @private **/\n this.fixed = offset;\n }\n\n /** @override **/\n get type() {\n return \"fixed\";\n }\n\n /** @override **/\n get name() {\n return this.fixed === 0 ? \"UTC\" : `UTC${formatOffset(this.fixed, \"narrow\")}`;\n }\n\n get ianaName() {\n if (this.fixed === 0) {\n return \"Etc/UTC\";\n } else {\n return `Etc/GMT${formatOffset(-this.fixed, \"narrow\")}`;\n }\n }\n\n /** @override **/\n offsetName() {\n return this.name;\n }\n\n /** @override **/\n formatOffset(ts, format) {\n return formatOffset(this.fixed, format);\n }\n\n /** @override **/\n get isUniversal() {\n return true;\n }\n\n /** @override **/\n offset() {\n return this.fixed;\n }\n\n /** @override **/\n equals(otherZone) {\n return otherZone.type === \"fixed\" && otherZone.fixed === this.fixed;\n }\n\n /** @override **/\n get isValid() {\n return true;\n }\n}\n","import Zone from \"../zone.js\";\n\n/**\n * A zone that failed to parse. You should never need to instantiate this.\n * @implements {Zone}\n */\nexport default class InvalidZone extends Zone {\n constructor(zoneName) {\n super();\n /** @private */\n this.zoneName = zoneName;\n }\n\n /** @override **/\n get type() {\n return \"invalid\";\n }\n\n /** @override **/\n get name() {\n return this.zoneName;\n }\n\n /** @override **/\n get isUniversal() {\n return false;\n }\n\n /** @override **/\n offsetName() {\n return null;\n }\n\n /** @override **/\n formatOffset() {\n return \"\";\n }\n\n /** @override **/\n offset() {\n return NaN;\n }\n\n /** @override **/\n equals() {\n return false;\n }\n\n /** @override **/\n get isValid() {\n return false;\n }\n}\n","/**\n * @private\n */\n\nimport Zone from \"../zone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport InvalidZone from \"../zones/invalidZone.js\";\n\nimport { isUndefined, isString, isNumber } from \"./util.js\";\nimport SystemZone from \"../zones/systemZone.js\";\n\nexport function normalizeZone(input, defaultZone) {\n let offset;\n if (isUndefined(input) || input === null) {\n return defaultZone;\n } else if (input instanceof Zone) {\n return input;\n } else if (isString(input)) {\n const lowered = input.toLowerCase();\n if (lowered === \"default\") return defaultZone;\n else if (lowered === \"local\" || lowered === \"system\") return SystemZone.instance;\n else if (lowered === \"utc\" || lowered === \"gmt\") return FixedOffsetZone.utcInstance;\n else return FixedOffsetZone.parseSpecifier(lowered) || IANAZone.create(input);\n } else if (isNumber(input)) {\n return FixedOffsetZone.instance(input);\n } else if (typeof input === \"object\" && \"offset\" in input && typeof input.offset === \"function\") {\n // This is dumb, but the instanceof check above doesn't seem to really work\n // so we're duck checking it\n return input;\n } else {\n return new InvalidZone(input);\n }\n}\n","import SystemZone from \"./zones/systemZone.js\";\nimport IANAZone from \"./zones/IANAZone.js\";\nimport Locale from \"./impl/locale.js\";\n\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\nimport { validateWeekSettings } from \"./impl/util.js\";\n\nlet now = () => Date.now(),\n defaultZone = \"system\",\n defaultLocale = null,\n defaultNumberingSystem = null,\n defaultOutputCalendar = null,\n twoDigitCutoffYear = 60,\n throwOnInvalid,\n defaultWeekSettings = null;\n\n/**\n * Settings contains static getters and setters that control Luxon's overall behavior. Luxon is a simple library with few options, but the ones it does have live here.\n */\nexport default class Settings {\n /**\n * Get the callback for returning the current timestamp.\n * @type {function}\n */\n static get now() {\n return now;\n }\n\n /**\n * Set the callback for returning the current timestamp.\n * The function should return a number, which will be interpreted as an Epoch millisecond count\n * @type {function}\n * @example Settings.now = () => Date.now() + 3000 // pretend it is 3 seconds in the future\n * @example Settings.now = () => 0 // always pretend it's Jan 1, 1970 at midnight in UTC time\n */\n static set now(n) {\n now = n;\n }\n\n /**\n * Set the default time zone to create DateTimes in. Does not affect existing instances.\n * Use the value \"system\" to reset this value to the system's time zone.\n * @type {string}\n */\n static set defaultZone(zone) {\n defaultZone = zone;\n }\n\n /**\n * Get the default time zone object currently used to create DateTimes. Does not affect existing instances.\n * The default value is the system's time zone (the one set on the machine that runs this code).\n * @type {Zone}\n */\n static get defaultZone() {\n return normalizeZone(defaultZone, SystemZone.instance);\n }\n\n /**\n * Get the default locale to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultLocale() {\n return defaultLocale;\n }\n\n /**\n * Set the default locale to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultLocale(locale) {\n defaultLocale = locale;\n }\n\n /**\n * Get the default numbering system to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultNumberingSystem() {\n return defaultNumberingSystem;\n }\n\n /**\n * Set the default numbering system to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultNumberingSystem(numberingSystem) {\n defaultNumberingSystem = numberingSystem;\n }\n\n /**\n * Get the default output calendar to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultOutputCalendar() {\n return defaultOutputCalendar;\n }\n\n /**\n * Set the default output calendar to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultOutputCalendar(outputCalendar) {\n defaultOutputCalendar = outputCalendar;\n }\n\n /**\n * @typedef {Object} WeekSettings\n * @property {number} firstDay\n * @property {number} minimalDays\n * @property {number[]} weekend\n */\n\n /**\n * @return {WeekSettings|null}\n */\n static get defaultWeekSettings() {\n return defaultWeekSettings;\n }\n\n /**\n * Allows overriding the default locale week settings, i.e. the start of the week, the weekend and\n * how many days are required in the first week of a year.\n * Does not affect existing instances.\n *\n * @param {WeekSettings|null} weekSettings\n */\n static set defaultWeekSettings(weekSettings) {\n defaultWeekSettings = validateWeekSettings(weekSettings);\n }\n\n /**\n * Get the cutoff year after which a string encoding a year as two digits is interpreted to occur in the current century.\n * @type {number}\n */\n static get twoDigitCutoffYear() {\n return twoDigitCutoffYear;\n }\n\n /**\n * Set the cutoff year after which a string encoding a year as two digits is interpreted to occur in the current century.\n * @type {number}\n * @example Settings.twoDigitCutoffYear = 0 // cut-off year is 0, so all 'yy' are interpreted as current century\n * @example Settings.twoDigitCutoffYear = 50 // '49' -> 1949; '50' -> 2050\n * @example Settings.twoDigitCutoffYear = 1950 // interpreted as 50\n * @example Settings.twoDigitCutoffYear = 2050 // ALSO interpreted as 50\n */\n static set twoDigitCutoffYear(cutoffYear) {\n twoDigitCutoffYear = cutoffYear % 100;\n }\n\n /**\n * Get whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals\n * @type {boolean}\n */\n static get throwOnInvalid() {\n return throwOnInvalid;\n }\n\n /**\n * Set whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals\n * @type {boolean}\n */\n static set throwOnInvalid(t) {\n throwOnInvalid = t;\n }\n\n /**\n * Reset Luxon's global caches. Should only be necessary in testing scenarios.\n * @return {void}\n */\n static resetCaches() {\n Locale.resetCache();\n IANAZone.resetCache();\n }\n}\n","export default class Invalid {\n constructor(reason, explanation) {\n this.reason = reason;\n this.explanation = explanation;\n }\n\n toMessage() {\n if (this.explanation) {\n return `${this.reason}: ${this.explanation}`;\n } else {\n return this.reason;\n }\n }\n}\n","import {\n integerBetween,\n isLeapYear,\n timeObject,\n daysInYear,\n daysInMonth,\n weeksInWeekYear,\n isInteger,\n isUndefined,\n} from \"./util.js\";\nimport Invalid from \"./invalid.js\";\nimport { ConflictingSpecificationError } from \"../errors.js\";\n\nconst nonLeapLadder = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334],\n leapLadder = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335];\n\nfunction unitOutOfRange(unit, value) {\n return new Invalid(\n \"unit out of range\",\n `you specified ${value} (of type ${typeof value}) as a ${unit}, which is invalid`\n );\n}\n\nexport function dayOfWeek(year, month, day) {\n const d = new Date(Date.UTC(year, month - 1, day));\n\n if (year < 100 && year >= 0) {\n d.setUTCFullYear(d.getUTCFullYear() - 1900);\n }\n\n const js = d.getUTCDay();\n\n return js === 0 ? 7 : js;\n}\n\nfunction computeOrdinal(year, month, day) {\n return day + (isLeapYear(year) ? leapLadder : nonLeapLadder)[month - 1];\n}\n\nfunction uncomputeOrdinal(year, ordinal) {\n const table = isLeapYear(year) ? leapLadder : nonLeapLadder,\n month0 = table.findIndex((i) => i < ordinal),\n day = ordinal - table[month0];\n return { month: month0 + 1, day };\n}\n\nexport function isoWeekdayToLocal(isoWeekday, startOfWeek) {\n return ((isoWeekday - startOfWeek + 7) % 7) + 1;\n}\n\n/**\n * @private\n */\n\nexport function gregorianToWeek(gregObj, minDaysInFirstWeek = 4, startOfWeek = 1) {\n const { year, month, day } = gregObj,\n ordinal = computeOrdinal(year, month, day),\n weekday = isoWeekdayToLocal(dayOfWeek(year, month, day), startOfWeek);\n\n let weekNumber = Math.floor((ordinal - weekday + 14 - minDaysInFirstWeek) / 7),\n weekYear;\n\n if (weekNumber < 1) {\n weekYear = year - 1;\n weekNumber = weeksInWeekYear(weekYear, minDaysInFirstWeek, startOfWeek);\n } else if (weekNumber > weeksInWeekYear(year, minDaysInFirstWeek, startOfWeek)) {\n weekYear = year + 1;\n weekNumber = 1;\n } else {\n weekYear = year;\n }\n\n return { weekYear, weekNumber, weekday, ...timeObject(gregObj) };\n}\n\nexport function weekToGregorian(weekData, minDaysInFirstWeek = 4, startOfWeek = 1) {\n const { weekYear, weekNumber, weekday } = weekData,\n weekdayOfJan4 = isoWeekdayToLocal(dayOfWeek(weekYear, 1, minDaysInFirstWeek), startOfWeek),\n yearInDays = daysInYear(weekYear);\n\n let ordinal = weekNumber * 7 + weekday - weekdayOfJan4 - 7 + minDaysInFirstWeek,\n year;\n\n if (ordinal < 1) {\n year = weekYear - 1;\n ordinal += daysInYear(year);\n } else if (ordinal > yearInDays) {\n year = weekYear + 1;\n ordinal -= daysInYear(weekYear);\n } else {\n year = weekYear;\n }\n\n const { month, day } = uncomputeOrdinal(year, ordinal);\n return { year, month, day, ...timeObject(weekData) };\n}\n\nexport function gregorianToOrdinal(gregData) {\n const { year, month, day } = gregData;\n const ordinal = computeOrdinal(year, month, day);\n return { year, ordinal, ...timeObject(gregData) };\n}\n\nexport function ordinalToGregorian(ordinalData) {\n const { year, ordinal } = ordinalData;\n const { month, day } = uncomputeOrdinal(year, ordinal);\n return { year, month, day, ...timeObject(ordinalData) };\n}\n\n/**\n * Check if local week units like localWeekday are used in obj.\n * If so, validates that they are not mixed with ISO week units and then copies them to the normal week unit properties.\n * Modifies obj in-place!\n * @param obj the object values\n */\nexport function usesLocalWeekValues(obj, loc) {\n const hasLocaleWeekData =\n !isUndefined(obj.localWeekday) ||\n !isUndefined(obj.localWeekNumber) ||\n !isUndefined(obj.localWeekYear);\n if (hasLocaleWeekData) {\n const hasIsoWeekData =\n !isUndefined(obj.weekday) || !isUndefined(obj.weekNumber) || !isUndefined(obj.weekYear);\n\n if (hasIsoWeekData) {\n throw new ConflictingSpecificationError(\n \"Cannot mix locale-based week fields with ISO-based week fields\"\n );\n }\n if (!isUndefined(obj.localWeekday)) obj.weekday = obj.localWeekday;\n if (!isUndefined(obj.localWeekNumber)) obj.weekNumber = obj.localWeekNumber;\n if (!isUndefined(obj.localWeekYear)) obj.weekYear = obj.localWeekYear;\n delete obj.localWeekday;\n delete obj.localWeekNumber;\n delete obj.localWeekYear;\n return {\n minDaysInFirstWeek: loc.getMinDaysInFirstWeek(),\n startOfWeek: loc.getStartOfWeek(),\n };\n } else {\n return { minDaysInFirstWeek: 4, startOfWeek: 1 };\n }\n}\n\nexport function hasInvalidWeekData(obj, minDaysInFirstWeek = 4, startOfWeek = 1) {\n const validYear = isInteger(obj.weekYear),\n validWeek = integerBetween(\n obj.weekNumber,\n 1,\n weeksInWeekYear(obj.weekYear, minDaysInFirstWeek, startOfWeek)\n ),\n validWeekday = integerBetween(obj.weekday, 1, 7);\n\n if (!validYear) {\n return unitOutOfRange(\"weekYear\", obj.weekYear);\n } else if (!validWeek) {\n return unitOutOfRange(\"week\", obj.weekNumber);\n } else if (!validWeekday) {\n return unitOutOfRange(\"weekday\", obj.weekday);\n } else return false;\n}\n\nexport function hasInvalidOrdinalData(obj) {\n const validYear = isInteger(obj.year),\n validOrdinal = integerBetween(obj.ordinal, 1, daysInYear(obj.year));\n\n if (!validYear) {\n return unitOutOfRange(\"year\", obj.year);\n } else if (!validOrdinal) {\n return unitOutOfRange(\"ordinal\", obj.ordinal);\n } else return false;\n}\n\nexport function hasInvalidGregorianData(obj) {\n const validYear = isInteger(obj.year),\n validMonth = integerBetween(obj.month, 1, 12),\n validDay = integerBetween(obj.day, 1, daysInMonth(obj.year, obj.month));\n\n if (!validYear) {\n return unitOutOfRange(\"year\", obj.year);\n } else if (!validMonth) {\n return unitOutOfRange(\"month\", obj.month);\n } else if (!validDay) {\n return unitOutOfRange(\"day\", obj.day);\n } else return false;\n}\n\nexport function hasInvalidTimeData(obj) {\n const { hour, minute, second, millisecond } = obj;\n const validHour =\n integerBetween(hour, 0, 23) ||\n (hour === 24 && minute === 0 && second === 0 && millisecond === 0),\n validMinute = integerBetween(minute, 0, 59),\n validSecond = integerBetween(second, 0, 59),\n validMillisecond = integerBetween(millisecond, 0, 999);\n\n if (!validHour) {\n return unitOutOfRange(\"hour\", hour);\n } else if (!validMinute) {\n return unitOutOfRange(\"minute\", minute);\n } else if (!validSecond) {\n return unitOutOfRange(\"second\", second);\n } else if (!validMillisecond) {\n return unitOutOfRange(\"millisecond\", millisecond);\n } else return false;\n}\n","/*\n This is just a junk drawer, containing anything used across multiple classes.\n Because Luxon is small(ish), this should stay small and we won't worry about splitting\n it up into, say, parsingUtil.js and basicUtil.js and so on. But they are divided up by feature area.\n*/\n\nimport { InvalidArgumentError } from \"../errors.js\";\nimport Settings from \"../settings.js\";\nimport { dayOfWeek, isoWeekdayToLocal } from \"./conversions.js\";\n\n/**\n * @private\n */\n\n// TYPES\n\nexport function isUndefined(o) {\n return typeof o === \"undefined\";\n}\n\nexport function isNumber(o) {\n return typeof o === \"number\";\n}\n\nexport function isInteger(o) {\n return typeof o === \"number\" && o % 1 === 0;\n}\n\nexport function isString(o) {\n return typeof o === \"string\";\n}\n\nexport function isDate(o) {\n return Object.prototype.toString.call(o) === \"[object Date]\";\n}\n\n// CAPABILITIES\n\nexport function hasRelative() {\n try {\n return typeof Intl !== \"undefined\" && !!Intl.RelativeTimeFormat;\n } catch (e) {\n return false;\n }\n}\n\nexport function hasLocaleWeekInfo() {\n try {\n return (\n typeof Intl !== \"undefined\" &&\n !!Intl.Locale &&\n (\"weekInfo\" in Intl.Locale.prototype || \"getWeekInfo\" in Intl.Locale.prototype)\n );\n } catch (e) {\n return false;\n }\n}\n\n// OBJECTS AND ARRAYS\n\nexport function maybeArray(thing) {\n return Array.isArray(thing) ? thing : [thing];\n}\n\nexport function bestBy(arr, by, compare) {\n if (arr.length === 0) {\n return undefined;\n }\n return arr.reduce((best, next) => {\n const pair = [by(next), next];\n if (!best) {\n return pair;\n } else if (compare(best[0], pair[0]) === best[0]) {\n return best;\n } else {\n return pair;\n }\n }, null)[1];\n}\n\nexport function pick(obj, keys) {\n return keys.reduce((a, k) => {\n a[k] = obj[k];\n return a;\n }, {});\n}\n\nexport function hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nexport function validateWeekSettings(settings) {\n if (settings == null) {\n return null;\n } else if (typeof settings !== \"object\") {\n throw new InvalidArgumentError(\"Week settings must be an object\");\n } else {\n if (\n !integerBetween(settings.firstDay, 1, 7) ||\n !integerBetween(settings.minimalDays, 1, 7) ||\n !Array.isArray(settings.weekend) ||\n settings.weekend.some((v) => !integerBetween(v, 1, 7))\n ) {\n throw new InvalidArgumentError(\"Invalid week settings\");\n }\n return {\n firstDay: settings.firstDay,\n minimalDays: settings.minimalDays,\n weekend: Array.from(settings.weekend),\n };\n }\n}\n\n// NUMBERS AND STRINGS\n\nexport function integerBetween(thing, bottom, top) {\n return isInteger(thing) && thing >= bottom && thing <= top;\n}\n\n// x % n but takes the sign of n instead of x\nexport function floorMod(x, n) {\n return x - n * Math.floor(x / n);\n}\n\nexport function padStart(input, n = 2) {\n const isNeg = input < 0;\n let padded;\n if (isNeg) {\n padded = \"-\" + (\"\" + -input).padStart(n, \"0\");\n } else {\n padded = (\"\" + input).padStart(n, \"0\");\n }\n return padded;\n}\n\nexport function parseInteger(string) {\n if (isUndefined(string) || string === null || string === \"\") {\n return undefined;\n } else {\n return parseInt(string, 10);\n }\n}\n\nexport function parseFloating(string) {\n if (isUndefined(string) || string === null || string === \"\") {\n return undefined;\n } else {\n return parseFloat(string);\n }\n}\n\nexport function parseMillis(fraction) {\n // Return undefined (instead of 0) in these cases, where fraction is not set\n if (isUndefined(fraction) || fraction === null || fraction === \"\") {\n return undefined;\n } else {\n const f = parseFloat(\"0.\" + fraction) * 1000;\n return Math.floor(f);\n }\n}\n\nexport function roundTo(number, digits, towardZero = false) {\n const factor = 10 ** digits,\n rounder = towardZero ? Math.trunc : Math.round;\n return rounder(number * factor) / factor;\n}\n\n// DATE BASICS\n\nexport function isLeapYear(year) {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n\nexport function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n}\n\nexport function daysInMonth(year, month) {\n const modMonth = floorMod(month - 1, 12) + 1,\n modYear = year + (month - modMonth) / 12;\n\n if (modMonth === 2) {\n return isLeapYear(modYear) ? 29 : 28;\n } else {\n return [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][modMonth - 1];\n }\n}\n\n// convert a calendar object to a local timestamp (epoch, but with the offset baked in)\nexport function objToLocalTS(obj) {\n let d = Date.UTC(\n obj.year,\n obj.month - 1,\n obj.day,\n obj.hour,\n obj.minute,\n obj.second,\n obj.millisecond\n );\n\n // for legacy reasons, years between 0 and 99 are interpreted as 19XX; revert that\n if (obj.year < 100 && obj.year >= 0) {\n d = new Date(d);\n // set the month and day again, this is necessary because year 2000 is a leap year, but year 100 is not\n // so if obj.year is in 99, but obj.day makes it roll over into year 100,\n // the calculations done by Date.UTC are using year 2000 - which is incorrect\n d.setUTCFullYear(obj.year, obj.month - 1, obj.day);\n }\n return +d;\n}\n\n// adapted from moment.js: https://github.com/moment/moment/blob/000ac1800e620f770f4eb31b5ae908f6167b0ab2/src/lib/units/week-calendar-utils.js\nfunction firstWeekOffset(year, minDaysInFirstWeek, startOfWeek) {\n const fwdlw = isoWeekdayToLocal(dayOfWeek(year, 1, minDaysInFirstWeek), startOfWeek);\n return -fwdlw + minDaysInFirstWeek - 1;\n}\n\nexport function weeksInWeekYear(weekYear, minDaysInFirstWeek = 4, startOfWeek = 1) {\n const weekOffset = firstWeekOffset(weekYear, minDaysInFirstWeek, startOfWeek);\n const weekOffsetNext = firstWeekOffset(weekYear + 1, minDaysInFirstWeek, startOfWeek);\n return (daysInYear(weekYear) - weekOffset + weekOffsetNext) / 7;\n}\n\nexport function untruncateYear(year) {\n if (year > 99) {\n return year;\n } else return year > Settings.twoDigitCutoffYear ? 1900 + year : 2000 + year;\n}\n\n// PARSING\n\nexport function parseZoneInfo(ts, offsetFormat, locale, timeZone = null) {\n const date = new Date(ts),\n intlOpts = {\n hourCycle: \"h23\",\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n };\n\n if (timeZone) {\n intlOpts.timeZone = timeZone;\n }\n\n const modified = { timeZoneName: offsetFormat, ...intlOpts };\n\n const parsed = new Intl.DateTimeFormat(locale, modified)\n .formatToParts(date)\n .find((m) => m.type.toLowerCase() === \"timezonename\");\n return parsed ? parsed.value : null;\n}\n\n// signedOffset('-5', '30') -> -330\nexport function signedOffset(offHourStr, offMinuteStr) {\n let offHour = parseInt(offHourStr, 10);\n\n // don't || this because we want to preserve -0\n if (Number.isNaN(offHour)) {\n offHour = 0;\n }\n\n const offMin = parseInt(offMinuteStr, 10) || 0,\n offMinSigned = offHour < 0 || Object.is(offHour, -0) ? -offMin : offMin;\n return offHour * 60 + offMinSigned;\n}\n\n// COERCION\n\nexport function asNumber(value) {\n const numericValue = Number(value);\n if (typeof value === \"boolean\" || value === \"\" || Number.isNaN(numericValue))\n throw new InvalidArgumentError(`Invalid unit value ${value}`);\n return numericValue;\n}\n\nexport function normalizeObject(obj, normalizer) {\n const normalized = {};\n for (const u in obj) {\n if (hasOwnProperty(obj, u)) {\n const v = obj[u];\n if (v === undefined || v === null) continue;\n normalized[normalizer(u)] = asNumber(v);\n }\n }\n return normalized;\n}\n\nexport function formatOffset(offset, format) {\n const hours = Math.trunc(Math.abs(offset / 60)),\n minutes = Math.trunc(Math.abs(offset % 60)),\n sign = offset >= 0 ? \"+\" : \"-\";\n\n switch (format) {\n case \"short\":\n return `${sign}${padStart(hours, 2)}:${padStart(minutes, 2)}`;\n case \"narrow\":\n return `${sign}${hours}${minutes > 0 ? `:${minutes}` : \"\"}`;\n case \"techie\":\n return `${sign}${padStart(hours, 2)}${padStart(minutes, 2)}`;\n default:\n throw new RangeError(`Value format ${format} is out of range for property format`);\n }\n}\n\nexport function timeObject(obj) {\n return pick(obj, [\"hour\", \"minute\", \"second\", \"millisecond\"]);\n}\n","import * as Formats from \"./formats.js\";\nimport { pick } from \"./util.js\";\n\nfunction stringify(obj) {\n return JSON.stringify(obj, Object.keys(obj).sort());\n}\n\n/**\n * @private\n */\n\nexport const monthsLong = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n];\n\nexport const monthsShort = [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n];\n\nexport const monthsNarrow = [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"];\n\nexport function months(length) {\n switch (length) {\n case \"narrow\":\n return [...monthsNarrow];\n case \"short\":\n return [...monthsShort];\n case \"long\":\n return [...monthsLong];\n case \"numeric\":\n return [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\", \"11\", \"12\"];\n case \"2-digit\":\n return [\"01\", \"02\", \"03\", \"04\", \"05\", \"06\", \"07\", \"08\", \"09\", \"10\", \"11\", \"12\"];\n default:\n return null;\n }\n}\n\nexport const weekdaysLong = [\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n \"Sunday\",\n];\n\nexport const weekdaysShort = [\"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\"];\n\nexport const weekdaysNarrow = [\"M\", \"T\", \"W\", \"T\", \"F\", \"S\", \"S\"];\n\nexport function weekdays(length) {\n switch (length) {\n case \"narrow\":\n return [...weekdaysNarrow];\n case \"short\":\n return [...weekdaysShort];\n case \"long\":\n return [...weekdaysLong];\n case \"numeric\":\n return [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\"];\n default:\n return null;\n }\n}\n\nexport const meridiems = [\"AM\", \"PM\"];\n\nexport const erasLong = [\"Before Christ\", \"Anno Domini\"];\n\nexport const erasShort = [\"BC\", \"AD\"];\n\nexport const erasNarrow = [\"B\", \"A\"];\n\nexport function eras(length) {\n switch (length) {\n case \"narrow\":\n return [...erasNarrow];\n case \"short\":\n return [...erasShort];\n case \"long\":\n return [...erasLong];\n default:\n return null;\n }\n}\n\nexport function meridiemForDateTime(dt) {\n return meridiems[dt.hour < 12 ? 0 : 1];\n}\n\nexport function weekdayForDateTime(dt, length) {\n return weekdays(length)[dt.weekday - 1];\n}\n\nexport function monthForDateTime(dt, length) {\n return months(length)[dt.month - 1];\n}\n\nexport function eraForDateTime(dt, length) {\n return eras(length)[dt.year < 0 ? 0 : 1];\n}\n\nexport function formatRelativeTime(unit, count, numeric = \"always\", narrow = false) {\n const units = {\n years: [\"year\", \"yr.\"],\n quarters: [\"quarter\", \"qtr.\"],\n months: [\"month\", \"mo.\"],\n weeks: [\"week\", \"wk.\"],\n days: [\"day\", \"day\", \"days\"],\n hours: [\"hour\", \"hr.\"],\n minutes: [\"minute\", \"min.\"],\n seconds: [\"second\", \"sec.\"],\n };\n\n const lastable = [\"hours\", \"minutes\", \"seconds\"].indexOf(unit) === -1;\n\n if (numeric === \"auto\" && lastable) {\n const isDay = unit === \"days\";\n switch (count) {\n case 1:\n return isDay ? \"tomorrow\" : `next ${units[unit][0]}`;\n case -1:\n return isDay ? \"yesterday\" : `last ${units[unit][0]}`;\n case 0:\n return isDay ? \"today\" : `this ${units[unit][0]}`;\n default: // fall through\n }\n }\n\n const isInPast = Object.is(count, -0) || count < 0,\n fmtValue = Math.abs(count),\n singular = fmtValue === 1,\n lilUnits = units[unit],\n fmtUnit = narrow\n ? singular\n ? lilUnits[1]\n : lilUnits[2] || lilUnits[1]\n : singular\n ? units[unit][0]\n : unit;\n return isInPast ? `${fmtValue} ${fmtUnit} ago` : `in ${fmtValue} ${fmtUnit}`;\n}\n\nexport function formatString(knownFormat) {\n // these all have the offsets removed because we don't have access to them\n // without all the intl stuff this is backfilling\n const filtered = pick(knownFormat, [\n \"weekday\",\n \"era\",\n \"year\",\n \"month\",\n \"day\",\n \"hour\",\n \"minute\",\n \"second\",\n \"timeZoneName\",\n \"hourCycle\",\n ]),\n key = stringify(filtered),\n dateTimeHuge = \"EEEE, LLLL d, yyyy, h:mm a\";\n switch (key) {\n case stringify(Formats.DATE_SHORT):\n return \"M/d/yyyy\";\n case stringify(Formats.DATE_MED):\n return \"LLL d, yyyy\";\n case stringify(Formats.DATE_MED_WITH_WEEKDAY):\n return \"EEE, LLL d, yyyy\";\n case stringify(Formats.DATE_FULL):\n return \"LLLL d, yyyy\";\n case stringify(Formats.DATE_HUGE):\n return \"EEEE, LLLL d, yyyy\";\n case stringify(Formats.TIME_SIMPLE):\n return \"h:mm a\";\n case stringify(Formats.TIME_WITH_SECONDS):\n return \"h:mm:ss a\";\n case stringify(Formats.TIME_WITH_SHORT_OFFSET):\n return \"h:mm a\";\n case stringify(Formats.TIME_WITH_LONG_OFFSET):\n return \"h:mm a\";\n case stringify(Formats.TIME_24_SIMPLE):\n return \"HH:mm\";\n case stringify(Formats.TIME_24_WITH_SECONDS):\n return \"HH:mm:ss\";\n case stringify(Formats.TIME_24_WITH_SHORT_OFFSET):\n return \"HH:mm\";\n case stringify(Formats.TIME_24_WITH_LONG_OFFSET):\n return \"HH:mm\";\n case stringify(Formats.DATETIME_SHORT):\n return \"M/d/yyyy, h:mm a\";\n case stringify(Formats.DATETIME_MED):\n return \"LLL d, yyyy, h:mm a\";\n case stringify(Formats.DATETIME_FULL):\n return \"LLLL d, yyyy, h:mm a\";\n case stringify(Formats.DATETIME_HUGE):\n return dateTimeHuge;\n case stringify(Formats.DATETIME_SHORT_WITH_SECONDS):\n return \"M/d/yyyy, h:mm:ss a\";\n case stringify(Formats.DATETIME_MED_WITH_SECONDS):\n return \"LLL d, yyyy, h:mm:ss a\";\n case stringify(Formats.DATETIME_MED_WITH_WEEKDAY):\n return \"EEE, d LLL yyyy, h:mm a\";\n case stringify(Formats.DATETIME_FULL_WITH_SECONDS):\n return \"LLLL d, yyyy, h:mm:ss a\";\n case stringify(Formats.DATETIME_HUGE_WITH_SECONDS):\n return \"EEEE, LLLL d, yyyy, h:mm:ss a\";\n default:\n return dateTimeHuge;\n }\n}\n","import * as English from \"./english.js\";\nimport * as Formats from \"./formats.js\";\nimport { padStart } from \"./util.js\";\n\nfunction stringifyTokens(splits, tokenToString) {\n let s = \"\";\n for (const token of splits) {\n if (token.literal) {\n s += token.val;\n } else {\n s += tokenToString(token.val);\n }\n }\n return s;\n}\n\nconst macroTokenToFormatOpts = {\n D: Formats.DATE_SHORT,\n DD: Formats.DATE_MED,\n DDD: Formats.DATE_FULL,\n DDDD: Formats.DATE_HUGE,\n t: Formats.TIME_SIMPLE,\n tt: Formats.TIME_WITH_SECONDS,\n ttt: Formats.TIME_WITH_SHORT_OFFSET,\n tttt: Formats.TIME_WITH_LONG_OFFSET,\n T: Formats.TIME_24_SIMPLE,\n TT: Formats.TIME_24_WITH_SECONDS,\n TTT: Formats.TIME_24_WITH_SHORT_OFFSET,\n TTTT: Formats.TIME_24_WITH_LONG_OFFSET,\n f: Formats.DATETIME_SHORT,\n ff: Formats.DATETIME_MED,\n fff: Formats.DATETIME_FULL,\n ffff: Formats.DATETIME_HUGE,\n F: Formats.DATETIME_SHORT_WITH_SECONDS,\n FF: Formats.DATETIME_MED_WITH_SECONDS,\n FFF: Formats.DATETIME_FULL_WITH_SECONDS,\n FFFF: Formats.DATETIME_HUGE_WITH_SECONDS,\n};\n\n/**\n * @private\n */\n\nexport default class Formatter {\n static create(locale, opts = {}) {\n return new Formatter(locale, opts);\n }\n\n static parseFormat(fmt) {\n // white-space is always considered a literal in user-provided formats\n // the \" \" token has a special meaning (see unitForToken)\n\n let current = null,\n currentFull = \"\",\n bracketed = false;\n const splits = [];\n for (let i = 0; i < fmt.length; i++) {\n const c = fmt.charAt(i);\n if (c === \"'\") {\n if (currentFull.length > 0) {\n splits.push({ literal: bracketed || /^\\s+$/.test(currentFull), val: currentFull });\n }\n current = null;\n currentFull = \"\";\n bracketed = !bracketed;\n } else if (bracketed) {\n currentFull += c;\n } else if (c === current) {\n currentFull += c;\n } else {\n if (currentFull.length > 0) {\n splits.push({ literal: /^\\s+$/.test(currentFull), val: currentFull });\n }\n currentFull = c;\n current = c;\n }\n }\n\n if (currentFull.length > 0) {\n splits.push({ literal: bracketed || /^\\s+$/.test(currentFull), val: currentFull });\n }\n\n return splits;\n }\n\n static macroTokenToFormatOpts(token) {\n return macroTokenToFormatOpts[token];\n }\n\n constructor(locale, formatOpts) {\n this.opts = formatOpts;\n this.loc = locale;\n this.systemLoc = null;\n }\n\n formatWithSystemDefault(dt, opts) {\n if (this.systemLoc === null) {\n this.systemLoc = this.loc.redefaultToSystem();\n }\n const df = this.systemLoc.dtFormatter(dt, { ...this.opts, ...opts });\n return df.format();\n }\n\n dtFormatter(dt, opts = {}) {\n return this.loc.dtFormatter(dt, { ...this.opts, ...opts });\n }\n\n formatDateTime(dt, opts) {\n return this.dtFormatter(dt, opts).format();\n }\n\n formatDateTimeParts(dt, opts) {\n return this.dtFormatter(dt, opts).formatToParts();\n }\n\n formatInterval(interval, opts) {\n const df = this.dtFormatter(interval.start, opts);\n return df.dtf.formatRange(interval.start.toJSDate(), interval.end.toJSDate());\n }\n\n resolvedOptions(dt, opts) {\n return this.dtFormatter(dt, opts).resolvedOptions();\n }\n\n num(n, p = 0) {\n // we get some perf out of doing this here, annoyingly\n if (this.opts.forceSimple) {\n return padStart(n, p);\n }\n\n const opts = { ...this.opts };\n\n if (p > 0) {\n opts.padTo = p;\n }\n\n return this.loc.numberFormatter(opts).format(n);\n }\n\n formatDateTimeFromString(dt, fmt) {\n const knownEnglish = this.loc.listingMode() === \"en\",\n useDateTimeFormatter = this.loc.outputCalendar && this.loc.outputCalendar !== \"gregory\",\n string = (opts, extract) => this.loc.extract(dt, opts, extract),\n formatOffset = (opts) => {\n if (dt.isOffsetFixed && dt.offset === 0 && opts.allowZ) {\n return \"Z\";\n }\n\n return dt.isValid ? dt.zone.formatOffset(dt.ts, opts.format) : \"\";\n },\n meridiem = () =>\n knownEnglish\n ? English.meridiemForDateTime(dt)\n : string({ hour: \"numeric\", hourCycle: \"h12\" }, \"dayperiod\"),\n month = (length, standalone) =>\n knownEnglish\n ? English.monthForDateTime(dt, length)\n : string(standalone ? { month: length } : { month: length, day: \"numeric\" }, \"month\"),\n weekday = (length, standalone) =>\n knownEnglish\n ? English.weekdayForDateTime(dt, length)\n : string(\n standalone ? { weekday: length } : { weekday: length, month: \"long\", day: \"numeric\" },\n \"weekday\"\n ),\n maybeMacro = (token) => {\n const formatOpts = Formatter.macroTokenToFormatOpts(token);\n if (formatOpts) {\n return this.formatWithSystemDefault(dt, formatOpts);\n } else {\n return token;\n }\n },\n era = (length) =>\n knownEnglish ? English.eraForDateTime(dt, length) : string({ era: length }, \"era\"),\n tokenToString = (token) => {\n // Where possible: https://cldr.unicode.org/translation/date-time/date-time-symbols\n switch (token) {\n // ms\n case \"S\":\n return this.num(dt.millisecond);\n case \"u\":\n // falls through\n case \"SSS\":\n return this.num(dt.millisecond, 3);\n // seconds\n case \"s\":\n return this.num(dt.second);\n case \"ss\":\n return this.num(dt.second, 2);\n // fractional seconds\n case \"uu\":\n return this.num(Math.floor(dt.millisecond / 10), 2);\n case \"uuu\":\n return this.num(Math.floor(dt.millisecond / 100));\n // minutes\n case \"m\":\n return this.num(dt.minute);\n case \"mm\":\n return this.num(dt.minute, 2);\n // hours\n case \"h\":\n return this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12);\n case \"hh\":\n return this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12, 2);\n case \"H\":\n return this.num(dt.hour);\n case \"HH\":\n return this.num(dt.hour, 2);\n // offset\n case \"Z\":\n // like +6\n return formatOffset({ format: \"narrow\", allowZ: this.opts.allowZ });\n case \"ZZ\":\n // like +06:00\n return formatOffset({ format: \"short\", allowZ: this.opts.allowZ });\n case \"ZZZ\":\n // like +0600\n return formatOffset({ format: \"techie\", allowZ: this.opts.allowZ });\n case \"ZZZZ\":\n // like EST\n return dt.zone.offsetName(dt.ts, { format: \"short\", locale: this.loc.locale });\n case \"ZZZZZ\":\n // like Eastern Standard Time\n return dt.zone.offsetName(dt.ts, { format: \"long\", locale: this.loc.locale });\n // zone\n case \"z\":\n // like America/New_York\n return dt.zoneName;\n // meridiems\n case \"a\":\n return meridiem();\n // dates\n case \"d\":\n return useDateTimeFormatter ? string({ day: \"numeric\" }, \"day\") : this.num(dt.day);\n case \"dd\":\n return useDateTimeFormatter ? string({ day: \"2-digit\" }, \"day\") : this.num(dt.day, 2);\n // weekdays - standalone\n case \"c\":\n // like 1\n return this.num(dt.weekday);\n case \"ccc\":\n // like 'Tues'\n return weekday(\"short\", true);\n case \"cccc\":\n // like 'Tuesday'\n return weekday(\"long\", true);\n case \"ccccc\":\n // like 'T'\n return weekday(\"narrow\", true);\n // weekdays - format\n case \"E\":\n // like 1\n return this.num(dt.weekday);\n case \"EEE\":\n // like 'Tues'\n return weekday(\"short\", false);\n case \"EEEE\":\n // like 'Tuesday'\n return weekday(\"long\", false);\n case \"EEEEE\":\n // like 'T'\n return weekday(\"narrow\", false);\n // months - standalone\n case \"L\":\n // like 1\n return useDateTimeFormatter\n ? string({ month: \"numeric\", day: \"numeric\" }, \"month\")\n : this.num(dt.month);\n case \"LL\":\n // like 01, doesn't seem to work\n return useDateTimeFormatter\n ? string({ month: \"2-digit\", day: \"numeric\" }, \"month\")\n : this.num(dt.month, 2);\n case \"LLL\":\n // like Jan\n return month(\"short\", true);\n case \"LLLL\":\n // like January\n return month(\"long\", true);\n case \"LLLLL\":\n // like J\n return month(\"narrow\", true);\n // months - format\n case \"M\":\n // like 1\n return useDateTimeFormatter\n ? string({ month: \"numeric\" }, \"month\")\n : this.num(dt.month);\n case \"MM\":\n // like 01\n return useDateTimeFormatter\n ? string({ month: \"2-digit\" }, \"month\")\n : this.num(dt.month, 2);\n case \"MMM\":\n // like Jan\n return month(\"short\", false);\n case \"MMMM\":\n // like January\n return month(\"long\", false);\n case \"MMMMM\":\n // like J\n return month(\"narrow\", false);\n // years\n case \"y\":\n // like 2014\n return useDateTimeFormatter ? string({ year: \"numeric\" }, \"year\") : this.num(dt.year);\n case \"yy\":\n // like 14\n return useDateTimeFormatter\n ? string({ year: \"2-digit\" }, \"year\")\n : this.num(dt.year.toString().slice(-2), 2);\n case \"yyyy\":\n // like 0012\n return useDateTimeFormatter\n ? string({ year: \"numeric\" }, \"year\")\n : this.num(dt.year, 4);\n case \"yyyyyy\":\n // like 000012\n return useDateTimeFormatter\n ? string({ year: \"numeric\" }, \"year\")\n : this.num(dt.year, 6);\n // eras\n case \"G\":\n // like AD\n return era(\"short\");\n case \"GG\":\n // like Anno Domini\n return era(\"long\");\n case \"GGGGG\":\n return era(\"narrow\");\n case \"kk\":\n return this.num(dt.weekYear.toString().slice(-2), 2);\n case \"kkkk\":\n return this.num(dt.weekYear, 4);\n case \"W\":\n return this.num(dt.weekNumber);\n case \"WW\":\n return this.num(dt.weekNumber, 2);\n case \"n\":\n return this.num(dt.localWeekNumber);\n case \"nn\":\n return this.num(dt.localWeekNumber, 2);\n case \"ii\":\n return this.num(dt.localWeekYear.toString().slice(-2), 2);\n case \"iiii\":\n return this.num(dt.localWeekYear, 4);\n case \"o\":\n return this.num(dt.ordinal);\n case \"ooo\":\n return this.num(dt.ordinal, 3);\n case \"q\":\n // like 1\n return this.num(dt.quarter);\n case \"qq\":\n // like 01\n return this.num(dt.quarter, 2);\n case \"X\":\n return this.num(Math.floor(dt.ts / 1000));\n case \"x\":\n return this.num(dt.ts);\n default:\n return maybeMacro(token);\n }\n };\n\n return stringifyTokens(Formatter.parseFormat(fmt), tokenToString);\n }\n\n formatDurationFromString(dur, fmt) {\n const tokenToField = (token) => {\n switch (token[0]) {\n case \"S\":\n return \"millisecond\";\n case \"s\":\n return \"second\";\n case \"m\":\n return \"minute\";\n case \"h\":\n return \"hour\";\n case \"d\":\n return \"day\";\n case \"w\":\n return \"week\";\n case \"M\":\n return \"month\";\n case \"y\":\n return \"year\";\n default:\n return null;\n }\n },\n tokenToString = (lildur) => (token) => {\n const mapped = tokenToField(token);\n if (mapped) {\n return this.num(lildur.get(mapped), token.length);\n } else {\n return token;\n }\n },\n tokens = Formatter.parseFormat(fmt),\n realTokens = tokens.reduce(\n (found, { literal, val }) => (literal ? found : found.concat(val)),\n []\n ),\n collapsed = dur.shiftTo(...realTokens.map(tokenToField).filter((t) => t));\n return stringifyTokens(tokens, tokenToString(collapsed));\n }\n}\n","import {\n untruncateYear,\n signedOffset,\n parseInteger,\n parseMillis,\n isUndefined,\n parseFloating,\n} from \"./util.js\";\nimport * as English from \"./english.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\n\n/*\n * This file handles parsing for well-specified formats. Here's how it works:\n * Two things go into parsing: a regex to match with and an extractor to take apart the groups in the match.\n * An extractor is just a function that takes a regex match array and returns a { year: ..., month: ... } object\n * parse() does the work of executing the regex and applying the extractor. It takes multiple regex/extractor pairs to try in sequence.\n * Extractors can take a \"cursor\" representing the offset in the match to look at. This makes it easy to combine extractors.\n * combineExtractors() does the work of combining them, keeping track of the cursor through multiple extractions.\n * Some extractions are super dumb and simpleParse and fromStrings help DRY them.\n */\n\nconst ianaRegex = /[A-Za-z_+-]{1,256}(?::?\\/[A-Za-z0-9_+-]{1,256}(?:\\/[A-Za-z0-9_+-]{1,256})?)?/;\n\nfunction combineRegexes(...regexes) {\n const full = regexes.reduce((f, r) => f + r.source, \"\");\n return RegExp(`^${full}$`);\n}\n\nfunction combineExtractors(...extractors) {\n return (m) =>\n extractors\n .reduce(\n ([mergedVals, mergedZone, cursor], ex) => {\n const [val, zone, next] = ex(m, cursor);\n return [{ ...mergedVals, ...val }, zone || mergedZone, next];\n },\n [{}, null, 1]\n )\n .slice(0, 2);\n}\n\nfunction parse(s, ...patterns) {\n if (s == null) {\n return [null, null];\n }\n\n for (const [regex, extractor] of patterns) {\n const m = regex.exec(s);\n if (m) {\n return extractor(m);\n }\n }\n return [null, null];\n}\n\nfunction simpleParse(...keys) {\n return (match, cursor) => {\n const ret = {};\n let i;\n\n for (i = 0; i < keys.length; i++) {\n ret[keys[i]] = parseInteger(match[cursor + i]);\n }\n return [ret, null, cursor + i];\n };\n}\n\n// ISO and SQL parsing\nconst offsetRegex = /(?:(Z)|([+-]\\d\\d)(?::?(\\d\\d))?)/;\nconst isoExtendedZone = `(?:${offsetRegex.source}?(?:\\\\[(${ianaRegex.source})\\\\])?)?`;\nconst isoTimeBaseRegex = /(\\d\\d)(?::?(\\d\\d)(?::?(\\d\\d)(?:[.,](\\d{1,30}))?)?)?/;\nconst isoTimeRegex = RegExp(`${isoTimeBaseRegex.source}${isoExtendedZone}`);\nconst isoTimeExtensionRegex = RegExp(`(?:T${isoTimeRegex.source})?`);\nconst isoYmdRegex = /([+-]\\d{6}|\\d{4})(?:-?(\\d\\d)(?:-?(\\d\\d))?)?/;\nconst isoWeekRegex = /(\\d{4})-?W(\\d\\d)(?:-?(\\d))?/;\nconst isoOrdinalRegex = /(\\d{4})-?(\\d{3})/;\nconst extractISOWeekData = simpleParse(\"weekYear\", \"weekNumber\", \"weekDay\");\nconst extractISOOrdinalData = simpleParse(\"year\", \"ordinal\");\nconst sqlYmdRegex = /(\\d{4})-(\\d\\d)-(\\d\\d)/; // dumbed-down version of the ISO one\nconst sqlTimeRegex = RegExp(\n `${isoTimeBaseRegex.source} ?(?:${offsetRegex.source}|(${ianaRegex.source}))?`\n);\nconst sqlTimeExtensionRegex = RegExp(`(?: ${sqlTimeRegex.source})?`);\n\nfunction int(match, pos, fallback) {\n const m = match[pos];\n return isUndefined(m) ? fallback : parseInteger(m);\n}\n\nfunction extractISOYmd(match, cursor) {\n const item = {\n year: int(match, cursor),\n month: int(match, cursor + 1, 1),\n day: int(match, cursor + 2, 1),\n };\n\n return [item, null, cursor + 3];\n}\n\nfunction extractISOTime(match, cursor) {\n const item = {\n hours: int(match, cursor, 0),\n minutes: int(match, cursor + 1, 0),\n seconds: int(match, cursor + 2, 0),\n milliseconds: parseMillis(match[cursor + 3]),\n };\n\n return [item, null, cursor + 4];\n}\n\nfunction extractISOOffset(match, cursor) {\n const local = !match[cursor] && !match[cursor + 1],\n fullOffset = signedOffset(match[cursor + 1], match[cursor + 2]),\n zone = local ? null : FixedOffsetZone.instance(fullOffset);\n return [{}, zone, cursor + 3];\n}\n\nfunction extractIANAZone(match, cursor) {\n const zone = match[cursor] ? IANAZone.create(match[cursor]) : null;\n return [{}, zone, cursor + 1];\n}\n\n// ISO time parsing\n\nconst isoTimeOnly = RegExp(`^T?${isoTimeBaseRegex.source}$`);\n\n// ISO duration parsing\n\nconst isoDuration =\n /^-?P(?:(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)Y)?(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)M)?(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)W)?(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)D)?(?:T(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)H)?(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)M)?(?:(-?\\d{1,20})(?:[.,](-?\\d{1,20}))?S)?)?)$/;\n\nfunction extractISODuration(match) {\n const [s, yearStr, monthStr, weekStr, dayStr, hourStr, minuteStr, secondStr, millisecondsStr] =\n match;\n\n const hasNegativePrefix = s[0] === \"-\";\n const negativeSeconds = secondStr && secondStr[0] === \"-\";\n\n const maybeNegate = (num, force = false) =>\n num !== undefined && (force || (num && hasNegativePrefix)) ? -num : num;\n\n return [\n {\n years: maybeNegate(parseFloating(yearStr)),\n months: maybeNegate(parseFloating(monthStr)),\n weeks: maybeNegate(parseFloating(weekStr)),\n days: maybeNegate(parseFloating(dayStr)),\n hours: maybeNegate(parseFloating(hourStr)),\n minutes: maybeNegate(parseFloating(minuteStr)),\n seconds: maybeNegate(parseFloating(secondStr), secondStr === \"-0\"),\n milliseconds: maybeNegate(parseMillis(millisecondsStr), negativeSeconds),\n },\n ];\n}\n\n// These are a little braindead. EDT *should* tell us that we're in, say, America/New_York\n// and not just that we're in -240 *right now*. But since I don't think these are used that often\n// I'm just going to ignore that\nconst obsOffsets = {\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n};\n\nfunction fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n const result = {\n year: yearStr.length === 2 ? untruncateYear(parseInteger(yearStr)) : parseInteger(yearStr),\n month: English.monthsShort.indexOf(monthStr) + 1,\n day: parseInteger(dayStr),\n hour: parseInteger(hourStr),\n minute: parseInteger(minuteStr),\n };\n\n if (secondStr) result.second = parseInteger(secondStr);\n if (weekdayStr) {\n result.weekday =\n weekdayStr.length > 3\n ? English.weekdaysLong.indexOf(weekdayStr) + 1\n : English.weekdaysShort.indexOf(weekdayStr) + 1;\n }\n\n return result;\n}\n\n// RFC 2822/5322\nconst rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\\d\\d)(\\d\\d)))$/;\n\nfunction extractRFC2822(match) {\n const [\n ,\n weekdayStr,\n dayStr,\n monthStr,\n yearStr,\n hourStr,\n minuteStr,\n secondStr,\n obsOffset,\n milOffset,\n offHourStr,\n offMinuteStr,\n ] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n\n let offset;\n if (obsOffset) {\n offset = obsOffsets[obsOffset];\n } else if (milOffset) {\n offset = 0;\n } else {\n offset = signedOffset(offHourStr, offMinuteStr);\n }\n\n return [result, new FixedOffsetZone(offset)];\n}\n\nfunction preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, \" \")\n .replace(/(\\s\\s+)/g, \" \")\n .trim();\n}\n\n// http date\n\nconst rfc1123 =\n /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\\d\\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\\d{4}) (\\d\\d):(\\d\\d):(\\d\\d) GMT$/,\n rfc850 =\n /^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\\d\\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\\d\\d) (\\d\\d):(\\d\\d):(\\d\\d) GMT$/,\n ascii =\n /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \\d|\\d\\d) (\\d\\d):(\\d\\d):(\\d\\d) (\\d{4})$/;\n\nfunction extractRFC1123Or850(match) {\n const [, weekdayStr, dayStr, monthStr, yearStr, hourStr, minuteStr, secondStr] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n return [result, FixedOffsetZone.utcInstance];\n}\n\nfunction extractASCII(match) {\n const [, weekdayStr, monthStr, dayStr, hourStr, minuteStr, secondStr, yearStr] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n return [result, FixedOffsetZone.utcInstance];\n}\n\nconst isoYmdWithTimeExtensionRegex = combineRegexes(isoYmdRegex, isoTimeExtensionRegex);\nconst isoWeekWithTimeExtensionRegex = combineRegexes(isoWeekRegex, isoTimeExtensionRegex);\nconst isoOrdinalWithTimeExtensionRegex = combineRegexes(isoOrdinalRegex, isoTimeExtensionRegex);\nconst isoTimeCombinedRegex = combineRegexes(isoTimeRegex);\n\nconst extractISOYmdTimeAndOffset = combineExtractors(\n extractISOYmd,\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\nconst extractISOWeekTimeAndOffset = combineExtractors(\n extractISOWeekData,\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\nconst extractISOOrdinalDateAndTime = combineExtractors(\n extractISOOrdinalData,\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\nconst extractISOTimeAndOffset = combineExtractors(\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\n\n/*\n * @private\n */\n\nexport function parseISODate(s) {\n return parse(\n s,\n [isoYmdWithTimeExtensionRegex, extractISOYmdTimeAndOffset],\n [isoWeekWithTimeExtensionRegex, extractISOWeekTimeAndOffset],\n [isoOrdinalWithTimeExtensionRegex, extractISOOrdinalDateAndTime],\n [isoTimeCombinedRegex, extractISOTimeAndOffset]\n );\n}\n\nexport function parseRFC2822Date(s) {\n return parse(preprocessRFC2822(s), [rfc2822, extractRFC2822]);\n}\n\nexport function parseHTTPDate(s) {\n return parse(\n s,\n [rfc1123, extractRFC1123Or850],\n [rfc850, extractRFC1123Or850],\n [ascii, extractASCII]\n );\n}\n\nexport function parseISODuration(s) {\n return parse(s, [isoDuration, extractISODuration]);\n}\n\nconst extractISOTimeOnly = combineExtractors(extractISOTime);\n\nexport function parseISOTimeOnly(s) {\n return parse(s, [isoTimeOnly, extractISOTimeOnly]);\n}\n\nconst sqlYmdWithTimeExtensionRegex = combineRegexes(sqlYmdRegex, sqlTimeExtensionRegex);\nconst sqlTimeCombinedRegex = combineRegexes(sqlTimeRegex);\n\nconst extractISOTimeOffsetAndIANAZone = combineExtractors(\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\n\nexport function parseSQL(s) {\n return parse(\n s,\n [sqlYmdWithTimeExtensionRegex, extractISOYmdTimeAndOffset],\n [sqlTimeCombinedRegex, extractISOTimeOffsetAndIANAZone]\n );\n}\n","import { InvalidArgumentError, InvalidDurationError, InvalidUnitError } from \"./errors.js\";\nimport Formatter from \"./impl/formatter.js\";\nimport Invalid from \"./impl/invalid.js\";\nimport Locale from \"./impl/locale.js\";\nimport { parseISODuration, parseISOTimeOnly } from \"./impl/regexParser.js\";\nimport {\n asNumber,\n hasOwnProperty,\n isNumber,\n isUndefined,\n normalizeObject,\n roundTo,\n} from \"./impl/util.js\";\nimport Settings from \"./settings.js\";\nimport DateTime from \"./datetime.js\";\n\nconst INVALID = \"Invalid Duration\";\n\n// unit conversion constants\nexport const lowOrderMatrix = {\n weeks: {\n days: 7,\n hours: 7 * 24,\n minutes: 7 * 24 * 60,\n seconds: 7 * 24 * 60 * 60,\n milliseconds: 7 * 24 * 60 * 60 * 1000,\n },\n days: {\n hours: 24,\n minutes: 24 * 60,\n seconds: 24 * 60 * 60,\n milliseconds: 24 * 60 * 60 * 1000,\n },\n hours: { minutes: 60, seconds: 60 * 60, milliseconds: 60 * 60 * 1000 },\n minutes: { seconds: 60, milliseconds: 60 * 1000 },\n seconds: { milliseconds: 1000 },\n },\n casualMatrix = {\n years: {\n quarters: 4,\n months: 12,\n weeks: 52,\n days: 365,\n hours: 365 * 24,\n minutes: 365 * 24 * 60,\n seconds: 365 * 24 * 60 * 60,\n milliseconds: 365 * 24 * 60 * 60 * 1000,\n },\n quarters: {\n months: 3,\n weeks: 13,\n days: 91,\n hours: 91 * 24,\n minutes: 91 * 24 * 60,\n seconds: 91 * 24 * 60 * 60,\n milliseconds: 91 * 24 * 60 * 60 * 1000,\n },\n months: {\n weeks: 4,\n days: 30,\n hours: 30 * 24,\n minutes: 30 * 24 * 60,\n seconds: 30 * 24 * 60 * 60,\n milliseconds: 30 * 24 * 60 * 60 * 1000,\n },\n\n ...lowOrderMatrix,\n },\n daysInYearAccurate = 146097.0 / 400,\n daysInMonthAccurate = 146097.0 / 4800,\n accurateMatrix = {\n years: {\n quarters: 4,\n months: 12,\n weeks: daysInYearAccurate / 7,\n days: daysInYearAccurate,\n hours: daysInYearAccurate * 24,\n minutes: daysInYearAccurate * 24 * 60,\n seconds: daysInYearAccurate * 24 * 60 * 60,\n milliseconds: daysInYearAccurate * 24 * 60 * 60 * 1000,\n },\n quarters: {\n months: 3,\n weeks: daysInYearAccurate / 28,\n days: daysInYearAccurate / 4,\n hours: (daysInYearAccurate * 24) / 4,\n minutes: (daysInYearAccurate * 24 * 60) / 4,\n seconds: (daysInYearAccurate * 24 * 60 * 60) / 4,\n milliseconds: (daysInYearAccurate * 24 * 60 * 60 * 1000) / 4,\n },\n months: {\n weeks: daysInMonthAccurate / 7,\n days: daysInMonthAccurate,\n hours: daysInMonthAccurate * 24,\n minutes: daysInMonthAccurate * 24 * 60,\n seconds: daysInMonthAccurate * 24 * 60 * 60,\n milliseconds: daysInMonthAccurate * 24 * 60 * 60 * 1000,\n },\n ...lowOrderMatrix,\n };\n\n// units ordered by size\nconst orderedUnits = [\n \"years\",\n \"quarters\",\n \"months\",\n \"weeks\",\n \"days\",\n \"hours\",\n \"minutes\",\n \"seconds\",\n \"milliseconds\",\n];\n\nconst reverseUnits = orderedUnits.slice(0).reverse();\n\n// clone really means \"create another instance just like this one, but with these changes\"\nfunction clone(dur, alts, clear = false) {\n // deep merge for vals\n const conf = {\n values: clear ? alts.values : { ...dur.values, ...(alts.values || {}) },\n loc: dur.loc.clone(alts.loc),\n conversionAccuracy: alts.conversionAccuracy || dur.conversionAccuracy,\n matrix: alts.matrix || dur.matrix,\n };\n return new Duration(conf);\n}\n\nfunction durationToMillis(matrix, vals) {\n let sum = vals.milliseconds ?? 0;\n for (const unit of reverseUnits.slice(1)) {\n if (vals[unit]) {\n sum += vals[unit] * matrix[unit][\"milliseconds\"];\n }\n }\n return sum;\n}\n\n// NB: mutates parameters\nfunction normalizeValues(matrix, vals) {\n // the logic below assumes the overall value of the duration is positive\n // if this is not the case, factor is used to make it so\n const factor = durationToMillis(matrix, vals) < 0 ? -1 : 1;\n\n orderedUnits.reduceRight((previous, current) => {\n if (!isUndefined(vals[current])) {\n if (previous) {\n const previousVal = vals[previous] * factor;\n const conv = matrix[current][previous];\n\n // if (previousVal < 0):\n // lower order unit is negative (e.g. { years: 2, days: -2 })\n // normalize this by reducing the higher order unit by the appropriate amount\n // and increasing the lower order unit\n // this can never make the higher order unit negative, because this function only operates\n // on positive durations, so the amount of time represented by the lower order unit cannot\n // be larger than the higher order unit\n // else:\n // lower order unit is positive (e.g. { years: 2, days: 450 } or { years: -2, days: 450 })\n // in this case we attempt to convert as much as possible from the lower order unit into\n // the higher order one\n //\n // Math.floor takes care of both of these cases, rounding away from 0\n // if previousVal < 0 it makes the absolute value larger\n // if previousVal >= it makes the absolute value smaller\n const rollUp = Math.floor(previousVal / conv);\n vals[current] += rollUp * factor;\n vals[previous] -= rollUp * conv * factor;\n }\n return current;\n } else {\n return previous;\n }\n }, null);\n\n // try to convert any decimals into smaller units if possible\n // for example for { years: 2.5, days: 0, seconds: 0 } we want to get { years: 2, days: 182, hours: 12 }\n orderedUnits.reduce((previous, current) => {\n if (!isUndefined(vals[current])) {\n if (previous) {\n const fraction = vals[previous] % 1;\n vals[previous] -= fraction;\n vals[current] += fraction * matrix[previous][current];\n }\n return current;\n } else {\n return previous;\n }\n }, null);\n}\n\n// Remove all properties with a value of 0 from an object\nfunction removeZeroes(vals) {\n const newVals = {};\n for (const [key, value] of Object.entries(vals)) {\n if (value !== 0) {\n newVals[key] = value;\n }\n }\n return newVals;\n}\n\n/**\n * A Duration object represents a period of time, like \"2 months\" or \"1 day, 1 hour\". Conceptually, it's just a map of units to their quantities, accompanied by some additional configuration and methods for creating, parsing, interrogating, transforming, and formatting them. They can be used on their own or in conjunction with other Luxon types; for example, you can use {@link DateTime#plus} to add a Duration object to a DateTime, producing another DateTime.\n *\n * Here is a brief overview of commonly used methods and getters in Duration:\n *\n * * **Creation** To create a Duration, use {@link Duration.fromMillis}, {@link Duration.fromObject}, or {@link Duration.fromISO}.\n * * **Unit values** See the {@link Duration#years}, {@link Duration#months}, {@link Duration#weeks}, {@link Duration#days}, {@link Duration#hours}, {@link Duration#minutes}, {@link Duration#seconds}, {@link Duration#milliseconds} accessors.\n * * **Configuration** See {@link Duration#locale} and {@link Duration#numberingSystem} accessors.\n * * **Transformation** To create new Durations out of old ones use {@link Duration#plus}, {@link Duration#minus}, {@link Duration#normalize}, {@link Duration#set}, {@link Duration#reconfigure}, {@link Duration#shiftTo}, and {@link Duration#negate}.\n * * **Output** To convert the Duration into other representations, see {@link Duration#as}, {@link Duration#toISO}, {@link Duration#toFormat}, and {@link Duration#toJSON}\n *\n * There's are more methods documented below. In addition, for more information on subtler topics like internationalization and validity, see the external documentation.\n */\nexport default class Duration {\n /**\n * @private\n */\n constructor(config) {\n const accurate = config.conversionAccuracy === \"longterm\" || false;\n let matrix = accurate ? accurateMatrix : casualMatrix;\n\n if (config.matrix) {\n matrix = config.matrix;\n }\n\n /**\n * @access private\n */\n this.values = config.values;\n /**\n * @access private\n */\n this.loc = config.loc || Locale.create();\n /**\n * @access private\n */\n this.conversionAccuracy = accurate ? \"longterm\" : \"casual\";\n /**\n * @access private\n */\n this.invalid = config.invalid || null;\n /**\n * @access private\n */\n this.matrix = matrix;\n /**\n * @access private\n */\n this.isLuxonDuration = true;\n }\n\n /**\n * Create Duration from a number of milliseconds.\n * @param {number} count of milliseconds\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n static fromMillis(count, opts) {\n return Duration.fromObject({ milliseconds: count }, opts);\n }\n\n /**\n * Create a Duration from a JavaScript object with keys like 'years' and 'hours'.\n * If this object is empty then a zero milliseconds duration is returned.\n * @param {Object} obj - the object to create the DateTime from\n * @param {number} obj.years\n * @param {number} obj.quarters\n * @param {number} obj.months\n * @param {number} obj.weeks\n * @param {number} obj.days\n * @param {number} obj.hours\n * @param {number} obj.minutes\n * @param {number} obj.seconds\n * @param {number} obj.milliseconds\n * @param {Object} [opts=[]] - options for creating this Duration\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the preset conversion system to use\n * @param {string} [opts.matrix=Object] - the custom conversion system to use\n * @return {Duration}\n */\n static fromObject(obj, opts = {}) {\n if (obj == null || typeof obj !== \"object\") {\n throw new InvalidArgumentError(\n `Duration.fromObject: argument expected to be an object, got ${\n obj === null ? \"null\" : typeof obj\n }`\n );\n }\n\n return new Duration({\n values: normalizeObject(obj, Duration.normalizeUnit),\n loc: Locale.fromObject(opts),\n conversionAccuracy: opts.conversionAccuracy,\n matrix: opts.matrix,\n });\n }\n\n /**\n * Create a Duration from DurationLike.\n *\n * @param {Object | number | Duration} durationLike\n * One of:\n * - object with keys like 'years' and 'hours'.\n * - number representing milliseconds\n * - Duration instance\n * @return {Duration}\n */\n static fromDurationLike(durationLike) {\n if (isNumber(durationLike)) {\n return Duration.fromMillis(durationLike);\n } else if (Duration.isDuration(durationLike)) {\n return durationLike;\n } else if (typeof durationLike === \"object\") {\n return Duration.fromObject(durationLike);\n } else {\n throw new InvalidArgumentError(\n `Unknown duration argument ${durationLike} of type ${typeof durationLike}`\n );\n }\n }\n\n /**\n * Create a Duration from an ISO 8601 duration string.\n * @param {string} text - text to parse\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the preset conversion system to use\n * @param {string} [opts.matrix=Object] - the preset conversion system to use\n * @see https://en.wikipedia.org/wiki/ISO_8601#Durations\n * @example Duration.fromISO('P3Y6M1W4DT12H30M5S').toObject() //=> { years: 3, months: 6, weeks: 1, days: 4, hours: 12, minutes: 30, seconds: 5 }\n * @example Duration.fromISO('PT23H').toObject() //=> { hours: 23 }\n * @example Duration.fromISO('P5Y3M').toObject() //=> { years: 5, months: 3 }\n * @return {Duration}\n */\n static fromISO(text, opts) {\n const [parsed] = parseISODuration(text);\n if (parsed) {\n return Duration.fromObject(parsed, opts);\n } else {\n return Duration.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n }\n }\n\n /**\n * Create a Duration from an ISO 8601 time string.\n * @param {string} text - text to parse\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the preset conversion system to use\n * @param {string} [opts.matrix=Object] - the conversion system to use\n * @see https://en.wikipedia.org/wiki/ISO_8601#Times\n * @example Duration.fromISOTime('11:22:33.444').toObject() //=> { hours: 11, minutes: 22, seconds: 33, milliseconds: 444 }\n * @example Duration.fromISOTime('11:00').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n * @example Duration.fromISOTime('T11:00').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n * @example Duration.fromISOTime('1100').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n * @example Duration.fromISOTime('T1100').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n * @return {Duration}\n */\n static fromISOTime(text, opts) {\n const [parsed] = parseISOTimeOnly(text);\n if (parsed) {\n return Duration.fromObject(parsed, opts);\n } else {\n return Duration.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n }\n }\n\n /**\n * Create an invalid Duration.\n * @param {string} reason - simple string of why this datetime is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {Duration}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the Duration is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidDurationError(invalid);\n } else {\n return new Duration({ invalid });\n }\n }\n\n /**\n * @private\n */\n static normalizeUnit(unit) {\n const normalized = {\n year: \"years\",\n years: \"years\",\n quarter: \"quarters\",\n quarters: \"quarters\",\n month: \"months\",\n months: \"months\",\n week: \"weeks\",\n weeks: \"weeks\",\n day: \"days\",\n days: \"days\",\n hour: \"hours\",\n hours: \"hours\",\n minute: \"minutes\",\n minutes: \"minutes\",\n second: \"seconds\",\n seconds: \"seconds\",\n millisecond: \"milliseconds\",\n milliseconds: \"milliseconds\",\n }[unit ? unit.toLowerCase() : unit];\n\n if (!normalized) throw new InvalidUnitError(unit);\n\n return normalized;\n }\n\n /**\n * Check if an object is a Duration. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isDuration(o) {\n return (o && o.isLuxonDuration) || false;\n }\n\n /**\n * Get the locale of a Duration, such 'en-GB'\n * @type {string}\n */\n get locale() {\n return this.isValid ? this.loc.locale : null;\n }\n\n /**\n * Get the numbering system of a Duration, such 'beng'. The numbering system is used when formatting the Duration\n *\n * @type {string}\n */\n get numberingSystem() {\n return this.isValid ? this.loc.numberingSystem : null;\n }\n\n /**\n * Returns a string representation of this Duration formatted according to the specified format string. You may use these tokens:\n * * `S` for milliseconds\n * * `s` for seconds\n * * `m` for minutes\n * * `h` for hours\n * * `d` for days\n * * `w` for weeks\n * * `M` for months\n * * `y` for years\n * Notes:\n * * Add padding by repeating the token, e.g. \"yy\" pads the years to two digits, \"hhhh\" pads the hours out to four digits\n * * Tokens can be escaped by wrapping with single quotes.\n * * The duration will be converted to the set of units in the format string using {@link Duration#shiftTo} and the Durations's conversion accuracy setting.\n * @param {string} fmt - the format string\n * @param {Object} opts - options\n * @param {boolean} [opts.floor=true] - floor numerical values\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"y d s\") //=> \"1 6 2\"\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"yy dd sss\") //=> \"01 06 002\"\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"M S\") //=> \"12 518402000\"\n * @return {string}\n */\n toFormat(fmt, opts = {}) {\n // reverse-compat since 1.2; we always round down now, never up, and we do it by default\n const fmtOpts = {\n ...opts,\n floor: opts.round !== false && opts.floor !== false,\n };\n return this.isValid\n ? Formatter.create(this.loc, fmtOpts).formatDurationFromString(this, fmt)\n : INVALID;\n }\n\n /**\n * Returns a string representation of a Duration with all units included.\n * To modify its behavior, use `listStyle` and any Intl.NumberFormat option, though `unitDisplay` is especially relevant.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#options\n * @param {Object} opts - Formatting options. Accepts the same keys as the options parameter of the native `Intl.NumberFormat` constructor, as well as `listStyle`.\n * @param {string} [opts.listStyle='narrow'] - How to format the merged list. Corresponds to the `style` property of the options parameter of the native `Intl.ListFormat` constructor.\n * @example\n * ```js\n * var dur = Duration.fromObject({ days: 1, hours: 5, minutes: 6 })\n * dur.toHuman() //=> '1 day, 5 hours, 6 minutes'\n * dur.toHuman({ listStyle: \"long\" }) //=> '1 day, 5 hours, and 6 minutes'\n * dur.toHuman({ unitDisplay: \"short\" }) //=> '1 day, 5 hr, 6 min'\n * ```\n */\n toHuman(opts = {}) {\n if (!this.isValid) return INVALID;\n\n const l = orderedUnits\n .map((unit) => {\n const val = this.values[unit];\n if (isUndefined(val)) {\n return null;\n }\n return this.loc\n .numberFormatter({ style: \"unit\", unitDisplay: \"long\", ...opts, unit: unit.slice(0, -1) })\n .format(val);\n })\n .filter((n) => n);\n\n return this.loc\n .listFormatter({ type: \"conjunction\", style: opts.listStyle || \"narrow\", ...opts })\n .format(l);\n }\n\n /**\n * Returns a JavaScript object with this Duration's values.\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toObject() //=> { years: 1, days: 6, seconds: 2 }\n * @return {Object}\n */\n toObject() {\n if (!this.isValid) return {};\n return { ...this.values };\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Duration.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Durations\n * @example Duration.fromObject({ years: 3, seconds: 45 }).toISO() //=> 'P3YT45S'\n * @example Duration.fromObject({ months: 4, seconds: 45 }).toISO() //=> 'P4MT45S'\n * @example Duration.fromObject({ months: 5 }).toISO() //=> 'P5M'\n * @example Duration.fromObject({ minutes: 5 }).toISO() //=> 'PT5M'\n * @example Duration.fromObject({ milliseconds: 6 }).toISO() //=> 'PT0.006S'\n * @return {string}\n */\n toISO() {\n // we could use the formatter, but this is an easier way to get the minimum string\n if (!this.isValid) return null;\n\n let s = \"P\";\n if (this.years !== 0) s += this.years + \"Y\";\n if (this.months !== 0 || this.quarters !== 0) s += this.months + this.quarters * 3 + \"M\";\n if (this.weeks !== 0) s += this.weeks + \"W\";\n if (this.days !== 0) s += this.days + \"D\";\n if (this.hours !== 0 || this.minutes !== 0 || this.seconds !== 0 || this.milliseconds !== 0)\n s += \"T\";\n if (this.hours !== 0) s += this.hours + \"H\";\n if (this.minutes !== 0) s += this.minutes + \"M\";\n if (this.seconds !== 0 || this.milliseconds !== 0)\n // this will handle \"floating point madness\" by removing extra decimal places\n // https://stackoverflow.com/questions/588004/is-floating-point-math-broken\n s += roundTo(this.seconds + this.milliseconds / 1000, 3) + \"S\";\n if (s === \"P\") s += \"T0S\";\n return s;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Duration, formatted as a time of day.\n * Note that this will return null if the duration is invalid, negative, or equal to or greater than 24 hours.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Times\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includePrefix=false] - include the `T` prefix\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example Duration.fromObject({ hours: 11 }).toISOTime() //=> '11:00:00.000'\n * @example Duration.fromObject({ hours: 11 }).toISOTime({ suppressMilliseconds: true }) //=> '11:00:00'\n * @example Duration.fromObject({ hours: 11 }).toISOTime({ suppressSeconds: true }) //=> '11:00'\n * @example Duration.fromObject({ hours: 11 }).toISOTime({ includePrefix: true }) //=> 'T11:00:00.000'\n * @example Duration.fromObject({ hours: 11 }).toISOTime({ format: 'basic' }) //=> '110000.000'\n * @return {string}\n */\n toISOTime(opts = {}) {\n if (!this.isValid) return null;\n\n const millis = this.toMillis();\n if (millis < 0 || millis >= 86400000) return null;\n\n opts = {\n suppressMilliseconds: false,\n suppressSeconds: false,\n includePrefix: false,\n format: \"extended\",\n ...opts,\n includeOffset: false,\n };\n\n const dateTime = DateTime.fromMillis(millis, { zone: \"UTC\" });\n return dateTime.toISOTime(opts);\n }\n\n /**\n * Returns an ISO 8601 representation of this Duration appropriate for use in JSON.\n * @return {string}\n */\n toJSON() {\n return this.toISO();\n }\n\n /**\n * Returns an ISO 8601 representation of this Duration appropriate for use in debugging.\n * @return {string}\n */\n toString() {\n return this.toISO();\n }\n\n /**\n * Returns a string representation of this Duration appropriate for the REPL.\n * @return {string}\n */\n [Symbol.for(\"nodejs.util.inspect.custom\")]() {\n if (this.isValid) {\n return `Duration { values: ${JSON.stringify(this.values)} }`;\n } else {\n return `Duration { Invalid, reason: ${this.invalidReason} }`;\n }\n }\n\n /**\n * Returns an milliseconds value of this Duration.\n * @return {number}\n */\n toMillis() {\n if (!this.isValid) return NaN;\n\n return durationToMillis(this.matrix, this.values);\n }\n\n /**\n * Returns an milliseconds value of this Duration. Alias of {@link toMillis}\n * @return {number}\n */\n valueOf() {\n return this.toMillis();\n }\n\n /**\n * Make this Duration longer by the specified amount. Return a newly-constructed Duration.\n * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @return {Duration}\n */\n plus(duration) {\n if (!this.isValid) return this;\n\n const dur = Duration.fromDurationLike(duration),\n result = {};\n\n for (const k of orderedUnits) {\n if (hasOwnProperty(dur.values, k) || hasOwnProperty(this.values, k)) {\n result[k] = dur.get(k) + this.get(k);\n }\n }\n\n return clone(this, { values: result }, true);\n }\n\n /**\n * Make this Duration shorter by the specified amount. Return a newly-constructed Duration.\n * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @return {Duration}\n */\n minus(duration) {\n if (!this.isValid) return this;\n\n const dur = Duration.fromDurationLike(duration);\n return this.plus(dur.negate());\n }\n\n /**\n * Scale this Duration by the specified amount. Return a newly-constructed Duration.\n * @param {function} fn - The function to apply to each unit. Arity is 1 or 2: the value of the unit and, optionally, the unit name. Must return a number.\n * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnits(x => x * 2) //=> { hours: 2, minutes: 60 }\n * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnits((x, u) => u === \"hours\" ? x * 2 : x) //=> { hours: 2, minutes: 30 }\n * @return {Duration}\n */\n mapUnits(fn) {\n if (!this.isValid) return this;\n const result = {};\n for (const k of Object.keys(this.values)) {\n result[k] = asNumber(fn(this.values[k], k));\n }\n return clone(this, { values: result }, true);\n }\n\n /**\n * Get the value of unit.\n * @param {string} unit - a unit such as 'minute' or 'day'\n * @example Duration.fromObject({years: 2, days: 3}).get('years') //=> 2\n * @example Duration.fromObject({years: 2, days: 3}).get('months') //=> 0\n * @example Duration.fromObject({years: 2, days: 3}).get('days') //=> 3\n * @return {number}\n */\n get(unit) {\n return this[Duration.normalizeUnit(unit)];\n }\n\n /**\n * \"Set\" the values of specified units. Return a newly-constructed Duration.\n * @param {Object} values - a mapping of units to numbers\n * @example dur.set({ years: 2017 })\n * @example dur.set({ hours: 8, minutes: 30 })\n * @return {Duration}\n */\n set(values) {\n if (!this.isValid) return this;\n\n const mixed = { ...this.values, ...normalizeObject(values, Duration.normalizeUnit) };\n return clone(this, { values: mixed });\n }\n\n /**\n * \"Set\" the locale and/or numberingSystem. Returns a newly-constructed Duration.\n * @example dur.reconfigure({ locale: 'en-GB' })\n * @return {Duration}\n */\n reconfigure({ locale, numberingSystem, conversionAccuracy, matrix } = {}) {\n const loc = this.loc.clone({ locale, numberingSystem });\n const opts = { loc, matrix, conversionAccuracy };\n return clone(this, opts);\n }\n\n /**\n * Return the length of the duration in the specified unit.\n * @param {string} unit - a unit such as 'minutes' or 'days'\n * @example Duration.fromObject({years: 1}).as('days') //=> 365\n * @example Duration.fromObject({years: 1}).as('months') //=> 12\n * @example Duration.fromObject({hours: 60}).as('days') //=> 2.5\n * @return {number}\n */\n as(unit) {\n return this.isValid ? this.shiftTo(unit).get(unit) : NaN;\n }\n\n /**\n * Reduce this Duration to its canonical representation in its current units.\n * Assuming the overall value of the Duration is positive, this means:\n * - excessive values for lower-order units are converted to higher-order units (if possible, see first and second example)\n * - negative lower-order units are converted to higher order units (there must be such a higher order unit, otherwise\n * the overall value would be negative, see third example)\n * - fractional values for higher-order units are converted to lower-order units (if possible, see fourth example)\n *\n * If the overall value is negative, the result of this method is equivalent to `this.negate().normalize().negate()`.\n * @example Duration.fromObject({ years: 2, days: 5000 }).normalize().toObject() //=> { years: 15, days: 255 }\n * @example Duration.fromObject({ days: 5000 }).normalize().toObject() //=> { days: 5000 }\n * @example Duration.fromObject({ hours: 12, minutes: -45 }).normalize().toObject() //=> { hours: 11, minutes: 15 }\n * @example Duration.fromObject({ years: 2.5, days: 0, hours: 0 }).normalize().toObject() //=> { years: 2, days: 182, hours: 12 }\n * @return {Duration}\n */\n normalize() {\n if (!this.isValid) return this;\n const vals = this.toObject();\n normalizeValues(this.matrix, vals);\n return clone(this, { values: vals }, true);\n }\n\n /**\n * Rescale units to its largest representation\n * @example Duration.fromObject({ milliseconds: 90000 }).rescale().toObject() //=> { minutes: 1, seconds: 30 }\n * @return {Duration}\n */\n rescale() {\n if (!this.isValid) return this;\n const vals = removeZeroes(this.normalize().shiftToAll().toObject());\n return clone(this, { values: vals }, true);\n }\n\n /**\n * Convert this Duration into its representation in a different set of units.\n * @example Duration.fromObject({ hours: 1, seconds: 30 }).shiftTo('minutes', 'milliseconds').toObject() //=> { minutes: 60, milliseconds: 30000 }\n * @return {Duration}\n */\n shiftTo(...units) {\n if (!this.isValid) return this;\n\n if (units.length === 0) {\n return this;\n }\n\n units = units.map((u) => Duration.normalizeUnit(u));\n\n const built = {},\n accumulated = {},\n vals = this.toObject();\n let lastUnit;\n\n for (const k of orderedUnits) {\n if (units.indexOf(k) >= 0) {\n lastUnit = k;\n\n let own = 0;\n\n // anything we haven't boiled down yet should get boiled to this unit\n for (const ak in accumulated) {\n own += this.matrix[ak][k] * accumulated[ak];\n accumulated[ak] = 0;\n }\n\n // plus anything that's already in this unit\n if (isNumber(vals[k])) {\n own += vals[k];\n }\n\n // only keep the integer part for now in the hopes of putting any decimal part\n // into a smaller unit later\n const i = Math.trunc(own);\n built[k] = i;\n accumulated[k] = (own * 1000 - i * 1000) / 1000;\n\n // otherwise, keep it in the wings to boil it later\n } else if (isNumber(vals[k])) {\n accumulated[k] = vals[k];\n }\n }\n\n // anything leftover becomes the decimal for the last unit\n // lastUnit must be defined since units is not empty\n for (const key in accumulated) {\n if (accumulated[key] !== 0) {\n built[lastUnit] +=\n key === lastUnit ? accumulated[key] : accumulated[key] / this.matrix[lastUnit][key];\n }\n }\n\n normalizeValues(this.matrix, built);\n return clone(this, { values: built }, true);\n }\n\n /**\n * Shift this Duration to all available units.\n * Same as shiftTo(\"years\", \"months\", \"weeks\", \"days\", \"hours\", \"minutes\", \"seconds\", \"milliseconds\")\n * @return {Duration}\n */\n shiftToAll() {\n if (!this.isValid) return this;\n return this.shiftTo(\n \"years\",\n \"months\",\n \"weeks\",\n \"days\",\n \"hours\",\n \"minutes\",\n \"seconds\",\n \"milliseconds\"\n );\n }\n\n /**\n * Return the negative of this Duration.\n * @example Duration.fromObject({ hours: 1, seconds: 30 }).negate().toObject() //=> { hours: -1, seconds: -30 }\n * @return {Duration}\n */\n negate() {\n if (!this.isValid) return this;\n const negated = {};\n for (const k of Object.keys(this.values)) {\n negated[k] = this.values[k] === 0 ? 0 : -this.values[k];\n }\n return clone(this, { values: negated }, true);\n }\n\n /**\n * Get the years.\n * @type {number}\n */\n get years() {\n return this.isValid ? this.values.years || 0 : NaN;\n }\n\n /**\n * Get the quarters.\n * @type {number}\n */\n get quarters() {\n return this.isValid ? this.values.quarters || 0 : NaN;\n }\n\n /**\n * Get the months.\n * @type {number}\n */\n get months() {\n return this.isValid ? this.values.months || 0 : NaN;\n }\n\n /**\n * Get the weeks\n * @type {number}\n */\n get weeks() {\n return this.isValid ? this.values.weeks || 0 : NaN;\n }\n\n /**\n * Get the days.\n * @type {number}\n */\n get days() {\n return this.isValid ? this.values.days || 0 : NaN;\n }\n\n /**\n * Get the hours.\n * @type {number}\n */\n get hours() {\n return this.isValid ? this.values.hours || 0 : NaN;\n }\n\n /**\n * Get the minutes.\n * @type {number}\n */\n get minutes() {\n return this.isValid ? this.values.minutes || 0 : NaN;\n }\n\n /**\n * Get the seconds.\n * @return {number}\n */\n get seconds() {\n return this.isValid ? this.values.seconds || 0 : NaN;\n }\n\n /**\n * Get the milliseconds.\n * @return {number}\n */\n get milliseconds() {\n return this.isValid ? this.values.milliseconds || 0 : NaN;\n }\n\n /**\n * Returns whether the Duration is invalid. Invalid durations are returned by diff operations\n * on invalid DateTimes or Intervals.\n * @return {boolean}\n */\n get isValid() {\n return this.invalid === null;\n }\n\n /**\n * Returns an error code if this Duration became invalid, or null if the Duration is valid\n * @return {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this Duration became invalid, or null if the Duration is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Equality check\n * Two Durations are equal iff they have the same units and the same values for each unit.\n * @param {Duration} other\n * @return {boolean}\n */\n equals(other) {\n if (!this.isValid || !other.isValid) {\n return false;\n }\n\n if (!this.loc.equals(other.loc)) {\n return false;\n }\n\n function eq(v1, v2) {\n // Consider 0 and undefined as equal\n if (v1 === undefined || v1 === 0) return v2 === undefined || v2 === 0;\n return v1 === v2;\n }\n\n for (const u of orderedUnits) {\n if (!eq(this.values[u], other.values[u])) {\n return false;\n }\n }\n return true;\n }\n}\n","import DateTime, { friendlyDateTime } from \"./datetime.js\";\nimport Duration from \"./duration.js\";\nimport Settings from \"./settings.js\";\nimport { InvalidArgumentError, InvalidIntervalError } from \"./errors.js\";\nimport Invalid from \"./impl/invalid.js\";\nimport Formatter from \"./impl/formatter.js\";\nimport * as Formats from \"./impl/formats.js\";\n\nconst INVALID = \"Invalid Interval\";\n\n// checks if the start is equal to or before the end\nfunction validateStartEnd(start, end) {\n if (!start || !start.isValid) {\n return Interval.invalid(\"missing or invalid start\");\n } else if (!end || !end.isValid) {\n return Interval.invalid(\"missing or invalid end\");\n } else if (end < start) {\n return Interval.invalid(\n \"end before start\",\n `The end of an interval must be after its start, but you had start=${start.toISO()} and end=${end.toISO()}`\n );\n } else {\n return null;\n }\n}\n\n/**\n * An Interval object represents a half-open interval of time, where each endpoint is a {@link DateTime}. Conceptually, it's a container for those two endpoints, accompanied by methods for creating, parsing, interrogating, comparing, transforming, and formatting them.\n *\n * Here is a brief overview of the most commonly used methods and getters in Interval:\n *\n * * **Creation** To create an Interval, use {@link Interval.fromDateTimes}, {@link Interval.after}, {@link Interval.before}, or {@link Interval.fromISO}.\n * * **Accessors** Use {@link Interval#start} and {@link Interval#end} to get the start and end.\n * * **Interrogation** To analyze the Interval, use {@link Interval#count}, {@link Interval#length}, {@link Interval#hasSame}, {@link Interval#contains}, {@link Interval#isAfter}, or {@link Interval#isBefore}.\n * * **Transformation** To create other Intervals out of this one, use {@link Interval#set}, {@link Interval#splitAt}, {@link Interval#splitBy}, {@link Interval#divideEqually}, {@link Interval.merge}, {@link Interval.xor}, {@link Interval#union}, {@link Interval#intersection}, or {@link Interval#difference}.\n * * **Comparison** To compare this Interval to another one, use {@link Interval#equals}, {@link Interval#overlaps}, {@link Interval#abutsStart}, {@link Interval#abutsEnd}, {@link Interval#engulfs}\n * * **Output** To convert the Interval into other representations, see {@link Interval#toString}, {@link Interval#toLocaleString}, {@link Interval#toISO}, {@link Interval#toISODate}, {@link Interval#toISOTime}, {@link Interval#toFormat}, and {@link Interval#toDuration}.\n */\nexport default class Interval {\n /**\n * @private\n */\n constructor(config) {\n /**\n * @access private\n */\n this.s = config.start;\n /**\n * @access private\n */\n this.e = config.end;\n /**\n * @access private\n */\n this.invalid = config.invalid || null;\n /**\n * @access private\n */\n this.isLuxonInterval = true;\n }\n\n /**\n * Create an invalid Interval.\n * @param {string} reason - simple string of why this Interval is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {Interval}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the Interval is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidIntervalError(invalid);\n } else {\n return new Interval({ invalid });\n }\n }\n\n /**\n * Create an Interval from a start DateTime and an end DateTime. Inclusive of the start but not the end.\n * @param {DateTime|Date|Object} start\n * @param {DateTime|Date|Object} end\n * @return {Interval}\n */\n static fromDateTimes(start, end) {\n const builtStart = friendlyDateTime(start),\n builtEnd = friendlyDateTime(end);\n\n const validateError = validateStartEnd(builtStart, builtEnd);\n\n if (validateError == null) {\n return new Interval({\n start: builtStart,\n end: builtEnd,\n });\n } else {\n return validateError;\n }\n }\n\n /**\n * Create an Interval from a start DateTime and a Duration to extend to.\n * @param {DateTime|Date|Object} start\n * @param {Duration|Object|number} duration - the length of the Interval.\n * @return {Interval}\n */\n static after(start, duration) {\n const dur = Duration.fromDurationLike(duration),\n dt = friendlyDateTime(start);\n return Interval.fromDateTimes(dt, dt.plus(dur));\n }\n\n /**\n * Create an Interval from an end DateTime and a Duration to extend backwards to.\n * @param {DateTime|Date|Object} end\n * @param {Duration|Object|number} duration - the length of the Interval.\n * @return {Interval}\n */\n static before(end, duration) {\n const dur = Duration.fromDurationLike(duration),\n dt = friendlyDateTime(end);\n return Interval.fromDateTimes(dt.minus(dur), dt);\n }\n\n /**\n * Create an Interval from an ISO 8601 string.\n * Accepts `/`, `/`, and `/` formats.\n * @param {string} text - the ISO string to parse\n * @param {Object} [opts] - options to pass {@link DateTime#fromISO} and optionally {@link Duration#fromISO}\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @return {Interval}\n */\n static fromISO(text, opts) {\n const [s, e] = (text || \"\").split(\"/\", 2);\n if (s && e) {\n let start, startIsValid;\n try {\n start = DateTime.fromISO(s, opts);\n startIsValid = start.isValid;\n } catch (e) {\n startIsValid = false;\n }\n\n let end, endIsValid;\n try {\n end = DateTime.fromISO(e, opts);\n endIsValid = end.isValid;\n } catch (e) {\n endIsValid = false;\n }\n\n if (startIsValid && endIsValid) {\n return Interval.fromDateTimes(start, end);\n }\n\n if (startIsValid) {\n const dur = Duration.fromISO(e, opts);\n if (dur.isValid) {\n return Interval.after(start, dur);\n }\n } else if (endIsValid) {\n const dur = Duration.fromISO(s, opts);\n if (dur.isValid) {\n return Interval.before(end, dur);\n }\n }\n }\n return Interval.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n }\n\n /**\n * Check if an object is an Interval. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isInterval(o) {\n return (o && o.isLuxonInterval) || false;\n }\n\n /**\n * Returns the start of the Interval\n * @type {DateTime}\n */\n get start() {\n return this.isValid ? this.s : null;\n }\n\n /**\n * Returns the end of the Interval\n * @type {DateTime}\n */\n get end() {\n return this.isValid ? this.e : null;\n }\n\n /**\n * Returns whether this Interval's end is at least its start, meaning that the Interval isn't 'backwards'.\n * @type {boolean}\n */\n get isValid() {\n return this.invalidReason === null;\n }\n\n /**\n * Returns an error code if this Interval is invalid, or null if the Interval is valid\n * @type {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this Interval became invalid, or null if the Interval is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Returns the length of the Interval in the specified unit.\n * @param {string} unit - the unit (such as 'hours' or 'days') to return the length in.\n * @return {number}\n */\n length(unit = \"milliseconds\") {\n return this.isValid ? this.toDuration(...[unit]).get(unit) : NaN;\n }\n\n /**\n * Returns the count of minutes, hours, days, months, or years included in the Interval, even in part.\n * Unlike {@link Interval#length} this counts sections of the calendar, not periods of time, e.g. specifying 'day'\n * asks 'what dates are included in this interval?', not 'how many days long is this interval?'\n * @param {string} [unit='milliseconds'] - the unit of time to count.\n * @param {Object} opts - options\n * @param {boolean} [opts.useLocaleWeeks=false] - If true, use weeks based on the locale, i.e. use the locale-dependent start of the week; this operation will always use the locale of the start DateTime\n * @return {number}\n */\n count(unit = \"milliseconds\", opts) {\n if (!this.isValid) return NaN;\n const start = this.start.startOf(unit, opts);\n let end;\n if (opts?.useLocaleWeeks) {\n end = this.end.reconfigure({ locale: start.locale });\n } else {\n end = this.end;\n }\n end = end.startOf(unit, opts);\n return Math.floor(end.diff(start, unit).get(unit)) + (end.valueOf() !== this.end.valueOf());\n }\n\n /**\n * Returns whether this Interval's start and end are both in the same unit of time\n * @param {string} unit - the unit of time to check sameness on\n * @return {boolean}\n */\n hasSame(unit) {\n return this.isValid ? this.isEmpty() || this.e.minus(1).hasSame(this.s, unit) : false;\n }\n\n /**\n * Return whether this Interval has the same start and end DateTimes.\n * @return {boolean}\n */\n isEmpty() {\n return this.s.valueOf() === this.e.valueOf();\n }\n\n /**\n * Return whether this Interval's start is after the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n isAfter(dateTime) {\n if (!this.isValid) return false;\n return this.s > dateTime;\n }\n\n /**\n * Return whether this Interval's end is before the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n isBefore(dateTime) {\n if (!this.isValid) return false;\n return this.e <= dateTime;\n }\n\n /**\n * Return whether this Interval contains the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n contains(dateTime) {\n if (!this.isValid) return false;\n return this.s <= dateTime && this.e > dateTime;\n }\n\n /**\n * \"Sets\" the start and/or end dates. Returns a newly-constructed Interval.\n * @param {Object} values - the values to set\n * @param {DateTime} values.start - the starting DateTime\n * @param {DateTime} values.end - the ending DateTime\n * @return {Interval}\n */\n set({ start, end } = {}) {\n if (!this.isValid) return this;\n return Interval.fromDateTimes(start || this.s, end || this.e);\n }\n\n /**\n * Split this Interval at each of the specified DateTimes\n * @param {...DateTime} dateTimes - the unit of time to count.\n * @return {Array}\n */\n splitAt(...dateTimes) {\n if (!this.isValid) return [];\n const sorted = dateTimes\n .map(friendlyDateTime)\n .filter((d) => this.contains(d))\n .sort((a, b) => a.toMillis() - b.toMillis()),\n results = [];\n let { s } = this,\n i = 0;\n\n while (s < this.e) {\n const added = sorted[i] || this.e,\n next = +added > +this.e ? this.e : added;\n results.push(Interval.fromDateTimes(s, next));\n s = next;\n i += 1;\n }\n\n return results;\n }\n\n /**\n * Split this Interval into smaller Intervals, each of the specified length.\n * Left over time is grouped into a smaller interval\n * @param {Duration|Object|number} duration - The length of each resulting interval.\n * @return {Array}\n */\n splitBy(duration) {\n const dur = Duration.fromDurationLike(duration);\n\n if (!this.isValid || !dur.isValid || dur.as(\"milliseconds\") === 0) {\n return [];\n }\n\n let { s } = this,\n idx = 1,\n next;\n\n const results = [];\n while (s < this.e) {\n const added = this.start.plus(dur.mapUnits((x) => x * idx));\n next = +added > +this.e ? this.e : added;\n results.push(Interval.fromDateTimes(s, next));\n s = next;\n idx += 1;\n }\n\n return results;\n }\n\n /**\n * Split this Interval into the specified number of smaller intervals.\n * @param {number} numberOfParts - The number of Intervals to divide the Interval into.\n * @return {Array}\n */\n divideEqually(numberOfParts) {\n if (!this.isValid) return [];\n return this.splitBy(this.length() / numberOfParts).slice(0, numberOfParts);\n }\n\n /**\n * Return whether this Interval overlaps with the specified Interval\n * @param {Interval} other\n * @return {boolean}\n */\n overlaps(other) {\n return this.e > other.s && this.s < other.e;\n }\n\n /**\n * Return whether this Interval's end is adjacent to the specified Interval's start.\n * @param {Interval} other\n * @return {boolean}\n */\n abutsStart(other) {\n if (!this.isValid) return false;\n return +this.e === +other.s;\n }\n\n /**\n * Return whether this Interval's start is adjacent to the specified Interval's end.\n * @param {Interval} other\n * @return {boolean}\n */\n abutsEnd(other) {\n if (!this.isValid) return false;\n return +other.e === +this.s;\n }\n\n /**\n * Return whether this Interval engulfs the start and end of the specified Interval.\n * @param {Interval} other\n * @return {boolean}\n */\n engulfs(other) {\n if (!this.isValid) return false;\n return this.s <= other.s && this.e >= other.e;\n }\n\n /**\n * Return whether this Interval has the same start and end as the specified Interval.\n * @param {Interval} other\n * @return {boolean}\n */\n equals(other) {\n if (!this.isValid || !other.isValid) {\n return false;\n }\n\n return this.s.equals(other.s) && this.e.equals(other.e);\n }\n\n /**\n * Return an Interval representing the intersection of this Interval and the specified Interval.\n * Specifically, the resulting Interval has the maximum start time and the minimum end time of the two Intervals.\n * Returns null if the intersection is empty, meaning, the intervals don't intersect.\n * @param {Interval} other\n * @return {Interval}\n */\n intersection(other) {\n if (!this.isValid) return this;\n const s = this.s > other.s ? this.s : other.s,\n e = this.e < other.e ? this.e : other.e;\n\n if (s >= e) {\n return null;\n } else {\n return Interval.fromDateTimes(s, e);\n }\n }\n\n /**\n * Return an Interval representing the union of this Interval and the specified Interval.\n * Specifically, the resulting Interval has the minimum start time and the maximum end time of the two Intervals.\n * @param {Interval} other\n * @return {Interval}\n */\n union(other) {\n if (!this.isValid) return this;\n const s = this.s < other.s ? this.s : other.s,\n e = this.e > other.e ? this.e : other.e;\n return Interval.fromDateTimes(s, e);\n }\n\n /**\n * Merge an array of Intervals into a equivalent minimal set of Intervals.\n * Combines overlapping and adjacent Intervals.\n * @param {Array} intervals\n * @return {Array}\n */\n static merge(intervals) {\n const [found, final] = intervals\n .sort((a, b) => a.s - b.s)\n .reduce(\n ([sofar, current], item) => {\n if (!current) {\n return [sofar, item];\n } else if (current.overlaps(item) || current.abutsStart(item)) {\n return [sofar, current.union(item)];\n } else {\n return [sofar.concat([current]), item];\n }\n },\n [[], null]\n );\n if (final) {\n found.push(final);\n }\n return found;\n }\n\n /**\n * Return an array of Intervals representing the spans of time that only appear in one of the specified Intervals.\n * @param {Array} intervals\n * @return {Array}\n */\n static xor(intervals) {\n let start = null,\n currentCount = 0;\n const results = [],\n ends = intervals.map((i) => [\n { time: i.s, type: \"s\" },\n { time: i.e, type: \"e\" },\n ]),\n flattened = Array.prototype.concat(...ends),\n arr = flattened.sort((a, b) => a.time - b.time);\n\n for (const i of arr) {\n currentCount += i.type === \"s\" ? 1 : -1;\n\n if (currentCount === 1) {\n start = i.time;\n } else {\n if (start && +start !== +i.time) {\n results.push(Interval.fromDateTimes(start, i.time));\n }\n\n start = null;\n }\n }\n\n return Interval.merge(results);\n }\n\n /**\n * Return an Interval representing the span of time in this Interval that doesn't overlap with any of the specified Intervals.\n * @param {...Interval} intervals\n * @return {Array}\n */\n difference(...intervals) {\n return Interval.xor([this].concat(intervals))\n .map((i) => this.intersection(i))\n .filter((i) => i && !i.isEmpty());\n }\n\n /**\n * Returns a string representation of this Interval appropriate for debugging.\n * @return {string}\n */\n toString() {\n if (!this.isValid) return INVALID;\n return `[${this.s.toISO()} – ${this.e.toISO()})`;\n }\n\n /**\n * Returns a string representation of this Interval appropriate for the REPL.\n * @return {string}\n */\n [Symbol.for(\"nodejs.util.inspect.custom\")]() {\n if (this.isValid) {\n return `Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`;\n } else {\n return `Interval { Invalid, reason: ${this.invalidReason} }`;\n }\n }\n\n /**\n * Returns a localized string representing this Interval. Accepts the same options as the\n * Intl.DateTimeFormat constructor and any presets defined by Luxon, such as\n * {@link DateTime.DATE_FULL} or {@link DateTime.TIME_SIMPLE}. The exact behavior of this method\n * is browser-specific, but in general it will return an appropriate representation of the\n * Interval in the assigned locale. Defaults to the system's locale if no locale has been\n * specified.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {Object} [formatOpts=DateTime.DATE_SHORT] - Either a DateTime preset or\n * Intl.DateTimeFormat constructor options.\n * @param {Object} opts - Options to override the configuration of the start DateTime.\n * @example Interval.fromISO('2022-11-07T09:00Z/2022-11-08T09:00Z').toLocaleString(); //=> 11/7/2022 – 11/8/2022\n * @example Interval.fromISO('2022-11-07T09:00Z/2022-11-08T09:00Z').toLocaleString(DateTime.DATE_FULL); //=> November 7 – 8, 2022\n * @example Interval.fromISO('2022-11-07T09:00Z/2022-11-08T09:00Z').toLocaleString(DateTime.DATE_FULL, { locale: 'fr-FR' }); //=> 7–8 novembre 2022\n * @example Interval.fromISO('2022-11-07T17:00Z/2022-11-07T19:00Z').toLocaleString(DateTime.TIME_SIMPLE); //=> 6:00 – 8:00 PM\n * @example Interval.fromISO('2022-11-07T17:00Z/2022-11-07T19:00Z').toLocaleString({ weekday: 'short', month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' }); //=> Mon, Nov 07, 6:00 – 8:00 p\n * @return {string}\n */\n toLocaleString(formatOpts = Formats.DATE_SHORT, opts = {}) {\n return this.isValid\n ? Formatter.create(this.s.loc.clone(opts), formatOpts).formatInterval(this)\n : INVALID;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Interval.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @param {Object} opts - The same options as {@link DateTime#toISO}\n * @return {string}\n */\n toISO(opts) {\n if (!this.isValid) return INVALID;\n return `${this.s.toISO(opts)}/${this.e.toISO(opts)}`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of date of this Interval.\n * The time components are ignored.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @return {string}\n */\n toISODate() {\n if (!this.isValid) return INVALID;\n return `${this.s.toISODate()}/${this.e.toISODate()}`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of time of this Interval.\n * The date components are ignored.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @param {Object} opts - The same options as {@link DateTime#toISO}\n * @return {string}\n */\n toISOTime(opts) {\n if (!this.isValid) return INVALID;\n return `${this.s.toISOTime(opts)}/${this.e.toISOTime(opts)}`;\n }\n\n /**\n * Returns a string representation of this Interval formatted according to the specified format\n * string. **You may not want this.** See {@link Interval#toLocaleString} for a more flexible\n * formatting tool.\n * @param {string} dateFormat - The format string. This string formats the start and end time.\n * See {@link DateTime#toFormat} for details.\n * @param {Object} opts - Options.\n * @param {string} [opts.separator = ' – '] - A separator to place between the start and end\n * representations.\n * @return {string}\n */\n toFormat(dateFormat, { separator = \" – \" } = {}) {\n if (!this.isValid) return INVALID;\n return `${this.s.toFormat(dateFormat)}${separator}${this.e.toFormat(dateFormat)}`;\n }\n\n /**\n * Return a Duration representing the time spanned by this interval.\n * @param {string|string[]} [unit=['milliseconds']] - the unit or units (such as 'hours' or 'days') to include in the duration.\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @example Interval.fromDateTimes(dt1, dt2).toDuration().toObject() //=> { milliseconds: 88489257 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration('days').toObject() //=> { days: 1.0241812152777778 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes']).toObject() //=> { hours: 24, minutes: 34.82095 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes', 'seconds']).toObject() //=> { hours: 24, minutes: 34, seconds: 49.257 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration('seconds').toObject() //=> { seconds: 88489.257 }\n * @return {Duration}\n */\n toDuration(unit, opts) {\n if (!this.isValid) {\n return Duration.invalid(this.invalidReason);\n }\n return this.e.diff(this.s, unit, opts);\n }\n\n /**\n * Run mapFn on the interval start and end, returning a new Interval from the resulting DateTimes\n * @param {function} mapFn\n * @return {Interval}\n * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.toUTC())\n * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.plus({ hours: 2 }))\n */\n mapEndpoints(mapFn) {\n return Interval.fromDateTimes(mapFn(this.s), mapFn(this.e));\n }\n}\n","import DateTime from \"./datetime.js\";\nimport Settings from \"./settings.js\";\nimport Locale from \"./impl/locale.js\";\nimport IANAZone from \"./zones/IANAZone.js\";\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\n\nimport { hasLocaleWeekInfo, hasRelative } from \"./impl/util.js\";\n\n/**\n * The Info class contains static methods for retrieving general time and date related data. For example, it has methods for finding out if a time zone has a DST, for listing the months in any supported locale, and for discovering which of Luxon features are available in the current environment.\n */\nexport default class Info {\n /**\n * Return whether the specified zone contains a DST.\n * @param {string|Zone} [zone='local'] - Zone to check. Defaults to the environment's local zone.\n * @return {boolean}\n */\n static hasDST(zone = Settings.defaultZone) {\n const proto = DateTime.now().setZone(zone).set({ month: 12 });\n\n return !zone.isUniversal && proto.offset !== proto.set({ month: 6 }).offset;\n }\n\n /**\n * Return whether the specified zone is a valid IANA specifier.\n * @param {string} zone - Zone to check\n * @return {boolean}\n */\n static isValidIANAZone(zone) {\n return IANAZone.isValidZone(zone);\n }\n\n /**\n * Converts the input into a {@link Zone} instance.\n *\n * * If `input` is already a Zone instance, it is returned unchanged.\n * * If `input` is a string containing a valid time zone name, a Zone instance\n * with that name is returned.\n * * If `input` is a string that doesn't refer to a known time zone, a Zone\n * instance with {@link Zone#isValid} == false is returned.\n * * If `input is a number, a Zone instance with the specified fixed offset\n * in minutes is returned.\n * * If `input` is `null` or `undefined`, the default zone is returned.\n * @param {string|Zone|number} [input] - the value to be converted\n * @return {Zone}\n */\n static normalizeZone(input) {\n return normalizeZone(input, Settings.defaultZone);\n }\n\n /**\n * Get the weekday on which the week starts according to the given locale.\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @returns {number} the start of the week, 1 for Monday through 7 for Sunday\n */\n static getStartOfWeek({ locale = null, locObj = null } = {}) {\n return (locObj || Locale.create(locale)).getStartOfWeek();\n }\n\n /**\n * Get the minimum number of days necessary in a week before it is considered part of the next year according\n * to the given locale.\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @returns {number}\n */\n static getMinimumDaysInFirstWeek({ locale = null, locObj = null } = {}) {\n return (locObj || Locale.create(locale)).getMinDaysInFirstWeek();\n }\n\n /**\n * Get the weekdays, which are considered the weekend according to the given locale\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @returns {number[]} an array of weekdays, 1 for Monday through 7 for Sunday\n */\n static getWeekendWeekdays({ locale = null, locObj = null } = {}) {\n // copy the array, because we cache it internally\n return (locObj || Locale.create(locale)).getWeekendDays().slice();\n }\n\n /**\n * Return an array of standalone month names.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {string} [length='long'] - the length of the month representation, such as \"numeric\", \"2-digit\", \"narrow\", \"short\", \"long\"\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @param {string} [opts.outputCalendar='gregory'] - the calendar\n * @example Info.months()[0] //=> 'January'\n * @example Info.months('short')[0] //=> 'Jan'\n * @example Info.months('numeric')[0] //=> '1'\n * @example Info.months('short', { locale: 'fr-CA' } )[0] //=> 'janv.'\n * @example Info.months('numeric', { locale: 'ar' })[0] //=> '١'\n * @example Info.months('long', { outputCalendar: 'islamic' })[0] //=> 'Rabiʻ I'\n * @return {Array}\n */\n static months(\n length = \"long\",\n { locale = null, numberingSystem = null, locObj = null, outputCalendar = \"gregory\" } = {}\n ) {\n return (locObj || Locale.create(locale, numberingSystem, outputCalendar)).months(length);\n }\n\n /**\n * Return an array of format month names.\n * Format months differ from standalone months in that they're meant to appear next to the day of the month. In some languages, that\n * changes the string.\n * See {@link Info#months}\n * @param {string} [length='long'] - the length of the month representation, such as \"numeric\", \"2-digit\", \"narrow\", \"short\", \"long\"\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @param {string} [opts.outputCalendar='gregory'] - the calendar\n * @return {Array}\n */\n static monthsFormat(\n length = \"long\",\n { locale = null, numberingSystem = null, locObj = null, outputCalendar = \"gregory\" } = {}\n ) {\n return (locObj || Locale.create(locale, numberingSystem, outputCalendar)).months(length, true);\n }\n\n /**\n * Return an array of standalone week names.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {string} [length='long'] - the length of the weekday representation, such as \"narrow\", \"short\", \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @example Info.weekdays()[0] //=> 'Monday'\n * @example Info.weekdays('short')[0] //=> 'Mon'\n * @example Info.weekdays('short', { locale: 'fr-CA' })[0] //=> 'lun.'\n * @example Info.weekdays('short', { locale: 'ar' })[0] //=> 'الاثنين'\n * @return {Array}\n */\n static weekdays(length = \"long\", { locale = null, numberingSystem = null, locObj = null } = {}) {\n return (locObj || Locale.create(locale, numberingSystem, null)).weekdays(length);\n }\n\n /**\n * Return an array of format week names.\n * Format weekdays differ from standalone weekdays in that they're meant to appear next to more date information. In some languages, that\n * changes the string.\n * See {@link Info#weekdays}\n * @param {string} [length='long'] - the length of the month representation, such as \"narrow\", \"short\", \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale=null] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @return {Array}\n */\n static weekdaysFormat(\n length = \"long\",\n { locale = null, numberingSystem = null, locObj = null } = {}\n ) {\n return (locObj || Locale.create(locale, numberingSystem, null)).weekdays(length, true);\n }\n\n /**\n * Return an array of meridiems.\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @example Info.meridiems() //=> [ 'AM', 'PM' ]\n * @example Info.meridiems({ locale: 'my' }) //=> [ 'နံနက်', 'ညနေ' ]\n * @return {Array}\n */\n static meridiems({ locale = null } = {}) {\n return Locale.create(locale).meridiems();\n }\n\n /**\n * Return an array of eras, such as ['BC', 'AD']. The locale can be specified, but the calendar system is always Gregorian.\n * @param {string} [length='short'] - the length of the era representation, such as \"short\" or \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @example Info.eras() //=> [ 'BC', 'AD' ]\n * @example Info.eras('long') //=> [ 'Before Christ', 'Anno Domini' ]\n * @example Info.eras('long', { locale: 'fr' }) //=> [ 'avant Jésus-Christ', 'après Jésus-Christ' ]\n * @return {Array}\n */\n static eras(length = \"short\", { locale = null } = {}) {\n return Locale.create(locale, null, \"gregory\").eras(length);\n }\n\n /**\n * Return the set of available features in this environment.\n * Some features of Luxon are not available in all environments. For example, on older browsers, relative time formatting support is not available. Use this function to figure out if that's the case.\n * Keys:\n * * `relative`: whether this environment supports relative time formatting\n * * `localeWeek`: whether this environment supports different weekdays for the start of the week based on the locale\n * @example Info.features() //=> { relative: false, localeWeek: true }\n * @return {Object}\n */\n static features() {\n return { relative: hasRelative(), localeWeek: hasLocaleWeekInfo() };\n }\n}\n","import Duration from \"../duration.js\";\n\nfunction dayDiff(earlier, later) {\n const utcDayStart = (dt) => dt.toUTC(0, { keepLocalTime: true }).startOf(\"day\").valueOf(),\n ms = utcDayStart(later) - utcDayStart(earlier);\n return Math.floor(Duration.fromMillis(ms).as(\"days\"));\n}\n\nfunction highOrderDiffs(cursor, later, units) {\n const differs = [\n [\"years\", (a, b) => b.year - a.year],\n [\"quarters\", (a, b) => b.quarter - a.quarter + (b.year - a.year) * 4],\n [\"months\", (a, b) => b.month - a.month + (b.year - a.year) * 12],\n [\n \"weeks\",\n (a, b) => {\n const days = dayDiff(a, b);\n return (days - (days % 7)) / 7;\n },\n ],\n [\"days\", dayDiff],\n ];\n\n const results = {};\n const earlier = cursor;\n let lowestOrder, highWater;\n\n /* This loop tries to diff using larger units first.\n If we overshoot, we backtrack and try the next smaller unit.\n \"cursor\" starts out at the earlier timestamp and moves closer and closer to \"later\"\n as we use smaller and smaller units.\n highWater keeps track of where we would be if we added one more of the smallest unit,\n this is used later to potentially convert any difference smaller than the smallest higher order unit\n into a fraction of that smallest higher order unit\n */\n for (const [unit, differ] of differs) {\n if (units.indexOf(unit) >= 0) {\n lowestOrder = unit;\n\n results[unit] = differ(cursor, later);\n highWater = earlier.plus(results);\n\n if (highWater > later) {\n // we overshot the end point, backtrack cursor by 1\n results[unit]--;\n cursor = earlier.plus(results);\n\n // if we are still overshooting now, we need to backtrack again\n // this happens in certain situations when diffing times in different zones,\n // because this calculation ignores time zones\n if (cursor > later) {\n // keep the \"overshot by 1\" around as highWater\n highWater = cursor;\n // backtrack cursor by 1\n results[unit]--;\n cursor = earlier.plus(results);\n }\n } else {\n cursor = highWater;\n }\n }\n }\n\n return [cursor, results, highWater, lowestOrder];\n}\n\nexport default function (earlier, later, units, opts) {\n let [cursor, results, highWater, lowestOrder] = highOrderDiffs(earlier, later, units);\n\n const remainingMillis = later - cursor;\n\n const lowerOrderUnits = units.filter(\n (u) => [\"hours\", \"minutes\", \"seconds\", \"milliseconds\"].indexOf(u) >= 0\n );\n\n if (lowerOrderUnits.length === 0) {\n if (highWater < later) {\n highWater = cursor.plus({ [lowestOrder]: 1 });\n }\n\n if (highWater !== cursor) {\n results[lowestOrder] = (results[lowestOrder] || 0) + remainingMillis / (highWater - cursor);\n }\n }\n\n const duration = Duration.fromObject(results, opts);\n\n if (lowerOrderUnits.length > 0) {\n return Duration.fromMillis(remainingMillis, opts)\n .shiftTo(...lowerOrderUnits)\n .plus(duration);\n } else {\n return duration;\n }\n}\n","const numberingSystems = {\n arab: \"[\\u0660-\\u0669]\",\n arabext: \"[\\u06F0-\\u06F9]\",\n bali: \"[\\u1B50-\\u1B59]\",\n beng: \"[\\u09E6-\\u09EF]\",\n deva: \"[\\u0966-\\u096F]\",\n fullwide: \"[\\uFF10-\\uFF19]\",\n gujr: \"[\\u0AE6-\\u0AEF]\",\n hanidec: \"[〇|一|二|三|四|五|六|七|八|九]\",\n khmr: \"[\\u17E0-\\u17E9]\",\n knda: \"[\\u0CE6-\\u0CEF]\",\n laoo: \"[\\u0ED0-\\u0ED9]\",\n limb: \"[\\u1946-\\u194F]\",\n mlym: \"[\\u0D66-\\u0D6F]\",\n mong: \"[\\u1810-\\u1819]\",\n mymr: \"[\\u1040-\\u1049]\",\n orya: \"[\\u0B66-\\u0B6F]\",\n tamldec: \"[\\u0BE6-\\u0BEF]\",\n telu: \"[\\u0C66-\\u0C6F]\",\n thai: \"[\\u0E50-\\u0E59]\",\n tibt: \"[\\u0F20-\\u0F29]\",\n latn: \"\\\\d\",\n};\n\nconst numberingSystemsUTF16 = {\n arab: [1632, 1641],\n arabext: [1776, 1785],\n bali: [6992, 7001],\n beng: [2534, 2543],\n deva: [2406, 2415],\n fullwide: [65296, 65303],\n gujr: [2790, 2799],\n khmr: [6112, 6121],\n knda: [3302, 3311],\n laoo: [3792, 3801],\n limb: [6470, 6479],\n mlym: [3430, 3439],\n mong: [6160, 6169],\n mymr: [4160, 4169],\n orya: [2918, 2927],\n tamldec: [3046, 3055],\n telu: [3174, 3183],\n thai: [3664, 3673],\n tibt: [3872, 3881],\n};\n\nconst hanidecChars = numberingSystems.hanidec.replace(/[\\[|\\]]/g, \"\").split(\"\");\n\nexport function parseDigits(str) {\n let value = parseInt(str, 10);\n if (isNaN(value)) {\n value = \"\";\n for (let i = 0; i < str.length; i++) {\n const code = str.charCodeAt(i);\n\n if (str[i].search(numberingSystems.hanidec) !== -1) {\n value += hanidecChars.indexOf(str[i]);\n } else {\n for (const key in numberingSystemsUTF16) {\n const [min, max] = numberingSystemsUTF16[key];\n if (code >= min && code <= max) {\n value += code - min;\n }\n }\n }\n }\n return parseInt(value, 10);\n } else {\n return value;\n }\n}\n\nexport function digitRegex({ numberingSystem }, append = \"\") {\n return new RegExp(`${numberingSystems[numberingSystem || \"latn\"]}${append}`);\n}\n","import { parseMillis, isUndefined, untruncateYear, signedOffset, hasOwnProperty } from \"./util.js\";\nimport Formatter from \"./formatter.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\nimport DateTime from \"../datetime.js\";\nimport { digitRegex, parseDigits } from \"./digits.js\";\nimport { ConflictingSpecificationError } from \"../errors.js\";\n\nconst MISSING_FTP = \"missing Intl.DateTimeFormat.formatToParts support\";\n\nfunction intUnit(regex, post = (i) => i) {\n return { regex, deser: ([s]) => post(parseDigits(s)) };\n}\n\nconst NBSP = String.fromCharCode(160);\nconst spaceOrNBSP = `[ ${NBSP}]`;\nconst spaceOrNBSPRegExp = new RegExp(spaceOrNBSP, \"g\");\n\nfunction fixListRegex(s) {\n // make dots optional and also make them literal\n // make space and non breakable space characters interchangeable\n return s.replace(/\\./g, \"\\\\.?\").replace(spaceOrNBSPRegExp, spaceOrNBSP);\n}\n\nfunction stripInsensitivities(s) {\n return s\n .replace(/\\./g, \"\") // ignore dots that were made optional\n .replace(spaceOrNBSPRegExp, \" \") // interchange space and nbsp\n .toLowerCase();\n}\n\nfunction oneOf(strings, startIndex) {\n if (strings === null) {\n return null;\n } else {\n return {\n regex: RegExp(strings.map(fixListRegex).join(\"|\")),\n deser: ([s]) =>\n strings.findIndex((i) => stripInsensitivities(s) === stripInsensitivities(i)) + startIndex,\n };\n }\n}\n\nfunction offset(regex, groups) {\n return { regex, deser: ([, h, m]) => signedOffset(h, m), groups };\n}\n\nfunction simple(regex) {\n return { regex, deser: ([s]) => s };\n}\n\nfunction escapeToken(value) {\n return value.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g, \"\\\\$&\");\n}\n\n/**\n * @param token\n * @param {Locale} loc\n */\nfunction unitForToken(token, loc) {\n const one = digitRegex(loc),\n two = digitRegex(loc, \"{2}\"),\n three = digitRegex(loc, \"{3}\"),\n four = digitRegex(loc, \"{4}\"),\n six = digitRegex(loc, \"{6}\"),\n oneOrTwo = digitRegex(loc, \"{1,2}\"),\n oneToThree = digitRegex(loc, \"{1,3}\"),\n oneToSix = digitRegex(loc, \"{1,6}\"),\n oneToNine = digitRegex(loc, \"{1,9}\"),\n twoToFour = digitRegex(loc, \"{2,4}\"),\n fourToSix = digitRegex(loc, \"{4,6}\"),\n literal = (t) => ({ regex: RegExp(escapeToken(t.val)), deser: ([s]) => s, literal: true }),\n unitate = (t) => {\n if (token.literal) {\n return literal(t);\n }\n switch (t.val) {\n // era\n case \"G\":\n return oneOf(loc.eras(\"short\"), 0);\n case \"GG\":\n return oneOf(loc.eras(\"long\"), 0);\n // years\n case \"y\":\n return intUnit(oneToSix);\n case \"yy\":\n return intUnit(twoToFour, untruncateYear);\n case \"yyyy\":\n return intUnit(four);\n case \"yyyyy\":\n return intUnit(fourToSix);\n case \"yyyyyy\":\n return intUnit(six);\n // months\n case \"M\":\n return intUnit(oneOrTwo);\n case \"MM\":\n return intUnit(two);\n case \"MMM\":\n return oneOf(loc.months(\"short\", true), 1);\n case \"MMMM\":\n return oneOf(loc.months(\"long\", true), 1);\n case \"L\":\n return intUnit(oneOrTwo);\n case \"LL\":\n return intUnit(two);\n case \"LLL\":\n return oneOf(loc.months(\"short\", false), 1);\n case \"LLLL\":\n return oneOf(loc.months(\"long\", false), 1);\n // dates\n case \"d\":\n return intUnit(oneOrTwo);\n case \"dd\":\n return intUnit(two);\n // ordinals\n case \"o\":\n return intUnit(oneToThree);\n case \"ooo\":\n return intUnit(three);\n // time\n case \"HH\":\n return intUnit(two);\n case \"H\":\n return intUnit(oneOrTwo);\n case \"hh\":\n return intUnit(two);\n case \"h\":\n return intUnit(oneOrTwo);\n case \"mm\":\n return intUnit(two);\n case \"m\":\n return intUnit(oneOrTwo);\n case \"q\":\n return intUnit(oneOrTwo);\n case \"qq\":\n return intUnit(two);\n case \"s\":\n return intUnit(oneOrTwo);\n case \"ss\":\n return intUnit(two);\n case \"S\":\n return intUnit(oneToThree);\n case \"SSS\":\n return intUnit(three);\n case \"u\":\n return simple(oneToNine);\n case \"uu\":\n return simple(oneOrTwo);\n case \"uuu\":\n return intUnit(one);\n // meridiem\n case \"a\":\n return oneOf(loc.meridiems(), 0);\n // weekYear (k)\n case \"kkkk\":\n return intUnit(four);\n case \"kk\":\n return intUnit(twoToFour, untruncateYear);\n // weekNumber (W)\n case \"W\":\n return intUnit(oneOrTwo);\n case \"WW\":\n return intUnit(two);\n // weekdays\n case \"E\":\n case \"c\":\n return intUnit(one);\n case \"EEE\":\n return oneOf(loc.weekdays(\"short\", false), 1);\n case \"EEEE\":\n return oneOf(loc.weekdays(\"long\", false), 1);\n case \"ccc\":\n return oneOf(loc.weekdays(\"short\", true), 1);\n case \"cccc\":\n return oneOf(loc.weekdays(\"long\", true), 1);\n // offset/zone\n case \"Z\":\n case \"ZZ\":\n return offset(new RegExp(`([+-]${oneOrTwo.source})(?::(${two.source}))?`), 2);\n case \"ZZZ\":\n return offset(new RegExp(`([+-]${oneOrTwo.source})(${two.source})?`), 2);\n // we don't support ZZZZ (PST) or ZZZZZ (Pacific Standard Time) in parsing\n // because we don't have any way to figure out what they are\n case \"z\":\n return simple(/[a-z_+-/]{1,256}?/i);\n // this special-case \"token\" represents a place where a macro-token expanded into a white-space literal\n // in this case we accept any non-newline white-space\n case \" \":\n return simple(/[^\\S\\n\\r]/);\n default:\n return literal(t);\n }\n };\n\n const unit = unitate(token) || {\n invalidReason: MISSING_FTP,\n };\n\n unit.token = token;\n\n return unit;\n}\n\nconst partTypeStyleToTokenVal = {\n year: {\n \"2-digit\": \"yy\",\n numeric: \"yyyyy\",\n },\n month: {\n numeric: \"M\",\n \"2-digit\": \"MM\",\n short: \"MMM\",\n long: \"MMMM\",\n },\n day: {\n numeric: \"d\",\n \"2-digit\": \"dd\",\n },\n weekday: {\n short: \"EEE\",\n long: \"EEEE\",\n },\n dayperiod: \"a\",\n dayPeriod: \"a\",\n hour12: {\n numeric: \"h\",\n \"2-digit\": \"hh\",\n },\n hour24: {\n numeric: \"H\",\n \"2-digit\": \"HH\",\n },\n minute: {\n numeric: \"m\",\n \"2-digit\": \"mm\",\n },\n second: {\n numeric: \"s\",\n \"2-digit\": \"ss\",\n },\n timeZoneName: {\n long: \"ZZZZZ\",\n short: \"ZZZ\",\n },\n};\n\nfunction tokenForPart(part, formatOpts, resolvedOpts) {\n const { type, value } = part;\n\n if (type === \"literal\") {\n const isSpace = /^\\s+$/.test(value);\n return {\n literal: !isSpace,\n val: isSpace ? \" \" : value,\n };\n }\n\n const style = formatOpts[type];\n\n // The user might have explicitly specified hour12 or hourCycle\n // if so, respect their decision\n // if not, refer back to the resolvedOpts, which are based on the locale\n let actualType = type;\n if (type === \"hour\") {\n if (formatOpts.hour12 != null) {\n actualType = formatOpts.hour12 ? \"hour12\" : \"hour24\";\n } else if (formatOpts.hourCycle != null) {\n if (formatOpts.hourCycle === \"h11\" || formatOpts.hourCycle === \"h12\") {\n actualType = \"hour12\";\n } else {\n actualType = \"hour24\";\n }\n } else {\n // tokens only differentiate between 24 hours or not,\n // so we do not need to check hourCycle here, which is less supported anyways\n actualType = resolvedOpts.hour12 ? \"hour12\" : \"hour24\";\n }\n }\n let val = partTypeStyleToTokenVal[actualType];\n if (typeof val === \"object\") {\n val = val[style];\n }\n\n if (val) {\n return {\n literal: false,\n val,\n };\n }\n\n return undefined;\n}\n\nfunction buildRegex(units) {\n const re = units.map((u) => u.regex).reduce((f, r) => `${f}(${r.source})`, \"\");\n return [`^${re}$`, units];\n}\n\nfunction match(input, regex, handlers) {\n const matches = input.match(regex);\n\n if (matches) {\n const all = {};\n let matchIndex = 1;\n for (const i in handlers) {\n if (hasOwnProperty(handlers, i)) {\n const h = handlers[i],\n groups = h.groups ? h.groups + 1 : 1;\n if (!h.literal && h.token) {\n all[h.token.val[0]] = h.deser(matches.slice(matchIndex, matchIndex + groups));\n }\n matchIndex += groups;\n }\n }\n return [matches, all];\n } else {\n return [matches, {}];\n }\n}\n\nfunction dateTimeFromMatches(matches) {\n const toField = (token) => {\n switch (token) {\n case \"S\":\n return \"millisecond\";\n case \"s\":\n return \"second\";\n case \"m\":\n return \"minute\";\n case \"h\":\n case \"H\":\n return \"hour\";\n case \"d\":\n return \"day\";\n case \"o\":\n return \"ordinal\";\n case \"L\":\n case \"M\":\n return \"month\";\n case \"y\":\n return \"year\";\n case \"E\":\n case \"c\":\n return \"weekday\";\n case \"W\":\n return \"weekNumber\";\n case \"k\":\n return \"weekYear\";\n case \"q\":\n return \"quarter\";\n default:\n return null;\n }\n };\n\n let zone = null;\n let specificOffset;\n if (!isUndefined(matches.z)) {\n zone = IANAZone.create(matches.z);\n }\n\n if (!isUndefined(matches.Z)) {\n if (!zone) {\n zone = new FixedOffsetZone(matches.Z);\n }\n specificOffset = matches.Z;\n }\n\n if (!isUndefined(matches.q)) {\n matches.M = (matches.q - 1) * 3 + 1;\n }\n\n if (!isUndefined(matches.h)) {\n if (matches.h < 12 && matches.a === 1) {\n matches.h += 12;\n } else if (matches.h === 12 && matches.a === 0) {\n matches.h = 0;\n }\n }\n\n if (matches.G === 0 && matches.y) {\n matches.y = -matches.y;\n }\n\n if (!isUndefined(matches.u)) {\n matches.S = parseMillis(matches.u);\n }\n\n const vals = Object.keys(matches).reduce((r, k) => {\n const f = toField(k);\n if (f) {\n r[f] = matches[k];\n }\n\n return r;\n }, {});\n\n return [vals, zone, specificOffset];\n}\n\nlet dummyDateTimeCache = null;\n\nfunction getDummyDateTime() {\n if (!dummyDateTimeCache) {\n dummyDateTimeCache = DateTime.fromMillis(1555555555555);\n }\n\n return dummyDateTimeCache;\n}\n\nfunction maybeExpandMacroToken(token, locale) {\n if (token.literal) {\n return token;\n }\n\n const formatOpts = Formatter.macroTokenToFormatOpts(token.val);\n const tokens = formatOptsToTokens(formatOpts, locale);\n\n if (tokens == null || tokens.includes(undefined)) {\n return token;\n }\n\n return tokens;\n}\n\nexport function expandMacroTokens(tokens, locale) {\n return Array.prototype.concat(...tokens.map((t) => maybeExpandMacroToken(t, locale)));\n}\n\n/**\n * @private\n */\n\nexport function explainFromTokens(locale, input, format) {\n const tokens = expandMacroTokens(Formatter.parseFormat(format), locale),\n units = tokens.map((t) => unitForToken(t, locale)),\n disqualifyingUnit = units.find((t) => t.invalidReason);\n\n if (disqualifyingUnit) {\n return { input, tokens, invalidReason: disqualifyingUnit.invalidReason };\n } else {\n const [regexString, handlers] = buildRegex(units),\n regex = RegExp(regexString, \"i\"),\n [rawMatches, matches] = match(input, regex, handlers),\n [result, zone, specificOffset] = matches\n ? dateTimeFromMatches(matches)\n : [null, null, undefined];\n if (hasOwnProperty(matches, \"a\") && hasOwnProperty(matches, \"H\")) {\n throw new ConflictingSpecificationError(\n \"Can't include meridiem when specifying 24-hour format\"\n );\n }\n return { input, tokens, regex, rawMatches, matches, result, zone, specificOffset };\n }\n}\n\nexport function parseFromTokens(locale, input, format) {\n const { result, zone, specificOffset, invalidReason } = explainFromTokens(locale, input, format);\n return [result, zone, specificOffset, invalidReason];\n}\n\nexport function formatOptsToTokens(formatOpts, locale) {\n if (!formatOpts) {\n return null;\n }\n\n const formatter = Formatter.create(locale, formatOpts);\n const df = formatter.dtFormatter(getDummyDateTime());\n const parts = df.formatToParts();\n const resolvedOpts = df.resolvedOptions();\n return parts.map((p) => tokenForPart(p, formatOpts, resolvedOpts));\n}\n","import Duration from \"./duration.js\";\nimport Interval from \"./interval.js\";\nimport Settings from \"./settings.js\";\nimport Info from \"./info.js\";\nimport Formatter from \"./impl/formatter.js\";\nimport FixedOffsetZone from \"./zones/fixedOffsetZone.js\";\nimport Locale from \"./impl/locale.js\";\nimport {\n isUndefined,\n maybeArray,\n isDate,\n isNumber,\n bestBy,\n daysInMonth,\n daysInYear,\n isLeapYear,\n weeksInWeekYear,\n normalizeObject,\n roundTo,\n objToLocalTS,\n padStart,\n} from \"./impl/util.js\";\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\nimport diff from \"./impl/diff.js\";\nimport { parseRFC2822Date, parseISODate, parseHTTPDate, parseSQL } from \"./impl/regexParser.js\";\nimport {\n parseFromTokens,\n explainFromTokens,\n formatOptsToTokens,\n expandMacroTokens,\n} from \"./impl/tokenParser.js\";\nimport {\n gregorianToWeek,\n weekToGregorian,\n gregorianToOrdinal,\n ordinalToGregorian,\n hasInvalidGregorianData,\n hasInvalidWeekData,\n hasInvalidOrdinalData,\n hasInvalidTimeData,\n usesLocalWeekValues,\n isoWeekdayToLocal,\n} from \"./impl/conversions.js\";\nimport * as Formats from \"./impl/formats.js\";\nimport {\n InvalidArgumentError,\n ConflictingSpecificationError,\n InvalidUnitError,\n InvalidDateTimeError,\n} from \"./errors.js\";\nimport Invalid from \"./impl/invalid.js\";\n\nconst INVALID = \"Invalid DateTime\";\nconst MAX_DATE = 8.64e15;\n\nfunction unsupportedZone(zone) {\n return new Invalid(\"unsupported zone\", `the zone \"${zone.name}\" is not supported`);\n}\n\n// we cache week data on the DT object and this intermediates the cache\n/**\n * @param {DateTime} dt\n */\nfunction possiblyCachedWeekData(dt) {\n if (dt.weekData === null) {\n dt.weekData = gregorianToWeek(dt.c);\n }\n return dt.weekData;\n}\n\n/**\n * @param {DateTime} dt\n */\nfunction possiblyCachedLocalWeekData(dt) {\n if (dt.localWeekData === null) {\n dt.localWeekData = gregorianToWeek(\n dt.c,\n dt.loc.getMinDaysInFirstWeek(),\n dt.loc.getStartOfWeek()\n );\n }\n return dt.localWeekData;\n}\n\n// clone really means, \"make a new object with these modifications\". all \"setters\" really use this\n// to create a new object while only changing some of the properties\nfunction clone(inst, alts) {\n const current = {\n ts: inst.ts,\n zone: inst.zone,\n c: inst.c,\n o: inst.o,\n loc: inst.loc,\n invalid: inst.invalid,\n };\n return new DateTime({ ...current, ...alts, old: current });\n}\n\n// find the right offset a given local time. The o input is our guess, which determines which\n// offset we'll pick in ambiguous cases (e.g. there are two 3 AMs b/c Fallback DST)\nfunction fixOffset(localTS, o, tz) {\n // Our UTC time is just a guess because our offset is just a guess\n let utcGuess = localTS - o * 60 * 1000;\n\n // Test whether the zone matches the offset for this ts\n const o2 = tz.offset(utcGuess);\n\n // If so, offset didn't change and we're done\n if (o === o2) {\n return [utcGuess, o];\n }\n\n // If not, change the ts by the difference in the offset\n utcGuess -= (o2 - o) * 60 * 1000;\n\n // If that gives us the local time we want, we're done\n const o3 = tz.offset(utcGuess);\n if (o2 === o3) {\n return [utcGuess, o2];\n }\n\n // If it's different, we're in a hole time. The offset has changed, but the we don't adjust the time\n return [localTS - Math.min(o2, o3) * 60 * 1000, Math.max(o2, o3)];\n}\n\n// convert an epoch timestamp into a calendar object with the given offset\nfunction tsToObj(ts, offset) {\n ts += offset * 60 * 1000;\n\n const d = new Date(ts);\n\n return {\n year: d.getUTCFullYear(),\n month: d.getUTCMonth() + 1,\n day: d.getUTCDate(),\n hour: d.getUTCHours(),\n minute: d.getUTCMinutes(),\n second: d.getUTCSeconds(),\n millisecond: d.getUTCMilliseconds(),\n };\n}\n\n// convert a calendar object to a epoch timestamp\nfunction objToTS(obj, offset, zone) {\n return fixOffset(objToLocalTS(obj), offset, zone);\n}\n\n// create a new DT instance by adding a duration, adjusting for DSTs\nfunction adjustTime(inst, dur) {\n const oPre = inst.o,\n year = inst.c.year + Math.trunc(dur.years),\n month = inst.c.month + Math.trunc(dur.months) + Math.trunc(dur.quarters) * 3,\n c = {\n ...inst.c,\n year,\n month,\n day:\n Math.min(inst.c.day, daysInMonth(year, month)) +\n Math.trunc(dur.days) +\n Math.trunc(dur.weeks) * 7,\n },\n millisToAdd = Duration.fromObject({\n years: dur.years - Math.trunc(dur.years),\n quarters: dur.quarters - Math.trunc(dur.quarters),\n months: dur.months - Math.trunc(dur.months),\n weeks: dur.weeks - Math.trunc(dur.weeks),\n days: dur.days - Math.trunc(dur.days),\n hours: dur.hours,\n minutes: dur.minutes,\n seconds: dur.seconds,\n milliseconds: dur.milliseconds,\n }).as(\"milliseconds\"),\n localTS = objToLocalTS(c);\n\n let [ts, o] = fixOffset(localTS, oPre, inst.zone);\n\n if (millisToAdd !== 0) {\n ts += millisToAdd;\n // that could have changed the offset by going over a DST, but we want to keep the ts the same\n o = inst.zone.offset(ts);\n }\n\n return { ts, o };\n}\n\n// helper useful in turning the results of parsing into real dates\n// by handling the zone options\nfunction parseDataToDateTime(parsed, parsedZone, opts, format, text, specificOffset) {\n const { setZone, zone } = opts;\n if ((parsed && Object.keys(parsed).length !== 0) || parsedZone) {\n const interpretationZone = parsedZone || zone,\n inst = DateTime.fromObject(parsed, {\n ...opts,\n zone: interpretationZone,\n specificOffset,\n });\n return setZone ? inst : inst.setZone(zone);\n } else {\n return DateTime.invalid(\n new Invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ${format}`)\n );\n }\n}\n\n// if you want to output a technical format (e.g. RFC 2822), this helper\n// helps handle the details\nfunction toTechFormat(dt, format, allowZ = true) {\n return dt.isValid\n ? Formatter.create(Locale.create(\"en-US\"), {\n allowZ,\n forceSimple: true,\n }).formatDateTimeFromString(dt, format)\n : null;\n}\n\nfunction toISODate(o, extended) {\n const longFormat = o.c.year > 9999 || o.c.year < 0;\n let c = \"\";\n if (longFormat && o.c.year >= 0) c += \"+\";\n c += padStart(o.c.year, longFormat ? 6 : 4);\n\n if (extended) {\n c += \"-\";\n c += padStart(o.c.month);\n c += \"-\";\n c += padStart(o.c.day);\n } else {\n c += padStart(o.c.month);\n c += padStart(o.c.day);\n }\n return c;\n}\n\nfunction toISOTime(\n o,\n extended,\n suppressSeconds,\n suppressMilliseconds,\n includeOffset,\n extendedZone\n) {\n let c = padStart(o.c.hour);\n if (extended) {\n c += \":\";\n c += padStart(o.c.minute);\n if (o.c.millisecond !== 0 || o.c.second !== 0 || !suppressSeconds) {\n c += \":\";\n }\n } else {\n c += padStart(o.c.minute);\n }\n\n if (o.c.millisecond !== 0 || o.c.second !== 0 || !suppressSeconds) {\n c += padStart(o.c.second);\n\n if (o.c.millisecond !== 0 || !suppressMilliseconds) {\n c += \".\";\n c += padStart(o.c.millisecond, 3);\n }\n }\n\n if (includeOffset) {\n if (o.isOffsetFixed && o.offset === 0 && !extendedZone) {\n c += \"Z\";\n } else if (o.o < 0) {\n c += \"-\";\n c += padStart(Math.trunc(-o.o / 60));\n c += \":\";\n c += padStart(Math.trunc(-o.o % 60));\n } else {\n c += \"+\";\n c += padStart(Math.trunc(o.o / 60));\n c += \":\";\n c += padStart(Math.trunc(o.o % 60));\n }\n }\n\n if (extendedZone) {\n c += \"[\" + o.zone.ianaName + \"]\";\n }\n return c;\n}\n\n// defaults for unspecified units in the supported calendars\nconst defaultUnitValues = {\n month: 1,\n day: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0,\n },\n defaultWeekUnitValues = {\n weekNumber: 1,\n weekday: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0,\n },\n defaultOrdinalUnitValues = {\n ordinal: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0,\n };\n\n// Units in the supported calendars, sorted by bigness\nconst orderedUnits = [\"year\", \"month\", \"day\", \"hour\", \"minute\", \"second\", \"millisecond\"],\n orderedWeekUnits = [\n \"weekYear\",\n \"weekNumber\",\n \"weekday\",\n \"hour\",\n \"minute\",\n \"second\",\n \"millisecond\",\n ],\n orderedOrdinalUnits = [\"year\", \"ordinal\", \"hour\", \"minute\", \"second\", \"millisecond\"];\n\n// standardize case and plurality in units\nfunction normalizeUnit(unit) {\n const normalized = {\n year: \"year\",\n years: \"year\",\n month: \"month\",\n months: \"month\",\n day: \"day\",\n days: \"day\",\n hour: \"hour\",\n hours: \"hour\",\n minute: \"minute\",\n minutes: \"minute\",\n quarter: \"quarter\",\n quarters: \"quarter\",\n second: \"second\",\n seconds: \"second\",\n millisecond: \"millisecond\",\n milliseconds: \"millisecond\",\n weekday: \"weekday\",\n weekdays: \"weekday\",\n weeknumber: \"weekNumber\",\n weeksnumber: \"weekNumber\",\n weeknumbers: \"weekNumber\",\n weekyear: \"weekYear\",\n weekyears: \"weekYear\",\n ordinal: \"ordinal\",\n }[unit.toLowerCase()];\n\n if (!normalized) throw new InvalidUnitError(unit);\n\n return normalized;\n}\n\nfunction normalizeUnitWithLocalWeeks(unit) {\n switch (unit.toLowerCase()) {\n case \"localweekday\":\n case \"localweekdays\":\n return \"localWeekday\";\n case \"localweeknumber\":\n case \"localweeknumbers\":\n return \"localWeekNumber\";\n case \"localweekyear\":\n case \"localweekyears\":\n return \"localWeekYear\";\n default:\n return normalizeUnit(unit);\n }\n}\n\n// this is a dumbed down version of fromObject() that runs about 60% faster\n// but doesn't do any validation, makes a bunch of assumptions about what units\n// are present, and so on.\nfunction quickDT(obj, opts) {\n const zone = normalizeZone(opts.zone, Settings.defaultZone),\n loc = Locale.fromObject(opts),\n tsNow = Settings.now();\n\n let ts, o;\n\n // assume we have the higher-order units\n if (!isUndefined(obj.year)) {\n for (const u of orderedUnits) {\n if (isUndefined(obj[u])) {\n obj[u] = defaultUnitValues[u];\n }\n }\n\n const invalid = hasInvalidGregorianData(obj) || hasInvalidTimeData(obj);\n if (invalid) {\n return DateTime.invalid(invalid);\n }\n\n const offsetProvis = zone.offset(tsNow);\n [ts, o] = objToTS(obj, offsetProvis, zone);\n } else {\n ts = tsNow;\n }\n\n return new DateTime({ ts, zone, loc, o });\n}\n\nfunction diffRelative(start, end, opts) {\n const round = isUndefined(opts.round) ? true : opts.round,\n format = (c, unit) => {\n c = roundTo(c, round || opts.calendary ? 0 : 2, true);\n const formatter = end.loc.clone(opts).relFormatter(opts);\n return formatter.format(c, unit);\n },\n differ = (unit) => {\n if (opts.calendary) {\n if (!end.hasSame(start, unit)) {\n return end.startOf(unit).diff(start.startOf(unit), unit).get(unit);\n } else return 0;\n } else {\n return end.diff(start, unit).get(unit);\n }\n };\n\n if (opts.unit) {\n return format(differ(opts.unit), opts.unit);\n }\n\n for (const unit of opts.units) {\n const count = differ(unit);\n if (Math.abs(count) >= 1) {\n return format(count, unit);\n }\n }\n return format(start > end ? -0 : 0, opts.units[opts.units.length - 1]);\n}\n\nfunction lastOpts(argList) {\n let opts = {},\n args;\n if (argList.length > 0 && typeof argList[argList.length - 1] === \"object\") {\n opts = argList[argList.length - 1];\n args = Array.from(argList).slice(0, argList.length - 1);\n } else {\n args = Array.from(argList);\n }\n return [opts, args];\n}\n\n/**\n * A DateTime is an immutable data structure representing a specific date and time and accompanying methods. It contains class and instance methods for creating, parsing, interrogating, transforming, and formatting them.\n *\n * A DateTime comprises of:\n * * A timestamp. Each DateTime instance refers to a specific millisecond of the Unix epoch.\n * * A time zone. Each instance is considered in the context of a specific zone (by default the local system's zone).\n * * Configuration properties that effect how output strings are formatted, such as `locale`, `numberingSystem`, and `outputCalendar`.\n *\n * Here is a brief overview of the most commonly used functionality it provides:\n *\n * * **Creation**: To create a DateTime from its components, use one of its factory class methods: {@link DateTime.local}, {@link DateTime.utc}, and (most flexibly) {@link DateTime.fromObject}. To create one from a standard string format, use {@link DateTime.fromISO}, {@link DateTime.fromHTTP}, and {@link DateTime.fromRFC2822}. To create one from a custom string format, use {@link DateTime.fromFormat}. To create one from a native JS date, use {@link DateTime.fromJSDate}.\n * * **Gregorian calendar and time**: To examine the Gregorian properties of a DateTime individually (i.e as opposed to collectively through {@link DateTime#toObject}), use the {@link DateTime#year}, {@link DateTime#month},\n * {@link DateTime#day}, {@link DateTime#hour}, {@link DateTime#minute}, {@link DateTime#second}, {@link DateTime#millisecond} accessors.\n * * **Week calendar**: For ISO week calendar attributes, see the {@link DateTime#weekYear}, {@link DateTime#weekNumber}, and {@link DateTime#weekday} accessors.\n * * **Configuration** See the {@link DateTime#locale} and {@link DateTime#numberingSystem} accessors.\n * * **Transformation**: To transform the DateTime into other DateTimes, use {@link DateTime#set}, {@link DateTime#reconfigure}, {@link DateTime#setZone}, {@link DateTime#setLocale}, {@link DateTime.plus}, {@link DateTime#minus}, {@link DateTime#endOf}, {@link DateTime#startOf}, {@link DateTime#toUTC}, and {@link DateTime#toLocal}.\n * * **Output**: To convert the DateTime to other representations, use the {@link DateTime#toRelative}, {@link DateTime#toRelativeCalendar}, {@link DateTime#toJSON}, {@link DateTime#toISO}, {@link DateTime#toHTTP}, {@link DateTime#toObject}, {@link DateTime#toRFC2822}, {@link DateTime#toString}, {@link DateTime#toLocaleString}, {@link DateTime#toFormat}, {@link DateTime#toMillis} and {@link DateTime#toJSDate}.\n *\n * There's plenty others documented below. In addition, for more information on subtler topics like internationalization, time zones, alternative calendars, validity, and so on, see the external documentation.\n */\nexport default class DateTime {\n /**\n * @access private\n */\n constructor(config) {\n const zone = config.zone || Settings.defaultZone;\n\n let invalid =\n config.invalid ||\n (Number.isNaN(config.ts) ? new Invalid(\"invalid input\") : null) ||\n (!zone.isValid ? unsupportedZone(zone) : null);\n /**\n * @access private\n */\n this.ts = isUndefined(config.ts) ? Settings.now() : config.ts;\n\n let c = null,\n o = null;\n if (!invalid) {\n const unchanged = config.old && config.old.ts === this.ts && config.old.zone.equals(zone);\n\n if (unchanged) {\n [c, o] = [config.old.c, config.old.o];\n } else {\n const ot = zone.offset(this.ts);\n c = tsToObj(this.ts, ot);\n invalid = Number.isNaN(c.year) ? new Invalid(\"invalid input\") : null;\n c = invalid ? null : c;\n o = invalid ? null : ot;\n }\n }\n\n /**\n * @access private\n */\n this._zone = zone;\n /**\n * @access private\n */\n this.loc = config.loc || Locale.create();\n /**\n * @access private\n */\n this.invalid = invalid;\n /**\n * @access private\n */\n this.weekData = null;\n /**\n * @access private\n */\n this.localWeekData = null;\n /**\n * @access private\n */\n this.c = c;\n /**\n * @access private\n */\n this.o = o;\n /**\n * @access private\n */\n this.isLuxonDateTime = true;\n }\n\n // CONSTRUCT\n\n /**\n * Create a DateTime for the current instant, in the system's time zone.\n *\n * Use Settings to override these default values if needed.\n * @example DateTime.now().toISO() //~> now in the ISO format\n * @return {DateTime}\n */\n static now() {\n return new DateTime({});\n }\n\n /**\n * Create a local DateTime\n * @param {number} [year] - The calendar year. If omitted (as in, call `local()` with no arguments), the current time will be used\n * @param {number} [month=1] - The month, 1-indexed\n * @param {number} [day=1] - The day of the month, 1-indexed\n * @param {number} [hour=0] - The hour of the day, in 24-hour time\n * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59\n * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59\n * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999\n * @example DateTime.local() //~> now\n * @example DateTime.local({ zone: \"America/New_York\" }) //~> now, in US east coast time\n * @example DateTime.local(2017) //~> 2017-01-01T00:00:00\n * @example DateTime.local(2017, 3) //~> 2017-03-01T00:00:00\n * @example DateTime.local(2017, 3, 12, { locale: \"fr\" }) //~> 2017-03-12T00:00:00, with a French locale\n * @example DateTime.local(2017, 3, 12, 5) //~> 2017-03-12T05:00:00\n * @example DateTime.local(2017, 3, 12, 5, { zone: \"utc\" }) //~> 2017-03-12T05:00:00, in UTC\n * @example DateTime.local(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00\n * @example DateTime.local(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10\n * @example DateTime.local(2017, 3, 12, 5, 45, 10, 765) //~> 2017-03-12T05:45:10.765\n * @return {DateTime}\n */\n static local() {\n const [opts, args] = lastOpts(arguments),\n [year, month, day, hour, minute, second, millisecond] = args;\n return quickDT({ year, month, day, hour, minute, second, millisecond }, opts);\n }\n\n /**\n * Create a DateTime in UTC\n * @param {number} [year] - The calendar year. If omitted (as in, call `utc()` with no arguments), the current time will be used\n * @param {number} [month=1] - The month, 1-indexed\n * @param {number} [day=1] - The day of the month\n * @param {number} [hour=0] - The hour of the day, in 24-hour time\n * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59\n * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59\n * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999\n * @param {Object} options - configuration options for the DateTime\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} [options.outputCalendar] - the output calendar to set on the resulting DateTime instance\n * @param {string} [options.numberingSystem] - the numbering system to set on the resulting DateTime instance\n * @example DateTime.utc() //~> now\n * @example DateTime.utc(2017) //~> 2017-01-01T00:00:00Z\n * @example DateTime.utc(2017, 3) //~> 2017-03-01T00:00:00Z\n * @example DateTime.utc(2017, 3, 12) //~> 2017-03-12T00:00:00Z\n * @example DateTime.utc(2017, 3, 12, 5) //~> 2017-03-12T05:00:00Z\n * @example DateTime.utc(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00Z\n * @example DateTime.utc(2017, 3, 12, 5, 45, { locale: \"fr\" }) //~> 2017-03-12T05:45:00Z with a French locale\n * @example DateTime.utc(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10Z\n * @example DateTime.utc(2017, 3, 12, 5, 45, 10, 765, { locale: \"fr\" }) //~> 2017-03-12T05:45:10.765Z with a French locale\n * @return {DateTime}\n */\n static utc() {\n const [opts, args] = lastOpts(arguments),\n [year, month, day, hour, minute, second, millisecond] = args;\n\n opts.zone = FixedOffsetZone.utcInstance;\n return quickDT({ year, month, day, hour, minute, second, millisecond }, opts);\n }\n\n /**\n * Create a DateTime from a JavaScript Date object. Uses the default zone.\n * @param {Date} date - a JavaScript Date object\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @return {DateTime}\n */\n static fromJSDate(date, options = {}) {\n const ts = isDate(date) ? date.valueOf() : NaN;\n if (Number.isNaN(ts)) {\n return DateTime.invalid(\"invalid input\");\n }\n\n const zoneToUse = normalizeZone(options.zone, Settings.defaultZone);\n if (!zoneToUse.isValid) {\n return DateTime.invalid(unsupportedZone(zoneToUse));\n }\n\n return new DateTime({\n ts: ts,\n zone: zoneToUse,\n loc: Locale.fromObject(options),\n });\n }\n\n /**\n * Create a DateTime from a number of milliseconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone.\n * @param {number} milliseconds - a number of milliseconds since 1970 UTC\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromMillis(milliseconds, options = {}) {\n if (!isNumber(milliseconds)) {\n throw new InvalidArgumentError(\n `fromMillis requires a numerical input, but received a ${typeof milliseconds} with value ${milliseconds}`\n );\n } else if (milliseconds < -MAX_DATE || milliseconds > MAX_DATE) {\n // this isn't perfect because because we can still end up out of range because of additional shifting, but it's a start\n return DateTime.invalid(\"Timestamp out of range\");\n } else {\n return new DateTime({\n ts: milliseconds,\n zone: normalizeZone(options.zone, Settings.defaultZone),\n loc: Locale.fromObject(options),\n });\n }\n }\n\n /**\n * Create a DateTime from a number of seconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone.\n * @param {number} seconds - a number of seconds since 1970 UTC\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromSeconds(seconds, options = {}) {\n if (!isNumber(seconds)) {\n throw new InvalidArgumentError(\"fromSeconds requires a numerical input\");\n } else {\n return new DateTime({\n ts: seconds * 1000,\n zone: normalizeZone(options.zone, Settings.defaultZone),\n loc: Locale.fromObject(options),\n });\n }\n }\n\n /**\n * Create a DateTime from a JavaScript object with keys like 'year' and 'hour' with reasonable defaults.\n * @param {Object} obj - the object to create the DateTime from\n * @param {number} obj.year - a year, such as 1987\n * @param {number} obj.month - a month, 1-12\n * @param {number} obj.day - a day of the month, 1-31, depending on the month\n * @param {number} obj.ordinal - day of the year, 1-365 or 366\n * @param {number} obj.weekYear - an ISO week year\n * @param {number} obj.weekNumber - an ISO week number, between 1 and 52 or 53, depending on the year\n * @param {number} obj.weekday - an ISO weekday, 1-7, where 1 is Monday and 7 is Sunday\n * @param {number} obj.localWeekYear - a week year, according to the locale\n * @param {number} obj.localWeekNumber - a week number, between 1 and 52 or 53, depending on the year, according to the locale\n * @param {number} obj.localWeekday - a weekday, 1-7, where 1 is the first and 7 is the last day of the week, according to the locale\n * @param {number} obj.hour - hour of the day, 0-23\n * @param {number} obj.minute - minute of the hour, 0-59\n * @param {number} obj.second - second of the minute, 0-59\n * @param {number} obj.millisecond - millisecond of the second, 0-999\n * @param {Object} opts - options for creating this DateTime\n * @param {string|Zone} [opts.zone='local'] - interpret the numbers in the context of a particular zone. Can take any value taken as the first argument to setZone()\n * @param {string} [opts.locale='system\\'s locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromObject({ year: 1982, month: 5, day: 25}).toISODate() //=> '1982-05-25'\n * @example DateTime.fromObject({ year: 1982 }).toISODate() //=> '1982-01-01'\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }) //~> today at 10:26:06\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }, { zone: 'utc' }),\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }, { zone: 'local' })\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }, { zone: 'America/New_York' })\n * @example DateTime.fromObject({ weekYear: 2016, weekNumber: 2, weekday: 3 }).toISODate() //=> '2016-01-13'\n * @example DateTime.fromObject({ localWeekYear: 2022, localWeekNumber: 1, localWeekday: 1 }, { locale: \"en-US\" }).toISODate() //=> '2021-12-26'\n * @return {DateTime}\n */\n static fromObject(obj, opts = {}) {\n obj = obj || {};\n const zoneToUse = normalizeZone(opts.zone, Settings.defaultZone);\n if (!zoneToUse.isValid) {\n return DateTime.invalid(unsupportedZone(zoneToUse));\n }\n\n const loc = Locale.fromObject(opts);\n const normalized = normalizeObject(obj, normalizeUnitWithLocalWeeks);\n const { minDaysInFirstWeek, startOfWeek } = usesLocalWeekValues(normalized, loc);\n\n const tsNow = Settings.now(),\n offsetProvis = !isUndefined(opts.specificOffset)\n ? opts.specificOffset\n : zoneToUse.offset(tsNow),\n containsOrdinal = !isUndefined(normalized.ordinal),\n containsGregorYear = !isUndefined(normalized.year),\n containsGregorMD = !isUndefined(normalized.month) || !isUndefined(normalized.day),\n containsGregor = containsGregorYear || containsGregorMD,\n definiteWeekDef = normalized.weekYear || normalized.weekNumber;\n\n // cases:\n // just a weekday -> this week's instance of that weekday, no worries\n // (gregorian data or ordinal) + (weekYear or weekNumber) -> error\n // (gregorian month or day) + ordinal -> error\n // otherwise just use weeks or ordinals or gregorian, depending on what's specified\n\n if ((containsGregor || containsOrdinal) && definiteWeekDef) {\n throw new ConflictingSpecificationError(\n \"Can't mix weekYear/weekNumber units with year/month/day or ordinals\"\n );\n }\n\n if (containsGregorMD && containsOrdinal) {\n throw new ConflictingSpecificationError(\"Can't mix ordinal dates with month/day\");\n }\n\n const useWeekData = definiteWeekDef || (normalized.weekday && !containsGregor);\n\n // configure ourselves to deal with gregorian dates or week stuff\n let units,\n defaultValues,\n objNow = tsToObj(tsNow, offsetProvis);\n if (useWeekData) {\n units = orderedWeekUnits;\n defaultValues = defaultWeekUnitValues;\n objNow = gregorianToWeek(objNow, minDaysInFirstWeek, startOfWeek);\n } else if (containsOrdinal) {\n units = orderedOrdinalUnits;\n defaultValues = defaultOrdinalUnitValues;\n objNow = gregorianToOrdinal(objNow);\n } else {\n units = orderedUnits;\n defaultValues = defaultUnitValues;\n }\n\n // set default values for missing stuff\n let foundFirst = false;\n for (const u of units) {\n const v = normalized[u];\n if (!isUndefined(v)) {\n foundFirst = true;\n } else if (foundFirst) {\n normalized[u] = defaultValues[u];\n } else {\n normalized[u] = objNow[u];\n }\n }\n\n // make sure the values we have are in range\n const higherOrderInvalid = useWeekData\n ? hasInvalidWeekData(normalized, minDaysInFirstWeek, startOfWeek)\n : containsOrdinal\n ? hasInvalidOrdinalData(normalized)\n : hasInvalidGregorianData(normalized),\n invalid = higherOrderInvalid || hasInvalidTimeData(normalized);\n\n if (invalid) {\n return DateTime.invalid(invalid);\n }\n\n // compute the actual time\n const gregorian = useWeekData\n ? weekToGregorian(normalized, minDaysInFirstWeek, startOfWeek)\n : containsOrdinal\n ? ordinalToGregorian(normalized)\n : normalized,\n [tsFinal, offsetFinal] = objToTS(gregorian, offsetProvis, zoneToUse),\n inst = new DateTime({\n ts: tsFinal,\n zone: zoneToUse,\n o: offsetFinal,\n loc,\n });\n\n // gregorian data + weekday serves only to validate\n if (normalized.weekday && containsGregor && obj.weekday !== inst.weekday) {\n return DateTime.invalid(\n \"mismatched weekday\",\n `you can't specify both a weekday of ${normalized.weekday} and a date of ${inst.toISO()}`\n );\n }\n\n return inst;\n }\n\n /**\n * Create a DateTime from an ISO 8601 string\n * @param {string} text - the ISO string\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the time to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} [opts.outputCalendar] - the output calendar to set on the resulting DateTime instance\n * @param {string} [opts.numberingSystem] - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromISO('2016-05-25T09:08:34.123')\n * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00')\n * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00', {setZone: true})\n * @example DateTime.fromISO('2016-05-25T09:08:34.123', {zone: 'utc'})\n * @example DateTime.fromISO('2016-W05-4')\n * @return {DateTime}\n */\n static fromISO(text, opts = {}) {\n const [vals, parsedZone] = parseISODate(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"ISO 8601\", text);\n }\n\n /**\n * Create a DateTime from an RFC 2822 string\n * @param {string} text - the RFC 2822 string\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since the offset is always specified in the string itself, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in.\n * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromRFC2822('25 Nov 2016 13:23:12 GMT')\n * @example DateTime.fromRFC2822('Fri, 25 Nov 2016 13:23:12 +0600')\n * @example DateTime.fromRFC2822('25 Nov 2016 13:23 Z')\n * @return {DateTime}\n */\n static fromRFC2822(text, opts = {}) {\n const [vals, parsedZone] = parseRFC2822Date(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"RFC 2822\", text);\n }\n\n /**\n * Create a DateTime from an HTTP header date\n * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1\n * @param {string} text - the HTTP header date\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since HTTP dates are always in UTC, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in.\n * @param {boolean} [opts.setZone=false] - override the zone with the fixed-offset zone specified in the string. For HTTP dates, this is always UTC, so this option is equivalent to setting the `zone` option to 'utc', but this option is included for consistency with similar methods.\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromHTTP('Sun, 06 Nov 1994 08:49:37 GMT')\n * @example DateTime.fromHTTP('Sunday, 06-Nov-94 08:49:37 GMT')\n * @example DateTime.fromHTTP('Sun Nov 6 08:49:37 1994')\n * @return {DateTime}\n */\n static fromHTTP(text, opts = {}) {\n const [vals, parsedZone] = parseHTTPDate(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"HTTP\", opts);\n }\n\n /**\n * Create a DateTime from an input string and format string.\n * Defaults to en-US if no locale has been specified, regardless of the system's locale. For a table of tokens and their interpretations, see [here](https://moment.github.io/luxon/#/parsing?id=table-of-tokens).\n * @param {string} text - the string to parse\n * @param {string} fmt - the format the string is expected to be in (see the link below for the formats)\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale\n * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromFormat(text, fmt, opts = {}) {\n if (isUndefined(text) || isUndefined(fmt)) {\n throw new InvalidArgumentError(\"fromFormat requires an input string and a format\");\n }\n\n const { locale = null, numberingSystem = null } = opts,\n localeToUse = Locale.fromOpts({\n locale,\n numberingSystem,\n defaultToEN: true,\n }),\n [vals, parsedZone, specificOffset, invalid] = parseFromTokens(localeToUse, text, fmt);\n if (invalid) {\n return DateTime.invalid(invalid);\n } else {\n return parseDataToDateTime(vals, parsedZone, opts, `format ${fmt}`, text, specificOffset);\n }\n }\n\n /**\n * @deprecated use fromFormat instead\n */\n static fromString(text, fmt, opts = {}) {\n return DateTime.fromFormat(text, fmt, opts);\n }\n\n /**\n * Create a DateTime from a SQL date, time, or datetime\n * Defaults to en-US if no locale has been specified, regardless of the system's locale\n * @param {string} text - the string to parse\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale\n * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @example DateTime.fromSQL('2017-05-15')\n * @example DateTime.fromSQL('2017-05-15 09:12:34')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342+06:00')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles', { setZone: true })\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342', { zone: 'America/Los_Angeles' })\n * @example DateTime.fromSQL('09:12:34.342')\n * @return {DateTime}\n */\n static fromSQL(text, opts = {}) {\n const [vals, parsedZone] = parseSQL(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"SQL\", text);\n }\n\n /**\n * Create an invalid DateTime.\n * @param {string} reason - simple string of why this DateTime is invalid. Should not contain parameters or anything else data-dependent.\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {DateTime}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the DateTime is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidDateTimeError(invalid);\n } else {\n return new DateTime({ invalid });\n }\n }\n\n /**\n * Check if an object is an instance of DateTime. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isDateTime(o) {\n return (o && o.isLuxonDateTime) || false;\n }\n\n /**\n * Produce the format string for a set of options\n * @param formatOpts\n * @param localeOpts\n * @returns {string}\n */\n static parseFormatForOpts(formatOpts, localeOpts = {}) {\n const tokenList = formatOptsToTokens(formatOpts, Locale.fromObject(localeOpts));\n return !tokenList ? null : tokenList.map((t) => (t ? t.val : null)).join(\"\");\n }\n\n /**\n * Produce the the fully expanded format token for the locale\n * Does NOT quote characters, so quoted tokens will not round trip correctly\n * @param fmt\n * @param localeOpts\n * @returns {string}\n */\n static expandFormat(fmt, localeOpts = {}) {\n const expanded = expandMacroTokens(Formatter.parseFormat(fmt), Locale.fromObject(localeOpts));\n return expanded.map((t) => t.val).join(\"\");\n }\n\n // INFO\n\n /**\n * Get the value of unit.\n * @param {string} unit - a unit such as 'minute' or 'day'\n * @example DateTime.local(2017, 7, 4).get('month'); //=> 7\n * @example DateTime.local(2017, 7, 4).get('day'); //=> 4\n * @return {number}\n */\n get(unit) {\n return this[unit];\n }\n\n /**\n * Returns whether the DateTime is valid. Invalid DateTimes occur when:\n * * The DateTime was created from invalid calendar information, such as the 13th month or February 30\n * * The DateTime was created by an operation on another invalid date\n * @type {boolean}\n */\n get isValid() {\n return this.invalid === null;\n }\n\n /**\n * Returns an error code if this DateTime is invalid, or null if the DateTime is valid\n * @type {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this DateTime became invalid, or null if the DateTime is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Get the locale of a DateTime, such 'en-GB'. The locale is used when formatting the DateTime\n *\n * @type {string}\n */\n get locale() {\n return this.isValid ? this.loc.locale : null;\n }\n\n /**\n * Get the numbering system of a DateTime, such 'beng'. The numbering system is used when formatting the DateTime\n *\n * @type {string}\n */\n get numberingSystem() {\n return this.isValid ? this.loc.numberingSystem : null;\n }\n\n /**\n * Get the output calendar of a DateTime, such 'islamic'. The output calendar is used when formatting the DateTime\n *\n * @type {string}\n */\n get outputCalendar() {\n return this.isValid ? this.loc.outputCalendar : null;\n }\n\n /**\n * Get the time zone associated with this DateTime.\n * @type {Zone}\n */\n get zone() {\n return this._zone;\n }\n\n /**\n * Get the name of the time zone.\n * @type {string}\n */\n get zoneName() {\n return this.isValid ? this.zone.name : null;\n }\n\n /**\n * Get the year\n * @example DateTime.local(2017, 5, 25).year //=> 2017\n * @type {number}\n */\n get year() {\n return this.isValid ? this.c.year : NaN;\n }\n\n /**\n * Get the quarter\n * @example DateTime.local(2017, 5, 25).quarter //=> 2\n * @type {number}\n */\n get quarter() {\n return this.isValid ? Math.ceil(this.c.month / 3) : NaN;\n }\n\n /**\n * Get the month (1-12).\n * @example DateTime.local(2017, 5, 25).month //=> 5\n * @type {number}\n */\n get month() {\n return this.isValid ? this.c.month : NaN;\n }\n\n /**\n * Get the day of the month (1-30ish).\n * @example DateTime.local(2017, 5, 25).day //=> 25\n * @type {number}\n */\n get day() {\n return this.isValid ? this.c.day : NaN;\n }\n\n /**\n * Get the hour of the day (0-23).\n * @example DateTime.local(2017, 5, 25, 9).hour //=> 9\n * @type {number}\n */\n get hour() {\n return this.isValid ? this.c.hour : NaN;\n }\n\n /**\n * Get the minute of the hour (0-59).\n * @example DateTime.local(2017, 5, 25, 9, 30).minute //=> 30\n * @type {number}\n */\n get minute() {\n return this.isValid ? this.c.minute : NaN;\n }\n\n /**\n * Get the second of the minute (0-59).\n * @example DateTime.local(2017, 5, 25, 9, 30, 52).second //=> 52\n * @type {number}\n */\n get second() {\n return this.isValid ? this.c.second : NaN;\n }\n\n /**\n * Get the millisecond of the second (0-999).\n * @example DateTime.local(2017, 5, 25, 9, 30, 52, 654).millisecond //=> 654\n * @type {number}\n */\n get millisecond() {\n return this.isValid ? this.c.millisecond : NaN;\n }\n\n /**\n * Get the week year\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2014, 12, 31).weekYear //=> 2015\n * @type {number}\n */\n get weekYear() {\n return this.isValid ? possiblyCachedWeekData(this).weekYear : NaN;\n }\n\n /**\n * Get the week number of the week year (1-52ish).\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2017, 5, 25).weekNumber //=> 21\n * @type {number}\n */\n get weekNumber() {\n return this.isValid ? possiblyCachedWeekData(this).weekNumber : NaN;\n }\n\n /**\n * Get the day of the week.\n * 1 is Monday and 7 is Sunday\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2014, 11, 31).weekday //=> 4\n * @type {number}\n */\n get weekday() {\n return this.isValid ? possiblyCachedWeekData(this).weekday : NaN;\n }\n\n /**\n * Returns true if this date is on a weekend according to the locale, false otherwise\n * @returns {boolean}\n */\n get isWeekend() {\n return this.isValid && this.loc.getWeekendDays().includes(this.weekday);\n }\n\n /**\n * Get the day of the week according to the locale.\n * 1 is the first day of the week and 7 is the last day of the week.\n * If the locale assigns Sunday as the first day of the week, then a date which is a Sunday will return 1,\n * @returns {number}\n */\n get localWeekday() {\n return this.isValid ? possiblyCachedLocalWeekData(this).weekday : NaN;\n }\n\n /**\n * Get the week number of the week year according to the locale. Different locales assign week numbers differently,\n * because the week can start on different days of the week (see localWeekday) and because a different number of days\n * is required for a week to count as the first week of a year.\n * @returns {number}\n */\n get localWeekNumber() {\n return this.isValid ? possiblyCachedLocalWeekData(this).weekNumber : NaN;\n }\n\n /**\n * Get the week year according to the locale. Different locales assign week numbers (and therefor week years)\n * differently, see localWeekNumber.\n * @returns {number}\n */\n get localWeekYear() {\n return this.isValid ? possiblyCachedLocalWeekData(this).weekYear : NaN;\n }\n\n /**\n * Get the ordinal (meaning the day of the year)\n * @example DateTime.local(2017, 5, 25).ordinal //=> 145\n * @type {number|DateTime}\n */\n get ordinal() {\n return this.isValid ? gregorianToOrdinal(this.c).ordinal : NaN;\n }\n\n /**\n * Get the human readable short month name, such as 'Oct'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).monthShort //=> Oct\n * @type {string}\n */\n get monthShort() {\n return this.isValid ? Info.months(\"short\", { locObj: this.loc })[this.month - 1] : null;\n }\n\n /**\n * Get the human readable long month name, such as 'October'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).monthLong //=> October\n * @type {string}\n */\n get monthLong() {\n return this.isValid ? Info.months(\"long\", { locObj: this.loc })[this.month - 1] : null;\n }\n\n /**\n * Get the human readable short weekday, such as 'Mon'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).weekdayShort //=> Mon\n * @type {string}\n */\n get weekdayShort() {\n return this.isValid ? Info.weekdays(\"short\", { locObj: this.loc })[this.weekday - 1] : null;\n }\n\n /**\n * Get the human readable long weekday, such as 'Monday'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).weekdayLong //=> Monday\n * @type {string}\n */\n get weekdayLong() {\n return this.isValid ? Info.weekdays(\"long\", { locObj: this.loc })[this.weekday - 1] : null;\n }\n\n /**\n * Get the UTC offset of this DateTime in minutes\n * @example DateTime.now().offset //=> -240\n * @example DateTime.utc().offset //=> 0\n * @type {number}\n */\n get offset() {\n return this.isValid ? +this.o : NaN;\n }\n\n /**\n * Get the short human name for the zone's current offset, for example \"EST\" or \"EDT\".\n * Defaults to the system's locale if no locale has been specified\n * @type {string}\n */\n get offsetNameShort() {\n if (this.isValid) {\n return this.zone.offsetName(this.ts, {\n format: \"short\",\n locale: this.locale,\n });\n } else {\n return null;\n }\n }\n\n /**\n * Get the long human name for the zone's current offset, for example \"Eastern Standard Time\" or \"Eastern Daylight Time\".\n * Defaults to the system's locale if no locale has been specified\n * @type {string}\n */\n get offsetNameLong() {\n if (this.isValid) {\n return this.zone.offsetName(this.ts, {\n format: \"long\",\n locale: this.locale,\n });\n } else {\n return null;\n }\n }\n\n /**\n * Get whether this zone's offset ever changes, as in a DST.\n * @type {boolean}\n */\n get isOffsetFixed() {\n return this.isValid ? this.zone.isUniversal : null;\n }\n\n /**\n * Get whether the DateTime is in a DST.\n * @type {boolean}\n */\n get isInDST() {\n if (this.isOffsetFixed) {\n return false;\n } else {\n return (\n this.offset > this.set({ month: 1, day: 1 }).offset ||\n this.offset > this.set({ month: 5 }).offset\n );\n }\n }\n\n /**\n * Get those DateTimes which have the same local time as this DateTime, but a different offset from UTC\n * in this DateTime's zone. During DST changes local time can be ambiguous, for example\n * `2023-10-29T02:30:00` in `Europe/Berlin` can have offset `+01:00` or `+02:00`.\n * This method will return both possible DateTimes if this DateTime's local time is ambiguous.\n * @returns {DateTime[]}\n */\n getPossibleOffsets() {\n if (!this.isValid || this.isOffsetFixed) {\n return [this];\n }\n const dayMs = 86400000;\n const minuteMs = 60000;\n const localTS = objToLocalTS(this.c);\n const oEarlier = this.zone.offset(localTS - dayMs);\n const oLater = this.zone.offset(localTS + dayMs);\n\n const o1 = this.zone.offset(localTS - oEarlier * minuteMs);\n const o2 = this.zone.offset(localTS - oLater * minuteMs);\n if (o1 === o2) {\n return [this];\n }\n const ts1 = localTS - o1 * minuteMs;\n const ts2 = localTS - o2 * minuteMs;\n const c1 = tsToObj(ts1, o1);\n const c2 = tsToObj(ts2, o2);\n if (\n c1.hour === c2.hour &&\n c1.minute === c2.minute &&\n c1.second === c2.second &&\n c1.millisecond === c2.millisecond\n ) {\n return [clone(this, { ts: ts1 }), clone(this, { ts: ts2 })];\n }\n return [this];\n }\n\n /**\n * Returns true if this DateTime is in a leap year, false otherwise\n * @example DateTime.local(2016).isInLeapYear //=> true\n * @example DateTime.local(2013).isInLeapYear //=> false\n * @type {boolean}\n */\n get isInLeapYear() {\n return isLeapYear(this.year);\n }\n\n /**\n * Returns the number of days in this DateTime's month\n * @example DateTime.local(2016, 2).daysInMonth //=> 29\n * @example DateTime.local(2016, 3).daysInMonth //=> 31\n * @type {number}\n */\n get daysInMonth() {\n return daysInMonth(this.year, this.month);\n }\n\n /**\n * Returns the number of days in this DateTime's year\n * @example DateTime.local(2016).daysInYear //=> 366\n * @example DateTime.local(2013).daysInYear //=> 365\n * @type {number}\n */\n get daysInYear() {\n return this.isValid ? daysInYear(this.year) : NaN;\n }\n\n /**\n * Returns the number of weeks in this DateTime's year\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2004).weeksInWeekYear //=> 53\n * @example DateTime.local(2013).weeksInWeekYear //=> 52\n * @type {number}\n */\n get weeksInWeekYear() {\n return this.isValid ? weeksInWeekYear(this.weekYear) : NaN;\n }\n\n /**\n * Returns the number of weeks in this DateTime's local week year\n * @example DateTime.local(2020, 6, {locale: 'en-US'}).weeksInLocalWeekYear //=> 52\n * @example DateTime.local(2020, 6, {locale: 'de-DE'}).weeksInLocalWeekYear //=> 53\n * @type {number}\n */\n get weeksInLocalWeekYear() {\n return this.isValid\n ? weeksInWeekYear(\n this.localWeekYear,\n this.loc.getMinDaysInFirstWeek(),\n this.loc.getStartOfWeek()\n )\n : NaN;\n }\n\n /**\n * Returns the resolved Intl options for this DateTime.\n * This is useful in understanding the behavior of formatting methods\n * @param {Object} opts - the same options as toLocaleString\n * @return {Object}\n */\n resolvedLocaleOptions(opts = {}) {\n const { locale, numberingSystem, calendar } = Formatter.create(\n this.loc.clone(opts),\n opts\n ).resolvedOptions(this);\n return { locale, numberingSystem, outputCalendar: calendar };\n }\n\n // TRANSFORM\n\n /**\n * \"Set\" the DateTime's zone to UTC. Returns a newly-constructed DateTime.\n *\n * Equivalent to {@link DateTime#setZone}('utc')\n * @param {number} [offset=0] - optionally, an offset from UTC in minutes\n * @param {Object} [opts={}] - options to pass to `setZone()`\n * @return {DateTime}\n */\n toUTC(offset = 0, opts = {}) {\n return this.setZone(FixedOffsetZone.instance(offset), opts);\n }\n\n /**\n * \"Set\" the DateTime's zone to the host's local zone. Returns a newly-constructed DateTime.\n *\n * Equivalent to `setZone('local')`\n * @return {DateTime}\n */\n toLocal() {\n return this.setZone(Settings.defaultZone);\n }\n\n /**\n * \"Set\" the DateTime's zone to specified zone. Returns a newly-constructed DateTime.\n *\n * By default, the setter keeps the underlying time the same (as in, the same timestamp), but the new instance will report different local times and consider DSTs when making computations, as with {@link DateTime#plus}. You may wish to use {@link DateTime#toLocal} and {@link DateTime#toUTC} which provide simple convenience wrappers for commonly used zones.\n * @param {string|Zone} [zone='local'] - a zone identifier. As a string, that can be any IANA zone supported by the host environment, or a fixed-offset name of the form 'UTC+3', or the strings 'local' or 'utc'. You may also supply an instance of a {@link DateTime#Zone} class.\n * @param {Object} opts - options\n * @param {boolean} [opts.keepLocalTime=false] - If true, adjust the underlying time so that the local time stays the same, but in the target zone. You should rarely need this.\n * @return {DateTime}\n */\n setZone(zone, { keepLocalTime = false, keepCalendarTime = false } = {}) {\n zone = normalizeZone(zone, Settings.defaultZone);\n if (zone.equals(this.zone)) {\n return this;\n } else if (!zone.isValid) {\n return DateTime.invalid(unsupportedZone(zone));\n } else {\n let newTS = this.ts;\n if (keepLocalTime || keepCalendarTime) {\n const offsetGuess = zone.offset(this.ts);\n const asObj = this.toObject();\n [newTS] = objToTS(asObj, offsetGuess, zone);\n }\n return clone(this, { ts: newTS, zone });\n }\n }\n\n /**\n * \"Set\" the locale, numberingSystem, or outputCalendar. Returns a newly-constructed DateTime.\n * @param {Object} properties - the properties to set\n * @example DateTime.local(2017, 5, 25).reconfigure({ locale: 'en-GB' })\n * @return {DateTime}\n */\n reconfigure({ locale, numberingSystem, outputCalendar } = {}) {\n const loc = this.loc.clone({ locale, numberingSystem, outputCalendar });\n return clone(this, { loc });\n }\n\n /**\n * \"Set\" the locale. Returns a newly-constructed DateTime.\n * Just a convenient alias for reconfigure({ locale })\n * @example DateTime.local(2017, 5, 25).setLocale('en-GB')\n * @return {DateTime}\n */\n setLocale(locale) {\n return this.reconfigure({ locale });\n }\n\n /**\n * \"Set\" the values of specified units. Returns a newly-constructed DateTime.\n * You can only set units with this method; for \"setting\" metadata, see {@link DateTime#reconfigure} and {@link DateTime#setZone}.\n *\n * This method also supports setting locale-based week units, i.e. `localWeekday`, `localWeekNumber` and `localWeekYear`.\n * They cannot be mixed with ISO-week units like `weekday`.\n * @param {Object} values - a mapping of units to numbers\n * @example dt.set({ year: 2017 })\n * @example dt.set({ hour: 8, minute: 30 })\n * @example dt.set({ weekday: 5 })\n * @example dt.set({ year: 2005, ordinal: 234 })\n * @return {DateTime}\n */\n set(values) {\n if (!this.isValid) return this;\n\n const normalized = normalizeObject(values, normalizeUnitWithLocalWeeks);\n const { minDaysInFirstWeek, startOfWeek } = usesLocalWeekValues(normalized, this.loc);\n\n const settingWeekStuff =\n !isUndefined(normalized.weekYear) ||\n !isUndefined(normalized.weekNumber) ||\n !isUndefined(normalized.weekday),\n containsOrdinal = !isUndefined(normalized.ordinal),\n containsGregorYear = !isUndefined(normalized.year),\n containsGregorMD = !isUndefined(normalized.month) || !isUndefined(normalized.day),\n containsGregor = containsGregorYear || containsGregorMD,\n definiteWeekDef = normalized.weekYear || normalized.weekNumber;\n\n if ((containsGregor || containsOrdinal) && definiteWeekDef) {\n throw new ConflictingSpecificationError(\n \"Can't mix weekYear/weekNumber units with year/month/day or ordinals\"\n );\n }\n\n if (containsGregorMD && containsOrdinal) {\n throw new ConflictingSpecificationError(\"Can't mix ordinal dates with month/day\");\n }\n\n let mixed;\n if (settingWeekStuff) {\n mixed = weekToGregorian(\n { ...gregorianToWeek(this.c, minDaysInFirstWeek, startOfWeek), ...normalized },\n minDaysInFirstWeek,\n startOfWeek\n );\n } else if (!isUndefined(normalized.ordinal)) {\n mixed = ordinalToGregorian({ ...gregorianToOrdinal(this.c), ...normalized });\n } else {\n mixed = { ...this.toObject(), ...normalized };\n\n // if we didn't set the day but we ended up on an overflow date,\n // use the last day of the right month\n if (isUndefined(normalized.day)) {\n mixed.day = Math.min(daysInMonth(mixed.year, mixed.month), mixed.day);\n }\n }\n\n const [ts, o] = objToTS(mixed, this.o, this.zone);\n return clone(this, { ts, o });\n }\n\n /**\n * Add a period of time to this DateTime and return the resulting DateTime\n *\n * Adding hours, minutes, seconds, or milliseconds increases the timestamp by the right number of milliseconds. Adding days, months, or years shifts the calendar, accounting for DSTs and leap years along the way. Thus, `dt.plus({ hours: 24 })` may result in a different time than `dt.plus({ days: 1 })` if there's a DST shift in between.\n * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @example DateTime.now().plus(123) //~> in 123 milliseconds\n * @example DateTime.now().plus({ minutes: 15 }) //~> in 15 minutes\n * @example DateTime.now().plus({ days: 1 }) //~> this time tomorrow\n * @example DateTime.now().plus({ days: -1 }) //~> this time yesterday\n * @example DateTime.now().plus({ hours: 3, minutes: 13 }) //~> in 3 hr, 13 min\n * @example DateTime.now().plus(Duration.fromObject({ hours: 3, minutes: 13 })) //~> in 3 hr, 13 min\n * @return {DateTime}\n */\n plus(duration) {\n if (!this.isValid) return this;\n const dur = Duration.fromDurationLike(duration);\n return clone(this, adjustTime(this, dur));\n }\n\n /**\n * Subtract a period of time to this DateTime and return the resulting DateTime\n * See {@link DateTime#plus}\n * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n @return {DateTime}\n */\n minus(duration) {\n if (!this.isValid) return this;\n const dur = Duration.fromDurationLike(duration).negate();\n return clone(this, adjustTime(this, dur));\n }\n\n /**\n * \"Set\" this DateTime to the beginning of a unit of time.\n * @param {string} unit - The unit to go to the beginning of. Can be 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', or 'millisecond'.\n * @param {Object} opts - options\n * @param {boolean} [opts.useLocaleWeeks=false] - If true, use weeks based on the locale, i.e. use the locale-dependent start of the week\n * @example DateTime.local(2014, 3, 3).startOf('month').toISODate(); //=> '2014-03-01'\n * @example DateTime.local(2014, 3, 3).startOf('year').toISODate(); //=> '2014-01-01'\n * @example DateTime.local(2014, 3, 3).startOf('week').toISODate(); //=> '2014-03-03', weeks always start on Mondays\n * @example DateTime.local(2014, 3, 3, 5, 30).startOf('day').toISOTime(); //=> '00:00.000-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).startOf('hour').toISOTime(); //=> '05:00:00.000-05:00'\n * @return {DateTime}\n */\n startOf(unit, { useLocaleWeeks = false } = {}) {\n if (!this.isValid) return this;\n\n const o = {},\n normalizedUnit = Duration.normalizeUnit(unit);\n switch (normalizedUnit) {\n case \"years\":\n o.month = 1;\n // falls through\n case \"quarters\":\n case \"months\":\n o.day = 1;\n // falls through\n case \"weeks\":\n case \"days\":\n o.hour = 0;\n // falls through\n case \"hours\":\n o.minute = 0;\n // falls through\n case \"minutes\":\n o.second = 0;\n // falls through\n case \"seconds\":\n o.millisecond = 0;\n break;\n case \"milliseconds\":\n break;\n // no default, invalid units throw in normalizeUnit()\n }\n\n if (normalizedUnit === \"weeks\") {\n if (useLocaleWeeks) {\n const startOfWeek = this.loc.getStartOfWeek();\n const { weekday } = this;\n if (weekday < startOfWeek) {\n o.weekNumber = this.weekNumber - 1;\n }\n o.weekday = startOfWeek;\n } else {\n o.weekday = 1;\n }\n }\n\n if (normalizedUnit === \"quarters\") {\n const q = Math.ceil(this.month / 3);\n o.month = (q - 1) * 3 + 1;\n }\n\n return this.set(o);\n }\n\n /**\n * \"Set\" this DateTime to the end (meaning the last millisecond) of a unit of time\n * @param {string} unit - The unit to go to the end of. Can be 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', or 'millisecond'.\n * @param {Object} opts - options\n * @param {boolean} [opts.useLocaleWeeks=false] - If true, use weeks based on the locale, i.e. use the locale-dependent start of the week\n * @example DateTime.local(2014, 3, 3).endOf('month').toISO(); //=> '2014-03-31T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3).endOf('year').toISO(); //=> '2014-12-31T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3).endOf('week').toISO(); // => '2014-03-09T23:59:59.999-05:00', weeks start on Mondays\n * @example DateTime.local(2014, 3, 3, 5, 30).endOf('day').toISO(); //=> '2014-03-03T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).endOf('hour').toISO(); //=> '2014-03-03T05:59:59.999-05:00'\n * @return {DateTime}\n */\n endOf(unit, opts) {\n return this.isValid\n ? this.plus({ [unit]: 1 })\n .startOf(unit, opts)\n .minus(1)\n : this;\n }\n\n // OUTPUT\n\n /**\n * Returns a string representation of this DateTime formatted according to the specified format string.\n * **You may not want this.** See {@link DateTime#toLocaleString} for a more flexible formatting tool. For a table of tokens and their interpretations, see [here](https://moment.github.io/luxon/#/formatting?id=table-of-tokens).\n * Defaults to en-US if no locale has been specified, regardless of the system's locale.\n * @param {string} fmt - the format string\n * @param {Object} opts - opts to override the configuration options on this DateTime\n * @example DateTime.now().toFormat('yyyy LLL dd') //=> '2017 Apr 22'\n * @example DateTime.now().setLocale('fr').toFormat('yyyy LLL dd') //=> '2017 avr. 22'\n * @example DateTime.now().toFormat('yyyy LLL dd', { locale: \"fr\" }) //=> '2017 avr. 22'\n * @example DateTime.now().toFormat(\"HH 'hours and' mm 'minutes'\") //=> '20 hours and 55 minutes'\n * @return {string}\n */\n toFormat(fmt, opts = {}) {\n return this.isValid\n ? Formatter.create(this.loc.redefaultToEN(opts)).formatDateTimeFromString(this, fmt)\n : INVALID;\n }\n\n /**\n * Returns a localized string representing this date. Accepts the same options as the Intl.DateTimeFormat constructor and any presets defined by Luxon, such as `DateTime.DATE_FULL` or `DateTime.TIME_SIMPLE`.\n * The exact behavior of this method is browser-specific, but in general it will return an appropriate representation\n * of the DateTime in the assigned locale.\n * Defaults to the system's locale if no locale has been specified\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param formatOpts {Object} - Intl.DateTimeFormat constructor options and configuration options\n * @param {Object} opts - opts to override the configuration options on this DateTime\n * @example DateTime.now().toLocaleString(); //=> 4/20/2017\n * @example DateTime.now().setLocale('en-gb').toLocaleString(); //=> '20/04/2017'\n * @example DateTime.now().toLocaleString(DateTime.DATE_FULL); //=> 'April 20, 2017'\n * @example DateTime.now().toLocaleString(DateTime.DATE_FULL, { locale: 'fr' }); //=> '28 août 2022'\n * @example DateTime.now().toLocaleString(DateTime.TIME_SIMPLE); //=> '11:32 AM'\n * @example DateTime.now().toLocaleString(DateTime.DATETIME_SHORT); //=> '4/20/2017, 11:32 AM'\n * @example DateTime.now().toLocaleString({ weekday: 'long', month: 'long', day: '2-digit' }); //=> 'Thursday, April 20'\n * @example DateTime.now().toLocaleString({ weekday: 'short', month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' }); //=> 'Thu, Apr 20, 11:27 AM'\n * @example DateTime.now().toLocaleString({ hour: '2-digit', minute: '2-digit', hourCycle: 'h23' }); //=> '11:32'\n * @return {string}\n */\n toLocaleString(formatOpts = Formats.DATE_SHORT, opts = {}) {\n return this.isValid\n ? Formatter.create(this.loc.clone(opts), formatOpts).formatDateTime(this)\n : INVALID;\n }\n\n /**\n * Returns an array of format \"parts\", meaning individual tokens along with metadata. This is allows callers to post-process individual sections of the formatted output.\n * Defaults to the system's locale if no locale has been specified\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/formatToParts\n * @param opts {Object} - Intl.DateTimeFormat constructor options, same as `toLocaleString`.\n * @example DateTime.now().toLocaleParts(); //=> [\n * //=> { type: 'day', value: '25' },\n * //=> { type: 'literal', value: '/' },\n * //=> { type: 'month', value: '05' },\n * //=> { type: 'literal', value: '/' },\n * //=> { type: 'year', value: '1982' }\n * //=> ]\n */\n toLocaleParts(opts = {}) {\n return this.isValid\n ? Formatter.create(this.loc.clone(opts), opts).formatDateTimeParts(this)\n : [];\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {boolean} [opts.extendedZone=false] - add the time zone format extension\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc(1983, 5, 25).toISO() //=> '1982-05-25T00:00:00.000Z'\n * @example DateTime.now().toISO() //=> '2017-04-22T20:47:05.335-04:00'\n * @example DateTime.now().toISO({ includeOffset: false }) //=> '2017-04-22T20:47:05.335'\n * @example DateTime.now().toISO({ format: 'basic' }) //=> '20170422T204705.335-0400'\n * @return {string}\n */\n toISO({\n format = \"extended\",\n suppressSeconds = false,\n suppressMilliseconds = false,\n includeOffset = true,\n extendedZone = false,\n } = {}) {\n if (!this.isValid) {\n return null;\n }\n\n const ext = format === \"extended\";\n\n let c = toISODate(this, ext);\n c += \"T\";\n c += toISOTime(this, ext, suppressSeconds, suppressMilliseconds, includeOffset, extendedZone);\n return c;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's date component\n * @param {Object} opts - options\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc(1982, 5, 25).toISODate() //=> '1982-05-25'\n * @example DateTime.utc(1982, 5, 25).toISODate({ format: 'basic' }) //=> '19820525'\n * @return {string}\n */\n toISODate({ format = \"extended\" } = {}) {\n if (!this.isValid) {\n return null;\n }\n\n return toISODate(this, format === \"extended\");\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's week date\n * @example DateTime.utc(1982, 5, 25).toISOWeekDate() //=> '1982-W21-2'\n * @return {string}\n */\n toISOWeekDate() {\n return toTechFormat(this, \"kkkk-'W'WW-c\");\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's time component\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {boolean} [opts.extendedZone=true] - add the time zone format extension\n * @param {boolean} [opts.includePrefix=false] - include the `T` prefix\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime() //=> '07:34:19.361Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34, seconds: 0, milliseconds: 0 }).toISOTime({ suppressSeconds: true }) //=> '07:34Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime({ format: 'basic' }) //=> '073419.361Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime({ includePrefix: true }) //=> 'T07:34:19.361Z'\n * @return {string}\n */\n toISOTime({\n suppressMilliseconds = false,\n suppressSeconds = false,\n includeOffset = true,\n includePrefix = false,\n extendedZone = false,\n format = \"extended\",\n } = {}) {\n if (!this.isValid) {\n return null;\n }\n\n let c = includePrefix ? \"T\" : \"\";\n return (\n c +\n toISOTime(\n this,\n format === \"extended\",\n suppressSeconds,\n suppressMilliseconds,\n includeOffset,\n extendedZone\n )\n );\n }\n\n /**\n * Returns an RFC 2822-compatible string representation of this DateTime\n * @example DateTime.utc(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 +0000'\n * @example DateTime.local(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 -0400'\n * @return {string}\n */\n toRFC2822() {\n return toTechFormat(this, \"EEE, dd LLL yyyy HH:mm:ss ZZZ\", false);\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in HTTP headers. The output is always expressed in GMT.\n * Specifically, the string conforms to RFC 1123.\n * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1\n * @example DateTime.utc(2014, 7, 13).toHTTP() //=> 'Sun, 13 Jul 2014 00:00:00 GMT'\n * @example DateTime.utc(2014, 7, 13, 19).toHTTP() //=> 'Sun, 13 Jul 2014 19:00:00 GMT'\n * @return {string}\n */\n toHTTP() {\n return toTechFormat(this.toUTC(), \"EEE, dd LLL yyyy HH:mm:ss 'GMT'\");\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL Date\n * @example DateTime.utc(2014, 7, 13).toSQLDate() //=> '2014-07-13'\n * @return {string}\n */\n toSQLDate() {\n if (!this.isValid) {\n return null;\n }\n return toISODate(this, true);\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL Time\n * @param {Object} opts - options\n * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset.\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {boolean} [opts.includeOffsetSpace=true] - include the space between the time and the offset, such as '05:15:16.345 -04:00'\n * @example DateTime.utc().toSQL() //=> '05:15:16.345'\n * @example DateTime.now().toSQL() //=> '05:15:16.345 -04:00'\n * @example DateTime.now().toSQL({ includeOffset: false }) //=> '05:15:16.345'\n * @example DateTime.now().toSQL({ includeZone: false }) //=> '05:15:16.345 America/New_York'\n * @return {string}\n */\n toSQLTime({ includeOffset = true, includeZone = false, includeOffsetSpace = true } = {}) {\n let fmt = \"HH:mm:ss.SSS\";\n\n if (includeZone || includeOffset) {\n if (includeOffsetSpace) {\n fmt += \" \";\n }\n if (includeZone) {\n fmt += \"z\";\n } else if (includeOffset) {\n fmt += \"ZZ\";\n }\n }\n\n return toTechFormat(this, fmt, true);\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL DateTime\n * @param {Object} opts - options\n * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset.\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {boolean} [opts.includeOffsetSpace=true] - include the space between the time and the offset, such as '05:15:16.345 -04:00'\n * @example DateTime.utc(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 Z'\n * @example DateTime.local(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 -04:00'\n * @example DateTime.local(2014, 7, 13).toSQL({ includeOffset: false }) //=> '2014-07-13 00:00:00.000'\n * @example DateTime.local(2014, 7, 13).toSQL({ includeZone: true }) //=> '2014-07-13 00:00:00.000 America/New_York'\n * @return {string}\n */\n toSQL(opts = {}) {\n if (!this.isValid) {\n return null;\n }\n\n return `${this.toSQLDate()} ${this.toSQLTime(opts)}`;\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for debugging\n * @return {string}\n */\n toString() {\n return this.isValid ? this.toISO() : INVALID;\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for the REPL.\n * @return {string}\n */\n [Symbol.for(\"nodejs.util.inspect.custom\")]() {\n if (this.isValid) {\n return `DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`;\n } else {\n return `DateTime { Invalid, reason: ${this.invalidReason} }`;\n }\n }\n\n /**\n * Returns the epoch milliseconds of this DateTime. Alias of {@link DateTime#toMillis}\n * @return {number}\n */\n valueOf() {\n return this.toMillis();\n }\n\n /**\n * Returns the epoch milliseconds of this DateTime.\n * @return {number}\n */\n toMillis() {\n return this.isValid ? this.ts : NaN;\n }\n\n /**\n * Returns the epoch seconds of this DateTime.\n * @return {number}\n */\n toSeconds() {\n return this.isValid ? this.ts / 1000 : NaN;\n }\n\n /**\n * Returns the epoch seconds (as a whole number) of this DateTime.\n * @return {number}\n */\n toUnixInteger() {\n return this.isValid ? Math.floor(this.ts / 1000) : NaN;\n }\n\n /**\n * Returns an ISO 8601 representation of this DateTime appropriate for use in JSON.\n * @return {string}\n */\n toJSON() {\n return this.toISO();\n }\n\n /**\n * Returns a BSON serializable equivalent to this DateTime.\n * @return {Date}\n */\n toBSON() {\n return this.toJSDate();\n }\n\n /**\n * Returns a JavaScript object with this DateTime's year, month, day, and so on.\n * @param opts - options for generating the object\n * @param {boolean} [opts.includeConfig=false] - include configuration attributes in the output\n * @example DateTime.now().toObject() //=> { year: 2017, month: 4, day: 22, hour: 20, minute: 49, second: 42, millisecond: 268 }\n * @return {Object}\n */\n toObject(opts = {}) {\n if (!this.isValid) return {};\n\n const base = { ...this.c };\n\n if (opts.includeConfig) {\n base.outputCalendar = this.outputCalendar;\n base.numberingSystem = this.loc.numberingSystem;\n base.locale = this.loc.locale;\n }\n return base;\n }\n\n /**\n * Returns a JavaScript Date equivalent to this DateTime.\n * @return {Date}\n */\n toJSDate() {\n return new Date(this.isValid ? this.ts : NaN);\n }\n\n // COMPARE\n\n /**\n * Return the difference between two DateTimes as a Duration.\n * @param {DateTime} otherDateTime - the DateTime to compare this one to\n * @param {string|string[]} [unit=['milliseconds']] - the unit or array of units (such as 'hours' or 'days') to include in the duration.\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @example\n * var i1 = DateTime.fromISO('1982-05-25T09:45'),\n * i2 = DateTime.fromISO('1983-10-14T10:30');\n * i2.diff(i1).toObject() //=> { milliseconds: 43807500000 }\n * i2.diff(i1, 'hours').toObject() //=> { hours: 12168.75 }\n * i2.diff(i1, ['months', 'days']).toObject() //=> { months: 16, days: 19.03125 }\n * i2.diff(i1, ['months', 'days', 'hours']).toObject() //=> { months: 16, days: 19, hours: 0.75 }\n * @return {Duration}\n */\n diff(otherDateTime, unit = \"milliseconds\", opts = {}) {\n if (!this.isValid || !otherDateTime.isValid) {\n return Duration.invalid(\"created by diffing an invalid DateTime\");\n }\n\n const durOpts = { locale: this.locale, numberingSystem: this.numberingSystem, ...opts };\n\n const units = maybeArray(unit).map(Duration.normalizeUnit),\n otherIsLater = otherDateTime.valueOf() > this.valueOf(),\n earlier = otherIsLater ? this : otherDateTime,\n later = otherIsLater ? otherDateTime : this,\n diffed = diff(earlier, later, units, durOpts);\n\n return otherIsLater ? diffed.negate() : diffed;\n }\n\n /**\n * Return the difference between this DateTime and right now.\n * See {@link DateTime#diff}\n * @param {string|string[]} [unit=['milliseconds']] - the unit or units units (such as 'hours' or 'days') to include in the duration\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n diffNow(unit = \"milliseconds\", opts = {}) {\n return this.diff(DateTime.now(), unit, opts);\n }\n\n /**\n * Return an Interval spanning between this DateTime and another DateTime\n * @param {DateTime} otherDateTime - the other end point of the Interval\n * @return {Interval}\n */\n until(otherDateTime) {\n return this.isValid ? Interval.fromDateTimes(this, otherDateTime) : this;\n }\n\n /**\n * Return whether this DateTime is in the same unit of time as another DateTime.\n * Higher-order units must also be identical for this function to return `true`.\n * Note that time zones are **ignored** in this comparison, which compares the **local** calendar time. Use {@link DateTime#setZone} to convert one of the dates if needed.\n * @param {DateTime} otherDateTime - the other DateTime\n * @param {string} unit - the unit of time to check sameness on\n * @param {Object} opts - options\n * @param {boolean} [opts.useLocaleWeeks=false] - If true, use weeks based on the locale, i.e. use the locale-dependent start of the week; only the locale of this DateTime is used\n * @example DateTime.now().hasSame(otherDT, 'day'); //~> true if otherDT is in the same current calendar day\n * @return {boolean}\n */\n hasSame(otherDateTime, unit, opts) {\n if (!this.isValid) return false;\n\n const inputMs = otherDateTime.valueOf();\n const adjustedToZone = this.setZone(otherDateTime.zone, { keepLocalTime: true });\n return (\n adjustedToZone.startOf(unit, opts) <= inputMs && inputMs <= adjustedToZone.endOf(unit, opts)\n );\n }\n\n /**\n * Equality check\n * Two DateTimes are equal if and only if they represent the same millisecond, have the same zone and location, and are both valid.\n * To compare just the millisecond values, use `+dt1 === +dt2`.\n * @param {DateTime} other - the other DateTime\n * @return {boolean}\n */\n equals(other) {\n return (\n this.isValid &&\n other.isValid &&\n this.valueOf() === other.valueOf() &&\n this.zone.equals(other.zone) &&\n this.loc.equals(other.loc)\n );\n }\n\n /**\n * Returns a string representation of a this time relative to now, such as \"in two days\". Can only internationalize if your\n * platform supports Intl.RelativeTimeFormat. Rounds down by default.\n * @param {Object} options - options that affect the output\n * @param {DateTime} [options.base=DateTime.now()] - the DateTime to use as the basis to which this time is compared. Defaults to now.\n * @param {string} [options.style=\"long\"] - the style of units, must be \"long\", \"short\", or \"narrow\"\n * @param {string|string[]} options.unit - use a specific unit or array of units; if omitted, or an array, the method will pick the best unit. Use an array or one of \"years\", \"quarters\", \"months\", \"weeks\", \"days\", \"hours\", \"minutes\", or \"seconds\"\n * @param {boolean} [options.round=true] - whether to round the numbers in the output.\n * @param {number} [options.padding=0] - padding in milliseconds. This allows you to round up the result if it fits inside the threshold. Don't use in combination with {round: false} because the decimal output will include the padding.\n * @param {string} options.locale - override the locale of this DateTime\n * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this\n * @example DateTime.now().plus({ days: 1 }).toRelative() //=> \"in 1 day\"\n * @example DateTime.now().setLocale(\"es\").toRelative({ days: 1 }) //=> \"dentro de 1 día\"\n * @example DateTime.now().plus({ days: 1 }).toRelative({ locale: \"fr\" }) //=> \"dans 23 heures\"\n * @example DateTime.now().minus({ days: 2 }).toRelative() //=> \"2 days ago\"\n * @example DateTime.now().minus({ days: 2 }).toRelative({ unit: \"hours\" }) //=> \"48 hours ago\"\n * @example DateTime.now().minus({ hours: 36 }).toRelative({ round: false }) //=> \"1.5 days ago\"\n */\n toRelative(options = {}) {\n if (!this.isValid) return null;\n const base = options.base || DateTime.fromObject({}, { zone: this.zone }),\n padding = options.padding ? (this < base ? -options.padding : options.padding) : 0;\n let units = [\"years\", \"months\", \"days\", \"hours\", \"minutes\", \"seconds\"];\n let unit = options.unit;\n if (Array.isArray(options.unit)) {\n units = options.unit;\n unit = undefined;\n }\n return diffRelative(base, this.plus(padding), {\n ...options,\n numeric: \"always\",\n units,\n unit,\n });\n }\n\n /**\n * Returns a string representation of this date relative to today, such as \"yesterday\" or \"next month\".\n * Only internationalizes on platforms that supports Intl.RelativeTimeFormat.\n * @param {Object} options - options that affect the output\n * @param {DateTime} [options.base=DateTime.now()] - the DateTime to use as the basis to which this time is compared. Defaults to now.\n * @param {string} options.locale - override the locale of this DateTime\n * @param {string} options.unit - use a specific unit; if omitted, the method will pick the unit. Use one of \"years\", \"quarters\", \"months\", \"weeks\", or \"days\"\n * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this\n * @example DateTime.now().plus({ days: 1 }).toRelativeCalendar() //=> \"tomorrow\"\n * @example DateTime.now().setLocale(\"es\").plus({ days: 1 }).toRelative() //=> \"\"mañana\"\n * @example DateTime.now().plus({ days: 1 }).toRelativeCalendar({ locale: \"fr\" }) //=> \"demain\"\n * @example DateTime.now().minus({ days: 2 }).toRelativeCalendar() //=> \"2 days ago\"\n */\n toRelativeCalendar(options = {}) {\n if (!this.isValid) return null;\n\n return diffRelative(options.base || DateTime.fromObject({}, { zone: this.zone }), this, {\n ...options,\n numeric: \"auto\",\n units: [\"years\", \"months\", \"days\"],\n calendary: true,\n });\n }\n\n /**\n * Return the min of several date times\n * @param {...DateTime} dateTimes - the DateTimes from which to choose the minimum\n * @return {DateTime} the min DateTime, or undefined if called with no argument\n */\n static min(...dateTimes) {\n if (!dateTimes.every(DateTime.isDateTime)) {\n throw new InvalidArgumentError(\"min requires all arguments be DateTimes\");\n }\n return bestBy(dateTimes, (i) => i.valueOf(), Math.min);\n }\n\n /**\n * Return the max of several date times\n * @param {...DateTime} dateTimes - the DateTimes from which to choose the maximum\n * @return {DateTime} the max DateTime, or undefined if called with no argument\n */\n static max(...dateTimes) {\n if (!dateTimes.every(DateTime.isDateTime)) {\n throw new InvalidArgumentError(\"max requires all arguments be DateTimes\");\n }\n return bestBy(dateTimes, (i) => i.valueOf(), Math.max);\n }\n\n // MISC\n\n /**\n * Explain how a string would be parsed by fromFormat()\n * @param {string} text - the string to parse\n * @param {string} fmt - the format the string is expected to be in (see description)\n * @param {Object} options - options taken by fromFormat()\n * @return {Object}\n */\n static fromFormatExplain(text, fmt, options = {}) {\n const { locale = null, numberingSystem = null } = options,\n localeToUse = Locale.fromOpts({\n locale,\n numberingSystem,\n defaultToEN: true,\n });\n return explainFromTokens(localeToUse, text, fmt);\n }\n\n /**\n * @deprecated use fromFormatExplain instead\n */\n static fromStringExplain(text, fmt, options = {}) {\n return DateTime.fromFormatExplain(text, fmt, options);\n }\n\n // FORMAT PRESETS\n\n /**\n * {@link DateTime#toLocaleString} format like 10/14/1983\n * @type {Object}\n */\n static get DATE_SHORT() {\n return Formats.DATE_SHORT;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Oct 14, 1983'\n * @type {Object}\n */\n static get DATE_MED() {\n return Formats.DATE_MED;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Fri, Oct 14, 1983'\n * @type {Object}\n */\n static get DATE_MED_WITH_WEEKDAY() {\n return Formats.DATE_MED_WITH_WEEKDAY;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'October 14, 1983'\n * @type {Object}\n */\n static get DATE_FULL() {\n return Formats.DATE_FULL;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Tuesday, October 14, 1983'\n * @type {Object}\n */\n static get DATE_HUGE() {\n return Formats.DATE_HUGE;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_SIMPLE() {\n return Formats.TIME_SIMPLE;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_SECONDS() {\n return Formats.TIME_WITH_SECONDS;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_SHORT_OFFSET() {\n return Formats.TIME_WITH_SHORT_OFFSET;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_LONG_OFFSET() {\n return Formats.TIME_WITH_LONG_OFFSET;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_SIMPLE() {\n return Formats.TIME_24_SIMPLE;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_SECONDS() {\n return Formats.TIME_24_WITH_SECONDS;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23 EDT', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_SHORT_OFFSET() {\n return Formats.TIME_24_WITH_SHORT_OFFSET;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23 Eastern Daylight Time', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_LONG_OFFSET() {\n return Formats.TIME_24_WITH_LONG_OFFSET;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '10/14/1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_SHORT() {\n return Formats.DATETIME_SHORT;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '10/14/1983, 9:30:33 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_SHORT_WITH_SECONDS() {\n return Formats.DATETIME_SHORT_WITH_SECONDS;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Oct 14, 1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED() {\n return Formats.DATETIME_MED;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Oct 14, 1983, 9:30:33 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED_WITH_SECONDS() {\n return Formats.DATETIME_MED_WITH_SECONDS;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Fri, 14 Oct 1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED_WITH_WEEKDAY() {\n return Formats.DATETIME_MED_WITH_WEEKDAY;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'October 14, 1983, 9:30 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_FULL() {\n return Formats.DATETIME_FULL;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'October 14, 1983, 9:30:33 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_FULL_WITH_SECONDS() {\n return Formats.DATETIME_FULL_WITH_SECONDS;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Friday, October 14, 1983, 9:30 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_HUGE() {\n return Formats.DATETIME_HUGE;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Friday, October 14, 1983, 9:30:33 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_HUGE_WITH_SECONDS() {\n return Formats.DATETIME_HUGE_WITH_SECONDS;\n }\n}\n\n/**\n * @private\n */\nexport function friendlyDateTime(dateTimeish) {\n if (DateTime.isDateTime(dateTimeish)) {\n return dateTimeish;\n } else if (dateTimeish && dateTimeish.valueOf && isNumber(dateTimeish.valueOf())) {\n return DateTime.fromJSDate(dateTimeish);\n } else if (dateTimeish && typeof dateTimeish === \"object\") {\n return DateTime.fromObject(dateTimeish);\n } else {\n throw new InvalidArgumentError(\n `Unknown datetime argument: ${dateTimeish}, of type ${typeof dateTimeish}`\n );\n }\n}\n","import { createContext, PropsWithChildren, useEffect, useState } from 'react';\nimport { DateTime } from 'luxon';\n\nexport const CurrentTimeContext = createContext('');\n\nexport const CurrentTimeContextProvider = ({ children }: PropsWithChildren) => {\n const now = DateTime.now().toLocaleString(DateTime.TIME_24_WITH_SECONDS);\n const [currenTime, setCurrentTime] = useState(now);\n useEffect(() => {\n setInterval(() => {\n // this can't use now reference as it is a stable one\n setCurrentTime(DateTime.now().toLocaleString(DateTime.TIME_24_WITH_SECONDS));\n }, 1000);\n }, []);\n return {children};\n};\n","import { createContext, Dispatch, PropsWithChildren, SetStateAction, useState } from 'react';\nimport { PossibleSessionTime } from '@/features/vacation/vacationModel';\n\ntype ExpirationSessionGrowlContextValues = {\n lastGrowlDismissedOrExpiredSessionTime: PossibleSessionTime | undefined;\n setLastGrowlDismissedOrExpiredSessionTime: Dispatch<\n SetStateAction\n >;\n};\n\nexport const ExpirationSessionGrowlContext = createContext({\n lastGrowlDismissedOrExpiredSessionTime: undefined,\n setLastGrowlDismissedOrExpiredSessionTime: () => {},\n});\n\nexport const ExpirationSessionGrowlProvider = ({ children }: PropsWithChildren) => {\n const [lastGrowlDismissedOrExpiredSessionTime, setLastGrowlDismissedOrExpiredSessionTime] =\n useState(undefined);\n\n const values = {\n lastGrowlDismissedOrExpiredSessionTime,\n setLastGrowlDismissedOrExpiredSessionTime,\n };\n\n return (\n \n {children}\n \n );\n};\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/**\n * Cannot do Math.log(x) / Math.log(10) bc if IEEE floating point issue\n * @param x number\n */\nexport function getMagnitude(x) {\n // Cannot count string length via Number.toString because it may use scientific notation\n // for very small or very large numbers.\n return Math.floor(Math.log(x) * Math.LOG10E);\n}\nexport function repeat(s, times) {\n if (typeof s.repeat === 'function') {\n return s.repeat(times);\n }\n var arr = new Array(times);\n for (var i = 0; i < arr.length; i++) {\n arr[i] = s;\n }\n return arr.join('');\n}\nexport function setInternalSlot(map, pl, field, value) {\n if (!map.get(pl)) {\n map.set(pl, Object.create(null));\n }\n var slots = map.get(pl);\n slots[field] = value;\n}\nexport function setMultiInternalSlots(map, pl, props) {\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\n var k = _a[_i];\n setInternalSlot(map, pl, k, props[k]);\n }\n}\nexport function getInternalSlot(map, pl, field) {\n return getMultiInternalSlots(map, pl, field)[field];\n}\nexport function getMultiInternalSlots(map, pl) {\n var fields = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n fields[_i - 2] = arguments[_i];\n }\n var slots = map.get(pl);\n if (!slots) {\n throw new TypeError(\"\".concat(pl, \" InternalSlot has not been initialized\"));\n }\n return fields.reduce(function (all, f) {\n all[f] = slots[f];\n return all;\n }, Object.create(null));\n}\nexport function isLiteralPart(patternPart) {\n return patternPart.type === 'literal';\n}\n/*\n 17 ECMAScript Standard Built-in Objects:\n Every built-in Function object, including constructors, that is not\n identified as an anonymous function has a name property whose value\n is a String.\n\n Unless otherwise specified, the name property of a built-in Function\n object, if it exists, has the attributes { [[Writable]]: false,\n [[Enumerable]]: false, [[Configurable]]: true }.\n*/\nexport function defineProperty(target, name, _a) {\n var value = _a.value;\n Object.defineProperty(target, name, {\n configurable: true,\n enumerable: false,\n writable: true,\n value: value,\n });\n}\nexport var UNICODE_EXTENSION_SEQUENCE_REGEX = /-u(?:-[0-9a-z]{2,8})+/gi;\nexport function invariant(condition, message, Err) {\n if (Err === void 0) { Err = Error; }\n if (!condition) {\n throw new Err(message);\n }\n}\n","export var ErrorKind;\n(function (ErrorKind) {\n /** Argument is unclosed (e.g. `{0`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_CLOSING_BRACE\"] = 1] = \"EXPECT_ARGUMENT_CLOSING_BRACE\";\n /** Argument is empty (e.g. `{}`). */\n ErrorKind[ErrorKind[\"EMPTY_ARGUMENT\"] = 2] = \"EMPTY_ARGUMENT\";\n /** Argument is malformed (e.g. `{foo!}``) */\n ErrorKind[ErrorKind[\"MALFORMED_ARGUMENT\"] = 3] = \"MALFORMED_ARGUMENT\";\n /** Expect an argument type (e.g. `{foo,}`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_TYPE\"] = 4] = \"EXPECT_ARGUMENT_TYPE\";\n /** Unsupported argument type (e.g. `{foo,foo}`) */\n ErrorKind[ErrorKind[\"INVALID_ARGUMENT_TYPE\"] = 5] = \"INVALID_ARGUMENT_TYPE\";\n /** Expect an argument style (e.g. `{foo, number, }`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_STYLE\"] = 6] = \"EXPECT_ARGUMENT_STYLE\";\n /** The number skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_NUMBER_SKELETON\"] = 7] = \"INVALID_NUMBER_SKELETON\";\n /** The date time skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_DATE_TIME_SKELETON\"] = 8] = \"INVALID_DATE_TIME_SKELETON\";\n /** Exepct a number skeleton following the `::` (e.g. `{foo, number, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_NUMBER_SKELETON\"] = 9] = \"EXPECT_NUMBER_SKELETON\";\n /** Exepct a date time skeleton following the `::` (e.g. `{foo, date, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_DATE_TIME_SKELETON\"] = 10] = \"EXPECT_DATE_TIME_SKELETON\";\n /** Unmatched apostrophes in the argument style (e.g. `{foo, number, 'test`) */\n ErrorKind[ErrorKind[\"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\"] = 11] = \"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\";\n /** Missing select argument options (e.g. `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_OPTIONS\"] = 12] = \"EXPECT_SELECT_ARGUMENT_OPTIONS\";\n /** Expecting an offset value in `plural` or `selectordinal` argument (e.g `{foo, plural, offset}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 13] = \"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Offset value in `plural` or `selectordinal` is invalid (e.g. `{foo, plural, offset: x}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 14] = \"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Expecting a selector in `select` argument (e.g `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR\"] = 15] = \"EXPECT_SELECT_ARGUMENT_SELECTOR\";\n /** Expecting a selector in `plural` or `selectordinal` argument (e.g `{foo, plural}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR\"] = 16] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR\";\n /** Expecting a message fragment after the `select` selector (e.g. `{foo, select, apple}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\"] = 17] = \"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\";\n /**\n * Expecting a message fragment after the `plural` or `selectordinal` selector\n * (e.g. `{foo, plural, one}`)\n */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\"] = 18] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\";\n /** Selector in `plural` or `selectordinal` is malformed (e.g. `{foo, plural, =x {#}}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_SELECTOR\"] = 19] = \"INVALID_PLURAL_ARGUMENT_SELECTOR\";\n /**\n * Duplicate selectors in `plural` or `selectordinal` argument.\n * (e.g. {foo, plural, one {#} one {#}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\"] = 20] = \"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\";\n /** Duplicate selectors in `select` argument.\n * (e.g. {foo, select, apple {apple} apple {apple}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_SELECT_ARGUMENT_SELECTOR\"] = 21] = \"DUPLICATE_SELECT_ARGUMENT_SELECTOR\";\n /** Plural or select argument option must have `other` clause. */\n ErrorKind[ErrorKind[\"MISSING_OTHER_CLAUSE\"] = 22] = \"MISSING_OTHER_CLAUSE\";\n /** The tag is malformed. (e.g. `foo) */\n ErrorKind[ErrorKind[\"INVALID_TAG\"] = 23] = \"INVALID_TAG\";\n /** The tag name is invalid. (e.g. `<123>foo`) */\n ErrorKind[ErrorKind[\"INVALID_TAG_NAME\"] = 25] = \"INVALID_TAG_NAME\";\n /** The closing tag does not match the opening tag. (e.g. `foo`) */\n ErrorKind[ErrorKind[\"UNMATCHED_CLOSING_TAG\"] = 26] = \"UNMATCHED_CLOSING_TAG\";\n /** The opening tag has unmatched closing tag. (e.g. `foo`) */\n ErrorKind[ErrorKind[\"UNCLOSED_TAG\"] = 27] = \"UNCLOSED_TAG\";\n})(ErrorKind || (ErrorKind = {}));\n","export var TYPE;\n(function (TYPE) {\n /**\n * Raw text\n */\n TYPE[TYPE[\"literal\"] = 0] = \"literal\";\n /**\n * Variable w/o any format, e.g `var` in `this is a {var}`\n */\n TYPE[TYPE[\"argument\"] = 1] = \"argument\";\n /**\n * Variable w/ number format\n */\n TYPE[TYPE[\"number\"] = 2] = \"number\";\n /**\n * Variable w/ date format\n */\n TYPE[TYPE[\"date\"] = 3] = \"date\";\n /**\n * Variable w/ time format\n */\n TYPE[TYPE[\"time\"] = 4] = \"time\";\n /**\n * Variable w/ select format\n */\n TYPE[TYPE[\"select\"] = 5] = \"select\";\n /**\n * Variable w/ plural format\n */\n TYPE[TYPE[\"plural\"] = 6] = \"plural\";\n /**\n * Only possible within plural argument.\n * This is the `#` symbol that will be substituted with the count.\n */\n TYPE[TYPE[\"pound\"] = 7] = \"pound\";\n /**\n * XML-like tag\n */\n TYPE[TYPE[\"tag\"] = 8] = \"tag\";\n})(TYPE || (TYPE = {}));\nexport var SKELETON_TYPE;\n(function (SKELETON_TYPE) {\n SKELETON_TYPE[SKELETON_TYPE[\"number\"] = 0] = \"number\";\n SKELETON_TYPE[SKELETON_TYPE[\"dateTime\"] = 1] = \"dateTime\";\n})(SKELETON_TYPE || (SKELETON_TYPE = {}));\n/**\n * Type Guards\n */\nexport function isLiteralElement(el) {\n return el.type === TYPE.literal;\n}\nexport function isArgumentElement(el) {\n return el.type === TYPE.argument;\n}\nexport function isNumberElement(el) {\n return el.type === TYPE.number;\n}\nexport function isDateElement(el) {\n return el.type === TYPE.date;\n}\nexport function isTimeElement(el) {\n return el.type === TYPE.time;\n}\nexport function isSelectElement(el) {\n return el.type === TYPE.select;\n}\nexport function isPluralElement(el) {\n return el.type === TYPE.plural;\n}\nexport function isPoundElement(el) {\n return el.type === TYPE.pound;\n}\nexport function isTagElement(el) {\n return el.type === TYPE.tag;\n}\nexport function isNumberSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.number);\n}\nexport function isDateTimeSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.dateTime);\n}\nexport function createLiteralElement(value) {\n return {\n type: TYPE.literal,\n value: value,\n };\n}\nexport function createNumberElement(value, style) {\n return {\n type: TYPE.number,\n value: value,\n style: style,\n };\n}\n","// @generated from regex-gen.ts\nexport var SPACE_SEPARATOR_REGEX = /[ \\xA0\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000]/;\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/;\n","/**\n * https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * Credit: https://github.com/caridy/intl-datetimeformat-pattern/blob/master/index.js\n * with some tweaks\n */\nvar DATE_TIME_REGEX = /(?:[Eec]{1,6}|G{1,5}|[Qq]{1,5}|(?:[yYur]+|U{1,5})|[ML]{1,5}|d{1,2}|D{1,3}|F{1}|[abB]{1,5}|[hkHK]{1,2}|w{1,2}|W{1}|m{1,2}|s{1,2}|[zZOvVxX]{1,4})(?=([^']*'[^']*')*[^']*$)/g;\n/**\n * Parse Date time skeleton into Intl.DateTimeFormatOptions\n * Ref: https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * @public\n * @param skeleton skeleton string\n */\nexport function parseDateTimeSkeleton(skeleton) {\n var result = {};\n skeleton.replace(DATE_TIME_REGEX, function (match) {\n var len = match.length;\n switch (match[0]) {\n // Era\n case 'G':\n result.era = len === 4 ? 'long' : len === 5 ? 'narrow' : 'short';\n break;\n // Year\n case 'y':\n result.year = len === 2 ? '2-digit' : 'numeric';\n break;\n case 'Y':\n case 'u':\n case 'U':\n case 'r':\n throw new RangeError('`Y/u/U/r` (year) patterns are not supported, use `y` instead');\n // Quarter\n case 'q':\n case 'Q':\n throw new RangeError('`q/Q` (quarter) patterns are not supported');\n // Month\n case 'M':\n case 'L':\n result.month = ['numeric', '2-digit', 'short', 'long', 'narrow'][len - 1];\n break;\n // Week\n case 'w':\n case 'W':\n throw new RangeError('`w/W` (week) patterns are not supported');\n case 'd':\n result.day = ['numeric', '2-digit'][len - 1];\n break;\n case 'D':\n case 'F':\n case 'g':\n throw new RangeError('`D/F/g` (day) patterns are not supported, use `d` instead');\n // Weekday\n case 'E':\n result.weekday = len === 4 ? 'long' : len === 5 ? 'narrow' : 'short';\n break;\n case 'e':\n if (len < 4) {\n throw new RangeError('`e..eee` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n case 'c':\n if (len < 4) {\n throw new RangeError('`c..ccc` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n // Period\n case 'a': // AM, PM\n result.hour12 = true;\n break;\n case 'b': // am, pm, noon, midnight\n case 'B': // flexible day periods\n throw new RangeError('`b/B` (period) patterns are not supported, use `a` instead');\n // Hour\n case 'h':\n result.hourCycle = 'h12';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'H':\n result.hourCycle = 'h23';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'K':\n result.hourCycle = 'h11';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'k':\n result.hourCycle = 'h24';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'j':\n case 'J':\n case 'C':\n throw new RangeError('`j/J/C` (hour) patterns are not supported, use `h/H/K/k` instead');\n // Minute\n case 'm':\n result.minute = ['numeric', '2-digit'][len - 1];\n break;\n // Second\n case 's':\n result.second = ['numeric', '2-digit'][len - 1];\n break;\n case 'S':\n case 'A':\n throw new RangeError('`S/A` (second) patterns are not supported, use `s` instead');\n // Zone\n case 'z': // 1..3, 4: specific non-location format\n result.timeZoneName = len < 4 ? 'short' : 'long';\n break;\n case 'Z': // 1..3, 4, 5: The ISO8601 varios formats\n case 'O': // 1, 4: milliseconds in day short, long\n case 'v': // 1, 4: generic non-location format\n case 'V': // 1, 2, 3, 4: time zone ID or city\n case 'X': // 1, 2, 3, 4: The ISO8601 varios formats\n case 'x': // 1, 2, 3, 4: The ISO8601 varios formats\n throw new RangeError('`Z/O/v/V/X/x` (timeZone) patterns are not supported, use `z` instead');\n }\n return '';\n });\n return result;\n}\n","// @generated from regex-gen.ts\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/i;\n","import { __assign } from \"tslib\";\nimport { WHITE_SPACE_REGEX } from './regex.generated';\nexport function parseNumberSkeletonFromString(skeleton) {\n if (skeleton.length === 0) {\n throw new Error('Number skeleton cannot be empty');\n }\n // Parse the skeleton\n var stringTokens = skeleton\n .split(WHITE_SPACE_REGEX)\n .filter(function (x) { return x.length > 0; });\n var tokens = [];\n for (var _i = 0, stringTokens_1 = stringTokens; _i < stringTokens_1.length; _i++) {\n var stringToken = stringTokens_1[_i];\n var stemAndOptions = stringToken.split('/');\n if (stemAndOptions.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n var stem = stemAndOptions[0], options = stemAndOptions.slice(1);\n for (var _a = 0, options_1 = options; _a < options_1.length; _a++) {\n var option = options_1[_a];\n if (option.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n }\n tokens.push({ stem: stem, options: options });\n }\n return tokens;\n}\nfunction icuUnitToEcma(unit) {\n return unit.replace(/^(.*?)-/, '');\n}\nvar FRACTION_PRECISION_REGEX = /^\\.(?:(0+)(\\*)?|(#+)|(0+)(#+))$/g;\nvar SIGNIFICANT_PRECISION_REGEX = /^(@+)?(\\+|#+)?[rs]?$/g;\nvar INTEGER_WIDTH_REGEX = /(\\*)(0+)|(#+)(0+)|(0+)/g;\nvar CONCISE_INTEGER_WIDTH_REGEX = /^(0+)$/;\nfunction parseSignificantPrecision(str) {\n var result = {};\n if (str[str.length - 1] === 'r') {\n result.roundingPriority = 'morePrecision';\n }\n else if (str[str.length - 1] === 's') {\n result.roundingPriority = 'lessPrecision';\n }\n str.replace(SIGNIFICANT_PRECISION_REGEX, function (_, g1, g2) {\n // @@@ case\n if (typeof g2 !== 'string') {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits = g1.length;\n }\n // @@@+ case\n else if (g2 === '+') {\n result.minimumSignificantDigits = g1.length;\n }\n // .### case\n else if (g1[0] === '#') {\n result.maximumSignificantDigits = g1.length;\n }\n // .@@## or .@@@ case\n else {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits =\n g1.length + (typeof g2 === 'string' ? g2.length : 0);\n }\n return '';\n });\n return result;\n}\nfunction parseSign(str) {\n switch (str) {\n case 'sign-auto':\n return {\n signDisplay: 'auto',\n };\n case 'sign-accounting':\n case '()':\n return {\n currencySign: 'accounting',\n };\n case 'sign-always':\n case '+!':\n return {\n signDisplay: 'always',\n };\n case 'sign-accounting-always':\n case '()!':\n return {\n signDisplay: 'always',\n currencySign: 'accounting',\n };\n case 'sign-except-zero':\n case '+?':\n return {\n signDisplay: 'exceptZero',\n };\n case 'sign-accounting-except-zero':\n case '()?':\n return {\n signDisplay: 'exceptZero',\n currencySign: 'accounting',\n };\n case 'sign-never':\n case '+_':\n return {\n signDisplay: 'never',\n };\n }\n}\nfunction parseConciseScientificAndEngineeringStem(stem) {\n // Engineering\n var result;\n if (stem[0] === 'E' && stem[1] === 'E') {\n result = {\n notation: 'engineering',\n };\n stem = stem.slice(2);\n }\n else if (stem[0] === 'E') {\n result = {\n notation: 'scientific',\n };\n stem = stem.slice(1);\n }\n if (result) {\n var signDisplay = stem.slice(0, 2);\n if (signDisplay === '+!') {\n result.signDisplay = 'always';\n stem = stem.slice(2);\n }\n else if (signDisplay === '+?') {\n result.signDisplay = 'exceptZero';\n stem = stem.slice(2);\n }\n if (!CONCISE_INTEGER_WIDTH_REGEX.test(stem)) {\n throw new Error('Malformed concise eng/scientific notation');\n }\n result.minimumIntegerDigits = stem.length;\n }\n return result;\n}\nfunction parseNotationOptions(opt) {\n var result = {};\n var signOpts = parseSign(opt);\n if (signOpts) {\n return signOpts;\n }\n return result;\n}\n/**\n * https://github.com/unicode-org/icu/blob/master/docs/userguide/format_parse/numbers/skeletons.md#skeleton-stems-and-options\n */\nexport function parseNumberSkeleton(tokens) {\n var result = {};\n for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {\n var token = tokens_1[_i];\n switch (token.stem) {\n case 'percent':\n case '%':\n result.style = 'percent';\n continue;\n case '%x100':\n result.style = 'percent';\n result.scale = 100;\n continue;\n case 'currency':\n result.style = 'currency';\n result.currency = token.options[0];\n continue;\n case 'group-off':\n case ',_':\n result.useGrouping = false;\n continue;\n case 'precision-integer':\n case '.':\n result.maximumFractionDigits = 0;\n continue;\n case 'measure-unit':\n case 'unit':\n result.style = 'unit';\n result.unit = icuUnitToEcma(token.options[0]);\n continue;\n case 'compact-short':\n case 'K':\n result.notation = 'compact';\n result.compactDisplay = 'short';\n continue;\n case 'compact-long':\n case 'KK':\n result.notation = 'compact';\n result.compactDisplay = 'long';\n continue;\n case 'scientific':\n result = __assign(__assign(__assign({}, result), { notation: 'scientific' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'engineering':\n result = __assign(__assign(__assign({}, result), { notation: 'engineering' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'notation-simple':\n result.notation = 'standard';\n continue;\n // https://github.com/unicode-org/icu/blob/master/icu4c/source/i18n/unicode/unumberformatter.h\n case 'unit-width-narrow':\n result.currencyDisplay = 'narrowSymbol';\n result.unitDisplay = 'narrow';\n continue;\n case 'unit-width-short':\n result.currencyDisplay = 'code';\n result.unitDisplay = 'short';\n continue;\n case 'unit-width-full-name':\n result.currencyDisplay = 'name';\n result.unitDisplay = 'long';\n continue;\n case 'unit-width-iso-code':\n result.currencyDisplay = 'symbol';\n continue;\n case 'scale':\n result.scale = parseFloat(token.options[0]);\n continue;\n case 'rounding-mode-floor':\n result.roundingMode = 'floor';\n continue;\n case 'rounding-mode-ceiling':\n result.roundingMode = 'ceil';\n continue;\n case 'rounding-mode-down':\n result.roundingMode = 'trunc';\n continue;\n case 'rounding-mode-up':\n result.roundingMode = 'expand';\n continue;\n case 'rounding-mode-half-even':\n result.roundingMode = 'halfEven';\n continue;\n case 'rounding-mode-half-down':\n result.roundingMode = 'halfTrunc';\n continue;\n case 'rounding-mode-half-up':\n result.roundingMode = 'halfExpand';\n continue;\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n case 'integer-width':\n if (token.options.length > 1) {\n throw new RangeError('integer-width stems only accept a single optional option');\n }\n token.options[0].replace(INTEGER_WIDTH_REGEX, function (_, g1, g2, g3, g4, g5) {\n if (g1) {\n result.minimumIntegerDigits = g2.length;\n }\n else if (g3 && g4) {\n throw new Error('We currently do not support maximum integer digits');\n }\n else if (g5) {\n throw new Error('We currently do not support exact integer digits');\n }\n return '';\n });\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n if (CONCISE_INTEGER_WIDTH_REGEX.test(token.stem)) {\n result.minimumIntegerDigits = token.stem.length;\n continue;\n }\n if (FRACTION_PRECISION_REGEX.test(token.stem)) {\n // Precision\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#fraction-precision\n // precision-integer case\n if (token.options.length > 1) {\n throw new RangeError('Fraction-precision stems only accept a single optional option');\n }\n token.stem.replace(FRACTION_PRECISION_REGEX, function (_, g1, g2, g3, g4, g5) {\n // .000* case (before ICU67 it was .000+)\n if (g2 === '*') {\n result.minimumFractionDigits = g1.length;\n }\n // .### case\n else if (g3 && g3[0] === '#') {\n result.maximumFractionDigits = g3.length;\n }\n // .00## case\n else if (g4 && g5) {\n result.minimumFractionDigits = g4.length;\n result.maximumFractionDigits = g4.length + g5.length;\n }\n else {\n result.minimumFractionDigits = g1.length;\n result.maximumFractionDigits = g1.length;\n }\n return '';\n });\n var opt = token.options[0];\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#trailing-zero-display\n if (opt === 'w') {\n result = __assign(__assign({}, result), { trailingZeroDisplay: 'stripIfInteger' });\n }\n else if (opt) {\n result = __assign(__assign({}, result), parseSignificantPrecision(opt));\n }\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#significant-digits-precision\n if (SIGNIFICANT_PRECISION_REGEX.test(token.stem)) {\n result = __assign(__assign({}, result), parseSignificantPrecision(token.stem));\n continue;\n }\n var signOpts = parseSign(token.stem);\n if (signOpts) {\n result = __assign(__assign({}, result), signOpts);\n }\n var conciseScientificAndEngineeringOpts = parseConciseScientificAndEngineeringStem(token.stem);\n if (conciseScientificAndEngineeringOpts) {\n result = __assign(__assign({}, result), conciseScientificAndEngineeringOpts);\n }\n }\n return result;\n}\n","// @generated from time-data-gen.ts\n// prettier-ignore \nexport var timeData = {\n \"001\": [\n \"H\",\n \"h\"\n ],\n \"AC\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"AD\": [\n \"H\",\n \"hB\"\n ],\n \"AE\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"AF\": [\n \"H\",\n \"hb\",\n \"hB\",\n \"h\"\n ],\n \"AG\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"AI\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"AL\": [\n \"h\",\n \"H\",\n \"hB\"\n ],\n \"AM\": [\n \"H\",\n \"hB\"\n ],\n \"AO\": [\n \"H\",\n \"hB\"\n ],\n \"AR\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"AS\": [\n \"h\",\n \"H\"\n ],\n \"AT\": [\n \"H\",\n \"hB\"\n ],\n \"AU\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"AW\": [\n \"H\",\n \"hB\"\n ],\n \"AX\": [\n \"H\"\n ],\n \"AZ\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"BA\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"BB\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"BD\": [\n \"h\",\n \"hB\",\n \"H\"\n ],\n \"BE\": [\n \"H\",\n \"hB\"\n ],\n \"BF\": [\n \"H\",\n \"hB\"\n ],\n \"BG\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"BH\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"BI\": [\n \"H\",\n \"h\"\n ],\n \"BJ\": [\n \"H\",\n \"hB\"\n ],\n \"BL\": [\n \"H\",\n \"hB\"\n ],\n \"BM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"BN\": [\n \"hb\",\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"BO\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"BQ\": [\n \"H\"\n ],\n \"BR\": [\n \"H\",\n \"hB\"\n ],\n \"BS\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"BT\": [\n \"h\",\n \"H\"\n ],\n \"BW\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"BY\": [\n \"H\",\n \"h\"\n ],\n \"BZ\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CA\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"CC\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CD\": [\n \"hB\",\n \"H\"\n ],\n \"CF\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"CG\": [\n \"H\",\n \"hB\"\n ],\n \"CH\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"CI\": [\n \"H\",\n \"hB\"\n ],\n \"CK\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CL\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"CM\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"CN\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ],\n \"CO\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"CP\": [\n \"H\"\n ],\n \"CR\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"CU\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"CV\": [\n \"H\",\n \"hB\"\n ],\n \"CW\": [\n \"H\",\n \"hB\"\n ],\n \"CX\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CY\": [\n \"h\",\n \"H\",\n \"hb\",\n \"hB\"\n ],\n \"CZ\": [\n \"H\"\n ],\n \"DE\": [\n \"H\",\n \"hB\"\n ],\n \"DG\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"DJ\": [\n \"h\",\n \"H\"\n ],\n \"DK\": [\n \"H\"\n ],\n \"DM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"DO\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"DZ\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"EA\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"EC\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"EE\": [\n \"H\",\n \"hB\"\n ],\n \"EG\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"EH\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"ER\": [\n \"h\",\n \"H\"\n ],\n \"ES\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"ET\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"FI\": [\n \"H\"\n ],\n \"FJ\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"FK\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"FM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"FO\": [\n \"H\",\n \"h\"\n ],\n \"FR\": [\n \"H\",\n \"hB\"\n ],\n \"GA\": [\n \"H\",\n \"hB\"\n ],\n \"GB\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"GD\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"GE\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"GF\": [\n \"H\",\n \"hB\"\n ],\n \"GG\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"GH\": [\n \"h\",\n \"H\"\n ],\n \"GI\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"GL\": [\n \"H\",\n \"h\"\n ],\n \"GM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"GN\": [\n \"H\",\n \"hB\"\n ],\n \"GP\": [\n \"H\",\n \"hB\"\n ],\n \"GQ\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"GR\": [\n \"h\",\n \"H\",\n \"hb\",\n \"hB\"\n ],\n \"GT\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"GU\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"GW\": [\n \"H\",\n \"hB\"\n ],\n \"GY\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"HK\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"HN\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"HR\": [\n \"H\",\n \"hB\"\n ],\n \"HU\": [\n \"H\",\n \"h\"\n ],\n \"IC\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"ID\": [\n \"H\"\n ],\n \"IE\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"IL\": [\n \"H\",\n \"hB\"\n ],\n \"IM\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"IN\": [\n \"h\",\n \"H\"\n ],\n \"IO\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"IQ\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"IR\": [\n \"hB\",\n \"H\"\n ],\n \"IS\": [\n \"H\"\n ],\n \"IT\": [\n \"H\",\n \"hB\"\n ],\n \"JE\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"JM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"JO\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"JP\": [\n \"H\",\n \"K\",\n \"h\"\n ],\n \"KE\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"KG\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"KH\": [\n \"hB\",\n \"h\",\n \"H\",\n \"hb\"\n ],\n \"KI\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"KM\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"KN\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"KP\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"KR\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"KW\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"KY\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"KZ\": [\n \"H\",\n \"hB\"\n ],\n \"LA\": [\n \"H\",\n \"hb\",\n \"hB\",\n \"h\"\n ],\n \"LB\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"LC\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"LI\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"LK\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"LR\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"LS\": [\n \"h\",\n \"H\"\n ],\n \"LT\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"LU\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"LV\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ],\n \"LY\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"MA\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"MC\": [\n \"H\",\n \"hB\"\n ],\n \"MD\": [\n \"H\",\n \"hB\"\n ],\n \"ME\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"MF\": [\n \"H\",\n \"hB\"\n ],\n \"MG\": [\n \"H\",\n \"h\"\n ],\n \"MH\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"MK\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"ML\": [\n \"H\"\n ],\n \"MM\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"MN\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"MO\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"MP\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"MQ\": [\n \"H\",\n \"hB\"\n ],\n \"MR\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"MS\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"MT\": [\n \"H\",\n \"h\"\n ],\n \"MU\": [\n \"H\",\n \"h\"\n ],\n \"MV\": [\n \"H\",\n \"h\"\n ],\n \"MW\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"MX\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"MY\": [\n \"hb\",\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"MZ\": [\n \"H\",\n \"hB\"\n ],\n \"NA\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"NC\": [\n \"H\",\n \"hB\"\n ],\n \"NE\": [\n \"H\"\n ],\n \"NF\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NG\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NI\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"NL\": [\n \"H\",\n \"hB\"\n ],\n \"NO\": [\n \"H\",\n \"h\"\n ],\n \"NP\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"NR\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NU\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NZ\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"OM\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"PA\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"PE\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"PF\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"PG\": [\n \"h\",\n \"H\"\n ],\n \"PH\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"PK\": [\n \"h\",\n \"hB\",\n \"H\"\n ],\n \"PL\": [\n \"H\",\n \"h\"\n ],\n \"PM\": [\n \"H\",\n \"hB\"\n ],\n \"PN\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"PR\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"PS\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"PT\": [\n \"H\",\n \"hB\"\n ],\n \"PW\": [\n \"h\",\n \"H\"\n ],\n \"PY\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"QA\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"RE\": [\n \"H\",\n \"hB\"\n ],\n \"RO\": [\n \"H\",\n \"hB\"\n ],\n \"RS\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"RU\": [\n \"H\"\n ],\n \"RW\": [\n \"H\",\n \"h\"\n ],\n \"SA\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"SB\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SC\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"SD\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"SE\": [\n \"H\"\n ],\n \"SG\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SH\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"SI\": [\n \"H\",\n \"hB\"\n ],\n \"SJ\": [\n \"H\"\n ],\n \"SK\": [\n \"H\"\n ],\n \"SL\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SM\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"SN\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"SO\": [\n \"h\",\n \"H\"\n ],\n \"SR\": [\n \"H\",\n \"hB\"\n ],\n \"SS\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"ST\": [\n \"H\",\n \"hB\"\n ],\n \"SV\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"SX\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"SY\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"SZ\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"TA\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"TC\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"TD\": [\n \"h\",\n \"H\",\n \"hB\"\n ],\n \"TF\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"TG\": [\n \"H\",\n \"hB\"\n ],\n \"TH\": [\n \"H\",\n \"h\"\n ],\n \"TJ\": [\n \"H\",\n \"h\"\n ],\n \"TL\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ],\n \"TM\": [\n \"H\",\n \"h\"\n ],\n \"TN\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"TO\": [\n \"h\",\n \"H\"\n ],\n \"TR\": [\n \"H\",\n \"hB\"\n ],\n \"TT\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"TW\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"TZ\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"UA\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"UG\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"UM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"US\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"UY\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"UZ\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"VA\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"VC\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"VE\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"VG\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"VI\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"VN\": [\n \"H\",\n \"h\"\n ],\n \"VU\": [\n \"h\",\n \"H\"\n ],\n \"WF\": [\n \"H\",\n \"hB\"\n ],\n \"WS\": [\n \"h\",\n \"H\"\n ],\n \"XK\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"YE\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"YT\": [\n \"H\",\n \"hB\"\n ],\n \"ZA\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"ZM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"ZW\": [\n \"H\",\n \"h\"\n ],\n \"af-ZA\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"ar-001\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"ca-ES\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"en-001\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"es-BO\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-BR\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-EC\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-ES\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-GQ\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-PE\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"fr-CA\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"gl-ES\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"gu-IN\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"hi-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"it-CH\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"it-IT\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"kn-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"ml-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"mr-IN\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"pa-IN\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"ta-IN\": [\n \"hB\",\n \"h\",\n \"hb\",\n \"H\"\n ],\n \"te-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"zu-ZA\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ]\n};\n","import { timeData } from './time-data.generated';\n/**\n * Returns the best matching date time pattern if a date time skeleton\n * pattern is provided with a locale. Follows the Unicode specification:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#table-mapping-requested-time-skeletons-to-patterns\n * @param skeleton date time skeleton pattern that possibly includes j, J or C\n * @param locale\n */\nexport function getBestPattern(skeleton, locale) {\n var skeletonCopy = '';\n for (var patternPos = 0; patternPos < skeleton.length; patternPos++) {\n var patternChar = skeleton.charAt(patternPos);\n if (patternChar === 'j') {\n var extraLength = 0;\n while (patternPos + 1 < skeleton.length &&\n skeleton.charAt(patternPos + 1) === patternChar) {\n extraLength++;\n patternPos++;\n }\n var hourLen = 1 + (extraLength & 1);\n var dayPeriodLen = extraLength < 2 ? 1 : 3 + (extraLength >> 1);\n var dayPeriodChar = 'a';\n var hourChar = getDefaultHourSymbolFromLocale(locale);\n if (hourChar == 'H' || hourChar == 'k') {\n dayPeriodLen = 0;\n }\n while (dayPeriodLen-- > 0) {\n skeletonCopy += dayPeriodChar;\n }\n while (hourLen-- > 0) {\n skeletonCopy = hourChar + skeletonCopy;\n }\n }\n else if (patternChar === 'J') {\n skeletonCopy += 'H';\n }\n else {\n skeletonCopy += patternChar;\n }\n }\n return skeletonCopy;\n}\n/**\n * Maps the [hour cycle type](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/hourCycle)\n * of the given `locale` to the corresponding time pattern.\n * @param locale\n */\nfunction getDefaultHourSymbolFromLocale(locale) {\n var hourCycle = locale.hourCycle;\n if (hourCycle === undefined &&\n // @ts-ignore hourCycle(s) is not identified yet\n locale.hourCycles &&\n // @ts-ignore\n locale.hourCycles.length) {\n // @ts-ignore\n hourCycle = locale.hourCycles[0];\n }\n if (hourCycle) {\n switch (hourCycle) {\n case 'h24':\n return 'k';\n case 'h23':\n return 'H';\n case 'h12':\n return 'h';\n case 'h11':\n return 'K';\n default:\n throw new Error('Invalid hourCycle');\n }\n }\n // TODO: Once hourCycle is fully supported remove the following with data generation\n var languageTag = locale.language;\n var regionTag;\n if (languageTag !== 'root') {\n regionTag = locale.maximize().region;\n }\n var hourCycles = timeData[regionTag || ''] ||\n timeData[languageTag || ''] ||\n timeData[\"\".concat(languageTag, \"-001\")] ||\n timeData['001'];\n return hourCycles[0];\n}\n","var _a;\nimport { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { SKELETON_TYPE, TYPE, } from './types';\nimport { SPACE_SEPARATOR_REGEX } from './regex.generated';\nimport { parseNumberSkeleton, parseNumberSkeletonFromString, parseDateTimeSkeleton, } from '@formatjs/icu-skeleton-parser';\nimport { getBestPattern } from './date-time-pattern-generator';\nvar SPACE_SEPARATOR_START_REGEX = new RegExp(\"^\".concat(SPACE_SEPARATOR_REGEX.source, \"*\"));\nvar SPACE_SEPARATOR_END_REGEX = new RegExp(\"\".concat(SPACE_SEPARATOR_REGEX.source, \"*$\"));\nfunction createLocation(start, end) {\n return { start: start, end: end };\n}\n// #region Ponyfills\n// Consolidate these variables up top for easier toggling during debugging\nvar hasNativeStartsWith = !!String.prototype.startsWith && '_a'.startsWith('a', 1);\nvar hasNativeFromCodePoint = !!String.fromCodePoint;\nvar hasNativeFromEntries = !!Object.fromEntries;\nvar hasNativeCodePointAt = !!String.prototype.codePointAt;\nvar hasTrimStart = !!String.prototype.trimStart;\nvar hasTrimEnd = !!String.prototype.trimEnd;\nvar hasNativeIsSafeInteger = !!Number.isSafeInteger;\nvar isSafeInteger = hasNativeIsSafeInteger\n ? Number.isSafeInteger\n : function (n) {\n return (typeof n === 'number' &&\n isFinite(n) &&\n Math.floor(n) === n &&\n Math.abs(n) <= 0x1fffffffffffff);\n };\n// IE11 does not support y and u.\nvar REGEX_SUPPORTS_U_AND_Y = true;\ntry {\n var re = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n /**\n * legacy Edge or Xbox One browser\n * Unicode flag support: supported\n * Pattern_Syntax support: not supported\n * See https://github.com/formatjs/formatjs/issues/2822\n */\n REGEX_SUPPORTS_U_AND_Y = ((_a = re.exec('a')) === null || _a === void 0 ? void 0 : _a[0]) === 'a';\n}\ncatch (_) {\n REGEX_SUPPORTS_U_AND_Y = false;\n}\nvar startsWith = hasNativeStartsWith\n ? // Native\n function startsWith(s, search, position) {\n return s.startsWith(search, position);\n }\n : // For IE11\n function startsWith(s, search, position) {\n return s.slice(position, position + search.length) === search;\n };\nvar fromCodePoint = hasNativeFromCodePoint\n ? String.fromCodePoint\n : // IE11\n function fromCodePoint() {\n var codePoints = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n codePoints[_i] = arguments[_i];\n }\n var elements = '';\n var length = codePoints.length;\n var i = 0;\n var code;\n while (length > i) {\n code = codePoints[i++];\n if (code > 0x10ffff)\n throw RangeError(code + ' is not a valid code point');\n elements +=\n code < 0x10000\n ? String.fromCharCode(code)\n : String.fromCharCode(((code -= 0x10000) >> 10) + 0xd800, (code % 0x400) + 0xdc00);\n }\n return elements;\n };\nvar fromEntries = \n// native\nhasNativeFromEntries\n ? Object.fromEntries\n : // Ponyfill\n function fromEntries(entries) {\n var obj = {};\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var _a = entries_1[_i], k = _a[0], v = _a[1];\n obj[k] = v;\n }\n return obj;\n };\nvar codePointAt = hasNativeCodePointAt\n ? // Native\n function codePointAt(s, index) {\n return s.codePointAt(index);\n }\n : // IE 11\n function codePointAt(s, index) {\n var size = s.length;\n if (index < 0 || index >= size) {\n return undefined;\n }\n var first = s.charCodeAt(index);\n var second;\n return first < 0xd800 ||\n first > 0xdbff ||\n index + 1 === size ||\n (second = s.charCodeAt(index + 1)) < 0xdc00 ||\n second > 0xdfff\n ? first\n : ((first - 0xd800) << 10) + (second - 0xdc00) + 0x10000;\n };\nvar trimStart = hasTrimStart\n ? // Native\n function trimStart(s) {\n return s.trimStart();\n }\n : // Ponyfill\n function trimStart(s) {\n return s.replace(SPACE_SEPARATOR_START_REGEX, '');\n };\nvar trimEnd = hasTrimEnd\n ? // Native\n function trimEnd(s) {\n return s.trimEnd();\n }\n : // Ponyfill\n function trimEnd(s) {\n return s.replace(SPACE_SEPARATOR_END_REGEX, '');\n };\n// Prevent minifier to translate new RegExp to literal form that might cause syntax error on IE11.\nfunction RE(s, flag) {\n return new RegExp(s, flag);\n}\n// #endregion\nvar matchIdentifierAtIndex;\nif (REGEX_SUPPORTS_U_AND_Y) {\n // Native\n var IDENTIFIER_PREFIX_RE_1 = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var _a;\n IDENTIFIER_PREFIX_RE_1.lastIndex = index;\n var match = IDENTIFIER_PREFIX_RE_1.exec(s);\n return (_a = match[1]) !== null && _a !== void 0 ? _a : '';\n };\n}\nelse {\n // IE11\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var match = [];\n while (true) {\n var c = codePointAt(s, index);\n if (c === undefined || _isWhiteSpace(c) || _isPatternSyntax(c)) {\n break;\n }\n match.push(c);\n index += c >= 0x10000 ? 2 : 1;\n }\n return fromCodePoint.apply(void 0, match);\n };\n}\nvar Parser = /** @class */ (function () {\n function Parser(message, options) {\n if (options === void 0) { options = {}; }\n this.message = message;\n this.position = { offset: 0, line: 1, column: 1 };\n this.ignoreTag = !!options.ignoreTag;\n this.locale = options.locale;\n this.requiresOtherClause = !!options.requiresOtherClause;\n this.shouldParseSkeletons = !!options.shouldParseSkeletons;\n }\n Parser.prototype.parse = function () {\n if (this.offset() !== 0) {\n throw Error('parser can only be used once');\n }\n return this.parseMessage(0, '', false);\n };\n Parser.prototype.parseMessage = function (nestingLevel, parentArgType, expectingCloseTag) {\n var elements = [];\n while (!this.isEOF()) {\n var char = this.char();\n if (char === 123 /* `{` */) {\n var result = this.parseArgument(nestingLevel, expectingCloseTag);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else if (char === 125 /* `}` */ && nestingLevel > 0) {\n break;\n }\n else if (char === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) {\n var position = this.clonePosition();\n this.bump();\n elements.push({\n type: TYPE.pound,\n location: createLocation(position, this.clonePosition()),\n });\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n this.peek() === 47 // char code for '/'\n ) {\n if (expectingCloseTag) {\n break;\n }\n else {\n return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(this.clonePosition(), this.clonePosition()));\n }\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n _isAlpha(this.peek() || 0)) {\n var result = this.parseTag(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else {\n var result = this.parseLiteral(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n }\n return { val: elements, err: null };\n };\n /**\n * A tag name must start with an ASCII lower/upper case letter. The grammar is based on the\n * [custom element name][] except that a dash is NOT always mandatory and uppercase letters\n * are accepted:\n *\n * ```\n * tag ::= \"<\" tagName (whitespace)* \"/>\" | \"<\" tagName (whitespace)* \">\" message \"\"\n * tagName ::= [a-z] (PENChar)*\n * PENChar ::=\n * \"-\" | \".\" | [0-9] | \"_\" | [a-z] | [A-Z] | #xB7 | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x37D] |\n * [#x37F-#x1FFF] | [#x200C-#x200D] | [#x203F-#x2040] | [#x2070-#x218F] | [#x2C00-#x2FEF] |\n * [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n * ```\n *\n * [custom element name]: https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name\n * NOTE: We're a bit more lax here since HTML technically does not allow uppercase HTML element but we do\n * since other tag-based engines like React allow it\n */\n Parser.prototype.parseTag = function (nestingLevel, parentArgType) {\n var startPosition = this.clonePosition();\n this.bump(); // `<`\n var tagName = this.parseTagName();\n this.bumpSpace();\n if (this.bumpIf('/>')) {\n // Self closing tag\n return {\n val: {\n type: TYPE.literal,\n value: \"<\".concat(tagName, \"/>\"),\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else if (this.bumpIf('>')) {\n var childrenResult = this.parseMessage(nestingLevel + 1, parentArgType, true);\n if (childrenResult.err) {\n return childrenResult;\n }\n var children = childrenResult.val;\n // Expecting a close tag\n var endTagStartPosition = this.clonePosition();\n if (this.bumpIf('')) {\n return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition()));\n }\n return {\n val: {\n type: TYPE.tag,\n value: tagName,\n children: children,\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else {\n return this.error(ErrorKind.UNCLOSED_TAG, createLocation(startPosition, this.clonePosition()));\n }\n }\n else {\n return this.error(ErrorKind.INVALID_TAG, createLocation(startPosition, this.clonePosition()));\n }\n };\n /**\n * This method assumes that the caller has peeked ahead for the first tag character.\n */\n Parser.prototype.parseTagName = function () {\n var startOffset = this.offset();\n this.bump(); // the first tag name character\n while (!this.isEOF() && _isPotentialElementNameChar(this.char())) {\n this.bump();\n }\n return this.message.slice(startOffset, this.offset());\n };\n Parser.prototype.parseLiteral = function (nestingLevel, parentArgType) {\n var start = this.clonePosition();\n var value = '';\n while (true) {\n var parseQuoteResult = this.tryParseQuote(parentArgType);\n if (parseQuoteResult) {\n value += parseQuoteResult;\n continue;\n }\n var parseUnquotedResult = this.tryParseUnquoted(nestingLevel, parentArgType);\n if (parseUnquotedResult) {\n value += parseUnquotedResult;\n continue;\n }\n var parseLeftAngleResult = this.tryParseLeftAngleBracket();\n if (parseLeftAngleResult) {\n value += parseLeftAngleResult;\n continue;\n }\n break;\n }\n var location = createLocation(start, this.clonePosition());\n return {\n val: { type: TYPE.literal, value: value, location: location },\n err: null,\n };\n };\n Parser.prototype.tryParseLeftAngleBracket = function () {\n if (!this.isEOF() &&\n this.char() === 60 /* `<` */ &&\n (this.ignoreTag ||\n // If at the opening tag or closing tag position, bail.\n !_isAlphaOrSlash(this.peek() || 0))) {\n this.bump(); // `<`\n return '<';\n }\n return null;\n };\n /**\n * Starting with ICU 4.8, an ASCII apostrophe only starts quoted text if it immediately precedes\n * a character that requires quoting (that is, \"only where needed\"), and works the same in\n * nested messages as on the top level of the pattern. The new behavior is otherwise compatible.\n */\n Parser.prototype.tryParseQuote = function (parentArgType) {\n if (this.isEOF() || this.char() !== 39 /* `'` */) {\n return null;\n }\n // Parse escaped char following the apostrophe, or early return if there is no escaped char.\n // Check if is valid escaped character\n switch (this.peek()) {\n case 39 /* `'` */:\n // double quote, should return as a single quote.\n this.bump();\n this.bump();\n return \"'\";\n // '{', '<', '>', '}'\n case 123:\n case 60:\n case 62:\n case 125:\n break;\n case 35: // '#'\n if (parentArgType === 'plural' || parentArgType === 'selectordinal') {\n break;\n }\n return null;\n default:\n return null;\n }\n this.bump(); // apostrophe\n var codePoints = [this.char()]; // escaped char\n this.bump();\n // read chars until the optional closing apostrophe is found\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch === 39 /* `'` */) {\n if (this.peek() === 39 /* `'` */) {\n codePoints.push(39);\n // Bump one more time because we need to skip 2 characters.\n this.bump();\n }\n else {\n // Optional closing apostrophe.\n this.bump();\n break;\n }\n }\n else {\n codePoints.push(ch);\n }\n this.bump();\n }\n return fromCodePoint.apply(void 0, codePoints);\n };\n Parser.prototype.tryParseUnquoted = function (nestingLevel, parentArgType) {\n if (this.isEOF()) {\n return null;\n }\n var ch = this.char();\n if (ch === 60 /* `<` */ ||\n ch === 123 /* `{` */ ||\n (ch === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) ||\n (ch === 125 /* `}` */ && nestingLevel > 0)) {\n return null;\n }\n else {\n this.bump();\n return fromCodePoint(ch);\n }\n };\n Parser.prototype.parseArgument = function (nestingLevel, expectingCloseTag) {\n var openingBracePosition = this.clonePosition();\n this.bump(); // `{`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n if (this.char() === 125 /* `}` */) {\n this.bump();\n return this.error(ErrorKind.EMPTY_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n // argument name\n var value = this.parseIdentifierIfPossible().value;\n if (!value) {\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n switch (this.char()) {\n // Simple argument: `{name}`\n case 125 /* `}` */: {\n this.bump(); // `}`\n return {\n val: {\n type: TYPE.argument,\n // value does not include the opening and closing braces.\n value: value,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n err: null,\n };\n }\n // Argument with options: `{name, format, ...}`\n case 44 /* `,` */: {\n this.bump(); // `,`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n return this.parseArgumentOptions(nestingLevel, expectingCloseTag, value, openingBracePosition);\n }\n default:\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n };\n /**\n * Advance the parser until the end of the identifier, if it is currently on\n * an identifier character. Return an empty string otherwise.\n */\n Parser.prototype.parseIdentifierIfPossible = function () {\n var startingPosition = this.clonePosition();\n var startOffset = this.offset();\n var value = matchIdentifierAtIndex(this.message, startOffset);\n var endOffset = startOffset + value.length;\n this.bumpTo(endOffset);\n var endPosition = this.clonePosition();\n var location = createLocation(startingPosition, endPosition);\n return { value: value, location: location };\n };\n Parser.prototype.parseArgumentOptions = function (nestingLevel, expectingCloseTag, value, openingBracePosition) {\n var _a;\n // Parse this range:\n // {name, type, style}\n // ^---^\n var typeStartPosition = this.clonePosition();\n var argType = this.parseIdentifierIfPossible().value;\n var typeEndPosition = this.clonePosition();\n switch (argType) {\n case '':\n // Expecting a style string number, date, time, plural, selectordinal, or select.\n return this.error(ErrorKind.EXPECT_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n case 'number':\n case 'date':\n case 'time': {\n // Parse this range:\n // {name, number, style}\n // ^-------^\n this.bumpSpace();\n var styleAndLocation = null;\n if (this.bumpIf(',')) {\n this.bumpSpace();\n var styleStartPosition = this.clonePosition();\n var result = this.parseSimpleArgStyleIfPossible();\n if (result.err) {\n return result;\n }\n var style = trimEnd(result.val);\n if (style.length === 0) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_STYLE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var styleLocation = createLocation(styleStartPosition, this.clonePosition());\n styleAndLocation = { style: style, styleLocation: styleLocation };\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_1 = createLocation(openingBracePosition, this.clonePosition());\n // Extract style or skeleton\n if (styleAndLocation && startsWith(styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style, '::', 0)) {\n // Skeleton starts with `::`.\n var skeleton = trimStart(styleAndLocation.style.slice(2));\n if (argType === 'number') {\n var result = this.parseNumberSkeletonFromString(skeleton, styleAndLocation.styleLocation);\n if (result.err) {\n return result;\n }\n return {\n val: { type: TYPE.number, value: value, location: location_1, style: result.val },\n err: null,\n };\n }\n else {\n if (skeleton.length === 0) {\n return this.error(ErrorKind.EXPECT_DATE_TIME_SKELETON, location_1);\n }\n var dateTimePattern = skeleton;\n // Get \"best match\" pattern only if locale is passed, if not, let it\n // pass as-is where `parseDateTimeSkeleton()` will throw an error\n // for unsupported patterns.\n if (this.locale) {\n dateTimePattern = getBestPattern(skeleton, this.locale);\n }\n var style = {\n type: SKELETON_TYPE.dateTime,\n pattern: dateTimePattern,\n location: styleAndLocation.styleLocation,\n parsedOptions: this.shouldParseSkeletons\n ? parseDateTimeSkeleton(dateTimePattern)\n : {},\n };\n var type = argType === 'date' ? TYPE.date : TYPE.time;\n return {\n val: { type: type, value: value, location: location_1, style: style },\n err: null,\n };\n }\n }\n // Regular style or no style.\n return {\n val: {\n type: argType === 'number'\n ? TYPE.number\n : argType === 'date'\n ? TYPE.date\n : TYPE.time,\n value: value,\n location: location_1,\n style: (_a = styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style) !== null && _a !== void 0 ? _a : null,\n },\n err: null,\n };\n }\n case 'plural':\n case 'selectordinal':\n case 'select': {\n // Parse this range:\n // {name, plural, options}\n // ^---------^\n var typeEndPosition_1 = this.clonePosition();\n this.bumpSpace();\n if (!this.bumpIf(',')) {\n return this.error(ErrorKind.EXPECT_SELECT_ARGUMENT_OPTIONS, createLocation(typeEndPosition_1, __assign({}, typeEndPosition_1)));\n }\n this.bumpSpace();\n // Parse offset:\n // {name, plural, offset:1, options}\n // ^-----^\n //\n // or the first option:\n //\n // {name, plural, one {...} other {...}}\n // ^--^\n var identifierAndLocation = this.parseIdentifierIfPossible();\n var pluralOffset = 0;\n if (argType !== 'select' && identifierAndLocation.value === 'offset') {\n if (!this.bumpIf(':')) {\n return this.error(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n this.bumpSpace();\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, ErrorKind.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE);\n if (result.err) {\n return result;\n }\n // Parse another identifier for option parsing\n this.bumpSpace();\n identifierAndLocation = this.parseIdentifierIfPossible();\n pluralOffset = result.val;\n }\n var optionsResult = this.tryParsePluralOrSelectOptions(nestingLevel, argType, expectingCloseTag, identifierAndLocation);\n if (optionsResult.err) {\n return optionsResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_2 = createLocation(openingBracePosition, this.clonePosition());\n if (argType === 'select') {\n return {\n val: {\n type: TYPE.select,\n value: value,\n options: fromEntries(optionsResult.val),\n location: location_2,\n },\n err: null,\n };\n }\n else {\n return {\n val: {\n type: TYPE.plural,\n value: value,\n options: fromEntries(optionsResult.val),\n offset: pluralOffset,\n pluralType: argType === 'plural' ? 'cardinal' : 'ordinal',\n location: location_2,\n },\n err: null,\n };\n }\n }\n default:\n return this.error(ErrorKind.INVALID_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n }\n };\n Parser.prototype.tryParseArgumentClose = function (openingBracePosition) {\n // Parse: {value, number, ::currency/GBP }\n //\n if (this.isEOF() || this.char() !== 125 /* `}` */) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bump(); // `}`\n return { val: true, err: null };\n };\n /**\n * See: https://github.com/unicode-org/icu/blob/af7ed1f6d2298013dc303628438ec4abe1f16479/icu4c/source/common/messagepattern.cpp#L659\n */\n Parser.prototype.parseSimpleArgStyleIfPossible = function () {\n var nestedBraces = 0;\n var startPosition = this.clonePosition();\n while (!this.isEOF()) {\n var ch = this.char();\n switch (ch) {\n case 39 /* `'` */: {\n // Treat apostrophe as quoting but include it in the style part.\n // Find the end of the quoted literal text.\n this.bump();\n var apostrophePosition = this.clonePosition();\n if (!this.bumpUntil(\"'\")) {\n return this.error(ErrorKind.UNCLOSED_QUOTE_IN_ARGUMENT_STYLE, createLocation(apostrophePosition, this.clonePosition()));\n }\n this.bump();\n break;\n }\n case 123 /* `{` */: {\n nestedBraces += 1;\n this.bump();\n break;\n }\n case 125 /* `}` */: {\n if (nestedBraces > 0) {\n nestedBraces -= 1;\n }\n else {\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n }\n break;\n }\n default:\n this.bump();\n break;\n }\n }\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n };\n Parser.prototype.parseNumberSkeletonFromString = function (skeleton, location) {\n var tokens = [];\n try {\n tokens = parseNumberSkeletonFromString(skeleton);\n }\n catch (e) {\n return this.error(ErrorKind.INVALID_NUMBER_SKELETON, location);\n }\n return {\n val: {\n type: SKELETON_TYPE.number,\n tokens: tokens,\n location: location,\n parsedOptions: this.shouldParseSkeletons\n ? parseNumberSkeleton(tokens)\n : {},\n },\n err: null,\n };\n };\n /**\n * @param nesting_level The current nesting level of messages.\n * This can be positive when parsing message fragment in select or plural argument options.\n * @param parent_arg_type The parent argument's type.\n * @param parsed_first_identifier If provided, this is the first identifier-like selector of\n * the argument. It is a by-product of a previous parsing attempt.\n * @param expecting_close_tag If true, this message is directly or indirectly nested inside\n * between a pair of opening and closing tags. The nested message will not parse beyond\n * the closing tag boundary.\n */\n Parser.prototype.tryParsePluralOrSelectOptions = function (nestingLevel, parentArgType, expectCloseTag, parsedFirstIdentifier) {\n var _a;\n var hasOtherClause = false;\n var options = [];\n var parsedSelectors = new Set();\n var selector = parsedFirstIdentifier.value, selectorLocation = parsedFirstIdentifier.location;\n // Parse:\n // one {one apple}\n // ^--^\n while (true) {\n if (selector.length === 0) {\n var startPosition = this.clonePosition();\n if (parentArgType !== 'select' && this.bumpIf('=')) {\n // Try parse `={number}` selector\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, ErrorKind.INVALID_PLURAL_ARGUMENT_SELECTOR);\n if (result.err) {\n return result;\n }\n selectorLocation = createLocation(startPosition, this.clonePosition());\n selector = this.message.slice(startPosition.offset, this.offset());\n }\n else {\n break;\n }\n }\n // Duplicate selector clauses\n if (parsedSelectors.has(selector)) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.DUPLICATE_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.DUPLICATE_PLURAL_ARGUMENT_SELECTOR, selectorLocation);\n }\n if (selector === 'other') {\n hasOtherClause = true;\n }\n // Parse:\n // one {one apple}\n // ^----------^\n this.bumpSpace();\n var openingBracePosition = this.clonePosition();\n if (!this.bumpIf('{')) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var fragmentResult = this.parseMessage(nestingLevel + 1, parentArgType, expectCloseTag);\n if (fragmentResult.err) {\n return fragmentResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n options.push([\n selector,\n {\n value: fragmentResult.val,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n ]);\n // Keep track of the existing selectors\n parsedSelectors.add(selector);\n // Prep next selector clause.\n this.bumpSpace();\n (_a = this.parseIdentifierIfPossible(), selector = _a.value, selectorLocation = _a.location);\n }\n if (options.length === 0) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, createLocation(this.clonePosition(), this.clonePosition()));\n }\n if (this.requiresOtherClause && !hasOtherClause) {\n return this.error(ErrorKind.MISSING_OTHER_CLAUSE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n return { val: options, err: null };\n };\n Parser.prototype.tryParseDecimalInteger = function (expectNumberError, invalidNumberError) {\n var sign = 1;\n var startingPosition = this.clonePosition();\n if (this.bumpIf('+')) {\n }\n else if (this.bumpIf('-')) {\n sign = -1;\n }\n var hasDigits = false;\n var decimal = 0;\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch >= 48 /* `0` */ && ch <= 57 /* `9` */) {\n hasDigits = true;\n decimal = decimal * 10 + (ch - 48);\n this.bump();\n }\n else {\n break;\n }\n }\n var location = createLocation(startingPosition, this.clonePosition());\n if (!hasDigits) {\n return this.error(expectNumberError, location);\n }\n decimal *= sign;\n if (!isSafeInteger(decimal)) {\n return this.error(invalidNumberError, location);\n }\n return { val: decimal, err: null };\n };\n Parser.prototype.offset = function () {\n return this.position.offset;\n };\n Parser.prototype.isEOF = function () {\n return this.offset() === this.message.length;\n };\n Parser.prototype.clonePosition = function () {\n // This is much faster than `Object.assign` or spread.\n return {\n offset: this.position.offset,\n line: this.position.line,\n column: this.position.column,\n };\n };\n /**\n * Return the code point at the current position of the parser.\n * Throws if the index is out of bound.\n */\n Parser.prototype.char = function () {\n var offset = this.position.offset;\n if (offset >= this.message.length) {\n throw Error('out of bound');\n }\n var code = codePointAt(this.message, offset);\n if (code === undefined) {\n throw Error(\"Offset \".concat(offset, \" is at invalid UTF-16 code unit boundary\"));\n }\n return code;\n };\n Parser.prototype.error = function (kind, location) {\n return {\n val: null,\n err: {\n kind: kind,\n message: this.message,\n location: location,\n },\n };\n };\n /** Bump the parser to the next UTF-16 code unit. */\n Parser.prototype.bump = function () {\n if (this.isEOF()) {\n return;\n }\n var code = this.char();\n if (code === 10 /* '\\n' */) {\n this.position.line += 1;\n this.position.column = 1;\n this.position.offset += 1;\n }\n else {\n this.position.column += 1;\n // 0 ~ 0x10000 -> unicode BMP, otherwise skip the surrogate pair.\n this.position.offset += code < 0x10000 ? 1 : 2;\n }\n };\n /**\n * If the substring starting at the current position of the parser has\n * the given prefix, then bump the parser to the character immediately\n * following the prefix and return true. Otherwise, don't bump the parser\n * and return false.\n */\n Parser.prototype.bumpIf = function (prefix) {\n if (startsWith(this.message, prefix, this.offset())) {\n for (var i = 0; i < prefix.length; i++) {\n this.bump();\n }\n return true;\n }\n return false;\n };\n /**\n * Bump the parser until the pattern character is found and return `true`.\n * Otherwise bump to the end of the file and return `false`.\n */\n Parser.prototype.bumpUntil = function (pattern) {\n var currentOffset = this.offset();\n var index = this.message.indexOf(pattern, currentOffset);\n if (index >= 0) {\n this.bumpTo(index);\n return true;\n }\n else {\n this.bumpTo(this.message.length);\n return false;\n }\n };\n /**\n * Bump the parser to the target offset.\n * If target offset is beyond the end of the input, bump the parser to the end of the input.\n */\n Parser.prototype.bumpTo = function (targetOffset) {\n if (this.offset() > targetOffset) {\n throw Error(\"targetOffset \".concat(targetOffset, \" must be greater than or equal to the current offset \").concat(this.offset()));\n }\n targetOffset = Math.min(targetOffset, this.message.length);\n while (true) {\n var offset = this.offset();\n if (offset === targetOffset) {\n break;\n }\n if (offset > targetOffset) {\n throw Error(\"targetOffset \".concat(targetOffset, \" is at invalid UTF-16 code unit boundary\"));\n }\n this.bump();\n if (this.isEOF()) {\n break;\n }\n }\n };\n /** advance the parser through all whitespace to the next non-whitespace code unit. */\n Parser.prototype.bumpSpace = function () {\n while (!this.isEOF() && _isWhiteSpace(this.char())) {\n this.bump();\n }\n };\n /**\n * Peek at the *next* Unicode codepoint in the input without advancing the parser.\n * If the input has been exhausted, then this returns null.\n */\n Parser.prototype.peek = function () {\n if (this.isEOF()) {\n return null;\n }\n var code = this.char();\n var offset = this.offset();\n var nextCode = this.message.charCodeAt(offset + (code >= 0x10000 ? 2 : 1));\n return nextCode !== null && nextCode !== void 0 ? nextCode : null;\n };\n return Parser;\n}());\nexport { Parser };\n/**\n * This check if codepoint is alphabet (lower & uppercase)\n * @param codepoint\n * @returns\n */\nfunction _isAlpha(codepoint) {\n return ((codepoint >= 97 && codepoint <= 122) ||\n (codepoint >= 65 && codepoint <= 90));\n}\nfunction _isAlphaOrSlash(codepoint) {\n return _isAlpha(codepoint) || codepoint === 47; /* '/' */\n}\n/** See `parseTag` function docs. */\nfunction _isPotentialElementNameChar(c) {\n return (c === 45 /* '-' */ ||\n c === 46 /* '.' */ ||\n (c >= 48 && c <= 57) /* 0..9 */ ||\n c === 95 /* '_' */ ||\n (c >= 97 && c <= 122) /** a..z */ ||\n (c >= 65 && c <= 90) /* A..Z */ ||\n c == 0xb7 ||\n (c >= 0xc0 && c <= 0xd6) ||\n (c >= 0xd8 && c <= 0xf6) ||\n (c >= 0xf8 && c <= 0x37d) ||\n (c >= 0x37f && c <= 0x1fff) ||\n (c >= 0x200c && c <= 0x200d) ||\n (c >= 0x203f && c <= 0x2040) ||\n (c >= 0x2070 && c <= 0x218f) ||\n (c >= 0x2c00 && c <= 0x2fef) ||\n (c >= 0x3001 && c <= 0xd7ff) ||\n (c >= 0xf900 && c <= 0xfdcf) ||\n (c >= 0xfdf0 && c <= 0xfffd) ||\n (c >= 0x10000 && c <= 0xeffff));\n}\n/**\n * Code point equivalent of regex `\\p{White_Space}`.\n * From: https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isWhiteSpace(c) {\n return ((c >= 0x0009 && c <= 0x000d) ||\n c === 0x0020 ||\n c === 0x0085 ||\n (c >= 0x200e && c <= 0x200f) ||\n c === 0x2028 ||\n c === 0x2029);\n}\n/**\n * Code point equivalent of regex `\\p{Pattern_Syntax}`.\n * See https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isPatternSyntax(c) {\n return ((c >= 0x0021 && c <= 0x0023) ||\n c === 0x0024 ||\n (c >= 0x0025 && c <= 0x0027) ||\n c === 0x0028 ||\n c === 0x0029 ||\n c === 0x002a ||\n c === 0x002b ||\n c === 0x002c ||\n c === 0x002d ||\n (c >= 0x002e && c <= 0x002f) ||\n (c >= 0x003a && c <= 0x003b) ||\n (c >= 0x003c && c <= 0x003e) ||\n (c >= 0x003f && c <= 0x0040) ||\n c === 0x005b ||\n c === 0x005c ||\n c === 0x005d ||\n c === 0x005e ||\n c === 0x0060 ||\n c === 0x007b ||\n c === 0x007c ||\n c === 0x007d ||\n c === 0x007e ||\n c === 0x00a1 ||\n (c >= 0x00a2 && c <= 0x00a5) ||\n c === 0x00a6 ||\n c === 0x00a7 ||\n c === 0x00a9 ||\n c === 0x00ab ||\n c === 0x00ac ||\n c === 0x00ae ||\n c === 0x00b0 ||\n c === 0x00b1 ||\n c === 0x00b6 ||\n c === 0x00bb ||\n c === 0x00bf ||\n c === 0x00d7 ||\n c === 0x00f7 ||\n (c >= 0x2010 && c <= 0x2015) ||\n (c >= 0x2016 && c <= 0x2017) ||\n c === 0x2018 ||\n c === 0x2019 ||\n c === 0x201a ||\n (c >= 0x201b && c <= 0x201c) ||\n c === 0x201d ||\n c === 0x201e ||\n c === 0x201f ||\n (c >= 0x2020 && c <= 0x2027) ||\n (c >= 0x2030 && c <= 0x2038) ||\n c === 0x2039 ||\n c === 0x203a ||\n (c >= 0x203b && c <= 0x203e) ||\n (c >= 0x2041 && c <= 0x2043) ||\n c === 0x2044 ||\n c === 0x2045 ||\n c === 0x2046 ||\n (c >= 0x2047 && c <= 0x2051) ||\n c === 0x2052 ||\n c === 0x2053 ||\n (c >= 0x2055 && c <= 0x205e) ||\n (c >= 0x2190 && c <= 0x2194) ||\n (c >= 0x2195 && c <= 0x2199) ||\n (c >= 0x219a && c <= 0x219b) ||\n (c >= 0x219c && c <= 0x219f) ||\n c === 0x21a0 ||\n (c >= 0x21a1 && c <= 0x21a2) ||\n c === 0x21a3 ||\n (c >= 0x21a4 && c <= 0x21a5) ||\n c === 0x21a6 ||\n (c >= 0x21a7 && c <= 0x21ad) ||\n c === 0x21ae ||\n (c >= 0x21af && c <= 0x21cd) ||\n (c >= 0x21ce && c <= 0x21cf) ||\n (c >= 0x21d0 && c <= 0x21d1) ||\n c === 0x21d2 ||\n c === 0x21d3 ||\n c === 0x21d4 ||\n (c >= 0x21d5 && c <= 0x21f3) ||\n (c >= 0x21f4 && c <= 0x22ff) ||\n (c >= 0x2300 && c <= 0x2307) ||\n c === 0x2308 ||\n c === 0x2309 ||\n c === 0x230a ||\n c === 0x230b ||\n (c >= 0x230c && c <= 0x231f) ||\n (c >= 0x2320 && c <= 0x2321) ||\n (c >= 0x2322 && c <= 0x2328) ||\n c === 0x2329 ||\n c === 0x232a ||\n (c >= 0x232b && c <= 0x237b) ||\n c === 0x237c ||\n (c >= 0x237d && c <= 0x239a) ||\n (c >= 0x239b && c <= 0x23b3) ||\n (c >= 0x23b4 && c <= 0x23db) ||\n (c >= 0x23dc && c <= 0x23e1) ||\n (c >= 0x23e2 && c <= 0x2426) ||\n (c >= 0x2427 && c <= 0x243f) ||\n (c >= 0x2440 && c <= 0x244a) ||\n (c >= 0x244b && c <= 0x245f) ||\n (c >= 0x2500 && c <= 0x25b6) ||\n c === 0x25b7 ||\n (c >= 0x25b8 && c <= 0x25c0) ||\n c === 0x25c1 ||\n (c >= 0x25c2 && c <= 0x25f7) ||\n (c >= 0x25f8 && c <= 0x25ff) ||\n (c >= 0x2600 && c <= 0x266e) ||\n c === 0x266f ||\n (c >= 0x2670 && c <= 0x2767) ||\n c === 0x2768 ||\n c === 0x2769 ||\n c === 0x276a ||\n c === 0x276b ||\n c === 0x276c ||\n c === 0x276d ||\n c === 0x276e ||\n c === 0x276f ||\n c === 0x2770 ||\n c === 0x2771 ||\n c === 0x2772 ||\n c === 0x2773 ||\n c === 0x2774 ||\n c === 0x2775 ||\n (c >= 0x2794 && c <= 0x27bf) ||\n (c >= 0x27c0 && c <= 0x27c4) ||\n c === 0x27c5 ||\n c === 0x27c6 ||\n (c >= 0x27c7 && c <= 0x27e5) ||\n c === 0x27e6 ||\n c === 0x27e7 ||\n c === 0x27e8 ||\n c === 0x27e9 ||\n c === 0x27ea ||\n c === 0x27eb ||\n c === 0x27ec ||\n c === 0x27ed ||\n c === 0x27ee ||\n c === 0x27ef ||\n (c >= 0x27f0 && c <= 0x27ff) ||\n (c >= 0x2800 && c <= 0x28ff) ||\n (c >= 0x2900 && c <= 0x2982) ||\n c === 0x2983 ||\n c === 0x2984 ||\n c === 0x2985 ||\n c === 0x2986 ||\n c === 0x2987 ||\n c === 0x2988 ||\n c === 0x2989 ||\n c === 0x298a ||\n c === 0x298b ||\n c === 0x298c ||\n c === 0x298d ||\n c === 0x298e ||\n c === 0x298f ||\n c === 0x2990 ||\n c === 0x2991 ||\n c === 0x2992 ||\n c === 0x2993 ||\n c === 0x2994 ||\n c === 0x2995 ||\n c === 0x2996 ||\n c === 0x2997 ||\n c === 0x2998 ||\n (c >= 0x2999 && c <= 0x29d7) ||\n c === 0x29d8 ||\n c === 0x29d9 ||\n c === 0x29da ||\n c === 0x29db ||\n (c >= 0x29dc && c <= 0x29fb) ||\n c === 0x29fc ||\n c === 0x29fd ||\n (c >= 0x29fe && c <= 0x2aff) ||\n (c >= 0x2b00 && c <= 0x2b2f) ||\n (c >= 0x2b30 && c <= 0x2b44) ||\n (c >= 0x2b45 && c <= 0x2b46) ||\n (c >= 0x2b47 && c <= 0x2b4c) ||\n (c >= 0x2b4d && c <= 0x2b73) ||\n (c >= 0x2b74 && c <= 0x2b75) ||\n (c >= 0x2b76 && c <= 0x2b95) ||\n c === 0x2b96 ||\n (c >= 0x2b97 && c <= 0x2bff) ||\n (c >= 0x2e00 && c <= 0x2e01) ||\n c === 0x2e02 ||\n c === 0x2e03 ||\n c === 0x2e04 ||\n c === 0x2e05 ||\n (c >= 0x2e06 && c <= 0x2e08) ||\n c === 0x2e09 ||\n c === 0x2e0a ||\n c === 0x2e0b ||\n c === 0x2e0c ||\n c === 0x2e0d ||\n (c >= 0x2e0e && c <= 0x2e16) ||\n c === 0x2e17 ||\n (c >= 0x2e18 && c <= 0x2e19) ||\n c === 0x2e1a ||\n c === 0x2e1b ||\n c === 0x2e1c ||\n c === 0x2e1d ||\n (c >= 0x2e1e && c <= 0x2e1f) ||\n c === 0x2e20 ||\n c === 0x2e21 ||\n c === 0x2e22 ||\n c === 0x2e23 ||\n c === 0x2e24 ||\n c === 0x2e25 ||\n c === 0x2e26 ||\n c === 0x2e27 ||\n c === 0x2e28 ||\n c === 0x2e29 ||\n (c >= 0x2e2a && c <= 0x2e2e) ||\n c === 0x2e2f ||\n (c >= 0x2e30 && c <= 0x2e39) ||\n (c >= 0x2e3a && c <= 0x2e3b) ||\n (c >= 0x2e3c && c <= 0x2e3f) ||\n c === 0x2e40 ||\n c === 0x2e41 ||\n c === 0x2e42 ||\n (c >= 0x2e43 && c <= 0x2e4f) ||\n (c >= 0x2e50 && c <= 0x2e51) ||\n c === 0x2e52 ||\n (c >= 0x2e53 && c <= 0x2e7f) ||\n (c >= 0x3001 && c <= 0x3003) ||\n c === 0x3008 ||\n c === 0x3009 ||\n c === 0x300a ||\n c === 0x300b ||\n c === 0x300c ||\n c === 0x300d ||\n c === 0x300e ||\n c === 0x300f ||\n c === 0x3010 ||\n c === 0x3011 ||\n (c >= 0x3012 && c <= 0x3013) ||\n c === 0x3014 ||\n c === 0x3015 ||\n c === 0x3016 ||\n c === 0x3017 ||\n c === 0x3018 ||\n c === 0x3019 ||\n c === 0x301a ||\n c === 0x301b ||\n c === 0x301c ||\n c === 0x301d ||\n (c >= 0x301e && c <= 0x301f) ||\n c === 0x3020 ||\n c === 0x3030 ||\n c === 0xfd3e ||\n c === 0xfd3f ||\n (c >= 0xfe45 && c <= 0xfe46));\n}\n","import { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { Parser } from './parser';\nimport { isDateElement, isDateTimeSkeleton, isNumberElement, isNumberSkeleton, isPluralElement, isSelectElement, isTagElement, isTimeElement, } from './types';\nfunction pruneLocation(els) {\n els.forEach(function (el) {\n delete el.location;\n if (isSelectElement(el) || isPluralElement(el)) {\n for (var k in el.options) {\n delete el.options[k].location;\n pruneLocation(el.options[k].value);\n }\n }\n else if (isNumberElement(el) && isNumberSkeleton(el.style)) {\n delete el.style.location;\n }\n else if ((isDateElement(el) || isTimeElement(el)) &&\n isDateTimeSkeleton(el.style)) {\n delete el.style.location;\n }\n else if (isTagElement(el)) {\n pruneLocation(el.children);\n }\n });\n}\nexport function parse(message, opts) {\n if (opts === void 0) { opts = {}; }\n opts = __assign({ shouldParseSkeletons: true, requiresOtherClause: true }, opts);\n var result = new Parser(message, opts).parse();\n if (result.err) {\n var error = SyntaxError(ErrorKind[result.err.kind]);\n // @ts-expect-error Assign to error object\n error.location = result.err.location;\n // @ts-expect-error Assign to error object\n error.originalMessage = result.err.message;\n throw error;\n }\n if (!(opts === null || opts === void 0 ? void 0 : opts.captureLocation)) {\n pruneLocation(result.val);\n }\n return result.val;\n}\nexport * from './types';\n// only for testing\nexport var _Parser = Parser;\n","//\n// Main\n//\nexport function memoize(fn, options) {\n var cache = options && options.cache ? options.cache : cacheDefault;\n var serializer = options && options.serializer ? options.serializer : serializerDefault;\n var strategy = options && options.strategy ? options.strategy : strategyDefault;\n return strategy(fn, {\n cache: cache,\n serializer: serializer,\n });\n}\n//\n// Strategy\n//\nfunction isPrimitive(value) {\n return (value == null || typeof value === 'number' || typeof value === 'boolean'); // || typeof value === \"string\" 'unsafe' primitive for our needs\n}\nfunction monadic(fn, cache, serializer, arg) {\n var cacheKey = isPrimitive(arg) ? arg : serializer(arg);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.call(this, arg);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction variadic(fn, cache, serializer) {\n var args = Array.prototype.slice.call(arguments, 3);\n var cacheKey = serializer(args);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.apply(this, args);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction assemble(fn, context, strategy, cache, serialize) {\n return strategy.bind(context, fn, cache, serialize);\n}\nfunction strategyDefault(fn, options) {\n var strategy = fn.length === 1 ? monadic : variadic;\n return assemble(fn, this, strategy, options.cache.create(), options.serializer);\n}\nfunction strategyVariadic(fn, options) {\n return assemble(fn, this, variadic, options.cache.create(), options.serializer);\n}\nfunction strategyMonadic(fn, options) {\n return assemble(fn, this, monadic, options.cache.create(), options.serializer);\n}\n//\n// Serializer\n//\nvar serializerDefault = function () {\n return JSON.stringify(arguments);\n};\n//\n// Cache\n//\nfunction ObjectWithoutPrototypeCache() {\n this.cache = Object.create(null);\n}\nObjectWithoutPrototypeCache.prototype.get = function (key) {\n return this.cache[key];\n};\nObjectWithoutPrototypeCache.prototype.set = function (key, value) {\n this.cache[key] = value;\n};\nvar cacheDefault = {\n create: function create() {\n // @ts-ignore\n return new ObjectWithoutPrototypeCache();\n },\n};\nexport var strategies = {\n variadic: strategyVariadic,\n monadic: strategyMonadic,\n};\n","import { __extends } from \"tslib\";\nexport var ErrorCode;\n(function (ErrorCode) {\n // When we have a placeholder but no value to format\n ErrorCode[\"MISSING_VALUE\"] = \"MISSING_VALUE\";\n // When value supplied is invalid\n ErrorCode[\"INVALID_VALUE\"] = \"INVALID_VALUE\";\n // When we need specific Intl API but it's not available\n ErrorCode[\"MISSING_INTL_API\"] = \"MISSING_INTL_API\";\n})(ErrorCode || (ErrorCode = {}));\nvar FormatError = /** @class */ (function (_super) {\n __extends(FormatError, _super);\n function FormatError(msg, code, originalMessage) {\n var _this = _super.call(this, msg) || this;\n _this.code = code;\n _this.originalMessage = originalMessage;\n return _this;\n }\n FormatError.prototype.toString = function () {\n return \"[formatjs Error: \".concat(this.code, \"] \").concat(this.message);\n };\n return FormatError;\n}(Error));\nexport { FormatError };\nvar InvalidValueError = /** @class */ (function (_super) {\n __extends(InvalidValueError, _super);\n function InvalidValueError(variableId, value, options, originalMessage) {\n return _super.call(this, \"Invalid values for \\\"\".concat(variableId, \"\\\": \\\"\").concat(value, \"\\\". Options are \\\"\").concat(Object.keys(options).join('\", \"'), \"\\\"\"), ErrorCode.INVALID_VALUE, originalMessage) || this;\n }\n return InvalidValueError;\n}(FormatError));\nexport { InvalidValueError };\nvar InvalidValueTypeError = /** @class */ (function (_super) {\n __extends(InvalidValueTypeError, _super);\n function InvalidValueTypeError(value, type, originalMessage) {\n return _super.call(this, \"Value for \\\"\".concat(value, \"\\\" must be of type \").concat(type), ErrorCode.INVALID_VALUE, originalMessage) || this;\n }\n return InvalidValueTypeError;\n}(FormatError));\nexport { InvalidValueTypeError };\nvar MissingValueError = /** @class */ (function (_super) {\n __extends(MissingValueError, _super);\n function MissingValueError(variableId, originalMessage) {\n return _super.call(this, \"The intl string context variable \\\"\".concat(variableId, \"\\\" was not provided to the string \\\"\").concat(originalMessage, \"\\\"\"), ErrorCode.MISSING_VALUE, originalMessage) || this;\n }\n return MissingValueError;\n}(FormatError));\nexport { MissingValueError };\n","import { isArgumentElement, isDateElement, isDateTimeSkeleton, isLiteralElement, isNumberElement, isNumberSkeleton, isPluralElement, isPoundElement, isSelectElement, isTimeElement, isTagElement, } from '@formatjs/icu-messageformat-parser';\nimport { MissingValueError, InvalidValueError, ErrorCode, FormatError, InvalidValueTypeError, } from './error';\nexport var PART_TYPE;\n(function (PART_TYPE) {\n PART_TYPE[PART_TYPE[\"literal\"] = 0] = \"literal\";\n PART_TYPE[PART_TYPE[\"object\"] = 1] = \"object\";\n})(PART_TYPE || (PART_TYPE = {}));\nfunction mergeLiteral(parts) {\n if (parts.length < 2) {\n return parts;\n }\n return parts.reduce(function (all, part) {\n var lastPart = all[all.length - 1];\n if (!lastPart ||\n lastPart.type !== PART_TYPE.literal ||\n part.type !== PART_TYPE.literal) {\n all.push(part);\n }\n else {\n lastPart.value += part.value;\n }\n return all;\n }, []);\n}\nexport function isFormatXMLElementFn(el) {\n return typeof el === 'function';\n}\n// TODO(skeleton): add skeleton support\nexport function formatToParts(els, locales, formatters, formats, values, currentPluralValue, \n// For debugging\noriginalMessage) {\n // Hot path for straight simple msg translations\n if (els.length === 1 && isLiteralElement(els[0])) {\n return [\n {\n type: PART_TYPE.literal,\n value: els[0].value,\n },\n ];\n }\n var result = [];\n for (var _i = 0, els_1 = els; _i < els_1.length; _i++) {\n var el = els_1[_i];\n // Exit early for string parts.\n if (isLiteralElement(el)) {\n result.push({\n type: PART_TYPE.literal,\n value: el.value,\n });\n continue;\n }\n // TODO: should this part be literal type?\n // Replace `#` in plural rules with the actual numeric value.\n if (isPoundElement(el)) {\n if (typeof currentPluralValue === 'number') {\n result.push({\n type: PART_TYPE.literal,\n value: formatters.getNumberFormat(locales).format(currentPluralValue),\n });\n }\n continue;\n }\n var varName = el.value;\n // Enforce that all required values are provided by the caller.\n if (!(values && varName in values)) {\n throw new MissingValueError(varName, originalMessage);\n }\n var value = values[varName];\n if (isArgumentElement(el)) {\n if (!value || typeof value === 'string' || typeof value === 'number') {\n value =\n typeof value === 'string' || typeof value === 'number'\n ? String(value)\n : '';\n }\n result.push({\n type: typeof value === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n value: value,\n });\n continue;\n }\n // Recursively format plural and select parts' option — which can be a\n // nested pattern structure. The choosing of the option to use is\n // abstracted-by and delegated-to the part helper object.\n if (isDateElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.date[el.style]\n : isDateTimeSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isTimeElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.time[el.style]\n : isDateTimeSkeleton(el.style)\n ? el.style.parsedOptions\n : formats.time.medium;\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isNumberElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.number[el.style]\n : isNumberSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n if (style && style.scale) {\n value =\n value *\n (style.scale || 1);\n }\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getNumberFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isTagElement(el)) {\n var children = el.children, value_1 = el.value;\n var formatFn = values[value_1];\n if (!isFormatXMLElementFn(formatFn)) {\n throw new InvalidValueTypeError(value_1, 'function', originalMessage);\n }\n var parts = formatToParts(children, locales, formatters, formats, values, currentPluralValue);\n var chunks = formatFn(parts.map(function (p) { return p.value; }));\n if (!Array.isArray(chunks)) {\n chunks = [chunks];\n }\n result.push.apply(result, chunks.map(function (c) {\n return {\n type: typeof c === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n value: c,\n };\n }));\n }\n if (isSelectElement(el)) {\n var opt = el.options[value] || el.options.other;\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values));\n continue;\n }\n if (isPluralElement(el)) {\n var opt = el.options[\"=\".concat(value)];\n if (!opt) {\n if (!Intl.PluralRules) {\n throw new FormatError(\"Intl.PluralRules is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-pluralrules\\\"\\n\", ErrorCode.MISSING_INTL_API, originalMessage);\n }\n var rule = formatters\n .getPluralRules(locales, { type: el.pluralType })\n .select(value - (el.offset || 0));\n opt = el.options[rule] || el.options.other;\n }\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values, value - (el.offset || 0)));\n continue;\n }\n }\n return mergeLiteral(result);\n}\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nimport { __assign, __rest, __spreadArray } from \"tslib\";\nimport { parse, } from '@formatjs/icu-messageformat-parser';\nimport { memoize, strategies } from '@formatjs/fast-memoize';\nimport { formatToParts, PART_TYPE, } from './formatters';\n// -- MessageFormat --------------------------------------------------------\nfunction mergeConfig(c1, c2) {\n if (!c2) {\n return c1;\n }\n return __assign(__assign(__assign({}, (c1 || {})), (c2 || {})), Object.keys(c1).reduce(function (all, k) {\n all[k] = __assign(__assign({}, c1[k]), (c2[k] || {}));\n return all;\n }, {}));\n}\nfunction mergeConfigs(defaultConfig, configs) {\n if (!configs) {\n return defaultConfig;\n }\n return Object.keys(defaultConfig).reduce(function (all, k) {\n all[k] = mergeConfig(defaultConfig[k], configs[k]);\n return all;\n }, __assign({}, defaultConfig));\n}\nfunction createFastMemoizeCache(store) {\n return {\n create: function () {\n return {\n get: function (key) {\n return store[key];\n },\n set: function (key, value) {\n store[key] = value;\n },\n };\n },\n };\n}\nfunction createDefaultFormatters(cache) {\n if (cache === void 0) { cache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n }; }\n return {\n getNumberFormat: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.number),\n strategy: strategies.variadic,\n }),\n getDateTimeFormat: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.dateTime),\n strategy: strategies.variadic,\n }),\n getPluralRules: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.pluralRules),\n strategy: strategies.variadic,\n }),\n };\n}\nvar IntlMessageFormat = /** @class */ (function () {\n function IntlMessageFormat(message, locales, overrideFormats, opts) {\n var _this = this;\n if (locales === void 0) { locales = IntlMessageFormat.defaultLocale; }\n this.formatterCache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n };\n this.format = function (values) {\n var parts = _this.formatToParts(values);\n // Hot path for straight simple msg translations\n if (parts.length === 1) {\n return parts[0].value;\n }\n var result = parts.reduce(function (all, part) {\n if (!all.length ||\n part.type !== PART_TYPE.literal ||\n typeof all[all.length - 1] !== 'string') {\n all.push(part.value);\n }\n else {\n all[all.length - 1] += part.value;\n }\n return all;\n }, []);\n if (result.length <= 1) {\n return result[0] || '';\n }\n return result;\n };\n this.formatToParts = function (values) {\n return formatToParts(_this.ast, _this.locales, _this.formatters, _this.formats, values, undefined, _this.message);\n };\n this.resolvedOptions = function () {\n var _a;\n return ({\n locale: ((_a = _this.resolvedLocale) === null || _a === void 0 ? void 0 : _a.toString()) ||\n Intl.NumberFormat.supportedLocalesOf(_this.locales)[0],\n });\n };\n this.getAst = function () { return _this.ast; };\n // Defined first because it's used to build the format pattern.\n this.locales = locales;\n this.resolvedLocale = IntlMessageFormat.resolveLocale(locales);\n if (typeof message === 'string') {\n this.message = message;\n if (!IntlMessageFormat.__parse) {\n throw new TypeError('IntlMessageFormat.__parse must be set to process `message` of type `string`');\n }\n var _a = opts || {}, formatters = _a.formatters, parseOpts = __rest(_a, [\"formatters\"]);\n // Parse string messages into an AST.\n this.ast = IntlMessageFormat.__parse(message, __assign(__assign({}, parseOpts), { locale: this.resolvedLocale }));\n }\n else {\n this.ast = message;\n }\n if (!Array.isArray(this.ast)) {\n throw new TypeError('A message must be provided as a String or AST.');\n }\n // Creates a new object with the specified `formats` merged with the default\n // formats.\n this.formats = mergeConfigs(IntlMessageFormat.formats, overrideFormats);\n this.formatters =\n (opts && opts.formatters) || createDefaultFormatters(this.formatterCache);\n }\n Object.defineProperty(IntlMessageFormat, \"defaultLocale\", {\n get: function () {\n if (!IntlMessageFormat.memoizedDefaultLocale) {\n IntlMessageFormat.memoizedDefaultLocale =\n new Intl.NumberFormat().resolvedOptions().locale;\n }\n return IntlMessageFormat.memoizedDefaultLocale;\n },\n enumerable: false,\n configurable: true\n });\n IntlMessageFormat.memoizedDefaultLocale = null;\n IntlMessageFormat.resolveLocale = function (locales) {\n if (typeof Intl.Locale === 'undefined') {\n return;\n }\n var supportedLocales = Intl.NumberFormat.supportedLocalesOf(locales);\n if (supportedLocales.length > 0) {\n return new Intl.Locale(supportedLocales[0]);\n }\n return new Intl.Locale(typeof locales === 'string' ? locales : locales[0]);\n };\n IntlMessageFormat.__parse = parse;\n // Default format options used as the prototype of the `formats` provided to the\n // constructor. These are used when constructing the internal Intl.NumberFormat\n // and Intl.DateTimeFormat instances.\n IntlMessageFormat.formats = {\n number: {\n integer: {\n maximumFractionDigits: 0,\n },\n currency: {\n style: 'currency',\n },\n percent: {\n style: 'percent',\n },\n },\n date: {\n short: {\n month: 'numeric',\n day: 'numeric',\n year: '2-digit',\n },\n medium: {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n },\n long: {\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n full: {\n weekday: 'long',\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n },\n time: {\n short: {\n hour: 'numeric',\n minute: 'numeric',\n },\n medium: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n },\n long: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n full: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n },\n };\n return IntlMessageFormat;\n}());\nexport { IntlMessageFormat };\n","import { __extends } from \"tslib\";\nexport var IntlErrorCode;\n(function (IntlErrorCode) {\n IntlErrorCode[\"FORMAT_ERROR\"] = \"FORMAT_ERROR\";\n IntlErrorCode[\"UNSUPPORTED_FORMATTER\"] = \"UNSUPPORTED_FORMATTER\";\n IntlErrorCode[\"INVALID_CONFIG\"] = \"INVALID_CONFIG\";\n IntlErrorCode[\"MISSING_DATA\"] = \"MISSING_DATA\";\n IntlErrorCode[\"MISSING_TRANSLATION\"] = \"MISSING_TRANSLATION\";\n})(IntlErrorCode || (IntlErrorCode = {}));\nvar IntlError = /** @class */ (function (_super) {\n __extends(IntlError, _super);\n function IntlError(code, message, exception) {\n var _this = this;\n var err = exception\n ? exception instanceof Error\n ? exception\n : new Error(String(exception))\n : undefined;\n _this = _super.call(this, \"[@formatjs/intl Error \".concat(code, \"] \").concat(message, \"\\n\").concat(err ? \"\\n\".concat(err.message, \"\\n\").concat(err.stack) : '')) || this;\n _this.code = code;\n // @ts-ignore just so we don't need to declare dep on @types/node\n if (typeof Error.captureStackTrace === 'function') {\n // @ts-ignore just so we don't need to declare dep on @types/node\n Error.captureStackTrace(_this, IntlError);\n }\n return _this;\n }\n return IntlError;\n}(Error));\nexport { IntlError };\nvar UnsupportedFormatterError = /** @class */ (function (_super) {\n __extends(UnsupportedFormatterError, _super);\n function UnsupportedFormatterError(message, exception) {\n return _super.call(this, IntlErrorCode.UNSUPPORTED_FORMATTER, message, exception) || this;\n }\n return UnsupportedFormatterError;\n}(IntlError));\nexport { UnsupportedFormatterError };\nvar InvalidConfigError = /** @class */ (function (_super) {\n __extends(InvalidConfigError, _super);\n function InvalidConfigError(message, exception) {\n return _super.call(this, IntlErrorCode.INVALID_CONFIG, message, exception) || this;\n }\n return InvalidConfigError;\n}(IntlError));\nexport { InvalidConfigError };\nvar MissingDataError = /** @class */ (function (_super) {\n __extends(MissingDataError, _super);\n function MissingDataError(message, exception) {\n return _super.call(this, IntlErrorCode.MISSING_DATA, message, exception) || this;\n }\n return MissingDataError;\n}(IntlError));\nexport { MissingDataError };\nvar IntlFormatError = /** @class */ (function (_super) {\n __extends(IntlFormatError, _super);\n function IntlFormatError(message, locale, exception) {\n var _this = _super.call(this, IntlErrorCode.FORMAT_ERROR, \"\".concat(message, \"\\nLocale: \").concat(locale, \"\\n\"), exception) || this;\n _this.locale = locale;\n return _this;\n }\n return IntlFormatError;\n}(IntlError));\nexport { IntlFormatError };\nvar MessageFormatError = /** @class */ (function (_super) {\n __extends(MessageFormatError, _super);\n function MessageFormatError(message, locale, descriptor, exception) {\n var _this = _super.call(this, \"\".concat(message, \"\\nMessageID: \").concat(descriptor === null || descriptor === void 0 ? void 0 : descriptor.id, \"\\nDefault Message: \").concat(descriptor === null || descriptor === void 0 ? void 0 : descriptor.defaultMessage, \"\\nDescription: \").concat(descriptor === null || descriptor === void 0 ? void 0 : descriptor.description, \"\\n\"), locale, exception) || this;\n _this.descriptor = descriptor;\n _this.locale = locale;\n return _this;\n }\n return MessageFormatError;\n}(IntlFormatError));\nexport { MessageFormatError };\nvar MissingTranslationError = /** @class */ (function (_super) {\n __extends(MissingTranslationError, _super);\n function MissingTranslationError(descriptor, locale) {\n var _this = _super.call(this, IntlErrorCode.MISSING_TRANSLATION, \"Missing message: \\\"\".concat(descriptor.id, \"\\\" for locale \\\"\").concat(locale, \"\\\", using \").concat(descriptor.defaultMessage\n ? \"default message (\".concat(typeof descriptor.defaultMessage === 'string'\n ? descriptor.defaultMessage\n : descriptor.defaultMessage\n .map(function (e) { var _a; return (_a = e.value) !== null && _a !== void 0 ? _a : JSON.stringify(e); })\n .join(), \")\")\n : 'id', \" as fallback.\")) || this;\n _this.descriptor = descriptor;\n return _this;\n }\n return MissingTranslationError;\n}(IntlError));\nexport { MissingTranslationError };\n","import { __assign, __spreadArray } from \"tslib\";\nimport { IntlMessageFormat } from 'intl-messageformat';\nimport { memoize, strategies } from '@formatjs/fast-memoize';\nimport { UnsupportedFormatterError } from './error';\nexport function filterProps(props, allowlist, defaults) {\n if (defaults === void 0) { defaults = {}; }\n return allowlist.reduce(function (filtered, name) {\n if (name in props) {\n filtered[name] = props[name];\n }\n else if (name in defaults) {\n filtered[name] = defaults[name];\n }\n return filtered;\n }, {});\n}\nvar defaultErrorHandler = function (error) {\n // @ts-ignore just so we don't need to declare dep on @types/node\n if (process.env.NODE_ENV !== 'production') {\n console.error(error);\n }\n};\nvar defaultWarnHandler = function (warning) {\n // @ts-ignore just so we don't need to declare dep on @types/node\n if (process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n};\nexport var DEFAULT_INTL_CONFIG = {\n formats: {},\n messages: {},\n timeZone: undefined,\n defaultLocale: 'en',\n defaultFormats: {},\n fallbackOnEmptyString: true,\n onError: defaultErrorHandler,\n onWarn: defaultWarnHandler,\n};\nexport function createIntlCache() {\n return {\n dateTime: {},\n number: {},\n message: {},\n relativeTime: {},\n pluralRules: {},\n list: {},\n displayNames: {},\n };\n}\nfunction createFastMemoizeCache(store) {\n return {\n create: function () {\n return {\n get: function (key) {\n return store[key];\n },\n set: function (key, value) {\n store[key] = value;\n },\n };\n },\n };\n}\n/**\n * Create intl formatters and populate cache\n * @param cache explicit cache to prevent leaking memory\n */\nexport function createFormatters(cache) {\n if (cache === void 0) { cache = createIntlCache(); }\n var RelativeTimeFormat = Intl.RelativeTimeFormat;\n var ListFormat = Intl.ListFormat;\n var DisplayNames = Intl.DisplayNames;\n var getDateTimeFormat = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.dateTime),\n strategy: strategies.variadic,\n });\n var getNumberFormat = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.number),\n strategy: strategies.variadic,\n });\n var getPluralRules = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.pluralRules),\n strategy: strategies.variadic,\n });\n return {\n getDateTimeFormat: getDateTimeFormat,\n getNumberFormat: getNumberFormat,\n getMessageFormat: memoize(function (message, locales, overrideFormats, opts) {\n return new IntlMessageFormat(message, locales, overrideFormats, __assign({ formatters: {\n getNumberFormat: getNumberFormat,\n getDateTimeFormat: getDateTimeFormat,\n getPluralRules: getPluralRules,\n } }, (opts || {})));\n }, {\n cache: createFastMemoizeCache(cache.message),\n strategy: strategies.variadic,\n }),\n getRelativeTimeFormat: memoize(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new (RelativeTimeFormat.bind.apply(RelativeTimeFormat, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.relativeTime),\n strategy: strategies.variadic,\n }),\n getPluralRules: getPluralRules,\n getListFormat: memoize(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new (ListFormat.bind.apply(ListFormat, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.list),\n strategy: strategies.variadic,\n }),\n getDisplayNames: memoize(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new (DisplayNames.bind.apply(DisplayNames, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.displayNames),\n strategy: strategies.variadic,\n }),\n };\n}\nexport function getNamedFormat(formats, type, name, onError) {\n var formatType = formats && formats[type];\n var format;\n if (formatType) {\n format = formatType[name];\n }\n if (format) {\n return format;\n }\n onError(new UnsupportedFormatterError(\"No \".concat(type, \" format named: \").concat(name)));\n}\n","import { __assign } from \"tslib\";\nimport { invariant } from '@formatjs/ecma402-abstract';\nimport { IntlMessageFormat, } from 'intl-messageformat';\nimport { MissingTranslationError, MessageFormatError } from './error';\nimport { TYPE } from '@formatjs/icu-messageformat-parser';\nfunction setTimeZoneInOptions(opts, timeZone) {\n return Object.keys(opts).reduce(function (all, k) {\n all[k] = __assign({ timeZone: timeZone }, opts[k]);\n return all;\n }, {});\n}\nfunction deepMergeOptions(opts1, opts2) {\n var keys = Object.keys(__assign(__assign({}, opts1), opts2));\n return keys.reduce(function (all, k) {\n all[k] = __assign(__assign({}, (opts1[k] || {})), (opts2[k] || {}));\n return all;\n }, {});\n}\nfunction deepMergeFormatsAndSetTimeZone(f1, timeZone) {\n if (!timeZone) {\n return f1;\n }\n var mfFormats = IntlMessageFormat.formats;\n return __assign(__assign(__assign({}, mfFormats), f1), { date: deepMergeOptions(setTimeZoneInOptions(mfFormats.date, timeZone), setTimeZoneInOptions(f1.date || {}, timeZone)), time: deepMergeOptions(setTimeZoneInOptions(mfFormats.time, timeZone), setTimeZoneInOptions(f1.time || {}, timeZone)) });\n}\nexport var formatMessage = function (_a, state, messageDescriptor, values, opts) {\n var locale = _a.locale, formats = _a.formats, messages = _a.messages, defaultLocale = _a.defaultLocale, defaultFormats = _a.defaultFormats, fallbackOnEmptyString = _a.fallbackOnEmptyString, onError = _a.onError, timeZone = _a.timeZone, defaultRichTextElements = _a.defaultRichTextElements;\n if (messageDescriptor === void 0) { messageDescriptor = { id: '' }; }\n var msgId = messageDescriptor.id, defaultMessage = messageDescriptor.defaultMessage;\n // `id` is a required field of a Message Descriptor.\n invariant(!!msgId, \"[@formatjs/intl] An `id` must be provided to format a message. You can either:\\n1. Configure your build toolchain with [babel-plugin-formatjs](https://formatjs.io/docs/tooling/babel-plugin)\\nor [@formatjs/ts-transformer](https://formatjs.io/docs/tooling/ts-transformer) OR\\n2. Configure your `eslint` config to include [eslint-plugin-formatjs](https://formatjs.io/docs/tooling/linter#enforce-id)\\nto autofix this issue\");\n var id = String(msgId);\n var message = \n // In case messages is Object.create(null)\n // e.g import('foo.json') from webpack)\n // See https://github.com/formatjs/formatjs/issues/1914\n messages &&\n Object.prototype.hasOwnProperty.call(messages, id) &&\n messages[id];\n // IMPORTANT: Hot path if `message` is AST with a single literal node\n if (Array.isArray(message) &&\n message.length === 1 &&\n message[0].type === TYPE.literal) {\n return message[0].value;\n }\n // IMPORTANT: Hot path straight lookup for performance\n if (!values &&\n message &&\n typeof message === 'string' &&\n !defaultRichTextElements) {\n return message.replace(/'\\{(.*?)\\}'/gi, \"{$1}\");\n }\n values = __assign(__assign({}, defaultRichTextElements), (values || {}));\n formats = deepMergeFormatsAndSetTimeZone(formats, timeZone);\n defaultFormats = deepMergeFormatsAndSetTimeZone(defaultFormats, timeZone);\n if (!message) {\n if (fallbackOnEmptyString === false && message === '') {\n return message;\n }\n if (!defaultMessage ||\n (locale && locale.toLowerCase() !== defaultLocale.toLowerCase())) {\n // This prevents warnings from littering the console in development\n // when no `messages` are passed into the for the\n // default locale.\n onError(new MissingTranslationError(messageDescriptor, locale));\n }\n if (defaultMessage) {\n try {\n var formatter = state.getMessageFormat(defaultMessage, defaultLocale, defaultFormats, opts);\n return formatter.format(values);\n }\n catch (e) {\n onError(new MessageFormatError(\"Error formatting default message for: \\\"\".concat(id, \"\\\", rendering default message verbatim\"), locale, messageDescriptor, e));\n return typeof defaultMessage === 'string' ? defaultMessage : id;\n }\n }\n return id;\n }\n // We have the translated message\n try {\n var formatter = state.getMessageFormat(message, locale, formats, __assign({ formatters: state }, (opts || {})));\n return formatter.format(values);\n }\n catch (e) {\n onError(new MessageFormatError(\"Error formatting message: \\\"\".concat(id, \"\\\", using \").concat(defaultMessage ? 'default message' : 'id', \" as fallback.\"), locale, messageDescriptor, e));\n }\n if (defaultMessage) {\n try {\n var formatter = state.getMessageFormat(defaultMessage, defaultLocale, defaultFormats, opts);\n return formatter.format(values);\n }\n catch (e) {\n onError(new MessageFormatError(\"Error formatting the default message for: \\\"\".concat(id, \"\\\", rendering message verbatim\"), locale, messageDescriptor, e));\n }\n }\n if (typeof message === 'string') {\n return message;\n }\n if (typeof defaultMessage === 'string') {\n return defaultMessage;\n }\n return id;\n};\n","import { __assign } from \"tslib\";\nimport { filterProps, getNamedFormat } from './utils';\nimport { IntlFormatError } from './error';\nvar DATE_TIME_FORMAT_OPTIONS = [\n 'formatMatcher',\n 'timeZone',\n 'hour12',\n 'weekday',\n 'era',\n 'year',\n 'month',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'timeZoneName',\n 'hourCycle',\n 'dateStyle',\n 'timeStyle',\n 'calendar',\n // 'dayPeriod',\n 'numberingSystem',\n 'fractionalSecondDigits',\n];\nexport function getFormatter(_a, type, getDateTimeFormat, options) {\n var locale = _a.locale, formats = _a.formats, onError = _a.onError, timeZone = _a.timeZone;\n if (options === void 0) { options = {}; }\n var format = options.format;\n var defaults = __assign(__assign({}, (timeZone && { timeZone: timeZone })), (format && getNamedFormat(formats, type, format, onError)));\n var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults);\n if (type === 'time' &&\n !filteredOptions.hour &&\n !filteredOptions.minute &&\n !filteredOptions.second &&\n !filteredOptions.timeStyle &&\n !filteredOptions.dateStyle) {\n // Add default formatting options if hour, minute, or second isn't defined.\n filteredOptions = __assign(__assign({}, filteredOptions), { hour: 'numeric', minute: 'numeric' });\n }\n return getDateTimeFormat(locale, filteredOptions);\n}\nexport function formatDate(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var value = _a[0], _b = _a[1], options = _b === void 0 ? {} : _b;\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'date', getDateTimeFormat, options).format(date);\n }\n catch (e) {\n config.onError(new IntlFormatError('Error formatting date.', config.locale, e));\n }\n return String(date);\n}\nexport function formatTime(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var value = _a[0], _b = _a[1], options = _b === void 0 ? {} : _b;\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'time', getDateTimeFormat, options).format(date);\n }\n catch (e) {\n config.onError(new IntlFormatError('Error formatting time.', config.locale, e));\n }\n return String(date);\n}\nexport function formatDateTimeRange(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var from = _a[0], to = _a[1], _b = _a[2], options = _b === void 0 ? {} : _b;\n var timeZone = config.timeZone, locale = config.locale, onError = config.onError;\n var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, timeZone ? { timeZone: timeZone } : {});\n try {\n return getDateTimeFormat(locale, filteredOptions).formatRange(from, to);\n }\n catch (e) {\n onError(new IntlFormatError('Error formatting date time range.', config.locale, e));\n }\n return String(from);\n}\nexport function formatDateToParts(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var value = _a[0], _b = _a[1], options = _b === void 0 ? {} : _b;\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'date', getDateTimeFormat, options).formatToParts(date); // TODO: remove this when https://github.com/microsoft/TypeScript/pull/50402 is merged\n }\n catch (e) {\n config.onError(new IntlFormatError('Error formatting date.', config.locale, e));\n }\n return [];\n}\nexport function formatTimeToParts(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var value = _a[0], _b = _a[1], options = _b === void 0 ? {} : _b;\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'time', getDateTimeFormat, options).formatToParts(date); // TODO: remove this when https://github.com/microsoft/TypeScript/pull/50402 is merged\n }\n catch (e) {\n config.onError(new IntlFormatError('Error formatting time.', config.locale, e));\n }\n return [];\n}\n","import { filterProps } from './utils';\nimport { FormatError, ErrorCode } from 'intl-messageformat';\nimport { IntlFormatError } from './error';\nvar DISPLAY_NAMES_OPTONS = [\n 'style',\n 'type',\n 'fallback',\n 'languageDisplay',\n];\nexport function formatDisplayName(_a, getDisplayNames, value, options) {\n var locale = _a.locale, onError = _a.onError;\n var DisplayNames = Intl.DisplayNames;\n if (!DisplayNames) {\n onError(new FormatError(\"Intl.DisplayNames is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-displaynames\\\"\\n\", ErrorCode.MISSING_INTL_API));\n }\n var filteredOptions = filterProps(options, DISPLAY_NAMES_OPTONS);\n try {\n return getDisplayNames(locale, filteredOptions).of(value);\n }\n catch (e) {\n onError(new IntlFormatError('Error formatting display name.', locale, e));\n }\n}\n","import { __assign } from \"tslib\";\nimport { filterProps } from './utils';\nimport { FormatError, ErrorCode } from 'intl-messageformat';\nimport { IntlFormatError } from './error';\nvar LIST_FORMAT_OPTIONS = [\n 'type',\n 'style',\n];\nvar now = Date.now();\nfunction generateToken(i) {\n return \"\".concat(now, \"_\").concat(i, \"_\").concat(now);\n}\nexport function formatList(opts, getListFormat, values, options) {\n if (options === void 0) { options = {}; }\n var results = formatListToParts(opts, getListFormat, values, options).reduce(function (all, el) {\n var val = el.value;\n if (typeof val !== 'string') {\n all.push(val);\n }\n else if (typeof all[all.length - 1] === 'string') {\n all[all.length - 1] += val;\n }\n else {\n all.push(val);\n }\n return all;\n }, []);\n return results.length === 1 ? results[0] : results.length === 0 ? '' : results;\n}\nexport function formatListToParts(_a, getListFormat, values, options) {\n var locale = _a.locale, onError = _a.onError;\n if (options === void 0) { options = {}; }\n var ListFormat = Intl.ListFormat;\n if (!ListFormat) {\n onError(new FormatError(\"Intl.ListFormat is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-listformat\\\"\\n\", ErrorCode.MISSING_INTL_API));\n }\n var filteredOptions = filterProps(options, LIST_FORMAT_OPTIONS);\n try {\n var richValues_1 = {};\n var serializedValues = values.map(function (v, i) {\n if (typeof v === 'object') {\n var id = generateToken(i);\n richValues_1[id] = v;\n return id;\n }\n return String(v);\n });\n return getListFormat(locale, filteredOptions)\n .formatToParts(serializedValues)\n .map(function (part) {\n return part.type === 'literal'\n ? part\n : __assign(__assign({}, part), { value: richValues_1[part.value] || part.value });\n });\n }\n catch (e) {\n onError(new IntlFormatError('Error formatting list.', locale, e));\n }\n // @ts-ignore\n return values;\n}\n","import { filterProps } from './utils';\nimport { IntlFormatError } from './error';\nimport { ErrorCode, FormatError } from 'intl-messageformat';\nvar PLURAL_FORMAT_OPTIONS = ['type'];\nexport function formatPlural(_a, getPluralRules, value, options) {\n var locale = _a.locale, onError = _a.onError;\n if (options === void 0) { options = {}; }\n if (!Intl.PluralRules) {\n onError(new FormatError(\"Intl.PluralRules is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-pluralrules\\\"\\n\", ErrorCode.MISSING_INTL_API));\n }\n var filteredOptions = filterProps(options, PLURAL_FORMAT_OPTIONS);\n try {\n return getPluralRules(locale, filteredOptions).select(value);\n }\n catch (e) {\n onError(new IntlFormatError('Error formatting plural.', locale, e));\n }\n return 'other';\n}\n","import { getNamedFormat, filterProps } from './utils';\nimport { FormatError, ErrorCode } from 'intl-messageformat';\nimport { IntlFormatError } from './error';\nvar RELATIVE_TIME_FORMAT_OPTIONS = ['numeric', 'style'];\nfunction getFormatter(_a, getRelativeTimeFormat, options) {\n var locale = _a.locale, formats = _a.formats, onError = _a.onError;\n if (options === void 0) { options = {}; }\n var format = options.format;\n var defaults = (!!format && getNamedFormat(formats, 'relative', format, onError)) || {};\n var filteredOptions = filterProps(options, RELATIVE_TIME_FORMAT_OPTIONS, defaults);\n return getRelativeTimeFormat(locale, filteredOptions);\n}\nexport function formatRelativeTime(config, getRelativeTimeFormat, value, unit, options) {\n if (options === void 0) { options = {}; }\n if (!unit) {\n unit = 'second';\n }\n var RelativeTimeFormat = Intl.RelativeTimeFormat;\n if (!RelativeTimeFormat) {\n config.onError(new FormatError(\"Intl.RelativeTimeFormat is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-relativetimeformat\\\"\\n\", ErrorCode.MISSING_INTL_API));\n }\n try {\n return getFormatter(config, getRelativeTimeFormat, options).format(value, unit);\n }\n catch (e) {\n config.onError(new IntlFormatError('Error formatting relative time.', config.locale, e));\n }\n return String(value);\n}\n","import { IntlFormatError } from './error';\nimport { filterProps, getNamedFormat } from './utils';\nvar NUMBER_FORMAT_OPTIONS = [\n 'style',\n 'currency',\n 'unit',\n 'unitDisplay',\n 'useGrouping',\n 'minimumIntegerDigits',\n 'minimumFractionDigits',\n 'maximumFractionDigits',\n 'minimumSignificantDigits',\n 'maximumSignificantDigits',\n // ES2020 NumberFormat\n 'compactDisplay',\n 'currencyDisplay',\n 'currencySign',\n 'notation',\n 'signDisplay',\n 'unit',\n 'unitDisplay',\n 'numberingSystem',\n // ES2023 NumberFormat\n 'trailingZeroDisplay',\n 'roundingPriority',\n 'roundingIncrement',\n 'roundingMode',\n];\nexport function getFormatter(_a, getNumberFormat, options) {\n var locale = _a.locale, formats = _a.formats, onError = _a.onError;\n if (options === void 0) { options = {}; }\n var format = options.format;\n var defaults = ((format &&\n getNamedFormat(formats, 'number', format, onError)) ||\n {});\n var filteredOptions = filterProps(options, NUMBER_FORMAT_OPTIONS, defaults);\n return getNumberFormat(locale, filteredOptions);\n}\nexport function formatNumber(config, getNumberFormat, value, options) {\n if (options === void 0) { options = {}; }\n try {\n return getFormatter(config, getNumberFormat, options).format(value);\n }\n catch (e) {\n config.onError(new IntlFormatError('Error formatting number.', config.locale, e));\n }\n return String(value);\n}\nexport function formatNumberToParts(config, getNumberFormat, value, options) {\n if (options === void 0) { options = {}; }\n try {\n return getFormatter(config, getNumberFormat, options).formatToParts(value);\n }\n catch (e) {\n config.onError(new IntlFormatError('Error formatting number.', config.locale, e));\n }\n return [];\n}\n","import { __assign } from \"tslib\";\nimport { createFormatters, DEFAULT_INTL_CONFIG } from './utils';\nimport { InvalidConfigError, MissingDataError } from './error';\nimport { formatNumber, formatNumberToParts } from './number';\nimport { formatRelativeTime } from './relativeTime';\nimport { formatDate, formatDateToParts, formatTime, formatTimeToParts, formatDateTimeRange, } from './dateTime';\nimport { formatPlural } from './plural';\nimport { formatMessage } from './message';\nimport { formatList, formatListToParts } from './list';\nimport { formatDisplayName } from './displayName';\nfunction messagesContainString(messages) {\n var firstMessage = messages ? messages[Object.keys(messages)[0]] : undefined;\n return typeof firstMessage === 'string';\n}\nfunction verifyConfigMessages(config) {\n if (config.onWarn &&\n config.defaultRichTextElements &&\n messagesContainString(config.messages || {})) {\n config.onWarn(\"[@formatjs/intl] \\\"defaultRichTextElements\\\" was specified but \\\"message\\\" was not pre-compiled. \\nPlease consider using \\\"@formatjs/cli\\\" to pre-compile your messages for performance.\\nFor more details see https://formatjs.io/docs/getting-started/message-distribution\");\n }\n}\n/**\n * Create intl object\n * @param config intl config\n * @param cache cache for formatter instances to prevent memory leak\n */\nexport function createIntl(config, cache) {\n var formatters = createFormatters(cache);\n var resolvedConfig = __assign(__assign({}, DEFAULT_INTL_CONFIG), config);\n var locale = resolvedConfig.locale, defaultLocale = resolvedConfig.defaultLocale, onError = resolvedConfig.onError;\n if (!locale) {\n if (onError) {\n onError(new InvalidConfigError(\"\\\"locale\\\" was not configured, using \\\"\".concat(defaultLocale, \"\\\" as fallback. See https://formatjs.io/docs/react-intl/api#intlshape for more details\")));\n }\n // Since there's no registered locale data for `locale`, this will\n // fallback to the `defaultLocale` to make sure things can render.\n // The `messages` are overridden to the `defaultProps` empty object\n // to maintain referential equality across re-renders. It's assumed\n // each contains a `defaultMessage` prop.\n resolvedConfig.locale = resolvedConfig.defaultLocale || 'en';\n }\n else if (!Intl.NumberFormat.supportedLocalesOf(locale).length && onError) {\n onError(new MissingDataError(\"Missing locale data for locale: \\\"\".concat(locale, \"\\\" in Intl.NumberFormat. Using default locale: \\\"\").concat(defaultLocale, \"\\\" as fallback. See https://formatjs.io/docs/react-intl#runtime-requirements for more details\")));\n }\n else if (!Intl.DateTimeFormat.supportedLocalesOf(locale).length &&\n onError) {\n onError(new MissingDataError(\"Missing locale data for locale: \\\"\".concat(locale, \"\\\" in Intl.DateTimeFormat. Using default locale: \\\"\").concat(defaultLocale, \"\\\" as fallback. See https://formatjs.io/docs/react-intl#runtime-requirements for more details\")));\n }\n verifyConfigMessages(resolvedConfig);\n return __assign(__assign({}, resolvedConfig), { formatters: formatters, formatNumber: formatNumber.bind(null, resolvedConfig, formatters.getNumberFormat), formatNumberToParts: formatNumberToParts.bind(null, resolvedConfig, formatters.getNumberFormat), formatRelativeTime: formatRelativeTime.bind(null, resolvedConfig, formatters.getRelativeTimeFormat), formatDate: formatDate.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatDateToParts: formatDateToParts.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatTime: formatTime.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatDateTimeRange: formatDateTimeRange.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatTimeToParts: formatTimeToParts.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatPlural: formatPlural.bind(null, resolvedConfig, formatters.getPluralRules), \n // @ts-expect-error TODO: will get to this later\n formatMessage: formatMessage.bind(null, resolvedConfig, formatters), \n // @ts-expect-error TODO: will get to this later\n $t: formatMessage.bind(null, resolvedConfig, formatters), formatList: formatList.bind(null, resolvedConfig, formatters.getListFormat), formatListToParts: formatListToParts.bind(null, resolvedConfig, formatters.getListFormat), formatDisplayName: formatDisplayName.bind(null, resolvedConfig, formatters.getDisplayNames) });\n}\n","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { invariant } from '@formatjs/ecma402-abstract';\nimport { DEFAULT_INTL_CONFIG as CORE_DEFAULT_INTL_CONFIG } from '@formatjs/intl';\nexport function invariantIntlContext(intl) {\n invariant(intl, '[React Intl] Could not find required `intl` object. ' +\n ' needs to exist in the component ancestry.');\n}\nexport var DEFAULT_INTL_CONFIG = __assign(__assign({}, CORE_DEFAULT_INTL_CONFIG), { textComponent: React.Fragment });\n/**\n * Takes a `formatXMLElementFn`, and composes it in function, which passes\n * argument `parts` through, assigning unique key to each part, to prevent\n * \"Each child in a list should have a unique \"key\"\" React error.\n * @param formatXMLElementFn\n */\nexport function assignUniqueKeysToParts(formatXMLElementFn) {\n return function (parts) {\n // eslint-disable-next-line prefer-rest-params\n return formatXMLElementFn(React.Children.toArray(parts));\n };\n}\nexport function shallowEqual(objA, objB) {\n if (objA === objB) {\n return true;\n }\n if (!objA || !objB) {\n return false;\n }\n var aKeys = Object.keys(objA);\n var bKeys = Object.keys(objB);\n var len = aKeys.length;\n if (bKeys.length !== len) {\n return false;\n }\n for (var i = 0; i < len; i++) {\n var key = aKeys[i];\n if (objA[key] !== objB[key] ||\n !Object.prototype.hasOwnProperty.call(objB, key)) {\n return false;\n }\n }\n return true;\n}\n","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport { invariantIntlContext } from '../utils';\nfunction getDisplayName(Component) {\n return Component.displayName || Component.name || 'Component';\n}\n// This is primarily dealing with packaging systems where multiple copies of react-intl\n// might exist\nvar IntlContext = typeof window !== 'undefined' && !window.__REACT_INTL_BYPASS_GLOBAL_CONTEXT__\n ? window.__REACT_INTL_CONTEXT__ ||\n (window.__REACT_INTL_CONTEXT__ = React.createContext(null))\n : React.createContext(null);\nvar IntlConsumer = IntlContext.Consumer, IntlProvider = IntlContext.Provider;\nexport var Provider = IntlProvider;\nexport var Context = IntlContext;\nexport default function injectIntl(WrappedComponent, options) {\n var _a = options || {}, _b = _a.intlPropName, intlPropName = _b === void 0 ? 'intl' : _b, _c = _a.forwardRef, forwardRef = _c === void 0 ? false : _c, _d = _a.enforceContext, enforceContext = _d === void 0 ? true : _d;\n var WithIntl = function (props) { return (React.createElement(IntlConsumer, null, function (intl) {\n var _a;\n if (enforceContext) {\n invariantIntlContext(intl);\n }\n var intlProp = (_a = {}, _a[intlPropName] = intl, _a);\n return (React.createElement(WrappedComponent, __assign({}, props, intlProp, { ref: forwardRef ? props.forwardedRef : null })));\n })); };\n WithIntl.displayName = \"injectIntl(\".concat(getDisplayName(WrappedComponent), \")\");\n WithIntl.WrappedComponent = WrappedComponent;\n if (forwardRef) {\n return hoistNonReactStatics(React.forwardRef(function (props, ref) { return (React.createElement(WithIntl, __assign({}, props, { forwardedRef: ref }))); }), WrappedComponent);\n }\n return hoistNonReactStatics(WithIntl, WrappedComponent);\n}\n","import * as React from 'react';\nimport { Context } from './injectIntl';\nimport { invariantIntlContext } from '../utils';\nexport default function useIntl() {\n var intl = React.useContext(Context);\n invariantIntlContext(intl);\n return intl;\n}\n","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport useIntl from './useIntl';\nvar DisplayName;\n(function (DisplayName) {\n DisplayName[\"formatDate\"] = \"FormattedDate\";\n DisplayName[\"formatTime\"] = \"FormattedTime\";\n DisplayName[\"formatNumber\"] = \"FormattedNumber\";\n DisplayName[\"formatList\"] = \"FormattedList\";\n // Note that this DisplayName is the locale display name, not to be confused with\n // the name of the enum, which is for React component display name in dev tools.\n DisplayName[\"formatDisplayName\"] = \"FormattedDisplayName\";\n})(DisplayName || (DisplayName = {}));\nvar DisplayNameParts;\n(function (DisplayNameParts) {\n DisplayNameParts[\"formatDate\"] = \"FormattedDateParts\";\n DisplayNameParts[\"formatTime\"] = \"FormattedTimeParts\";\n DisplayNameParts[\"formatNumber\"] = \"FormattedNumberParts\";\n DisplayNameParts[\"formatList\"] = \"FormattedListParts\";\n})(DisplayNameParts || (DisplayNameParts = {}));\nexport var FormattedNumberParts = function (props) {\n var intl = useIntl();\n var value = props.value, children = props.children, formatProps = __rest(props, [\"value\", \"children\"]);\n return children(intl.formatNumberToParts(value, formatProps));\n};\nFormattedNumberParts.displayName = 'FormattedNumberParts';\nexport var FormattedListParts = function (props) {\n var intl = useIntl();\n var value = props.value, children = props.children, formatProps = __rest(props, [\"value\", \"children\"]);\n return children(intl.formatListToParts(value, formatProps));\n};\nFormattedNumberParts.displayName = 'FormattedNumberParts';\nexport function createFormattedDateTimePartsComponent(name) {\n var ComponentParts = function (props) {\n var intl = useIntl();\n var value = props.value, children = props.children, formatProps = __rest(props, [\"value\", \"children\"]);\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n var formattedParts = name === 'formatDate'\n ? intl.formatDateToParts(date, formatProps)\n : intl.formatTimeToParts(date, formatProps);\n return children(formattedParts);\n };\n ComponentParts.displayName = DisplayNameParts[name];\n return ComponentParts;\n}\nexport function createFormattedComponent(name) {\n var Component = function (props) {\n var intl = useIntl();\n var value = props.value, children = props.children, formatProps = __rest(props\n // TODO: fix TS type definition for localeMatcher upstream\n , [\"value\", \"children\"]);\n // TODO: fix TS type definition for localeMatcher upstream\n var formattedValue = intl[name](value, formatProps);\n if (typeof children === 'function') {\n return children(formattedValue);\n }\n var Text = intl.textComponent || React.Fragment;\n return React.createElement(Text, null, formattedValue);\n };\n Component.displayName = DisplayName[name];\n return Component;\n}\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport { __assign, __rest, __spreadArray } from \"tslib\";\nimport { createIntl as coreCreateIntl, formatMessage as coreFormatMessage, } from '@formatjs/intl';\nimport * as React from 'react';\nimport { DEFAULT_INTL_CONFIG, assignUniqueKeysToParts } from '../utils';\nimport { isFormatXMLElementFn, } from 'intl-messageformat';\nfunction assignUniqueKeysToFormatXMLElementFnArgument(values) {\n if (!values) {\n return values;\n }\n return Object.keys(values).reduce(function (acc, k) {\n var v = values[k];\n acc[k] = isFormatXMLElementFn(v)\n ? assignUniqueKeysToParts(v)\n : v;\n return acc;\n }, {});\n}\nvar formatMessage = function (config, formatters, descriptor, rawValues) {\n var rest = [];\n for (var _i = 4; _i < arguments.length; _i++) {\n rest[_i - 4] = arguments[_i];\n }\n var values = assignUniqueKeysToFormatXMLElementFnArgument(rawValues);\n var chunks = coreFormatMessage.apply(void 0, __spreadArray([config,\n formatters,\n descriptor,\n values], rest, false));\n if (Array.isArray(chunks)) {\n return React.Children.toArray(chunks);\n }\n return chunks;\n};\n/**\n * Create intl object\n * @param config intl config\n * @param cache cache for formatter instances to prevent memory leak\n */\nexport var createIntl = function (_a, cache) {\n var rawDefaultRichTextElements = _a.defaultRichTextElements, config = __rest(_a, [\"defaultRichTextElements\"]);\n var defaultRichTextElements = assignUniqueKeysToFormatXMLElementFnArgument(rawDefaultRichTextElements);\n var coreIntl = coreCreateIntl(__assign(__assign(__assign({}, DEFAULT_INTL_CONFIG), config), { defaultRichTextElements: defaultRichTextElements }), cache);\n var resolvedConfig = {\n locale: coreIntl.locale,\n timeZone: coreIntl.timeZone,\n fallbackOnEmptyString: coreIntl.fallbackOnEmptyString,\n formats: coreIntl.formats,\n defaultLocale: coreIntl.defaultLocale,\n defaultFormats: coreIntl.defaultFormats,\n messages: coreIntl.messages,\n onError: coreIntl.onError,\n defaultRichTextElements: defaultRichTextElements,\n };\n return __assign(__assign({}, coreIntl), { formatMessage: formatMessage.bind(null, resolvedConfig, \n // @ts-expect-error fix this\n coreIntl.formatters), \n // @ts-expect-error fix this\n $t: formatMessage.bind(null, resolvedConfig, coreIntl.formatters) });\n};\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport { __extends } from \"tslib\";\nimport { createIntlCache } from '@formatjs/intl';\nimport * as React from 'react';\nimport { DEFAULT_INTL_CONFIG, invariantIntlContext, shallowEqual } from '../utils';\nimport { Provider } from './injectIntl';\nimport { createIntl } from './createIntl';\nfunction processIntlConfig(config) {\n return {\n locale: config.locale,\n timeZone: config.timeZone,\n fallbackOnEmptyString: config.fallbackOnEmptyString,\n formats: config.formats,\n textComponent: config.textComponent,\n messages: config.messages,\n defaultLocale: config.defaultLocale,\n defaultFormats: config.defaultFormats,\n onError: config.onError,\n onWarn: config.onWarn,\n wrapRichTextChunksInFragment: config.wrapRichTextChunksInFragment,\n defaultRichTextElements: config.defaultRichTextElements,\n };\n}\nvar IntlProvider = /** @class */ (function (_super) {\n __extends(IntlProvider, _super);\n function IntlProvider() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.cache = createIntlCache();\n _this.state = {\n cache: _this.cache,\n intl: createIntl(processIntlConfig(_this.props), _this.cache),\n prevConfig: processIntlConfig(_this.props),\n };\n return _this;\n }\n IntlProvider.getDerivedStateFromProps = function (props, _a) {\n var prevConfig = _a.prevConfig, cache = _a.cache;\n var config = processIntlConfig(props);\n if (!shallowEqual(prevConfig, config)) {\n return {\n intl: createIntl(config, cache),\n prevConfig: config,\n };\n }\n return null;\n };\n IntlProvider.prototype.render = function () {\n invariantIntlContext(this.state.intl);\n return React.createElement(Provider, { value: this.state.intl }, this.props.children);\n };\n IntlProvider.displayName = 'IntlProvider';\n IntlProvider.defaultProps = DEFAULT_INTL_CONFIG;\n return IntlProvider;\n}(React.PureComponent));\nexport default IntlProvider;\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport { __rest } from \"tslib\";\nimport * as React from 'react';\nimport useIntl from './useIntl';\nimport { shallowEqual } from '../utils';\nfunction areEqual(prevProps, nextProps) {\n var values = prevProps.values, otherProps = __rest(prevProps, [\"values\"]);\n var nextValues = nextProps.values, nextOtherProps = __rest(nextProps, [\"values\"]);\n return (shallowEqual(nextValues, values) &&\n shallowEqual(otherProps, nextOtherProps));\n}\nfunction FormattedMessage(props) {\n var intl = useIntl();\n var formatMessage = intl.formatMessage, _a = intl.textComponent, Text = _a === void 0 ? React.Fragment : _a;\n var id = props.id, description = props.description, defaultMessage = props.defaultMessage, values = props.values, children = props.children, _b = props.tagName, Component = _b === void 0 ? Text : _b, ignoreTag = props.ignoreTag;\n var descriptor = { id: id, description: description, defaultMessage: defaultMessage };\n var nodes = formatMessage(descriptor, values, {\n ignoreTag: ignoreTag,\n });\n if (typeof children === 'function') {\n return children(Array.isArray(nodes) ? nodes : [nodes]);\n }\n if (Component) {\n return React.createElement(Component, null, React.Children.toArray(nodes));\n }\n return React.createElement(React.Fragment, null, nodes);\n}\nFormattedMessage.displayName = 'FormattedMessage';\nvar MemoizedFormattedMessage = React.memo(FormattedMessage, areEqual);\nMemoizedFormattedMessage.displayName = 'MemoizedFormattedMessage';\nexport default MemoizedFormattedMessage;\n","import { createFormattedComponent, createFormattedDateTimePartsComponent, } from './src/components/createFormattedComponent';\nimport injectIntl, { Provider as RawIntlProvider, Context as IntlContext, } from './src/components/injectIntl';\nimport useIntl from './src/components/useIntl';\nimport IntlProvider from './src/components/provider';\nimport { createIntl } from './src/components/createIntl';\nimport FormattedRelativeTime from './src/components/relative';\nimport FormattedPlural from './src/components/plural';\nimport FormattedMessage from './src/components/message';\nimport FormattedDateTimeRange from './src/components/dateTimeRange';\nexport { FormattedDateTimeRange, FormattedMessage, FormattedPlural, FormattedRelativeTime, IntlContext, IntlProvider, RawIntlProvider, createIntl, injectIntl, useIntl, };\nexport { createIntlCache, UnsupportedFormatterError, InvalidConfigError, MissingDataError, MessageFormatError, MissingTranslationError, IntlErrorCode as ReactIntlErrorCode, IntlError as ReactIntlError, } from '@formatjs/intl';\nexport function defineMessages(msgs) {\n return msgs;\n}\nexport function defineMessage(msg) {\n return msg;\n}\n// IMPORTANT: Explicit here to prevent api-extractor from outputing `import('./src/types').CustomFormatConfig`\nexport var FormattedDate = createFormattedComponent('formatDate');\nexport var FormattedTime = createFormattedComponent('formatTime');\nexport var FormattedNumber = createFormattedComponent('formatNumber');\nexport var FormattedList = createFormattedComponent('formatList');\nexport var FormattedDisplayName = createFormattedComponent('formatDisplayName');\nexport var FormattedDateParts = createFormattedDateTimePartsComponent('formatDate');\nexport var FormattedTimeParts = createFormattedDateTimePartsComponent('formatTime');\nexport { FormattedNumberParts, FormattedListParts, } from './src/components/createFormattedComponent';\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ERR_FAILED_TO_FETCH_OPENID_CLAIMS_DESCRIPTION = exports.ERR_FAILED_TO_FETCH_OPENID_CLAIMS = exports.ERR_OPENID_CHECK_SESSION_ERROR_DESCRIPTION = exports.ERR_OPENID_CHECK_SESSION_ERROR = exports.ERR_FAILED_TO_VALIDATE_OPENID_METADATA_DESCRIPTION = exports.ERR_FAILED_TO_VALIDATE_OPENID_METADATA = exports.ERR_FAILED_TO_PARSE_OPENID_METADATA_DESCRIPTION = exports.ERR_FAILED_TO_PARSE_OPENID_METADATA = exports.ERR_FAILED_TO_FETCH_OPENID_METADATA_DESCRIPTION = exports.ERR_FAILED_TO_FETCH_OPENID_METADATA = exports.ERR_REGISTRATION_NOT_SUPPORTED_DESCRIPTION = exports.ERR_REGISTRATION_NOT_SUPPORTED = exports.ERR_REQUEST_URI_NOT_SUPPORTED_DESCRIPTION = exports.ERR_REQUEST_URI_NOT_SUPPORTED = exports.ERR_REQUEST_NOT_SUPPORTED_DESCRIPTION = exports.ERR_REQUEST_NOT_SUPPORTED = exports.ERR_INVALID_REQUEST_OBJECT_DESCRIPTION = exports.ERR_INVALID_REQUEST_OBJECT = exports.ERR_INVALID_REQUEST_URI_DESCRIPTION = exports.ERR_INVALID_REQUEST_URI = exports.ERR_CONSENT_REQUIRED_DESCRIPTION = exports.ERR_CONSENT_REQUIRED = exports.ERR_ACCOUNT_SELECTION_REQUIRED_DESCRIPTION = exports.ERR_ACCOUNT_SELECTION_REQUIRED = exports.ERR_LOGIN_REQUIRED_DESCRIPTION = exports.ERR_LOGIN_REQUIRED = exports.ERR_INTERACTION_REQUIRED_DESCRIPTION = exports.ERR_INTERACTION_REQUIRED = exports.ERR_TEMPORARILY_UNAVAILABLE_DESCRIPTION = exports.ERR_TEMPORARILY_UNAVAILABLE = exports.ERR_SERVER_ERROR_DESCRIPTION = exports.ERR_SERVER_ERROR = exports.ERR_INVALID_SCOPE_DESCRIPTION = exports.ERR_INVALID_SCOPE = exports.ERR_UNSUPPORTED_RESPONSE_TYPE_DESCRIPTION = exports.ERR_UNSUPPORTED_RESPONSE_TYPE = exports.ERR_ACCESS_DENIED_DESCRIPTION = exports.ERR_ACCESS_DENIED = exports.ERR_UNAUTHORIZED_CLIENT_DESCRIPTION = exports.ERR_UNAUTHORIZED_CLIENT = exports.ERR_INVALID_REQUEST_DESCRIPTION = exports.ERR_INVALID_REQUEST = exports.ERR_RENEW_TIMEOUT_DESCRIPTION = exports.ERR_RENEW_TIMEOUT = exports.ERR_UNAUTHORIZED_DESCRIPTION = exports.ERR_UNAUTHORIZED = exports.ERR_UNSUPPORTED_TOKEN_TYPE_DESCRIPTION = exports.ERR_UNSUPPORTED_TOKEN_TYPE = exports.ERR_STATE_MISMATCH_DESCRIPTION = exports.ERR_STATE_MISMATCH = void 0;\r\nexports.ERR_FAILED_TO_VALIDATE_OPENID_CLAIMS_DESCRIPTION = exports.ERR_FAILED_TO_VALIDATE_OPENID_CLAIMS = exports.ERR_FAILED_TO_PARSE_OPENID_CLAIMS_DESCRIPTION = exports.ERR_FAILED_TO_PARSE_OPENID_CLAIMS = void 0;\r\n/**\r\n * Authorization server response validation error.\r\n *\r\n * Unable to verify the validity of the request by matching\r\n * the \"state\" parameter sent with the authorization request\r\n * to the \"state\" parameter received in authorization server\r\n * response.\r\n *\r\n * This error may indicate a cross-site request forgery (CSRF)\r\n * attack or a misconfiguration of the authorization server.\r\n *\r\n * See: https://tools.ietf.org/html/rfc6749#section-10.12\r\n */\r\nexports.ERR_STATE_MISMATCH = 'state_mismatch';\r\nexports.ERR_STATE_MISMATCH_DESCRIPTION = \"\\n This error may indicate a cross-site request forgery (CSRF)\\n attack or a misconfiguration of the authorization server.\\n\";\r\n/**\r\n * Authorization server response validation error.\r\n *\r\n * SGWTConnect does not support the access token type\r\n * received from the authorization server.\r\n */\r\nexports.ERR_UNSUPPORTED_TOKEN_TYPE = 'unsupported_token_type';\r\nexports.ERR_UNSUPPORTED_TOKEN_TYPE_DESCRIPTION = \"\\n SGWTConnect does not support the access token type\\n received from the authorization server.\\n\";\r\n/**\r\n * SGWTConnect unauthorized error.\r\n *\r\n * Occurs when SGWTConnect is unable to perform an action\r\n * because it is currently unauthorized to do so.\r\n */\r\nexports.ERR_UNAUTHORIZED = 'unauthorized';\r\nexports.ERR_UNAUTHORIZED_DESCRIPTION = \"\\n SGWTConnect is unable to perform an action\\n because it is currently unauthorized to do so.\\n\";\r\n/**\r\n * SGWTConnect renewal error.\r\n *\r\n * Occurs when SGWTConnect does not receive a response\r\n * from the authorization server while renewing the token.\r\n */\r\nexports.ERR_RENEW_TIMEOUT = 'renew_timeout';\r\nexports.ERR_RENEW_TIMEOUT_DESCRIPTION = \"\\n SGWTConnect did not receive a response\\n from the authorization server while\\n renewing the token.\\n\";\r\n//\r\n// OAuth 2.0 errors are listed below.\r\n// See: https://tools.ietf.org/html/rfc6749#section-4.2.2.1\r\n// --------------------\r\n/**\r\n * Authorization server error response.\r\n *\r\n * The request is missing a required parameter, includes an\r\n * unsupported parameter value, includes a parameter more\r\n * than once, or is otherwise malformed.\r\n *\r\n * See: https://tools.ietf.org/html/rfc6749#section-4.2.2.1\r\n */\r\nexports.ERR_INVALID_REQUEST = 'invalid_request';\r\nexports.ERR_INVALID_REQUEST_DESCRIPTION = \"\\n The configuration may be malformed.\\n Double check all configuration options.\\n\";\r\n/**\r\n * Authorization server error response.\r\n *\r\n * The client is not authorized to request an access token\r\n * using this method.\r\n *\r\n * See: https://tools.ietf.org/html/rfc6749#section-4.2.2.1\r\n */\r\nexports.ERR_UNAUTHORIZED_CLIENT = 'unauthorized_client';\r\nexports.ERR_UNAUTHORIZED_CLIENT_DESCRIPTION = \"\\n The client is not authorized to request an access token\\n using this method.\\n\";\r\n/**\r\n * Authorization server error response.\r\n *\r\n * The resource owner or authorization server denied the request.\r\n *\r\n * See: https://tools.ietf.org/html/rfc6749#section-4.2.2.1\r\n */\r\nexports.ERR_ACCESS_DENIED = 'access_denied';\r\nexports.ERR_ACCESS_DENIED_DESCRIPTION = \"\\n The resource owner or authorization server denied the request.\\n\";\r\n/**\r\n * Authorization server error response.\r\n *\r\n * The authorization server does not support obtaining an\r\n * access token using this method.\r\n *\r\n * See: https://tools.ietf.org/html/rfc6749#section-4.2.2.1\r\n */\r\nexports.ERR_UNSUPPORTED_RESPONSE_TYPE = 'unsupported_response_type';\r\nexports.ERR_UNSUPPORTED_RESPONSE_TYPE_DESCRIPTION = \"\\n The authorization server does not support obtaining an\\n access token using this method.\\n\\n Double-check the \\\"response_type\\\" configuration option.\\n\";\r\n/**\r\n * Authorization server error response.\r\n *\r\n * The requested scope is invalid, unknown, or malformed.\r\n *\r\n * See: https://tools.ietf.org/html/rfc6749#section-4.2.2.1\r\n */\r\nexports.ERR_INVALID_SCOPE = 'invalid_scope';\r\nexports.ERR_INVALID_SCOPE_DESCRIPTION = \"\\n The requested scope is invalid, unknown, or malformed.\\n\";\r\n/**\r\n * Authorization server error response.\r\n *\r\n * The authorization server encountered an unexpected\r\n * condition that prevented it from fulfilling the request.\r\n * (This error code is needed because a 500 Internal Server\r\n * Error HTTP status code cannot be returned to the client\r\n * via an HTTP redirect.)\r\n *\r\n * See: https://tools.ietf.org/html/rfc6749#section-4.2.2.1\r\n */\r\nexports.ERR_SERVER_ERROR = 'server_error';\r\nexports.ERR_SERVER_ERROR_DESCRIPTION = \"\\n The authorization server encountered an unexpected\\n condition that prevented it from fulfilling the request.\\n\\n Please try again in a few minutes.\\n\";\r\n/**\r\n * Authorization server error response.\r\n *\r\n * The authorization server is currently unable to handle\r\n * the request due to a temporary overloading or maintenance\r\n * of the server. (This error code is needed because a 503\r\n * Service Unavailable HTTP status code cannot be returned\r\n * to the client via an HTTP redirect.)\r\n *\r\n * See: https://tools.ietf.org/html/rfc6749#section-4.2.2.1\r\n */\r\nexports.ERR_TEMPORARILY_UNAVAILABLE = 'temporarily_unavailable';\r\nexports.ERR_TEMPORARILY_UNAVAILABLE_DESCRIPTION = \"\\n The authorization server is currently unable to handle\\n the request due to a temporary overloading or maintenance\\n of the server.\\n\\n Please try again in a few minutes.\\n\";\r\n//\r\n// OpenID Connect 1.0 errors are listed below.\r\n// See: http://openid.net/specs/openid-connect-core-1_0.html#AuthError\r\n// --------------------\r\n/**\r\n * OpenID Connect authentication error response.\r\n *\r\n * The Authorization Server requires End-User interaction\r\n * of some form to proceed. This error MAY be returned\r\n * when the prompt parameter value in the Authentication Request\r\n * is none, but the Authentication Request cannot be completed\r\n * without displaying a user interface for End-User interaction.\r\n *\r\n * See: http://openid.net/specs/openid-connect-core-1_0.html#AuthError\r\n */\r\nexports.ERR_INTERACTION_REQUIRED = 'interaction_required';\r\nexports.ERR_INTERACTION_REQUIRED_DESCRIPTION = \"\\n The Authorization Server requires End-User interaction\\n of some form to proceed.\\n\";\r\n/**\r\n * OpenID Connect authentication error response.\r\n *\r\n * The Authorization Server requires End-User authentication.\r\n * This error MAY be returned when the prompt parameter value in the\r\n * Authentication Request is none, but the Authentication Request\r\n * cannot be completed without displaying a user interface for\r\n * End-User authentication.\r\n *\r\n * See: http://openid.net/specs/openid-connect-core-1_0.html#AuthError\r\n */\r\nexports.ERR_LOGIN_REQUIRED = 'login_required';\r\nexports.ERR_LOGIN_REQUIRED_DESCRIPTION = \"\\n The Authorization Server requires End-User authentication.\\n\";\r\n/**\r\n * OpenID Connect authentication error response.\r\n *\r\n * The End-User is REQUIRED to select a session at the Authorization Server.\r\n * The End-User MAY be authenticated at the Authorization Server with\r\n * different associated accounts, but the End-User did not select a session.\r\n * This error MAY be returned when the prompt parameter value in the\r\n * Authentication Request is none, but the Authentication Request\r\n * cannot be completed without displaying a user interface to prompt\r\n * for a session to use.\r\n *\r\n * See: http://openid.net/specs/openid-connect-core-1_0.html#AuthError\r\n */\r\nexports.ERR_ACCOUNT_SELECTION_REQUIRED = 'account_selection_required';\r\nexports.ERR_ACCOUNT_SELECTION_REQUIRED_DESCRIPTION = \"\\n The End-User is REQUIRED to select a session at the Authorization Server.\\n The End-User MAY be authenticated at the Authorization Server with\\n different associated accounts, but the End-User did not select a session.\\n\";\r\n/**\r\n * OpenID Connect authentication error response.\r\n *\r\n * The Authorization Server requires End-User consent.\r\n * This error MAY be returned when the prompt parameter value in the\r\n * Authentication Request is none, but the Authentication Request\r\n * cannot be completed without displaying a user interface for\r\n * End-User consent.\r\n *\r\n * See: http://openid.net/specs/openid-connect-core-1_0.html#AuthError\r\n */\r\nexports.ERR_CONSENT_REQUIRED = 'consent_required';\r\nexports.ERR_CONSENT_REQUIRED_DESCRIPTION = \"\\n The Authorization Server requires End-User consent.\\n\";\r\n/**\r\n * OpenID Connect authentication error response.\r\n *\r\n * The request_uri in the Authorization Request returns an error\r\n * or contains invalid data.\r\n *\r\n * See: http://openid.net/specs/openid-connect-core-1_0.html#AuthError\r\n */\r\nexports.ERR_INVALID_REQUEST_URI = 'invalid_request_uri';\r\nexports.ERR_INVALID_REQUEST_URI_DESCRIPTION = \"\\n The request_uri in the Authorization Request returns an error\\n or contains invalid data.\\n\\n This is probably a bug in SGWTConnect.\\n\";\r\n/**\r\n * OpenID Connect authentication error response.\r\n *\r\n * The request parameter contains an invalid Request Object.\r\n *\r\n * See: http://openid.net/specs/openid-connect-core-1_0.html#AuthError\r\n */\r\nexports.ERR_INVALID_REQUEST_OBJECT = 'invalid_request_object';\r\nexports.ERR_INVALID_REQUEST_OBJECT_DESCRIPTION = \"\\n The request parameter contains an invalid Request Object.\\n\\n This is probably a bug in SGWTConnect.\\n\";\r\n/**\r\n * OpenID Connect authentication error response.\r\n *\r\n * The OpenID Provider does not support use of the `request` parameter defined in\r\n * [Section 6](http://openid.net/specs/openid-connect-core-1_0.html#JWTRequests).\r\n *\r\n * See: http://openid.net/specs/openid-connect-core-1_0.html#AuthError\r\n */\r\nexports.ERR_REQUEST_NOT_SUPPORTED = 'request_not_supported';\r\nexports.ERR_REQUEST_NOT_SUPPORTED_DESCRIPTION = \"\\n The OpenID Provider does not support use of the \\\"request\\\" parameter.\\n\";\r\n/**\r\n * OpenID Connect authentication error response.\r\n *\r\n * The OpenID Provider does not support use of the `request_uri` parameter defined in\r\n * [Section 6](http://openid.net/specs/openid-connect-core-1_0.html#JWTRequests).\r\n *\r\n * See: http://openid.net/specs/openid-connect-core-1_0.html#AuthError\r\n */\r\nexports.ERR_REQUEST_URI_NOT_SUPPORTED = 'request_uri_not_supported';\r\nexports.ERR_REQUEST_URI_NOT_SUPPORTED_DESCRIPTION = \"\\n The OpenID Provider does not support use of the \\\"request_uri\\\" parameter.\\n\";\r\n/**\r\n * OpenID Connect authentication error response.\r\n *\r\n * The OpenID Provider does not support use of the `registration` parameter defined in\r\n * [Section 7.2.1](http://openid.net/specs/openid-connect-core-1_0.html#RegistrationParameter).\r\n *\r\n * See: http://openid.net/specs/openid-connect-core-1_0.html#AuthError\r\n */\r\nexports.ERR_REGISTRATION_NOT_SUPPORTED = 'registration_not_supported';\r\nexports.ERR_REGISTRATION_NOT_SUPPORTED_DESCRIPTION = \"\\n The OpenID Provider does not support use of the \\\"registration\\\" parameter.\\n\";\r\n//\r\n// OpenID Connect 1.0 Session Management errors are listed below.\r\n// See: https://openid.net/specs/openid-connect-session-1_0.html\r\n// --------------------\r\n/**\r\n * Indicates that an HTTP request to obtain\r\n * the OpenID Provider Discovery Metadata has failed.\r\n */\r\nexports.ERR_FAILED_TO_FETCH_OPENID_METADATA = 'failed_to_obtain_openid_metadata';\r\nexports.ERR_FAILED_TO_FETCH_OPENID_METADATA_DESCRIPTION = \"\\n Failed to obtain OpenID Provider Metadata.\\n\";\r\n/**\r\n * Indicates that there was a error parsing\r\n * the OpenID Provider Discovery Metadata response.\r\n */\r\nexports.ERR_FAILED_TO_PARSE_OPENID_METADATA = 'failed_to_parse_openid_metadata';\r\nexports.ERR_FAILED_TO_PARSE_OPENID_METADATA_DESCRIPTION = \"\\n Failed to parse OpenID Provider Discovery Metadata.\\n\";\r\n/**\r\n * Indicates that there was an error validating\r\n * the OpenID Provider Discovery Metadata response.\r\n */\r\nexports.ERR_FAILED_TO_VALIDATE_OPENID_METADATA = 'failed_to_validate_openid_metadata';\r\nexports.ERR_FAILED_TO_VALIDATE_OPENID_METADATA_DESCRIPTION = \"\\n Failed to validate OpenID Provider Discovery Metadata.\\n\";\r\n/**\r\n * Indicates that the OpenID OP iframe received\r\n * a syntactically malformed message.\r\n *\r\n * See: https://openid.net/specs/openid-connect-session-1_0.html#OPiframe\r\n */\r\nexports.ERR_OPENID_CHECK_SESSION_ERROR = 'check_session_error';\r\nexports.ERR_OPENID_CHECK_SESSION_ERROR_DESCRIPTION = \"\\n Client ID and origin URL cannot be determined or are syntactically invalid.\\n\";\r\n//\r\n// OpenID UserInfo Endpoint.\r\n// See: https://openid.net/specs/openid-connect-core-1_0.html#UserInfo\r\n// --------------------\r\n/**\r\n * Indicates that an HTTP request to obtain\r\n * the OpenID UserInfo Claims has failed.\r\n */\r\nexports.ERR_FAILED_TO_FETCH_OPENID_CLAIMS = 'failed_to_obtain_openid_claims';\r\nexports.ERR_FAILED_TO_FETCH_OPENID_CLAIMS_DESCRIPTION = \"\\n Failed to obtain OpenID UserInfo Claims.\\n\";\r\n/**\r\n * Indicates that there was a error parsing\r\n * the OpenID UserInfo Claims response.\r\n */\r\nexports.ERR_FAILED_TO_PARSE_OPENID_CLAIMS = 'failed_to_parse_openid_claims';\r\nexports.ERR_FAILED_TO_PARSE_OPENID_CLAIMS_DESCRIPTION = \"\\n Failed to parse OpenID UserInfo Claims.\\n\";\r\n/**\r\n * Indicates that there was an error validating\r\n * the OpenID UserInfo Claims response.\r\n */\r\nexports.ERR_FAILED_TO_VALIDATE_OPENID_CLAIMS = 'failed_to_validate_openid_claims';\r\nexports.ERR_FAILED_TO_VALIDATE_OPENID_CLAIMS_DESCRIPTION = \"\\n Failed to validate OpenID UserInfo Claims.\\n\";\r\n//# sourceMappingURL=SGWTConnectErrorList.js.map","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SGWTConnectError = void 0;\r\nvar ErrorList = require(\"./SGWTConnectErrorList\");\r\n/**\r\n * SGWTConnect error.\r\n *\r\n * The purpose of this class is to differentiate custom SGWTConnect\r\n * errors from errors originated in other modules.\r\n */\r\nvar SGWTConnectError = /** @class */ (function (_super) {\r\n __extends(SGWTConnectError, _super);\r\n function SGWTConnectError(code) {\r\n var _this = this;\r\n var errorListKey = \"ERR_\".concat(code.toUpperCase(), \"_DESCRIPTION\");\r\n var description = ErrorList[errorListKey];\r\n _this = _super.call(this, \"SGWTConnectError \".concat(code.toUpperCase(), \" \").concat(description)) || this;\r\n // Calling `super` in TypeScript 2.1 and 2.2 breaks the\r\n // prototype chain, so we need to restore it here to\r\n // enable instanceof checks\r\n // See: https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#typescript-21\r\n Object.setPrototypeOf(_this, SGWTConnectError.prototype);\r\n // We use the same approach as NodeJS errors by exposing\r\n // a `code` property (e.g. \"state_mismatch\") on error\r\n // instances:\r\n _this.code = code;\r\n return _this;\r\n }\r\n return SGWTConnectError;\r\n}(Error));\r\nexports.SGWTConnectError = SGWTConnectError;\r\n//# sourceMappingURL=SGWTConnectError.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EVENT_OPENID_CHECK_SESSION_ERROR = exports.EVENT_OPENID_SESSION_UNCHANGED = exports.EVENT_OPENID_SESSION_CHANGED = exports.EVENT_OPENID_METADATA_FETCH_ERROR = exports.EVENT_AUTH_RENEW_SUCCESS = exports.EVENT_AUTH_RENEW_ERROR = exports.EVENT_AUTH_EXPIRED = exports.EVENT_AUTH_DISCARDED = void 0;\r\n/**\r\n * The authorization token has been discarded.\r\n */\r\nexports.EVENT_AUTH_DISCARDED = 'authorizationDiscarded';\r\n/**\r\n * The authorization token has expired.\r\n */\r\nexports.EVENT_AUTH_EXPIRED = 'authorizationExpired';\r\n/**\r\n * Error has occurred while renewing the token.\r\n */\r\nexports.EVENT_AUTH_RENEW_ERROR = 'renewAuthorizationError';\r\n/**\r\n * The current token has been successfully renewed.\r\n */\r\nexports.EVENT_AUTH_RENEW_SUCCESS = 'renewAuthorizationSuccess';\r\n/**\r\n * Error has occurred while fetching the OpenID Metadata.\r\n */\r\nexports.EVENT_OPENID_METADATA_FETCH_ERROR = 'OpenIDMetadataFetchError';\r\n/**\r\n * Indicates that the OpenID session has changed.\r\n */\r\nexports.EVENT_OPENID_SESSION_CHANGED = 'OpenIDCheckSessionChanged';\r\n/**\r\n * Indicates that the OpenID session has not changed.\r\n */\r\nexports.EVENT_OPENID_SESSION_UNCHANGED = 'OpenIDCheckSessionUnchanged';\r\n/**\r\n * Error has occurred while fetching the OpenID Metadata.\r\n */\r\nexports.EVENT_OPENID_CHECK_SESSION_ERROR = 'OpenIDCheckSessionError';\r\n//# sourceMappingURL=SGWTConnectEventList.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.generateAuthorizationUri = exports.normalizeAuthorizationEndpoint = exports.generateCryptoStrongRandomValue = void 0;\r\n/**\r\n * Generates a cryptographically strong random value.\r\n */\r\nfunction generateCryptoStrongRandomValue() {\r\n var crypto = window.crypto || window.msCrypto;\r\n var randomValues = crypto.getRandomValues(new Uint32Array(5));\r\n // IE supports neither TypedArray methods nor Array.from,\r\n // so we have to use a for loop here if we want this script\r\n // to be injectable before polyfills:\r\n var base36RandomValue = '';\r\n for (var i = 0; i < randomValues.length; i += 1) {\r\n base36RandomValue += randomValues[i].toString(36);\r\n }\r\n return base36RandomValue;\r\n}\r\nexports.generateCryptoStrongRandomValue = generateCryptoStrongRandomValue;\r\n/**\r\n * Normalizes the authorization endpoint by stripping /oauth2/* suffixes.\r\n */\r\nfunction normalizeAuthorizationEndpoint(authorization_endpoint) {\r\n return authorization_endpoint.replace(/(\\/oauth2\\/authorize|\\/userinfo)?\\/?$/, '');\r\n}\r\nexports.normalizeAuthorizationEndpoint = normalizeAuthorizationEndpoint;\r\n/**\r\n * Generates an OAuth2/OpenID-compliant authorization URI.\r\n */\r\nfunction generateAuthorizationUri(config, state, options) {\r\n return (normalizeAuthorizationEndpoint(config.authorization_endpoint) +\r\n '/oauth2/authorize' +\r\n '?client_id=' +\r\n encodeURIComponent(config.client_id) +\r\n '&redirect_uri=' +\r\n encodeURIComponent(config.redirect_uri) +\r\n '&response_type=' +\r\n encodeURIComponent(config.response_type) +\r\n '&scope=' +\r\n encodeURIComponent(config.scope) +\r\n (config.with_nonce ? \"&nonce= \".concat(encodeURIComponent(generateCryptoStrongRandomValue())) : '') +\r\n '&state=' +\r\n encodeURIComponent(state) +\r\n '&acr_values=' +\r\n encodeURIComponent(config.acr_values) +\r\n (options && options.prompt ? '&prompt=' + options.prompt : '') +\r\n (options && options.id_token_hint ? '&id_token_hint=' + options.id_token_hint : ''));\r\n}\r\nexports.generateAuthorizationUri = generateAuthorizationUri;\r\n//# sourceMappingURL=SGWTConnectAuthorizationUri.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.isScopeListed = void 0;\r\n/**\r\n * Determines whether the checked scope is listed in the actual scope.\r\n */\r\nfunction isScopeListed(checkedScope, actualScope) {\r\n var checkedScopeList = checkedScope.trim().toLowerCase().split(/\\s+/);\r\n var actualScopeList = actualScope.trim().toLowerCase().split(/\\s+/);\r\n return checkedScopeList.every(function (scope) { return actualScopeList.indexOf(scope) !== -1; });\r\n}\r\nexports.isScopeListed = isScopeListed;\r\n//# sourceMappingURL=isScopeListed.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.normalizeUrl = void 0;\r\n/**\r\n * Normalizes a URL by lowercasing it, adding the trailing slash,\r\n * and removing the default ports (:80 for http and :443 for https).\r\n * @param url URL to normalize.\r\n * @example\r\n * normalizeUrl('HTTP://EXAMPLE.COM') === 'http://example.com/'\r\n * normalizeUrl('http://example.com:80') === 'http://example.com/'\r\n * normalizeUrl('https://example.com:443') === 'https://example.com/'\r\n */\r\nfunction normalizeUrl(url) {\r\n // Using HTMLAnchorElement hack because Internet Explorer\r\n // doesn't support the Window.URL API:\r\n var a = document.createElement('a');\r\n a.href = url;\r\n return a.href;\r\n}\r\nexports.normalizeUrl = normalizeUrl;\r\n//# sourceMappingURL=normalizeUrl.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.normalizeAuthServerResponse = exports.parseOAuth2Fragment = void 0;\r\n/**\r\n * Creates an object from a string of query parameters.\r\n */\r\nfunction parseQueryParametersString(queryParametersString) {\r\n var queryParametersRegex = /([^&=]+)=([^&]*)/g;\r\n var queryParameters = {};\r\n var keyValuePair;\r\n while ((keyValuePair = queryParametersRegex.exec(queryParametersString))) {\r\n var key = decodeURIComponent(keyValuePair[1]);\r\n var value = decodeURIComponent(keyValuePair[2]);\r\n queryParameters[key] = value;\r\n }\r\n return queryParameters;\r\n}\r\n/**\r\n * Parses an authorization server response.\r\n */\r\nfunction parseOAuth2Fragment(fragment) {\r\n return parseQueryParametersString(fragment.replace(/^#/, ''));\r\n}\r\nexports.parseOAuth2Fragment = parseOAuth2Fragment;\r\n/**\r\n * Normalizes a parsed authorization server response.\r\n */\r\nfunction normalizeAuthServerResponse(authServerResponse) {\r\n if (authServerResponse.error) {\r\n var authError = {\r\n error: authServerResponse.error,\r\n error_description: authServerResponse.error_description,\r\n state: authServerResponse.state,\r\n };\r\n return authError;\r\n }\r\n var expiresIn = parseInt(authServerResponse.expires_in, 10) * 1000;\r\n var authSuccess = {\r\n access_token: authServerResponse.access_token,\r\n expires_in: expiresIn,\r\n expires_at: Date.now() + expiresIn,\r\n id_token: authServerResponse.id_token,\r\n scope: authServerResponse.scope,\r\n state: authServerResponse.state,\r\n token_type: authServerResponse.token_type,\r\n session_state: authServerResponse.session_state,\r\n };\r\n return authSuccess;\r\n}\r\nexports.normalizeAuthServerResponse = normalizeAuthServerResponse;\r\n//# sourceMappingURL=SGWTConnectServerResponse.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.isOnRedirectUri = exports.generateRedirectUri = void 0;\r\nvar isScopeListed_1 = require(\"./isScopeListed\");\r\nvar normalizeUrl_1 = require(\"./normalizeUrl\");\r\nvar SGWTConnectServerResponse_1 = require(\"./SGWTConnectServerResponse\");\r\n/**\r\n * Generates a redirect URI.\r\n *\r\n * Given the origin \"https://example.com\":\r\n * - \"\" -> \"https://example.com\"\r\n * - \"/redirect\" -> \"https://example.com/redirect\"\r\n * - \"https://example.com\" -> \"https://example.com\"\r\n */\r\nfunction generateRedirectUri(location, redirectUri) {\r\n var origin = \"\".concat(location.protocol, \"//\").concat(location.host);\r\n // Support empty or unspecified redirect_uri\r\n // by using the current origin instead:\r\n // \"\" => \"https://example.com\"\r\n if (!redirectUri) {\r\n return origin;\r\n }\r\n // Support URIs relative to origin, for example:\r\n // \"/redirect\" => \"https://example.com/redirect\"\r\n if (redirectUri.charAt(0) === '/') {\r\n return \"\".concat(origin).concat(redirectUri);\r\n }\r\n // Otherwise use the redirect_uri as provided.\r\n // Note that we're not trying to normalize it\r\n // because it will be compared as is on the\r\n // authorization server.\r\n return redirectUri;\r\n}\r\nexports.generateRedirectUri = generateRedirectUri;\r\n/**\r\n * Determines if the current page has been redirected using OAuth2 protocol.\r\n */\r\nfunction isOnRedirectUri(config, location) {\r\n //\r\n // Step 1: validate the fragment\r\n // --------------------\r\n var authEndpointResponse = (0, SGWTConnectServerResponse_1.parseOAuth2Fragment)(location.hash);\r\n // Ensure that the fragment has at least the \"state\" parameter,\r\n // otherwise this is not a valid OAuth2 fragment:\r\n if (!authEndpointResponse.hasOwnProperty('state')) {\r\n return false;\r\n }\r\n var hasRequestedAccessToken = (0, isScopeListed_1.isScopeListed)('token', config.response_type);\r\n var hasRequestedIdToken = (0, isScopeListed_1.isScopeListed)('id_token', config.response_type);\r\n var hasReceivedAccessToken = authEndpointResponse.hasOwnProperty('access_token');\r\n var hasReceivedIdToken = authEndpointResponse.hasOwnProperty('id_token');\r\n var hasReceivedError = authEndpointResponse.hasOwnProperty('error');\r\n if (hasRequestedAccessToken) {\r\n if (!hasReceivedAccessToken && !hasReceivedError) {\r\n return false;\r\n }\r\n }\r\n if (hasRequestedIdToken) {\r\n if (!hasReceivedIdToken && !hasReceivedError) {\r\n return false;\r\n }\r\n }\r\n //\r\n // Step 2: validate the href without fragment\r\n // --------------------\r\n // Remove the fragment from the current location and normalize it\r\n // to avoid infinite redirects due to non-strictly equal URIs:\r\n var currentUri = (0, normalizeUrl_1.normalizeUrl)(location.href.replace(location.hash, ''));\r\n // Compare to normalized redirect URI assuming that\r\n // it has no fragment (as per specification):\r\n return currentUri === (0, normalizeUrl_1.normalizeUrl)(config.redirect_uri);\r\n}\r\nexports.isOnRedirectUri = isOnRedirectUri;\r\n//# sourceMappingURL=SGWTConnectRedirectUri.js.map","\"use strict\";\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.normalizeConfiguration = void 0;\r\nvar SGWTConnectAuthorizationUri_1 = require(\"./SGWTConnectAuthorizationUri\");\r\nvar SGWTConnectRedirectUri_1 = require(\"./SGWTConnectRedirectUri\");\r\n/**\r\n * Normalizes the configuration by adding default fields,\r\n * and normalizing existing fields.\r\n * @param config Configuration object to normalize.\r\n */\r\nfunction normalizeConfiguration(config, location) {\r\n return __assign(__assign(__assign({}, config), { response_type: config.response_type || 'id_token token', acr_values: config.acr_values || 'L2', \r\n // Normalize the authorization endpoint by stripping some\r\n // extraneous suffixes that users may add:\r\n authorization_endpoint: (0, SGWTConnectAuthorizationUri_1.normalizeAuthorizationEndpoint)(config.authorization_endpoint), \r\n // API consumers may:\r\n // - specify a redirect_uri relative to origin\r\n // in this case we prefix it with origin\r\n // - not specify a redirect_uri at all\r\n // in this case we define it for them, as it is mandatory\r\n redirect_uri: (0, SGWTConnectRedirectUri_1.generateRedirectUri)(location, config.redirect_uri) }), (config.post_logout_redirect_uri\r\n ? { post_logout_redirect_uri: (0, SGWTConnectRedirectUri_1.generateRedirectUri)(location, config.post_logout_redirect_uri) }\r\n : {}));\r\n}\r\nexports.normalizeConfiguration = normalizeConfiguration;\r\n//# sourceMappingURL=SGWTConnectConfiguration.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SGWTConnectStorage = void 0;\r\n/**\r\n * SGWTConnect data storage.\r\n *\r\n * Has the following features:\r\n * - Automatic parsing of stringified data.\r\n * - Prefixing of keys of stored data.\r\n */\r\nvar SGWTConnectStorage = /** @class */ (function () {\r\n function SGWTConnectStorage(hash) {\r\n if (hash === void 0) { hash = ''; }\r\n this.hash = hash;\r\n this.baseStorageKey = 'SGWTConnectStorage';\r\n }\r\n Object.defineProperty(SGWTConnectStorage.prototype, \"storageKey\", {\r\n get: function () {\r\n return this.hash ? \"\".concat(this.baseStorageKey, \".\").concat(this.hash) : this.baseStorageKey;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n SGWTConnectStorage.prototype.getItem = function (key) {\r\n var item = localStorage.getItem(\"\".concat(this.storageKey, \".\").concat(key));\r\n return item === null ? null : JSON.parse(item);\r\n };\r\n SGWTConnectStorage.prototype.setItem = function (key, value) {\r\n localStorage.setItem(\"\".concat(this.storageKey, \".\").concat(key), JSON.stringify(value));\r\n };\r\n SGWTConnectStorage.prototype.removeItem = function (key) {\r\n localStorage.removeItem(\"\".concat(this.storageKey, \".\").concat(key));\r\n };\r\n SGWTConnectStorage.prototype.clearBy = function (satisfiesCondition) {\r\n for (var i = 0; i < localStorage.length; i += 1) {\r\n var key = localStorage.key(i);\r\n if (key && key.indexOf(this.baseStorageKey) !== -1) {\r\n var value = localStorage.getItem(key);\r\n var parsedValue = value === null ? null : JSON.parse(value);\r\n if (satisfiesCondition(parsedValue, key)) {\r\n localStorage.removeItem(key);\r\n }\r\n }\r\n }\r\n };\r\n return SGWTConnectStorage;\r\n}());\r\nexports.SGWTConnectStorage = SGWTConnectStorage;\r\n//# sourceMappingURL=SGWTConnectStorage.js.map","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction $getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return $getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = $getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) args.push(arguments[i]);\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n ReflectApply(this.listener, this.target, args);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.isSameOrigin = void 0;\r\n/**\r\n * Determines whether two valid URLs are of the same origin.\r\n *\r\n * There is no URL normalization, thus\r\n * `isSameOrigin('http://localhost', 'localhost')` is `false`.\r\n */\r\nfunction isSameOrigin(urlA, urlB) {\r\n // Using HTMLAnchorElement hack because Internet Explorer\r\n // doesn't support the Window.URL API:\r\n var a = document.createElement('a');\r\n a.href = urlA;\r\n var protocolA = a.protocol, hostA = a.host;\r\n a.href = urlB;\r\n var protocolB = a.protocol, hostB = a.host;\r\n // Internet Explorer doesn't implement HTMLAnchorElement.origin,\r\n // so we consider origin to be the same when their protocols,\r\n // hostnames, and ports match exactly. Note that HTMLAnchorElement\r\n // normalizes the URL (lowercases it, removes trailing slash) and\r\n // HTMLAnchorElement.host value already includes the port, for ex:\r\n // \"HTTP://Example.com:8080/foo\"\r\n // - protocol: \"http:\"\r\n // - host: \"example.com:8080\"\r\n return protocolA === protocolB && hostA === hostB;\r\n}\r\nexports.isSameOrigin = isSameOrigin;\r\n//# sourceMappingURL=isSameOrigin.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.isObject = void 0;\r\n/**\r\n * Determines whether the given value is an object.\r\n * @param value A value to check.\r\n */\r\nfunction isObject(value) {\r\n return value !== null && typeof value === 'object';\r\n}\r\nexports.isObject = isObject;\r\n//# sourceMappingURL=isObject.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.fetchOpenIDUserInfo = void 0;\r\nvar isObject_1 = require(\"./isObject\");\r\nvar SGWTConnectError_1 = require(\"./SGWTConnectError\");\r\nvar SGWTConnectErrorList_1 = require(\"./SGWTConnectErrorList\");\r\n/**\r\n * Fetches OpenID Claims from the OpenID Provider's \"userinfo\" endpoint.\r\n * @param authorizationEndpoint OpenID Provider's \"userinfo\" endpoint URL.\r\n * @param authorizationHeader OpenID Provider's \"userinfo\" endpoint URL.\r\n * @param callback Called with Claims or error upon request completion.\r\n */\r\nfunction fetchOpenIDUserInfo(authorizationEndpoint, authorizationHeader, callback) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.open('GET', \"\".concat(authorizationEndpoint, \"/oauth2/userinfo\"));\r\n xhr.setRequestHeader('Accept', 'application/json');\r\n xhr.setRequestHeader('Authorization', authorizationHeader);\r\n xhr.addEventListener('load', function handleOpenIDUserInfoLoad() {\r\n if (xhr.status === 200) {\r\n var openIDUserInfo = void 0;\r\n try {\r\n openIDUserInfo = JSON.parse(xhr.responseText);\r\n }\r\n catch (_a) {\r\n callback(new SGWTConnectError_1.SGWTConnectError(SGWTConnectErrorList_1.ERR_FAILED_TO_PARSE_OPENID_CLAIMS));\r\n return;\r\n }\r\n if (isValidOpenIDClaims(openIDUserInfo)) {\r\n callback(null, openIDUserInfo);\r\n }\r\n else {\r\n callback(new SGWTConnectError_1.SGWTConnectError(SGWTConnectErrorList_1.ERR_FAILED_TO_VALIDATE_OPENID_CLAIMS));\r\n }\r\n }\r\n else {\r\n callback(new SGWTConnectError_1.SGWTConnectError(SGWTConnectErrorList_1.ERR_FAILED_TO_FETCH_OPENID_CLAIMS));\r\n }\r\n });\r\n xhr.send();\r\n}\r\nexports.fetchOpenIDUserInfo = fetchOpenIDUserInfo;\r\n/**\r\n * Determines whether the given OpenID Configuration is valid.\r\n * @param openIDUserInfo JSON-parsed value obtained from the Discovery API.\r\n */\r\nfunction isValidOpenIDClaims(openIDUserInfo) {\r\n return ((0, isObject_1.isObject)(openIDUserInfo) &&\r\n typeof openIDUserInfo.sub === 'string' &&\r\n typeof openIDUserInfo.name === 'string' &&\r\n typeof openIDUserInfo.locale === 'string');\r\n}\r\n//# sourceMappingURL=SGWTConnectOpenIDUserInfo.js.map","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SGWTConnectCore = exports.SGWTConnectCheckSesssionFrameAttribute = exports.SGWTConnectRenewalFrameAttribute = void 0;\r\nvar events_1 = require(\"events\");\r\nvar isSameOrigin_1 = require(\"./isSameOrigin\");\r\nvar isScopeListed_1 = require(\"./isScopeListed\");\r\nvar SGWTConnectAuthorizationUri_1 = require(\"./SGWTConnectAuthorizationUri\");\r\nvar SGWTConnectError_1 = require(\"./SGWTConnectError\");\r\nvar SGWTConnectErrorList_1 = require(\"./SGWTConnectErrorList\");\r\nvar SGWTConnectEventList_1 = require(\"./SGWTConnectEventList\");\r\nvar SGWTConnectOpenIDUserInfo_1 = require(\"./SGWTConnectOpenIDUserInfo\");\r\nvar SGWTConnectServerResponse_1 = require(\"./SGWTConnectServerResponse\");\r\nexports.SGWTConnectRenewalFrameAttribute = 'data-sgwt-connect-renewal-frame';\r\nexports.SGWTConnectCheckSesssionFrameAttribute = 'data-sgwt-connect-check-session-frame';\r\n/**\r\n * Main API of SGWTConnect.\r\n */\r\nvar SGWTConnectCore = /** @class */ (function (_super) {\r\n __extends(SGWTConnectCore, _super);\r\n function SGWTConnectCore(config, storage, fetchOpenIDMetadata) {\r\n var _this = _super.call(this) || this;\r\n _this.config = config;\r\n _this.storage = storage;\r\n _this.tokenExpirationTimer = null;\r\n _this.periodicalRenewalTimer = null;\r\n _this.periodicalRenewalBackoff = 1000;\r\n _this.periodicalRenewalTimeout = 30000;\r\n _this.openIDCheckSessionTimerInterval = 3000;\r\n // This is the time we wait before renewing the token.\r\n // It's a percentage (0->1) of the TTL we wait before starting the\r\n // token renewal. `.4` means we start to renew the token when 40% of\r\n // the TTL has elapsed (i.e. after 4 minutes for 10 minutes-TTL tokens).\r\n _this.tokenTTLElapsedBeforeRenewal = 0.4;\r\n // Change the tokenTTLElapsedBeforeRenewal value if the user\r\n // provided a valid value (between `10` and `95`).\r\n var renew = config.token_ttl_elapsed_before_renewal;\r\n if (typeof renew === 'number' && renew >= 10 && renew <= 95) {\r\n _this.tokenTTLElapsedBeforeRenewal = Math.floor(renew) / 100;\r\n }\r\n if (_this.isAuthorized()) {\r\n _this.restartTokenExpirationTimer();\r\n }\r\n if (fetchOpenIDMetadata && _this.hasRequestedScope('openid')) {\r\n fetchOpenIDMetadata(function (maybeOpenIDMetadata) {\r\n if (maybeOpenIDMetadata instanceof Error) {\r\n _this.emit(SGWTConnectEventList_1.EVENT_OPENID_METADATA_FETCH_ERROR, maybeOpenIDMetadata);\r\n }\r\n else {\r\n _this.openIDMetadata = maybeOpenIDMetadata;\r\n _this.enableOpenIDSessionManagement();\r\n }\r\n });\r\n }\r\n return _this;\r\n }\r\n //\r\n // Public\r\n // --------------------\r\n /**\r\n * Initiates the authorization process.\r\n *\r\n * Redirects to the authorization endpoint unless the\r\n * authorization has already been granted.\r\n */\r\n SGWTConnectCore.prototype.requestAuthorization = function () {\r\n // Check if the user is currently signed in to prevent\r\n // unnecessary sign-in redirects on application load:\r\n if (this.isAuthorized()) {\r\n return this.restartTokenExpirationTimer().enablePeriodicalRenewal();\r\n }\r\n // At this point the token may not exist, has expired\r\n // or the authorization server has responded with an\r\n // error. In any case we clear the current authorization\r\n // response:\r\n this.storage.removeItem('AUTH');\r\n // Cross-Site Request Forgery (CSRF) protection:\r\n var state = (0, SGWTConnectAuthorizationUri_1.generateCryptoStrongRandomValue)();\r\n this.storage.setItem(\"\".concat(state, \".STATE\"), state);\r\n // Remember the current URL, we will need to return\r\n // the user here after authorization is completed:\r\n this.storage.setItem(\"\".concat(state, \".RETURN_URL\"), location.href);\r\n // Initiate the authorization process by redirecting\r\n // the current page to the authorization endpoint:\r\n location.replace((0, SGWTConnectAuthorizationUri_1.generateAuthorizationUri)(this.config, state));\r\n return this;\r\n };\r\n /**\r\n * Clears the local authorization data and redirects\r\n * to end_session_endpoint if OpenID is enabled and\r\n * has loaded the relevant metadata.\r\n */\r\n SGWTConnectCore.prototype.discardAuthorization = function () {\r\n // Redirect is only possible if OpenID Metadata was\r\n // successfully retrieved from the \"well-known\" endpoint:\r\n if (this.openIDMetadata) {\r\n // Obtain the parameters required for the logout request:\r\n // https://openid.net/specs/openid-connect-session-1_0.html#RPLogout\r\n var id_token_hint = this.getIdToken();\r\n var post_logout_redirect_uri = this.config.post_logout_redirect_uri;\r\n var end_session_endpoint = this.openIDMetadata.end_session_endpoint;\r\n // Generate the end session URL:\r\n var endSessionURL_1 = \"\".concat(end_session_endpoint, \"?id_token_hint=\").concat(id_token_hint) +\r\n (post_logout_redirect_uri ? \"&post_logout_redirect_uri=\".concat(post_logout_redirect_uri) : '');\r\n // Schedule termination of the OpenID session:\r\n this.once(SGWTConnectEventList_1.EVENT_AUTH_DISCARDED, function () {\r\n window.location.replace(endSessionURL_1);\r\n });\r\n }\r\n // Discard the authorization data which will trigger\r\n // EVENT_AUTH_DISCARDED that we subscribed to above:\r\n return this.discardAuthorizationLocally();\r\n };\r\n /**\r\n * Initiates a silent renewal of the token.\r\n *\r\n * Because the renewal is transparent to the user, we\r\n * discourage usage of this method before calling `requestAuthorization`\r\n * as this will not display the authorization approval\r\n * interface.\r\n */\r\n SGWTConnectCore.prototype.renewAuthorization = function (callback) {\r\n return this.requestAuthorizationWithoutPrompt({}, callback);\r\n };\r\n /**\r\n * Determines if the authorization has been granted.\r\n *\r\n * The state of having authorization is determined by the presence\r\n * of a non-expired access_token. This method does not tell\r\n * whether the authorization has been revoked or not,\r\n * or whether the granted scopes are identical to the\r\n * requested ones.\r\n */\r\n SGWTConnectCore.prototype.isAuthorized = function () {\r\n var authorization = this.storage.getItem('AUTH');\r\n return Boolean(authorization && authorization.access_token) && authorization.expires_at > Date.now();\r\n };\r\n /**\r\n * Returns the authorization error or null if there is none.\r\n */\r\n SGWTConnectCore.prototype.getAuthorizationError = function () {\r\n var authorization = this.storage.getItem('AUTH');\r\n return authorization && authorization.error ? new SGWTConnectError_1.SGWTConnectError(authorization.error) : null;\r\n };\r\n /**\r\n * Generates an \"Authorization\" HTTP header value.\r\n *\r\n * Call this method and use the return value as Authorization header\r\n * value every time you make an HTTP request to your backend API.\r\n *\r\n * const authHttpHeader = sgwtConnect.getAuthorizationHeader();\r\n * if (authHttpHeader) {\r\n * headers.set('Authorization', authHttpHeader);\r\n * }\r\n *\r\n * Currently only the \"Bearer\" token type is supported.\r\n */\r\n SGWTConnectCore.prototype.getAuthorizationHeader = function () {\r\n var authorization = this.storage.getItem('AUTH');\r\n if (!this.isAuthorized()) {\r\n return null;\r\n }\r\n if (authorization.token_type && authorization.token_type.toLowerCase() === 'bearer') {\r\n return \"Bearer \".concat(authorization.access_token);\r\n }\r\n throw new SGWTConnectError_1.SGWTConnectError(SGWTConnectErrorList_1.ERR_UNSUPPORTED_TOKEN_TYPE);\r\n };\r\n /**\r\n * Returns the scope granted by the authorization server as a space-delimited string.\r\n */\r\n SGWTConnectCore.prototype.getGrantedScope = function () {\r\n // Make sure that the authorization request was successful:\r\n if (!this.isAuthorized()) {\r\n return null;\r\n }\r\n // Scope is part of authorization server response:\r\n var authorization = this.storage.getItem('AUTH');\r\n // Return the scope as is (e.g. \"profile openid mail\").\r\n // We leave it up to developer to parse and compare to\r\n // the requested scope. Also note that the scope\r\n // may not be returned in the authorization response\r\n // if it is identical to the scope requested by\r\n // the client.\r\n return typeof authorization.scope === 'undefined' ? this.config.scope : authorization.scope;\r\n };\r\n /**\r\n * Determines whether the given scope has been granted.\r\n *\r\n * sgwtConnect.hasGrantedScope('profile openid');\r\n */\r\n SGWTConnectCore.prototype.hasGrantedScope = function (checkedScope) {\r\n var grantedScope = this.getGrantedScope();\r\n if (typeof grantedScope !== 'string') {\r\n return false;\r\n }\r\n return (0, isScopeListed_1.isScopeListed)(checkedScope, grantedScope);\r\n };\r\n /**\r\n * Obtains the user's ID Token in the form of JWT (JSON Web Token).\r\n *\r\n * Use this method to pass user identity to your backend.\r\n *\r\n * Calling this method is only useful if the \"scope\" parameter\r\n * used to make the authorization request included the \"openid\"\r\n * value.\r\n *\r\n * See http://openid.net/specs/openid-connect-core-1_0.html#IDToken\r\n * See https://tools.ietf.org/html/rfc7519\r\n */\r\n SGWTConnectCore.prototype.getIdToken = function () {\r\n // Make sure that the authorization request was successful:\r\n if (!this.isAuthorized()) {\r\n return null;\r\n }\r\n // Obtain the authorization server response:\r\n var authorization = this.storage.getItem('AUTH');\r\n // It is possible that the response_type parameter did not\r\n // include the \"id_token\" value while performing an authorization\r\n // request, so there's no id_token in the current token:\r\n if (!authorization.id_token) {\r\n return null;\r\n }\r\n // Return the id_token as is so that it can be passed to\r\n // backend for validation:\r\n return authorization.id_token;\r\n };\r\n /**\r\n * Obtains basic user information from ID Token claims.\r\n *\r\n * Use this method to obtain user id, name, email, etc.\r\n * without calling the /userinfo endpoint.\r\n *\r\n * Calling this method is only useful if the \"scope\" parameter\r\n * used to make the authorization request included the \"openid\"\r\n * (and optionally \"email\", \"profile\", etc.) value.\r\n *\r\n * See http://openid.net/specs/openid-connect-core-1_0.html#IDToken\r\n */\r\n SGWTConnectCore.prototype.getIdTokenClaims = function () {\r\n var idToken = this.getIdToken();\r\n // The ID Token could be missing in the following cases:\r\n // 1. Authorization not requested\r\n // 2. Authorization not granted\r\n // 3. id_token not requested in the authorization request\r\n // 4. id_token not granted in the authorization response\r\n if (idToken === null) {\r\n return null;\r\n }\r\n // The id_token conforms to an industry standard (IETF RFC 7519)\r\n // and contains three parts (header, body, signature) separated\r\n // by \".\" (dot) character:\r\n var idTokenParts = idToken.split('.');\r\n // The body is the second part (at index 1) containing identity\r\n // claims about the user:\r\n var idTokenBody = idTokenParts[1];\r\n // The id_token body is a base64url encoded JSON structure:\r\n return JSON.parse(atob(idTokenBody));\r\n };\r\n /**\r\n * Fetches UserInfo Claims from the authorization server.\r\n *\r\n * Use this method to obtain user name, email, etc. if\r\n * you're not requesting id_token or if the id_token\r\n * does not contain these values.\r\n *\r\n * See https://openid.net/specs/openid-connect-core-1_0.html#UserInfo\r\n */\r\n SGWTConnectCore.prototype.fetchUserInfo = function (callback) {\r\n var authorizationHeader = this.getAuthorizationHeader();\r\n if (authorizationHeader) {\r\n (0, SGWTConnectOpenIDUserInfo_1.fetchOpenIDUserInfo)(this.config.authorization_endpoint, authorizationHeader, callback);\r\n }\r\n else {\r\n callback(new SGWTConnectError_1.SGWTConnectError(SGWTConnectErrorList_1.ERR_UNAUTHORIZED));\r\n }\r\n return this;\r\n };\r\n /**\r\n * Enables silent periodical renewal of the token.\r\n *\r\n * Call this method after checking the result of isAuthorized,\r\n * because it assumes that the authorization request has been\r\n * performed successfully.\r\n */\r\n SGWTConnectCore.prototype.enablePeriodicalRenewal = function () {\r\n var _this = this;\r\n // Make sure that we don't have two renewal timers\r\n // running at the same time:\r\n if (this.periodicalRenewalTimer !== null) {\r\n return this;\r\n }\r\n // Whenever renewal succeeds (manual or periodical)\r\n // we need to restart the timer in order to do reduce\r\n // the number of requests to the authorization endpoint:\r\n this.addListener(SGWTConnectEventList_1.EVENT_AUTH_RENEW_SUCCESS, this.restartRenewalTimer);\r\n // Start the initial timer. We're using setTimeout to be able\r\n // to adjust the duration depending on renew success/error:\r\n this.periodicalRenewalTimer = window.setTimeout(function () {\r\n _this.renewResiliently();\r\n }, this.getRenewalTimeout());\r\n return this;\r\n };\r\n /**\r\n * sgwtConnect listens to its own events, especially `EVENT_AUTH_RENEW_SUCCESS` in\r\n * `enablePeriodicalRenewal()` to restart the renewal timer.\r\n * However, some applications may also listen to them, and eventually remove all\r\n * the listeners (calling `this.removeAllListeners` inherited from `events` library)\r\n * to clean-up. Unfortunately, this also removes the listeners from sgwtConnect,\r\n * which prevents the renewal process to work properly.\r\n * So we override the default `removeAllListeners` method to add again the listener.\r\n * https://sgithub.fr.world.socgen/SG-Web-Toolkit/sgwt-connect/issues/738\r\n */\r\n SGWTConnectCore.prototype.removeAllListeners = function (event) {\r\n var addListenerAgain = false;\r\n if (typeof event === 'undefined') {\r\n addListenerAgain = true;\r\n _super.prototype.removeAllListeners.call(this);\r\n }\r\n else {\r\n addListenerAgain = typeof event === 'string' && event === SGWTConnectEventList_1.EVENT_AUTH_RENEW_SUCCESS;\r\n _super.prototype.removeAllListeners.call(this, event);\r\n }\r\n if (addListenerAgain) {\r\n this.addListener(SGWTConnectEventList_1.EVENT_AUTH_RENEW_SUCCESS, this.restartRenewalTimer);\r\n }\r\n return this;\r\n };\r\n /**\r\n * Disables silent periodical renewal of the token.\r\n */\r\n SGWTConnectCore.prototype.disablePeriodicalRenewal = function () {\r\n // Make sure that the backoff delay is reset so that next time\r\n // we start the periodical renewal, it is back to default value:\r\n this.resetRenewalBackoff();\r\n // Stop restarting periodical renewal on renew success:\r\n this.removeListener(SGWTConnectEventList_1.EVENT_AUTH_RENEW_SUCCESS, this.restartRenewalTimer);\r\n // Clear the current timeout:\r\n if (typeof this.periodicalRenewalTimer === 'number') {\r\n window.clearTimeout(this.periodicalRenewalTimer);\r\n this.periodicalRenewalTimer = null;\r\n }\r\n return this;\r\n };\r\n //\r\n // Private\r\n // --------------------\r\n /**\r\n * Discards the local authorization data,\r\n * cancels all running timers,\r\n * and emits `EVENT_AUTH_DISCARDED` event.\r\n */\r\n SGWTConnectCore.prototype.discardAuthorizationLocally = function () {\r\n // The authorization is discarded, so it no longer\r\n // makes sense to do periodical renewal or maintain\r\n // the expiration timer:\r\n this.disablePeriodicalRenewal();\r\n this.clearTokenExpirationTimer();\r\n if (this.openIDMetadata) {\r\n // OpenID Session Management is no longer needed:\r\n this.disableOpenIDSessionManagement();\r\n }\r\n // Actually discard the authorization data:\r\n this.storage.removeItem('AUTH');\r\n // Notify the interested parties:\r\n this.emit(SGWTConnectEventList_1.EVENT_AUTH_DISCARDED);\r\n return this;\r\n };\r\n /**\r\n * Initiates a silent renewal of the token\r\n * with additional options that are not available\r\n * in the public API.\r\n */\r\n SGWTConnectCore.prototype.requestAuthorizationWithoutPrompt = function (_a, callback) {\r\n var _this = this;\r\n var id_token_hint = _a.id_token_hint;\r\n // Cross-Site Request Forgery (CSRF) protection:\r\n var state = (0, SGWTConnectAuthorizationUri_1.generateCryptoStrongRandomValue)();\r\n // Generate the complete authorization endpoint URL\r\n // where id_token_hint is used to validate session\r\n // after receiving a \"changed\" event from OpenID\r\n // Session Management frame:\r\n var authorizationEndpoint = id_token_hint\r\n ? (0, SGWTConnectAuthorizationUri_1.generateAuthorizationUri)(this.config, state, { prompt: 'none', id_token_hint: id_token_hint })\r\n : (0, SGWTConnectAuthorizationUri_1.generateAuthorizationUri)(this.config, state, { prompt: 'none' });\r\n // Because OAuth2 protocol insists on providing access_token\r\n // in the fragment, we're unable to use XMLHttpRequest as it\r\n // transparently follows all redirects and the fragment is lost.\r\n // To solve this issue we use an iframe which gives us access\r\n // to window.location containing the access_token in its fragment.\r\n var iframe = document.createElement('iframe');\r\n // When both of these flags are set to true, then it is safe\r\n // to remove the iframe from the DOM\r\n // 1. we must not remove the iframe before it emits the \"load\"\r\n // event because in flight resources may get canceled causing\r\n // some browsers to remove them even from the top-level window\r\n // 2. we must wait for the message from iframe because it may\r\n // be emitted after(!) \"load\" event; removing the iframe from\r\n // the DOM will cancel the message in flight\r\n var isIframeLoaded = false;\r\n var isMessageReceivedFromIframe = false;\r\n // Iframe timeout in case it does not message or does not load:\r\n var iframeTimeoutTimer = undefined;\r\n // The redirect_uri may point to another domain preventing\r\n // the iframe from accessing the storage to set the token,\r\n // so it will message the top-level window using cross-origin\r\n // messaging protocol with window.postMessage. This function\r\n // securely handles the received message:\r\n var iframeMessageHandler = function (event) {\r\n // Make sure that the event comes from the renewal iframe:\r\n if (event.source !== iframe.contentWindow) {\r\n return;\r\n }\r\n // Make sure that the event comes from redirect_uri page:\r\n if (!(0, isSameOrigin_1.isSameOrigin)(event.origin, _this.config.redirect_uri)) {\r\n return;\r\n }\r\n // Third party scripts use the same API to send messages,\r\n // so make sure we're dealing with our own event:\r\n if (!event.data || typeof event.data !== 'object') {\r\n return;\r\n }\r\n if (event.data.type !== 'SGWTConnectFragment') {\r\n return;\r\n }\r\n // All event validity checks have passed; we consider\r\n // the event as genuine and can flag it as received\r\n // so that the \"load\" event handler knows about it:\r\n isMessageReceivedFromIframe = true;\r\n // We expect a single message, so the listener is no longer needed:\r\n window.removeEventListener('message', iframeMessageHandler);\r\n // We have received a message from the iframe,\r\n // the timeout no longer makes sense:\r\n window.clearTimeout(iframeTimeoutTimer);\r\n // We can remove the iframe if it has already loaded:\r\n if (isIframeLoaded) {\r\n document.body.removeChild(iframe);\r\n }\r\n // Extract the authorization server response from the message:\r\n var authorization = (0, SGWTConnectServerResponse_1.normalizeAuthServerResponse)((0, SGWTConnectServerResponse_1.parseOAuth2Fragment)(event.data.fragment));\r\n // Cross-Site Request Forgery (CSRF) protection:\r\n if (authorization.state !== state) {\r\n var error = new SGWTConnectError_1.SGWTConnectError(SGWTConnectErrorList_1.ERR_STATE_MISMATCH);\r\n _this.emit(SGWTConnectEventList_1.EVENT_AUTH_RENEW_ERROR, error);\r\n if (callback) {\r\n callback(error);\r\n }\r\n return;\r\n }\r\n // Notify the subscribers about renewal completion:\r\n var errorCode = authorization.error;\r\n if (errorCode) {\r\n // Notify the API consumer about the authorization failure:\r\n var error = new SGWTConnectError_1.SGWTConnectError(errorCode);\r\n _this.emit(SGWTConnectEventList_1.EVENT_AUTH_RENEW_ERROR, error);\r\n if (callback) {\r\n callback(error);\r\n }\r\n }\r\n else {\r\n // Persist the authorization server response prior to emitting\r\n // events and calling the completion callback so that the token\r\n // is available to the completion event handlers:\r\n _this.storage.setItem('AUTH', authorization);\r\n // The authorization data has been updated, which means that\r\n // the expiration time has changed, so we need to restart\r\n // the expiration timer:\r\n _this.restartTokenExpirationTimer();\r\n // Although rare, the authorization state might be initiated\r\n // by calling renewAuthorization instead of requestAuthorization;\r\n // in this case we need to enable OpenID Session Management\r\n // on \"renewal\" success:\r\n _this.enableOpenIDSessionManagement();\r\n // Notify the API consumer about the authorization success:\r\n _this.emit(SGWTConnectEventList_1.EVENT_AUTH_RENEW_SUCCESS);\r\n if (callback) {\r\n callback(null);\r\n }\r\n }\r\n };\r\n // Securely handles the \"load\" event of the renewal iframe\r\n // by removing event listeners and the iframe itself;\r\n // also emits an error event in case no message was\r\n // received from the iframe before \"load\" event:\r\n var iframeLoadHandler = function (event) {\r\n // Make sure the event is genuine:\r\n if (!event.isTrusted) {\r\n return;\r\n }\r\n // We consider this event as genuine and can flag it as received\r\n // so that the iframe message event handler knows about it:\r\n isIframeLoaded = true;\r\n // The \"load\" event can only happen once, so the listener\r\n // is no longer needed:\r\n iframe.removeEventListener('load', iframeLoadHandler);\r\n // We can remove the iframe from the DOM if we have already\r\n // received the message from it:\r\n if (isMessageReceivedFromIframe) {\r\n document.body.removeChild(iframe);\r\n }\r\n };\r\n // Expecting the iframe to send us a message\r\n // from the redirect_uri page using cross-origin\r\n // messaging protocol with window.postMessage:\r\n window.addEventListener('message', iframeMessageHandler);\r\n // We need to listen to the \"load\" event because\r\n // we expect the iframe to load completely\r\n // before removing it from the DOM, otherwise\r\n // canceled resource requests may destroy already\r\n // loaded resources from the top-level window:\r\n iframe.addEventListener('load', iframeLoadHandler);\r\n // The iframe may never load or fail to send the message due to\r\n // changes in network, server failure, or some other error,\r\n // but we still need to emit+callback, so we use a timeout:\r\n iframeTimeoutTimer = window.setTimeout(function () {\r\n window.clearTimeout(iframeTimeoutTimer);\r\n // Cleanup event listeners:\r\n iframe.removeEventListener('load', iframeLoadHandler);\r\n window.removeEventListener('message', iframeMessageHandler);\r\n // Cleanup the DOM:\r\n document.body.removeChild(iframe);\r\n // Notify the API consumer about the renewal failure:\r\n var error = new SGWTConnectError_1.SGWTConnectError(SGWTConnectErrorList_1.ERR_RENEW_TIMEOUT);\r\n _this.emit(SGWTConnectEventList_1.EVENT_AUTH_RENEW_ERROR, error);\r\n if (callback) {\r\n callback(error);\r\n }\r\n }, this.periodicalRenewalTimeout);\r\n // Provide a way for setupSGWTConnect factory to figure out\r\n // whether the redirect is part of silent renewal or not:\r\n iframe.setAttribute(exports.SGWTConnectRenewalFrameAttribute, '');\r\n iframe.style.display = 'none';\r\n iframe.setAttribute('src', authorizationEndpoint);\r\n this.appendElementToDocumentWhenLoaded(iframe);\r\n return this;\r\n };\r\n /**\r\n * Ensures that DOM is loaded and appends the element to document body.\r\n * @param element Element to append to document body.\r\n */\r\n SGWTConnectCore.prototype.appendElementToDocumentWhenLoaded = function (element) {\r\n if (document.body) {\r\n document.body.appendChild(element);\r\n }\r\n else {\r\n var appendElementAndRemoveListener_1 = function () {\r\n window.removeEventListener('DOMContentLoaded', appendElementAndRemoveListener_1);\r\n document.body.appendChild(element);\r\n };\r\n window.addEventListener('DOMContentLoaded', appendElementAndRemoveListener_1);\r\n }\r\n };\r\n /**\r\n * Determines whether the given scope has been requested.\r\n *\r\n * this.hasRequestedScope('profile openid');\r\n */\r\n SGWTConnectCore.prototype.hasRequestedScope = function (checkedScope) {\r\n return (0, isScopeListed_1.isScopeListed)(checkedScope, this.config.scope);\r\n };\r\n /**\r\n * Resets the periodical renewal backoff delay.\r\n */\r\n SGWTConnectCore.prototype.resetRenewalBackoff = function () {\r\n this.periodicalRenewalBackoff = 1000;\r\n return this;\r\n };\r\n /**\r\n * Increments the periodical renewal backoff delay.\r\n *\r\n * Used to reduce authorization server load when periodical\r\n * renewals fail for some reason.\r\n */\r\n SGWTConnectCore.prototype.incrementRenewalBackoff = function () {\r\n this.periodicalRenewalBackoff *= 2;\r\n return this;\r\n };\r\n /**\r\n * Clears the token expiration timer.\r\n */\r\n SGWTConnectCore.prototype.clearTokenExpirationTimer = function () {\r\n if (typeof this.tokenExpirationTimer === 'number') {\r\n window.clearTimeout(this.tokenExpirationTimer);\r\n this.tokenExpirationTimer = null;\r\n }\r\n return this;\r\n };\r\n /**\r\n * Clears the existing token expiration timer and starts a new one.\r\n */\r\n SGWTConnectCore.prototype.restartTokenExpirationTimer = function () {\r\n var _this = this;\r\n // Ensure that there is only one timer at all times:\r\n this.clearTokenExpirationTimer();\r\n // Assuming that the client is currently authorized:\r\n var authorization = this.storage.getItem('AUTH');\r\n var timeUntilTokenExpiration = authorization.expires_at - Date.now();\r\n this.tokenExpirationTimer = window.setTimeout(function () {\r\n _this.emit(SGWTConnectEventList_1.EVENT_AUTH_EXPIRED);\r\n }, timeUntilTokenExpiration);\r\n return this;\r\n };\r\n /**\r\n * Obtains the timeout (in ms) until token renewal.\r\n */\r\n SGWTConnectCore.prototype.getRenewalTimeout = function () {\r\n var _a = this.storage.getItem('AUTH'), expires_at = _a.expires_at, expires_in = _a.expires_in;\r\n // Temporary workaround for the authorization endpoint issue,\r\n // revert to `- expires_in / 4` when possible:\r\n var renewalTime = expires_at - expires_in * (1 - this.tokenTTLElapsedBeforeRenewal);\r\n var renewalTimePositive = Math.max(renewalTime - Date.now(), 0);\r\n // The timeout should never be bigger than 2147483647, since setTimeout uses\r\n // a 32 bits number (cf. https://stackoverflow.com/a/3468650/26457)\r\n // When the token has an extremely long TTL such as 100 days, this timeout should\r\n // not exceed this 2147483647 value.\r\n return Math.min(renewalTimePositive, 2147483647);\r\n };\r\n /**\r\n * Renews the authorization token resiliently.\r\n *\r\n * When doing periodical renewal we must be resilient\r\n * on authorization failures and never abort the timer.\r\n * Even in case of an error we restart the timer,\r\n * but with an incrementally increasing interval\r\n * to avoid network saturation.\r\n */\r\n SGWTConnectCore.prototype.renewResiliently = function () {\r\n var _this = this;\r\n return this.renewAuthorization(function (error) {\r\n if (error) {\r\n _this.periodicalRenewalTimer = window.setTimeout(function () {\r\n _this.renewResiliently();\r\n }, _this.periodicalRenewalBackoff);\r\n _this.incrementRenewalBackoff();\r\n }\r\n else {\r\n _this.resetRenewalBackoff();\r\n }\r\n });\r\n };\r\n /**\r\n * Restarts an existing renewal timer.\r\n */\r\n SGWTConnectCore.prototype.restartRenewalTimer = function () {\r\n var _this = this;\r\n // Do not attempt to restart a non-existing timer:\r\n if (this.periodicalRenewalTimer === null) {\r\n return this;\r\n }\r\n // Every time the renewal is restarted we should reset\r\n // the renewal backoff delay:\r\n this.resetRenewalBackoff();\r\n // Cancel the current renewal timeout:\r\n window.clearTimeout(this.periodicalRenewalTimer);\r\n // Restart the renewal timer:\r\n this.periodicalRenewalTimer = window.setTimeout(function () {\r\n return _this.renewResiliently();\r\n }, this.getRenewalTimeout());\r\n return this;\r\n };\r\n /**\r\n * Enables OpenID session management if not previously enabled.\r\n */\r\n SGWTConnectCore.prototype.enableOpenIDSessionManagement = function () {\r\n var _this = this;\r\n // Make sure that the session management has not already been enabled:\r\n if (this.openIDCheckSessionIframe && this.openIDCheckSessionIframe.parentNode) {\r\n return this;\r\n }\r\n // Make sure that OpenID has actually been configured:\r\n if (!this.openIDMetadata || !this.hasRequestedScope('openid')) {\r\n return this;\r\n }\r\n // Enabling session management only makes sense\r\n // if the authorization has already been granted:\r\n if (!this.isAuthorized()) {\r\n return this;\r\n }\r\n // To check OpenID session we will be polling an iframe\r\n // loaded from check_session_iframe as recommended by\r\n // https://openid.net/specs/openid-connect-session-1_0.html#ChangeNotification\r\n this.openIDCheckSessionIframe = document.createElement('iframe');\r\n this.openIDCheckSessionIframe.style.display = 'none';\r\n this.openIDCheckSessionIframe.setAttribute(exports.SGWTConnectCheckSesssionFrameAttribute, '');\r\n // Expecting the iframe to send us a message using\r\n // messaging protocol with window.postMessage:\r\n window.addEventListener('message', this.handleOpenIDCheckSessionMessage.bind(this));\r\n // Securely handles the \"load\" event of the OpenID check_session_iframe:\r\n var checkSessionIframeLoadHandler = function (event) {\r\n // Make sure the event is genuine:\r\n if (!event.isTrusted) {\r\n return;\r\n }\r\n // Make sure that the iframe still exists:\r\n if (!_this.openIDCheckSessionIframe) {\r\n return;\r\n }\r\n // The \"load\" event can only happen once,\r\n // so the listener is no longer needed:\r\n _this.openIDCheckSessionIframe.removeEventListener('load', checkSessionIframeLoadHandler);\r\n // Start polling:\r\n _this.restartOpenIDSessionValidationTimer();\r\n };\r\n this.openIDCheckSessionIframe.addEventListener('load', checkSessionIframeLoadHandler);\r\n this.openIDCheckSessionIframe.setAttribute('src', this.openIDMetadata.check_session_iframe);\r\n this.appendElementToDocumentWhenLoaded(this.openIDCheckSessionIframe);\r\n return this;\r\n };\r\n /**\r\n * Disables OpenID session management.\r\n */\r\n SGWTConnectCore.prototype.disableOpenIDSessionManagement = function () {\r\n // Stop listening to messages:\r\n window.removeEventListener('message', this.handleOpenIDCheckSessionMessage);\r\n // Stop polling the check_session_iframe:\r\n if (typeof this.openIDCheckSessionTimerId === 'number') {\r\n window.clearTimeout(this.openIDCheckSessionTimerId);\r\n this.openIDCheckSessionTimerId = undefined;\r\n }\r\n // Remove the iframe:\r\n if (this.openIDCheckSessionIframe) {\r\n document.body.removeChild(this.openIDCheckSessionIframe);\r\n this.openIDCheckSessionIframe = undefined;\r\n }\r\n return this;\r\n };\r\n /**\r\n * Restarts OpenID session validation timer.\r\n */\r\n SGWTConnectCore.prototype.restartOpenIDSessionValidationTimer = function () {\r\n // There should be only one OpenID session validation timer:\r\n window.clearTimeout(this.openIDCheckSessionTimerId);\r\n // Schedule a new timer:\r\n this.openIDCheckSessionTimerId = window.setTimeout(this.validateOpenIDSession.bind(this), this.openIDCheckSessionTimerInterval);\r\n };\r\n /**\r\n * Validates the existing OpenID session.\r\n */\r\n SGWTConnectCore.prototype.validateOpenIDSession = function () {\r\n var _this = this;\r\n if (this.isAuthorized()) {\r\n // The current authorization state retrieved from the storage\r\n // indicates that the session is valid, however it might be\r\n // terminated already at the authorization server.\r\n // To validate the session, we need to send a message\r\n // to the check_session iframe, but before that we make sure\r\n // that we have metadata and that the check_session iframe\r\n // still exists in the DOM.\r\n if (!this.openIDMetadata) {\r\n return;\r\n }\r\n if (this.openIDCheckSessionIframe && this.openIDCheckSessionIframe.contentWindow) {\r\n var authorization = this.storage.getItem('AUTH');\r\n this.openIDCheckSessionIframe.contentWindow.postMessage(\"\".concat(this.config.client_id, \" \").concat(authorization.session_state), this.openIDMetadata.check_session_iframe);\r\n this.restartOpenIDSessionValidationTimer();\r\n }\r\n else {\r\n // In case the check_session iframe no longer exists,\r\n // we try to recreate it be re-enabling session management:\r\n this.enableOpenIDSessionManagement();\r\n }\r\n }\r\n else {\r\n // In case the authorization state is lost (storage cleared)\r\n // we attempt a silent authorization renewal. If the session\r\n // is still valid on the authorization server, the renewal\r\n // should succeed and we just restart the timer; otherwise\r\n // we treat it as loss of authorization and act accordingly.\r\n this.renewAuthorization(function (error) {\r\n if (error) {\r\n _this.discardAuthorizationLocally();\r\n }\r\n else {\r\n _this.restartOpenIDSessionValidationTimer();\r\n }\r\n });\r\n }\r\n };\r\n /**\r\n * Securely handles events from check_session_iframe.\r\n * @param event MessageEvent\r\n */\r\n SGWTConnectCore.prototype.handleOpenIDCheckSessionMessage = function (event) {\r\n var _this = this;\r\n // Sanity checks:\r\n if (!this.openIDCheckSessionIframe || !this.openIDMetadata) {\r\n return;\r\n }\r\n // Make sure that the event comes from the check_session_iframe:\r\n if (event.source !== this.openIDCheckSessionIframe.contentWindow) {\r\n return;\r\n }\r\n if (!(0, isSameOrigin_1.isSameOrigin)(event.origin, this.openIDMetadata.check_session_iframe)) {\r\n return;\r\n }\r\n // Expecting event.data to be either \"unchanged\", \"changed\", or \"error\".\r\n // See https://openid.net/specs/openid-connect-session-1_0.html#RPiframe\r\n if (event.data === 'unchanged') {\r\n // Session has not changed, so we only notify\r\n // (mostly for logging and testing purposes):\r\n this.emit(SGWTConnectEventList_1.EVENT_OPENID_SESSION_UNCHANGED);\r\n }\r\n else if (event.data === 'changed') {\r\n this.emit(SGWTConnectEventList_1.EVENT_OPENID_SESSION_CHANGED);\r\n // Perform re-authentication with prompt=none\r\n // sending the old id_token as id_token_hint:\r\n var prevIdToken = this.getIdToken();\r\n var prevIdTokenClaims_1 = this.getIdTokenClaims();\r\n this.requestAuthorizationWithoutPrompt({ id_token_hint: prevIdToken }, function (error) {\r\n if (!error) {\r\n // If we receive a new ID Token for the same user\r\n // then we simply update the values\r\n var nextIdTokenClaims = _this.getIdTokenClaims();\r\n if (nextIdTokenClaims && prevIdTokenClaims_1 && nextIdTokenClaims.sub === prevIdTokenClaims_1.sub) {\r\n return;\r\n }\r\n }\r\n // In other cases, such as error response,\r\n // or absence of ID Token, or it was delivered\r\n // for another user, we discard authorization:\r\n _this.discardAuthorizationLocally();\r\n });\r\n }\r\n else if (event.data === 'error') {\r\n // In case of communication error with check_session_iframe\r\n // we notify the user and wait for fallback to periodical\r\n // renewal to check the session validity:\r\n this.emit(SGWTConnectEventList_1.EVENT_OPENID_CHECK_SESSION_ERROR, new SGWTConnectError_1.SGWTConnectError(SGWTConnectErrorList_1.ERR_OPENID_CHECK_SESSION_ERROR));\r\n }\r\n };\r\n return SGWTConnectCore;\r\n}(events_1.EventEmitter));\r\nexports.SGWTConnectCore = SGWTConnectCore;\r\n//# sourceMappingURL=SGWTConnectCore.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.hash = void 0;\r\n/**\r\n * Generates a lossy hash of an object.\r\n *\r\n * Typed implementation of MD5 in JavaScript by Joseph's Myers.\r\n * This function is not intended to be crypto-secure.\r\n * @see http://www.myersdaily.org/joseph/javascript/md5-text.html\r\n */\r\nfunction hash(obj) {\r\n return hex(md51(\r\n // Keys are sorted to ensure that ordering of keys\r\n // does not affect the hashing result:\r\n Object.keys(obj)\r\n .sort()\r\n .filter(function (key) { return obj[key] !== null && obj[key] !== undefined; })\r\n .reduce(function (acc, key) { return acc + key + ':' + obj[key] + '|'; }, '|')));\r\n}\r\nexports.hash = hash;\r\nvar hexChr = '0123456789abcdef'.split('');\r\nfunction rhex(n) {\r\n var s = '';\r\n for (var i = 0; i < 4; i += 1) {\r\n s += hexChr[(n >> (i * 8 + 4)) & 0x0f] + hexChr[(n >> (i * 8)) & 0x0f];\r\n }\r\n return s;\r\n}\r\nfunction hex(x) {\r\n var h = '';\r\n for (var _i = 0, x_1 = x; _i < x_1.length; _i++) {\r\n var n = x_1[_i];\r\n h += rhex(n);\r\n }\r\n return h;\r\n}\r\nfunction md5cycle(x, k) {\r\n var a = x[0];\r\n var b = x[1];\r\n var c = x[2];\r\n var d = x[3];\r\n a = ff(a, b, c, d, k[0], 7, -680876936);\r\n d = ff(d, a, b, c, k[1], 12, -389564586);\r\n c = ff(c, d, a, b, k[2], 17, 606105819);\r\n b = ff(b, c, d, a, k[3], 22, -1044525330);\r\n a = ff(a, b, c, d, k[4], 7, -176418897);\r\n d = ff(d, a, b, c, k[5], 12, 1200080426);\r\n c = ff(c, d, a, b, k[6], 17, -1473231341);\r\n b = ff(b, c, d, a, k[7], 22, -45705983);\r\n a = ff(a, b, c, d, k[8], 7, 1770035416);\r\n d = ff(d, a, b, c, k[9], 12, -1958414417);\r\n c = ff(c, d, a, b, k[10], 17, -42063);\r\n b = ff(b, c, d, a, k[11], 22, -1990404162);\r\n a = ff(a, b, c, d, k[12], 7, 1804603682);\r\n d = ff(d, a, b, c, k[13], 12, -40341101);\r\n c = ff(c, d, a, b, k[14], 17, -1502002290);\r\n b = ff(b, c, d, a, k[15], 22, 1236535329);\r\n a = gg(a, b, c, d, k[1], 5, -165796510);\r\n d = gg(d, a, b, c, k[6], 9, -1069501632);\r\n c = gg(c, d, a, b, k[11], 14, 643717713);\r\n b = gg(b, c, d, a, k[0], 20, -373897302);\r\n a = gg(a, b, c, d, k[5], 5, -701558691);\r\n d = gg(d, a, b, c, k[10], 9, 38016083);\r\n c = gg(c, d, a, b, k[15], 14, -660478335);\r\n b = gg(b, c, d, a, k[4], 20, -405537848);\r\n a = gg(a, b, c, d, k[9], 5, 568446438);\r\n d = gg(d, a, b, c, k[14], 9, -1019803690);\r\n c = gg(c, d, a, b, k[3], 14, -187363961);\r\n b = gg(b, c, d, a, k[8], 20, 1163531501);\r\n a = gg(a, b, c, d, k[13], 5, -1444681467);\r\n d = gg(d, a, b, c, k[2], 9, -51403784);\r\n c = gg(c, d, a, b, k[7], 14, 1735328473);\r\n b = gg(b, c, d, a, k[12], 20, -1926607734);\r\n a = hh(a, b, c, d, k[5], 4, -378558);\r\n d = hh(d, a, b, c, k[8], 11, -2022574463);\r\n c = hh(c, d, a, b, k[11], 16, 1839030562);\r\n b = hh(b, c, d, a, k[14], 23, -35309556);\r\n a = hh(a, b, c, d, k[1], 4, -1530992060);\r\n d = hh(d, a, b, c, k[4], 11, 1272893353);\r\n c = hh(c, d, a, b, k[7], 16, -155497632);\r\n b = hh(b, c, d, a, k[10], 23, -1094730640);\r\n a = hh(a, b, c, d, k[13], 4, 681279174);\r\n d = hh(d, a, b, c, k[0], 11, -358537222);\r\n c = hh(c, d, a, b, k[3], 16, -722521979);\r\n b = hh(b, c, d, a, k[6], 23, 76029189);\r\n a = hh(a, b, c, d, k[9], 4, -640364487);\r\n d = hh(d, a, b, c, k[12], 11, -421815835);\r\n c = hh(c, d, a, b, k[15], 16, 530742520);\r\n b = hh(b, c, d, a, k[2], 23, -995338651);\r\n a = ii(a, b, c, d, k[0], 6, -198630844);\r\n d = ii(d, a, b, c, k[7], 10, 1126891415);\r\n c = ii(c, d, a, b, k[14], 15, -1416354905);\r\n b = ii(b, c, d, a, k[5], 21, -57434055);\r\n a = ii(a, b, c, d, k[12], 6, 1700485571);\r\n d = ii(d, a, b, c, k[3], 10, -1894986606);\r\n c = ii(c, d, a, b, k[10], 15, -1051523);\r\n b = ii(b, c, d, a, k[1], 21, -2054922799);\r\n a = ii(a, b, c, d, k[8], 6, 1873313359);\r\n d = ii(d, a, b, c, k[15], 10, -30611744);\r\n c = ii(c, d, a, b, k[6], 15, -1560198380);\r\n b = ii(b, c, d, a, k[13], 21, 1309151649);\r\n a = ii(a, b, c, d, k[4], 6, -145523070);\r\n d = ii(d, a, b, c, k[11], 10, -1120210379);\r\n c = ii(c, d, a, b, k[2], 15, 718787259);\r\n b = ii(b, c, d, a, k[9], 21, -343485551);\r\n x[0] = add32(a, x[0]);\r\n x[1] = add32(b, x[1]);\r\n x[2] = add32(c, x[2]);\r\n x[3] = add32(d, x[3]);\r\n}\r\nfunction cmn(q, a, b, x, s, t) {\r\n a = add32(add32(a, q), add32(x, t));\r\n return add32((a << s) | (a >>> (32 - s)), b);\r\n}\r\nfunction add32(a, b) {\r\n return (a + b) & 0xffffffff;\r\n}\r\nfunction ff(a, b, c, d, x, s, t) {\r\n return cmn((b & c) | (~b & d), a, b, x, s, t);\r\n}\r\nfunction gg(a, b, c, d, x, s, t) {\r\n return cmn((b & d) | (c & ~d), a, b, x, s, t);\r\n}\r\nfunction hh(a, b, c, d, x, s, t) {\r\n return cmn(b ^ c ^ d, a, b, x, s, t);\r\n}\r\nfunction ii(a, b, c, d, x, s, t) {\r\n return cmn(c ^ (b | ~d), a, b, x, s, t);\r\n}\r\nfunction md51(s) {\r\n var n = s.length;\r\n var state = [1732584193, -271733879, -1732584194, 271733878];\r\n var tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\r\n var i;\r\n for (i = 64; i <= s.length; i += 64) {\r\n md5cycle(state, md5blk(s.substring(i - 64, i)));\r\n }\r\n s = s.substring(i - 64);\r\n for (i = 0; i < s.length; i += 1) {\r\n tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\r\n }\r\n tail[i >> 2] |= 0x80 << (i % 4 << 3);\r\n if (i > 55) {\r\n md5cycle(state, tail);\r\n for (i = 0; i < 16; i += 1) {\r\n tail[i] = 0;\r\n }\r\n }\r\n tail[14] = n * 8;\r\n md5cycle(state, tail);\r\n return state;\r\n}\r\nfunction md5blk(s) {\r\n var md5blks = [];\r\n for (var i = 0; i < 64; i += 4) {\r\n md5blks[i >> 2] =\r\n s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\r\n }\r\n return md5blks;\r\n}\r\n//# sourceMappingURL=SGWTConnectHash.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n//# sourceMappingURL=SGWTConnectIdTokenClaims.js.map","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SGWTConnectNoop = void 0;\r\nvar SGWTConnectCore_1 = require(\"./SGWTConnectCore\");\r\n/**\r\n * Alternative implementation of SGWTConnectCore.\r\n *\r\n * This class should only be instantiated and used\r\n * when the user is on redirect_uri or in an iframe.\r\n * See explanation in setupSGWTConnect.ts\r\n */\r\nvar SGWTConnectNoop = /** @class */ (function (_super) {\r\n __extends(SGWTConnectNoop, _super);\r\n function SGWTConnectNoop() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * Noop.\r\n */\r\n SGWTConnectNoop.prototype.requestAuthorization = function () {\r\n return this;\r\n };\r\n /**\r\n * Noop.\r\n */\r\n SGWTConnectNoop.prototype.discardAuthorization = function () {\r\n return this;\r\n };\r\n /**\r\n * Noop.\r\n */\r\n SGWTConnectNoop.prototype.renewAuthorization = function () {\r\n return this;\r\n };\r\n /**\r\n * Noop.\r\n */\r\n SGWTConnectNoop.prototype.isAuthorized = function () {\r\n return false;\r\n };\r\n /**\r\n * Noop.\r\n */\r\n SGWTConnectNoop.prototype.getAuthorizationError = function () {\r\n return null;\r\n };\r\n /**\r\n * Noop.\r\n */\r\n SGWTConnectNoop.prototype.getAuthorizationHeader = function () {\r\n return null;\r\n };\r\n /**\r\n * Noop.\r\n */\r\n SGWTConnectNoop.prototype.getGrantedScope = function () {\r\n return null;\r\n };\r\n /**\r\n * Noop.\r\n */\r\n SGWTConnectNoop.prototype.hasGrantedScope = function () {\r\n return false;\r\n };\r\n /**\r\n * Noop.\r\n */\r\n SGWTConnectNoop.prototype.getIdToken = function () {\r\n return null;\r\n };\r\n /**\r\n * Noop.\r\n */\r\n SGWTConnectNoop.prototype.getIdTokenClaims = function () {\r\n return null;\r\n };\r\n /**\r\n * Noop.\r\n */\r\n SGWTConnectNoop.prototype.enablePeriodicalRenewal = function () {\r\n return this;\r\n };\r\n /**\r\n * Noop.\r\n */\r\n SGWTConnectNoop.prototype.disablePeriodicalRenewal = function () {\r\n return this;\r\n };\r\n return SGWTConnectNoop;\r\n}(SGWTConnectCore_1.SGWTConnectCore));\r\nexports.SGWTConnectNoop = SGWTConnectNoop;\r\n//# sourceMappingURL=SGWTConnectNoop.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.createOpenIDMetadataFetcher = void 0;\r\nvar isObject_1 = require(\"./isObject\");\r\nvar SGWTConnectError_1 = require(\"./SGWTConnectError\");\r\nvar SGWTConnectErrorList_1 = require(\"./SGWTConnectErrorList\");\r\n/**\r\n * Generates a function that upon invocation asynchronously\r\n * fetches OpenID Metadata from the OpenID Provider.\r\n * @param authorization_endpoint OpenID Provider's endpoint URL.\r\n */\r\nfunction createOpenIDMetadataFetcher(authorization_endpoint) {\r\n return function fetchOpenIDMetadata(callback) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.open('GET', \"\".concat(authorization_endpoint, \"/oauth2/.well-known/openid-configuration\"));\r\n xhr.setRequestHeader('Accept', 'application/json');\r\n xhr.addEventListener('load', function onOpenIDMetadataLoad() {\r\n if (xhr.status === 200) {\r\n var openIDMetadata = void 0;\r\n try {\r\n openIDMetadata = JSON.parse(xhr.responseText);\r\n }\r\n catch (_a) {\r\n callback(new SGWTConnectError_1.SGWTConnectError(SGWTConnectErrorList_1.ERR_FAILED_TO_PARSE_OPENID_METADATA));\r\n return;\r\n }\r\n if (isValidOpenIDMetadata(openIDMetadata)) {\r\n callback(openIDMetadata);\r\n }\r\n else {\r\n callback(new SGWTConnectError_1.SGWTConnectError(SGWTConnectErrorList_1.ERR_FAILED_TO_VALIDATE_OPENID_METADATA));\r\n }\r\n }\r\n else {\r\n callback(new SGWTConnectError_1.SGWTConnectError(SGWTConnectErrorList_1.ERR_FAILED_TO_FETCH_OPENID_METADATA));\r\n }\r\n });\r\n xhr.addEventListener('error', function onOpenIDMetadataError() {\r\n callback(new SGWTConnectError_1.SGWTConnectError(SGWTConnectErrorList_1.ERR_FAILED_TO_FETCH_OPENID_METADATA));\r\n return;\r\n });\r\n xhr.send();\r\n };\r\n}\r\nexports.createOpenIDMetadataFetcher = createOpenIDMetadataFetcher;\r\n/**\r\n * Determines whether the given OpenID Configuration is valid.\r\n * @param openIDMetadata JSON-parsed value obtained from the Discovery API.\r\n */\r\nfunction isValidOpenIDMetadata(openIDMetadata) {\r\n return ((0, isObject_1.isObject)(openIDMetadata) &&\r\n typeof openIDMetadata.check_session_iframe === 'string' &&\r\n typeof openIDMetadata.end_session_endpoint === 'string');\r\n}\r\n//# sourceMappingURL=SGWTConnectOpenIDMetadata.js.map","\"use strict\";\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.setupSGWTConnect = void 0;\r\nvar isScopeListed_1 = require(\"./isScopeListed\");\r\nvar SGWTConnectConfiguration_1 = require(\"./SGWTConnectConfiguration\");\r\nvar SGWTConnectCore_1 = require(\"./SGWTConnectCore\");\r\nvar SGWTConnectErrorList_1 = require(\"./SGWTConnectErrorList\");\r\nvar SGWTConnectHash_1 = require(\"./SGWTConnectHash\");\r\nvar SGWTConnectNoop_1 = require(\"./SGWTConnectNoop\");\r\nvar SGWTConnectOpenIDMetadata_1 = require(\"./SGWTConnectOpenIDMetadata\");\r\nvar SGWTConnectRedirectUri_1 = require(\"./SGWTConnectRedirectUri\");\r\nvar SGWTConnectServerResponse_1 = require(\"./SGWTConnectServerResponse\");\r\nvar SGWTConnectStorage_1 = require(\"./SGWTConnectStorage\");\r\nfunction hashConfigForConnectStorageKey(config) {\r\n // The key storage - if not overriden by `storage_key` configuration - is generated with\r\n // the configuration given to setupSGWTConnect() function. To avoid any issue with newer\r\n // versions (the widget may use another version than the library embedded in the application)\r\n // we limit the properties considered to generate the hash.\r\n // In others terms, we do not include new configuration options (introduced after version 0.10.0)\r\n // for the hash generation.\r\n // Note: properties with `undefined` values will be removed in the `hash` function.\r\n var limitedConfig = {\r\n acr_values: config.acr_values,\r\n authorization_endpoint: config.authorization_endpoint,\r\n client_id: config.client_id,\r\n redirect_uri: config.redirect_uri,\r\n response_type: config.response_type,\r\n scope: config.scope,\r\n post_logout_redirect_uri: config.post_logout_redirect_uri,\r\n };\r\n return (0, SGWTConnectHash_1.hash)(limitedConfig);\r\n}\r\n/**\r\n * SGWTConnect instance factory.\r\n *\r\n * Determines the execution environment (top-level window or iframe),\r\n * instantiates the relevant SGWTConnect class with the given configuration,\r\n * and handles authorization redirects in the top-level window.\r\n */\r\nfunction setupSGWTConnect(userConfig) {\r\n var defaultUserConfig = __assign(__assign({}, userConfig), { with_nonce: typeof userConfig.with_nonce === 'undefined' ? true : userConfig.with_nonce });\r\n var config = (0, SGWTConnectConfiguration_1.normalizeConfiguration)(defaultUserConfig, location);\r\n // Ensure that the stored token and other data have been obtained\r\n // using the current configuration options (note that we're not\r\n // using JSON.stringify here because it will generate different\r\n // results for identical configurations with different ordering\r\n // of keys in them):\r\n var storage = new SGWTConnectStorage_1.SGWTConnectStorage(userConfig.storage_key ? userConfig.storage_key : hashConfigForConnectStorageKey(config));\r\n // Check if we're currently on the redirect_uri page:\r\n if ((0, SGWTConnectRedirectUri_1.isOnRedirectUri)(config, location)) {\r\n // Check if we are currently in a silent renewal iframe:\r\n if (window.frameElement && window.frameElement.hasAttribute(SGWTConnectCore_1.SGWTConnectRenewalFrameAttribute)) {\r\n // We only message the top-level window if the iframe's URI\r\n // matches the redirect URI exactly (without the fragment):\r\n window.parent.postMessage({\r\n type: 'SGWTConnectFragment',\r\n fragment: location.hash,\r\n }, config.redirect_uri);\r\n // Because we are currently on the redirect_uri page, we must not\r\n // return the fully-functional API as this may result in undesired\r\n // behavior and infinite reload, but we still need to return a\r\n // compliant API to prevent JS runtime errors on the page, so we\r\n // return a dummy API where most methods are noop:\r\n return new SGWTConnectNoop_1.SGWTConnectNoop(config, storage);\r\n }\r\n // We are currently doing a hard redirect.\r\n // Extract the authorization server response from the current URL fragment:\r\n var authorization = (0, SGWTConnectServerResponse_1.normalizeAuthServerResponse)((0, SGWTConnectServerResponse_1.parseOAuth2Fragment)(window.location.hash));\r\n var stateInResponse = authorization.state;\r\n // Cross-Site Request Forgery (CSRF) protection:\r\n var stateInStore = storage.getItem(\"\".concat(stateInResponse, \".STATE\"));\r\n if (stateInResponse === stateInStore) {\r\n // Persist the authorization server response prior to emitting\r\n // events and calling the completion callback so that the token\r\n // is available to the completion event handlers (note that\r\n // the server response might be a failed one):\r\n storage.setItem('AUTH', authorization);\r\n }\r\n else if (stateInStore) {\r\n // The \"state\" parameter failed to match; it may be dangerous\r\n // to keep the received server response, so we replace it\r\n // with a custom \"state_mismatch\" error response:\r\n var authError = {\r\n error: SGWTConnectErrorList_1.ERR_STATE_MISMATCH,\r\n };\r\n storage.setItem('AUTH', authError);\r\n }\r\n // We are currently on the \"redirect_uri\", but the user most\r\n // probably initiated the authorization process from another\r\n // URI, so we need to redirect them back there (or to home\r\n // page if RETURN_URL has been cleared):\r\n var returnUrl = storage.getItem(\"\".concat(stateInResponse, \".RETURN_URL\")) || \"\".concat(window.location.protocol, \"//\").concat(window.location.host);\r\n // location.replace doesn't reload the page if only the fragment\r\n // has changed, so we need the following workaround to force\r\n // the page reload, but also to set the fragment of the returnUrl:\r\n if (returnUrl.indexOf('#') !== -1 && location.href.split('#')[0] === returnUrl.split('#')[0]) {\r\n window.location.hash = returnUrl.split('#')[1];\r\n window.location.reload();\r\n }\r\n else {\r\n window.location.replace(returnUrl);\r\n }\r\n // Because we are currently on the redirect_uri page, we must not\r\n // return the fully-functional API as this may result in undesired\r\n // behavior and infinite reload, but we still need to return a\r\n // compliant API to prevent JS runtime errors on the page, so we\r\n // return a dummy API where most methods are noop:\r\n return new SGWTConnectNoop_1.SGWTConnectNoop(config, storage);\r\n }\r\n // We are NOT on the redirect_uri page, do we have authorization?:\r\n var auth = storage.getItem('AUTH');\r\n // Clean up the storage of values needed during redirects:\r\n if (auth) {\r\n storage.removeItem(\"\".concat(auth.state, \".STATE\"));\r\n storage.removeItem(\"\".concat(auth.state, \".RETURN_URL\"));\r\n }\r\n // Clean up the storage of the expired tokens:\r\n storage.clearBy(function (value, key) {\r\n return key.indexOf('AUTH') !== -1 && value.expires_at < Date.now();\r\n });\r\n // At this point we know that this code is running in the top-level window,\r\n // (not in iframe) so we can instantiate a fully-functional API:\r\n var sgwtConnect = (0, isScopeListed_1.isScopeListed)('openid', config.scope)\r\n ? new SGWTConnectCore_1.SGWTConnectCore(config, storage, (0, SGWTConnectOpenIDMetadata_1.createOpenIDMetadataFetcher)(config.authorization_endpoint))\r\n : new SGWTConnectCore_1.SGWTConnectCore(config, storage);\r\n // Checking if the authorization has been explicitly granted:\r\n if (sgwtConnect.isAuthorized()) {\r\n // The user-friendly behavior is to have periodical renewal enabled by default:\r\n return sgwtConnect.enablePeriodicalRenewal();\r\n }\r\n // Checking if the authorization has been explicitly denied:\r\n if (auth && auth.error) {\r\n if (auth.markedForDeletion) {\r\n storage.removeItem('AUTH');\r\n }\r\n else {\r\n auth.markedForDeletion = true;\r\n storage.setItem('AUTH', auth);\r\n }\r\n }\r\n return sgwtConnect;\r\n}\r\nexports.setupSGWTConnect = setupSGWTConnect;\r\n//# sourceMappingURL=setupSGWTConnect.js.map","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * @module SGWTConnectCore\r\n * @description\r\n * Entry point for all public APIs and interfaces of the @sgwt/connect-core package.\r\n */\r\n__exportStar(require(\"./src/SGWTConnectErrorList\"), exports);\r\n__exportStar(require(\"./src/SGWTConnectError\"), exports);\r\n__exportStar(require(\"./src/SGWTConnectEventList\"), exports);\r\n__exportStar(require(\"./src/SGWTConnectConfiguration\"), exports);\r\n__exportStar(require(\"./src/SGWTConnectStorage\"), exports);\r\n__exportStar(require(\"./src/SGWTConnectCore\"), exports);\r\n__exportStar(require(\"./src/SGWTConnectHash\"), exports);\r\n__exportStar(require(\"./src/SGWTConnectIdTokenClaims\"), exports);\r\n__exportStar(require(\"./src/SGWTConnectOpenIDUserInfo\"), exports);\r\n__exportStar(require(\"./src/setupSGWTConnect\"), exports);\r\n//# sourceMappingURL=index.js.map","import { ISGWTConnectConfiguration } from '@sgwt/connect-core';\n\nexport interface AppConfig {\n sgwt_env: 'homologation' | 'production';\n env: 'devci' | 'uatrc' | 'prod';\n apiUrl: string;\n streaming: {\n hubUrl: string;\n };\n redirect_uri: string;\n sgconnect: ISGWTConnectConfiguration;\n\n matomo: {\n url: string;\n siteid: string;\n };\n}\n\nexport function getConfig(): AppConfig {\n return window.sgmeConfiguration;\n}\n","import { setupSGWTConnect } from '@sgwt/connect-core';\nimport { getConfig } from '@/config/config';\n\nexport const sgwtConnect = setupSGWTConnect(getConfig().sgconnect);\n","import { SGWTConnectError } from '@sgwt/connect-core';\nimport { sgwtConnect } from '@/widgets/sgwtConnect';\nimport { SgwtConnectHTMLElement } from '@/types/sgwt-widgets';\n\nexport const BUS_TOPIC_GLOBALLANGUAGE = 'global.language';\nconst BUS_TOPIC_SGCONNECT_USERCONNECTION = 'sg-connect.user-connection';\nconst BUS_TOPIC_SGCONNECT_USERINFO = 'sg-connect.user-info';\nconst TOPIC_SGCONNECT_READY = 'sgwt-connect--ready';\n\ntype BusEventCallback = (payload: T | undefined) => void;\ntype SubscriptionHandle = any;\n\nexport interface SgWidgetsBus {\n dangerouslyGetCurrentValue(topicName: string): T | undefined | null;\n\n subscribe(topicName: string, cb: BusEventCallback): SubscriptionHandle;\n\n unsubscribe(handle: SubscriptionHandle): void;\n}\n\nexport function getWidgetBus(): SgWidgetsBus | null {\n const widgetConfiguration = (window as any).SGWTWidgetConfiguration;\n return widgetConfiguration && widgetConfiguration.bus ? widgetConfiguration.bus : null;\n}\n\ninterface UserConnection {\n connected: boolean;\n claims: Record;\n mail: string;\n}\n\nexport function getUserConnection(): UserConnection | undefined | null {\n const bus = getWidgetBus();\n if (bus) {\n return bus.dangerouslyGetCurrentValue(BUS_TOPIC_SGCONNECT_USERCONNECTION);\n }\n return undefined;\n}\n\ntype Subscribers = {\n onUserInfo: (userInfo: OnUserInfo | undefined) => void;\n};\n\nexport type OnUserInfo = {\n sesame_id: string;\n user_authorization: Authorization[];\n};\n\ntype Authorization = {\n resource: string;\n permissions: { name: string }[];\n};\n\nexport function requestAuthorization(\n onAuthorizedSuccess: () => void,\n onAuthorizationError: (authorizationError: SGWTConnectError) => void,\n subscribers: Subscribers,\n) {\n if (sgwtConnect.isAuthorized()) {\n setupSgwtConnectWidget();\n\n if ((window as any).SGWTWidgetConfiguration) {\n subscribeToWidgetBus(subscribers);\n }\n\n onAuthorizedSuccess();\n } else {\n const authorizationError = sgwtConnect.getAuthorizationError();\n\n if (authorizationError) {\n onAuthorizationError(authorizationError);\n } else {\n sgwtConnect.requestAuthorization();\n }\n }\n}\n\nfunction subscribeToWidgetBus({ onUserInfo }: Subscribers) {\n const bus = getWidgetBus();\n\n if (bus && onUserInfo) {\n bus.subscribe(BUS_TOPIC_SGCONNECT_USERINFO, onUserInfo);\n }\n}\n\nexport function setupSgwtConnectWidget() {\n const widget = document.querySelector('sgwt-connect');\n\n if (widget) {\n // When the code is executed, the swgtConnectWidget may not have been initialized. So, we need to check that, otherwise calling\n // `swgtConnectWidget.setSgwtConnectInstance()` will throw an error.\n if (typeof widget.setSgwtConnectInstance === 'undefined') {\n // Widget is not initialized yet, so we will wait the event that indicates the swgtConnectWidget is ready...\n const handleSgwtConnectReady = () => {\n widget.setSgwtConnectInstance(sgwtConnect);\n widget.removeEventListener(TOPIC_SGCONNECT_READY, handleSgwtConnectReady);\n };\n\n widget.addEventListener(TOPIC_SGCONNECT_READY, handleSgwtConnectReady);\n } else {\n // Widget is initialized...\n widget.setSgwtConnectInstance(sgwtConnect);\n }\n }\n}\n","import { Fragment, useEffect, useState } from 'react';\nimport { IntlProvider as ReactIntlProvider } from 'react-intl';\nimport { BUS_TOPIC_GLOBALLANGUAGE, getWidgetBus } from '@/widgets/widgets';\nimport en from '@/core/locale/en.json';\nimport fr from '@/core/locale/fr.json';\n\ntype SupportedLocale = 'en' | 'fr';\nexport const locales: Record> = {\n en,\n fr: { ...en, ...fr },\n};\n\nexport const IntlProvider = ({ children }: { children: JSX.Element }) => {\n const [locale, setLocale] = useState('en');\n\n // Use the SGWT Widgets bus to be aware of the modification of the language,\n // which is triggered by the widget.\n useEffect(() => {\n const bus = getWidgetBus();\n if (bus) {\n const languageSubscription = bus.subscribe(BUS_TOPIC_GLOBALLANGUAGE, (lang) => {\n if (lang && Object.keys(locales).includes(lang.toLowerCase())) {\n setLocale(lang.toLowerCase() as SupportedLocale);\n document.querySelector('html')!.lang = lang;\n }\n });\n return () => {\n bus.unsubscribe(languageSubscription);\n };\n }\n }, []);\n\n return (\n \n {children}\n \n );\n};\n","import { DateTime as LuxonDatetime } from 'luxon';\nimport { useContext } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { CurrentTimeContext } from '@/context/CurrentTimeContext';\n\nexport type TimeKpiProps = {\n labelId: string;\n local?: 'es-US' | 'fr';\n overrideDate?: LuxonDatetime;\n};\n\nconst labelStyle: React.CSSProperties = {\n fontSize: '14px',\n fontWeight: 500,\n lineHeight: '20px',\n letterSpacing: '0em',\n // textAlign: 'center',\n};\nexport function Clock({ labelId }: TimeKpiProps) {\n const currentTime = useContext(CurrentTimeContext);\n return (\n \n \n \n \n

{currentTime}

\n \n );\n}\n","import { DateTime as LuxonDatetime } from 'luxon';\nimport { FormattedMessage } from 'react-intl';\n\nexport type DateKpiProps = {\n local?: 'en-US' | 'fr';\n};\n\nconst labelStyle: React.CSSProperties = {\n fontSize: '14px',\n fontWeight: 500,\n lineHeight: '20px',\n letterSpacing: '0em',\n // verticalAlign: 'center'\n};\n\nexport function DateKpi({ local = 'en-US' }: DateKpiProps) {\n const now = LuxonDatetime.now().setLocale(local)\n .toFormat('dd LLL yyyy');\n return (\n
\n \n \n \n

{now}

\n
\n );\n}","\"use strict\";\n/***********************************************************************************\n * This file makes use of == and != to reduce the number of comparisons being done *\n * https://jsbench.me/j9lb449aak *\n ***********************************************************************************/\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.not = exports.makeUnionLitteralPredicate = exports.makeDiscriminatedUnionPredicate = exports.makeValuesPredicate = exports.isNonEmptyObject = exports.isEmptyObject = exports.isDefinedAndNonEmpty = exports.isNonEmpty = exports.isEmptyOrNotDefined = exports.isEmpty = exports.isString = exports.hasDefinedValue = exports.isNotDefined = exports.isDefined = void 0;\n/**\n * Check if parameter `x` is defined\n * @param x a nullable value\n * @returns `false` if it's null or undefined, `true` otherwise\n */\nfunction isDefined(x) {\n return x != null;\n}\nexports.isDefined = isDefined;\n/**\n * Check if parameter `x` is not defined\n * @param x a nullable value\n * @returns `true` if it's null or undefined, `false` otherwise\n */\nfunction isNotDefined(x) {\n return x == null;\n}\nexports.isNotDefined = isNotDefined;\n/**\n * Type predicate to check if an object's key has a defined value\n * @param key the key to check\n * @returns `true` if there is a defined value for `key`, `false` otherwise\n * This type predicate narrows the input object type\n * @example\n * const arr = [{a: 123}, {a: 'text'}, {a: null}, {a: undefined}, {b: 'value'}]\n */\nfunction hasDefinedValue(key) {\n return function definedValuePredicate(x) {\n return (x === null || x === void 0 ? void 0 : x[key]) != null;\n };\n}\nexports.hasDefinedValue = hasDefinedValue;\n/**\n * Check if parameter `x` is a string\n * @param x any value\n * @returns `true` if it's a string, `false` otherwise\n */\nfunction isString(x) {\n return typeof x === 'string';\n}\nexports.isString = isString;\nfunction isEmpty(x) {\n return x == null || !Boolean(x.length);\n}\nexports.isEmpty = isEmpty;\n/**\n * Check if parameter `x` is either not defined or empty\n * @param x a nullable string or array\n * @returns `true` if it's null or undefined or empty, `false` otherwise\n * @deprecated Use {@link isEmpty} instead\n */\nexports.isEmptyOrNotDefined = isEmpty;\nfunction isNonEmpty(x) {\n return x != null && Boolean(x.length);\n}\nexports.isNonEmpty = isNonEmpty;\n/**\n * Check if parameter `x` is defined and not empty\n * @param x a nullable string or array\n * @returns `false` if it's null or undefined or empty, `true` otherwise\n * @deprecated Use {@link isNonEmpty} instead\n */\nexports.isDefinedAndNonEmpty = isNonEmpty;\n/**\n * Check if parameter object is empty\n * @param x an object (not an array)\n * @returns `true` if it's empty, `false` otherwise\n */\nfunction isEmptyObject(x) {\n // https://stackoverflow.com/a/59787784/1654241 solution A\n for (const _key in x) {\n return false;\n }\n return true;\n}\nexports.isEmptyObject = isEmptyObject;\n/**\n * Check if parameter `x` is non empty\n * @param x an object\n * @returns `false` if it's empty, `true` otherwise\n */\nfunction isNonEmptyObject(x) {\n // https://stackoverflow.com/a/59787784/1654241 solution A\n for (const _key in x) {\n return true;\n }\n return false;\n}\nexports.isNonEmptyObject = isNonEmptyObject;\nfunction makeLookupTable(values) {\n const lookupTable = {};\n for (const value of values) {\n lookupTable[value] = true;\n }\n return lookupTable;\n}\n/**\n * Higher Order function which return a values predicate\n * @param values Array of all the possible values that the predicate should match\n * @returns A type predicate for the values\n *\n * Calling this function is O(n) and consumes a bit of memory for the lookup table\n */\nfunction makeValuesPredicate(values) {\n const lookupTable = makeLookupTable(values);\n /**\n * Values predicate\n * @param value a nullable string value\n * @returns `true` if `value` is among the values passed to create this predicate, `false` otherwise\n *\n * Calling this function is O(1)\n */\n return function isInValues(value) {\n var _a;\n return (_a = (value != null && lookupTable[value])) !== null && _a !== void 0 ? _a : false;\n };\n}\nexports.makeValuesPredicate = makeValuesPredicate;\n/**\n * Higher Order function which return a discriminated union predicate\n * @param key The key that discriminates the union\n * @param values Array of all the possible values of the discriminated union type that the predicate should match\n * @returns A type predicate for the discriminated union values\n *\n * Calling this function is O(n) and consumes a bit of memory for the lookup table\n */\nfunction makeDiscriminatedUnionPredicate(key, values) {\n const lookupTable = makeLookupTable(values);\n /**\n * Values predicate\n * @param value a discriminated union value\n * @returns `true` if `value` discriminated union key is among the values passed to create this predicate, `false` otherwise\n *\n * Calling this function is O(1)\n */\n return function isOutputValue(value) {\n var _a;\n return (_a = lookupTable[value[key]]) !== null && _a !== void 0 ? _a : false;\n };\n}\nexports.makeDiscriminatedUnionPredicate = makeDiscriminatedUnionPredicate;\n/**\n * Higher Order function which return a litteral union type predicate\n * @param allEnumValues Const array of all the union type litteral values\n * @returns A type predicate for the litteral union type\n * @deprecated Use {@link makeValuesPredicate} directly\n */\nexports.makeUnionLitteralPredicate = makeValuesPredicate;\nfunction not(predicate) {\n return function inversePredicate(arg) {\n return !predicate(arg);\n };\n}\nexports.not = not;\n//# sourceMappingURL=predicates.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assertUnreachable = exports.assertIsDefinedAndNonEmpty = exports.assertIsNonEmpty = exports.assertIsDefined = exports.makeAssert = void 0;\nconst predicates_1 = require(\"./predicates\");\nfunction makeAssert(predicate, defaultThrowMsg) {\n return function asserter(value, throwMsg) {\n if (!predicate(value)) {\n throw new Error(throwMsg !== null && throwMsg !== void 0 ? throwMsg : defaultThrowMsg);\n }\n };\n}\nexports.makeAssert = makeAssert;\n/**\n * Type assertion that will throw with throwMsg when value is null or undefined\n *\n * Useful with Typescript when you're pretty sure the value will be defined and want to throw when it's not and have type inference correctly know the value is defined after this call.\n * @param value a value that could be null or undefined\n * @param throwMsg {string} an optional more specific message that will be passed to the error constructor when the value is null or undefined\n * @throws This function will throw whenever `value` is `null` or `undefined`\n * @example\n * function example(value: string | null | undefined) {\n * assertIsDefined(value);\n * if (value.length !== 0) { // Typescript won't complain here\n * // do stuff with string value here\n * }\n * }\n */\nexports.assertIsDefined = makeAssert(predicates_1.isDefined, 'Value should be defined');\n/**\n * Type assertion that will throw with throwMsg when value is null or undefined or empty\n *\n * Useful with Typescript when you're pretty sure the value will be defined and non empty, and want to throw when it's not and have type inference correctly know the value is defined after this call.\n * @param value a nullable array or string\n * @param throwMsg {string} an optional more specific message that will be passed to the error constructor when the value is null or undefined\n * @throws This function will throw whenever `value` is `null` or `undefined` or empty\n * @example\n * function example(value: string[] | string | null | undefined) {\n * assertIsDefinedAndNonEmpty(value);\n * // value is guaranteed to be defined and non empty here\n * }\n */\nexports.assertIsNonEmpty = makeAssert(predicates_1.isNonEmpty, 'Value should be defined and non empty');\n/**\n * Type assertion that will throw with throwMsg when value is null or undefined or empty\n *\n * Useful with Typescript when you're pretty sure the value will be defined and non empty, and want to throw when it's not and have type inference correctly know the value is defined after this call.\n * @param value a value that could be null or undefined or empty\n * @param throwMsg {string} an optional more specific message that will be passed to the error constructor when the value is null or undefined\n * @throws This function will throw whenever `value` is `null` or `undefined`\n * @example\n * function example(value: string[] | string | null | undefined) {\n * assertIsDefinedAndNonEmpty(value);\n * // value is guaranteed to be defined and non empty here\n * }\n * @deprecated Use {@link assertIsNonEmpty} instead\n */\nexports.assertIsDefinedAndNonEmpty = exports.assertIsNonEmpty;\n/**\n * Function that should always be called in `default` `switch` on union type to make sure we have complete cases implementations and have Typescript notify you of missing cases when union type changes\n * @param _value {never} the value on which the `switch` is done\n * @param comment {string} a helpful comment for developers to understand what is happening\n * @throws This function will throw whenever it's called at runtime. It is used to detect when you add new values to your union type.\n * @example\n * function example(value: 'A' | 'B') {\n * switch(value) {\n * case 'A': break;\n * case 'B': break;\n * default: assertUnreachable(value, 'Unhandled new value in union type');\n * }\n * }\n */\nfunction assertUnreachable(_value, comment) {\n throw new Error(comment);\n}\nexports.assertUnreachable = assertUnreachable;\n//# sourceMappingURL=assertions.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toObject = void 0;\n/**\n * Generate an object from an array, key & value mappers\n * @param array The array\n * @param mapToKey Map to the key of the new object\n * @param mapToValue Map to the value of the new object\n * @returns A record of key/value generated by mapping the array with the passed mappers\n */\nfunction toObject(array, mapToKey, mapToValue) {\n // Implemented this way as it seems to have better performance https://jsbench.me/kalaw85v0i\n const obj = {};\n for (let index = 0; index < array.length; index++) {\n obj[mapToKey(array[index], index, array)] = mapToValue(array[index], index, array);\n }\n return obj;\n}\nexports.toObject = toObject;\n//# sourceMappingURL=object.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getClassNames = void 0;\nconst predicates_1 = require(\"./predicates\");\nfunction isValidClassName(x) {\n return (0, predicates_1.isNonEmpty)(x) && x !== false;\n}\n/**\n * Joins all given class names as one string, filtering undefined/null/empty class names.\n *\n * @param args list of class name\n * @returns all class names as string.\n */\nfunction getClassNames(...args) {\n return args.filter(isValidClassName).join(' ');\n}\nexports.getClassNames = getClassNames;\n//# sourceMappingURL=react.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.identity = exports.noop = exports.constant = void 0;\nfunction constant(value) {\n return () => value;\n}\nexports.constant = constant;\nfunction noop() {\n return undefined;\n}\nexports.noop = noop;\nfunction identity(x) {\n return x;\n}\nexports.identity = identity;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.clearUndefined = void 0;\n/**\n * Generate an object from an object with removed undefined property\n * @param obj\n * @returns\n */\nfunction clearUndefined(obj) {\n return Object.entries(obj).reduce((cleaned, [key, value]) => (value !== undefined ? Object.assign(cleaned, { [key]: value }) : cleaned), {});\n}\nexports.clearUndefined = clearUndefined;\n//# sourceMappingURL=clear.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./assertions\"), exports);\n__exportStar(require(\"./object\"), exports);\n__exportStar(require(\"./predicates\"), exports);\n__exportStar(require(\"./react\"), exports);\n__exportStar(require(\"./utils\"), exports);\n__exportStar(require(\"./clear\"), exports);\n//# sourceMappingURL=index.js.map","import { FC, ReactNode, useEffect } from 'react';\n\ntype GrowlProps = {\n onClose: () => void;\n title: string;\n bodyMessage: ReactNode;\n titleColor: 'danger' | 'warning';\n right?: number;\n top?: number;\n testId: string;\n autocloseGrowl?: () => void;\n};\nconst Growl: FC = ({\n testId,\n right,\n top,\n onClose,\n title,\n bodyMessage,\n titleColor,\n autocloseGrowl,\n}) => {\n useEffect(() => {\n if (autocloseGrowl) {\n setTimeout(() => autocloseGrowl(), 10000);\n }\n }, [autocloseGrowl]);\n\n return (\n \n
\n
\n {title}\n
\n \n close\n \n
\n
{bodyMessage}
\n \n );\n};\n\nexport default Growl;\n","/**\n * @license React\n * use-sync-external-store-with-selector.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var g=require(\"react\");function n(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var p=\"function\"===typeof Object.is?Object.is:n,q=g.useSyncExternalStore,r=g.useRef,t=g.useEffect,u=g.useMemo,v=g.useDebugValue;\nexports.useSyncExternalStoreWithSelector=function(a,b,e,l,h){var c=r(null);if(null===c.current){var f={hasValue:!1,value:null};c.current=f}else f=c.current;c=u(function(){function a(a){if(!c){c=!0;d=a;a=l(a);if(void 0!==h&&f.hasValue){var b=f.value;if(h(b,a))return k=b}return k=a}b=k;if(p(d,a))return b;var e=l(a);if(void 0!==h&&h(b,e))return b;d=a;return k=e}var c=!1,d,k,m=void 0===e?null:e;return[function(){return a(b())},null===m?void 0:function(){return a(m())}]},[b,e,l,h]);var d=q(a,c[0],c[1]);\nt(function(){f.hasValue=!0;f.value=d},[d]);v(d);return d};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/use-sync-external-store-with-selector.production.min.js');\n} else {\n module.exports = require('./cjs/use-sync-external-store-with-selector.development.js');\n}\n","// src/index.ts\nimport * as React2 from \"react\";\nimport { useSyncExternalStoreWithSelector as useSyncExternalStoreWithSelector2 } from \"use-sync-external-store/with-selector.js\";\n\n// src/utils/react.ts\nimport * as ReactOriginal from \"react\";\nvar React = (\n // prettier-ignore\n // @ts-ignore\n \"default\" in ReactOriginal ? ReactOriginal[\"default\"] : ReactOriginal\n);\n\n// src/components/Context.ts\nvar ContextKey = Symbol.for(`react-redux-context`);\nvar gT = typeof globalThis !== \"undefined\" ? globalThis : (\n /* fall back to a per-module scope (pre-8.1 behaviour) if `globalThis` is not available */\n {}\n);\nfunction getContext() {\n if (!React.createContext)\n return {};\n const contextMap = gT[ContextKey] ?? (gT[ContextKey] = /* @__PURE__ */ new Map());\n let realContext = contextMap.get(React.createContext);\n if (!realContext) {\n realContext = React.createContext(\n null\n );\n if (process.env.NODE_ENV !== \"production\") {\n realContext.displayName = \"ReactRedux\";\n }\n contextMap.set(React.createContext, realContext);\n }\n return realContext;\n}\nvar ReactReduxContext = /* @__PURE__ */ getContext();\n\n// src/utils/useSyncExternalStore.ts\nvar notInitialized = () => {\n throw new Error(\"uSES not initialized!\");\n};\n\n// src/hooks/useReduxContext.ts\nfunction createReduxContextHook(context = ReactReduxContext) {\n return function useReduxContext2() {\n const contextValue = React.useContext(context);\n if (process.env.NODE_ENV !== \"production\" && !contextValue) {\n throw new Error(\n \"could not find react-redux context value; please ensure the component is wrapped in a \"\n );\n }\n return contextValue;\n };\n}\nvar useReduxContext = /* @__PURE__ */ createReduxContextHook();\n\n// src/hooks/useSelector.ts\nvar useSyncExternalStoreWithSelector = notInitialized;\nvar initializeUseSelector = (fn) => {\n useSyncExternalStoreWithSelector = fn;\n};\nvar refEquality = (a, b) => a === b;\nfunction createSelectorHook(context = ReactReduxContext) {\n const useReduxContext2 = context === ReactReduxContext ? useReduxContext : createReduxContextHook(context);\n const useSelector2 = (selector, equalityFnOrOptions = {}) => {\n const { equalityFn = refEquality, devModeChecks = {} } = typeof equalityFnOrOptions === \"function\" ? { equalityFn: equalityFnOrOptions } : equalityFnOrOptions;\n if (process.env.NODE_ENV !== \"production\") {\n if (!selector) {\n throw new Error(`You must pass a selector to useSelector`);\n }\n if (typeof selector !== \"function\") {\n throw new Error(`You must pass a function as a selector to useSelector`);\n }\n if (typeof equalityFn !== \"function\") {\n throw new Error(\n `You must pass a function as an equality function to useSelector`\n );\n }\n }\n const {\n store,\n subscription,\n getServerState,\n stabilityCheck,\n identityFunctionCheck\n } = useReduxContext2();\n const firstRun = React.useRef(true);\n const wrappedSelector = React.useCallback(\n {\n [selector.name](state) {\n const selected = selector(state);\n if (process.env.NODE_ENV !== \"production\") {\n const {\n identityFunctionCheck: finalIdentityFunctionCheck,\n stabilityCheck: finalStabilityCheck\n } = {\n stabilityCheck,\n identityFunctionCheck,\n ...devModeChecks\n };\n if (finalStabilityCheck === \"always\" || finalStabilityCheck === \"once\" && firstRun.current) {\n const toCompare = selector(state);\n if (!equalityFn(selected, toCompare)) {\n let stack = void 0;\n try {\n throw new Error();\n } catch (e) {\n ;\n ({ stack } = e);\n }\n console.warn(\n \"Selector \" + (selector.name || \"unknown\") + \" returned a different result when called with the same parameters. This can lead to unnecessary rerenders.\\nSelectors that return a new reference (such as an object or an array) should be memoized: https://redux.js.org/usage/deriving-data-selectors#optimizing-selectors-with-memoization\",\n {\n state,\n selected,\n selected2: toCompare,\n stack\n }\n );\n }\n }\n if (finalIdentityFunctionCheck === \"always\" || finalIdentityFunctionCheck === \"once\" && firstRun.current) {\n if (selected === state) {\n let stack = void 0;\n try {\n throw new Error();\n } catch (e) {\n ;\n ({ stack } = e);\n }\n console.warn(\n \"Selector \" + (selector.name || \"unknown\") + \" returned the root state when called. This can lead to unnecessary rerenders.\\nSelectors that return the entire state are almost certainly a mistake, as they will cause a rerender whenever *anything* in state changes.\",\n { stack }\n );\n }\n }\n if (firstRun.current)\n firstRun.current = false;\n }\n return selected;\n }\n }[selector.name],\n [selector, stabilityCheck, devModeChecks.stabilityCheck]\n );\n const selectedState = useSyncExternalStoreWithSelector(\n subscription.addNestedSub,\n store.getState,\n getServerState || store.getState,\n wrappedSelector,\n equalityFn\n );\n React.useDebugValue(selectedState);\n return selectedState;\n };\n Object.assign(useSelector2, {\n withTypes: () => useSelector2\n });\n return useSelector2;\n}\nvar useSelector = /* @__PURE__ */ createSelectorHook();\n\n// src/utils/react-is.ts\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.element\");\nvar REACT_PORTAL_TYPE = Symbol.for(\"react.portal\");\nvar REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nvar REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\");\nvar REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\nvar REACT_PROVIDER_TYPE = Symbol.for(\"react.provider\");\nvar REACT_CONTEXT_TYPE = Symbol.for(\"react.context\");\nvar REACT_SERVER_CONTEXT_TYPE = Symbol.for(\"react.server_context\");\nvar REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\");\nvar REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\");\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\");\nvar REACT_MEMO_TYPE = Symbol.for(\"react.memo\");\nvar REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\nvar REACT_OFFSCREEN_TYPE = Symbol.for(\"react.offscreen\");\nvar REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\");\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nfunction isValidElementType(type) {\n if (typeof type === \"string\" || typeof type === \"function\") {\n return true;\n }\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || type === REACT_OFFSCREEN_TYPE) {\n return true;\n }\n if (typeof type === \"object\" && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n // types supported by any Flight configuration anywhere since\n // we don't know which Flight build this will end up being used\n // with.\n type.$$typeof === REACT_CLIENT_REFERENCE || type.getModuleId !== void 0) {\n return true;\n }\n }\n return false;\n}\nfunction typeOf(object) {\n if (typeof object === \"object\" && object !== null) {\n const $$typeof = object.$$typeof;\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE: {\n const type = object.type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n return type;\n default: {\n const $$typeofType = type && type.$$typeof;\n switch ($$typeofType) {\n case REACT_SERVER_CONTEXT_TYPE:\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n default:\n return $$typeof;\n }\n }\n }\n }\n case REACT_PORTAL_TYPE: {\n return $$typeof;\n }\n }\n }\n return void 0;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\n\n// src/utils/warning.ts\nfunction warning(message) {\n if (typeof console !== \"undefined\" && typeof console.error === \"function\") {\n console.error(message);\n }\n try {\n throw new Error(message);\n } catch (e) {\n }\n}\n\n// src/connect/verifySubselectors.ts\nfunction verify(selector, methodName) {\n if (!selector) {\n throw new Error(`Unexpected value for ${methodName} in connect.`);\n } else if (methodName === \"mapStateToProps\" || methodName === \"mapDispatchToProps\") {\n if (!Object.prototype.hasOwnProperty.call(selector, \"dependsOnOwnProps\")) {\n warning(\n `The selector for ${methodName} of connect did not specify a value for dependsOnOwnProps.`\n );\n }\n }\n}\nfunction verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps) {\n verify(mapStateToProps, \"mapStateToProps\");\n verify(mapDispatchToProps, \"mapDispatchToProps\");\n verify(mergeProps, \"mergeProps\");\n}\n\n// src/connect/selectorFactory.ts\nfunction pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, {\n areStatesEqual,\n areOwnPropsEqual,\n areStatePropsEqual\n}) {\n let hasRunAtLeastOnce = false;\n let state;\n let ownProps;\n let stateProps;\n let dispatchProps;\n let mergedProps;\n function handleFirstCall(firstState, firstOwnProps) {\n state = firstState;\n ownProps = firstOwnProps;\n stateProps = mapStateToProps(state, ownProps);\n dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n hasRunAtLeastOnce = true;\n return mergedProps;\n }\n function handleNewPropsAndNewState() {\n stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps)\n dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n function handleNewProps() {\n if (mapStateToProps.dependsOnOwnProps)\n stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps)\n dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n function handleNewState() {\n const nextStateProps = mapStateToProps(state, ownProps);\n const statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps);\n stateProps = nextStateProps;\n if (statePropsChanged)\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n function handleSubsequentCalls(nextState, nextOwnProps) {\n const propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps);\n const stateChanged = !areStatesEqual(\n nextState,\n state,\n nextOwnProps,\n ownProps\n );\n state = nextState;\n ownProps = nextOwnProps;\n if (propsChanged && stateChanged)\n return handleNewPropsAndNewState();\n if (propsChanged)\n return handleNewProps();\n if (stateChanged)\n return handleNewState();\n return mergedProps;\n }\n return function pureFinalPropsSelector(nextState, nextOwnProps) {\n return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps);\n };\n}\nfunction finalPropsSelectorFactory(dispatch, {\n initMapStateToProps,\n initMapDispatchToProps,\n initMergeProps,\n ...options\n}) {\n const mapStateToProps = initMapStateToProps(dispatch, options);\n const mapDispatchToProps = initMapDispatchToProps(dispatch, options);\n const mergeProps = initMergeProps(dispatch, options);\n if (process.env.NODE_ENV !== \"production\") {\n verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps);\n }\n return pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options);\n}\n\n// src/utils/bindActionCreators.ts\nfunction bindActionCreators(actionCreators, dispatch) {\n const boundActionCreators = {};\n for (const key in actionCreators) {\n const actionCreator = actionCreators[key];\n if (typeof actionCreator === \"function\") {\n boundActionCreators[key] = (...args) => dispatch(actionCreator(...args));\n }\n }\n return boundActionCreators;\n}\n\n// src/utils/isPlainObject.ts\nfunction isPlainObject(obj) {\n if (typeof obj !== \"object\" || obj === null)\n return false;\n const proto = Object.getPrototypeOf(obj);\n if (proto === null)\n return true;\n let baseProto = proto;\n while (Object.getPrototypeOf(baseProto) !== null) {\n baseProto = Object.getPrototypeOf(baseProto);\n }\n return proto === baseProto;\n}\n\n// src/utils/verifyPlainObject.ts\nfunction verifyPlainObject(value, displayName, methodName) {\n if (!isPlainObject(value)) {\n warning(\n `${methodName}() in ${displayName} must return a plain object. Instead received ${value}.`\n );\n }\n}\n\n// src/connect/wrapMapToProps.ts\nfunction wrapMapToPropsConstant(getConstant) {\n return function initConstantSelector(dispatch) {\n const constant = getConstant(dispatch);\n function constantSelector() {\n return constant;\n }\n constantSelector.dependsOnOwnProps = false;\n return constantSelector;\n };\n}\nfunction getDependsOnOwnProps(mapToProps) {\n return mapToProps.dependsOnOwnProps ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1;\n}\nfunction wrapMapToPropsFunc(mapToProps, methodName) {\n return function initProxySelector(dispatch, { displayName }) {\n const proxy = function mapToPropsProxy(stateOrDispatch, ownProps) {\n return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch, void 0);\n };\n proxy.dependsOnOwnProps = true;\n proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) {\n proxy.mapToProps = mapToProps;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps);\n let props = proxy(stateOrDispatch, ownProps);\n if (typeof props === \"function\") {\n proxy.mapToProps = props;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(props);\n props = proxy(stateOrDispatch, ownProps);\n }\n if (process.env.NODE_ENV !== \"production\")\n verifyPlainObject(props, displayName, methodName);\n return props;\n };\n return proxy;\n };\n}\n\n// src/connect/invalidArgFactory.ts\nfunction createInvalidArgFactory(arg, name) {\n return (dispatch, options) => {\n throw new Error(\n `Invalid value of type ${typeof arg} for ${name} argument when connecting component ${options.wrappedComponentName}.`\n );\n };\n}\n\n// src/connect/mapDispatchToProps.ts\nfunction mapDispatchToPropsFactory(mapDispatchToProps) {\n return mapDispatchToProps && typeof mapDispatchToProps === \"object\" ? wrapMapToPropsConstant(\n (dispatch) => (\n // @ts-ignore\n bindActionCreators(mapDispatchToProps, dispatch)\n )\n ) : !mapDispatchToProps ? wrapMapToPropsConstant((dispatch) => ({\n dispatch\n })) : typeof mapDispatchToProps === \"function\" ? (\n // @ts-ignore\n wrapMapToPropsFunc(mapDispatchToProps, \"mapDispatchToProps\")\n ) : createInvalidArgFactory(mapDispatchToProps, \"mapDispatchToProps\");\n}\n\n// src/connect/mapStateToProps.ts\nfunction mapStateToPropsFactory(mapStateToProps) {\n return !mapStateToProps ? wrapMapToPropsConstant(() => ({})) : typeof mapStateToProps === \"function\" ? (\n // @ts-ignore\n wrapMapToPropsFunc(mapStateToProps, \"mapStateToProps\")\n ) : createInvalidArgFactory(mapStateToProps, \"mapStateToProps\");\n}\n\n// src/connect/mergeProps.ts\nfunction defaultMergeProps(stateProps, dispatchProps, ownProps) {\n return { ...ownProps, ...stateProps, ...dispatchProps };\n}\nfunction wrapMergePropsFunc(mergeProps) {\n return function initMergePropsProxy(dispatch, { displayName, areMergedPropsEqual }) {\n let hasRunOnce = false;\n let mergedProps;\n return function mergePropsProxy(stateProps, dispatchProps, ownProps) {\n const nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n if (hasRunOnce) {\n if (!areMergedPropsEqual(nextMergedProps, mergedProps))\n mergedProps = nextMergedProps;\n } else {\n hasRunOnce = true;\n mergedProps = nextMergedProps;\n if (process.env.NODE_ENV !== \"production\")\n verifyPlainObject(mergedProps, displayName, \"mergeProps\");\n }\n return mergedProps;\n };\n };\n}\nfunction mergePropsFactory(mergeProps) {\n return !mergeProps ? () => defaultMergeProps : typeof mergeProps === \"function\" ? wrapMergePropsFunc(mergeProps) : createInvalidArgFactory(mergeProps, \"mergeProps\");\n}\n\n// src/utils/batch.ts\nfunction defaultNoopBatch(callback) {\n callback();\n}\n\n// src/utils/Subscription.ts\nfunction createListenerCollection() {\n let first = null;\n let last = null;\n return {\n clear() {\n first = null;\n last = null;\n },\n notify() {\n defaultNoopBatch(() => {\n let listener = first;\n while (listener) {\n listener.callback();\n listener = listener.next;\n }\n });\n },\n get() {\n const listeners = [];\n let listener = first;\n while (listener) {\n listeners.push(listener);\n listener = listener.next;\n }\n return listeners;\n },\n subscribe(callback) {\n let isSubscribed = true;\n const listener = last = {\n callback,\n next: null,\n prev: last\n };\n if (listener.prev) {\n listener.prev.next = listener;\n } else {\n first = listener;\n }\n return function unsubscribe() {\n if (!isSubscribed || first === null)\n return;\n isSubscribed = false;\n if (listener.next) {\n listener.next.prev = listener.prev;\n } else {\n last = listener.prev;\n }\n if (listener.prev) {\n listener.prev.next = listener.next;\n } else {\n first = listener.next;\n }\n };\n }\n };\n}\nvar nullListeners = {\n notify() {\n },\n get: () => []\n};\nfunction createSubscription(store, parentSub) {\n let unsubscribe;\n let listeners = nullListeners;\n let subscriptionsAmount = 0;\n let selfSubscribed = false;\n function addNestedSub(listener) {\n trySubscribe();\n const cleanupListener = listeners.subscribe(listener);\n let removed = false;\n return () => {\n if (!removed) {\n removed = true;\n cleanupListener();\n tryUnsubscribe();\n }\n };\n }\n function notifyNestedSubs() {\n listeners.notify();\n }\n function handleChangeWrapper() {\n if (subscription.onStateChange) {\n subscription.onStateChange();\n }\n }\n function isSubscribed() {\n return selfSubscribed;\n }\n function trySubscribe() {\n subscriptionsAmount++;\n if (!unsubscribe) {\n unsubscribe = parentSub ? parentSub.addNestedSub(handleChangeWrapper) : store.subscribe(handleChangeWrapper);\n listeners = createListenerCollection();\n }\n }\n function tryUnsubscribe() {\n subscriptionsAmount--;\n if (unsubscribe && subscriptionsAmount === 0) {\n unsubscribe();\n unsubscribe = void 0;\n listeners.clear();\n listeners = nullListeners;\n }\n }\n function trySubscribeSelf() {\n if (!selfSubscribed) {\n selfSubscribed = true;\n trySubscribe();\n }\n }\n function tryUnsubscribeSelf() {\n if (selfSubscribed) {\n selfSubscribed = false;\n tryUnsubscribe();\n }\n }\n const subscription = {\n addNestedSub,\n notifyNestedSubs,\n handleChangeWrapper,\n isSubscribed,\n trySubscribe: trySubscribeSelf,\n tryUnsubscribe: tryUnsubscribeSelf,\n getListeners: () => listeners\n };\n return subscription;\n}\n\n// src/utils/useIsomorphicLayoutEffect.ts\nvar canUseDOM = !!(typeof window !== \"undefined\" && typeof window.document !== \"undefined\" && typeof window.document.createElement !== \"undefined\");\nvar useIsomorphicLayoutEffect = canUseDOM ? React.useLayoutEffect : React.useEffect;\n\n// src/utils/shallowEqual.ts\nfunction is(x, y) {\n if (x === y) {\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\nfunction shallowEqual(objA, objB) {\n if (is(objA, objB))\n return true;\n if (typeof objA !== \"object\" || objA === null || typeof objB !== \"object\" || objB === null) {\n return false;\n }\n const keysA = Object.keys(objA);\n const keysB = Object.keys(objB);\n if (keysA.length !== keysB.length)\n return false;\n for (let i = 0; i < keysA.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n return true;\n}\n\n// src/utils/hoistStatics.ts\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n $$typeof: true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n $$typeof: true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {\n [ForwardRef]: FORWARD_REF_STATICS,\n [Memo]: MEMO_STATICS\n};\nfunction getStatics(component) {\n if (isMemo(component)) {\n return MEMO_STATICS;\n }\n return TYPE_STATICS[component[\"$$typeof\"]] || REACT_STATICS;\n}\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent) {\n if (typeof sourceComponent !== \"string\") {\n if (objectPrototype) {\n const inheritedComponent = getPrototypeOf(sourceComponent);\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent);\n }\n }\n let keys = getOwnPropertyNames(sourceComponent);\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n const targetStatics = getStatics(targetComponent);\n const sourceStatics = getStatics(sourceComponent);\n for (let i = 0; i < keys.length; ++i) {\n const key = keys[i];\n if (!KNOWN_STATICS[key] && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n const descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n try {\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {\n }\n }\n }\n }\n return targetComponent;\n}\n\n// src/components/connect.tsx\nvar useSyncExternalStore = notInitialized;\nvar initializeConnect = (fn) => {\n useSyncExternalStore = fn;\n};\nvar NO_SUBSCRIPTION_ARRAY = [null, null];\nvar stringifyComponent = (Comp) => {\n try {\n return JSON.stringify(Comp);\n } catch (err) {\n return String(Comp);\n }\n};\nfunction useIsomorphicLayoutEffectWithArgs(effectFunc, effectArgs, dependencies) {\n useIsomorphicLayoutEffect(() => effectFunc(...effectArgs), dependencies);\n}\nfunction captureWrapperProps(lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, childPropsFromStoreUpdate, notifyNestedSubs) {\n lastWrapperProps.current = wrapperProps;\n renderIsScheduled.current = false;\n if (childPropsFromStoreUpdate.current) {\n childPropsFromStoreUpdate.current = null;\n notifyNestedSubs();\n }\n}\nfunction subscribeUpdates(shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, isMounted, childPropsFromStoreUpdate, notifyNestedSubs, additionalSubscribeListener) {\n if (!shouldHandleStateChanges)\n return () => {\n };\n let didUnsubscribe = false;\n let lastThrownError = null;\n const checkForUpdates = () => {\n if (didUnsubscribe || !isMounted.current) {\n return;\n }\n const latestStoreState = store.getState();\n let newChildProps, error;\n try {\n newChildProps = childPropsSelector(\n latestStoreState,\n lastWrapperProps.current\n );\n } catch (e) {\n error = e;\n lastThrownError = e;\n }\n if (!error) {\n lastThrownError = null;\n }\n if (newChildProps === lastChildProps.current) {\n if (!renderIsScheduled.current) {\n notifyNestedSubs();\n }\n } else {\n lastChildProps.current = newChildProps;\n childPropsFromStoreUpdate.current = newChildProps;\n renderIsScheduled.current = true;\n additionalSubscribeListener();\n }\n };\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe();\n checkForUpdates();\n const unsubscribeWrapper = () => {\n didUnsubscribe = true;\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n if (lastThrownError) {\n throw lastThrownError;\n }\n };\n return unsubscribeWrapper;\n}\nfunction strictEqual(a, b) {\n return a === b;\n}\nvar hasWarnedAboutDeprecatedPureOption = false;\nfunction connect(mapStateToProps, mapDispatchToProps, mergeProps, {\n // The `pure` option has been removed, so TS doesn't like us destructuring this to check its existence.\n // @ts-ignore\n pure,\n areStatesEqual = strictEqual,\n areOwnPropsEqual = shallowEqual,\n areStatePropsEqual = shallowEqual,\n areMergedPropsEqual = shallowEqual,\n // use React's forwardRef to expose a ref of the wrapped component\n forwardRef = false,\n // the context consumer to use\n context = ReactReduxContext\n} = {}) {\n if (process.env.NODE_ENV !== \"production\") {\n if (pure !== void 0 && !hasWarnedAboutDeprecatedPureOption) {\n hasWarnedAboutDeprecatedPureOption = true;\n warning(\n 'The `pure` option has been removed. `connect` is now always a \"pure/memoized\" component'\n );\n }\n }\n const Context = context;\n const initMapStateToProps = mapStateToPropsFactory(mapStateToProps);\n const initMapDispatchToProps = mapDispatchToPropsFactory(mapDispatchToProps);\n const initMergeProps = mergePropsFactory(mergeProps);\n const shouldHandleStateChanges = Boolean(mapStateToProps);\n const wrapWithConnect = (WrappedComponent) => {\n if (process.env.NODE_ENV !== \"production\") {\n const isValid = /* @__PURE__ */ isValidElementType(WrappedComponent);\n if (!isValid)\n throw new Error(\n `You must pass a component to the function returned by connect. Instead received ${stringifyComponent(\n WrappedComponent\n )}`\n );\n }\n const wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || \"Component\";\n const displayName = `Connect(${wrappedComponentName})`;\n const selectorFactoryOptions = {\n shouldHandleStateChanges,\n displayName,\n wrappedComponentName,\n WrappedComponent,\n // @ts-ignore\n initMapStateToProps,\n // @ts-ignore\n initMapDispatchToProps,\n initMergeProps,\n areStatesEqual,\n areStatePropsEqual,\n areOwnPropsEqual,\n areMergedPropsEqual\n };\n function ConnectFunction(props) {\n const [propsContext, reactReduxForwardedRef, wrapperProps] = React.useMemo(() => {\n const { reactReduxForwardedRef: reactReduxForwardedRef2, ...wrapperProps2 } = props;\n return [props.context, reactReduxForwardedRef2, wrapperProps2];\n }, [props]);\n const ContextToUse = React.useMemo(() => {\n let ResultContext = Context;\n if (propsContext?.Consumer) {\n if (process.env.NODE_ENV !== \"production\") {\n const isValid = /* @__PURE__ */ isContextConsumer(\n // @ts-ignore\n /* @__PURE__ */ React.createElement(propsContext.Consumer, null)\n );\n if (!isValid) {\n throw new Error(\n \"You must pass a valid React context consumer as `props.context`\"\n );\n }\n ResultContext = propsContext;\n }\n }\n return ResultContext;\n }, [propsContext, Context]);\n const contextValue = React.useContext(ContextToUse);\n const didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch);\n const didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store);\n if (process.env.NODE_ENV !== \"production\" && !didStoreComeFromProps && !didStoreComeFromContext) {\n throw new Error(\n `Could not find \"store\" in the context of \"${displayName}\". Either wrap the root component in a , or pass a custom React context provider to and the corresponding React context consumer to ${displayName} in connect options.`\n );\n }\n const store = didStoreComeFromProps ? props.store : contextValue.store;\n const getServerState = didStoreComeFromContext ? contextValue.getServerState : store.getState;\n const childPropsSelector = React.useMemo(() => {\n return finalPropsSelectorFactory(store.dispatch, selectorFactoryOptions);\n }, [store]);\n const [subscription, notifyNestedSubs] = React.useMemo(() => {\n if (!shouldHandleStateChanges)\n return NO_SUBSCRIPTION_ARRAY;\n const subscription2 = createSubscription(\n store,\n didStoreComeFromProps ? void 0 : contextValue.subscription\n );\n const notifyNestedSubs2 = subscription2.notifyNestedSubs.bind(subscription2);\n return [subscription2, notifyNestedSubs2];\n }, [store, didStoreComeFromProps, contextValue]);\n const overriddenContextValue = React.useMemo(() => {\n if (didStoreComeFromProps) {\n return contextValue;\n }\n return {\n ...contextValue,\n subscription\n };\n }, [didStoreComeFromProps, contextValue, subscription]);\n const lastChildProps = React.useRef();\n const lastWrapperProps = React.useRef(wrapperProps);\n const childPropsFromStoreUpdate = React.useRef();\n const renderIsScheduled = React.useRef(false);\n const isProcessingDispatch = React.useRef(false);\n const isMounted = React.useRef(false);\n const latestSubscriptionCallbackError = React.useRef();\n useIsomorphicLayoutEffect(() => {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n }, []);\n const actualChildPropsSelector = React.useMemo(() => {\n const selector = () => {\n if (childPropsFromStoreUpdate.current && wrapperProps === lastWrapperProps.current) {\n return childPropsFromStoreUpdate.current;\n }\n return childPropsSelector(store.getState(), wrapperProps);\n };\n return selector;\n }, [store, wrapperProps]);\n const subscribeForReact = React.useMemo(() => {\n const subscribe = (reactListener) => {\n if (!subscription) {\n return () => {\n };\n }\n return subscribeUpdates(\n shouldHandleStateChanges,\n store,\n subscription,\n // @ts-ignore\n childPropsSelector,\n lastWrapperProps,\n lastChildProps,\n renderIsScheduled,\n isMounted,\n childPropsFromStoreUpdate,\n notifyNestedSubs,\n reactListener\n );\n };\n return subscribe;\n }, [subscription]);\n useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [\n lastWrapperProps,\n lastChildProps,\n renderIsScheduled,\n wrapperProps,\n childPropsFromStoreUpdate,\n notifyNestedSubs\n ]);\n let actualChildProps;\n try {\n actualChildProps = useSyncExternalStore(\n // TODO We're passing through a big wrapper that does a bunch of extra side effects besides subscribing\n subscribeForReact,\n // TODO This is incredibly hacky. We've already processed the store update and calculated new child props,\n // TODO and we're just passing that through so it triggers a re-render for us rather than relying on `uSES`.\n actualChildPropsSelector,\n getServerState ? () => childPropsSelector(getServerState(), wrapperProps) : actualChildPropsSelector\n );\n } catch (err) {\n if (latestSubscriptionCallbackError.current) {\n ;\n err.message += `\nThe error may be correlated with this previous error:\n${latestSubscriptionCallbackError.current.stack}\n\n`;\n }\n throw err;\n }\n useIsomorphicLayoutEffect(() => {\n latestSubscriptionCallbackError.current = void 0;\n childPropsFromStoreUpdate.current = void 0;\n lastChildProps.current = actualChildProps;\n });\n const renderedWrappedComponent = React.useMemo(() => {\n return (\n // @ts-ignore\n /* @__PURE__ */ React.createElement(\n WrappedComponent,\n {\n ...actualChildProps,\n ref: reactReduxForwardedRef\n }\n )\n );\n }, [reactReduxForwardedRef, WrappedComponent, actualChildProps]);\n const renderedChild = React.useMemo(() => {\n if (shouldHandleStateChanges) {\n return /* @__PURE__ */ React.createElement(ContextToUse.Provider, { value: overriddenContextValue }, renderedWrappedComponent);\n }\n return renderedWrappedComponent;\n }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]);\n return renderedChild;\n }\n const _Connect = React.memo(ConnectFunction);\n const Connect = _Connect;\n Connect.WrappedComponent = WrappedComponent;\n Connect.displayName = ConnectFunction.displayName = displayName;\n if (forwardRef) {\n const _forwarded = React.forwardRef(function forwardConnectRef(props, ref) {\n return /* @__PURE__ */ React.createElement(Connect, { ...props, reactReduxForwardedRef: ref });\n });\n const forwarded = _forwarded;\n forwarded.displayName = displayName;\n forwarded.WrappedComponent = WrappedComponent;\n return /* @__PURE__ */ hoistNonReactStatics(forwarded, WrappedComponent);\n }\n return /* @__PURE__ */ hoistNonReactStatics(Connect, WrappedComponent);\n };\n return wrapWithConnect;\n}\nvar connect_default = connect;\n\n// src/components/Provider.tsx\nfunction Provider({\n store,\n context,\n children,\n serverState,\n stabilityCheck = \"once\",\n identityFunctionCheck = \"once\"\n}) {\n const contextValue = React.useMemo(() => {\n const subscription = createSubscription(store);\n return {\n store,\n subscription,\n getServerState: serverState ? () => serverState : void 0,\n stabilityCheck,\n identityFunctionCheck\n };\n }, [store, serverState, stabilityCheck, identityFunctionCheck]);\n const previousState = React.useMemo(() => store.getState(), [store]);\n useIsomorphicLayoutEffect(() => {\n const { subscription } = contextValue;\n subscription.onStateChange = subscription.notifyNestedSubs;\n subscription.trySubscribe();\n if (previousState !== store.getState()) {\n subscription.notifyNestedSubs();\n }\n return () => {\n subscription.tryUnsubscribe();\n subscription.onStateChange = void 0;\n };\n }, [contextValue, previousState]);\n const Context = context || ReactReduxContext;\n return /* @__PURE__ */ React.createElement(Context.Provider, { value: contextValue }, children);\n}\nvar Provider_default = Provider;\n\n// src/hooks/useStore.ts\nfunction createStoreHook(context = ReactReduxContext) {\n const useReduxContext2 = context === ReactReduxContext ? useReduxContext : (\n // @ts-ignore\n createReduxContextHook(context)\n );\n const useStore2 = () => {\n const { store } = useReduxContext2();\n return store;\n };\n Object.assign(useStore2, {\n withTypes: () => useStore2\n });\n return useStore2;\n}\nvar useStore = /* @__PURE__ */ createStoreHook();\n\n// src/hooks/useDispatch.ts\nfunction createDispatchHook(context = ReactReduxContext) {\n const useStore2 = context === ReactReduxContext ? useStore : createStoreHook(context);\n const useDispatch2 = () => {\n const store = useStore2();\n return store.dispatch;\n };\n Object.assign(useDispatch2, {\n withTypes: () => useDispatch2\n });\n return useDispatch2;\n}\nvar useDispatch = /* @__PURE__ */ createDispatchHook();\n\n// src/exports.ts\nvar batch = defaultNoopBatch;\n\n// src/index.ts\ninitializeUseSelector(useSyncExternalStoreWithSelector2);\ninitializeConnect(React2.useSyncExternalStore);\nexport {\n Provider_default as Provider,\n ReactReduxContext,\n batch,\n connect_default as connect,\n createDispatchHook,\n createSelectorHook,\n createStoreHook,\n shallowEqual,\n useDispatch,\n useSelector,\n useStore\n};\n//# sourceMappingURL=react-redux.mjs.map","import { TypedUseSelectorHook, useDispatch, useSelector } from 'react-redux';\nimport type { RootState, AppDispatch } from '@/state/store';\n\n// Use throughout your app instead of plain `useDispatch` and `useSelector`\nexport const useAppDispatch: () => AppDispatch = useDispatch;\nexport const useAppSelector: TypedUseSelectorHook = useSelector;\n","// src/utils/formatProdErrorMessage.ts\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// src/utils/symbol-observable.ts\nvar $$observable = /* @__PURE__ */ (() => typeof Symbol === \"function\" && Symbol.observable || \"@@observable\")();\nvar symbol_observable_default = $$observable;\n\n// src/utils/actionTypes.ts\nvar randomString = () => Math.random().toString(36).substring(7).split(\"\").join(\".\");\nvar ActionTypes = {\n INIT: `@@redux/INIT${/* @__PURE__ */ randomString()}`,\n REPLACE: `@@redux/REPLACE${/* @__PURE__ */ randomString()}`,\n PROBE_UNKNOWN_ACTION: () => `@@redux/PROBE_UNKNOWN_ACTION${randomString()}`\n};\nvar actionTypes_default = ActionTypes;\n\n// src/utils/isPlainObject.ts\nfunction isPlainObject(obj) {\n if (typeof obj !== \"object\" || obj === null)\n return false;\n let proto = obj;\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(obj) === proto || Object.getPrototypeOf(obj) === null;\n}\n\n// src/utils/kindOf.ts\nfunction miniKindOf(val) {\n if (val === void 0)\n return \"undefined\";\n if (val === null)\n return \"null\";\n const type = typeof val;\n switch (type) {\n case \"boolean\":\n case \"string\":\n case \"number\":\n case \"symbol\":\n case \"function\": {\n return type;\n }\n }\n if (Array.isArray(val))\n return \"array\";\n if (isDate(val))\n return \"date\";\n if (isError(val))\n return \"error\";\n const constructorName = ctorName(val);\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 }\n return Object.prototype.toString.call(val).slice(8, -1).toLowerCase().replace(/\\s/g, \"\");\n}\nfunction ctorName(val) {\n return typeof val.constructor === \"function\" ? val.constructor.name : null;\n}\nfunction isError(val) {\n return val instanceof Error || typeof val.message === \"string\" && val.constructor && typeof val.constructor.stackTraceLimit === \"number\";\n}\nfunction isDate(val) {\n if (val instanceof Date)\n return true;\n return typeof val.toDateString === \"function\" && typeof val.getDate === \"function\" && typeof val.setDate === \"function\";\n}\nfunction kindOf(val) {\n let typeOfVal = typeof val;\n if (process.env.NODE_ENV !== \"production\") {\n typeOfVal = miniKindOf(val);\n }\n return typeOfVal;\n}\n\n// src/createStore.ts\nfunction createStore(reducer, preloadedState, enhancer) {\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 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 if (typeof preloadedState === \"function\" && typeof enhancer === \"undefined\") {\n enhancer = preloadedState;\n preloadedState = void 0;\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 return enhancer(createStore)(reducer, preloadedState);\n }\n let currentReducer = reducer;\n let currentState = preloadedState;\n let currentListeners = /* @__PURE__ */ new Map();\n let nextListeners = currentListeners;\n let listenerIdCounter = 0;\n let isDispatching = false;\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = /* @__PURE__ */ new Map();\n currentListeners.forEach((listener, key) => {\n nextListeners.set(key, listener);\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 return currentState;\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 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 let isSubscribed = true;\n ensureCanMutateNextListeners();\n const listenerId = listenerIdCounter++;\n nextListeners.set(listenerId, listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\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 isSubscribed = false;\n ensureCanMutateNextListeners();\n nextListeners.delete(listenerId);\n currentListeners = null;\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 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 if (typeof action.type !== \"string\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(17) : `Action \"type\" property must be a string. Instead, the actual type was: '${kindOf(action.type)}'. Value was: '${action.type}' (stringified)`);\n }\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : \"Reducers may not dispatch actions.\");\n }\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n const listeners = currentListeners = nextListeners;\n listeners.forEach((listener) => {\n listener();\n });\n return action;\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 currentReducer = nextReducer;\n dispatch({\n type: actionTypes_default.REPLACE\n });\n }\n function observable() {\n const outerSubscribe = subscribe;\n return {\n /**\n * The minimal observable subscription method.\n * @param observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns 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(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 function observeState() {\n const observerAsObserver = observer;\n if (observerAsObserver.next) {\n observerAsObserver.next(getState());\n }\n }\n observeState();\n const unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe\n };\n },\n [symbol_observable_default]() {\n return this;\n }\n };\n }\n dispatch({\n type: actionTypes_default.INIT\n });\n const store = {\n dispatch,\n subscribe,\n getState,\n replaceReducer,\n [symbol_observable_default]: observable\n };\n return store;\n}\nfunction legacy_createStore(reducer, preloadedState, enhancer) {\n return createStore(reducer, preloadedState, enhancer);\n}\n\n// src/utils/warning.ts\nfunction warning(message) {\n if (typeof console !== \"undefined\" && typeof console.error === \"function\") {\n console.error(message);\n }\n try {\n throw new Error(message);\n } catch (e) {\n }\n}\n\n// src/combineReducers.ts\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n const reducerKeys = Object.keys(reducers);\n const argumentName = action && action.type === actionTypes_default.INIT ? \"preloadedState argument passed to createStore\" : \"previous state received by the reducer\";\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 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 const unexpectedKeys = Object.keys(inputState).filter((key) => !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key]);\n unexpectedKeys.forEach((key) => {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === actionTypes_default.REPLACE)\n return;\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}\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach((key) => {\n const reducer = reducers[key];\n const initialState = reducer(void 0, {\n type: actionTypes_default.INIT\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 if (typeof reducer(void 0, {\n type: actionTypes_default.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_default.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}\nfunction combineReducers(reducers) {\n const reducerKeys = Object.keys(reducers);\n const finalReducers = {};\n for (let i = 0; i < reducerKeys.length; i++) {\n const key = reducerKeys[i];\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof reducers[key] === \"undefined\") {\n warning(`No reducer provided for key \"${key}\"`);\n }\n }\n if (typeof reducers[key] === \"function\") {\n finalReducers[key] = reducers[key];\n }\n }\n const finalReducerKeys = Object.keys(finalReducers);\n let unexpectedKeyCache;\n if (process.env.NODE_ENV !== \"production\") {\n unexpectedKeyCache = {};\n }\n let shapeAssertionError;\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n return function combination(state = {}, action) {\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n if (process.env.NODE_ENV !== \"production\") {\n const warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n let hasChanged = false;\n const nextState = {};\n for (let i = 0; i < finalReducerKeys.length; i++) {\n const key = finalReducerKeys[i];\n const reducer = finalReducers[key];\n const previousStateForKey = state[key];\n const nextStateForKey = reducer(previousStateForKey, action);\n if (typeof nextStateForKey === \"undefined\") {\n const 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 nextState[key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\n// src/bindActionCreators.ts\nfunction bindActionCreator(actionCreator, dispatch) {\n return function(...args) {\n return dispatch(actionCreator.apply(this, args));\n };\n}\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === \"function\") {\n return bindActionCreator(actionCreators, dispatch);\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 const boundActionCreators = {};\n for (const key in actionCreators) {\n const actionCreator = actionCreators[key];\n if (typeof actionCreator === \"function\") {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n return boundActionCreators;\n}\n\n// src/compose.ts\nfunction compose(...funcs) {\n if (funcs.length === 0) {\n return (arg) => arg;\n }\n if (funcs.length === 1) {\n return funcs[0];\n }\n return funcs.reduce((a, b) => (...args) => a(b(...args)));\n}\n\n// src/applyMiddleware.ts\nfunction applyMiddleware(...middlewares) {\n return (createStore2) => (reducer, preloadedState) => {\n const store = createStore2(reducer, preloadedState);\n let 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 const middlewareAPI = {\n getState: store.getState,\n dispatch: (action, ...args) => dispatch(action, ...args)\n };\n const chain = middlewares.map((middleware) => middleware(middlewareAPI));\n dispatch = compose(...chain)(store.dispatch);\n return {\n ...store,\n dispatch\n };\n };\n}\n\n// src/utils/isAction.ts\nfunction isAction(action) {\n return isPlainObject(action) && \"type\" in action && typeof action.type === \"string\";\n}\nexport {\n actionTypes_default as __DO_NOT_USE__ActionTypes,\n applyMiddleware,\n bindActionCreators,\n combineReducers,\n compose,\n createStore,\n isAction,\n isPlainObject,\n legacy_createStore\n};\n//# sourceMappingURL=redux.mjs.map","// src/utils/env.ts\nvar NOTHING = Symbol.for(\"immer-nothing\");\nvar DRAFTABLE = Symbol.for(\"immer-draftable\");\nvar DRAFT_STATE = Symbol.for(\"immer-state\");\n\n// src/utils/errors.ts\nvar errors = process.env.NODE_ENV !== \"production\" ? [\n // All error codes, starting by 0:\n function(plugin) {\n return `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \\`enable${plugin}()\\` when initializing your application.`;\n },\n function(thing) {\n return `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`;\n },\n \"This object has been frozen and should not be mutated\",\n function(data) {\n return \"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \" + data;\n },\n \"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",\n \"Immer forbids circular references\",\n \"The first or second argument to `produce` must be a function\",\n \"The third argument to `produce` must be a function or undefined\",\n \"First argument to `createDraft` must be a plain object, an array, or an immerable object\",\n \"First argument to `finishDraft` must be a draft returned by `createDraft`\",\n function(thing) {\n return `'current' expects a draft, got: ${thing}`;\n },\n \"Object.defineProperty() cannot be used on an Immer draft\",\n \"Object.setPrototypeOf() cannot be used on an Immer draft\",\n \"Immer only supports deleting array indices\",\n \"Immer only supports setting array indices and the 'length' property\",\n function(thing) {\n return `'original' expects a draft, got: ${thing}`;\n }\n // Note: if more errors are added, the errorOffset in Patches.ts should be increased\n // See Patches.ts for additional errors\n] : [];\nfunction die(error, ...args) {\n if (process.env.NODE_ENV !== \"production\") {\n const e = errors[error];\n const msg = typeof e === \"function\" ? e.apply(null, args) : e;\n throw new Error(`[Immer] ${msg}`);\n }\n throw new Error(\n `[Immer] minified error nr: ${error}. Full error at: https://bit.ly/3cXEKWf`\n );\n}\n\n// src/utils/common.ts\nvar getPrototypeOf = Object.getPrototypeOf;\nfunction isDraft(value) {\n return !!value && !!value[DRAFT_STATE];\n}\nfunction isDraftable(value) {\n if (!value)\n return false;\n return isPlainObject(value) || Array.isArray(value) || !!value[DRAFTABLE] || !!value.constructor?.[DRAFTABLE] || isMap(value) || isSet(value);\n}\nvar objectCtorString = Object.prototype.constructor.toString();\nfunction isPlainObject(value) {\n if (!value || typeof value !== \"object\")\n return false;\n const proto = getPrototypeOf(value);\n if (proto === null) {\n return true;\n }\n const Ctor = Object.hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\n if (Ctor === Object)\n return true;\n return typeof Ctor == \"function\" && Function.toString.call(Ctor) === objectCtorString;\n}\nfunction original(value) {\n if (!isDraft(value))\n die(15, value);\n return value[DRAFT_STATE].base_;\n}\nfunction each(obj, iter) {\n if (getArchtype(obj) === 0 /* Object */) {\n Object.entries(obj).forEach(([key, value]) => {\n iter(key, value, obj);\n });\n } else {\n obj.forEach((entry, index) => iter(index, entry, obj));\n }\n}\nfunction getArchtype(thing) {\n const state = thing[DRAFT_STATE];\n return state ? state.type_ : Array.isArray(thing) ? 1 /* Array */ : isMap(thing) ? 2 /* Map */ : isSet(thing) ? 3 /* Set */ : 0 /* Object */;\n}\nfunction has(thing, prop) {\n return getArchtype(thing) === 2 /* Map */ ? thing.has(prop) : Object.prototype.hasOwnProperty.call(thing, prop);\n}\nfunction get(thing, prop) {\n return getArchtype(thing) === 2 /* Map */ ? thing.get(prop) : thing[prop];\n}\nfunction set(thing, propOrOldValue, value) {\n const t = getArchtype(thing);\n if (t === 2 /* Map */)\n thing.set(propOrOldValue, value);\n else if (t === 3 /* Set */) {\n thing.add(value);\n } else\n thing[propOrOldValue] = value;\n}\nfunction is(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\nfunction isMap(target) {\n return target instanceof Map;\n}\nfunction isSet(target) {\n return target instanceof Set;\n}\nfunction latest(state) {\n return state.copy_ || state.base_;\n}\nfunction shallowCopy(base, strict) {\n if (isMap(base)) {\n return new Map(base);\n }\n if (isSet(base)) {\n return new Set(base);\n }\n if (Array.isArray(base))\n return Array.prototype.slice.call(base);\n if (!strict && isPlainObject(base)) {\n if (!getPrototypeOf(base)) {\n const obj = /* @__PURE__ */ Object.create(null);\n return Object.assign(obj, base);\n }\n return { ...base };\n }\n const descriptors = Object.getOwnPropertyDescriptors(base);\n delete descriptors[DRAFT_STATE];\n let keys = Reflect.ownKeys(descriptors);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const desc = descriptors[key];\n if (desc.writable === false) {\n desc.writable = true;\n desc.configurable = true;\n }\n if (desc.get || desc.set)\n descriptors[key] = {\n configurable: true,\n writable: true,\n // could live with !!desc.set as well here...\n enumerable: desc.enumerable,\n value: base[key]\n };\n }\n return Object.create(getPrototypeOf(base), descriptors);\n}\nfunction freeze(obj, deep = false) {\n if (isFrozen(obj) || isDraft(obj) || !isDraftable(obj))\n return obj;\n if (getArchtype(obj) > 1) {\n obj.set = obj.add = obj.clear = obj.delete = dontMutateFrozenCollections;\n }\n Object.freeze(obj);\n if (deep)\n each(obj, (_key, value) => freeze(value, true), true);\n return obj;\n}\nfunction dontMutateFrozenCollections() {\n die(2);\n}\nfunction isFrozen(obj) {\n return Object.isFrozen(obj);\n}\n\n// src/utils/plugins.ts\nvar plugins = {};\nfunction getPlugin(pluginKey) {\n const plugin = plugins[pluginKey];\n if (!plugin) {\n die(0, pluginKey);\n }\n return plugin;\n}\nfunction loadPlugin(pluginKey, implementation) {\n if (!plugins[pluginKey])\n plugins[pluginKey] = implementation;\n}\n\n// src/core/scope.ts\nvar currentScope;\nfunction getCurrentScope() {\n return currentScope;\n}\nfunction createScope(parent_, immer_) {\n return {\n drafts_: [],\n parent_,\n immer_,\n // Whenever the modified draft contains a draft from another scope, we\n // need to prevent auto-freezing so the unowned draft can be finalized.\n canAutoFreeze_: true,\n unfinalizedDrafts_: 0\n };\n}\nfunction usePatchesInScope(scope, patchListener) {\n if (patchListener) {\n getPlugin(\"Patches\");\n scope.patches_ = [];\n scope.inversePatches_ = [];\n scope.patchListener_ = patchListener;\n }\n}\nfunction revokeScope(scope) {\n leaveScope(scope);\n scope.drafts_.forEach(revokeDraft);\n scope.drafts_ = null;\n}\nfunction leaveScope(scope) {\n if (scope === currentScope) {\n currentScope = scope.parent_;\n }\n}\nfunction enterScope(immer2) {\n return currentScope = createScope(currentScope, immer2);\n}\nfunction revokeDraft(draft) {\n const state = draft[DRAFT_STATE];\n if (state.type_ === 0 /* Object */ || state.type_ === 1 /* Array */)\n state.revoke_();\n else\n state.revoked_ = true;\n}\n\n// src/core/finalize.ts\nfunction processResult(result, scope) {\n scope.unfinalizedDrafts_ = scope.drafts_.length;\n const baseDraft = scope.drafts_[0];\n const isReplaced = result !== void 0 && result !== baseDraft;\n if (isReplaced) {\n if (baseDraft[DRAFT_STATE].modified_) {\n revokeScope(scope);\n die(4);\n }\n if (isDraftable(result)) {\n result = finalize(scope, result);\n if (!scope.parent_)\n maybeFreeze(scope, result);\n }\n if (scope.patches_) {\n getPlugin(\"Patches\").generateReplacementPatches_(\n baseDraft[DRAFT_STATE].base_,\n result,\n scope.patches_,\n scope.inversePatches_\n );\n }\n } else {\n result = finalize(scope, baseDraft, []);\n }\n revokeScope(scope);\n if (scope.patches_) {\n scope.patchListener_(scope.patches_, scope.inversePatches_);\n }\n return result !== NOTHING ? result : void 0;\n}\nfunction finalize(rootScope, value, path) {\n if (isFrozen(value))\n return value;\n const state = value[DRAFT_STATE];\n if (!state) {\n each(\n value,\n (key, childValue) => finalizeProperty(rootScope, state, value, key, childValue, path),\n true\n // See #590, don't recurse into non-enumerable of non drafted objects\n );\n return value;\n }\n if (state.scope_ !== rootScope)\n return value;\n if (!state.modified_) {\n maybeFreeze(rootScope, state.base_, true);\n return state.base_;\n }\n if (!state.finalized_) {\n state.finalized_ = true;\n state.scope_.unfinalizedDrafts_--;\n const result = state.copy_;\n let resultEach = result;\n let isSet2 = false;\n if (state.type_ === 3 /* Set */) {\n resultEach = new Set(result);\n result.clear();\n isSet2 = true;\n }\n each(\n resultEach,\n (key, childValue) => finalizeProperty(rootScope, state, result, key, childValue, path, isSet2)\n );\n maybeFreeze(rootScope, result, false);\n if (path && rootScope.patches_) {\n getPlugin(\"Patches\").generatePatches_(\n state,\n path,\n rootScope.patches_,\n rootScope.inversePatches_\n );\n }\n }\n return state.copy_;\n}\nfunction finalizeProperty(rootScope, parentState, targetObject, prop, childValue, rootPath, targetIsSet) {\n if (process.env.NODE_ENV !== \"production\" && childValue === targetObject)\n die(5);\n if (isDraft(childValue)) {\n const path = rootPath && parentState && parentState.type_ !== 3 /* Set */ && // Set objects are atomic since they have no keys.\n !has(parentState.assigned_, prop) ? rootPath.concat(prop) : void 0;\n const res = finalize(rootScope, childValue, path);\n set(targetObject, prop, res);\n if (isDraft(res)) {\n rootScope.canAutoFreeze_ = false;\n } else\n return;\n } else if (targetIsSet) {\n targetObject.add(childValue);\n }\n if (isDraftable(childValue) && !isFrozen(childValue)) {\n if (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {\n return;\n }\n finalize(rootScope, childValue);\n if (!parentState || !parentState.scope_.parent_)\n maybeFreeze(rootScope, childValue);\n }\n}\nfunction maybeFreeze(scope, value, deep = false) {\n if (!scope.parent_ && scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {\n freeze(value, deep);\n }\n}\n\n// src/core/proxy.ts\nfunction createProxyProxy(base, parent) {\n const isArray = Array.isArray(base);\n const state = {\n type_: isArray ? 1 /* Array */ : 0 /* Object */,\n // Track which produce call this is associated with.\n scope_: parent ? parent.scope_ : getCurrentScope(),\n // True for both shallow and deep changes.\n modified_: false,\n // Used during finalization.\n finalized_: false,\n // Track which properties have been assigned (true) or deleted (false).\n assigned_: {},\n // The parent draft state.\n parent_: parent,\n // The base state.\n base_: base,\n // The base proxy.\n draft_: null,\n // set below\n // The base copy with any updated values.\n copy_: null,\n // Called by the `produce` function.\n revoke_: null,\n isManual_: false\n };\n let target = state;\n let traps = objectTraps;\n if (isArray) {\n target = [state];\n traps = arrayTraps;\n }\n const { revoke, proxy } = Proxy.revocable(target, traps);\n state.draft_ = proxy;\n state.revoke_ = revoke;\n return proxy;\n}\nvar objectTraps = {\n get(state, prop) {\n if (prop === DRAFT_STATE)\n return state;\n const source = latest(state);\n if (!has(source, prop)) {\n return readPropFromProto(state, source, prop);\n }\n const value = source[prop];\n if (state.finalized_ || !isDraftable(value)) {\n return value;\n }\n if (value === peek(state.base_, prop)) {\n prepareCopy(state);\n return state.copy_[prop] = createProxy(value, state);\n }\n return value;\n },\n has(state, prop) {\n return prop in latest(state);\n },\n ownKeys(state) {\n return Reflect.ownKeys(latest(state));\n },\n set(state, prop, value) {\n const desc = getDescriptorFromProto(latest(state), prop);\n if (desc?.set) {\n desc.set.call(state.draft_, value);\n return true;\n }\n if (!state.modified_) {\n const current2 = peek(latest(state), prop);\n const currentState = current2?.[DRAFT_STATE];\n if (currentState && currentState.base_ === value) {\n state.copy_[prop] = value;\n state.assigned_[prop] = false;\n return true;\n }\n if (is(value, current2) && (value !== void 0 || has(state.base_, prop)))\n return true;\n prepareCopy(state);\n markChanged(state);\n }\n if (state.copy_[prop] === value && // special case: handle new props with value 'undefined'\n (value !== void 0 || prop in state.copy_) || // special case: NaN\n Number.isNaN(value) && Number.isNaN(state.copy_[prop]))\n return true;\n state.copy_[prop] = value;\n state.assigned_[prop] = true;\n return true;\n },\n deleteProperty(state, prop) {\n if (peek(state.base_, prop) !== void 0 || prop in state.base_) {\n state.assigned_[prop] = false;\n prepareCopy(state);\n markChanged(state);\n } else {\n delete state.assigned_[prop];\n }\n if (state.copy_) {\n delete state.copy_[prop];\n }\n return true;\n },\n // Note: We never coerce `desc.value` into an Immer draft, because we can't make\n // the same guarantee in ES5 mode.\n getOwnPropertyDescriptor(state, prop) {\n const owner = latest(state);\n const desc = Reflect.getOwnPropertyDescriptor(owner, prop);\n if (!desc)\n return desc;\n return {\n writable: true,\n configurable: state.type_ !== 1 /* Array */ || prop !== \"length\",\n enumerable: desc.enumerable,\n value: owner[prop]\n };\n },\n defineProperty() {\n die(11);\n },\n getPrototypeOf(state) {\n return getPrototypeOf(state.base_);\n },\n setPrototypeOf() {\n die(12);\n }\n};\nvar arrayTraps = {};\neach(objectTraps, (key, fn) => {\n arrayTraps[key] = function() {\n arguments[0] = arguments[0][0];\n return fn.apply(this, arguments);\n };\n});\narrayTraps.deleteProperty = function(state, prop) {\n if (process.env.NODE_ENV !== \"production\" && isNaN(parseInt(prop)))\n die(13);\n return arrayTraps.set.call(this, state, prop, void 0);\n};\narrayTraps.set = function(state, prop, value) {\n if (process.env.NODE_ENV !== \"production\" && prop !== \"length\" && isNaN(parseInt(prop)))\n die(14);\n return objectTraps.set.call(this, state[0], prop, value, state[0]);\n};\nfunction peek(draft, prop) {\n const state = draft[DRAFT_STATE];\n const source = state ? latest(state) : draft;\n return source[prop];\n}\nfunction readPropFromProto(state, source, prop) {\n const desc = getDescriptorFromProto(source, prop);\n return desc ? `value` in desc ? desc.value : (\n // This is a very special case, if the prop is a getter defined by the\n // prototype, we should invoke it with the draft as context!\n desc.get?.call(state.draft_)\n ) : void 0;\n}\nfunction getDescriptorFromProto(source, prop) {\n if (!(prop in source))\n return void 0;\n let proto = getPrototypeOf(source);\n while (proto) {\n const desc = Object.getOwnPropertyDescriptor(proto, prop);\n if (desc)\n return desc;\n proto = getPrototypeOf(proto);\n }\n return void 0;\n}\nfunction markChanged(state) {\n if (!state.modified_) {\n state.modified_ = true;\n if (state.parent_) {\n markChanged(state.parent_);\n }\n }\n}\nfunction prepareCopy(state) {\n if (!state.copy_) {\n state.copy_ = shallowCopy(\n state.base_,\n state.scope_.immer_.useStrictShallowCopy_\n );\n }\n}\n\n// src/core/immerClass.ts\nvar Immer2 = class {\n constructor(config) {\n this.autoFreeze_ = true;\n this.useStrictShallowCopy_ = false;\n /**\n * The `produce` function takes a value and a \"recipe function\" (whose\n * return value often depends on the base state). The recipe function is\n * free to mutate its first argument however it wants. All mutations are\n * only ever applied to a __copy__ of the base state.\n *\n * Pass only a function to create a \"curried producer\" which relieves you\n * from passing the recipe function every time.\n *\n * Only plain objects and arrays are made mutable. All other objects are\n * considered uncopyable.\n *\n * Note: This function is __bound__ to its `Immer` instance.\n *\n * @param {any} base - the initial state\n * @param {Function} recipe - function that receives a proxy of the base state as first argument and which can be freely modified\n * @param {Function} patchListener - optional function that will be called with all the patches produced here\n * @returns {any} a new state, or the initial state if nothing was modified\n */\n this.produce = (base, recipe, patchListener) => {\n if (typeof base === \"function\" && typeof recipe !== \"function\") {\n const defaultBase = recipe;\n recipe = base;\n const self = this;\n return function curriedProduce(base2 = defaultBase, ...args) {\n return self.produce(base2, (draft) => recipe.call(this, draft, ...args));\n };\n }\n if (typeof recipe !== \"function\")\n die(6);\n if (patchListener !== void 0 && typeof patchListener !== \"function\")\n die(7);\n let result;\n if (isDraftable(base)) {\n const scope = enterScope(this);\n const proxy = createProxy(base, void 0);\n let hasError = true;\n try {\n result = recipe(proxy);\n hasError = false;\n } finally {\n if (hasError)\n revokeScope(scope);\n else\n leaveScope(scope);\n }\n usePatchesInScope(scope, patchListener);\n return processResult(result, scope);\n } else if (!base || typeof base !== \"object\") {\n result = recipe(base);\n if (result === void 0)\n result = base;\n if (result === NOTHING)\n result = void 0;\n if (this.autoFreeze_)\n freeze(result, true);\n if (patchListener) {\n const p = [];\n const ip = [];\n getPlugin(\"Patches\").generateReplacementPatches_(base, result, p, ip);\n patchListener(p, ip);\n }\n return result;\n } else\n die(1, base);\n };\n this.produceWithPatches = (base, recipe) => {\n if (typeof base === \"function\") {\n return (state, ...args) => this.produceWithPatches(state, (draft) => base(draft, ...args));\n }\n let patches, inversePatches;\n const result = this.produce(base, recipe, (p, ip) => {\n patches = p;\n inversePatches = ip;\n });\n return [result, patches, inversePatches];\n };\n if (typeof config?.autoFreeze === \"boolean\")\n this.setAutoFreeze(config.autoFreeze);\n if (typeof config?.useStrictShallowCopy === \"boolean\")\n this.setUseStrictShallowCopy(config.useStrictShallowCopy);\n }\n createDraft(base) {\n if (!isDraftable(base))\n die(8);\n if (isDraft(base))\n base = current(base);\n const scope = enterScope(this);\n const proxy = createProxy(base, void 0);\n proxy[DRAFT_STATE].isManual_ = true;\n leaveScope(scope);\n return proxy;\n }\n finishDraft(draft, patchListener) {\n const state = draft && draft[DRAFT_STATE];\n if (!state || !state.isManual_)\n die(9);\n const { scope_: scope } = state;\n usePatchesInScope(scope, patchListener);\n return processResult(void 0, scope);\n }\n /**\n * Pass true to automatically freeze all copies created by Immer.\n *\n * By default, auto-freezing is enabled.\n */\n setAutoFreeze(value) {\n this.autoFreeze_ = value;\n }\n /**\n * Pass true to enable strict shallow copy.\n *\n * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.\n */\n setUseStrictShallowCopy(value) {\n this.useStrictShallowCopy_ = value;\n }\n applyPatches(base, patches) {\n let i;\n for (i = patches.length - 1; i >= 0; i--) {\n const patch = patches[i];\n if (patch.path.length === 0 && patch.op === \"replace\") {\n base = patch.value;\n break;\n }\n }\n if (i > -1) {\n patches = patches.slice(i + 1);\n }\n const applyPatchesImpl = getPlugin(\"Patches\").applyPatches_;\n if (isDraft(base)) {\n return applyPatchesImpl(base, patches);\n }\n return this.produce(\n base,\n (draft) => applyPatchesImpl(draft, patches)\n );\n }\n};\nfunction createProxy(value, parent) {\n const draft = isMap(value) ? getPlugin(\"MapSet\").proxyMap_(value, parent) : isSet(value) ? getPlugin(\"MapSet\").proxySet_(value, parent) : createProxyProxy(value, parent);\n const scope = parent ? parent.scope_ : getCurrentScope();\n scope.drafts_.push(draft);\n return draft;\n}\n\n// src/core/current.ts\nfunction current(value) {\n if (!isDraft(value))\n die(10, value);\n return currentImpl(value);\n}\nfunction currentImpl(value) {\n if (!isDraftable(value) || isFrozen(value))\n return value;\n const state = value[DRAFT_STATE];\n let copy;\n if (state) {\n if (!state.modified_)\n return state.base_;\n state.finalized_ = true;\n copy = shallowCopy(value, state.scope_.immer_.useStrictShallowCopy_);\n } else {\n copy = shallowCopy(value, true);\n }\n each(copy, (key, childValue) => {\n set(copy, key, currentImpl(childValue));\n });\n if (state) {\n state.finalized_ = false;\n }\n return copy;\n}\n\n// src/plugins/patches.ts\nfunction enablePatches() {\n const errorOffset = 16;\n if (process.env.NODE_ENV !== \"production\") {\n errors.push(\n 'Sets cannot have \"replace\" patches.',\n function(op) {\n return \"Unsupported patch operation: \" + op;\n },\n function(path) {\n return \"Cannot apply patch, path doesn't resolve: \" + path;\n },\n \"Patching reserved attributes like __proto__, prototype and constructor is not allowed\"\n );\n }\n const REPLACE = \"replace\";\n const ADD = \"add\";\n const REMOVE = \"remove\";\n function generatePatches_(state, basePath, patches, inversePatches) {\n switch (state.type_) {\n case 0 /* Object */:\n case 2 /* Map */:\n return generatePatchesFromAssigned(\n state,\n basePath,\n patches,\n inversePatches\n );\n case 1 /* Array */:\n return generateArrayPatches(state, basePath, patches, inversePatches);\n case 3 /* Set */:\n return generateSetPatches(\n state,\n basePath,\n patches,\n inversePatches\n );\n }\n }\n function generateArrayPatches(state, basePath, patches, inversePatches) {\n let { base_, assigned_ } = state;\n let copy_ = state.copy_;\n if (copy_.length < base_.length) {\n ;\n [base_, copy_] = [copy_, base_];\n [patches, inversePatches] = [inversePatches, patches];\n }\n for (let i = 0; i < base_.length; i++) {\n if (assigned_[i] && copy_[i] !== base_[i]) {\n const path = basePath.concat([i]);\n patches.push({\n op: REPLACE,\n path,\n // Need to maybe clone it, as it can in fact be the original value\n // due to the base/copy inversion at the start of this function\n value: clonePatchValueIfNeeded(copy_[i])\n });\n inversePatches.push({\n op: REPLACE,\n path,\n value: clonePatchValueIfNeeded(base_[i])\n });\n }\n }\n for (let i = base_.length; i < copy_.length; i++) {\n const path = basePath.concat([i]);\n patches.push({\n op: ADD,\n path,\n // Need to maybe clone it, as it can in fact be the original value\n // due to the base/copy inversion at the start of this function\n value: clonePatchValueIfNeeded(copy_[i])\n });\n }\n for (let i = copy_.length - 1; base_.length <= i; --i) {\n const path = basePath.concat([i]);\n inversePatches.push({\n op: REMOVE,\n path\n });\n }\n }\n function generatePatchesFromAssigned(state, basePath, patches, inversePatches) {\n const { base_, copy_ } = state;\n each(state.assigned_, (key, assignedValue) => {\n const origValue = get(base_, key);\n const value = get(copy_, key);\n const op = !assignedValue ? REMOVE : has(base_, key) ? REPLACE : ADD;\n if (origValue === value && op === REPLACE)\n return;\n const path = basePath.concat(key);\n patches.push(op === REMOVE ? { op, path } : { op, path, value });\n inversePatches.push(\n op === ADD ? { op: REMOVE, path } : op === REMOVE ? { op: ADD, path, value: clonePatchValueIfNeeded(origValue) } : { op: REPLACE, path, value: clonePatchValueIfNeeded(origValue) }\n );\n });\n }\n function generateSetPatches(state, basePath, patches, inversePatches) {\n let { base_, copy_ } = state;\n let i = 0;\n base_.forEach((value) => {\n if (!copy_.has(value)) {\n const path = basePath.concat([i]);\n patches.push({\n op: REMOVE,\n path,\n value\n });\n inversePatches.unshift({\n op: ADD,\n path,\n value\n });\n }\n i++;\n });\n i = 0;\n copy_.forEach((value) => {\n if (!base_.has(value)) {\n const path = basePath.concat([i]);\n patches.push({\n op: ADD,\n path,\n value\n });\n inversePatches.unshift({\n op: REMOVE,\n path,\n value\n });\n }\n i++;\n });\n }\n function generateReplacementPatches_(baseValue, replacement, patches, inversePatches) {\n patches.push({\n op: REPLACE,\n path: [],\n value: replacement === NOTHING ? void 0 : replacement\n });\n inversePatches.push({\n op: REPLACE,\n path: [],\n value: baseValue\n });\n }\n function applyPatches_(draft, patches) {\n patches.forEach((patch) => {\n const { path, op } = patch;\n let base = draft;\n for (let i = 0; i < path.length - 1; i++) {\n const parentType = getArchtype(base);\n let p = path[i];\n if (typeof p !== \"string\" && typeof p !== \"number\") {\n p = \"\" + p;\n }\n if ((parentType === 0 /* Object */ || parentType === 1 /* Array */) && (p === \"__proto__\" || p === \"constructor\"))\n die(errorOffset + 3);\n if (typeof base === \"function\" && p === \"prototype\")\n die(errorOffset + 3);\n base = get(base, p);\n if (typeof base !== \"object\")\n die(errorOffset + 2, path.join(\"/\"));\n }\n const type = getArchtype(base);\n const value = deepClonePatchValue(patch.value);\n const key = path[path.length - 1];\n switch (op) {\n case REPLACE:\n switch (type) {\n case 2 /* Map */:\n return base.set(key, value);\n case 3 /* Set */:\n die(errorOffset);\n default:\n return base[key] = value;\n }\n case ADD:\n switch (type) {\n case 1 /* Array */:\n return key === \"-\" ? base.push(value) : base.splice(key, 0, value);\n case 2 /* Map */:\n return base.set(key, value);\n case 3 /* Set */:\n return base.add(value);\n default:\n return base[key] = value;\n }\n case REMOVE:\n switch (type) {\n case 1 /* Array */:\n return base.splice(key, 1);\n case 2 /* Map */:\n return base.delete(key);\n case 3 /* Set */:\n return base.delete(patch.value);\n default:\n return delete base[key];\n }\n default:\n die(errorOffset + 1, op);\n }\n });\n return draft;\n }\n function deepClonePatchValue(obj) {\n if (!isDraftable(obj))\n return obj;\n if (Array.isArray(obj))\n return obj.map(deepClonePatchValue);\n if (isMap(obj))\n return new Map(\n Array.from(obj.entries()).map(([k, v]) => [k, deepClonePatchValue(v)])\n );\n if (isSet(obj))\n return new Set(Array.from(obj).map(deepClonePatchValue));\n const cloned = Object.create(getPrototypeOf(obj));\n for (const key in obj)\n cloned[key] = deepClonePatchValue(obj[key]);\n if (has(obj, DRAFTABLE))\n cloned[DRAFTABLE] = obj[DRAFTABLE];\n return cloned;\n }\n function clonePatchValueIfNeeded(obj) {\n if (isDraft(obj)) {\n return deepClonePatchValue(obj);\n } else\n return obj;\n }\n loadPlugin(\"Patches\", {\n applyPatches_,\n generatePatches_,\n generateReplacementPatches_\n });\n}\n\n// src/plugins/mapset.ts\nfunction enableMapSet() {\n class DraftMap extends Map {\n constructor(target, parent) {\n super();\n this[DRAFT_STATE] = {\n type_: 2 /* Map */,\n parent_: parent,\n scope_: parent ? parent.scope_ : getCurrentScope(),\n modified_: false,\n finalized_: false,\n copy_: void 0,\n assigned_: void 0,\n base_: target,\n draft_: this,\n isManual_: false,\n revoked_: false\n };\n }\n get size() {\n return latest(this[DRAFT_STATE]).size;\n }\n has(key) {\n return latest(this[DRAFT_STATE]).has(key);\n }\n set(key, value) {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (!latest(state).has(key) || latest(state).get(key) !== value) {\n prepareMapCopy(state);\n markChanged(state);\n state.assigned_.set(key, true);\n state.copy_.set(key, value);\n state.assigned_.set(key, true);\n }\n return this;\n }\n delete(key) {\n if (!this.has(key)) {\n return false;\n }\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n prepareMapCopy(state);\n markChanged(state);\n if (state.base_.has(key)) {\n state.assigned_.set(key, false);\n } else {\n state.assigned_.delete(key);\n }\n state.copy_.delete(key);\n return true;\n }\n clear() {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (latest(state).size) {\n prepareMapCopy(state);\n markChanged(state);\n state.assigned_ = /* @__PURE__ */ new Map();\n each(state.base_, (key) => {\n state.assigned_.set(key, false);\n });\n state.copy_.clear();\n }\n }\n forEach(cb, thisArg) {\n const state = this[DRAFT_STATE];\n latest(state).forEach((_value, key, _map) => {\n cb.call(thisArg, this.get(key), key, this);\n });\n }\n get(key) {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n const value = latest(state).get(key);\n if (state.finalized_ || !isDraftable(value)) {\n return value;\n }\n if (value !== state.base_.get(key)) {\n return value;\n }\n const draft = createProxy(value, state);\n prepareMapCopy(state);\n state.copy_.set(key, draft);\n return draft;\n }\n keys() {\n return latest(this[DRAFT_STATE]).keys();\n }\n values() {\n const iterator = this.keys();\n return {\n [Symbol.iterator]: () => this.values(),\n next: () => {\n const r = iterator.next();\n if (r.done)\n return r;\n const value = this.get(r.value);\n return {\n done: false,\n value\n };\n }\n };\n }\n entries() {\n const iterator = this.keys();\n return {\n [Symbol.iterator]: () => this.entries(),\n next: () => {\n const r = iterator.next();\n if (r.done)\n return r;\n const value = this.get(r.value);\n return {\n done: false,\n value: [r.value, value]\n };\n }\n };\n }\n [(DRAFT_STATE, Symbol.iterator)]() {\n return this.entries();\n }\n }\n function proxyMap_(target, parent) {\n return new DraftMap(target, parent);\n }\n function prepareMapCopy(state) {\n if (!state.copy_) {\n state.assigned_ = /* @__PURE__ */ new Map();\n state.copy_ = new Map(state.base_);\n }\n }\n class DraftSet extends Set {\n constructor(target, parent) {\n super();\n this[DRAFT_STATE] = {\n type_: 3 /* Set */,\n parent_: parent,\n scope_: parent ? parent.scope_ : getCurrentScope(),\n modified_: false,\n finalized_: false,\n copy_: void 0,\n base_: target,\n draft_: this,\n drafts_: /* @__PURE__ */ new Map(),\n revoked_: false,\n isManual_: false\n };\n }\n get size() {\n return latest(this[DRAFT_STATE]).size;\n }\n has(value) {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (!state.copy_) {\n return state.base_.has(value);\n }\n if (state.copy_.has(value))\n return true;\n if (state.drafts_.has(value) && state.copy_.has(state.drafts_.get(value)))\n return true;\n return false;\n }\n add(value) {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (!this.has(value)) {\n prepareSetCopy(state);\n markChanged(state);\n state.copy_.add(value);\n }\n return this;\n }\n delete(value) {\n if (!this.has(value)) {\n return false;\n }\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n prepareSetCopy(state);\n markChanged(state);\n return state.copy_.delete(value) || (state.drafts_.has(value) ? state.copy_.delete(state.drafts_.get(value)) : (\n /* istanbul ignore next */\n false\n ));\n }\n clear() {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (latest(state).size) {\n prepareSetCopy(state);\n markChanged(state);\n state.copy_.clear();\n }\n }\n values() {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n prepareSetCopy(state);\n return state.copy_.values();\n }\n entries() {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n prepareSetCopy(state);\n return state.copy_.entries();\n }\n keys() {\n return this.values();\n }\n [(DRAFT_STATE, Symbol.iterator)]() {\n return this.values();\n }\n forEach(cb, thisArg) {\n const iterator = this.values();\n let result = iterator.next();\n while (!result.done) {\n cb.call(thisArg, result.value, result.value, this);\n result = iterator.next();\n }\n }\n }\n function proxySet_(target, parent) {\n return new DraftSet(target, parent);\n }\n function prepareSetCopy(state) {\n if (!state.copy_) {\n state.copy_ = /* @__PURE__ */ new Set();\n state.base_.forEach((value) => {\n if (isDraftable(value)) {\n const draft = createProxy(value, state);\n state.drafts_.set(value, draft);\n state.copy_.add(draft);\n } else {\n state.copy_.add(value);\n }\n });\n }\n }\n function assertUnrevoked(state) {\n if (state.revoked_)\n die(3, JSON.stringify(latest(state)));\n }\n loadPlugin(\"MapSet\", { proxyMap_, proxySet_ });\n}\n\n// src/immer.ts\nvar immer = new Immer2();\nvar produce = immer.produce;\nvar produceWithPatches = immer.produceWithPatches.bind(\n immer\n);\nvar setAutoFreeze = immer.setAutoFreeze.bind(immer);\nvar setUseStrictShallowCopy = immer.setUseStrictShallowCopy.bind(immer);\nvar applyPatches = immer.applyPatches.bind(immer);\nvar createDraft = immer.createDraft.bind(immer);\nvar finishDraft = immer.finishDraft.bind(immer);\nfunction castDraft(value) {\n return value;\n}\nfunction castImmutable(value) {\n return value;\n}\nexport {\n Immer2 as Immer,\n applyPatches,\n castDraft,\n castImmutable,\n createDraft,\n current,\n enableMapSet,\n enablePatches,\n finishDraft,\n freeze,\n DRAFTABLE as immerable,\n isDraft,\n isDraftable,\n NOTHING as nothing,\n original,\n produce,\n produceWithPatches,\n setAutoFreeze,\n setUseStrictShallowCopy\n};\n//# sourceMappingURL=immer.mjs.map","// src/devModeChecks/identityFunctionCheck.ts\nvar runIdentityFunctionCheck = (resultFunc, inputSelectorsResults, outputSelectorResult) => {\n if (inputSelectorsResults.length === 1 && inputSelectorsResults[0] === outputSelectorResult) {\n let isInputSameAsOutput = false;\n try {\n const emptyObject = {};\n if (resultFunc(emptyObject) === emptyObject)\n isInputSameAsOutput = true;\n } catch {\n }\n if (isInputSameAsOutput) {\n let stack = void 0;\n try {\n throw new Error();\n } catch (e) {\n ;\n ({ stack } = e);\n }\n console.warn(\n \"The result function returned its own inputs without modification. e.g\\n`createSelector([state => state.todos], todos => todos)`\\nThis could lead to inefficient memoization and unnecessary re-renders.\\nEnsure transformation logic is in the result function, and extraction logic is in the input selectors.\",\n { stack }\n );\n }\n }\n};\n\n// src/devModeChecks/inputStabilityCheck.ts\nvar runInputStabilityCheck = (inputSelectorResultsObject, options, inputSelectorArgs) => {\n const { memoize, memoizeOptions } = options;\n const { inputSelectorResults, inputSelectorResultsCopy } = inputSelectorResultsObject;\n const createAnEmptyObject = memoize(() => ({}), ...memoizeOptions);\n const areInputSelectorResultsEqual = createAnEmptyObject.apply(null, inputSelectorResults) === createAnEmptyObject.apply(null, inputSelectorResultsCopy);\n if (!areInputSelectorResultsEqual) {\n let stack = void 0;\n try {\n throw new Error();\n } catch (e) {\n ;\n ({ stack } = e);\n }\n console.warn(\n \"An input selector returned a different result when passed same arguments.\\nThis means your output selector will likely run more frequently than intended.\\nAvoid returning a new reference inside your input selector, e.g.\\n`createSelector([state => state.todos.map(todo => todo.id)], todoIds => todoIds.length)`\",\n {\n arguments: inputSelectorArgs,\n firstInputs: inputSelectorResults,\n secondInputs: inputSelectorResultsCopy,\n stack\n }\n );\n }\n};\n\n// src/devModeChecks/setGlobalDevModeChecks.ts\nvar globalDevModeChecks = {\n inputStabilityCheck: \"once\",\n identityFunctionCheck: \"once\"\n};\nvar setGlobalDevModeChecks = (devModeChecks) => {\n Object.assign(globalDevModeChecks, devModeChecks);\n};\n\n// src/utils.ts\nvar NOT_FOUND = \"NOT_FOUND\";\nfunction assertIsFunction(func, errorMessage = `expected a function, instead received ${typeof func}`) {\n if (typeof func !== \"function\") {\n throw new TypeError(errorMessage);\n }\n}\nfunction assertIsObject(object, errorMessage = `expected an object, instead received ${typeof object}`) {\n if (typeof object !== \"object\") {\n throw new TypeError(errorMessage);\n }\n}\nfunction assertIsArrayOfFunctions(array, errorMessage = `expected all items to be functions, instead received the following types: `) {\n if (!array.every((item) => typeof item === \"function\")) {\n const itemTypes = array.map(\n (item) => typeof item === \"function\" ? `function ${item.name || \"unnamed\"}()` : typeof item\n ).join(\", \");\n throw new TypeError(`${errorMessage}[${itemTypes}]`);\n }\n}\nvar ensureIsArray = (item) => {\n return Array.isArray(item) ? item : [item];\n};\nfunction getDependencies(createSelectorArgs) {\n const dependencies = Array.isArray(createSelectorArgs[0]) ? createSelectorArgs[0] : createSelectorArgs;\n assertIsArrayOfFunctions(\n dependencies,\n `createSelector expects all input-selectors to be functions, but received the following types: `\n );\n return dependencies;\n}\nfunction collectInputSelectorResults(dependencies, inputSelectorArgs) {\n const inputSelectorResults = [];\n const { length } = dependencies;\n for (let i = 0; i < length; i++) {\n inputSelectorResults.push(dependencies[i].apply(null, inputSelectorArgs));\n }\n return inputSelectorResults;\n}\nvar getDevModeChecksExecutionInfo = (firstRun, devModeChecks) => {\n const { identityFunctionCheck, inputStabilityCheck } = {\n ...globalDevModeChecks,\n ...devModeChecks\n };\n return {\n identityFunctionCheck: {\n shouldRun: identityFunctionCheck === \"always\" || identityFunctionCheck === \"once\" && firstRun,\n run: runIdentityFunctionCheck\n },\n inputStabilityCheck: {\n shouldRun: inputStabilityCheck === \"always\" || inputStabilityCheck === \"once\" && firstRun,\n run: runInputStabilityCheck\n }\n };\n};\n\n// src/autotrackMemoize/autotracking.ts\nvar $REVISION = 0;\nvar CURRENT_TRACKER = null;\nvar Cell = class {\n revision = $REVISION;\n _value;\n _lastValue;\n _isEqual = tripleEq;\n constructor(initialValue, isEqual = tripleEq) {\n this._value = this._lastValue = initialValue;\n this._isEqual = isEqual;\n }\n // Whenever a storage value is read, it'll add itself to the current tracker if\n // one exists, entangling its state with that cache.\n get value() {\n CURRENT_TRACKER?.add(this);\n return this._value;\n }\n // Whenever a storage value is updated, we bump the global revision clock,\n // assign the revision for this storage to the new value, _and_ we schedule a\n // rerender. This is important, and it's what makes autotracking _pull_\n // based. We don't actively tell the caches which depend on the storage that\n // anything has happened. Instead, we recompute the caches when needed.\n set value(newValue) {\n if (this.value === newValue)\n return;\n this._value = newValue;\n this.revision = ++$REVISION;\n }\n};\nfunction tripleEq(a, b) {\n return a === b;\n}\nvar TrackingCache = class {\n _cachedValue;\n _cachedRevision = -1;\n _deps = [];\n hits = 0;\n fn;\n constructor(fn) {\n this.fn = fn;\n }\n clear() {\n this._cachedValue = void 0;\n this._cachedRevision = -1;\n this._deps = [];\n this.hits = 0;\n }\n get value() {\n if (this.revision > this._cachedRevision) {\n const { fn } = this;\n const currentTracker = /* @__PURE__ */ new Set();\n const prevTracker = CURRENT_TRACKER;\n CURRENT_TRACKER = currentTracker;\n this._cachedValue = fn();\n CURRENT_TRACKER = prevTracker;\n this.hits++;\n this._deps = Array.from(currentTracker);\n this._cachedRevision = this.revision;\n }\n CURRENT_TRACKER?.add(this);\n return this._cachedValue;\n }\n get revision() {\n return Math.max(...this._deps.map((d) => d.revision), 0);\n }\n};\nfunction getValue(cell) {\n if (!(cell instanceof Cell)) {\n console.warn(\"Not a valid cell! \", cell);\n }\n return cell.value;\n}\nfunction setValue(storage, value) {\n if (!(storage instanceof Cell)) {\n throw new TypeError(\n \"setValue must be passed a tracked store created with `createStorage`.\"\n );\n }\n storage.value = storage._lastValue = value;\n}\nfunction createCell(initialValue, isEqual = tripleEq) {\n return new Cell(initialValue, isEqual);\n}\nfunction createCache(fn) {\n assertIsFunction(\n fn,\n \"the first parameter to `createCache` must be a function\"\n );\n return new TrackingCache(fn);\n}\n\n// src/autotrackMemoize/tracking.ts\nvar neverEq = (a, b) => false;\nfunction createTag() {\n return createCell(null, neverEq);\n}\nfunction dirtyTag(tag, value) {\n setValue(tag, value);\n}\nvar consumeCollection = (node) => {\n let tag = node.collectionTag;\n if (tag === null) {\n tag = node.collectionTag = createTag();\n }\n getValue(tag);\n};\nvar dirtyCollection = (node) => {\n const tag = node.collectionTag;\n if (tag !== null) {\n dirtyTag(tag, null);\n }\n};\n\n// src/autotrackMemoize/proxy.ts\nvar REDUX_PROXY_LABEL = Symbol();\nvar nextId = 0;\nvar proto = Object.getPrototypeOf({});\nvar ObjectTreeNode = class {\n constructor(value) {\n this.value = value;\n this.value = value;\n this.tag.value = value;\n }\n proxy = new Proxy(this, objectProxyHandler);\n tag = createTag();\n tags = {};\n children = {};\n collectionTag = null;\n id = nextId++;\n};\nvar objectProxyHandler = {\n get(node, key) {\n function calculateResult() {\n const { value } = node;\n const childValue = Reflect.get(value, key);\n if (typeof key === \"symbol\") {\n return childValue;\n }\n if (key in proto) {\n return childValue;\n }\n if (typeof childValue === \"object\" && childValue !== null) {\n let childNode = node.children[key];\n if (childNode === void 0) {\n childNode = node.children[key] = createNode(childValue);\n }\n if (childNode.tag) {\n getValue(childNode.tag);\n }\n return childNode.proxy;\n } else {\n let tag = node.tags[key];\n if (tag === void 0) {\n tag = node.tags[key] = createTag();\n tag.value = childValue;\n }\n getValue(tag);\n return childValue;\n }\n }\n const res = calculateResult();\n return res;\n },\n ownKeys(node) {\n consumeCollection(node);\n return Reflect.ownKeys(node.value);\n },\n getOwnPropertyDescriptor(node, prop) {\n return Reflect.getOwnPropertyDescriptor(node.value, prop);\n },\n has(node, prop) {\n return Reflect.has(node.value, prop);\n }\n};\nvar ArrayTreeNode = class {\n constructor(value) {\n this.value = value;\n this.value = value;\n this.tag.value = value;\n }\n proxy = new Proxy([this], arrayProxyHandler);\n tag = createTag();\n tags = {};\n children = {};\n collectionTag = null;\n id = nextId++;\n};\nvar arrayProxyHandler = {\n get([node], key) {\n if (key === \"length\") {\n consumeCollection(node);\n }\n return objectProxyHandler.get(node, key);\n },\n ownKeys([node]) {\n return objectProxyHandler.ownKeys(node);\n },\n getOwnPropertyDescriptor([node], prop) {\n return objectProxyHandler.getOwnPropertyDescriptor(node, prop);\n },\n has([node], prop) {\n return objectProxyHandler.has(node, prop);\n }\n};\nfunction createNode(value) {\n if (Array.isArray(value)) {\n return new ArrayTreeNode(value);\n }\n return new ObjectTreeNode(value);\n}\nfunction updateNode(node, newValue) {\n const { value, tags, children } = node;\n node.value = newValue;\n if (Array.isArray(value) && Array.isArray(newValue) && value.length !== newValue.length) {\n dirtyCollection(node);\n } else {\n if (value !== newValue) {\n let oldKeysSize = 0;\n let newKeysSize = 0;\n let anyKeysAdded = false;\n for (const _key in value) {\n oldKeysSize++;\n }\n for (const key in newValue) {\n newKeysSize++;\n if (!(key in value)) {\n anyKeysAdded = true;\n break;\n }\n }\n const isDifferent = anyKeysAdded || oldKeysSize !== newKeysSize;\n if (isDifferent) {\n dirtyCollection(node);\n }\n }\n }\n for (const key in tags) {\n const childValue = value[key];\n const newChildValue = newValue[key];\n if (childValue !== newChildValue) {\n dirtyCollection(node);\n dirtyTag(tags[key], newChildValue);\n }\n if (typeof newChildValue === \"object\" && newChildValue !== null) {\n delete tags[key];\n }\n }\n for (const key in children) {\n const childNode = children[key];\n const newChildValue = newValue[key];\n const childValue = childNode.value;\n if (childValue === newChildValue) {\n continue;\n } else if (typeof newChildValue === \"object\" && newChildValue !== null) {\n updateNode(childNode, newChildValue);\n } else {\n deleteNode(childNode);\n delete children[key];\n }\n }\n}\nfunction deleteNode(node) {\n if (node.tag) {\n dirtyTag(node.tag, null);\n }\n dirtyCollection(node);\n for (const key in node.tags) {\n dirtyTag(node.tags[key], null);\n }\n for (const key in node.children) {\n deleteNode(node.children[key]);\n }\n}\n\n// src/lruMemoize.ts\nfunction createSingletonCache(equals) {\n let entry;\n return {\n get(key) {\n if (entry && equals(entry.key, key)) {\n return entry.value;\n }\n return NOT_FOUND;\n },\n put(key, value) {\n entry = { key, value };\n },\n getEntries() {\n return entry ? [entry] : [];\n },\n clear() {\n entry = void 0;\n }\n };\n}\nfunction createLruCache(maxSize, equals) {\n let entries = [];\n function get(key) {\n const cacheIndex = entries.findIndex((entry) => equals(key, entry.key));\n if (cacheIndex > -1) {\n const entry = entries[cacheIndex];\n if (cacheIndex > 0) {\n entries.splice(cacheIndex, 1);\n entries.unshift(entry);\n }\n return entry.value;\n }\n return NOT_FOUND;\n }\n function put(key, value) {\n if (get(key) === NOT_FOUND) {\n entries.unshift({ key, value });\n if (entries.length > maxSize) {\n entries.pop();\n }\n }\n }\n function getEntries() {\n return entries;\n }\n function clear() {\n entries = [];\n }\n return { get, put, getEntries, clear };\n}\nvar referenceEqualityCheck = (a, b) => a === b;\nfunction createCacheKeyComparator(equalityCheck) {\n return function areArgumentsShallowlyEqual(prev, next) {\n if (prev === null || next === null || prev.length !== next.length) {\n return false;\n }\n const { length } = prev;\n for (let i = 0; i < length; i++) {\n if (!equalityCheck(prev[i], next[i])) {\n return false;\n }\n }\n return true;\n };\n}\nfunction lruMemoize(func, equalityCheckOrOptions) {\n const providedOptions = typeof equalityCheckOrOptions === \"object\" ? equalityCheckOrOptions : { equalityCheck: equalityCheckOrOptions };\n const {\n equalityCheck = referenceEqualityCheck,\n maxSize = 1,\n resultEqualityCheck\n } = providedOptions;\n const comparator = createCacheKeyComparator(equalityCheck);\n let resultsCount = 0;\n const cache = maxSize === 1 ? createSingletonCache(comparator) : createLruCache(maxSize, comparator);\n function memoized() {\n let value = cache.get(arguments);\n if (value === NOT_FOUND) {\n value = func.apply(null, arguments);\n resultsCount++;\n if (resultEqualityCheck) {\n const entries = cache.getEntries();\n const matchingEntry = entries.find(\n (entry) => resultEqualityCheck(entry.value, value)\n );\n if (matchingEntry) {\n value = matchingEntry.value;\n resultsCount !== 0 && resultsCount--;\n }\n }\n cache.put(arguments, value);\n }\n return value;\n }\n memoized.clearCache = () => {\n cache.clear();\n memoized.resetResultsCount();\n };\n memoized.resultsCount = () => resultsCount;\n memoized.resetResultsCount = () => {\n resultsCount = 0;\n };\n return memoized;\n}\n\n// src/autotrackMemoize/autotrackMemoize.ts\nfunction autotrackMemoize(func) {\n const node = createNode(\n []\n );\n let lastArgs = null;\n const shallowEqual = createCacheKeyComparator(referenceEqualityCheck);\n const cache = createCache(() => {\n const res = func.apply(null, node.proxy);\n return res;\n });\n function memoized() {\n if (!shallowEqual(lastArgs, arguments)) {\n updateNode(node, arguments);\n lastArgs = arguments;\n }\n return cache.value;\n }\n memoized.clearCache = () => {\n return cache.clear();\n };\n return memoized;\n}\n\n// src/weakMapMemoize.ts\nvar StrongRef = class {\n constructor(value) {\n this.value = value;\n }\n deref() {\n return this.value;\n }\n};\nvar Ref = typeof WeakRef !== \"undefined\" ? WeakRef : StrongRef;\nvar UNTERMINATED = 0;\nvar TERMINATED = 1;\nfunction createCacheNode() {\n return {\n s: UNTERMINATED,\n v: void 0,\n o: null,\n p: null\n };\n}\nfunction weakMapMemoize(func, options = {}) {\n let fnNode = createCacheNode();\n const { resultEqualityCheck } = options;\n let lastResult;\n let resultsCount = 0;\n function memoized() {\n let cacheNode = fnNode;\n const { length } = arguments;\n for (let i = 0, l = length; i < l; i++) {\n const arg = arguments[i];\n if (typeof arg === \"function\" || typeof arg === \"object\" && arg !== null) {\n let objectCache = cacheNode.o;\n if (objectCache === null) {\n cacheNode.o = objectCache = /* @__PURE__ */ new WeakMap();\n }\n const objectNode = objectCache.get(arg);\n if (objectNode === void 0) {\n cacheNode = createCacheNode();\n objectCache.set(arg, cacheNode);\n } else {\n cacheNode = objectNode;\n }\n } else {\n let primitiveCache = cacheNode.p;\n if (primitiveCache === null) {\n cacheNode.p = primitiveCache = /* @__PURE__ */ new Map();\n }\n const primitiveNode = primitiveCache.get(arg);\n if (primitiveNode === void 0) {\n cacheNode = createCacheNode();\n primitiveCache.set(arg, cacheNode);\n } else {\n cacheNode = primitiveNode;\n }\n }\n }\n const terminatedNode = cacheNode;\n let result;\n if (cacheNode.s === TERMINATED) {\n result = cacheNode.v;\n } else {\n result = func.apply(null, arguments);\n resultsCount++;\n }\n terminatedNode.s = TERMINATED;\n if (resultEqualityCheck) {\n const lastResultValue = lastResult?.deref?.() ?? lastResult;\n if (lastResultValue != null && resultEqualityCheck(lastResultValue, result)) {\n result = lastResultValue;\n resultsCount !== 0 && resultsCount--;\n }\n const needsWeakRef = typeof result === \"object\" && result !== null || typeof result === \"function\";\n lastResult = needsWeakRef ? new Ref(result) : result;\n }\n terminatedNode.v = result;\n return result;\n }\n memoized.clearCache = () => {\n fnNode = createCacheNode();\n memoized.resetResultsCount();\n };\n memoized.resultsCount = () => resultsCount;\n memoized.resetResultsCount = () => {\n resultsCount = 0;\n };\n return memoized;\n}\n\n// src/createSelectorCreator.ts\nfunction createSelectorCreator(memoizeOrOptions, ...memoizeOptionsFromArgs) {\n const createSelectorCreatorOptions = typeof memoizeOrOptions === \"function\" ? {\n memoize: memoizeOrOptions,\n memoizeOptions: memoizeOptionsFromArgs\n } : memoizeOrOptions;\n const createSelector2 = (...createSelectorArgs) => {\n let recomputations = 0;\n let dependencyRecomputations = 0;\n let lastResult;\n let directlyPassedOptions = {};\n let resultFunc = createSelectorArgs.pop();\n if (typeof resultFunc === \"object\") {\n directlyPassedOptions = resultFunc;\n resultFunc = createSelectorArgs.pop();\n }\n assertIsFunction(\n resultFunc,\n `createSelector expects an output function after the inputs, but received: [${typeof resultFunc}]`\n );\n const combinedOptions = {\n ...createSelectorCreatorOptions,\n ...directlyPassedOptions\n };\n const {\n memoize,\n memoizeOptions = [],\n argsMemoize = weakMapMemoize,\n argsMemoizeOptions = [],\n devModeChecks = {}\n } = combinedOptions;\n const finalMemoizeOptions = ensureIsArray(memoizeOptions);\n const finalArgsMemoizeOptions = ensureIsArray(argsMemoizeOptions);\n const dependencies = getDependencies(createSelectorArgs);\n const memoizedResultFunc = memoize(function recomputationWrapper() {\n recomputations++;\n return resultFunc.apply(\n null,\n arguments\n );\n }, ...finalMemoizeOptions);\n let firstRun = true;\n const selector = argsMemoize(function dependenciesChecker() {\n dependencyRecomputations++;\n const inputSelectorResults = collectInputSelectorResults(\n dependencies,\n arguments\n );\n lastResult = memoizedResultFunc.apply(null, inputSelectorResults);\n if (process.env.NODE_ENV !== \"production\") {\n const { identityFunctionCheck, inputStabilityCheck } = getDevModeChecksExecutionInfo(firstRun, devModeChecks);\n if (identityFunctionCheck.shouldRun) {\n identityFunctionCheck.run(\n resultFunc,\n inputSelectorResults,\n lastResult\n );\n }\n if (inputStabilityCheck.shouldRun) {\n const inputSelectorResultsCopy = collectInputSelectorResults(\n dependencies,\n arguments\n );\n inputStabilityCheck.run(\n { inputSelectorResults, inputSelectorResultsCopy },\n { memoize, memoizeOptions: finalMemoizeOptions },\n arguments\n );\n }\n if (firstRun)\n firstRun = false;\n }\n return lastResult;\n }, ...finalArgsMemoizeOptions);\n return Object.assign(selector, {\n resultFunc,\n memoizedResultFunc,\n dependencies,\n dependencyRecomputations: () => dependencyRecomputations,\n resetDependencyRecomputations: () => {\n dependencyRecomputations = 0;\n },\n lastResult: () => lastResult,\n recomputations: () => recomputations,\n resetRecomputations: () => {\n recomputations = 0;\n },\n memoize,\n argsMemoize\n });\n };\n Object.assign(createSelector2, {\n withTypes: () => createSelector2\n });\n return createSelector2;\n}\nvar createSelector = /* @__PURE__ */ createSelectorCreator(weakMapMemoize);\n\n// src/createStructuredSelector.ts\nvar createStructuredSelector = Object.assign(\n (inputSelectorsObject, selectorCreator = createSelector) => {\n assertIsObject(\n inputSelectorsObject,\n `createStructuredSelector expects first argument to be an object where each property is a selector, instead received a ${typeof inputSelectorsObject}`\n );\n const inputSelectorKeys = Object.keys(inputSelectorsObject);\n const dependencies = inputSelectorKeys.map(\n (key) => inputSelectorsObject[key]\n );\n const structuredSelector = selectorCreator(\n dependencies,\n (...inputSelectorResults) => {\n return inputSelectorResults.reduce((composition, value, index) => {\n composition[inputSelectorKeys[index]] = value;\n return composition;\n }, {});\n }\n );\n return structuredSelector;\n },\n { withTypes: () => createStructuredSelector }\n);\nexport {\n createSelector,\n createSelectorCreator,\n createStructuredSelector,\n lruMemoize,\n referenceEqualityCheck,\n setGlobalDevModeChecks,\n autotrackMemoize as unstable_autotrackMemoize,\n weakMapMemoize\n};\n//# sourceMappingURL=reselect.mjs.map","// src/index.ts\nfunction createThunkMiddleware(extraArgument) {\n const middleware = ({ dispatch, getState }) => (next) => (action) => {\n if (typeof action === \"function\") {\n return action(dispatch, getState, extraArgument);\n }\n return next(action);\n };\n return middleware;\n}\nvar thunk = createThunkMiddleware();\nvar withExtraArgument = createThunkMiddleware;\nexport {\n thunk,\n withExtraArgument\n};\n","// src/index.ts\nexport * from \"redux\";\nimport { produce, current as current2, freeze, original as original2, isDraft as isDraft4 } from \"immer\";\nimport { createSelector, createSelectorCreator as createSelectorCreator2, lruMemoize, weakMapMemoize as weakMapMemoize2 } from \"reselect\";\n\n// src/createDraftSafeSelector.ts\nimport { current, isDraft } from \"immer\";\nimport { createSelectorCreator, weakMapMemoize } from \"reselect\";\nvar createDraftSafeSelectorCreator = (...args) => {\n const createSelector2 = createSelectorCreator(...args);\n const createDraftSafeSelector2 = Object.assign((...args2) => {\n const selector = createSelector2(...args2);\n const wrappedSelector = (value, ...rest) => selector(isDraft(value) ? current(value) : value, ...rest);\n Object.assign(wrappedSelector, selector);\n return wrappedSelector;\n }, {\n withTypes: () => createDraftSafeSelector2\n });\n return createDraftSafeSelector2;\n};\nvar createDraftSafeSelector = createDraftSafeSelectorCreator(weakMapMemoize);\n\n// src/configureStore.ts\nimport { applyMiddleware, createStore, compose as compose2, combineReducers, isPlainObject as isPlainObject2 } from \"redux\";\n\n// src/devtoolsExtension.ts\nimport { compose } from \"redux\";\nvar composeWithDevTools = typeof window !== \"undefined\" && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ : function() {\n if (arguments.length === 0)\n return void 0;\n if (typeof arguments[0] === \"object\")\n return compose;\n return compose.apply(null, arguments);\n};\nvar devToolsEnhancer = typeof window !== \"undefined\" && window.__REDUX_DEVTOOLS_EXTENSION__ ? window.__REDUX_DEVTOOLS_EXTENSION__ : function() {\n return function(noop3) {\n return noop3;\n };\n};\n\n// src/getDefaultMiddleware.ts\nimport { thunk as thunkMiddleware, withExtraArgument } from \"redux-thunk\";\n\n// src/createAction.ts\nimport { isAction } from \"redux\";\n\n// src/tsHelpers.ts\nvar hasMatchFunction = (v) => {\n return v && typeof v.match === \"function\";\n};\n\n// src/createAction.ts\nfunction createAction(type, prepareAction) {\n function actionCreator(...args) {\n if (prepareAction) {\n let prepared = prepareAction(...args);\n if (!prepared) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : \"prepareAction did not return an object\");\n }\n return {\n type,\n payload: prepared.payload,\n ...\"meta\" in prepared && {\n meta: prepared.meta\n },\n ...\"error\" in prepared && {\n error: prepared.error\n }\n };\n }\n return {\n type,\n payload: args[0]\n };\n }\n actionCreator.toString = () => `${type}`;\n actionCreator.type = type;\n actionCreator.match = (action) => isAction(action) && action.type === type;\n return actionCreator;\n}\nfunction isActionCreator(action) {\n return typeof action === \"function\" && \"type\" in action && // hasMatchFunction only wants Matchers but I don't see the point in rewriting it\n hasMatchFunction(action);\n}\nfunction isFSA(action) {\n return isAction(action) && Object.keys(action).every(isValidKey);\n}\nfunction isValidKey(key) {\n return [\"type\", \"payload\", \"error\", \"meta\"].indexOf(key) > -1;\n}\n\n// src/actionCreatorInvariantMiddleware.ts\nfunction getMessage(type) {\n const splitType = type ? `${type}`.split(\"/\") : [];\n const actionName = splitType[splitType.length - 1] || \"actionCreator\";\n return `Detected an action creator with type \"${type || \"unknown\"}\" being dispatched. \nMake sure you're calling the action creator before dispatching, i.e. \\`dispatch(${actionName}())\\` instead of \\`dispatch(${actionName})\\`. This is necessary even if the action has no payload.`;\n}\nfunction createActionCreatorInvariantMiddleware(options = {}) {\n if (process.env.NODE_ENV === \"production\") {\n return () => (next) => (action) => next(action);\n }\n const {\n isActionCreator: isActionCreator2 = isActionCreator\n } = options;\n return () => (next) => (action) => {\n if (isActionCreator2(action)) {\n console.warn(getMessage(action.type));\n }\n return next(action);\n };\n}\n\n// src/utils.ts\nimport { produce as createNextState, isDraftable } from \"immer\";\nfunction getTimeMeasureUtils(maxDelay, fnName) {\n let elapsed = 0;\n return {\n measureTime(fn) {\n const started = Date.now();\n try {\n return fn();\n } finally {\n const finished = Date.now();\n elapsed += finished - started;\n }\n },\n warnIfExceeded() {\n if (elapsed > maxDelay) {\n console.warn(`${fnName} took ${elapsed}ms, which is more than the warning threshold of ${maxDelay}ms. \nIf your state or actions are very large, you may want to disable the middleware as it might cause too much of a slowdown in development mode. See https://redux-toolkit.js.org/api/getDefaultMiddleware for instructions.\nIt is disabled in production builds, so you don't need to worry about that.`);\n }\n }\n };\n}\nfunction find(iterable, comparator) {\n for (const entry of iterable) {\n if (comparator(entry)) {\n return entry;\n }\n }\n return void 0;\n}\nvar Tuple = class _Tuple extends Array {\n constructor(...items) {\n super(...items);\n Object.setPrototypeOf(this, _Tuple.prototype);\n }\n static get [Symbol.species]() {\n return _Tuple;\n }\n concat(...arr) {\n return super.concat.apply(this, arr);\n }\n prepend(...arr) {\n if (arr.length === 1 && Array.isArray(arr[0])) {\n return new _Tuple(...arr[0].concat(this));\n }\n return new _Tuple(...arr.concat(this));\n }\n};\nfunction freezeDraftable(val) {\n return isDraftable(val) ? createNextState(val, () => {\n }) : val;\n}\nfunction emplace(map, key, handler) {\n if (map.has(key)) {\n let value = map.get(key);\n if (handler.update) {\n value = handler.update(value, key, map);\n map.set(key, value);\n }\n return value;\n }\n if (!handler.insert)\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : \"No insert provided for key not already in map\");\n const inserted = handler.insert(key, map);\n map.set(key, inserted);\n return inserted;\n}\n\n// src/immutableStateInvariantMiddleware.ts\nfunction isImmutableDefault(value) {\n return typeof value !== \"object\" || value == null || Object.isFrozen(value);\n}\nfunction trackForMutations(isImmutable, ignorePaths, obj) {\n const trackedProperties = trackProperties(isImmutable, ignorePaths, obj);\n return {\n detectMutations() {\n return detectMutations(isImmutable, ignorePaths, trackedProperties, obj);\n }\n };\n}\nfunction trackProperties(isImmutable, ignorePaths = [], obj, path = \"\", checkedObjects = /* @__PURE__ */ new Set()) {\n const tracked = {\n value: obj\n };\n if (!isImmutable(obj) && !checkedObjects.has(obj)) {\n checkedObjects.add(obj);\n tracked.children = {};\n for (const key in obj) {\n const childPath = path ? path + \".\" + key : key;\n if (ignorePaths.length && ignorePaths.indexOf(childPath) !== -1) {\n continue;\n }\n tracked.children[key] = trackProperties(isImmutable, ignorePaths, obj[key], childPath);\n }\n }\n return tracked;\n}\nfunction detectMutations(isImmutable, ignoredPaths = [], trackedProperty, obj, sameParentRef = false, path = \"\") {\n const prevObj = trackedProperty ? trackedProperty.value : void 0;\n const sameRef = prevObj === obj;\n if (sameParentRef && !sameRef && !Number.isNaN(obj)) {\n return {\n wasMutated: true,\n path\n };\n }\n if (isImmutable(prevObj) || isImmutable(obj)) {\n return {\n wasMutated: false\n };\n }\n const keysToDetect = {};\n for (let key in trackedProperty.children) {\n keysToDetect[key] = true;\n }\n for (let key in obj) {\n keysToDetect[key] = true;\n }\n const hasIgnoredPaths = ignoredPaths.length > 0;\n for (let key in keysToDetect) {\n const nestedPath = path ? path + \".\" + key : key;\n if (hasIgnoredPaths) {\n const hasMatches = ignoredPaths.some((ignored) => {\n if (ignored instanceof RegExp) {\n return ignored.test(nestedPath);\n }\n return nestedPath === ignored;\n });\n if (hasMatches) {\n continue;\n }\n }\n const result = detectMutations(isImmutable, ignoredPaths, trackedProperty.children[key], obj[key], sameRef, nestedPath);\n if (result.wasMutated) {\n return result;\n }\n }\n return {\n wasMutated: false\n };\n}\nfunction createImmutableStateInvariantMiddleware(options = {}) {\n if (process.env.NODE_ENV === \"production\") {\n return () => (next) => (action) => next(action);\n } else {\n let stringify2 = function(obj, serializer, indent, decycler) {\n return JSON.stringify(obj, getSerialize2(serializer, decycler), indent);\n }, getSerialize2 = function(serializer, decycler) {\n let stack = [], keys = [];\n if (!decycler)\n decycler = function(_, value) {\n if (stack[0] === value)\n return \"[Circular ~]\";\n return \"[Circular ~.\" + keys.slice(0, stack.indexOf(value)).join(\".\") + \"]\";\n };\n return function(key, value) {\n if (stack.length > 0) {\n var thisPos = stack.indexOf(this);\n ~thisPos ? stack.splice(thisPos + 1) : stack.push(this);\n ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key);\n if (~stack.indexOf(value))\n value = decycler.call(this, key, value);\n } else\n stack.push(value);\n return serializer == null ? value : serializer.call(this, key, value);\n };\n };\n var stringify = stringify2, getSerialize = getSerialize2;\n let {\n isImmutable = isImmutableDefault,\n ignoredPaths,\n warnAfter = 32\n } = options;\n const track = trackForMutations.bind(null, isImmutable, ignoredPaths);\n return ({\n getState\n }) => {\n let state = getState();\n let tracker = track(state);\n let result;\n return (next) => (action) => {\n const measureUtils = getTimeMeasureUtils(warnAfter, \"ImmutableStateInvariantMiddleware\");\n measureUtils.measureTime(() => {\n state = getState();\n result = tracker.detectMutations();\n tracker = track(state);\n if (result.wasMutated) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(19) : `A state mutation was detected between dispatches, in the path '${result.path || \"\"}'. This may cause incorrect behavior. (https://redux.js.org/style-guide/style-guide#do-not-mutate-state)`);\n }\n });\n const dispatchedAction = next(action);\n measureUtils.measureTime(() => {\n state = getState();\n result = tracker.detectMutations();\n tracker = track(state);\n if (result.wasMutated) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(20) : `A state mutation was detected inside a dispatch, in the path: ${result.path || \"\"}. Take a look at the reducer(s) handling the action ${stringify2(action)}. (https://redux.js.org/style-guide/style-guide#do-not-mutate-state)`);\n }\n });\n measureUtils.warnIfExceeded();\n return dispatchedAction;\n };\n };\n }\n}\n\n// src/serializableStateInvariantMiddleware.ts\nimport { isAction as isAction2, isPlainObject } from \"redux\";\nfunction isPlain(val) {\n const type = typeof val;\n return val == null || type === \"string\" || type === \"boolean\" || type === \"number\" || Array.isArray(val) || isPlainObject(val);\n}\nfunction findNonSerializableValue(value, path = \"\", isSerializable = isPlain, getEntries, ignoredPaths = [], cache) {\n let foundNestedSerializable;\n if (!isSerializable(value)) {\n return {\n keyPath: path || \"\",\n value\n };\n }\n if (typeof value !== \"object\" || value === null) {\n return false;\n }\n if (cache?.has(value))\n return false;\n const entries = getEntries != null ? getEntries(value) : Object.entries(value);\n const hasIgnoredPaths = ignoredPaths.length > 0;\n for (const [key, nestedValue] of entries) {\n const nestedPath = path ? path + \".\" + key : key;\n if (hasIgnoredPaths) {\n const hasMatches = ignoredPaths.some((ignored) => {\n if (ignored instanceof RegExp) {\n return ignored.test(nestedPath);\n }\n return nestedPath === ignored;\n });\n if (hasMatches) {\n continue;\n }\n }\n if (!isSerializable(nestedValue)) {\n return {\n keyPath: nestedPath,\n value: nestedValue\n };\n }\n if (typeof nestedValue === \"object\") {\n foundNestedSerializable = findNonSerializableValue(nestedValue, nestedPath, isSerializable, getEntries, ignoredPaths, cache);\n if (foundNestedSerializable) {\n return foundNestedSerializable;\n }\n }\n }\n if (cache && isNestedFrozen(value))\n cache.add(value);\n return false;\n}\nfunction isNestedFrozen(value) {\n if (!Object.isFrozen(value))\n return false;\n for (const nestedValue of Object.values(value)) {\n if (typeof nestedValue !== \"object\" || nestedValue === null)\n continue;\n if (!isNestedFrozen(nestedValue))\n return false;\n }\n return true;\n}\nfunction createSerializableStateInvariantMiddleware(options = {}) {\n if (process.env.NODE_ENV === \"production\") {\n return () => (next) => (action) => next(action);\n } else {\n const {\n isSerializable = isPlain,\n getEntries,\n ignoredActions = [],\n ignoredActionPaths = [\"meta.arg\", \"meta.baseQueryMeta\"],\n ignoredPaths = [],\n warnAfter = 32,\n ignoreState = false,\n ignoreActions = false,\n disableCache = false\n } = options;\n const cache = !disableCache && WeakSet ? /* @__PURE__ */ new WeakSet() : void 0;\n return (storeAPI) => (next) => (action) => {\n if (!isAction2(action)) {\n return next(action);\n }\n const result = next(action);\n const measureUtils = getTimeMeasureUtils(warnAfter, \"SerializableStateInvariantMiddleware\");\n if (!ignoreActions && !(ignoredActions.length && ignoredActions.indexOf(action.type) !== -1)) {\n measureUtils.measureTime(() => {\n const foundActionNonSerializableValue = findNonSerializableValue(action, \"\", isSerializable, getEntries, ignoredActionPaths, cache);\n if (foundActionNonSerializableValue) {\n const {\n keyPath,\n value\n } = foundActionNonSerializableValue;\n console.error(`A non-serializable value was detected in an action, in the path: \\`${keyPath}\\`. Value:`, value, \"\\nTake a look at the logic that dispatched this action: \", action, \"\\n(See https://redux.js.org/faq/actions#why-should-type-be-a-string-or-at-least-serializable-why-should-my-action-types-be-constants)\", \"\\n(To allow non-serializable values see: https://redux-toolkit.js.org/usage/usage-guide#working-with-non-serializable-data)\");\n }\n });\n }\n if (!ignoreState) {\n measureUtils.measureTime(() => {\n const state = storeAPI.getState();\n const foundStateNonSerializableValue = findNonSerializableValue(state, \"\", isSerializable, getEntries, ignoredPaths, cache);\n if (foundStateNonSerializableValue) {\n const {\n keyPath,\n value\n } = foundStateNonSerializableValue;\n console.error(`A non-serializable value was detected in the state, in the path: \\`${keyPath}\\`. Value:`, value, `\nTake a look at the reducer(s) handling this action type: ${action.type}.\n(See https://redux.js.org/faq/organizing-state#can-i-put-functions-promises-or-other-non-serializable-items-in-my-store-state)`);\n }\n });\n measureUtils.warnIfExceeded();\n }\n return result;\n };\n }\n}\n\n// src/getDefaultMiddleware.ts\nfunction isBoolean(x) {\n return typeof x === \"boolean\";\n}\nvar buildGetDefaultMiddleware = () => function getDefaultMiddleware(options) {\n const {\n thunk = true,\n immutableCheck = true,\n serializableCheck = true,\n actionCreatorCheck = true\n } = options ?? {};\n let middlewareArray = new Tuple();\n if (thunk) {\n if (isBoolean(thunk)) {\n middlewareArray.push(thunkMiddleware);\n } else {\n middlewareArray.push(withExtraArgument(thunk.extraArgument));\n }\n }\n if (process.env.NODE_ENV !== \"production\") {\n if (immutableCheck) {\n let immutableOptions = {};\n if (!isBoolean(immutableCheck)) {\n immutableOptions = immutableCheck;\n }\n middlewareArray.unshift(createImmutableStateInvariantMiddleware(immutableOptions));\n }\n if (serializableCheck) {\n let serializableOptions = {};\n if (!isBoolean(serializableCheck)) {\n serializableOptions = serializableCheck;\n }\n middlewareArray.push(createSerializableStateInvariantMiddleware(serializableOptions));\n }\n if (actionCreatorCheck) {\n let actionCreatorOptions = {};\n if (!isBoolean(actionCreatorCheck)) {\n actionCreatorOptions = actionCreatorCheck;\n }\n middlewareArray.unshift(createActionCreatorInvariantMiddleware(actionCreatorOptions));\n }\n }\n return middlewareArray;\n};\n\n// src/autoBatchEnhancer.ts\nvar SHOULD_AUTOBATCH = \"RTK_autoBatch\";\nvar prepareAutoBatched = () => (payload) => ({\n payload,\n meta: {\n [SHOULD_AUTOBATCH]: true\n }\n});\nvar createQueueWithTimer = (timeout) => {\n return (notify) => {\n setTimeout(notify, timeout);\n };\n};\nvar rAF = typeof window !== \"undefined\" && window.requestAnimationFrame ? window.requestAnimationFrame : createQueueWithTimer(10);\nvar autoBatchEnhancer = (options = {\n type: \"raf\"\n}) => (next) => (...args) => {\n const store = next(...args);\n let notifying = true;\n let shouldNotifyAtEndOfTick = false;\n let notificationQueued = false;\n const listeners = /* @__PURE__ */ new Set();\n const queueCallback = options.type === \"tick\" ? queueMicrotask : options.type === \"raf\" ? rAF : options.type === \"callback\" ? options.queueNotification : createQueueWithTimer(options.timeout);\n const notifyListeners = () => {\n notificationQueued = false;\n if (shouldNotifyAtEndOfTick) {\n shouldNotifyAtEndOfTick = false;\n listeners.forEach((l) => l());\n }\n };\n return Object.assign({}, store, {\n // Override the base `store.subscribe` method to keep original listeners\n // from running if we're delaying notifications\n subscribe(listener2) {\n const wrappedListener = () => notifying && listener2();\n const unsubscribe = store.subscribe(wrappedListener);\n listeners.add(listener2);\n return () => {\n unsubscribe();\n listeners.delete(listener2);\n };\n },\n // Override the base `store.dispatch` method so that we can check actions\n // for the `shouldAutoBatch` flag and determine if batching is active\n dispatch(action) {\n try {\n notifying = !action?.meta?.[SHOULD_AUTOBATCH];\n shouldNotifyAtEndOfTick = !notifying;\n if (shouldNotifyAtEndOfTick) {\n if (!notificationQueued) {\n notificationQueued = true;\n queueCallback(notifyListeners);\n }\n }\n return store.dispatch(action);\n } finally {\n notifying = true;\n }\n }\n });\n};\n\n// src/getDefaultEnhancers.ts\nvar buildGetDefaultEnhancers = (middlewareEnhancer) => function getDefaultEnhancers(options) {\n const {\n autoBatch = true\n } = options ?? {};\n let enhancerArray = new Tuple(middlewareEnhancer);\n if (autoBatch) {\n enhancerArray.push(autoBatchEnhancer(typeof autoBatch === \"object\" ? autoBatch : void 0));\n }\n return enhancerArray;\n};\n\n// src/configureStore.ts\nvar IS_PRODUCTION = process.env.NODE_ENV === \"production\";\nfunction configureStore(options) {\n const getDefaultMiddleware = buildGetDefaultMiddleware();\n const {\n reducer = void 0,\n middleware,\n devTools = true,\n preloadedState = void 0,\n enhancers = void 0\n } = options || {};\n let rootReducer;\n if (typeof reducer === \"function\") {\n rootReducer = reducer;\n } else if (isPlainObject2(reducer)) {\n rootReducer = combineReducers(reducer);\n } else {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : \"`reducer` is a required argument, and must be a function or an object of functions that can be passed to combineReducers\");\n }\n if (!IS_PRODUCTION && middleware && typeof middleware !== \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : \"`middleware` field must be a callback\");\n }\n let finalMiddleware;\n if (typeof middleware === \"function\") {\n finalMiddleware = middleware(getDefaultMiddleware);\n if (!IS_PRODUCTION && !Array.isArray(finalMiddleware)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : \"when using a middleware builder function, an array of middleware must be returned\");\n }\n } else {\n finalMiddleware = getDefaultMiddleware();\n }\n if (!IS_PRODUCTION && finalMiddleware.some((item) => typeof item !== \"function\")) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : \"each middleware provided to configureStore must be a function\");\n }\n let finalCompose = compose2;\n if (devTools) {\n finalCompose = composeWithDevTools({\n // Enable capture of stack traces for dispatched Redux actions\n trace: !IS_PRODUCTION,\n ...typeof devTools === \"object\" && devTools\n });\n }\n const middlewareEnhancer = applyMiddleware(...finalMiddleware);\n const getDefaultEnhancers = buildGetDefaultEnhancers(middlewareEnhancer);\n if (!IS_PRODUCTION && enhancers && typeof enhancers !== \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : \"`enhancers` field must be a callback\");\n }\n let storeEnhancers = typeof enhancers === \"function\" ? enhancers(getDefaultEnhancers) : getDefaultEnhancers();\n if (!IS_PRODUCTION && !Array.isArray(storeEnhancers)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : \"`enhancers` callback must return an array\");\n }\n if (!IS_PRODUCTION && storeEnhancers.some((item) => typeof item !== \"function\")) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : \"each enhancer provided to configureStore must be a function\");\n }\n if (!IS_PRODUCTION && finalMiddleware.length && !storeEnhancers.includes(middlewareEnhancer)) {\n console.error(\"middlewares were provided, but middleware enhancer was not included in final enhancers - make sure to call `getDefaultEnhancers`\");\n }\n const composedEnhancer = finalCompose(...storeEnhancers);\n return createStore(rootReducer, preloadedState, composedEnhancer);\n}\n\n// src/createReducer.ts\nimport { produce as createNextState2, isDraft as isDraft2, isDraftable as isDraftable2 } from \"immer\";\n\n// src/mapBuilders.ts\nfunction executeReducerBuilderCallback(builderCallback) {\n const actionsMap = {};\n const actionMatchers = [];\n let defaultCaseReducer;\n const builder = {\n addCase(typeOrActionCreator, reducer) {\n if (process.env.NODE_ENV !== \"production\") {\n if (actionMatchers.length > 0) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(26) : \"`builder.addCase` should only be called before calling `builder.addMatcher`\");\n }\n if (defaultCaseReducer) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(27) : \"`builder.addCase` should only be called before calling `builder.addDefaultCase`\");\n }\n }\n const type = typeof typeOrActionCreator === \"string\" ? typeOrActionCreator : typeOrActionCreator.type;\n if (!type) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(28) : \"`builder.addCase` cannot be called with an empty action type\");\n }\n if (type in actionsMap) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(29) : `\\`builder.addCase\\` cannot be called with two reducers for the same action type '${type}'`);\n }\n actionsMap[type] = reducer;\n return builder;\n },\n addMatcher(matcher, reducer) {\n if (process.env.NODE_ENV !== \"production\") {\n if (defaultCaseReducer) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(30) : \"`builder.addMatcher` should only be called before calling `builder.addDefaultCase`\");\n }\n }\n actionMatchers.push({\n matcher,\n reducer\n });\n return builder;\n },\n addDefaultCase(reducer) {\n if (process.env.NODE_ENV !== \"production\") {\n if (defaultCaseReducer) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(31) : \"`builder.addDefaultCase` can only be called once\");\n }\n }\n defaultCaseReducer = reducer;\n return builder;\n }\n };\n builderCallback(builder);\n return [actionsMap, actionMatchers, defaultCaseReducer];\n}\n\n// src/createReducer.ts\nfunction isStateFunction(x) {\n return typeof x === \"function\";\n}\nfunction createReducer(initialState, mapOrBuilderCallback) {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof mapOrBuilderCallback === \"object\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : \"The object notation for `createReducer` has been removed. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createReducer\");\n }\n }\n let [actionsMap, finalActionMatchers, finalDefaultCaseReducer] = executeReducerBuilderCallback(mapOrBuilderCallback);\n let getInitialState;\n if (isStateFunction(initialState)) {\n getInitialState = () => freezeDraftable(initialState());\n } else {\n const frozenInitialState = freezeDraftable(initialState);\n getInitialState = () => frozenInitialState;\n }\n function reducer(state = getInitialState(), action) {\n let caseReducers = [actionsMap[action.type], ...finalActionMatchers.filter(({\n matcher\n }) => matcher(action)).map(({\n reducer: reducer2\n }) => reducer2)];\n if (caseReducers.filter((cr) => !!cr).length === 0) {\n caseReducers = [finalDefaultCaseReducer];\n }\n return caseReducers.reduce((previousState, caseReducer) => {\n if (caseReducer) {\n if (isDraft2(previousState)) {\n const draft = previousState;\n const result = caseReducer(draft, action);\n if (result === void 0) {\n return previousState;\n }\n return result;\n } else if (!isDraftable2(previousState)) {\n const result = caseReducer(previousState, action);\n if (result === void 0) {\n if (previousState === null) {\n return previousState;\n }\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : \"A case reducer on a non-draftable value must not return undefined\");\n }\n return result;\n } else {\n return createNextState2(previousState, (draft) => {\n return caseReducer(draft, action);\n });\n }\n }\n return previousState;\n }, state);\n }\n reducer.getInitialState = getInitialState;\n return reducer;\n}\n\n// src/nanoid.ts\nvar urlAlphabet = \"ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW\";\nvar nanoid = (size = 21) => {\n let id = \"\";\n let i = size;\n while (i--) {\n id += urlAlphabet[Math.random() * 64 | 0];\n }\n return id;\n};\n\n// src/matchers.ts\nvar matches = (matcher, action) => {\n if (hasMatchFunction(matcher)) {\n return matcher.match(action);\n } else {\n return matcher(action);\n }\n};\nfunction isAnyOf(...matchers) {\n return (action) => {\n return matchers.some((matcher) => matches(matcher, action));\n };\n}\nfunction isAllOf(...matchers) {\n return (action) => {\n return matchers.every((matcher) => matches(matcher, action));\n };\n}\nfunction hasExpectedRequestMetadata(action, validStatus) {\n if (!action || !action.meta)\n return false;\n const hasValidRequestId = typeof action.meta.requestId === \"string\";\n const hasValidRequestStatus = validStatus.indexOf(action.meta.requestStatus) > -1;\n return hasValidRequestId && hasValidRequestStatus;\n}\nfunction isAsyncThunkArray(a) {\n return typeof a[0] === \"function\" && \"pending\" in a[0] && \"fulfilled\" in a[0] && \"rejected\" in a[0];\n}\nfunction isPending(...asyncThunks) {\n if (asyncThunks.length === 0) {\n return (action) => hasExpectedRequestMetadata(action, [\"pending\"]);\n }\n if (!isAsyncThunkArray(asyncThunks)) {\n return isPending()(asyncThunks[0]);\n }\n return (action) => {\n const matchers = asyncThunks.map((asyncThunk) => asyncThunk.pending);\n const combinedMatcher = isAnyOf(...matchers);\n return combinedMatcher(action);\n };\n}\nfunction isRejected(...asyncThunks) {\n if (asyncThunks.length === 0) {\n return (action) => hasExpectedRequestMetadata(action, [\"rejected\"]);\n }\n if (!isAsyncThunkArray(asyncThunks)) {\n return isRejected()(asyncThunks[0]);\n }\n return (action) => {\n const matchers = asyncThunks.map((asyncThunk) => asyncThunk.rejected);\n const combinedMatcher = isAnyOf(...matchers);\n return combinedMatcher(action);\n };\n}\nfunction isRejectedWithValue(...asyncThunks) {\n const hasFlag = (action) => {\n return action && action.meta && action.meta.rejectedWithValue;\n };\n if (asyncThunks.length === 0) {\n return (action) => {\n const combinedMatcher = isAllOf(isRejected(...asyncThunks), hasFlag);\n return combinedMatcher(action);\n };\n }\n if (!isAsyncThunkArray(asyncThunks)) {\n return isRejectedWithValue()(asyncThunks[0]);\n }\n return (action) => {\n const combinedMatcher = isAllOf(isRejected(...asyncThunks), hasFlag);\n return combinedMatcher(action);\n };\n}\nfunction isFulfilled(...asyncThunks) {\n if (asyncThunks.length === 0) {\n return (action) => hasExpectedRequestMetadata(action, [\"fulfilled\"]);\n }\n if (!isAsyncThunkArray(asyncThunks)) {\n return isFulfilled()(asyncThunks[0]);\n }\n return (action) => {\n const matchers = asyncThunks.map((asyncThunk) => asyncThunk.fulfilled);\n const combinedMatcher = isAnyOf(...matchers);\n return combinedMatcher(action);\n };\n}\nfunction isAsyncThunkAction(...asyncThunks) {\n if (asyncThunks.length === 0) {\n return (action) => hasExpectedRequestMetadata(action, [\"pending\", \"fulfilled\", \"rejected\"]);\n }\n if (!isAsyncThunkArray(asyncThunks)) {\n return isAsyncThunkAction()(asyncThunks[0]);\n }\n return (action) => {\n const matchers = [];\n for (const asyncThunk of asyncThunks) {\n matchers.push(asyncThunk.pending, asyncThunk.rejected, asyncThunk.fulfilled);\n }\n const combinedMatcher = isAnyOf(...matchers);\n return combinedMatcher(action);\n };\n}\n\n// src/createAsyncThunk.ts\nvar commonProperties = [\"name\", \"message\", \"stack\", \"code\"];\nvar RejectWithValue = class {\n constructor(payload, meta) {\n this.payload = payload;\n this.meta = meta;\n }\n /*\n type-only property to distinguish between RejectWithValue and FulfillWithMeta\n does not exist at runtime\n */\n _type;\n};\nvar FulfillWithMeta = class {\n constructor(payload, meta) {\n this.payload = payload;\n this.meta = meta;\n }\n /*\n type-only property to distinguish between RejectWithValue and FulfillWithMeta\n does not exist at runtime\n */\n _type;\n};\nvar miniSerializeError = (value) => {\n if (typeof value === \"object\" && value !== null) {\n const simpleError = {};\n for (const property of commonProperties) {\n if (typeof value[property] === \"string\") {\n simpleError[property] = value[property];\n }\n }\n return simpleError;\n }\n return {\n message: String(value)\n };\n};\nvar createAsyncThunk = /* @__PURE__ */ (() => {\n function createAsyncThunk2(typePrefix, payloadCreator, options) {\n const fulfilled = createAction(typePrefix + \"/fulfilled\", (payload, requestId, arg, meta) => ({\n payload,\n meta: {\n ...meta || {},\n arg,\n requestId,\n requestStatus: \"fulfilled\"\n }\n }));\n const pending = createAction(typePrefix + \"/pending\", (requestId, arg, meta) => ({\n payload: void 0,\n meta: {\n ...meta || {},\n arg,\n requestId,\n requestStatus: \"pending\"\n }\n }));\n const rejected = createAction(typePrefix + \"/rejected\", (error, requestId, arg, payload, meta) => ({\n payload,\n error: (options && options.serializeError || miniSerializeError)(error || \"Rejected\"),\n meta: {\n ...meta || {},\n arg,\n requestId,\n rejectedWithValue: !!payload,\n requestStatus: \"rejected\",\n aborted: error?.name === \"AbortError\",\n condition: error?.name === \"ConditionError\"\n }\n }));\n function actionCreator(arg) {\n return (dispatch, getState, extra) => {\n const requestId = options?.idGenerator ? options.idGenerator(arg) : nanoid();\n const abortController = new AbortController();\n let abortHandler;\n let abortReason;\n function abort(reason) {\n abortReason = reason;\n abortController.abort();\n }\n const promise = async function() {\n let finalAction;\n try {\n let conditionResult = options?.condition?.(arg, {\n getState,\n extra\n });\n if (isThenable(conditionResult)) {\n conditionResult = await conditionResult;\n }\n if (conditionResult === false || abortController.signal.aborted) {\n throw {\n name: \"ConditionError\",\n message: \"Aborted due to condition callback returning false.\"\n };\n }\n const abortedPromise = new Promise((_, reject) => {\n abortHandler = () => {\n reject({\n name: \"AbortError\",\n message: abortReason || \"Aborted\"\n });\n };\n abortController.signal.addEventListener(\"abort\", abortHandler);\n });\n dispatch(pending(requestId, arg, options?.getPendingMeta?.({\n requestId,\n arg\n }, {\n getState,\n extra\n })));\n finalAction = await Promise.race([abortedPromise, Promise.resolve(payloadCreator(arg, {\n dispatch,\n getState,\n extra,\n requestId,\n signal: abortController.signal,\n abort,\n rejectWithValue: (value, meta) => {\n return new RejectWithValue(value, meta);\n },\n fulfillWithValue: (value, meta) => {\n return new FulfillWithMeta(value, meta);\n }\n })).then((result) => {\n if (result instanceof RejectWithValue) {\n throw result;\n }\n if (result instanceof FulfillWithMeta) {\n return fulfilled(result.payload, requestId, arg, result.meta);\n }\n return fulfilled(result, requestId, arg);\n })]);\n } catch (err) {\n finalAction = err instanceof RejectWithValue ? rejected(null, requestId, arg, err.payload, err.meta) : rejected(err, requestId, arg);\n } finally {\n if (abortHandler) {\n abortController.signal.removeEventListener(\"abort\", abortHandler);\n }\n }\n const skipDispatch = options && !options.dispatchConditionRejection && rejected.match(finalAction) && finalAction.meta.condition;\n if (!skipDispatch) {\n dispatch(finalAction);\n }\n return finalAction;\n }();\n return Object.assign(promise, {\n abort,\n requestId,\n arg,\n unwrap() {\n return promise.then(unwrapResult);\n }\n });\n };\n }\n return Object.assign(actionCreator, {\n pending,\n rejected,\n fulfilled,\n settled: isAnyOf(rejected, fulfilled),\n typePrefix\n });\n }\n createAsyncThunk2.withTypes = () => createAsyncThunk2;\n return createAsyncThunk2;\n})();\nfunction unwrapResult(action) {\n if (action.meta && action.meta.rejectedWithValue) {\n throw action.payload;\n }\n if (action.error) {\n throw action.error;\n }\n return action.payload;\n}\nfunction isThenable(value) {\n return value !== null && typeof value === \"object\" && typeof value.then === \"function\";\n}\n\n// src/createSlice.ts\nvar asyncThunkSymbol = /* @__PURE__ */ Symbol.for(\"rtk-slice-createasyncthunk\");\nvar asyncThunkCreator = {\n [asyncThunkSymbol]: createAsyncThunk\n};\nvar ReducerType = /* @__PURE__ */ ((ReducerType2) => {\n ReducerType2[\"reducer\"] = \"reducer\";\n ReducerType2[\"reducerWithPrepare\"] = \"reducerWithPrepare\";\n ReducerType2[\"asyncThunk\"] = \"asyncThunk\";\n return ReducerType2;\n})(ReducerType || {});\nfunction getType(slice, actionKey) {\n return `${slice}/${actionKey}`;\n}\nfunction buildCreateSlice({\n creators\n} = {}) {\n const cAT = creators?.asyncThunk?.[asyncThunkSymbol];\n return function createSlice2(options) {\n const {\n name,\n reducerPath = name\n } = options;\n if (!name) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : \"`name` is a required option for createSlice\");\n }\n if (typeof process !== \"undefined\" && process.env.NODE_ENV === \"development\") {\n if (options.initialState === void 0) {\n console.error(\"You must provide an `initialState` value that is not `undefined`. You may have misspelled `initialState`\");\n }\n }\n const reducers = (typeof options.reducers === \"function\" ? options.reducers(buildReducerCreators()) : options.reducers) || {};\n const reducerNames = Object.keys(reducers);\n const context = {\n sliceCaseReducersByName: {},\n sliceCaseReducersByType: {},\n actionCreators: {},\n sliceMatchers: []\n };\n const contextMethods = {\n addCase(typeOrActionCreator, reducer2) {\n const type = typeof typeOrActionCreator === \"string\" ? typeOrActionCreator : typeOrActionCreator.type;\n if (!type) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : \"`context.addCase` cannot be called with an empty action type\");\n }\n if (type in context.sliceCaseReducersByType) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : \"`context.addCase` cannot be called with two reducers for the same action type: \" + type);\n }\n context.sliceCaseReducersByType[type] = reducer2;\n return contextMethods;\n },\n addMatcher(matcher, reducer2) {\n context.sliceMatchers.push({\n matcher,\n reducer: reducer2\n });\n return contextMethods;\n },\n exposeAction(name2, actionCreator) {\n context.actionCreators[name2] = actionCreator;\n return contextMethods;\n },\n exposeCaseReducer(name2, reducer2) {\n context.sliceCaseReducersByName[name2] = reducer2;\n return contextMethods;\n }\n };\n reducerNames.forEach((reducerName) => {\n const reducerDefinition = reducers[reducerName];\n const reducerDetails = {\n reducerName,\n type: getType(name, reducerName),\n createNotation: typeof options.reducers === \"function\"\n };\n if (isAsyncThunkSliceReducerDefinition(reducerDefinition)) {\n handleThunkCaseReducerDefinition(reducerDetails, reducerDefinition, contextMethods, cAT);\n } else {\n handleNormalReducerDefinition(reducerDetails, reducerDefinition, contextMethods);\n }\n });\n function buildReducer() {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof options.extraReducers === \"object\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : \"The object notation for `createSlice.extraReducers` has been removed. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createSlice\");\n }\n }\n const [extraReducers = {}, actionMatchers = [], defaultCaseReducer = void 0] = typeof options.extraReducers === \"function\" ? executeReducerBuilderCallback(options.extraReducers) : [options.extraReducers];\n const finalCaseReducers = {\n ...extraReducers,\n ...context.sliceCaseReducersByType\n };\n return createReducer(options.initialState, (builder) => {\n for (let key in finalCaseReducers) {\n builder.addCase(key, finalCaseReducers[key]);\n }\n for (let sM of context.sliceMatchers) {\n builder.addMatcher(sM.matcher, sM.reducer);\n }\n for (let m of actionMatchers) {\n builder.addMatcher(m.matcher, m.reducer);\n }\n if (defaultCaseReducer) {\n builder.addDefaultCase(defaultCaseReducer);\n }\n });\n }\n const selectSelf = (state) => state;\n const injectedSelectorCache = /* @__PURE__ */ new Map();\n let _reducer;\n function reducer(state, action) {\n if (!_reducer)\n _reducer = buildReducer();\n return _reducer(state, action);\n }\n function getInitialState() {\n if (!_reducer)\n _reducer = buildReducer();\n return _reducer.getInitialState();\n }\n function makeSelectorProps(reducerPath2, injected = false) {\n function selectSlice(state) {\n let sliceState = state[reducerPath2];\n if (typeof sliceState === \"undefined\") {\n if (injected) {\n sliceState = getInitialState();\n } else if (process.env.NODE_ENV !== \"production\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : \"selectSlice returned undefined for an uninjected slice reducer\");\n }\n }\n return sliceState;\n }\n function getSelectors(selectState = selectSelf) {\n const selectorCache = emplace(injectedSelectorCache, injected, {\n insert: () => /* @__PURE__ */ new WeakMap()\n });\n return emplace(selectorCache, selectState, {\n insert: () => {\n const map = {};\n for (const [name2, selector] of Object.entries(options.selectors ?? {})) {\n map[name2] = wrapSelector(selector, selectState, getInitialState, injected);\n }\n return map;\n }\n });\n }\n return {\n reducerPath: reducerPath2,\n getSelectors,\n get selectors() {\n return getSelectors(selectSlice);\n },\n selectSlice\n };\n }\n const slice = {\n name,\n reducer,\n actions: context.actionCreators,\n caseReducers: context.sliceCaseReducersByName,\n getInitialState,\n ...makeSelectorProps(reducerPath),\n injectInto(injectable, {\n reducerPath: pathOpt,\n ...config\n } = {}) {\n const newReducerPath = pathOpt ?? reducerPath;\n injectable.inject({\n reducerPath: newReducerPath,\n reducer\n }, config);\n return {\n ...slice,\n ...makeSelectorProps(newReducerPath, true)\n };\n }\n };\n return slice;\n };\n}\nfunction wrapSelector(selector, selectState, getInitialState, injected) {\n function wrapper(rootState, ...args) {\n let sliceState = selectState(rootState);\n if (typeof sliceState === \"undefined\") {\n if (injected) {\n sliceState = getInitialState();\n } else if (process.env.NODE_ENV !== \"production\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : \"selectState returned undefined for an uninjected slice reducer\");\n }\n }\n return selector(sliceState, ...args);\n }\n wrapper.unwrapped = selector;\n return wrapper;\n}\nvar createSlice = /* @__PURE__ */ buildCreateSlice();\nfunction buildReducerCreators() {\n function asyncThunk(payloadCreator, config) {\n return {\n _reducerDefinitionType: \"asyncThunk\" /* asyncThunk */,\n payloadCreator,\n ...config\n };\n }\n asyncThunk.withTypes = () => asyncThunk;\n return {\n reducer(caseReducer) {\n return Object.assign({\n // hack so the wrapping function has the same name as the original\n // we need to create a wrapper so the `reducerDefinitionType` is not assigned to the original\n [caseReducer.name](...args) {\n return caseReducer(...args);\n }\n }[caseReducer.name], {\n _reducerDefinitionType: \"reducer\" /* reducer */\n });\n },\n preparedReducer(prepare, reducer) {\n return {\n _reducerDefinitionType: \"reducerWithPrepare\" /* reducerWithPrepare */,\n prepare,\n reducer\n };\n },\n asyncThunk\n };\n}\nfunction handleNormalReducerDefinition({\n type,\n reducerName,\n createNotation\n}, maybeReducerWithPrepare, context) {\n let caseReducer;\n let prepareCallback;\n if (\"reducer\" in maybeReducerWithPrepare) {\n if (createNotation && !isCaseReducerWithPrepareDefinition(maybeReducerWithPrepare)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(17) : \"Please use the `create.preparedReducer` notation for prepared action creators with the `create` notation.\");\n }\n caseReducer = maybeReducerWithPrepare.reducer;\n prepareCallback = maybeReducerWithPrepare.prepare;\n } else {\n caseReducer = maybeReducerWithPrepare;\n }\n context.addCase(type, caseReducer).exposeCaseReducer(reducerName, caseReducer).exposeAction(reducerName, prepareCallback ? createAction(type, prepareCallback) : createAction(type));\n}\nfunction isAsyncThunkSliceReducerDefinition(reducerDefinition) {\n return reducerDefinition._reducerDefinitionType === \"asyncThunk\" /* asyncThunk */;\n}\nfunction isCaseReducerWithPrepareDefinition(reducerDefinition) {\n return reducerDefinition._reducerDefinitionType === \"reducerWithPrepare\" /* reducerWithPrepare */;\n}\nfunction handleThunkCaseReducerDefinition({\n type,\n reducerName\n}, reducerDefinition, context, cAT) {\n if (!cAT) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(18) : \"Cannot use `create.asyncThunk` in the built-in `createSlice`. Use `buildCreateSlice({ creators: { asyncThunk: asyncThunkCreator } })` to create a customised version of `createSlice`.\");\n }\n const {\n payloadCreator,\n fulfilled,\n pending,\n rejected,\n settled,\n options\n } = reducerDefinition;\n const thunk = cAT(type, payloadCreator, options);\n context.exposeAction(reducerName, thunk);\n if (fulfilled) {\n context.addCase(thunk.fulfilled, fulfilled);\n }\n if (pending) {\n context.addCase(thunk.pending, pending);\n }\n if (rejected) {\n context.addCase(thunk.rejected, rejected);\n }\n if (settled) {\n context.addMatcher(thunk.settled, settled);\n }\n context.exposeCaseReducer(reducerName, {\n fulfilled: fulfilled || noop,\n pending: pending || noop,\n rejected: rejected || noop,\n settled: settled || noop\n });\n}\nfunction noop() {\n}\n\n// src/entities/entity_state.ts\nfunction getInitialEntityState() {\n return {\n ids: [],\n entities: {}\n };\n}\nfunction createInitialStateFactory(stateAdapter) {\n function getInitialState(additionalState = {}, entities) {\n const state = Object.assign(getInitialEntityState(), additionalState);\n return entities ? stateAdapter.setAll(state, entities) : state;\n }\n return {\n getInitialState\n };\n}\n\n// src/entities/state_selectors.ts\nfunction createSelectorsFactory() {\n function getSelectors(selectState, options = {}) {\n const {\n createSelector: createSelector2 = createDraftSafeSelector\n } = options;\n const selectIds = (state) => state.ids;\n const selectEntities = (state) => state.entities;\n const selectAll = createSelector2(selectIds, selectEntities, (ids, entities) => ids.map((id) => entities[id]));\n const selectId = (_, id) => id;\n const selectById = (entities, id) => entities[id];\n const selectTotal = createSelector2(selectIds, (ids) => ids.length);\n if (!selectState) {\n return {\n selectIds,\n selectEntities,\n selectAll,\n selectTotal,\n selectById: createSelector2(selectEntities, selectId, selectById)\n };\n }\n const selectGlobalizedEntities = createSelector2(selectState, selectEntities);\n return {\n selectIds: createSelector2(selectState, selectIds),\n selectEntities: selectGlobalizedEntities,\n selectAll: createSelector2(selectState, selectAll),\n selectTotal: createSelector2(selectState, selectTotal),\n selectById: createSelector2(selectGlobalizedEntities, selectId, selectById)\n };\n }\n return {\n getSelectors\n };\n}\n\n// src/entities/state_adapter.ts\nimport { produce as createNextState3, isDraft as isDraft3 } from \"immer\";\nvar isDraftTyped = isDraft3;\nfunction createSingleArgumentStateOperator(mutator) {\n const operator = createStateOperator((_, state) => mutator(state));\n return function operation(state) {\n return operator(state, void 0);\n };\n}\nfunction createStateOperator(mutator) {\n return function operation(state, arg) {\n function isPayloadActionArgument(arg2) {\n return isFSA(arg2);\n }\n const runMutator = (draft) => {\n if (isPayloadActionArgument(arg)) {\n mutator(arg.payload, draft);\n } else {\n mutator(arg, draft);\n }\n };\n if (isDraftTyped(state)) {\n runMutator(state);\n return state;\n }\n return createNextState3(state, runMutator);\n };\n}\n\n// src/entities/utils.ts\nfunction selectIdValue(entity, selectId) {\n const key = selectId(entity);\n if (process.env.NODE_ENV !== \"production\" && key === void 0) {\n console.warn(\"The entity passed to the `selectId` implementation returned undefined.\", \"You should probably provide your own `selectId` implementation.\", \"The entity that was passed:\", entity, \"The `selectId` implementation:\", selectId.toString());\n }\n return key;\n}\nfunction ensureEntitiesArray(entities) {\n if (!Array.isArray(entities)) {\n entities = Object.values(entities);\n }\n return entities;\n}\nfunction splitAddedUpdatedEntities(newEntities, selectId, state) {\n newEntities = ensureEntitiesArray(newEntities);\n const added = [];\n const updated = [];\n for (const entity of newEntities) {\n const id = selectIdValue(entity, selectId);\n if (id in state.entities) {\n updated.push({\n id,\n changes: entity\n });\n } else {\n added.push(entity);\n }\n }\n return [added, updated];\n}\n\n// src/entities/unsorted_state_adapter.ts\nfunction createUnsortedStateAdapter(selectId) {\n function addOneMutably(entity, state) {\n const key = selectIdValue(entity, selectId);\n if (key in state.entities) {\n return;\n }\n state.ids.push(key);\n state.entities[key] = entity;\n }\n function addManyMutably(newEntities, state) {\n newEntities = ensureEntitiesArray(newEntities);\n for (const entity of newEntities) {\n addOneMutably(entity, state);\n }\n }\n function setOneMutably(entity, state) {\n const key = selectIdValue(entity, selectId);\n if (!(key in state.entities)) {\n state.ids.push(key);\n }\n ;\n state.entities[key] = entity;\n }\n function setManyMutably(newEntities, state) {\n newEntities = ensureEntitiesArray(newEntities);\n for (const entity of newEntities) {\n setOneMutably(entity, state);\n }\n }\n function setAllMutably(newEntities, state) {\n newEntities = ensureEntitiesArray(newEntities);\n state.ids = [];\n state.entities = {};\n addManyMutably(newEntities, state);\n }\n function removeOneMutably(key, state) {\n return removeManyMutably([key], state);\n }\n function removeManyMutably(keys, state) {\n let didMutate = false;\n keys.forEach((key) => {\n if (key in state.entities) {\n delete state.entities[key];\n didMutate = true;\n }\n });\n if (didMutate) {\n state.ids = state.ids.filter((id) => id in state.entities);\n }\n }\n function removeAllMutably(state) {\n Object.assign(state, {\n ids: [],\n entities: {}\n });\n }\n function takeNewKey(keys, update, state) {\n const original3 = state.entities[update.id];\n if (original3 === void 0) {\n return false;\n }\n const updated = Object.assign({}, original3, update.changes);\n const newKey = selectIdValue(updated, selectId);\n const hasNewKey = newKey !== update.id;\n if (hasNewKey) {\n keys[update.id] = newKey;\n delete state.entities[update.id];\n }\n ;\n state.entities[newKey] = updated;\n return hasNewKey;\n }\n function updateOneMutably(update, state) {\n return updateManyMutably([update], state);\n }\n function updateManyMutably(updates, state) {\n const newKeys = {};\n const updatesPerEntity = {};\n updates.forEach((update) => {\n if (update.id in state.entities) {\n updatesPerEntity[update.id] = {\n id: update.id,\n // Spreads ignore falsy values, so this works even if there isn't\n // an existing update already at this key\n changes: {\n ...updatesPerEntity[update.id] ? updatesPerEntity[update.id].changes : null,\n ...update.changes\n }\n };\n }\n });\n updates = Object.values(updatesPerEntity);\n const didMutateEntities = updates.length > 0;\n if (didMutateEntities) {\n const didMutateIds = updates.filter((update) => takeNewKey(newKeys, update, state)).length > 0;\n if (didMutateIds) {\n state.ids = Object.values(state.entities).map((e) => selectIdValue(e, selectId));\n }\n }\n }\n function upsertOneMutably(entity, state) {\n return upsertManyMutably([entity], state);\n }\n function upsertManyMutably(newEntities, state) {\n const [added, updated] = splitAddedUpdatedEntities(newEntities, selectId, state);\n updateManyMutably(updated, state);\n addManyMutably(added, state);\n }\n return {\n removeAll: createSingleArgumentStateOperator(removeAllMutably),\n addOne: createStateOperator(addOneMutably),\n addMany: createStateOperator(addManyMutably),\n setOne: createStateOperator(setOneMutably),\n setMany: createStateOperator(setManyMutably),\n setAll: createStateOperator(setAllMutably),\n updateOne: createStateOperator(updateOneMutably),\n updateMany: createStateOperator(updateManyMutably),\n upsertOne: createStateOperator(upsertOneMutably),\n upsertMany: createStateOperator(upsertManyMutably),\n removeOne: createStateOperator(removeOneMutably),\n removeMany: createStateOperator(removeManyMutably)\n };\n}\n\n// src/entities/sorted_state_adapter.ts\nfunction createSortedStateAdapter(selectId, sort) {\n const {\n removeOne,\n removeMany,\n removeAll\n } = createUnsortedStateAdapter(selectId);\n function addOneMutably(entity, state) {\n return addManyMutably([entity], state);\n }\n function addManyMutably(newEntities, state) {\n newEntities = ensureEntitiesArray(newEntities);\n const models = newEntities.filter((model) => !(selectIdValue(model, selectId) in state.entities));\n if (models.length !== 0) {\n merge(models, state);\n }\n }\n function setOneMutably(entity, state) {\n return setManyMutably([entity], state);\n }\n function setManyMutably(newEntities, state) {\n newEntities = ensureEntitiesArray(newEntities);\n if (newEntities.length !== 0) {\n merge(newEntities, state);\n }\n }\n function setAllMutably(newEntities, state) {\n newEntities = ensureEntitiesArray(newEntities);\n state.entities = {};\n state.ids = [];\n addManyMutably(newEntities, state);\n }\n function updateOneMutably(update, state) {\n return updateManyMutably([update], state);\n }\n function updateManyMutably(updates, state) {\n let appliedUpdates = false;\n for (let update of updates) {\n const entity = state.entities[update.id];\n if (!entity) {\n continue;\n }\n appliedUpdates = true;\n Object.assign(entity, update.changes);\n const newId = selectId(entity);\n if (update.id !== newId) {\n delete state.entities[update.id];\n state.entities[newId] = entity;\n }\n }\n if (appliedUpdates) {\n resortEntities(state);\n }\n }\n function upsertOneMutably(entity, state) {\n return upsertManyMutably([entity], state);\n }\n function upsertManyMutably(newEntities, state) {\n const [added, updated] = splitAddedUpdatedEntities(newEntities, selectId, state);\n updateManyMutably(updated, state);\n addManyMutably(added, state);\n }\n function areArraysEqual(a, b) {\n if (a.length !== b.length) {\n return false;\n }\n for (let i = 0; i < a.length && i < b.length; i++) {\n if (a[i] === b[i]) {\n continue;\n }\n return false;\n }\n return true;\n }\n function merge(models, state) {\n models.forEach((model) => {\n ;\n state.entities[selectId(model)] = model;\n });\n resortEntities(state);\n }\n function resortEntities(state) {\n const allEntities = Object.values(state.entities);\n allEntities.sort(sort);\n const newSortedIds = allEntities.map(selectId);\n const {\n ids\n } = state;\n if (!areArraysEqual(ids, newSortedIds)) {\n state.ids = newSortedIds;\n }\n }\n return {\n removeOne,\n removeMany,\n removeAll,\n addOne: createStateOperator(addOneMutably),\n updateOne: createStateOperator(updateOneMutably),\n upsertOne: createStateOperator(upsertOneMutably),\n setOne: createStateOperator(setOneMutably),\n setMany: createStateOperator(setManyMutably),\n setAll: createStateOperator(setAllMutably),\n addMany: createStateOperator(addManyMutably),\n updateMany: createStateOperator(updateManyMutably),\n upsertMany: createStateOperator(upsertManyMutably)\n };\n}\n\n// src/entities/create_adapter.ts\nfunction createEntityAdapter(options = {}) {\n const {\n selectId,\n sortComparer\n } = {\n sortComparer: false,\n selectId: (instance) => instance.id,\n ...options\n };\n const stateAdapter = sortComparer ? createSortedStateAdapter(selectId, sortComparer) : createUnsortedStateAdapter(selectId);\n const stateFactory = createInitialStateFactory(stateAdapter);\n const selectorsFactory = createSelectorsFactory();\n return {\n selectId,\n sortComparer,\n ...stateFactory,\n ...selectorsFactory,\n ...stateAdapter\n };\n}\n\n// src/listenerMiddleware/index.ts\nimport { isAction as isAction3 } from \"redux\";\n\n// src/listenerMiddleware/exceptions.ts\nvar task = \"task\";\nvar listener = \"listener\";\nvar completed = \"completed\";\nvar cancelled = \"cancelled\";\nvar taskCancelled = `task-${cancelled}`;\nvar taskCompleted = `task-${completed}`;\nvar listenerCancelled = `${listener}-${cancelled}`;\nvar listenerCompleted = `${listener}-${completed}`;\nvar TaskAbortError = class {\n constructor(code) {\n this.code = code;\n this.message = `${task} ${cancelled} (reason: ${code})`;\n }\n name = \"TaskAbortError\";\n message;\n};\n\n// src/listenerMiddleware/utils.ts\nvar assertFunction = (func, expected) => {\n if (typeof func !== \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(32) : `${expected} is not a function`);\n }\n};\nvar noop2 = () => {\n};\nvar catchRejection = (promise, onError = noop2) => {\n promise.catch(onError);\n return promise;\n};\nvar addAbortSignalListener = (abortSignal, callback) => {\n abortSignal.addEventListener(\"abort\", callback, {\n once: true\n });\n return () => abortSignal.removeEventListener(\"abort\", callback);\n};\nvar abortControllerWithReason = (abortController, reason) => {\n const signal = abortController.signal;\n if (signal.aborted) {\n return;\n }\n if (!(\"reason\" in signal)) {\n Object.defineProperty(signal, \"reason\", {\n enumerable: true,\n value: reason,\n configurable: true,\n writable: true\n });\n }\n ;\n abortController.abort(reason);\n};\n\n// src/listenerMiddleware/task.ts\nvar validateActive = (signal) => {\n if (signal.aborted) {\n const {\n reason\n } = signal;\n throw new TaskAbortError(reason);\n }\n};\nfunction raceWithSignal(signal, promise) {\n let cleanup = noop2;\n return new Promise((resolve, reject) => {\n const notifyRejection = () => reject(new TaskAbortError(signal.reason));\n if (signal.aborted) {\n notifyRejection();\n return;\n }\n cleanup = addAbortSignalListener(signal, notifyRejection);\n promise.finally(() => cleanup()).then(resolve, reject);\n }).finally(() => {\n cleanup = noop2;\n });\n}\nvar runTask = async (task2, cleanUp) => {\n try {\n await Promise.resolve();\n const value = await task2();\n return {\n status: \"ok\",\n value\n };\n } catch (error) {\n return {\n status: error instanceof TaskAbortError ? \"cancelled\" : \"rejected\",\n error\n };\n } finally {\n cleanUp?.();\n }\n};\nvar createPause = (signal) => {\n return (promise) => {\n return catchRejection(raceWithSignal(signal, promise).then((output) => {\n validateActive(signal);\n return output;\n }));\n };\n};\nvar createDelay = (signal) => {\n const pause = createPause(signal);\n return (timeoutMs) => {\n return pause(new Promise((resolve) => setTimeout(resolve, timeoutMs)));\n };\n};\n\n// src/listenerMiddleware/index.ts\nvar {\n assign\n} = Object;\nvar INTERNAL_NIL_TOKEN = {};\nvar alm = \"listenerMiddleware\";\nvar createFork = (parentAbortSignal, parentBlockingPromises) => {\n const linkControllers = (controller) => addAbortSignalListener(parentAbortSignal, () => abortControllerWithReason(controller, parentAbortSignal.reason));\n return (taskExecutor, opts) => {\n assertFunction(taskExecutor, \"taskExecutor\");\n const childAbortController = new AbortController();\n linkControllers(childAbortController);\n const result = runTask(async () => {\n validateActive(parentAbortSignal);\n validateActive(childAbortController.signal);\n const result2 = await taskExecutor({\n pause: createPause(childAbortController.signal),\n delay: createDelay(childAbortController.signal),\n signal: childAbortController.signal\n });\n validateActive(childAbortController.signal);\n return result2;\n }, () => abortControllerWithReason(childAbortController, taskCompleted));\n if (opts?.autoJoin) {\n parentBlockingPromises.push(result.catch(noop2));\n }\n return {\n result: createPause(parentAbortSignal)(result),\n cancel() {\n abortControllerWithReason(childAbortController, taskCancelled);\n }\n };\n };\n};\nvar createTakePattern = (startListening, signal) => {\n const take = async (predicate, timeout) => {\n validateActive(signal);\n let unsubscribe = () => {\n };\n const tuplePromise = new Promise((resolve, reject) => {\n let stopListening = startListening({\n predicate,\n effect: (action, listenerApi) => {\n listenerApi.unsubscribe();\n resolve([action, listenerApi.getState(), listenerApi.getOriginalState()]);\n }\n });\n unsubscribe = () => {\n stopListening();\n reject();\n };\n });\n const promises = [tuplePromise];\n if (timeout != null) {\n promises.push(new Promise((resolve) => setTimeout(resolve, timeout, null)));\n }\n try {\n const output = await raceWithSignal(signal, Promise.race(promises));\n validateActive(signal);\n return output;\n } finally {\n unsubscribe();\n }\n };\n return (predicate, timeout) => catchRejection(take(predicate, timeout));\n};\nvar getListenerEntryPropsFrom = (options) => {\n let {\n type,\n actionCreator,\n matcher,\n predicate,\n effect\n } = options;\n if (type) {\n predicate = createAction(type).match;\n } else if (actionCreator) {\n type = actionCreator.type;\n predicate = actionCreator.match;\n } else if (matcher) {\n predicate = matcher;\n } else if (predicate) {\n } else {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(21) : \"Creating or removing a listener requires one of the known fields for matching an action\");\n }\n assertFunction(effect, \"options.listener\");\n return {\n predicate,\n type,\n effect\n };\n};\nvar createListenerEntry = Object.assign((options) => {\n const {\n type,\n predicate,\n effect\n } = getListenerEntryPropsFrom(options);\n const id = nanoid();\n const entry = {\n id,\n effect,\n type,\n predicate,\n pending: /* @__PURE__ */ new Set(),\n unsubscribe: () => {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(22) : \"Unsubscribe not initialized\");\n }\n };\n return entry;\n}, {\n withTypes: () => createListenerEntry\n});\nvar cancelActiveListeners = (entry) => {\n entry.pending.forEach((controller) => {\n abortControllerWithReason(controller, listenerCancelled);\n });\n};\nvar createClearListenerMiddleware = (listenerMap) => {\n return () => {\n listenerMap.forEach(cancelActiveListeners);\n listenerMap.clear();\n };\n};\nvar safelyNotifyError = (errorHandler, errorToNotify, errorInfo) => {\n try {\n errorHandler(errorToNotify, errorInfo);\n } catch (errorHandlerError) {\n setTimeout(() => {\n throw errorHandlerError;\n }, 0);\n }\n};\nvar addListener = Object.assign(createAction(`${alm}/add`), {\n withTypes: () => addListener\n});\nvar clearAllListeners = createAction(`${alm}/removeAll`);\nvar removeListener = Object.assign(createAction(`${alm}/remove`), {\n withTypes: () => removeListener\n});\nvar defaultErrorHandler = (...args) => {\n console.error(`${alm}/error`, ...args);\n};\nvar createListenerMiddleware = (middlewareOptions = {}) => {\n const listenerMap = /* @__PURE__ */ new Map();\n const {\n extra,\n onError = defaultErrorHandler\n } = middlewareOptions;\n assertFunction(onError, \"onError\");\n const insertEntry = (entry) => {\n entry.unsubscribe = () => listenerMap.delete(entry.id);\n listenerMap.set(entry.id, entry);\n return (cancelOptions) => {\n entry.unsubscribe();\n if (cancelOptions?.cancelActive) {\n cancelActiveListeners(entry);\n }\n };\n };\n const startListening = (options) => {\n let entry = find(Array.from(listenerMap.values()), (existingEntry) => existingEntry.effect === options.effect);\n if (!entry) {\n entry = createListenerEntry(options);\n }\n return insertEntry(entry);\n };\n Object.assign(startListening, {\n withTypes: () => startListening\n });\n const stopListening = (options) => {\n const {\n type,\n effect,\n predicate\n } = getListenerEntryPropsFrom(options);\n const entry = find(Array.from(listenerMap.values()), (entry2) => {\n const matchPredicateOrType = typeof type === \"string\" ? entry2.type === type : entry2.predicate === predicate;\n return matchPredicateOrType && entry2.effect === effect;\n });\n if (entry) {\n entry.unsubscribe();\n if (options.cancelActive) {\n cancelActiveListeners(entry);\n }\n }\n return !!entry;\n };\n Object.assign(stopListening, {\n withTypes: () => stopListening\n });\n const notifyListener = async (entry, action, api, getOriginalState) => {\n const internalTaskController = new AbortController();\n const take = createTakePattern(startListening, internalTaskController.signal);\n const autoJoinPromises = [];\n try {\n entry.pending.add(internalTaskController);\n await Promise.resolve(entry.effect(\n action,\n // Use assign() rather than ... to avoid extra helper functions added to bundle\n assign({}, api, {\n getOriginalState,\n condition: (predicate, timeout) => take(predicate, timeout).then(Boolean),\n take,\n delay: createDelay(internalTaskController.signal),\n pause: createPause(internalTaskController.signal),\n extra,\n signal: internalTaskController.signal,\n fork: createFork(internalTaskController.signal, autoJoinPromises),\n unsubscribe: entry.unsubscribe,\n subscribe: () => {\n listenerMap.set(entry.id, entry);\n },\n cancelActiveListeners: () => {\n entry.pending.forEach((controller, _, set) => {\n if (controller !== internalTaskController) {\n abortControllerWithReason(controller, listenerCancelled);\n set.delete(controller);\n }\n });\n },\n cancel: () => {\n abortControllerWithReason(internalTaskController, listenerCancelled);\n entry.pending.delete(internalTaskController);\n },\n throwIfCancelled: () => {\n validateActive(internalTaskController.signal);\n }\n })\n ));\n } catch (listenerError) {\n if (!(listenerError instanceof TaskAbortError)) {\n safelyNotifyError(onError, listenerError, {\n raisedBy: \"effect\"\n });\n }\n } finally {\n await Promise.all(autoJoinPromises);\n abortControllerWithReason(internalTaskController, listenerCompleted);\n entry.pending.delete(internalTaskController);\n }\n };\n const clearListenerMiddleware = createClearListenerMiddleware(listenerMap);\n const middleware = (api) => (next) => (action) => {\n if (!isAction3(action)) {\n return next(action);\n }\n if (addListener.match(action)) {\n return startListening(action.payload);\n }\n if (clearAllListeners.match(action)) {\n clearListenerMiddleware();\n return;\n }\n if (removeListener.match(action)) {\n return stopListening(action.payload);\n }\n let originalState = api.getState();\n const getOriginalState = () => {\n if (originalState === INTERNAL_NIL_TOKEN) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(23) : `${alm}: getOriginalState can only be called synchronously`);\n }\n return originalState;\n };\n let result;\n try {\n result = next(action);\n if (listenerMap.size > 0) {\n const currentState = api.getState();\n const listenerEntries = Array.from(listenerMap.values());\n for (const entry of listenerEntries) {\n let runListener = false;\n try {\n runListener = entry.predicate(action, currentState, originalState);\n } catch (predicateError) {\n runListener = false;\n safelyNotifyError(onError, predicateError, {\n raisedBy: \"predicate\"\n });\n }\n if (!runListener) {\n continue;\n }\n notifyListener(entry, action, api, getOriginalState);\n }\n }\n } finally {\n originalState = INTERNAL_NIL_TOKEN;\n }\n return result;\n };\n return {\n middleware,\n startListening,\n stopListening,\n clearListeners: clearListenerMiddleware\n };\n};\n\n// src/dynamicMiddleware/index.ts\nimport { compose as compose3 } from \"redux\";\nvar createMiddlewareEntry = (middleware) => ({\n id: nanoid(),\n middleware,\n applied: /* @__PURE__ */ new Map()\n});\nvar matchInstance = (instanceId) => (action) => action?.meta?.instanceId === instanceId;\nvar createDynamicMiddleware = () => {\n const instanceId = nanoid();\n const middlewareMap = /* @__PURE__ */ new Map();\n const withMiddleware = Object.assign(createAction(\"dynamicMiddleware/add\", (...middlewares) => ({\n payload: middlewares,\n meta: {\n instanceId\n }\n })), {\n withTypes: () => withMiddleware\n });\n const addMiddleware = Object.assign(function addMiddleware2(...middlewares) {\n middlewares.forEach((middleware2) => {\n let entry = find(Array.from(middlewareMap.values()), (entry2) => entry2.middleware === middleware2);\n if (!entry) {\n entry = createMiddlewareEntry(middleware2);\n }\n middlewareMap.set(entry.id, entry);\n });\n }, {\n withTypes: () => addMiddleware\n });\n const getFinalMiddleware = (api) => {\n const appliedMiddleware = Array.from(middlewareMap.values()).map((entry) => emplace(entry.applied, api, {\n insert: () => entry.middleware(api)\n }));\n return compose3(...appliedMiddleware);\n };\n const isWithMiddleware = isAllOf(withMiddleware, matchInstance(instanceId));\n const middleware = (api) => (next) => (action) => {\n if (isWithMiddleware(action)) {\n addMiddleware(...action.payload);\n return api.dispatch;\n }\n return getFinalMiddleware(api)(next)(action);\n };\n return {\n middleware,\n addMiddleware,\n withMiddleware,\n instanceId\n };\n};\n\n// src/combineSlices.ts\nimport { combineReducers as combineReducers2 } from \"redux\";\nvar isSliceLike = (maybeSliceLike) => \"reducerPath\" in maybeSliceLike && typeof maybeSliceLike.reducerPath === \"string\";\nvar getReducers = (slices) => slices.flatMap((sliceOrMap) => isSliceLike(sliceOrMap) ? [[sliceOrMap.reducerPath, sliceOrMap.reducer]] : Object.entries(sliceOrMap));\nvar ORIGINAL_STATE = Symbol.for(\"rtk-state-proxy-original\");\nvar isStateProxy = (value) => !!value && !!value[ORIGINAL_STATE];\nvar stateProxyMap = /* @__PURE__ */ new WeakMap();\nvar createStateProxy = (state, reducerMap) => emplace(stateProxyMap, state, {\n insert: () => new Proxy(state, {\n get: (target, prop, receiver) => {\n if (prop === ORIGINAL_STATE)\n return target;\n const result = Reflect.get(target, prop, receiver);\n if (typeof result === \"undefined\") {\n const reducer = reducerMap[prop.toString()];\n if (reducer) {\n const reducerResult = reducer(void 0, {\n type: nanoid()\n });\n if (typeof reducerResult === \"undefined\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(24) : `The slice reducer for key \"${prop.toString()}\" returned undefined when called for selector(). 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 return reducerResult;\n }\n }\n return result;\n }\n })\n});\nvar original = (state) => {\n if (!isStateProxy(state)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(25) : \"original must be used on state Proxy\");\n }\n return state[ORIGINAL_STATE];\n};\nvar noopReducer = (state = {}) => state;\nfunction combineSlices(...slices) {\n const reducerMap = Object.fromEntries(getReducers(slices));\n const getReducer = () => Object.keys(reducerMap).length ? combineReducers2(reducerMap) : noopReducer;\n let reducer = getReducer();\n function combinedReducer(state, action) {\n return reducer(state, action);\n }\n combinedReducer.withLazyLoadedSlices = () => combinedReducer;\n const inject = (slice, config = {}) => {\n const {\n reducerPath,\n reducer: reducerToInject\n } = slice;\n const currentReducer = reducerMap[reducerPath];\n if (!config.overrideExisting && currentReducer && currentReducer !== reducerToInject) {\n if (typeof process !== \"undefined\" && process.env.NODE_ENV === \"development\") {\n console.error(`called \\`inject\\` to override already-existing reducer ${reducerPath} without specifying \\`overrideExisting: true\\``);\n }\n return combinedReducer;\n }\n reducerMap[reducerPath] = reducerToInject;\n reducer = getReducer();\n return combinedReducer;\n };\n const selector = Object.assign(function makeSelector(selectorFn, selectState) {\n return function selector2(state, ...args) {\n return selectorFn(createStateProxy(selectState ? selectState(state, ...args) : state, reducerMap), ...args);\n };\n }, {\n original\n });\n return Object.assign(combinedReducer, {\n inject,\n selector\n });\n}\n\n// src/formatProdErrorMessage.ts\nfunction formatProdErrorMessage(code) {\n return `Minified Redux Toolkit error #${code}; visit https://redux-toolkit.js.org/Errors?code=${code} for the full message or use the non-minified dev environment for full errors. `;\n}\nexport {\n ReducerType,\n SHOULD_AUTOBATCH,\n TaskAbortError,\n Tuple,\n addListener,\n asyncThunkCreator,\n autoBatchEnhancer,\n buildCreateSlice,\n clearAllListeners,\n combineSlices,\n configureStore,\n createAction,\n createActionCreatorInvariantMiddleware,\n createAsyncThunk,\n createDraftSafeSelector,\n createDraftSafeSelectorCreator,\n createDynamicMiddleware,\n createEntityAdapter,\n createImmutableStateInvariantMiddleware,\n createListenerMiddleware,\n produce as createNextState,\n createReducer,\n createSelector,\n createSelectorCreator2 as createSelectorCreator,\n createSerializableStateInvariantMiddleware,\n createSlice,\n current2 as current,\n findNonSerializableValue,\n formatProdErrorMessage,\n freeze,\n isActionCreator,\n isAllOf,\n isAnyOf,\n isAsyncThunkAction,\n isDraft4 as isDraft,\n isFSA as isFluxStandardAction,\n isFulfilled,\n isImmutableDefault,\n isPending,\n isPlain,\n isRejected,\n isRejectedWithValue,\n lruMemoize,\n miniSerializeError,\n nanoid,\n original2 as original,\n prepareAutoBatched,\n removeListener,\n unwrapResult,\n weakMapMemoize2 as weakMapMemoize\n};\n//# sourceMappingURL=redux-toolkit.modern.mjs.map","// src/query/core/apiState.ts\nvar QueryStatus = /* @__PURE__ */ ((QueryStatus2) => {\n QueryStatus2[\"uninitialized\"] = \"uninitialized\";\n QueryStatus2[\"pending\"] = \"pending\";\n QueryStatus2[\"fulfilled\"] = \"fulfilled\";\n QueryStatus2[\"rejected\"] = \"rejected\";\n return QueryStatus2;\n})(QueryStatus || {});\nfunction getRequestStatusFlags(status) {\n return {\n status,\n isUninitialized: status === \"uninitialized\" /* uninitialized */,\n isLoading: status === \"pending\" /* pending */,\n isSuccess: status === \"fulfilled\" /* fulfilled */,\n isError: status === \"rejected\" /* rejected */\n };\n}\n\n// src/query/utils/isAbsoluteUrl.ts\nfunction isAbsoluteUrl(url) {\n return new RegExp(`(^|:)//`).test(url);\n}\n\n// src/query/utils/joinUrls.ts\nvar withoutTrailingSlash = (url) => url.replace(/\\/$/, \"\");\nvar withoutLeadingSlash = (url) => url.replace(/^\\//, \"\");\nfunction joinUrls(base, url) {\n if (!base) {\n return url;\n }\n if (!url) {\n return base;\n }\n if (isAbsoluteUrl(url)) {\n return url;\n }\n const delimiter = base.endsWith(\"/\") || !url.startsWith(\"?\") ? \"/\" : \"\";\n base = withoutTrailingSlash(base);\n url = withoutLeadingSlash(url);\n return `${base}${delimiter}${url}`;\n}\n\n// src/query/utils/flatten.ts\nvar flatten = (arr) => [].concat(...arr);\n\n// src/query/utils/isOnline.ts\nfunction isOnline() {\n return typeof navigator === \"undefined\" ? true : navigator.onLine === void 0 ? true : navigator.onLine;\n}\n\n// src/query/utils/isDocumentVisible.ts\nfunction isDocumentVisible() {\n if (typeof document === \"undefined\") {\n return true;\n }\n return document.visibilityState !== \"hidden\";\n}\n\n// src/query/core/rtkImports.ts\nimport { createAction, createSlice, createSelector, createAsyncThunk, combineReducers, createNextState, isAnyOf, isAllOf, isAction, isPending, isRejected, isFulfilled, isRejectedWithValue, isAsyncThunkAction, prepareAutoBatched, SHOULD_AUTOBATCH, isPlainObject, nanoid } from \"@reduxjs/toolkit\";\n\n// src/query/utils/copyWithStructuralSharing.ts\nvar isPlainObject2 = isPlainObject;\nfunction copyWithStructuralSharing(oldObj, newObj) {\n if (oldObj === newObj || !(isPlainObject2(oldObj) && isPlainObject2(newObj) || Array.isArray(oldObj) && Array.isArray(newObj))) {\n return newObj;\n }\n const newKeys = Object.keys(newObj);\n const oldKeys = Object.keys(oldObj);\n let isSameObject = newKeys.length === oldKeys.length;\n const mergeObj = Array.isArray(newObj) ? [] : {};\n for (const key of newKeys) {\n mergeObj[key] = copyWithStructuralSharing(oldObj[key], newObj[key]);\n if (isSameObject)\n isSameObject = oldObj[key] === mergeObj[key];\n }\n return isSameObject ? oldObj : mergeObj;\n}\n\n// src/query/fetchBaseQuery.ts\nvar defaultFetchFn = (...args) => fetch(...args);\nvar defaultValidateStatus = (response) => response.status >= 200 && response.status <= 299;\nvar defaultIsJsonContentType = (headers) => (\n /*applicat*/\n /ion\\/(vnd\\.api\\+)?json/.test(headers.get(\"content-type\") || \"\")\n);\nfunction stripUndefined(obj) {\n if (!isPlainObject(obj)) {\n return obj;\n }\n const copy = {\n ...obj\n };\n for (const [k, v] of Object.entries(copy)) {\n if (v === void 0)\n delete copy[k];\n }\n return copy;\n}\nfunction fetchBaseQuery({\n baseUrl,\n prepareHeaders = (x) => x,\n fetchFn = defaultFetchFn,\n paramsSerializer,\n isJsonContentType = defaultIsJsonContentType,\n jsonContentType = \"application/json\",\n jsonReplacer,\n timeout: defaultTimeout,\n responseHandler: globalResponseHandler,\n validateStatus: globalValidateStatus,\n ...baseFetchOptions\n} = {}) {\n if (typeof fetch === \"undefined\" && fetchFn === defaultFetchFn) {\n console.warn(\"Warning: `fetch` is not available. Please supply a custom `fetchFn` property to use `fetchBaseQuery` on SSR environments.\");\n }\n return async (arg, api) => {\n const {\n signal,\n getState,\n extra,\n endpoint,\n forced,\n type\n } = api;\n let meta;\n let {\n url,\n headers = new Headers(baseFetchOptions.headers),\n params = void 0,\n responseHandler = globalResponseHandler ?? \"json\",\n validateStatus = globalValidateStatus ?? defaultValidateStatus,\n timeout = defaultTimeout,\n ...rest\n } = typeof arg == \"string\" ? {\n url: arg\n } : arg;\n let config = {\n ...baseFetchOptions,\n signal,\n ...rest\n };\n headers = new Headers(stripUndefined(headers));\n config.headers = await prepareHeaders(headers, {\n getState,\n extra,\n endpoint,\n forced,\n type\n }) || headers;\n const isJsonifiable = (body) => typeof body === \"object\" && (isPlainObject(body) || Array.isArray(body) || typeof body.toJSON === \"function\");\n if (!config.headers.has(\"content-type\") && isJsonifiable(config.body)) {\n config.headers.set(\"content-type\", jsonContentType);\n }\n if (isJsonifiable(config.body) && isJsonContentType(config.headers)) {\n config.body = JSON.stringify(config.body, jsonReplacer);\n }\n if (params) {\n const divider = ~url.indexOf(\"?\") ? \"&\" : \"?\";\n const query = paramsSerializer ? paramsSerializer(params) : new URLSearchParams(stripUndefined(params));\n url += divider + query;\n }\n url = joinUrls(baseUrl, url);\n const request = new Request(url, config);\n const requestClone = new Request(url, config);\n meta = {\n request: requestClone\n };\n let response, timedOut = false, timeoutId = timeout && setTimeout(() => {\n timedOut = true;\n api.abort();\n }, timeout);\n try {\n response = await fetchFn(request);\n } catch (e) {\n return {\n error: {\n status: timedOut ? \"TIMEOUT_ERROR\" : \"FETCH_ERROR\",\n error: String(e)\n },\n meta\n };\n } finally {\n if (timeoutId)\n clearTimeout(timeoutId);\n }\n const responseClone = response.clone();\n meta.response = responseClone;\n let resultData;\n let responseText = \"\";\n try {\n let handleResponseError;\n await Promise.all([\n handleResponse(response, responseHandler).then((r) => resultData = r, (e) => handleResponseError = e),\n // see https://github.com/node-fetch/node-fetch/issues/665#issuecomment-538995182\n // we *have* to \"use up\" both streams at the same time or they will stop running in node-fetch scenarios\n responseClone.text().then((r) => responseText = r, () => {\n })\n ]);\n if (handleResponseError)\n throw handleResponseError;\n } catch (e) {\n return {\n error: {\n status: \"PARSING_ERROR\",\n originalStatus: response.status,\n data: responseText,\n error: String(e)\n },\n meta\n };\n }\n return validateStatus(response, resultData) ? {\n data: resultData,\n meta\n } : {\n error: {\n status: response.status,\n data: resultData\n },\n meta\n };\n };\n async function handleResponse(response, responseHandler) {\n if (typeof responseHandler === \"function\") {\n return responseHandler(response);\n }\n if (responseHandler === \"content-type\") {\n responseHandler = isJsonContentType(response.headers) ? \"json\" : \"text\";\n }\n if (responseHandler === \"json\") {\n const text = await response.text();\n return text.length ? JSON.parse(text) : null;\n }\n return response.text();\n }\n}\n\n// src/query/HandledError.ts\nvar HandledError = class {\n constructor(value, meta = void 0) {\n this.value = value;\n this.meta = meta;\n }\n};\n\n// src/query/retry.ts\nasync function defaultBackoff(attempt = 0, maxRetries = 5) {\n const attempts = Math.min(attempt, maxRetries);\n const timeout = ~~((Math.random() + 0.4) * (300 << attempts));\n await new Promise((resolve) => setTimeout((res) => resolve(res), timeout));\n}\nfunction fail(e) {\n throw Object.assign(new HandledError({\n error: e\n }), {\n throwImmediately: true\n });\n}\nvar EMPTY_OPTIONS = {};\nvar retryWithBackoff = (baseQuery, defaultOptions) => async (args, api, extraOptions) => {\n const possibleMaxRetries = [5, (defaultOptions || EMPTY_OPTIONS).maxRetries, (extraOptions || EMPTY_OPTIONS).maxRetries].filter((x) => x !== void 0);\n const [maxRetries] = possibleMaxRetries.slice(-1);\n const defaultRetryCondition = (_, __, {\n attempt\n }) => attempt <= maxRetries;\n const options = {\n maxRetries,\n backoff: defaultBackoff,\n retryCondition: defaultRetryCondition,\n ...defaultOptions,\n ...extraOptions\n };\n let retry2 = 0;\n while (true) {\n try {\n const result = await baseQuery(args, api, extraOptions);\n if (result.error) {\n throw new HandledError(result);\n }\n return result;\n } catch (e) {\n retry2++;\n if (e.throwImmediately) {\n if (e instanceof HandledError) {\n return e.value;\n }\n throw e;\n }\n if (e instanceof HandledError && !options.retryCondition(e.value.error, args, {\n attempt: retry2,\n baseQueryApi: api,\n extraOptions\n })) {\n return e.value;\n }\n await options.backoff(retry2, options.maxRetries);\n }\n }\n};\nvar retry = /* @__PURE__ */ Object.assign(retryWithBackoff, {\n fail\n});\n\n// src/query/core/setupListeners.ts\nvar onFocus = /* @__PURE__ */ createAction(\"__rtkq/focused\");\nvar onFocusLost = /* @__PURE__ */ createAction(\"__rtkq/unfocused\");\nvar onOnline = /* @__PURE__ */ createAction(\"__rtkq/online\");\nvar onOffline = /* @__PURE__ */ createAction(\"__rtkq/offline\");\nvar initialized = false;\nfunction setupListeners(dispatch, customHandler) {\n function defaultHandler() {\n const handleFocus = () => dispatch(onFocus());\n const handleFocusLost = () => dispatch(onFocusLost());\n const handleOnline = () => dispatch(onOnline());\n const handleOffline = () => dispatch(onOffline());\n const handleVisibilityChange = () => {\n if (window.document.visibilityState === \"visible\") {\n handleFocus();\n } else {\n handleFocusLost();\n }\n };\n if (!initialized) {\n if (typeof window !== \"undefined\" && window.addEventListener) {\n window.addEventListener(\"visibilitychange\", handleVisibilityChange, false);\n window.addEventListener(\"focus\", handleFocus, false);\n window.addEventListener(\"online\", handleOnline, false);\n window.addEventListener(\"offline\", handleOffline, false);\n initialized = true;\n }\n }\n const unsubscribe = () => {\n window.removeEventListener(\"focus\", handleFocus);\n window.removeEventListener(\"visibilitychange\", handleVisibilityChange);\n window.removeEventListener(\"online\", handleOnline);\n window.removeEventListener(\"offline\", handleOffline);\n initialized = false;\n };\n return unsubscribe;\n }\n return customHandler ? customHandler(dispatch, {\n onFocus,\n onFocusLost,\n onOffline,\n onOnline\n }) : defaultHandler();\n}\n\n// src/query/endpointDefinitions.ts\nfunction isQueryDefinition(e) {\n return e.type === \"query\" /* query */;\n}\nfunction isMutationDefinition(e) {\n return e.type === \"mutation\" /* mutation */;\n}\nfunction calculateProvidedBy(description, result, error, queryArg, meta, assertTagTypes) {\n if (isFunction(description)) {\n return description(result, error, queryArg, meta).map(expandTagDescription).map(assertTagTypes);\n }\n if (Array.isArray(description)) {\n return description.map(expandTagDescription).map(assertTagTypes);\n }\n return [];\n}\nfunction isFunction(t) {\n return typeof t === \"function\";\n}\nfunction expandTagDescription(description) {\n return typeof description === \"string\" ? {\n type: description\n } : description;\n}\n\n// src/query/core/buildInitiate.ts\nimport { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\n\n// src/query/utils/isNotNullish.ts\nfunction isNotNullish(v) {\n return v != null;\n}\n\n// src/query/utils/countObjectKeys.ts\nfunction countObjectKeys(obj) {\n let count = 0;\n for (const _key in obj) {\n count++;\n }\n return count;\n}\n\n// src/tsHelpers.ts\nfunction asSafePromise(promise, fallback) {\n return promise.catch(fallback);\n}\n\n// src/query/core/buildInitiate.ts\nvar forceQueryFnSymbol = Symbol(\"forceQueryFn\");\nvar isUpsertQuery = (arg) => typeof arg[forceQueryFnSymbol] === \"function\";\nfunction buildInitiate({\n serializeQueryArgs,\n queryThunk,\n mutationThunk,\n api,\n context\n}) {\n const runningQueries = /* @__PURE__ */ new Map();\n const runningMutations = /* @__PURE__ */ new Map();\n const {\n unsubscribeQueryResult,\n removeMutationResult,\n updateSubscriptionOptions\n } = api.internalActions;\n return {\n buildInitiateQuery,\n buildInitiateMutation,\n getRunningQueryThunk,\n getRunningMutationThunk,\n getRunningQueriesThunk,\n getRunningMutationsThunk\n };\n function getRunningQueryThunk(endpointName, queryArgs) {\n return (dispatch) => {\n const endpointDefinition = context.endpointDefinitions[endpointName];\n const queryCacheKey = serializeQueryArgs({\n queryArgs,\n endpointDefinition,\n endpointName\n });\n return runningQueries.get(dispatch)?.[queryCacheKey];\n };\n }\n function getRunningMutationThunk(_endpointName, fixedCacheKeyOrRequestId) {\n return (dispatch) => {\n return runningMutations.get(dispatch)?.[fixedCacheKeyOrRequestId];\n };\n }\n function getRunningQueriesThunk() {\n return (dispatch) => Object.values(runningQueries.get(dispatch) || {}).filter(isNotNullish);\n }\n function getRunningMutationsThunk() {\n return (dispatch) => Object.values(runningMutations.get(dispatch) || {}).filter(isNotNullish);\n }\n function middlewareWarning(dispatch) {\n if (process.env.NODE_ENV !== \"production\") {\n if (middlewareWarning.triggered)\n return;\n const returnedValue = dispatch(api.internalActions.internal_getRTKQSubscriptions());\n middlewareWarning.triggered = true;\n if (typeof returnedValue !== \"object\" || typeof returnedValue?.type === \"string\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(34) : `Warning: Middleware for RTK-Query API at reducerPath \"${api.reducerPath}\" has not been added to the store.\nYou must add the middleware for RTK-Query to function correctly!`);\n }\n }\n }\n function buildInitiateQuery(endpointName, endpointDefinition) {\n const queryAction = (arg, {\n subscribe = true,\n forceRefetch,\n subscriptionOptions,\n [forceQueryFnSymbol]: forceQueryFn,\n ...rest\n } = {}) => (dispatch, getState) => {\n const queryCacheKey = serializeQueryArgs({\n queryArgs: arg,\n endpointDefinition,\n endpointName\n });\n const thunk = queryThunk({\n ...rest,\n type: \"query\",\n subscribe,\n forceRefetch,\n subscriptionOptions,\n endpointName,\n originalArgs: arg,\n queryCacheKey,\n [forceQueryFnSymbol]: forceQueryFn\n });\n const selector = api.endpoints[endpointName].select(arg);\n const thunkResult = dispatch(thunk);\n const stateAfter = selector(getState());\n middlewareWarning(dispatch);\n const {\n requestId,\n abort\n } = thunkResult;\n const skippedSynchronously = stateAfter.requestId !== requestId;\n const runningQuery = runningQueries.get(dispatch)?.[queryCacheKey];\n const selectFromState = () => selector(getState());\n const statePromise = Object.assign(forceQueryFn ? (\n // a query has been forced (upsertQueryData)\n // -> we want to resolve it once data has been written with the data that will be written\n thunkResult.then(selectFromState)\n ) : skippedSynchronously && !runningQuery ? (\n // a query has been skipped due to a condition and we do not have any currently running query\n // -> we want to resolve it immediately with the current data\n Promise.resolve(stateAfter)\n ) : (\n // query just started or one is already in flight\n // -> wait for the running query, then resolve with data from after that\n Promise.all([runningQuery, thunkResult]).then(selectFromState)\n ), {\n arg,\n requestId,\n subscriptionOptions,\n queryCacheKey,\n abort,\n async unwrap() {\n const result = await statePromise;\n if (result.isError) {\n throw result.error;\n }\n return result.data;\n },\n refetch: () => dispatch(queryAction(arg, {\n subscribe: false,\n forceRefetch: true\n })),\n unsubscribe() {\n if (subscribe)\n dispatch(unsubscribeQueryResult({\n queryCacheKey,\n requestId\n }));\n },\n updateSubscriptionOptions(options) {\n statePromise.subscriptionOptions = options;\n dispatch(updateSubscriptionOptions({\n endpointName,\n requestId,\n queryCacheKey,\n options\n }));\n }\n });\n if (!runningQuery && !skippedSynchronously && !forceQueryFn) {\n const running = runningQueries.get(dispatch) || {};\n running[queryCacheKey] = statePromise;\n runningQueries.set(dispatch, running);\n statePromise.then(() => {\n delete running[queryCacheKey];\n if (!countObjectKeys(running)) {\n runningQueries.delete(dispatch);\n }\n });\n }\n return statePromise;\n };\n return queryAction;\n }\n function buildInitiateMutation(endpointName) {\n return (arg, {\n track = true,\n fixedCacheKey\n } = {}) => (dispatch, getState) => {\n const thunk = mutationThunk({\n type: \"mutation\",\n endpointName,\n originalArgs: arg,\n track,\n fixedCacheKey\n });\n const thunkResult = dispatch(thunk);\n middlewareWarning(dispatch);\n const {\n requestId,\n abort,\n unwrap\n } = thunkResult;\n const returnValuePromise = asSafePromise(thunkResult.unwrap().then((data) => ({\n data\n })), (error) => ({\n error\n }));\n const reset = () => {\n dispatch(removeMutationResult({\n requestId,\n fixedCacheKey\n }));\n };\n const ret = Object.assign(returnValuePromise, {\n arg: thunkResult.arg,\n requestId,\n abort,\n unwrap,\n reset\n });\n const running = runningMutations.get(dispatch) || {};\n runningMutations.set(dispatch, running);\n running[requestId] = ret;\n ret.then(() => {\n delete running[requestId];\n if (!countObjectKeys(running)) {\n runningMutations.delete(dispatch);\n }\n });\n if (fixedCacheKey) {\n running[fixedCacheKey] = ret;\n ret.then(() => {\n if (running[fixedCacheKey] === ret) {\n delete running[fixedCacheKey];\n if (!countObjectKeys(running)) {\n runningMutations.delete(dispatch);\n }\n }\n });\n }\n return ret;\n };\n }\n}\n\n// src/query/core/buildThunks.ts\nimport { isDraftable, produceWithPatches } from \"immer\";\nfunction defaultTransformResponse(baseQueryReturnValue) {\n return baseQueryReturnValue;\n}\nfunction buildThunks({\n reducerPath,\n baseQuery,\n context: {\n endpointDefinitions\n },\n serializeQueryArgs,\n api,\n assertTagType\n}) {\n const patchQueryData = (endpointName, args, patches, updateProvided) => (dispatch, getState) => {\n const endpointDefinition = endpointDefinitions[endpointName];\n const queryCacheKey = serializeQueryArgs({\n queryArgs: args,\n endpointDefinition,\n endpointName\n });\n dispatch(api.internalActions.queryResultPatched({\n queryCacheKey,\n patches\n }));\n if (!updateProvided) {\n return;\n }\n const newValue = api.endpoints[endpointName].select(args)(\n // Work around TS 4.1 mismatch\n getState()\n );\n const providedTags = calculateProvidedBy(endpointDefinition.providesTags, newValue.data, void 0, args, {}, assertTagType);\n dispatch(api.internalActions.updateProvidedBy({\n queryCacheKey,\n providedTags\n }));\n };\n const updateQueryData = (endpointName, args, updateRecipe, updateProvided = true) => (dispatch, getState) => {\n const endpointDefinition = api.endpoints[endpointName];\n const currentState = endpointDefinition.select(args)(\n // Work around TS 4.1 mismatch\n getState()\n );\n let ret = {\n patches: [],\n inversePatches: [],\n undo: () => dispatch(api.util.patchQueryData(endpointName, args, ret.inversePatches, updateProvided))\n };\n if (currentState.status === \"uninitialized\" /* uninitialized */) {\n return ret;\n }\n let newValue;\n if (\"data\" in currentState) {\n if (isDraftable(currentState.data)) {\n const [value, patches, inversePatches] = produceWithPatches(currentState.data, updateRecipe);\n ret.patches.push(...patches);\n ret.inversePatches.push(...inversePatches);\n newValue = value;\n } else {\n newValue = updateRecipe(currentState.data);\n ret.patches.push({\n op: \"replace\",\n path: [],\n value: newValue\n });\n ret.inversePatches.push({\n op: \"replace\",\n path: [],\n value: currentState.data\n });\n }\n }\n dispatch(api.util.patchQueryData(endpointName, args, ret.patches, updateProvided));\n return ret;\n };\n const upsertQueryData = (endpointName, args, value) => (dispatch) => {\n return dispatch(api.endpoints[endpointName].initiate(args, {\n subscribe: false,\n forceRefetch: true,\n [forceQueryFnSymbol]: () => ({\n data: value\n })\n }));\n };\n const executeEndpoint = async (arg, {\n signal,\n abort,\n rejectWithValue,\n fulfillWithValue,\n dispatch,\n getState,\n extra\n }) => {\n const endpointDefinition = endpointDefinitions[arg.endpointName];\n try {\n let transformResponse = defaultTransformResponse;\n let result;\n const baseQueryApi = {\n signal,\n abort,\n dispatch,\n getState,\n extra,\n endpoint: arg.endpointName,\n type: arg.type,\n forced: arg.type === \"query\" ? isForcedQuery(arg, getState()) : void 0\n };\n const forceQueryFn = arg.type === \"query\" ? arg[forceQueryFnSymbol] : void 0;\n if (forceQueryFn) {\n result = forceQueryFn();\n } else if (endpointDefinition.query) {\n result = await baseQuery(endpointDefinition.query(arg.originalArgs), baseQueryApi, endpointDefinition.extraOptions);\n if (endpointDefinition.transformResponse) {\n transformResponse = endpointDefinition.transformResponse;\n }\n } else {\n result = await endpointDefinition.queryFn(arg.originalArgs, baseQueryApi, endpointDefinition.extraOptions, (arg2) => baseQuery(arg2, baseQueryApi, endpointDefinition.extraOptions));\n }\n if (typeof process !== \"undefined\" && process.env.NODE_ENV === \"development\") {\n const what = endpointDefinition.query ? \"`baseQuery`\" : \"`queryFn`\";\n let err;\n if (!result) {\n err = `${what} did not return anything.`;\n } else if (typeof result !== \"object\") {\n err = `${what} did not return an object.`;\n } else if (result.error && result.data) {\n err = `${what} returned an object containing both \\`error\\` and \\`result\\`.`;\n } else if (result.error === void 0 && result.data === void 0) {\n err = `${what} returned an object containing neither a valid \\`error\\` and \\`result\\`. At least one of them should not be \\`undefined\\``;\n } else {\n for (const key of Object.keys(result)) {\n if (key !== \"error\" && key !== \"data\" && key !== \"meta\") {\n err = `The object returned by ${what} has the unknown property ${key}.`;\n break;\n }\n }\n }\n if (err) {\n console.error(`Error encountered handling the endpoint ${arg.endpointName}.\n ${err}\n It needs to return an object with either the shape \\`{ data: }\\` or \\`{ error: }\\` that may contain an optional \\`meta\\` property.\n Object returned was:`, result);\n }\n }\n if (result.error)\n throw new HandledError(result.error, result.meta);\n return fulfillWithValue(await transformResponse(result.data, result.meta, arg.originalArgs), {\n fulfilledTimeStamp: Date.now(),\n baseQueryMeta: result.meta,\n [SHOULD_AUTOBATCH]: true\n });\n } catch (error) {\n let catchedError = error;\n if (catchedError instanceof HandledError) {\n let transformErrorResponse = defaultTransformResponse;\n if (endpointDefinition.query && endpointDefinition.transformErrorResponse) {\n transformErrorResponse = endpointDefinition.transformErrorResponse;\n }\n try {\n return rejectWithValue(await transformErrorResponse(catchedError.value, catchedError.meta, arg.originalArgs), {\n baseQueryMeta: catchedError.meta,\n [SHOULD_AUTOBATCH]: true\n });\n } catch (e) {\n catchedError = e;\n }\n }\n if (typeof process !== \"undefined\" && process.env.NODE_ENV !== \"production\") {\n console.error(`An unhandled error occurred processing a request for the endpoint \"${arg.endpointName}\".\nIn the case of an unhandled error, no tags will be \"provided\" or \"invalidated\".`, catchedError);\n } else {\n console.error(catchedError);\n }\n throw catchedError;\n }\n };\n function isForcedQuery(arg, state) {\n const requestState = state[reducerPath]?.queries?.[arg.queryCacheKey];\n const baseFetchOnMountOrArgChange = state[reducerPath]?.config.refetchOnMountOrArgChange;\n const fulfilledVal = requestState?.fulfilledTimeStamp;\n const refetchVal = arg.forceRefetch ?? (arg.subscribe && baseFetchOnMountOrArgChange);\n if (refetchVal) {\n return refetchVal === true || (Number(/* @__PURE__ */ new Date()) - Number(fulfilledVal)) / 1e3 >= refetchVal;\n }\n return false;\n }\n const queryThunk = createAsyncThunk(`${reducerPath}/executeQuery`, executeEndpoint, {\n getPendingMeta() {\n return {\n startedTimeStamp: Date.now(),\n [SHOULD_AUTOBATCH]: true\n };\n },\n condition(queryThunkArgs, {\n getState\n }) {\n const state = getState();\n const requestState = state[reducerPath]?.queries?.[queryThunkArgs.queryCacheKey];\n const fulfilledVal = requestState?.fulfilledTimeStamp;\n const currentArg = queryThunkArgs.originalArgs;\n const previousArg = requestState?.originalArgs;\n const endpointDefinition = endpointDefinitions[queryThunkArgs.endpointName];\n if (isUpsertQuery(queryThunkArgs)) {\n return true;\n }\n if (requestState?.status === \"pending\") {\n return false;\n }\n if (isForcedQuery(queryThunkArgs, state)) {\n return true;\n }\n if (isQueryDefinition(endpointDefinition) && endpointDefinition?.forceRefetch?.({\n currentArg,\n previousArg,\n endpointState: requestState,\n state\n })) {\n return true;\n }\n if (fulfilledVal) {\n return false;\n }\n return true;\n },\n dispatchConditionRejection: true\n });\n const mutationThunk = createAsyncThunk(`${reducerPath}/executeMutation`, executeEndpoint, {\n getPendingMeta() {\n return {\n startedTimeStamp: Date.now(),\n [SHOULD_AUTOBATCH]: true\n };\n }\n });\n const hasTheForce = (options) => \"force\" in options;\n const hasMaxAge = (options) => \"ifOlderThan\" in options;\n const prefetch = (endpointName, arg, options) => (dispatch, getState) => {\n const force = hasTheForce(options) && options.force;\n const maxAge = hasMaxAge(options) && options.ifOlderThan;\n const queryAction = (force2 = true) => {\n const options2 = {\n forceRefetch: force2,\n isPrefetch: true\n };\n return api.endpoints[endpointName].initiate(arg, options2);\n };\n const latestStateValue = api.endpoints[endpointName].select(arg)(getState());\n if (force) {\n dispatch(queryAction());\n } else if (maxAge) {\n const lastFulfilledTs = latestStateValue?.fulfilledTimeStamp;\n if (!lastFulfilledTs) {\n dispatch(queryAction());\n return;\n }\n const shouldRetrigger = (Number(/* @__PURE__ */ new Date()) - Number(new Date(lastFulfilledTs))) / 1e3 >= maxAge;\n if (shouldRetrigger) {\n dispatch(queryAction());\n }\n } else {\n dispatch(queryAction(false));\n }\n };\n function matchesEndpoint(endpointName) {\n return (action) => action?.meta?.arg?.endpointName === endpointName;\n }\n function buildMatchThunkActions(thunk, endpointName) {\n return {\n matchPending: isAllOf(isPending(thunk), matchesEndpoint(endpointName)),\n matchFulfilled: isAllOf(isFulfilled(thunk), matchesEndpoint(endpointName)),\n matchRejected: isAllOf(isRejected(thunk), matchesEndpoint(endpointName))\n };\n }\n return {\n queryThunk,\n mutationThunk,\n prefetch,\n updateQueryData,\n upsertQueryData,\n patchQueryData,\n buildMatchThunkActions\n };\n}\nfunction calculateProvidedByThunk(action, type, endpointDefinitions, assertTagType) {\n return calculateProvidedBy(endpointDefinitions[action.meta.arg.endpointName][type], isFulfilled(action) ? action.payload : void 0, isRejectedWithValue(action) ? action.payload : void 0, action.meta.arg.originalArgs, \"baseQueryMeta\" in action.meta ? action.meta.baseQueryMeta : void 0, assertTagType);\n}\n\n// src/query/core/buildSlice.ts\nimport { isDraft } from \"immer\";\nimport { applyPatches, original } from \"immer\";\nfunction updateQuerySubstateIfExists(state, queryCacheKey, update) {\n const substate = state[queryCacheKey];\n if (substate) {\n update(substate);\n }\n}\nfunction getMutationCacheKey(id) {\n return (\"arg\" in id ? id.arg.fixedCacheKey : id.fixedCacheKey) ?? id.requestId;\n}\nfunction updateMutationSubstateIfExists(state, id, update) {\n const substate = state[getMutationCacheKey(id)];\n if (substate) {\n update(substate);\n }\n}\nvar initialState = {};\nfunction buildSlice({\n reducerPath,\n queryThunk,\n mutationThunk,\n context: {\n endpointDefinitions: definitions,\n apiUid,\n extractRehydrationInfo,\n hasRehydrationInfo\n },\n assertTagType,\n config\n}) {\n const resetApiState = createAction(`${reducerPath}/resetApiState`);\n const querySlice = createSlice({\n name: `${reducerPath}/queries`,\n initialState,\n reducers: {\n removeQueryResult: {\n reducer(draft, {\n payload: {\n queryCacheKey\n }\n }) {\n delete draft[queryCacheKey];\n },\n prepare: prepareAutoBatched()\n },\n queryResultPatched: {\n reducer(draft, {\n payload: {\n queryCacheKey,\n patches\n }\n }) {\n updateQuerySubstateIfExists(draft, queryCacheKey, (substate) => {\n substate.data = applyPatches(substate.data, patches.concat());\n });\n },\n prepare: prepareAutoBatched()\n }\n },\n extraReducers(builder) {\n builder.addCase(queryThunk.pending, (draft, {\n meta,\n meta: {\n arg\n }\n }) => {\n const upserting = isUpsertQuery(arg);\n draft[arg.queryCacheKey] ??= {\n status: \"uninitialized\" /* uninitialized */,\n endpointName: arg.endpointName\n };\n updateQuerySubstateIfExists(draft, arg.queryCacheKey, (substate) => {\n substate.status = \"pending\" /* pending */;\n substate.requestId = upserting && substate.requestId ? (\n // for `upsertQuery` **updates**, keep the current `requestId`\n substate.requestId\n ) : (\n // for normal queries or `upsertQuery` **inserts** always update the `requestId`\n meta.requestId\n );\n if (arg.originalArgs !== void 0) {\n substate.originalArgs = arg.originalArgs;\n }\n substate.startedTimeStamp = meta.startedTimeStamp;\n });\n }).addCase(queryThunk.fulfilled, (draft, {\n meta,\n payload\n }) => {\n updateQuerySubstateIfExists(draft, meta.arg.queryCacheKey, (substate) => {\n if (substate.requestId !== meta.requestId && !isUpsertQuery(meta.arg))\n return;\n const {\n merge\n } = definitions[meta.arg.endpointName];\n substate.status = \"fulfilled\" /* fulfilled */;\n if (merge) {\n if (substate.data !== void 0) {\n const {\n fulfilledTimeStamp,\n arg,\n baseQueryMeta,\n requestId\n } = meta;\n let newData = createNextState(substate.data, (draftSubstateData) => {\n return merge(draftSubstateData, payload, {\n arg: arg.originalArgs,\n baseQueryMeta,\n fulfilledTimeStamp,\n requestId\n });\n });\n substate.data = newData;\n } else {\n substate.data = payload;\n }\n } else {\n substate.data = definitions[meta.arg.endpointName].structuralSharing ?? true ? copyWithStructuralSharing(isDraft(substate.data) ? original(substate.data) : substate.data, payload) : payload;\n }\n delete substate.error;\n substate.fulfilledTimeStamp = meta.fulfilledTimeStamp;\n });\n }).addCase(queryThunk.rejected, (draft, {\n meta: {\n condition,\n arg,\n requestId\n },\n error,\n payload\n }) => {\n updateQuerySubstateIfExists(draft, arg.queryCacheKey, (substate) => {\n if (condition) {\n } else {\n if (substate.requestId !== requestId)\n return;\n substate.status = \"rejected\" /* rejected */;\n substate.error = payload ?? error;\n }\n });\n }).addMatcher(hasRehydrationInfo, (draft, action) => {\n const {\n queries\n } = extractRehydrationInfo(action);\n for (const [key, entry] of Object.entries(queries)) {\n if (\n // do not rehydrate entries that were currently in flight.\n entry?.status === \"fulfilled\" /* fulfilled */ || entry?.status === \"rejected\" /* rejected */\n ) {\n draft[key] = entry;\n }\n }\n });\n }\n });\n const mutationSlice = createSlice({\n name: `${reducerPath}/mutations`,\n initialState,\n reducers: {\n removeMutationResult: {\n reducer(draft, {\n payload\n }) {\n const cacheKey = getMutationCacheKey(payload);\n if (cacheKey in draft) {\n delete draft[cacheKey];\n }\n },\n prepare: prepareAutoBatched()\n }\n },\n extraReducers(builder) {\n builder.addCase(mutationThunk.pending, (draft, {\n meta,\n meta: {\n requestId,\n arg,\n startedTimeStamp\n }\n }) => {\n if (!arg.track)\n return;\n draft[getMutationCacheKey(meta)] = {\n requestId,\n status: \"pending\" /* pending */,\n endpointName: arg.endpointName,\n startedTimeStamp\n };\n }).addCase(mutationThunk.fulfilled, (draft, {\n payload,\n meta\n }) => {\n if (!meta.arg.track)\n return;\n updateMutationSubstateIfExists(draft, meta, (substate) => {\n if (substate.requestId !== meta.requestId)\n return;\n substate.status = \"fulfilled\" /* fulfilled */;\n substate.data = payload;\n substate.fulfilledTimeStamp = meta.fulfilledTimeStamp;\n });\n }).addCase(mutationThunk.rejected, (draft, {\n payload,\n error,\n meta\n }) => {\n if (!meta.arg.track)\n return;\n updateMutationSubstateIfExists(draft, meta, (substate) => {\n if (substate.requestId !== meta.requestId)\n return;\n substate.status = \"rejected\" /* rejected */;\n substate.error = payload ?? error;\n });\n }).addMatcher(hasRehydrationInfo, (draft, action) => {\n const {\n mutations\n } = extractRehydrationInfo(action);\n for (const [key, entry] of Object.entries(mutations)) {\n if (\n // do not rehydrate entries that were currently in flight.\n (entry?.status === \"fulfilled\" /* fulfilled */ || entry?.status === \"rejected\" /* rejected */) && // only rehydrate endpoints that were persisted using a `fixedCacheKey`\n key !== entry?.requestId\n ) {\n draft[key] = entry;\n }\n }\n });\n }\n });\n const invalidationSlice = createSlice({\n name: `${reducerPath}/invalidation`,\n initialState,\n reducers: {\n updateProvidedBy: {\n reducer(draft, action) {\n const {\n queryCacheKey,\n providedTags\n } = action.payload;\n for (const tagTypeSubscriptions of Object.values(draft)) {\n for (const idSubscriptions of Object.values(tagTypeSubscriptions)) {\n const foundAt = idSubscriptions.indexOf(queryCacheKey);\n if (foundAt !== -1) {\n idSubscriptions.splice(foundAt, 1);\n }\n }\n }\n for (const {\n type,\n id\n } of providedTags) {\n const subscribedQueries = (draft[type] ??= {})[id || \"__internal_without_id\"] ??= [];\n const alreadySubscribed = subscribedQueries.includes(queryCacheKey);\n if (!alreadySubscribed) {\n subscribedQueries.push(queryCacheKey);\n }\n }\n },\n prepare: prepareAutoBatched()\n }\n },\n extraReducers(builder) {\n builder.addCase(querySlice.actions.removeQueryResult, (draft, {\n payload: {\n queryCacheKey\n }\n }) => {\n for (const tagTypeSubscriptions of Object.values(draft)) {\n for (const idSubscriptions of Object.values(tagTypeSubscriptions)) {\n const foundAt = idSubscriptions.indexOf(queryCacheKey);\n if (foundAt !== -1) {\n idSubscriptions.splice(foundAt, 1);\n }\n }\n }\n }).addMatcher(hasRehydrationInfo, (draft, action) => {\n const {\n provided\n } = extractRehydrationInfo(action);\n for (const [type, incomingTags] of Object.entries(provided)) {\n for (const [id, cacheKeys] of Object.entries(incomingTags)) {\n const subscribedQueries = (draft[type] ??= {})[id || \"__internal_without_id\"] ??= [];\n for (const queryCacheKey of cacheKeys) {\n const alreadySubscribed = subscribedQueries.includes(queryCacheKey);\n if (!alreadySubscribed) {\n subscribedQueries.push(queryCacheKey);\n }\n }\n }\n }\n }).addMatcher(isAnyOf(isFulfilled(queryThunk), isRejectedWithValue(queryThunk)), (draft, action) => {\n const providedTags = calculateProvidedByThunk(action, \"providesTags\", definitions, assertTagType);\n const {\n queryCacheKey\n } = action.meta.arg;\n invalidationSlice.caseReducers.updateProvidedBy(draft, invalidationSlice.actions.updateProvidedBy({\n queryCacheKey,\n providedTags\n }));\n });\n }\n });\n const subscriptionSlice = createSlice({\n name: `${reducerPath}/subscriptions`,\n initialState,\n reducers: {\n updateSubscriptionOptions(d, a) {\n },\n unsubscribeQueryResult(d, a) {\n },\n internal_getRTKQSubscriptions() {\n }\n }\n });\n const internalSubscriptionsSlice = createSlice({\n name: `${reducerPath}/internalSubscriptions`,\n initialState,\n reducers: {\n subscriptionsUpdated: {\n reducer(state, action) {\n return applyPatches(state, action.payload);\n },\n prepare: prepareAutoBatched()\n }\n }\n });\n const configSlice = createSlice({\n name: `${reducerPath}/config`,\n initialState: {\n online: isOnline(),\n focused: isDocumentVisible(),\n middlewareRegistered: false,\n ...config\n },\n reducers: {\n middlewareRegistered(state, {\n payload\n }) {\n state.middlewareRegistered = state.middlewareRegistered === \"conflict\" || apiUid !== payload ? \"conflict\" : true;\n }\n },\n extraReducers: (builder) => {\n builder.addCase(onOnline, (state) => {\n state.online = true;\n }).addCase(onOffline, (state) => {\n state.online = false;\n }).addCase(onFocus, (state) => {\n state.focused = true;\n }).addCase(onFocusLost, (state) => {\n state.focused = false;\n }).addMatcher(hasRehydrationInfo, (draft) => ({\n ...draft\n }));\n }\n });\n const combinedReducer = combineReducers({\n queries: querySlice.reducer,\n mutations: mutationSlice.reducer,\n provided: invalidationSlice.reducer,\n subscriptions: internalSubscriptionsSlice.reducer,\n config: configSlice.reducer\n });\n const reducer = (state, action) => combinedReducer(resetApiState.match(action) ? void 0 : state, action);\n const actions = {\n ...configSlice.actions,\n ...querySlice.actions,\n ...subscriptionSlice.actions,\n ...internalSubscriptionsSlice.actions,\n ...mutationSlice.actions,\n ...invalidationSlice.actions,\n resetApiState\n };\n return {\n reducer,\n actions\n };\n}\n\n// src/query/core/buildSelectors.ts\nvar skipToken = /* @__PURE__ */ Symbol.for(\"RTKQ/skipToken\");\nvar initialSubState = {\n status: \"uninitialized\" /* uninitialized */\n};\nvar defaultQuerySubState = /* @__PURE__ */ createNextState(initialSubState, () => {\n});\nvar defaultMutationSubState = /* @__PURE__ */ createNextState(initialSubState, () => {\n});\nfunction buildSelectors({\n serializeQueryArgs,\n reducerPath,\n createSelector: createSelector2\n}) {\n const selectSkippedQuery = (state) => defaultQuerySubState;\n const selectSkippedMutation = (state) => defaultMutationSubState;\n return {\n buildQuerySelector,\n buildMutationSelector,\n selectInvalidatedBy,\n selectCachedArgsForQuery\n };\n function withRequestFlags(substate) {\n return {\n ...substate,\n ...getRequestStatusFlags(substate.status)\n };\n }\n function selectInternalState(rootState) {\n const state = rootState[reducerPath];\n if (process.env.NODE_ENV !== \"production\") {\n if (!state) {\n if (selectInternalState.triggered)\n return state;\n selectInternalState.triggered = true;\n console.error(`Error: No data found at \\`state.${reducerPath}\\`. Did you forget to add the reducer to the store?`);\n }\n }\n return state;\n }\n function buildQuerySelector(endpointName, endpointDefinition) {\n return (queryArgs) => {\n const serializedArgs = serializeQueryArgs({\n queryArgs,\n endpointDefinition,\n endpointName\n });\n const selectQuerySubstate = (state) => selectInternalState(state)?.queries?.[serializedArgs] ?? defaultQuerySubState;\n const finalSelectQuerySubState = queryArgs === skipToken ? selectSkippedQuery : selectQuerySubstate;\n return createSelector2(finalSelectQuerySubState, withRequestFlags);\n };\n }\n function buildMutationSelector() {\n return (id) => {\n let mutationId;\n if (typeof id === \"object\") {\n mutationId = getMutationCacheKey(id) ?? skipToken;\n } else {\n mutationId = id;\n }\n const selectMutationSubstate = (state) => selectInternalState(state)?.mutations?.[mutationId] ?? defaultMutationSubState;\n const finalSelectMutationSubstate = mutationId === skipToken ? selectSkippedMutation : selectMutationSubstate;\n return createSelector2(finalSelectMutationSubstate, withRequestFlags);\n };\n }\n function selectInvalidatedBy(state, tags) {\n const apiState = state[reducerPath];\n const toInvalidate = /* @__PURE__ */ new Set();\n for (const tag of tags.map(expandTagDescription)) {\n const provided = apiState.provided[tag.type];\n if (!provided) {\n continue;\n }\n let invalidateSubscriptions = (tag.id !== void 0 ? (\n // id given: invalidate all queries that provide this type & id\n provided[tag.id]\n ) : (\n // no id: invalidate all queries that provide this type\n flatten(Object.values(provided))\n )) ?? [];\n for (const invalidate of invalidateSubscriptions) {\n toInvalidate.add(invalidate);\n }\n }\n return flatten(Array.from(toInvalidate.values()).map((queryCacheKey) => {\n const querySubState = apiState.queries[queryCacheKey];\n return querySubState ? [{\n queryCacheKey,\n endpointName: querySubState.endpointName,\n originalArgs: querySubState.originalArgs\n }] : [];\n }));\n }\n function selectCachedArgsForQuery(state, queryName) {\n return Object.values(state[reducerPath].queries).filter((entry) => entry?.endpointName === queryName && entry.status !== \"uninitialized\" /* uninitialized */).map((entry) => entry.originalArgs);\n }\n}\n\n// src/query/createApi.ts\nimport { formatProdErrorMessage as _formatProdErrorMessage2 } from \"@reduxjs/toolkit\";\n\n// src/query/defaultSerializeQueryArgs.ts\nvar cache = WeakMap ? /* @__PURE__ */ new WeakMap() : void 0;\nvar defaultSerializeQueryArgs = ({\n endpointName,\n queryArgs\n}) => {\n let serialized = \"\";\n const cached = cache?.get(queryArgs);\n if (typeof cached === \"string\") {\n serialized = cached;\n } else {\n const stringified = JSON.stringify(queryArgs, (key, value) => isPlainObject(value) ? Object.keys(value).sort().reduce((acc, key2) => {\n acc[key2] = value[key2];\n return acc;\n }, {}) : value);\n if (isPlainObject(queryArgs)) {\n cache?.set(queryArgs, stringified);\n }\n serialized = stringified;\n }\n return `${endpointName}(${serialized})`;\n};\n\n// src/query/createApi.ts\nimport { weakMapMemoize } from \"reselect\";\nfunction buildCreateApi(...modules) {\n return function baseCreateApi(options) {\n const extractRehydrationInfo = weakMapMemoize((action) => options.extractRehydrationInfo?.(action, {\n reducerPath: options.reducerPath ?? \"api\"\n }));\n const optionsWithDefaults = {\n reducerPath: \"api\",\n keepUnusedDataFor: 60,\n refetchOnMountOrArgChange: false,\n refetchOnFocus: false,\n refetchOnReconnect: false,\n invalidationBehavior: \"delayed\",\n ...options,\n extractRehydrationInfo,\n serializeQueryArgs(queryArgsApi) {\n let finalSerializeQueryArgs = defaultSerializeQueryArgs;\n if (\"serializeQueryArgs\" in queryArgsApi.endpointDefinition) {\n const endpointSQA = queryArgsApi.endpointDefinition.serializeQueryArgs;\n finalSerializeQueryArgs = (queryArgsApi2) => {\n const initialResult = endpointSQA(queryArgsApi2);\n if (typeof initialResult === \"string\") {\n return initialResult;\n } else {\n return defaultSerializeQueryArgs({\n ...queryArgsApi2,\n queryArgs: initialResult\n });\n }\n };\n } else if (options.serializeQueryArgs) {\n finalSerializeQueryArgs = options.serializeQueryArgs;\n }\n return finalSerializeQueryArgs(queryArgsApi);\n },\n tagTypes: [...options.tagTypes || []]\n };\n const context = {\n endpointDefinitions: {},\n batch(fn) {\n fn();\n },\n apiUid: nanoid(),\n extractRehydrationInfo,\n hasRehydrationInfo: weakMapMemoize((action) => extractRehydrationInfo(action) != null)\n };\n const api = {\n injectEndpoints,\n enhanceEndpoints({\n addTagTypes,\n endpoints\n }) {\n if (addTagTypes) {\n for (const eT of addTagTypes) {\n if (!optionsWithDefaults.tagTypes.includes(eT)) {\n ;\n optionsWithDefaults.tagTypes.push(eT);\n }\n }\n }\n if (endpoints) {\n for (const [endpointName, partialDefinition] of Object.entries(endpoints)) {\n if (typeof partialDefinition === \"function\") {\n partialDefinition(context.endpointDefinitions[endpointName]);\n } else {\n Object.assign(context.endpointDefinitions[endpointName] || {}, partialDefinition);\n }\n }\n }\n return api;\n }\n };\n const initializedModules = modules.map((m) => m.init(api, optionsWithDefaults, context));\n function injectEndpoints(inject) {\n const evaluatedEndpoints = inject.endpoints({\n query: (x) => ({\n ...x,\n type: \"query\" /* query */\n }),\n mutation: (x) => ({\n ...x,\n type: \"mutation\" /* mutation */\n })\n });\n for (const [endpointName, definition] of Object.entries(evaluatedEndpoints)) {\n if (inject.overrideExisting !== true && endpointName in context.endpointDefinitions) {\n if (inject.overrideExisting === \"throw\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(39) : `called \\`injectEndpoints\\` to override already-existing endpointName ${endpointName} without specifying \\`overrideExisting: true\\``);\n } else if (typeof process !== \"undefined\" && process.env.NODE_ENV === \"development\") {\n console.error(`called \\`injectEndpoints\\` to override already-existing endpointName ${endpointName} without specifying \\`overrideExisting: true\\``);\n }\n continue;\n }\n context.endpointDefinitions[endpointName] = definition;\n for (const m of initializedModules) {\n m.injectEndpoint(endpointName, definition);\n }\n }\n return api;\n }\n return api.injectEndpoints({\n endpoints: options.endpoints\n });\n };\n}\n\n// src/query/fakeBaseQuery.ts\nimport { formatProdErrorMessage as _formatProdErrorMessage3 } from \"@reduxjs/toolkit\";\nfunction fakeBaseQuery() {\n return function() {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(33) : \"When using `fakeBaseQuery`, all queries & mutations must use the `queryFn` definition syntax.\");\n };\n}\n\n// src/query/core/buildMiddleware/cacheCollection.ts\nfunction isObjectEmpty(obj) {\n for (let k in obj) {\n return false;\n }\n return true;\n}\nvar THIRTY_TWO_BIT_MAX_TIMER_SECONDS = 2147483647 / 1e3 - 1;\nvar buildCacheCollectionHandler = ({\n reducerPath,\n api,\n context,\n internalState\n}) => {\n const {\n removeQueryResult,\n unsubscribeQueryResult\n } = api.internalActions;\n function anySubscriptionsRemainingForKey(queryCacheKey) {\n const subscriptions = internalState.currentSubscriptions[queryCacheKey];\n return !!subscriptions && !isObjectEmpty(subscriptions);\n }\n const currentRemovalTimeouts = {};\n const handler = (action, mwApi, internalState2) => {\n if (unsubscribeQueryResult.match(action)) {\n const state = mwApi.getState()[reducerPath];\n const {\n queryCacheKey\n } = action.payload;\n handleUnsubscribe(queryCacheKey, state.queries[queryCacheKey]?.endpointName, mwApi, state.config);\n }\n if (api.util.resetApiState.match(action)) {\n for (const [key, timeout] of Object.entries(currentRemovalTimeouts)) {\n if (timeout)\n clearTimeout(timeout);\n delete currentRemovalTimeouts[key];\n }\n }\n if (context.hasRehydrationInfo(action)) {\n const state = mwApi.getState()[reducerPath];\n const {\n queries\n } = context.extractRehydrationInfo(action);\n for (const [queryCacheKey, queryState] of Object.entries(queries)) {\n handleUnsubscribe(queryCacheKey, queryState?.endpointName, mwApi, state.config);\n }\n }\n };\n function handleUnsubscribe(queryCacheKey, endpointName, api2, config) {\n const endpointDefinition = context.endpointDefinitions[endpointName];\n const keepUnusedDataFor = endpointDefinition?.keepUnusedDataFor ?? config.keepUnusedDataFor;\n if (keepUnusedDataFor === Infinity) {\n return;\n }\n const finalKeepUnusedDataFor = Math.max(0, Math.min(keepUnusedDataFor, THIRTY_TWO_BIT_MAX_TIMER_SECONDS));\n if (!anySubscriptionsRemainingForKey(queryCacheKey)) {\n const currentTimeout = currentRemovalTimeouts[queryCacheKey];\n if (currentTimeout) {\n clearTimeout(currentTimeout);\n }\n currentRemovalTimeouts[queryCacheKey] = setTimeout(() => {\n if (!anySubscriptionsRemainingForKey(queryCacheKey)) {\n api2.dispatch(removeQueryResult({\n queryCacheKey\n }));\n }\n delete currentRemovalTimeouts[queryCacheKey];\n }, finalKeepUnusedDataFor * 1e3);\n }\n }\n return handler;\n};\n\n// src/query/core/buildMiddleware/invalidationByTags.ts\nvar buildInvalidationByTagsHandler = ({\n reducerPath,\n context,\n context: {\n endpointDefinitions\n },\n mutationThunk,\n queryThunk,\n api,\n assertTagType,\n refetchQuery,\n internalState\n}) => {\n const {\n removeQueryResult\n } = api.internalActions;\n const isThunkActionWithTags = isAnyOf(isFulfilled(mutationThunk), isRejectedWithValue(mutationThunk));\n const isQueryEnd = isAnyOf(isFulfilled(mutationThunk, queryThunk), isRejected(mutationThunk, queryThunk));\n let pendingTagInvalidations = [];\n const handler = (action, mwApi) => {\n if (isThunkActionWithTags(action)) {\n invalidateTags(calculateProvidedByThunk(action, \"invalidatesTags\", endpointDefinitions, assertTagType), mwApi);\n } else if (isQueryEnd(action)) {\n invalidateTags([], mwApi);\n } else if (api.util.invalidateTags.match(action)) {\n invalidateTags(calculateProvidedBy(action.payload, void 0, void 0, void 0, void 0, assertTagType), mwApi);\n }\n };\n function hasPendingRequests(state) {\n for (const key in state.queries) {\n if (state.queries[key]?.status === \"pending\" /* pending */)\n return true;\n }\n for (const key in state.mutations) {\n if (state.mutations[key]?.status === \"pending\" /* pending */)\n return true;\n }\n return false;\n }\n function invalidateTags(newTags, mwApi) {\n const rootState = mwApi.getState();\n const state = rootState[reducerPath];\n pendingTagInvalidations.push(...newTags);\n if (state.config.invalidationBehavior === \"delayed\" && hasPendingRequests(state)) {\n return;\n }\n const tags = pendingTagInvalidations;\n pendingTagInvalidations = [];\n if (tags.length === 0)\n return;\n const toInvalidate = api.util.selectInvalidatedBy(rootState, tags);\n context.batch(() => {\n const valuesArray = Array.from(toInvalidate.values());\n for (const {\n queryCacheKey\n } of valuesArray) {\n const querySubState = state.queries[queryCacheKey];\n const subscriptionSubState = internalState.currentSubscriptions[queryCacheKey] ?? {};\n if (querySubState) {\n if (countObjectKeys(subscriptionSubState) === 0) {\n mwApi.dispatch(removeQueryResult({\n queryCacheKey\n }));\n } else if (querySubState.status !== \"uninitialized\" /* uninitialized */) {\n mwApi.dispatch(refetchQuery(querySubState, queryCacheKey));\n }\n }\n }\n });\n }\n return handler;\n};\n\n// src/query/core/buildMiddleware/polling.ts\nvar buildPollingHandler = ({\n reducerPath,\n queryThunk,\n api,\n refetchQuery,\n internalState\n}) => {\n const currentPolls = {};\n const handler = (action, mwApi) => {\n if (api.internalActions.updateSubscriptionOptions.match(action) || api.internalActions.unsubscribeQueryResult.match(action)) {\n updatePollingInterval(action.payload, mwApi);\n }\n if (queryThunk.pending.match(action) || queryThunk.rejected.match(action) && action.meta.condition) {\n updatePollingInterval(action.meta.arg, mwApi);\n }\n if (queryThunk.fulfilled.match(action) || queryThunk.rejected.match(action) && !action.meta.condition) {\n startNextPoll(action.meta.arg, mwApi);\n }\n if (api.util.resetApiState.match(action)) {\n clearPolls();\n }\n };\n function startNextPoll({\n queryCacheKey\n }, api2) {\n const state = api2.getState()[reducerPath];\n const querySubState = state.queries[queryCacheKey];\n const subscriptions = internalState.currentSubscriptions[queryCacheKey];\n if (!querySubState || querySubState.status === \"uninitialized\" /* uninitialized */)\n return;\n const {\n lowestPollingInterval,\n skipPollingIfUnfocused\n } = findLowestPollingInterval(subscriptions);\n if (!Number.isFinite(lowestPollingInterval))\n return;\n const currentPoll = currentPolls[queryCacheKey];\n if (currentPoll?.timeout) {\n clearTimeout(currentPoll.timeout);\n currentPoll.timeout = void 0;\n }\n const nextPollTimestamp = Date.now() + lowestPollingInterval;\n currentPolls[queryCacheKey] = {\n nextPollTimestamp,\n pollingInterval: lowestPollingInterval,\n timeout: setTimeout(() => {\n if (state.config.focused || !skipPollingIfUnfocused) {\n api2.dispatch(refetchQuery(querySubState, queryCacheKey));\n }\n startNextPoll({\n queryCacheKey\n }, api2);\n }, lowestPollingInterval)\n };\n }\n function updatePollingInterval({\n queryCacheKey\n }, api2) {\n const state = api2.getState()[reducerPath];\n const querySubState = state.queries[queryCacheKey];\n const subscriptions = internalState.currentSubscriptions[queryCacheKey];\n if (!querySubState || querySubState.status === \"uninitialized\" /* uninitialized */) {\n return;\n }\n const {\n lowestPollingInterval\n } = findLowestPollingInterval(subscriptions);\n if (!Number.isFinite(lowestPollingInterval)) {\n cleanupPollForKey(queryCacheKey);\n return;\n }\n const currentPoll = currentPolls[queryCacheKey];\n const nextPollTimestamp = Date.now() + lowestPollingInterval;\n if (!currentPoll || nextPollTimestamp < currentPoll.nextPollTimestamp) {\n startNextPoll({\n queryCacheKey\n }, api2);\n }\n }\n function cleanupPollForKey(key) {\n const existingPoll = currentPolls[key];\n if (existingPoll?.timeout) {\n clearTimeout(existingPoll.timeout);\n }\n delete currentPolls[key];\n }\n function clearPolls() {\n for (const key of Object.keys(currentPolls)) {\n cleanupPollForKey(key);\n }\n }\n function findLowestPollingInterval(subscribers = {}) {\n let skipPollingIfUnfocused = false;\n let lowestPollingInterval = Number.POSITIVE_INFINITY;\n for (let key in subscribers) {\n if (!!subscribers[key].pollingInterval) {\n lowestPollingInterval = Math.min(subscribers[key].pollingInterval, lowestPollingInterval);\n skipPollingIfUnfocused = subscribers[key].skipPollingIfUnfocused || skipPollingIfUnfocused;\n }\n }\n return {\n lowestPollingInterval,\n skipPollingIfUnfocused\n };\n }\n return handler;\n};\n\n// src/query/core/buildMiddleware/windowEventHandling.ts\nvar buildWindowEventHandler = ({\n reducerPath,\n context,\n api,\n refetchQuery,\n internalState\n}) => {\n const {\n removeQueryResult\n } = api.internalActions;\n const handler = (action, mwApi) => {\n if (onFocus.match(action)) {\n refetchValidQueries(mwApi, \"refetchOnFocus\");\n }\n if (onOnline.match(action)) {\n refetchValidQueries(mwApi, \"refetchOnReconnect\");\n }\n };\n function refetchValidQueries(api2, type) {\n const state = api2.getState()[reducerPath];\n const queries = state.queries;\n const subscriptions = internalState.currentSubscriptions;\n context.batch(() => {\n for (const queryCacheKey of Object.keys(subscriptions)) {\n const querySubState = queries[queryCacheKey];\n const subscriptionSubState = subscriptions[queryCacheKey];\n if (!subscriptionSubState || !querySubState)\n continue;\n const shouldRefetch = Object.values(subscriptionSubState).some((sub) => sub[type] === true) || Object.values(subscriptionSubState).every((sub) => sub[type] === void 0) && state.config[type];\n if (shouldRefetch) {\n if (countObjectKeys(subscriptionSubState) === 0) {\n api2.dispatch(removeQueryResult({\n queryCacheKey\n }));\n } else if (querySubState.status !== \"uninitialized\" /* uninitialized */) {\n api2.dispatch(refetchQuery(querySubState, queryCacheKey));\n }\n }\n }\n });\n }\n return handler;\n};\n\n// src/query/core/buildMiddleware/cacheLifecycle.ts\nvar neverResolvedError = new Error(\"Promise never resolved before cacheEntryRemoved.\");\nvar buildCacheLifecycleHandler = ({\n api,\n reducerPath,\n context,\n queryThunk,\n mutationThunk,\n internalState\n}) => {\n const isQueryThunk = isAsyncThunkAction(queryThunk);\n const isMutationThunk = isAsyncThunkAction(mutationThunk);\n const isFulfilledThunk = isFulfilled(queryThunk, mutationThunk);\n const lifecycleMap = {};\n const handler = (action, mwApi, stateBefore) => {\n const cacheKey = getCacheKey(action);\n if (queryThunk.pending.match(action)) {\n const oldState = stateBefore[reducerPath].queries[cacheKey];\n const state = mwApi.getState()[reducerPath].queries[cacheKey];\n if (!oldState && state) {\n handleNewKey(action.meta.arg.endpointName, action.meta.arg.originalArgs, cacheKey, mwApi, action.meta.requestId);\n }\n } else if (mutationThunk.pending.match(action)) {\n const state = mwApi.getState()[reducerPath].mutations[cacheKey];\n if (state) {\n handleNewKey(action.meta.arg.endpointName, action.meta.arg.originalArgs, cacheKey, mwApi, action.meta.requestId);\n }\n } else if (isFulfilledThunk(action)) {\n const lifecycle = lifecycleMap[cacheKey];\n if (lifecycle?.valueResolved) {\n lifecycle.valueResolved({\n data: action.payload,\n meta: action.meta.baseQueryMeta\n });\n delete lifecycle.valueResolved;\n }\n } else if (api.internalActions.removeQueryResult.match(action) || api.internalActions.removeMutationResult.match(action)) {\n const lifecycle = lifecycleMap[cacheKey];\n if (lifecycle) {\n delete lifecycleMap[cacheKey];\n lifecycle.cacheEntryRemoved();\n }\n } else if (api.util.resetApiState.match(action)) {\n for (const [cacheKey2, lifecycle] of Object.entries(lifecycleMap)) {\n delete lifecycleMap[cacheKey2];\n lifecycle.cacheEntryRemoved();\n }\n }\n };\n function getCacheKey(action) {\n if (isQueryThunk(action))\n return action.meta.arg.queryCacheKey;\n if (isMutationThunk(action)) {\n return action.meta.arg.fixedCacheKey ?? action.meta.requestId;\n }\n if (api.internalActions.removeQueryResult.match(action))\n return action.payload.queryCacheKey;\n if (api.internalActions.removeMutationResult.match(action))\n return getMutationCacheKey(action.payload);\n return \"\";\n }\n function handleNewKey(endpointName, originalArgs, queryCacheKey, mwApi, requestId) {\n const endpointDefinition = context.endpointDefinitions[endpointName];\n const onCacheEntryAdded = endpointDefinition?.onCacheEntryAdded;\n if (!onCacheEntryAdded)\n return;\n let lifecycle = {};\n const cacheEntryRemoved = new Promise((resolve) => {\n lifecycle.cacheEntryRemoved = resolve;\n });\n const cacheDataLoaded = Promise.race([new Promise((resolve) => {\n lifecycle.valueResolved = resolve;\n }), cacheEntryRemoved.then(() => {\n throw neverResolvedError;\n })]);\n cacheDataLoaded.catch(() => {\n });\n lifecycleMap[queryCacheKey] = lifecycle;\n const selector = api.endpoints[endpointName].select(endpointDefinition.type === \"query\" /* query */ ? originalArgs : queryCacheKey);\n const extra = mwApi.dispatch((_, __, extra2) => extra2);\n const lifecycleApi = {\n ...mwApi,\n getCacheEntry: () => selector(mwApi.getState()),\n requestId,\n extra,\n updateCachedData: endpointDefinition.type === \"query\" /* query */ ? (updateRecipe) => mwApi.dispatch(api.util.updateQueryData(endpointName, originalArgs, updateRecipe)) : void 0,\n cacheDataLoaded,\n cacheEntryRemoved\n };\n const runningHandler = onCacheEntryAdded(originalArgs, lifecycleApi);\n Promise.resolve(runningHandler).catch((e) => {\n if (e === neverResolvedError)\n return;\n throw e;\n });\n }\n return handler;\n};\n\n// src/query/core/buildMiddleware/queryLifecycle.ts\nvar buildQueryLifecycleHandler = ({\n api,\n context,\n queryThunk,\n mutationThunk\n}) => {\n const isPendingThunk = isPending(queryThunk, mutationThunk);\n const isRejectedThunk = isRejected(queryThunk, mutationThunk);\n const isFullfilledThunk = isFulfilled(queryThunk, mutationThunk);\n const lifecycleMap = {};\n const handler = (action, mwApi) => {\n if (isPendingThunk(action)) {\n const {\n requestId,\n arg: {\n endpointName,\n originalArgs\n }\n } = action.meta;\n const endpointDefinition = context.endpointDefinitions[endpointName];\n const onQueryStarted = endpointDefinition?.onQueryStarted;\n if (onQueryStarted) {\n const lifecycle = {};\n const queryFulfilled = new Promise((resolve, reject) => {\n lifecycle.resolve = resolve;\n lifecycle.reject = reject;\n });\n queryFulfilled.catch(() => {\n });\n lifecycleMap[requestId] = lifecycle;\n const selector = api.endpoints[endpointName].select(endpointDefinition.type === \"query\" /* query */ ? originalArgs : requestId);\n const extra = mwApi.dispatch((_, __, extra2) => extra2);\n const lifecycleApi = {\n ...mwApi,\n getCacheEntry: () => selector(mwApi.getState()),\n requestId,\n extra,\n updateCachedData: endpointDefinition.type === \"query\" /* query */ ? (updateRecipe) => mwApi.dispatch(api.util.updateQueryData(endpointName, originalArgs, updateRecipe)) : void 0,\n queryFulfilled\n };\n onQueryStarted(originalArgs, lifecycleApi);\n }\n } else if (isFullfilledThunk(action)) {\n const {\n requestId,\n baseQueryMeta\n } = action.meta;\n lifecycleMap[requestId]?.resolve({\n data: action.payload,\n meta: baseQueryMeta\n });\n delete lifecycleMap[requestId];\n } else if (isRejectedThunk(action)) {\n const {\n requestId,\n rejectedWithValue,\n baseQueryMeta\n } = action.meta;\n lifecycleMap[requestId]?.reject({\n error: action.payload ?? action.error,\n isUnhandledError: !rejectedWithValue,\n meta: baseQueryMeta\n });\n delete lifecycleMap[requestId];\n }\n };\n return handler;\n};\n\n// src/query/core/buildMiddleware/devMiddleware.ts\nvar buildDevCheckHandler = ({\n api,\n context: {\n apiUid\n },\n reducerPath\n}) => {\n return (action, mwApi) => {\n if (api.util.resetApiState.match(action)) {\n mwApi.dispatch(api.internalActions.middlewareRegistered(apiUid));\n }\n if (typeof process !== \"undefined\" && process.env.NODE_ENV === \"development\") {\n if (api.internalActions.middlewareRegistered.match(action) && action.payload === apiUid && mwApi.getState()[reducerPath]?.config?.middlewareRegistered === \"conflict\") {\n console.warn(`There is a mismatch between slice and middleware for the reducerPath \"${reducerPath}\".\nYou can only have one api per reducer path, this will lead to crashes in various situations!${reducerPath === \"api\" ? `\nIf you have multiple apis, you *have* to specify the reducerPath option when using createApi!` : \"\"}`);\n }\n }\n };\n};\n\n// src/query/core/buildMiddleware/batchActions.ts\nimport { produceWithPatches as produceWithPatches2 } from \"immer\";\nvar buildBatchedActionsHandler = ({\n api,\n queryThunk,\n internalState\n}) => {\n const subscriptionsPrefix = `${api.reducerPath}/subscriptions`;\n let previousSubscriptions = null;\n let updateSyncTimer = null;\n const {\n updateSubscriptionOptions,\n unsubscribeQueryResult\n } = api.internalActions;\n const actuallyMutateSubscriptions = (mutableState, action) => {\n if (updateSubscriptionOptions.match(action)) {\n const {\n queryCacheKey,\n requestId,\n options\n } = action.payload;\n if (mutableState?.[queryCacheKey]?.[requestId]) {\n mutableState[queryCacheKey][requestId] = options;\n }\n return true;\n }\n if (unsubscribeQueryResult.match(action)) {\n const {\n queryCacheKey,\n requestId\n } = action.payload;\n if (mutableState[queryCacheKey]) {\n delete mutableState[queryCacheKey][requestId];\n }\n return true;\n }\n if (api.internalActions.removeQueryResult.match(action)) {\n delete mutableState[action.payload.queryCacheKey];\n return true;\n }\n if (queryThunk.pending.match(action)) {\n const {\n meta: {\n arg,\n requestId\n }\n } = action;\n const substate = mutableState[arg.queryCacheKey] ??= {};\n substate[`${requestId}_running`] = {};\n if (arg.subscribe) {\n substate[requestId] = arg.subscriptionOptions ?? substate[requestId] ?? {};\n }\n return true;\n }\n let mutated = false;\n if (queryThunk.fulfilled.match(action) || queryThunk.rejected.match(action)) {\n const state = mutableState[action.meta.arg.queryCacheKey] || {};\n const key = `${action.meta.requestId}_running`;\n mutated ||= !!state[key];\n delete state[key];\n }\n if (queryThunk.rejected.match(action)) {\n const {\n meta: {\n condition,\n arg,\n requestId\n }\n } = action;\n if (condition && arg.subscribe) {\n const substate = mutableState[arg.queryCacheKey] ??= {};\n substate[requestId] = arg.subscriptionOptions ?? substate[requestId] ?? {};\n mutated = true;\n }\n }\n return mutated;\n };\n const getSubscriptions = () => internalState.currentSubscriptions;\n const getSubscriptionCount = (queryCacheKey) => {\n const subscriptions = getSubscriptions();\n const subscriptionsForQueryArg = subscriptions[queryCacheKey] ?? {};\n return countObjectKeys(subscriptionsForQueryArg);\n };\n const isRequestSubscribed = (queryCacheKey, requestId) => {\n const subscriptions = getSubscriptions();\n return !!subscriptions?.[queryCacheKey]?.[requestId];\n };\n const subscriptionSelectors = {\n getSubscriptions,\n getSubscriptionCount,\n isRequestSubscribed\n };\n return (action, mwApi) => {\n if (!previousSubscriptions) {\n previousSubscriptions = JSON.parse(JSON.stringify(internalState.currentSubscriptions));\n }\n if (api.util.resetApiState.match(action)) {\n previousSubscriptions = internalState.currentSubscriptions = {};\n updateSyncTimer = null;\n return [true, false];\n }\n if (api.internalActions.internal_getRTKQSubscriptions.match(action)) {\n return [false, subscriptionSelectors];\n }\n const didMutate = actuallyMutateSubscriptions(internalState.currentSubscriptions, action);\n let actionShouldContinue = true;\n if (didMutate) {\n if (!updateSyncTimer) {\n updateSyncTimer = setTimeout(() => {\n const newSubscriptions = JSON.parse(JSON.stringify(internalState.currentSubscriptions));\n const [, patches] = produceWithPatches2(previousSubscriptions, () => newSubscriptions);\n mwApi.next(api.internalActions.subscriptionsUpdated(patches));\n previousSubscriptions = newSubscriptions;\n updateSyncTimer = null;\n }, 500);\n }\n const isSubscriptionSliceAction = typeof action.type == \"string\" && !!action.type.startsWith(subscriptionsPrefix);\n const isAdditionalSubscriptionAction = queryThunk.rejected.match(action) && action.meta.condition && !!action.meta.arg.subscribe;\n actionShouldContinue = !isSubscriptionSliceAction && !isAdditionalSubscriptionAction;\n }\n return [actionShouldContinue, false];\n };\n};\n\n// src/query/core/buildMiddleware/index.ts\nfunction buildMiddleware(input) {\n const {\n reducerPath,\n queryThunk,\n api,\n context\n } = input;\n const {\n apiUid\n } = context;\n const actions = {\n invalidateTags: createAction(`${reducerPath}/invalidateTags`)\n };\n const isThisApiSliceAction = (action) => action.type.startsWith(`${reducerPath}/`);\n const handlerBuilders = [buildDevCheckHandler, buildCacheCollectionHandler, buildInvalidationByTagsHandler, buildPollingHandler, buildCacheLifecycleHandler, buildQueryLifecycleHandler];\n const middleware = (mwApi) => {\n let initialized2 = false;\n let internalState = {\n currentSubscriptions: {}\n };\n const builderArgs = {\n ...input,\n internalState,\n refetchQuery,\n isThisApiSliceAction\n };\n const handlers = handlerBuilders.map((build) => build(builderArgs));\n const batchedActionsHandler = buildBatchedActionsHandler(builderArgs);\n const windowEventsHandler = buildWindowEventHandler(builderArgs);\n return (next) => {\n return (action) => {\n if (!isAction(action)) {\n return next(action);\n }\n if (!initialized2) {\n initialized2 = true;\n mwApi.dispatch(api.internalActions.middlewareRegistered(apiUid));\n }\n const mwApiWithNext = {\n ...mwApi,\n next\n };\n const stateBefore = mwApi.getState();\n const [actionShouldContinue, internalProbeResult] = batchedActionsHandler(action, mwApiWithNext, stateBefore);\n let res;\n if (actionShouldContinue) {\n res = next(action);\n } else {\n res = internalProbeResult;\n }\n if (!!mwApi.getState()[reducerPath]) {\n windowEventsHandler(action, mwApiWithNext, stateBefore);\n if (isThisApiSliceAction(action) || context.hasRehydrationInfo(action)) {\n for (let handler of handlers) {\n handler(action, mwApiWithNext, stateBefore);\n }\n }\n }\n return res;\n };\n };\n };\n return {\n middleware,\n actions\n };\n function refetchQuery(querySubState, queryCacheKey, override = {}) {\n return queryThunk({\n type: \"query\",\n endpointName: querySubState.endpointName,\n originalArgs: querySubState.originalArgs,\n subscribe: false,\n forceRefetch: true,\n queryCacheKey,\n ...override\n });\n }\n}\n\n// src/query/tsHelpers.ts\nfunction assertCast(v) {\n}\nfunction safeAssign(target, ...args) {\n return Object.assign(target, ...args);\n}\n\n// src/query/core/module.ts\nimport { enablePatches } from \"immer\";\nvar coreModuleName = /* @__PURE__ */ Symbol();\nvar coreModule = ({\n createSelector: createSelector2 = createSelector\n} = {}) => ({\n name: coreModuleName,\n init(api, {\n baseQuery,\n tagTypes,\n reducerPath,\n serializeQueryArgs,\n keepUnusedDataFor,\n refetchOnMountOrArgChange,\n refetchOnFocus,\n refetchOnReconnect,\n invalidationBehavior\n }, context) {\n enablePatches();\n assertCast(serializeQueryArgs);\n const assertTagType = (tag) => {\n if (typeof process !== \"undefined\" && process.env.NODE_ENV === \"development\") {\n if (!tagTypes.includes(tag.type)) {\n console.error(`Tag type '${tag.type}' was used, but not specified in \\`tagTypes\\`!`);\n }\n }\n return tag;\n };\n Object.assign(api, {\n reducerPath,\n endpoints: {},\n internalActions: {\n onOnline,\n onOffline,\n onFocus,\n onFocusLost\n },\n util: {}\n });\n const {\n queryThunk,\n mutationThunk,\n patchQueryData,\n updateQueryData,\n upsertQueryData,\n prefetch,\n buildMatchThunkActions\n } = buildThunks({\n baseQuery,\n reducerPath,\n context,\n api,\n serializeQueryArgs,\n assertTagType\n });\n const {\n reducer,\n actions: sliceActions\n } = buildSlice({\n context,\n queryThunk,\n mutationThunk,\n reducerPath,\n assertTagType,\n config: {\n refetchOnFocus,\n refetchOnReconnect,\n refetchOnMountOrArgChange,\n keepUnusedDataFor,\n reducerPath,\n invalidationBehavior\n }\n });\n safeAssign(api.util, {\n patchQueryData,\n updateQueryData,\n upsertQueryData,\n prefetch,\n resetApiState: sliceActions.resetApiState\n });\n safeAssign(api.internalActions, sliceActions);\n const {\n middleware,\n actions: middlewareActions\n } = buildMiddleware({\n reducerPath,\n context,\n queryThunk,\n mutationThunk,\n api,\n assertTagType\n });\n safeAssign(api.util, middlewareActions);\n safeAssign(api, {\n reducer,\n middleware\n });\n const {\n buildQuerySelector,\n buildMutationSelector,\n selectInvalidatedBy,\n selectCachedArgsForQuery\n } = buildSelectors({\n serializeQueryArgs,\n reducerPath,\n createSelector: createSelector2\n });\n safeAssign(api.util, {\n selectInvalidatedBy,\n selectCachedArgsForQuery\n });\n const {\n buildInitiateQuery,\n buildInitiateMutation,\n getRunningMutationThunk,\n getRunningMutationsThunk,\n getRunningQueriesThunk,\n getRunningQueryThunk\n } = buildInitiate({\n queryThunk,\n mutationThunk,\n api,\n serializeQueryArgs,\n context\n });\n safeAssign(api.util, {\n getRunningMutationThunk,\n getRunningMutationsThunk,\n getRunningQueryThunk,\n getRunningQueriesThunk\n });\n return {\n name: coreModuleName,\n injectEndpoint(endpointName, definition) {\n const anyApi = api;\n anyApi.endpoints[endpointName] ??= {};\n if (isQueryDefinition(definition)) {\n safeAssign(anyApi.endpoints[endpointName], {\n name: endpointName,\n select: buildQuerySelector(endpointName, definition),\n initiate: buildInitiateQuery(endpointName, definition)\n }, buildMatchThunkActions(queryThunk, endpointName));\n } else if (isMutationDefinition(definition)) {\n safeAssign(anyApi.endpoints[endpointName], {\n name: endpointName,\n select: buildMutationSelector(),\n initiate: buildInitiateMutation(endpointName)\n }, buildMatchThunkActions(mutationThunk, endpointName));\n }\n }\n };\n }\n});\n\n// src/query/core/index.ts\nvar createApi = /* @__PURE__ */ buildCreateApi(coreModule());\nexport {\n QueryStatus,\n buildCreateApi,\n copyWithStructuralSharing,\n coreModule,\n coreModuleName,\n createApi,\n defaultSerializeQueryArgs,\n fakeBaseQuery,\n fetchBaseQuery,\n retry,\n setupListeners,\n skipToken\n};\n//# sourceMappingURL=rtk-query.modern.mjs.map","// src/query/react/index.ts\nimport { buildCreateApi, coreModule } from \"@reduxjs/toolkit/query\";\n\n// src/query/react/module.ts\nimport { formatProdErrorMessage as _formatProdErrorMessage3 } from \"@reduxjs/toolkit\";\n\n// src/query/endpointDefinitions.ts\nfunction isQueryDefinition(e) {\n return e.type === \"query\" /* query */;\n}\nfunction isMutationDefinition(e) {\n return e.type === \"mutation\" /* mutation */;\n}\n\n// src/query/tsHelpers.ts\nfunction safeAssign(target, ...args) {\n return Object.assign(target, ...args);\n}\n\n// src/query/utils/capitalize.ts\nfunction capitalize(str) {\n return str.replace(str[0], str[0].toUpperCase());\n}\n\n// src/query/core/rtkImports.ts\nimport { createAction, createSlice, createSelector, createAsyncThunk, combineReducers, createNextState, isAnyOf, isAllOf, isAction, isPending, isRejected, isFulfilled, isRejectedWithValue, isAsyncThunkAction, prepareAutoBatched, SHOULD_AUTOBATCH, isPlainObject, nanoid } from \"@reduxjs/toolkit\";\n\n// src/query/react/buildHooks.ts\nimport { formatProdErrorMessage as _formatProdErrorMessage2 } from \"@reduxjs/toolkit\";\nimport { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\nimport { QueryStatus, skipToken } from \"@reduxjs/toolkit/query\";\nimport { useCallback, useDebugValue, useEffect as useEffect3, useLayoutEffect, useMemo as useMemo2, useRef as useRef3, useState } from \"react\";\nimport { shallowEqual as shallowEqual2 } from \"react-redux\";\n\n// src/query/defaultSerializeQueryArgs.ts\nvar cache = WeakMap ? /* @__PURE__ */ new WeakMap() : void 0;\nvar defaultSerializeQueryArgs = ({\n endpointName,\n queryArgs\n}) => {\n let serialized = \"\";\n const cached = cache?.get(queryArgs);\n if (typeof cached === \"string\") {\n serialized = cached;\n } else {\n const stringified = JSON.stringify(queryArgs, (key, value) => isPlainObject(value) ? Object.keys(value).sort().reduce((acc, key2) => {\n acc[key2] = value[key2];\n return acc;\n }, {}) : value);\n if (isPlainObject(queryArgs)) {\n cache?.set(queryArgs, stringified);\n }\n serialized = stringified;\n }\n return `${endpointName}(${serialized})`;\n};\n\n// src/query/react/constants.ts\nvar UNINITIALIZED_VALUE = Symbol();\n\n// src/query/react/useSerializedStableValue.ts\nimport { useEffect, useRef, useMemo } from \"react\";\nfunction useStableQueryArgs(queryArgs, serialize, endpointDefinition, endpointName) {\n const incoming = useMemo(() => ({\n queryArgs,\n serialized: typeof queryArgs == \"object\" ? serialize({\n queryArgs,\n endpointDefinition,\n endpointName\n }) : queryArgs\n }), [queryArgs, serialize, endpointDefinition, endpointName]);\n const cache2 = useRef(incoming);\n useEffect(() => {\n if (cache2.current.serialized !== incoming.serialized) {\n cache2.current = incoming;\n }\n }, [incoming]);\n return cache2.current.serialized === incoming.serialized ? cache2.current.queryArgs : queryArgs;\n}\n\n// src/query/react/useShallowStableValue.ts\nimport { useEffect as useEffect2, useRef as useRef2 } from \"react\";\nimport { shallowEqual } from \"react-redux\";\nfunction useShallowStableValue(value) {\n const cache2 = useRef2(value);\n useEffect2(() => {\n if (!shallowEqual(cache2.current, value)) {\n cache2.current = value;\n }\n }, [value]);\n return shallowEqual(cache2.current, value) ? cache2.current : value;\n}\n\n// src/query/react/buildHooks.ts\nvar useIsomorphicLayoutEffect = typeof window !== \"undefined\" && !!window.document && !!window.document.createElement ? useLayoutEffect : useEffect3;\nvar noPendingQueryStateSelector = (selected) => {\n if (selected.isUninitialized) {\n return {\n ...selected,\n isUninitialized: false,\n isFetching: true,\n isLoading: selected.data !== void 0 ? false : true,\n status: QueryStatus.pending\n };\n }\n return selected;\n};\nfunction buildHooks({\n api,\n moduleOptions: {\n batch,\n hooks: {\n useDispatch,\n useSelector,\n useStore\n },\n unstable__sideEffectsInRender,\n createSelector: createSelector2\n },\n serializeQueryArgs,\n context\n}) {\n const usePossiblyImmediateEffect = unstable__sideEffectsInRender ? (cb) => cb() : useEffect3;\n return {\n buildQueryHooks,\n buildMutationHook,\n usePrefetch\n };\n function queryStatePreSelector(currentState, lastResult, queryArgs) {\n if (lastResult?.endpointName && currentState.isUninitialized) {\n const {\n endpointName\n } = lastResult;\n const endpointDefinition = context.endpointDefinitions[endpointName];\n if (serializeQueryArgs({\n queryArgs: lastResult.originalArgs,\n endpointDefinition,\n endpointName\n }) === serializeQueryArgs({\n queryArgs,\n endpointDefinition,\n endpointName\n }))\n lastResult = void 0;\n }\n let data = currentState.isSuccess ? currentState.data : lastResult?.data;\n if (data === void 0)\n data = currentState.data;\n const hasData = data !== void 0;\n const isFetching = currentState.isLoading;\n const isLoading = !hasData && isFetching;\n const isSuccess = currentState.isSuccess || isFetching && hasData;\n return {\n ...currentState,\n data,\n currentData: currentState.data,\n isFetching,\n isLoading,\n isSuccess\n };\n }\n function usePrefetch(endpointName, defaultOptions) {\n const dispatch = useDispatch();\n const stableDefaultOptions = useShallowStableValue(defaultOptions);\n return useCallback((arg, options) => dispatch(api.util.prefetch(endpointName, arg, {\n ...stableDefaultOptions,\n ...options\n })), [endpointName, dispatch, stableDefaultOptions]);\n }\n function buildQueryHooks(name) {\n const useQuerySubscription = (arg, {\n refetchOnReconnect,\n refetchOnFocus,\n refetchOnMountOrArgChange,\n skip = false,\n pollingInterval = 0,\n skipPollingIfUnfocused = false\n } = {}) => {\n const {\n initiate\n } = api.endpoints[name];\n const dispatch = useDispatch();\n const subscriptionSelectorsRef = useRef3();\n if (!subscriptionSelectorsRef.current) {\n const returnedValue = dispatch(api.internalActions.internal_getRTKQSubscriptions());\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof returnedValue !== \"object\" || typeof returnedValue?.type === \"string\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(37) : `Warning: Middleware for RTK-Query API at reducerPath \"${api.reducerPath}\" has not been added to the store.\n You must add the middleware for RTK-Query to function correctly!`);\n }\n }\n subscriptionSelectorsRef.current = returnedValue;\n }\n const stableArg = useStableQueryArgs(\n skip ? skipToken : arg,\n // Even if the user provided a per-endpoint `serializeQueryArgs` with\n // a consistent return value, _here_ we want to use the default behavior\n // so we can tell if _anything_ actually changed. Otherwise, we can end up\n // with a case where the query args did change but the serialization doesn't,\n // and then we never try to initiate a refetch.\n defaultSerializeQueryArgs,\n context.endpointDefinitions[name],\n name\n );\n const stableSubscriptionOptions = useShallowStableValue({\n refetchOnReconnect,\n refetchOnFocus,\n pollingInterval,\n skipPollingIfUnfocused\n });\n const lastRenderHadSubscription = useRef3(false);\n const promiseRef = useRef3();\n let {\n queryCacheKey,\n requestId\n } = promiseRef.current || {};\n let currentRenderHasSubscription = false;\n if (queryCacheKey && requestId) {\n currentRenderHasSubscription = subscriptionSelectorsRef.current.isRequestSubscribed(queryCacheKey, requestId);\n }\n const subscriptionRemoved = !currentRenderHasSubscription && lastRenderHadSubscription.current;\n usePossiblyImmediateEffect(() => {\n lastRenderHadSubscription.current = currentRenderHasSubscription;\n });\n usePossiblyImmediateEffect(() => {\n if (subscriptionRemoved) {\n promiseRef.current = void 0;\n }\n }, [subscriptionRemoved]);\n usePossiblyImmediateEffect(() => {\n const lastPromise = promiseRef.current;\n if (typeof process !== \"undefined\" && process.env.NODE_ENV === \"removeMeOnCompilation\") {\n console.log(subscriptionRemoved);\n }\n if (stableArg === skipToken) {\n lastPromise?.unsubscribe();\n promiseRef.current = void 0;\n return;\n }\n const lastSubscriptionOptions = promiseRef.current?.subscriptionOptions;\n if (!lastPromise || lastPromise.arg !== stableArg) {\n lastPromise?.unsubscribe();\n const promise = dispatch(initiate(stableArg, {\n subscriptionOptions: stableSubscriptionOptions,\n forceRefetch: refetchOnMountOrArgChange\n }));\n promiseRef.current = promise;\n } else if (stableSubscriptionOptions !== lastSubscriptionOptions) {\n lastPromise.updateSubscriptionOptions(stableSubscriptionOptions);\n }\n }, [dispatch, initiate, refetchOnMountOrArgChange, stableArg, stableSubscriptionOptions, subscriptionRemoved]);\n useEffect3(() => {\n return () => {\n promiseRef.current?.unsubscribe();\n promiseRef.current = void 0;\n };\n }, []);\n return useMemo2(() => ({\n /**\n * A method to manually refetch data for the query\n */\n refetch: () => {\n if (!promiseRef.current)\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(38) : \"Cannot refetch a query that has not been started yet.\");\n return promiseRef.current?.refetch();\n }\n }), []);\n };\n const useLazyQuerySubscription = ({\n refetchOnReconnect,\n refetchOnFocus,\n pollingInterval = 0,\n skipPollingIfUnfocused = false\n } = {}) => {\n const {\n initiate\n } = api.endpoints[name];\n const dispatch = useDispatch();\n const [arg, setArg] = useState(UNINITIALIZED_VALUE);\n const promiseRef = useRef3();\n const stableSubscriptionOptions = useShallowStableValue({\n refetchOnReconnect,\n refetchOnFocus,\n pollingInterval,\n skipPollingIfUnfocused\n });\n usePossiblyImmediateEffect(() => {\n const lastSubscriptionOptions = promiseRef.current?.subscriptionOptions;\n if (stableSubscriptionOptions !== lastSubscriptionOptions) {\n promiseRef.current?.updateSubscriptionOptions(stableSubscriptionOptions);\n }\n }, [stableSubscriptionOptions]);\n const subscriptionOptionsRef = useRef3(stableSubscriptionOptions);\n usePossiblyImmediateEffect(() => {\n subscriptionOptionsRef.current = stableSubscriptionOptions;\n }, [stableSubscriptionOptions]);\n const trigger = useCallback(function(arg2, preferCacheValue = false) {\n let promise;\n batch(() => {\n promiseRef.current?.unsubscribe();\n promiseRef.current = promise = dispatch(initiate(arg2, {\n subscriptionOptions: subscriptionOptionsRef.current,\n forceRefetch: !preferCacheValue\n }));\n setArg(arg2);\n });\n return promise;\n }, [dispatch, initiate]);\n useEffect3(() => {\n return () => {\n promiseRef?.current?.unsubscribe();\n };\n }, []);\n useEffect3(() => {\n if (arg !== UNINITIALIZED_VALUE && !promiseRef.current) {\n trigger(arg, true);\n }\n }, [arg, trigger]);\n return useMemo2(() => [trigger, arg], [trigger, arg]);\n };\n const useQueryState = (arg, {\n skip = false,\n selectFromResult\n } = {}) => {\n const {\n select\n } = api.endpoints[name];\n const stableArg = useStableQueryArgs(skip ? skipToken : arg, serializeQueryArgs, context.endpointDefinitions[name], name);\n const lastValue = useRef3();\n const selectDefaultResult = useMemo2(() => createSelector2([select(stableArg), (_, lastResult) => lastResult, (_) => stableArg], queryStatePreSelector, {\n memoizeOptions: {\n resultEqualityCheck: shallowEqual2\n }\n }), [select, stableArg]);\n const querySelector = useMemo2(() => selectFromResult ? createSelector2([selectDefaultResult], selectFromResult, {\n devModeChecks: {\n identityFunctionCheck: \"never\"\n }\n }) : selectDefaultResult, [selectDefaultResult, selectFromResult]);\n const currentState = useSelector((state) => querySelector(state, lastValue.current), shallowEqual2);\n const store = useStore();\n const newLastValue = selectDefaultResult(store.getState(), lastValue.current);\n useIsomorphicLayoutEffect(() => {\n lastValue.current = newLastValue;\n }, [newLastValue]);\n return currentState;\n };\n return {\n useQueryState,\n useQuerySubscription,\n useLazyQuerySubscription,\n useLazyQuery(options) {\n const [trigger, arg] = useLazyQuerySubscription(options);\n const queryStateResults = useQueryState(arg, {\n ...options,\n skip: arg === UNINITIALIZED_VALUE\n });\n const info = useMemo2(() => ({\n lastArg: arg\n }), [arg]);\n return useMemo2(() => [trigger, queryStateResults, info], [trigger, queryStateResults, info]);\n },\n useQuery(arg, options) {\n const querySubscriptionResults = useQuerySubscription(arg, options);\n const queryStateResults = useQueryState(arg, {\n selectFromResult: arg === skipToken || options?.skip ? void 0 : noPendingQueryStateSelector,\n ...options\n });\n const {\n data,\n status,\n isLoading,\n isSuccess,\n isError,\n error\n } = queryStateResults;\n useDebugValue({\n data,\n status,\n isLoading,\n isSuccess,\n isError,\n error\n });\n return useMemo2(() => ({\n ...queryStateResults,\n ...querySubscriptionResults\n }), [queryStateResults, querySubscriptionResults]);\n }\n };\n }\n function buildMutationHook(name) {\n return ({\n selectFromResult,\n fixedCacheKey\n } = {}) => {\n const {\n select,\n initiate\n } = api.endpoints[name];\n const dispatch = useDispatch();\n const [promise, setPromise] = useState();\n useEffect3(() => () => {\n if (!promise?.arg.fixedCacheKey) {\n promise?.reset();\n }\n }, [promise]);\n const triggerMutation = useCallback(function(arg) {\n const promise2 = dispatch(initiate(arg, {\n fixedCacheKey\n }));\n setPromise(promise2);\n return promise2;\n }, [dispatch, initiate, fixedCacheKey]);\n const {\n requestId\n } = promise || {};\n const selectDefaultResult = useMemo2(() => select({\n fixedCacheKey,\n requestId: promise?.requestId\n }), [fixedCacheKey, promise, select]);\n const mutationSelector = useMemo2(() => selectFromResult ? createSelector2([selectDefaultResult], selectFromResult) : selectDefaultResult, [selectFromResult, selectDefaultResult]);\n const currentState = useSelector(mutationSelector, shallowEqual2);\n const originalArgs = fixedCacheKey == null ? promise?.arg.originalArgs : void 0;\n const reset = useCallback(() => {\n batch(() => {\n if (promise) {\n setPromise(void 0);\n }\n if (fixedCacheKey) {\n dispatch(api.internalActions.removeMutationResult({\n requestId,\n fixedCacheKey\n }));\n }\n });\n }, [dispatch, fixedCacheKey, promise, requestId]);\n const {\n endpointName,\n data,\n status,\n isLoading,\n isSuccess,\n isError,\n error\n } = currentState;\n useDebugValue({\n endpointName,\n data,\n status,\n isLoading,\n isSuccess,\n isError,\n error\n });\n const finalState = useMemo2(() => ({\n ...currentState,\n originalArgs,\n reset\n }), [currentState, originalArgs, reset]);\n return useMemo2(() => [triggerMutation, finalState], [triggerMutation, finalState]);\n };\n }\n}\n\n// src/query/react/module.ts\nimport { batch as rrBatch, useDispatch as rrUseDispatch, useSelector as rrUseSelector, useStore as rrUseStore } from \"react-redux\";\nimport { createSelector as _createSelector } from \"reselect\";\n\n// src/query/utils/countObjectKeys.ts\nfunction countObjectKeys(obj) {\n let count = 0;\n for (const _key in obj) {\n count++;\n }\n return count;\n}\n\n// src/query/react/module.ts\nvar reactHooksModuleName = /* @__PURE__ */ Symbol();\nvar reactHooksModule = ({\n batch = rrBatch,\n hooks = {\n useDispatch: rrUseDispatch,\n useSelector: rrUseSelector,\n useStore: rrUseStore\n },\n createSelector: createSelector2 = _createSelector,\n unstable__sideEffectsInRender = false,\n ...rest\n} = {}) => {\n if (process.env.NODE_ENV !== \"production\") {\n const hookNames = [\"useDispatch\", \"useSelector\", \"useStore\"];\n let warned = false;\n for (const hookName of hookNames) {\n if (countObjectKeys(rest) > 0) {\n if (rest[hookName]) {\n if (!warned) {\n console.warn(\"As of RTK 2.0, the hooks now need to be specified as one object, provided under a `hooks` key:\\n`reactHooksModule({ hooks: { useDispatch, useSelector, useStore } })`\");\n warned = true;\n }\n }\n hooks[hookName] = rest[hookName];\n }\n if (typeof hooks[hookName] !== \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(36) : `When using custom hooks for context, all ${hookNames.length} hooks need to be provided: ${hookNames.join(\", \")}.\nHook ${hookName} was either not provided or not a function.`);\n }\n }\n }\n return {\n name: reactHooksModuleName,\n init(api, {\n serializeQueryArgs\n }, context) {\n const anyApi = api;\n const {\n buildQueryHooks,\n buildMutationHook,\n usePrefetch\n } = buildHooks({\n api,\n moduleOptions: {\n batch,\n hooks,\n unstable__sideEffectsInRender,\n createSelector: createSelector2\n },\n serializeQueryArgs,\n context\n });\n safeAssign(anyApi, {\n usePrefetch\n });\n safeAssign(context, {\n batch\n });\n return {\n injectEndpoint(endpointName, definition) {\n if (isQueryDefinition(definition)) {\n const {\n useQuery,\n useLazyQuery,\n useLazyQuerySubscription,\n useQueryState,\n useQuerySubscription\n } = buildQueryHooks(endpointName);\n safeAssign(anyApi.endpoints[endpointName], {\n useQuery,\n useLazyQuery,\n useLazyQuerySubscription,\n useQueryState,\n useQuerySubscription\n });\n api[`use${capitalize(endpointName)}Query`] = useQuery;\n api[`useLazy${capitalize(endpointName)}Query`] = useLazyQuery;\n } else if (isMutationDefinition(definition)) {\n const useMutation = buildMutationHook(endpointName);\n safeAssign(anyApi.endpoints[endpointName], {\n useMutation\n });\n api[`use${capitalize(endpointName)}Mutation`] = useMutation;\n }\n }\n };\n }\n };\n};\n\n// src/query/react/index.ts\nexport * from \"@reduxjs/toolkit/query\";\n\n// src/query/react/ApiProvider.tsx\nimport { formatProdErrorMessage as _formatProdErrorMessage4 } from \"@reduxjs/toolkit\";\nimport { configureStore } from \"@reduxjs/toolkit\";\nimport { useContext } from \"react\";\nimport { useEffect as useEffect4 } from \"react\";\nimport React from \"react\";\nimport { Provider, ReactReduxContext } from \"react-redux\";\nimport { setupListeners } from \"@reduxjs/toolkit/query\";\nfunction ApiProvider(props) {\n const context = props.context || ReactReduxContext;\n const existingContext = useContext(context);\n if (existingContext) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage4(35) : \"Existing Redux context detected. If you already have a store set up, please use the traditional Redux setup.\");\n }\n const [store] = React.useState(() => configureStore({\n reducer: {\n [props.api.reducerPath]: props.api.reducer\n },\n middleware: (gDM) => gDM().concat(props.api.middleware)\n }));\n useEffect4(() => props.setupListeners === false ? void 0 : setupListeners(store.dispatch, props.setupListeners), [props.setupListeners, store.dispatch]);\n return /* @__PURE__ */ React.createElement(Provider, { store, context }, props.children);\n}\n\n// src/query/react/index.ts\nvar createApi = /* @__PURE__ */ buildCreateApi(coreModule(), reactHooksModule());\nexport {\n ApiProvider,\n createApi,\n reactHooksModule,\n reactHooksModuleName\n};\n//# sourceMappingURL=rtk-query-react.modern.mjs.map","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","import { getUserConnection } from '@/widgets/widgets';\nimport { isDefined } from '@sgme/fp';\n\nexport function getFakeUser(): string | undefined {\n const userConnection = getUserConnection();\n const params = new URLSearchParams(self.location.search);\n return (\n (params.has('user') && params.get('user')) ||\n (isDefined(userConnection) && isDefined(userConnection.mail) && userConnection.mail) ||\n undefined\n );\n}\n","import { sgwtConnect } from '@/widgets/sgwtConnect';\nimport { isDefined } from '@sgme/fp';\nimport { v4 } from 'uuid';\nimport { getFakeUser } from './fakeUser';\n\nexport function prepareHeaders(headers: Headers): Headers {\n const authorizationHeader = sgwtConnect.getAuthorizationHeader();\n if (isDefined(authorizationHeader)) {\n headers.set('Authorization', authorizationHeader);\n }\n\n const fakeUser = getFakeUser();\n if (isDefined(fakeUser)) {\n headers.set('X-Fake-Authentication', fakeUser);\n }\n\n headers.set('Content-Type', 'application/json');\n headers.set('Accept', 'application/json');\n headers.set('X-Correlation-ID', v4());\n\n return headers;\n}\n","interface RetryOptions {\n maxRetries: number;\n delayMs: number;\n onRetry?: (reason: RetryReason) => void;\n}\n\ninterface RetryReason {\n reason: unknown;\n retryCount: number;\n}\n\nexport function retry(doWork: () => Promise, options: RetryOptions): Promise {\n return new Promise((resolve, reject): void => {\n function doWorkOnce(numberOfAttempts: number): void {\n doWork().then(resolve, function onrejected(reason: unknown) {\n if (options.onRetry) {\n options.onRetry({ reason, retryCount: numberOfAttempts });\n }\n\n if (numberOfAttempts < options.maxRetries) {\n setTimeout(() => doWorkOnce(numberOfAttempts + 1), options.delayMs);\n } else {\n reject({ reason, retryCount: numberOfAttempts });\n }\n });\n }\n\n doWorkOnce(1);\n });\n}\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n/** Error thrown when an HTTP request fails. */\r\nexport class HttpError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.HttpError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n * @param {number} statusCode The HTTP status code represented by this error.\r\n */\r\n constructor(errorMessage, statusCode) {\r\n const trueProto = new.target.prototype;\r\n super(`${errorMessage}: Status code '${statusCode}'`);\r\n this.statusCode = statusCode;\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when a timeout elapses. */\r\nexport class TimeoutError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.TimeoutError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n */\r\n constructor(errorMessage = \"A timeout occurred.\") {\r\n const trueProto = new.target.prototype;\r\n super(errorMessage);\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when an action is aborted. */\r\nexport class AbortError extends Error {\r\n /** Constructs a new instance of {@link AbortError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n */\r\n constructor(errorMessage = \"An abort occurred.\") {\r\n const trueProto = new.target.prototype;\r\n super(errorMessage);\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when the selected transport is unsupported by the browser. */\r\n/** @private */\r\nexport class UnsupportedTransportError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.UnsupportedTransportError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {HttpTransportType} transport The {@link @microsoft/signalr.HttpTransportType} this error occurred on.\r\n */\r\n constructor(message, transport) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.transport = transport;\r\n this.errorType = 'UnsupportedTransportError';\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when the selected transport is disabled by the browser. */\r\n/** @private */\r\nexport class DisabledTransportError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.DisabledTransportError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {HttpTransportType} transport The {@link @microsoft/signalr.HttpTransportType} this error occurred on.\r\n */\r\n constructor(message, transport) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.transport = transport;\r\n this.errorType = 'DisabledTransportError';\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when the selected transport cannot be started. */\r\n/** @private */\r\nexport class FailedToStartTransportError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.FailedToStartTransportError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {HttpTransportType} transport The {@link @microsoft/signalr.HttpTransportType} this error occurred on.\r\n */\r\n constructor(message, transport) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.transport = transport;\r\n this.errorType = 'FailedToStartTransportError';\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when the negotiation with the server failed to complete. */\r\n/** @private */\r\nexport class FailedToNegotiateWithServerError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.FailedToNegotiateWithServerError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n */\r\n constructor(message) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.errorType = 'FailedToNegotiateWithServerError';\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when multiple errors have occurred. */\r\n/** @private */\r\nexport class AggregateErrors extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.AggregateErrors}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {Error[]} innerErrors The collection of errors this error is aggregating.\r\n */\r\n constructor(message, innerErrors) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.innerErrors = innerErrors;\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n//# sourceMappingURL=Errors.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n/** Represents an HTTP response. */\r\nexport class HttpResponse {\r\n constructor(statusCode, statusText, content) {\r\n this.statusCode = statusCode;\r\n this.statusText = statusText;\r\n this.content = content;\r\n }\r\n}\r\n/** Abstraction over an HTTP client.\r\n *\r\n * This class provides an abstraction over an HTTP client so that a different implementation can be provided on different platforms.\r\n */\r\nexport class HttpClient {\r\n get(url, options) {\r\n return this.send({\r\n ...options,\r\n method: \"GET\",\r\n url,\r\n });\r\n }\r\n post(url, options) {\r\n return this.send({\r\n ...options,\r\n method: \"POST\",\r\n url,\r\n });\r\n }\r\n delete(url, options) {\r\n return this.send({\r\n ...options,\r\n method: \"DELETE\",\r\n url,\r\n });\r\n }\r\n /** Gets all cookies that apply to the specified URL.\r\n *\r\n * @param url The URL that the cookies are valid for.\r\n * @returns {string} A string containing all the key-value cookie pairs for the specified URL.\r\n */\r\n // @ts-ignore\r\n getCookieString(url) {\r\n return \"\";\r\n }\r\n}\r\n//# sourceMappingURL=HttpClient.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n// These values are designed to match the ASP.NET Log Levels since that's the pattern we're emulating here.\r\n/** Indicates the severity of a log message.\r\n *\r\n * Log Levels are ordered in increasing severity. So `Debug` is more severe than `Trace`, etc.\r\n */\r\nexport var LogLevel;\r\n(function (LogLevel) {\r\n /** Log level for very low severity diagnostic messages. */\r\n LogLevel[LogLevel[\"Trace\"] = 0] = \"Trace\";\r\n /** Log level for low severity diagnostic messages. */\r\n LogLevel[LogLevel[\"Debug\"] = 1] = \"Debug\";\r\n /** Log level for informational diagnostic messages. */\r\n LogLevel[LogLevel[\"Information\"] = 2] = \"Information\";\r\n /** Log level for diagnostic messages that indicate a non-fatal problem. */\r\n LogLevel[LogLevel[\"Warning\"] = 3] = \"Warning\";\r\n /** Log level for diagnostic messages that indicate a failure in the current operation. */\r\n LogLevel[LogLevel[\"Error\"] = 4] = \"Error\";\r\n /** Log level for diagnostic messages that indicate a failure that will terminate the entire application. */\r\n LogLevel[LogLevel[\"Critical\"] = 5] = \"Critical\";\r\n /** The highest possible log level. Used when configuring logging to indicate that no log messages should be emitted. */\r\n LogLevel[LogLevel[\"None\"] = 6] = \"None\";\r\n})(LogLevel || (LogLevel = {}));\r\n//# sourceMappingURL=ILogger.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n/** A logger that does nothing when log messages are sent to it. */\r\nexport class NullLogger {\r\n constructor() { }\r\n /** @inheritDoc */\r\n // eslint-disable-next-line\r\n log(_logLevel, _message) {\r\n }\r\n}\r\n/** The singleton instance of the {@link @microsoft/signalr.NullLogger}. */\r\nNullLogger.instance = new NullLogger();\r\n//# sourceMappingURL=Loggers.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { NullLogger } from \"./Loggers\";\r\n// Version token that will be replaced by the prepack command\r\n/** The version of the SignalR client. */\r\nexport const VERSION = \"8.0.0\";\r\n/** @private */\r\nexport class Arg {\r\n static isRequired(val, name) {\r\n if (val === null || val === undefined) {\r\n throw new Error(`The '${name}' argument is required.`);\r\n }\r\n }\r\n static isNotEmpty(val, name) {\r\n if (!val || val.match(/^\\s*$/)) {\r\n throw new Error(`The '${name}' argument should not be empty.`);\r\n }\r\n }\r\n static isIn(val, values, name) {\r\n // TypeScript enums have keys for **both** the name and the value of each enum member on the type itself.\r\n if (!(val in values)) {\r\n throw new Error(`Unknown ${name} value: ${val}.`);\r\n }\r\n }\r\n}\r\n/** @private */\r\nexport class Platform {\r\n // react-native has a window but no document so we should check both\r\n static get isBrowser() {\r\n return !Platform.isNode && typeof window === \"object\" && typeof window.document === \"object\";\r\n }\r\n // WebWorkers don't have a window object so the isBrowser check would fail\r\n static get isWebWorker() {\r\n return !Platform.isNode && typeof self === \"object\" && \"importScripts\" in self;\r\n }\r\n // react-native has a window but no document\r\n static get isReactNative() {\r\n return !Platform.isNode && typeof window === \"object\" && typeof window.document === \"undefined\";\r\n }\r\n // Node apps shouldn't have a window object, but WebWorkers don't either\r\n // so we need to check for both WebWorker and window\r\n static get isNode() {\r\n return typeof process !== \"undefined\" && process.release && process.release.name === \"node\";\r\n }\r\n}\r\n/** @private */\r\nexport function getDataDetail(data, includeContent) {\r\n let detail = \"\";\r\n if (isArrayBuffer(data)) {\r\n detail = `Binary data of length ${data.byteLength}`;\r\n if (includeContent) {\r\n detail += `. Content: '${formatArrayBuffer(data)}'`;\r\n }\r\n }\r\n else if (typeof data === \"string\") {\r\n detail = `String data of length ${data.length}`;\r\n if (includeContent) {\r\n detail += `. Content: '${data}'`;\r\n }\r\n }\r\n return detail;\r\n}\r\n/** @private */\r\nexport function formatArrayBuffer(data) {\r\n const view = new Uint8Array(data);\r\n // Uint8Array.map only supports returning another Uint8Array?\r\n let str = \"\";\r\n view.forEach((num) => {\r\n const pad = num < 16 ? \"0\" : \"\";\r\n str += `0x${pad}${num.toString(16)} `;\r\n });\r\n // Trim of trailing space.\r\n return str.substr(0, str.length - 1);\r\n}\r\n// Also in signalr-protocol-msgpack/Utils.ts\r\n/** @private */\r\nexport function isArrayBuffer(val) {\r\n return val && typeof ArrayBuffer !== \"undefined\" &&\r\n (val instanceof ArrayBuffer ||\r\n // Sometimes we get an ArrayBuffer that doesn't satisfy instanceof\r\n (val.constructor && val.constructor.name === \"ArrayBuffer\"));\r\n}\r\n/** @private */\r\nexport async function sendMessage(logger, transportName, httpClient, url, content, options) {\r\n const headers = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n logger.log(LogLevel.Trace, `(${transportName} transport) sending data. ${getDataDetail(content, options.logMessageContent)}.`);\r\n const responseType = isArrayBuffer(content) ? \"arraybuffer\" : \"text\";\r\n const response = await httpClient.post(url, {\r\n content,\r\n headers: { ...headers, ...options.headers },\r\n responseType,\r\n timeout: options.timeout,\r\n withCredentials: options.withCredentials,\r\n });\r\n logger.log(LogLevel.Trace, `(${transportName} transport) request complete. Response status: ${response.statusCode}.`);\r\n}\r\n/** @private */\r\nexport function createLogger(logger) {\r\n if (logger === undefined) {\r\n return new ConsoleLogger(LogLevel.Information);\r\n }\r\n if (logger === null) {\r\n return NullLogger.instance;\r\n }\r\n if (logger.log !== undefined) {\r\n return logger;\r\n }\r\n return new ConsoleLogger(logger);\r\n}\r\n/** @private */\r\nexport class SubjectSubscription {\r\n constructor(subject, observer) {\r\n this._subject = subject;\r\n this._observer = observer;\r\n }\r\n dispose() {\r\n const index = this._subject.observers.indexOf(this._observer);\r\n if (index > -1) {\r\n this._subject.observers.splice(index, 1);\r\n }\r\n if (this._subject.observers.length === 0 && this._subject.cancelCallback) {\r\n this._subject.cancelCallback().catch((_) => { });\r\n }\r\n }\r\n}\r\n/** @private */\r\nexport class ConsoleLogger {\r\n constructor(minimumLogLevel) {\r\n this._minLevel = minimumLogLevel;\r\n this.out = console;\r\n }\r\n log(logLevel, message) {\r\n if (logLevel >= this._minLevel) {\r\n const msg = `[${new Date().toISOString()}] ${LogLevel[logLevel]}: ${message}`;\r\n switch (logLevel) {\r\n case LogLevel.Critical:\r\n case LogLevel.Error:\r\n this.out.error(msg);\r\n break;\r\n case LogLevel.Warning:\r\n this.out.warn(msg);\r\n break;\r\n case LogLevel.Information:\r\n this.out.info(msg);\r\n break;\r\n default:\r\n // console.debug only goes to attached debuggers in Node, so we use console.log for Trace and Debug\r\n this.out.log(msg);\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n/** @private */\r\nexport function getUserAgentHeader() {\r\n let userAgentHeaderName = \"X-SignalR-User-Agent\";\r\n if (Platform.isNode) {\r\n userAgentHeaderName = \"User-Agent\";\r\n }\r\n return [userAgentHeaderName, constructUserAgent(VERSION, getOsName(), getRuntime(), getRuntimeVersion())];\r\n}\r\n/** @private */\r\nexport function constructUserAgent(version, os, runtime, runtimeVersion) {\r\n // Microsoft SignalR/[Version] ([Detailed Version]; [Operating System]; [Runtime]; [Runtime Version])\r\n let userAgent = \"Microsoft SignalR/\";\r\n const majorAndMinor = version.split(\".\");\r\n userAgent += `${majorAndMinor[0]}.${majorAndMinor[1]}`;\r\n userAgent += ` (${version}; `;\r\n if (os && os !== \"\") {\r\n userAgent += `${os}; `;\r\n }\r\n else {\r\n userAgent += \"Unknown OS; \";\r\n }\r\n userAgent += `${runtime}`;\r\n if (runtimeVersion) {\r\n userAgent += `; ${runtimeVersion}`;\r\n }\r\n else {\r\n userAgent += \"; Unknown Runtime Version\";\r\n }\r\n userAgent += \")\";\r\n return userAgent;\r\n}\r\n// eslint-disable-next-line spaced-comment\r\n/*#__PURE__*/ function getOsName() {\r\n if (Platform.isNode) {\r\n switch (process.platform) {\r\n case \"win32\":\r\n return \"Windows NT\";\r\n case \"darwin\":\r\n return \"macOS\";\r\n case \"linux\":\r\n return \"Linux\";\r\n default:\r\n return process.platform;\r\n }\r\n }\r\n else {\r\n return \"\";\r\n }\r\n}\r\n// eslint-disable-next-line spaced-comment\r\n/*#__PURE__*/ function getRuntimeVersion() {\r\n if (Platform.isNode) {\r\n return process.versions.node;\r\n }\r\n return undefined;\r\n}\r\nfunction getRuntime() {\r\n if (Platform.isNode) {\r\n return \"NodeJS\";\r\n }\r\n else {\r\n return \"Browser\";\r\n }\r\n}\r\n/** @private */\r\nexport function getErrorString(e) {\r\n if (e.stack) {\r\n return e.stack;\r\n }\r\n else if (e.message) {\r\n return e.message;\r\n }\r\n return `${e}`;\r\n}\r\n/** @private */\r\nexport function getGlobalThis() {\r\n // globalThis is semi-new and not available in Node until v12\r\n if (typeof globalThis !== \"undefined\") {\r\n return globalThis;\r\n }\r\n if (typeof self !== \"undefined\") {\r\n return self;\r\n }\r\n if (typeof window !== \"undefined\") {\r\n return window;\r\n }\r\n if (typeof global !== \"undefined\") {\r\n return global;\r\n }\r\n throw new Error(\"could not find global\");\r\n}\r\n//# sourceMappingURL=Utils.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { Platform } from \"./Utils\";\r\n/** @private */\r\nexport function configureFetch(obj) {\r\n // Node added a fetch implementation to the global scope starting in v18.\r\n // We need to add a cookie jar in node to be able to share cookies with WebSocket\r\n if (typeof fetch === \"undefined\" || Platform.isNode) {\r\n // Cookies aren't automatically handled in Node so we need to add a CookieJar to preserve cookies across requests\r\n // eslint-disable-next-line @typescript-eslint/no-var-requires\r\n obj._jar = new (require(\"tough-cookie\")).CookieJar();\r\n if (typeof fetch === \"undefined\") {\r\n // eslint-disable-next-line @typescript-eslint/no-var-requires\r\n obj._fetchType = require(\"node-fetch\");\r\n }\r\n else {\r\n // Use fetch from Node if available\r\n obj._fetchType = fetch;\r\n }\r\n // node-fetch doesn't have a nice API for getting and setting cookies\r\n // fetch-cookie will wrap a fetch implementation with a default CookieJar or a provided one\r\n // eslint-disable-next-line @typescript-eslint/no-var-requires\r\n obj._fetchType = require(\"fetch-cookie\")(obj._fetchType, obj._jar);\r\n return true;\r\n }\r\n return false;\r\n}\r\n/** @private */\r\nexport function configureAbortController(obj) {\r\n if (typeof AbortController === \"undefined\") {\r\n // Node needs EventListener methods on AbortController which our custom polyfill doesn't provide\r\n obj._abortControllerType = require(\"abort-controller\");\r\n return true;\r\n }\r\n return false;\r\n}\r\n/** @private */\r\nexport function getWS() {\r\n return require(\"ws\");\r\n}\r\n/** @private */\r\nexport function getEventSource() {\r\n return require(\"eventsource\");\r\n}\r\n//# sourceMappingURL=DynamicImports.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { AbortError, HttpError, TimeoutError } from \"./Errors\";\r\nimport { HttpClient, HttpResponse } from \"./HttpClient\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { Platform, getGlobalThis, isArrayBuffer } from \"./Utils\";\r\nimport { configureAbortController, configureFetch } from \"./DynamicImports\";\r\nexport class FetchHttpClient extends HttpClient {\r\n constructor(logger) {\r\n super();\r\n this._logger = logger;\r\n // This is how you do \"reference\" arguments\r\n const fetchObj = { _fetchType: undefined, _jar: undefined };\r\n if (configureFetch(fetchObj)) {\r\n this._fetchType = fetchObj._fetchType;\r\n this._jar = fetchObj._jar;\r\n }\r\n else {\r\n this._fetchType = fetch.bind(getGlobalThis());\r\n }\r\n this._abortControllerType = AbortController;\r\n const abortObj = { _abortControllerType: this._abortControllerType };\r\n if (configureAbortController(abortObj)) {\r\n this._abortControllerType = abortObj._abortControllerType;\r\n }\r\n }\r\n /** @inheritDoc */\r\n async send(request) {\r\n // Check that abort was not signaled before calling send\r\n if (request.abortSignal && request.abortSignal.aborted) {\r\n throw new AbortError();\r\n }\r\n if (!request.method) {\r\n throw new Error(\"No method defined.\");\r\n }\r\n if (!request.url) {\r\n throw new Error(\"No url defined.\");\r\n }\r\n const abortController = new this._abortControllerType();\r\n let error;\r\n // Hook our abortSignal into the abort controller\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = () => {\r\n abortController.abort();\r\n error = new AbortError();\r\n };\r\n }\r\n // If a timeout has been passed in, setup a timeout to call abort\r\n // Type needs to be any to fit window.setTimeout and NodeJS.setTimeout\r\n let timeoutId = null;\r\n if (request.timeout) {\r\n const msTimeout = request.timeout;\r\n timeoutId = setTimeout(() => {\r\n abortController.abort();\r\n this._logger.log(LogLevel.Warning, `Timeout from HTTP request.`);\r\n error = new TimeoutError();\r\n }, msTimeout);\r\n }\r\n if (request.content === \"\") {\r\n request.content = undefined;\r\n }\r\n if (request.content) {\r\n // Explicitly setting the Content-Type header for React Native on Android platform.\r\n request.headers = request.headers || {};\r\n if (isArrayBuffer(request.content)) {\r\n request.headers[\"Content-Type\"] = \"application/octet-stream\";\r\n }\r\n else {\r\n request.headers[\"Content-Type\"] = \"text/plain;charset=UTF-8\";\r\n }\r\n }\r\n let response;\r\n try {\r\n response = await this._fetchType(request.url, {\r\n body: request.content,\r\n cache: \"no-cache\",\r\n credentials: request.withCredentials === true ? \"include\" : \"same-origin\",\r\n headers: {\r\n \"X-Requested-With\": \"XMLHttpRequest\",\r\n ...request.headers,\r\n },\r\n method: request.method,\r\n mode: \"cors\",\r\n redirect: \"follow\",\r\n signal: abortController.signal,\r\n });\r\n }\r\n catch (e) {\r\n if (error) {\r\n throw error;\r\n }\r\n this._logger.log(LogLevel.Warning, `Error from HTTP request. ${e}.`);\r\n throw e;\r\n }\r\n finally {\r\n if (timeoutId) {\r\n clearTimeout(timeoutId);\r\n }\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = null;\r\n }\r\n }\r\n if (!response.ok) {\r\n const errorMessage = await deserializeContent(response, \"text\");\r\n throw new HttpError(errorMessage || response.statusText, response.status);\r\n }\r\n const content = deserializeContent(response, request.responseType);\r\n const payload = await content;\r\n return new HttpResponse(response.status, response.statusText, payload);\r\n }\r\n getCookieString(url) {\r\n let cookies = \"\";\r\n if (Platform.isNode && this._jar) {\r\n // @ts-ignore: unused variable\r\n this._jar.getCookies(url, (e, c) => cookies = c.join(\"; \"));\r\n }\r\n return cookies;\r\n }\r\n}\r\nfunction deserializeContent(response, responseType) {\r\n let content;\r\n switch (responseType) {\r\n case \"arraybuffer\":\r\n content = response.arrayBuffer();\r\n break;\r\n case \"text\":\r\n content = response.text();\r\n break;\r\n case \"blob\":\r\n case \"document\":\r\n case \"json\":\r\n throw new Error(`${responseType} is not supported.`);\r\n default:\r\n content = response.text();\r\n break;\r\n }\r\n return content;\r\n}\r\n//# sourceMappingURL=FetchHttpClient.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { AbortError, HttpError, TimeoutError } from \"./Errors\";\r\nimport { HttpClient, HttpResponse } from \"./HttpClient\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { isArrayBuffer } from \"./Utils\";\r\nexport class XhrHttpClient extends HttpClient {\r\n constructor(logger) {\r\n super();\r\n this._logger = logger;\r\n }\r\n /** @inheritDoc */\r\n send(request) {\r\n // Check that abort was not signaled before calling send\r\n if (request.abortSignal && request.abortSignal.aborted) {\r\n return Promise.reject(new AbortError());\r\n }\r\n if (!request.method) {\r\n return Promise.reject(new Error(\"No method defined.\"));\r\n }\r\n if (!request.url) {\r\n return Promise.reject(new Error(\"No url defined.\"));\r\n }\r\n return new Promise((resolve, reject) => {\r\n const xhr = new XMLHttpRequest();\r\n xhr.open(request.method, request.url, true);\r\n xhr.withCredentials = request.withCredentials === undefined ? true : request.withCredentials;\r\n xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\r\n if (request.content === \"\") {\r\n request.content = undefined;\r\n }\r\n if (request.content) {\r\n // Explicitly setting the Content-Type header for React Native on Android platform.\r\n if (isArrayBuffer(request.content)) {\r\n xhr.setRequestHeader(\"Content-Type\", \"application/octet-stream\");\r\n }\r\n else {\r\n xhr.setRequestHeader(\"Content-Type\", \"text/plain;charset=UTF-8\");\r\n }\r\n }\r\n const headers = request.headers;\r\n if (headers) {\r\n Object.keys(headers)\r\n .forEach((header) => {\r\n xhr.setRequestHeader(header, headers[header]);\r\n });\r\n }\r\n if (request.responseType) {\r\n xhr.responseType = request.responseType;\r\n }\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = () => {\r\n xhr.abort();\r\n reject(new AbortError());\r\n };\r\n }\r\n if (request.timeout) {\r\n xhr.timeout = request.timeout;\r\n }\r\n xhr.onload = () => {\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = null;\r\n }\r\n if (xhr.status >= 200 && xhr.status < 300) {\r\n resolve(new HttpResponse(xhr.status, xhr.statusText, xhr.response || xhr.responseText));\r\n }\r\n else {\r\n reject(new HttpError(xhr.response || xhr.responseText || xhr.statusText, xhr.status));\r\n }\r\n };\r\n xhr.onerror = () => {\r\n this._logger.log(LogLevel.Warning, `Error from HTTP request. ${xhr.status}: ${xhr.statusText}.`);\r\n reject(new HttpError(xhr.statusText, xhr.status));\r\n };\r\n xhr.ontimeout = () => {\r\n this._logger.log(LogLevel.Warning, `Timeout from HTTP request.`);\r\n reject(new TimeoutError());\r\n };\r\n xhr.send(request.content);\r\n });\r\n }\r\n}\r\n//# sourceMappingURL=XhrHttpClient.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { AbortError } from \"./Errors\";\r\nimport { FetchHttpClient } from \"./FetchHttpClient\";\r\nimport { HttpClient } from \"./HttpClient\";\r\nimport { Platform } from \"./Utils\";\r\nimport { XhrHttpClient } from \"./XhrHttpClient\";\r\n/** Default implementation of {@link @microsoft/signalr.HttpClient}. */\r\nexport class DefaultHttpClient extends HttpClient {\r\n /** Creates a new instance of the {@link @microsoft/signalr.DefaultHttpClient}, using the provided {@link @microsoft/signalr.ILogger} to log messages. */\r\n constructor(logger) {\r\n super();\r\n if (typeof fetch !== \"undefined\" || Platform.isNode) {\r\n this._httpClient = new FetchHttpClient(logger);\r\n }\r\n else if (typeof XMLHttpRequest !== \"undefined\") {\r\n this._httpClient = new XhrHttpClient(logger);\r\n }\r\n else {\r\n throw new Error(\"No usable HttpClient found.\");\r\n }\r\n }\r\n /** @inheritDoc */\r\n send(request) {\r\n // Check that abort was not signaled before calling send\r\n if (request.abortSignal && request.abortSignal.aborted) {\r\n return Promise.reject(new AbortError());\r\n }\r\n if (!request.method) {\r\n return Promise.reject(new Error(\"No method defined.\"));\r\n }\r\n if (!request.url) {\r\n return Promise.reject(new Error(\"No url defined.\"));\r\n }\r\n return this._httpClient.send(request);\r\n }\r\n getCookieString(url) {\r\n return this._httpClient.getCookieString(url);\r\n }\r\n}\r\n//# sourceMappingURL=DefaultHttpClient.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n// Not exported from index\r\n/** @private */\r\nexport class TextMessageFormat {\r\n static write(output) {\r\n return `${output}${TextMessageFormat.RecordSeparator}`;\r\n }\r\n static parse(input) {\r\n if (input[input.length - 1] !== TextMessageFormat.RecordSeparator) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n const messages = input.split(TextMessageFormat.RecordSeparator);\r\n messages.pop();\r\n return messages;\r\n }\r\n}\r\nTextMessageFormat.RecordSeparatorCode = 0x1e;\r\nTextMessageFormat.RecordSeparator = String.fromCharCode(TextMessageFormat.RecordSeparatorCode);\r\n//# sourceMappingURL=TextMessageFormat.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { TextMessageFormat } from \"./TextMessageFormat\";\r\nimport { isArrayBuffer } from \"./Utils\";\r\n/** @private */\r\nexport class HandshakeProtocol {\r\n // Handshake request is always JSON\r\n writeHandshakeRequest(handshakeRequest) {\r\n return TextMessageFormat.write(JSON.stringify(handshakeRequest));\r\n }\r\n parseHandshakeResponse(data) {\r\n let messageData;\r\n let remainingData;\r\n if (isArrayBuffer(data)) {\r\n // Format is binary but still need to read JSON text from handshake response\r\n const binaryData = new Uint8Array(data);\r\n const separatorIndex = binaryData.indexOf(TextMessageFormat.RecordSeparatorCode);\r\n if (separatorIndex === -1) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n // content before separator is handshake response\r\n // optional content after is additional messages\r\n const responseLength = separatorIndex + 1;\r\n messageData = String.fromCharCode.apply(null, Array.prototype.slice.call(binaryData.slice(0, responseLength)));\r\n remainingData = (binaryData.byteLength > responseLength) ? binaryData.slice(responseLength).buffer : null;\r\n }\r\n else {\r\n const textData = data;\r\n const separatorIndex = textData.indexOf(TextMessageFormat.RecordSeparator);\r\n if (separatorIndex === -1) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n // content before separator is handshake response\r\n // optional content after is additional messages\r\n const responseLength = separatorIndex + 1;\r\n messageData = textData.substring(0, responseLength);\r\n remainingData = (textData.length > responseLength) ? textData.substring(responseLength) : null;\r\n }\r\n // At this point we should have just the single handshake message\r\n const messages = TextMessageFormat.parse(messageData);\r\n const response = JSON.parse(messages[0]);\r\n if (response.type) {\r\n throw new Error(\"Expected a handshake response from the server.\");\r\n }\r\n const responseMessage = response;\r\n // multiple messages could have arrived with handshake\r\n // return additional data to be parsed as usual, or null if all parsed\r\n return [remainingData, responseMessage];\r\n }\r\n}\r\n//# sourceMappingURL=HandshakeProtocol.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n/** Defines the type of a Hub Message. */\r\nexport var MessageType;\r\n(function (MessageType) {\r\n /** Indicates the message is an Invocation message and implements the {@link @microsoft/signalr.InvocationMessage} interface. */\r\n MessageType[MessageType[\"Invocation\"] = 1] = \"Invocation\";\r\n /** Indicates the message is a StreamItem message and implements the {@link @microsoft/signalr.StreamItemMessage} interface. */\r\n MessageType[MessageType[\"StreamItem\"] = 2] = \"StreamItem\";\r\n /** Indicates the message is a Completion message and implements the {@link @microsoft/signalr.CompletionMessage} interface. */\r\n MessageType[MessageType[\"Completion\"] = 3] = \"Completion\";\r\n /** Indicates the message is a Stream Invocation message and implements the {@link @microsoft/signalr.StreamInvocationMessage} interface. */\r\n MessageType[MessageType[\"StreamInvocation\"] = 4] = \"StreamInvocation\";\r\n /** Indicates the message is a Cancel Invocation message and implements the {@link @microsoft/signalr.CancelInvocationMessage} interface. */\r\n MessageType[MessageType[\"CancelInvocation\"] = 5] = \"CancelInvocation\";\r\n /** Indicates the message is a Ping message and implements the {@link @microsoft/signalr.PingMessage} interface. */\r\n MessageType[MessageType[\"Ping\"] = 6] = \"Ping\";\r\n /** Indicates the message is a Close message and implements the {@link @microsoft/signalr.CloseMessage} interface. */\r\n MessageType[MessageType[\"Close\"] = 7] = \"Close\";\r\n MessageType[MessageType[\"Ack\"] = 8] = \"Ack\";\r\n MessageType[MessageType[\"Sequence\"] = 9] = \"Sequence\";\r\n})(MessageType || (MessageType = {}));\r\n//# sourceMappingURL=IHubProtocol.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { SubjectSubscription } from \"./Utils\";\r\n/** Stream implementation to stream items to the server. */\r\nexport class Subject {\r\n constructor() {\r\n this.observers = [];\r\n }\r\n next(item) {\r\n for (const observer of this.observers) {\r\n observer.next(item);\r\n }\r\n }\r\n error(err) {\r\n for (const observer of this.observers) {\r\n if (observer.error) {\r\n observer.error(err);\r\n }\r\n }\r\n }\r\n complete() {\r\n for (const observer of this.observers) {\r\n if (observer.complete) {\r\n observer.complete();\r\n }\r\n }\r\n }\r\n subscribe(observer) {\r\n this.observers.push(observer);\r\n return new SubjectSubscription(this, observer);\r\n }\r\n}\r\n//# sourceMappingURL=Subject.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { MessageType } from \"./IHubProtocol\";\r\nimport { isArrayBuffer } from \"./Utils\";\r\n/** @private */\r\nexport class MessageBuffer {\r\n constructor(protocol, connection, bufferSize) {\r\n this._bufferSize = 100000;\r\n this._messages = [];\r\n this._totalMessageCount = 0;\r\n this._waitForSequenceMessage = false;\r\n // Message IDs start at 1 and always increment by 1\r\n this._nextReceivingSequenceId = 1;\r\n this._latestReceivedSequenceId = 0;\r\n this._bufferedByteCount = 0;\r\n this._reconnectInProgress = false;\r\n this._protocol = protocol;\r\n this._connection = connection;\r\n this._bufferSize = bufferSize;\r\n }\r\n async _send(message) {\r\n const serializedMessage = this._protocol.writeMessage(message);\r\n let backpressurePromise = Promise.resolve();\r\n // Only count invocation messages. Acks, pings, etc. don't need to be resent on reconnect\r\n if (this._isInvocationMessage(message)) {\r\n this._totalMessageCount++;\r\n let backpressurePromiseResolver = () => { };\r\n let backpressurePromiseRejector = () => { };\r\n if (isArrayBuffer(serializedMessage)) {\r\n this._bufferedByteCount += serializedMessage.byteLength;\r\n }\r\n else {\r\n this._bufferedByteCount += serializedMessage.length;\r\n }\r\n if (this._bufferedByteCount >= this._bufferSize) {\r\n backpressurePromise = new Promise((resolve, reject) => {\r\n backpressurePromiseResolver = resolve;\r\n backpressurePromiseRejector = reject;\r\n });\r\n }\r\n this._messages.push(new BufferedItem(serializedMessage, this._totalMessageCount, backpressurePromiseResolver, backpressurePromiseRejector));\r\n }\r\n try {\r\n // If this is set it means we are reconnecting or resending\r\n // We don't want to send on a disconnected connection\r\n // And we don't want to send if resend is running since that would mean sending\r\n // this message twice\r\n if (!this._reconnectInProgress) {\r\n await this._connection.send(serializedMessage);\r\n }\r\n }\r\n catch {\r\n this._disconnected();\r\n }\r\n await backpressurePromise;\r\n }\r\n _ack(ackMessage) {\r\n let newestAckedMessage = -1;\r\n // Find index of newest message being acked\r\n for (let index = 0; index < this._messages.length; index++) {\r\n const element = this._messages[index];\r\n if (element._id <= ackMessage.sequenceId) {\r\n newestAckedMessage = index;\r\n if (isArrayBuffer(element._message)) {\r\n this._bufferedByteCount -= element._message.byteLength;\r\n }\r\n else {\r\n this._bufferedByteCount -= element._message.length;\r\n }\r\n // resolve items that have already been sent and acked\r\n element._resolver();\r\n }\r\n else if (this._bufferedByteCount < this._bufferSize) {\r\n // resolve items that now fall under the buffer limit but haven't been acked\r\n element._resolver();\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n if (newestAckedMessage !== -1) {\r\n // We're removing everything including the message pointed to, so add 1\r\n this._messages = this._messages.slice(newestAckedMessage + 1);\r\n }\r\n }\r\n _shouldProcessMessage(message) {\r\n if (this._waitForSequenceMessage) {\r\n if (message.type !== MessageType.Sequence) {\r\n return false;\r\n }\r\n else {\r\n this._waitForSequenceMessage = false;\r\n return true;\r\n }\r\n }\r\n // No special processing for acks, pings, etc.\r\n if (!this._isInvocationMessage(message)) {\r\n return true;\r\n }\r\n const currentId = this._nextReceivingSequenceId;\r\n this._nextReceivingSequenceId++;\r\n if (currentId <= this._latestReceivedSequenceId) {\r\n if (currentId === this._latestReceivedSequenceId) {\r\n // Should only hit this if we just reconnected and the server is sending\r\n // Messages it has buffered, which would mean it hasn't seen an Ack for these messages\r\n this._ackTimer();\r\n }\r\n // Ignore, this is a duplicate message\r\n return false;\r\n }\r\n this._latestReceivedSequenceId = currentId;\r\n // Only start the timer for sending an Ack message when we have a message to ack. This also conveniently solves\r\n // timer throttling by not having a recursive timer, and by starting the timer via a network call (recv)\r\n this._ackTimer();\r\n return true;\r\n }\r\n _resetSequence(message) {\r\n if (message.sequenceId > this._nextReceivingSequenceId) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this._connection.stop(new Error(\"Sequence ID greater than amount of messages we've received.\"));\r\n return;\r\n }\r\n this._nextReceivingSequenceId = message.sequenceId;\r\n }\r\n _disconnected() {\r\n this._reconnectInProgress = true;\r\n this._waitForSequenceMessage = true;\r\n }\r\n async _resend() {\r\n const sequenceId = this._messages.length !== 0\r\n ? this._messages[0]._id\r\n : this._totalMessageCount + 1;\r\n await this._connection.send(this._protocol.writeMessage({ type: MessageType.Sequence, sequenceId }));\r\n // Get a local variable to the _messages, just in case messages are acked while resending\r\n // Which would slice the _messages array (which creates a new copy)\r\n const messages = this._messages;\r\n for (const element of messages) {\r\n await this._connection.send(element._message);\r\n }\r\n this._reconnectInProgress = false;\r\n }\r\n _dispose(error) {\r\n error !== null && error !== void 0 ? error : (error = new Error(\"Unable to reconnect to server.\"));\r\n // Unblock backpressure if any\r\n for (const element of this._messages) {\r\n element._rejector(error);\r\n }\r\n }\r\n _isInvocationMessage(message) {\r\n // There is no way to check if something implements an interface.\r\n // So we individually check the messages in a switch statement.\r\n // To make sure we don't miss any message types we rely on the compiler\r\n // seeing the function returns a value and it will do the\r\n // exhaustive check for us on the switch statement, since we don't use 'case default'\r\n switch (message.type) {\r\n case MessageType.Invocation:\r\n case MessageType.StreamItem:\r\n case MessageType.Completion:\r\n case MessageType.StreamInvocation:\r\n case MessageType.CancelInvocation:\r\n return true;\r\n case MessageType.Close:\r\n case MessageType.Sequence:\r\n case MessageType.Ping:\r\n case MessageType.Ack:\r\n return false;\r\n }\r\n }\r\n _ackTimer() {\r\n if (this._ackTimerHandle === undefined) {\r\n this._ackTimerHandle = setTimeout(async () => {\r\n try {\r\n if (!this._reconnectInProgress) {\r\n await this._connection.send(this._protocol.writeMessage({ type: MessageType.Ack, sequenceId: this._latestReceivedSequenceId }));\r\n }\r\n // Ignore errors, that means the connection is closed and we don't care about the Ack message anymore.\r\n }\r\n catch { }\r\n clearTimeout(this._ackTimerHandle);\r\n this._ackTimerHandle = undefined;\r\n // 1 second delay so we don't spam Ack messages if there are many messages being received at once.\r\n }, 1000);\r\n }\r\n }\r\n}\r\nclass BufferedItem {\r\n constructor(message, id, resolver, rejector) {\r\n this._message = message;\r\n this._id = id;\r\n this._resolver = resolver;\r\n this._rejector = rejector;\r\n }\r\n}\r\n//# sourceMappingURL=MessageBuffer.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { HandshakeProtocol } from \"./HandshakeProtocol\";\r\nimport { AbortError } from \"./Errors\";\r\nimport { MessageType } from \"./IHubProtocol\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { Subject } from \"./Subject\";\r\nimport { Arg, getErrorString, Platform } from \"./Utils\";\r\nimport { MessageBuffer } from \"./MessageBuffer\";\r\nconst DEFAULT_TIMEOUT_IN_MS = 30 * 1000;\r\nconst DEFAULT_PING_INTERVAL_IN_MS = 15 * 1000;\r\nconst DEFAULT_STATEFUL_RECONNECT_BUFFER_SIZE = 100000;\r\n/** Describes the current state of the {@link HubConnection} to the server. */\r\nexport var HubConnectionState;\r\n(function (HubConnectionState) {\r\n /** The hub connection is disconnected. */\r\n HubConnectionState[\"Disconnected\"] = \"Disconnected\";\r\n /** The hub connection is connecting. */\r\n HubConnectionState[\"Connecting\"] = \"Connecting\";\r\n /** The hub connection is connected. */\r\n HubConnectionState[\"Connected\"] = \"Connected\";\r\n /** The hub connection is disconnecting. */\r\n HubConnectionState[\"Disconnecting\"] = \"Disconnecting\";\r\n /** The hub connection is reconnecting. */\r\n HubConnectionState[\"Reconnecting\"] = \"Reconnecting\";\r\n})(HubConnectionState || (HubConnectionState = {}));\r\n/** Represents a connection to a SignalR Hub. */\r\nexport class HubConnection {\r\n /** @internal */\r\n // Using a public static factory method means we can have a private constructor and an _internal_\r\n // create method that can be used by HubConnectionBuilder. An \"internal\" constructor would just\r\n // be stripped away and the '.d.ts' file would have no constructor, which is interpreted as a\r\n // public parameter-less constructor.\r\n static create(connection, logger, protocol, reconnectPolicy, serverTimeoutInMilliseconds, keepAliveIntervalInMilliseconds, statefulReconnectBufferSize) {\r\n return new HubConnection(connection, logger, protocol, reconnectPolicy, serverTimeoutInMilliseconds, keepAliveIntervalInMilliseconds, statefulReconnectBufferSize);\r\n }\r\n constructor(connection, logger, protocol, reconnectPolicy, serverTimeoutInMilliseconds, keepAliveIntervalInMilliseconds, statefulReconnectBufferSize) {\r\n this._nextKeepAlive = 0;\r\n this._freezeEventListener = () => {\r\n this._logger.log(LogLevel.Warning, \"The page is being frozen, this will likely lead to the connection being closed and messages being lost. For more information see the docs at https://learn.microsoft.com/aspnet/core/signalr/javascript-client#bsleep\");\r\n };\r\n Arg.isRequired(connection, \"connection\");\r\n Arg.isRequired(logger, \"logger\");\r\n Arg.isRequired(protocol, \"protocol\");\r\n this.serverTimeoutInMilliseconds = serverTimeoutInMilliseconds !== null && serverTimeoutInMilliseconds !== void 0 ? serverTimeoutInMilliseconds : DEFAULT_TIMEOUT_IN_MS;\r\n this.keepAliveIntervalInMilliseconds = keepAliveIntervalInMilliseconds !== null && keepAliveIntervalInMilliseconds !== void 0 ? keepAliveIntervalInMilliseconds : DEFAULT_PING_INTERVAL_IN_MS;\r\n this._statefulReconnectBufferSize = statefulReconnectBufferSize !== null && statefulReconnectBufferSize !== void 0 ? statefulReconnectBufferSize : DEFAULT_STATEFUL_RECONNECT_BUFFER_SIZE;\r\n this._logger = logger;\r\n this._protocol = protocol;\r\n this.connection = connection;\r\n this._reconnectPolicy = reconnectPolicy;\r\n this._handshakeProtocol = new HandshakeProtocol();\r\n this.connection.onreceive = (data) => this._processIncomingData(data);\r\n this.connection.onclose = (error) => this._connectionClosed(error);\r\n this._callbacks = {};\r\n this._methods = {};\r\n this._closedCallbacks = [];\r\n this._reconnectingCallbacks = [];\r\n this._reconnectedCallbacks = [];\r\n this._invocationId = 0;\r\n this._receivedHandshakeResponse = false;\r\n this._connectionState = HubConnectionState.Disconnected;\r\n this._connectionStarted = false;\r\n this._cachedPingMessage = this._protocol.writeMessage({ type: MessageType.Ping });\r\n }\r\n /** Indicates the state of the {@link HubConnection} to the server. */\r\n get state() {\r\n return this._connectionState;\r\n }\r\n /** Represents the connection id of the {@link HubConnection} on the server. The connection id will be null when the connection is either\r\n * in the disconnected state or if the negotiation step was skipped.\r\n */\r\n get connectionId() {\r\n return this.connection ? (this.connection.connectionId || null) : null;\r\n }\r\n /** Indicates the url of the {@link HubConnection} to the server. */\r\n get baseUrl() {\r\n return this.connection.baseUrl || \"\";\r\n }\r\n /**\r\n * Sets a new url for the HubConnection. Note that the url can only be changed when the connection is in either the Disconnected or\r\n * Reconnecting states.\r\n * @param {string} url The url to connect to.\r\n */\r\n set baseUrl(url) {\r\n if (this._connectionState !== HubConnectionState.Disconnected && this._connectionState !== HubConnectionState.Reconnecting) {\r\n throw new Error(\"The HubConnection must be in the Disconnected or Reconnecting state to change the url.\");\r\n }\r\n if (!url) {\r\n throw new Error(\"The HubConnection url must be a valid url.\");\r\n }\r\n this.connection.baseUrl = url;\r\n }\r\n /** Starts the connection.\r\n *\r\n * @returns {Promise} A Promise that resolves when the connection has been successfully established, or rejects with an error.\r\n */\r\n start() {\r\n this._startPromise = this._startWithStateTransitions();\r\n return this._startPromise;\r\n }\r\n async _startWithStateTransitions() {\r\n if (this._connectionState !== HubConnectionState.Disconnected) {\r\n return Promise.reject(new Error(\"Cannot start a HubConnection that is not in the 'Disconnected' state.\"));\r\n }\r\n this._connectionState = HubConnectionState.Connecting;\r\n this._logger.log(LogLevel.Debug, \"Starting HubConnection.\");\r\n try {\r\n await this._startInternal();\r\n if (Platform.isBrowser) {\r\n // Log when the browser freezes the tab so users know why their connection unexpectedly stopped working\r\n window.document.addEventListener(\"freeze\", this._freezeEventListener);\r\n }\r\n this._connectionState = HubConnectionState.Connected;\r\n this._connectionStarted = true;\r\n this._logger.log(LogLevel.Debug, \"HubConnection connected successfully.\");\r\n }\r\n catch (e) {\r\n this._connectionState = HubConnectionState.Disconnected;\r\n this._logger.log(LogLevel.Debug, `HubConnection failed to start successfully because of error '${e}'.`);\r\n return Promise.reject(e);\r\n }\r\n }\r\n async _startInternal() {\r\n this._stopDuringStartError = undefined;\r\n this._receivedHandshakeResponse = false;\r\n // Set up the promise before any connection is (re)started otherwise it could race with received messages\r\n const handshakePromise = new Promise((resolve, reject) => {\r\n this._handshakeResolver = resolve;\r\n this._handshakeRejecter = reject;\r\n });\r\n await this.connection.start(this._protocol.transferFormat);\r\n try {\r\n let version = this._protocol.version;\r\n if (!this.connection.features.reconnect) {\r\n // Stateful Reconnect starts with HubProtocol version 2, newer clients connecting to older servers will fail to connect due to\r\n // the handshake only supporting version 1, so we will try to send version 1 during the handshake to keep old servers working.\r\n version = 1;\r\n }\r\n const handshakeRequest = {\r\n protocol: this._protocol.name,\r\n version,\r\n };\r\n this._logger.log(LogLevel.Debug, \"Sending handshake request.\");\r\n await this._sendMessage(this._handshakeProtocol.writeHandshakeRequest(handshakeRequest));\r\n this._logger.log(LogLevel.Information, `Using HubProtocol '${this._protocol.name}'.`);\r\n // defensively cleanup timeout in case we receive a message from the server before we finish start\r\n this._cleanupTimeout();\r\n this._resetTimeoutPeriod();\r\n this._resetKeepAliveInterval();\r\n await handshakePromise;\r\n // It's important to check the stopDuringStartError instead of just relying on the handshakePromise\r\n // being rejected on close, because this continuation can run after both the handshake completed successfully\r\n // and the connection was closed.\r\n if (this._stopDuringStartError) {\r\n // It's important to throw instead of returning a rejected promise, because we don't want to allow any state\r\n // transitions to occur between now and the calling code observing the exceptions. Returning a rejected promise\r\n // will cause the calling continuation to get scheduled to run later.\r\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\r\n throw this._stopDuringStartError;\r\n }\r\n const useStatefulReconnect = this.connection.features.reconnect || false;\r\n if (useStatefulReconnect) {\r\n this._messageBuffer = new MessageBuffer(this._protocol, this.connection, this._statefulReconnectBufferSize);\r\n this.connection.features.disconnected = this._messageBuffer._disconnected.bind(this._messageBuffer);\r\n this.connection.features.resend = () => {\r\n if (this._messageBuffer) {\r\n return this._messageBuffer._resend();\r\n }\r\n };\r\n }\r\n if (!this.connection.features.inherentKeepAlive) {\r\n await this._sendMessage(this._cachedPingMessage);\r\n }\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Debug, `Hub handshake failed with error '${e}' during start(). Stopping HubConnection.`);\r\n this._cleanupTimeout();\r\n this._cleanupPingTimer();\r\n // HttpConnection.stop() should not complete until after the onclose callback is invoked.\r\n // This will transition the HubConnection to the disconnected state before HttpConnection.stop() completes.\r\n await this.connection.stop(e);\r\n throw e;\r\n }\r\n }\r\n /** Stops the connection.\r\n *\r\n * @returns {Promise} A Promise that resolves when the connection has been successfully terminated, or rejects with an error.\r\n */\r\n async stop() {\r\n // Capture the start promise before the connection might be restarted in an onclose callback.\r\n const startPromise = this._startPromise;\r\n this.connection.features.reconnect = false;\r\n this._stopPromise = this._stopInternal();\r\n await this._stopPromise;\r\n try {\r\n // Awaiting undefined continues immediately\r\n await startPromise;\r\n }\r\n catch (e) {\r\n // This exception is returned to the user as a rejected Promise from the start method.\r\n }\r\n }\r\n _stopInternal(error) {\r\n if (this._connectionState === HubConnectionState.Disconnected) {\r\n this._logger.log(LogLevel.Debug, `Call to HubConnection.stop(${error}) ignored because it is already in the disconnected state.`);\r\n return Promise.resolve();\r\n }\r\n if (this._connectionState === HubConnectionState.Disconnecting) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stop(${error}) ignored because the connection is already in the disconnecting state.`);\r\n return this._stopPromise;\r\n }\r\n const state = this._connectionState;\r\n this._connectionState = HubConnectionState.Disconnecting;\r\n this._logger.log(LogLevel.Debug, \"Stopping HubConnection.\");\r\n if (this._reconnectDelayHandle) {\r\n // We're in a reconnect delay which means the underlying connection is currently already stopped.\r\n // Just clear the handle to stop the reconnect loop (which no one is waiting on thankfully) and\r\n // fire the onclose callbacks.\r\n this._logger.log(LogLevel.Debug, \"Connection stopped during reconnect delay. Done reconnecting.\");\r\n clearTimeout(this._reconnectDelayHandle);\r\n this._reconnectDelayHandle = undefined;\r\n this._completeClose();\r\n return Promise.resolve();\r\n }\r\n if (state === HubConnectionState.Connected) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this._sendCloseMessage();\r\n }\r\n this._cleanupTimeout();\r\n this._cleanupPingTimer();\r\n this._stopDuringStartError = error || new AbortError(\"The connection was stopped before the hub handshake could complete.\");\r\n // HttpConnection.stop() should not complete until after either HttpConnection.start() fails\r\n // or the onclose callback is invoked. The onclose callback will transition the HubConnection\r\n // to the disconnected state if need be before HttpConnection.stop() completes.\r\n return this.connection.stop(error);\r\n }\r\n async _sendCloseMessage() {\r\n try {\r\n await this._sendWithProtocol(this._createCloseMessage());\r\n }\r\n catch {\r\n // Ignore, this is a best effort attempt to let the server know the client closed gracefully.\r\n }\r\n }\r\n /** Invokes a streaming hub method on the server using the specified name and arguments.\r\n *\r\n * @typeparam T The type of the items returned by the server.\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {IStreamResult} An object that yields results from the server as they are received.\r\n */\r\n stream(methodName, ...args) {\r\n const [streams, streamIds] = this._replaceStreamingParams(args);\r\n const invocationDescriptor = this._createStreamInvocation(methodName, args, streamIds);\r\n // eslint-disable-next-line prefer-const\r\n let promiseQueue;\r\n const subject = new Subject();\r\n subject.cancelCallback = () => {\r\n const cancelInvocation = this._createCancelInvocation(invocationDescriptor.invocationId);\r\n delete this._callbacks[invocationDescriptor.invocationId];\r\n return promiseQueue.then(() => {\r\n return this._sendWithProtocol(cancelInvocation);\r\n });\r\n };\r\n this._callbacks[invocationDescriptor.invocationId] = (invocationEvent, error) => {\r\n if (error) {\r\n subject.error(error);\r\n return;\r\n }\r\n else if (invocationEvent) {\r\n // invocationEvent will not be null when an error is not passed to the callback\r\n if (invocationEvent.type === MessageType.Completion) {\r\n if (invocationEvent.error) {\r\n subject.error(new Error(invocationEvent.error));\r\n }\r\n else {\r\n subject.complete();\r\n }\r\n }\r\n else {\r\n subject.next((invocationEvent.item));\r\n }\r\n }\r\n };\r\n promiseQueue = this._sendWithProtocol(invocationDescriptor)\r\n .catch((e) => {\r\n subject.error(e);\r\n delete this._callbacks[invocationDescriptor.invocationId];\r\n });\r\n this._launchStreams(streams, promiseQueue);\r\n return subject;\r\n }\r\n _sendMessage(message) {\r\n this._resetKeepAliveInterval();\r\n return this.connection.send(message);\r\n }\r\n /**\r\n * Sends a js object to the server.\r\n * @param message The js object to serialize and send.\r\n */\r\n _sendWithProtocol(message) {\r\n if (this._messageBuffer) {\r\n return this._messageBuffer._send(message);\r\n }\r\n else {\r\n return this._sendMessage(this._protocol.writeMessage(message));\r\n }\r\n }\r\n /** Invokes a hub method on the server using the specified name and arguments. Does not wait for a response from the receiver.\r\n *\r\n * The Promise returned by this method resolves when the client has sent the invocation to the server. The server may still\r\n * be processing the invocation.\r\n *\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {Promise} A Promise that resolves when the invocation has been successfully sent, or rejects with an error.\r\n */\r\n send(methodName, ...args) {\r\n const [streams, streamIds] = this._replaceStreamingParams(args);\r\n const sendPromise = this._sendWithProtocol(this._createInvocation(methodName, args, true, streamIds));\r\n this._launchStreams(streams, sendPromise);\r\n return sendPromise;\r\n }\r\n /** Invokes a hub method on the server using the specified name and arguments.\r\n *\r\n * The Promise returned by this method resolves when the server indicates it has finished invoking the method. When the promise\r\n * resolves, the server has finished invoking the method. If the server method returns a result, it is produced as the result of\r\n * resolving the Promise.\r\n *\r\n * @typeparam T The expected return type.\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {Promise} A Promise that resolves with the result of the server method (if any), or rejects with an error.\r\n */\r\n invoke(methodName, ...args) {\r\n const [streams, streamIds] = this._replaceStreamingParams(args);\r\n const invocationDescriptor = this._createInvocation(methodName, args, false, streamIds);\r\n const p = new Promise((resolve, reject) => {\r\n // invocationId will always have a value for a non-blocking invocation\r\n this._callbacks[invocationDescriptor.invocationId] = (invocationEvent, error) => {\r\n if (error) {\r\n reject(error);\r\n return;\r\n }\r\n else if (invocationEvent) {\r\n // invocationEvent will not be null when an error is not passed to the callback\r\n if (invocationEvent.type === MessageType.Completion) {\r\n if (invocationEvent.error) {\r\n reject(new Error(invocationEvent.error));\r\n }\r\n else {\r\n resolve(invocationEvent.result);\r\n }\r\n }\r\n else {\r\n reject(new Error(`Unexpected message type: ${invocationEvent.type}`));\r\n }\r\n }\r\n };\r\n const promiseQueue = this._sendWithProtocol(invocationDescriptor)\r\n .catch((e) => {\r\n reject(e);\r\n // invocationId will always have a value for a non-blocking invocation\r\n delete this._callbacks[invocationDescriptor.invocationId];\r\n });\r\n this._launchStreams(streams, promiseQueue);\r\n });\r\n return p;\r\n }\r\n on(methodName, newMethod) {\r\n if (!methodName || !newMethod) {\r\n return;\r\n }\r\n methodName = methodName.toLowerCase();\r\n if (!this._methods[methodName]) {\r\n this._methods[methodName] = [];\r\n }\r\n // Preventing adding the same handler multiple times.\r\n if (this._methods[methodName].indexOf(newMethod) !== -1) {\r\n return;\r\n }\r\n this._methods[methodName].push(newMethod);\r\n }\r\n off(methodName, method) {\r\n if (!methodName) {\r\n return;\r\n }\r\n methodName = methodName.toLowerCase();\r\n const handlers = this._methods[methodName];\r\n if (!handlers) {\r\n return;\r\n }\r\n if (method) {\r\n const removeIdx = handlers.indexOf(method);\r\n if (removeIdx !== -1) {\r\n handlers.splice(removeIdx, 1);\r\n if (handlers.length === 0) {\r\n delete this._methods[methodName];\r\n }\r\n }\r\n }\r\n else {\r\n delete this._methods[methodName];\r\n }\r\n }\r\n /** Registers a handler that will be invoked when the connection is closed.\r\n *\r\n * @param {Function} callback The handler that will be invoked when the connection is closed. Optionally receives a single argument containing the error that caused the connection to close (if any).\r\n */\r\n onclose(callback) {\r\n if (callback) {\r\n this._closedCallbacks.push(callback);\r\n }\r\n }\r\n /** Registers a handler that will be invoked when the connection starts reconnecting.\r\n *\r\n * @param {Function} callback The handler that will be invoked when the connection starts reconnecting. Optionally receives a single argument containing the error that caused the connection to start reconnecting (if any).\r\n */\r\n onreconnecting(callback) {\r\n if (callback) {\r\n this._reconnectingCallbacks.push(callback);\r\n }\r\n }\r\n /** Registers a handler that will be invoked when the connection successfully reconnects.\r\n *\r\n * @param {Function} callback The handler that will be invoked when the connection successfully reconnects.\r\n */\r\n onreconnected(callback) {\r\n if (callback) {\r\n this._reconnectedCallbacks.push(callback);\r\n }\r\n }\r\n _processIncomingData(data) {\r\n this._cleanupTimeout();\r\n if (!this._receivedHandshakeResponse) {\r\n data = this._processHandshakeResponse(data);\r\n this._receivedHandshakeResponse = true;\r\n }\r\n // Data may have all been read when processing handshake response\r\n if (data) {\r\n // Parse the messages\r\n const messages = this._protocol.parseMessages(data, this._logger);\r\n for (const message of messages) {\r\n if (this._messageBuffer && !this._messageBuffer._shouldProcessMessage(message)) {\r\n // Don't process the message, we are either waiting for a SequenceMessage or received a duplicate message\r\n continue;\r\n }\r\n switch (message.type) {\r\n case MessageType.Invocation:\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this._invokeClientMethod(message);\r\n break;\r\n case MessageType.StreamItem:\r\n case MessageType.Completion: {\r\n const callback = this._callbacks[message.invocationId];\r\n if (callback) {\r\n if (message.type === MessageType.Completion) {\r\n delete this._callbacks[message.invocationId];\r\n }\r\n try {\r\n callback(message);\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `Stream callback threw error: ${getErrorString(e)}`);\r\n }\r\n }\r\n break;\r\n }\r\n case MessageType.Ping:\r\n // Don't care about pings\r\n break;\r\n case MessageType.Close: {\r\n this._logger.log(LogLevel.Information, \"Close message received from server.\");\r\n const error = message.error ? new Error(\"Server returned an error on close: \" + message.error) : undefined;\r\n if (message.allowReconnect === true) {\r\n // It feels wrong not to await connection.stop() here, but processIncomingData is called as part of an onreceive callback which is not async,\r\n // this is already the behavior for serverTimeout(), and HttpConnection.Stop() should catch and log all possible exceptions.\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.connection.stop(error);\r\n }\r\n else {\r\n // We cannot await stopInternal() here, but subsequent calls to stop() will await this if stopInternal() is still ongoing.\r\n this._stopPromise = this._stopInternal(error);\r\n }\r\n break;\r\n }\r\n case MessageType.Ack:\r\n if (this._messageBuffer) {\r\n this._messageBuffer._ack(message);\r\n }\r\n break;\r\n case MessageType.Sequence:\r\n if (this._messageBuffer) {\r\n this._messageBuffer._resetSequence(message);\r\n }\r\n break;\r\n default:\r\n this._logger.log(LogLevel.Warning, `Invalid message type: ${message.type}.`);\r\n break;\r\n }\r\n }\r\n }\r\n this._resetTimeoutPeriod();\r\n }\r\n _processHandshakeResponse(data) {\r\n let responseMessage;\r\n let remainingData;\r\n try {\r\n [remainingData, responseMessage] = this._handshakeProtocol.parseHandshakeResponse(data);\r\n }\r\n catch (e) {\r\n const message = \"Error parsing handshake response: \" + e;\r\n this._logger.log(LogLevel.Error, message);\r\n const error = new Error(message);\r\n this._handshakeRejecter(error);\r\n throw error;\r\n }\r\n if (responseMessage.error) {\r\n const message = \"Server returned handshake error: \" + responseMessage.error;\r\n this._logger.log(LogLevel.Error, message);\r\n const error = new Error(message);\r\n this._handshakeRejecter(error);\r\n throw error;\r\n }\r\n else {\r\n this._logger.log(LogLevel.Debug, \"Server handshake complete.\");\r\n }\r\n this._handshakeResolver();\r\n return remainingData;\r\n }\r\n _resetKeepAliveInterval() {\r\n if (this.connection.features.inherentKeepAlive) {\r\n return;\r\n }\r\n // Set the time we want the next keep alive to be sent\r\n // Timer will be setup on next message receive\r\n this._nextKeepAlive = new Date().getTime() + this.keepAliveIntervalInMilliseconds;\r\n this._cleanupPingTimer();\r\n }\r\n _resetTimeoutPeriod() {\r\n if (!this.connection.features || !this.connection.features.inherentKeepAlive) {\r\n // Set the timeout timer\r\n this._timeoutHandle = setTimeout(() => this.serverTimeout(), this.serverTimeoutInMilliseconds);\r\n // Set keepAlive timer if there isn't one\r\n if (this._pingServerHandle === undefined) {\r\n let nextPing = this._nextKeepAlive - new Date().getTime();\r\n if (nextPing < 0) {\r\n nextPing = 0;\r\n }\r\n // The timer needs to be set from a networking callback to avoid Chrome timer throttling from causing timers to run once a minute\r\n this._pingServerHandle = setTimeout(async () => {\r\n if (this._connectionState === HubConnectionState.Connected) {\r\n try {\r\n await this._sendMessage(this._cachedPingMessage);\r\n }\r\n catch {\r\n // We don't care about the error. It should be seen elsewhere in the client.\r\n // The connection is probably in a bad or closed state now, cleanup the timer so it stops triggering\r\n this._cleanupPingTimer();\r\n }\r\n }\r\n }, nextPing);\r\n }\r\n }\r\n }\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n serverTimeout() {\r\n // The server hasn't talked to us in a while. It doesn't like us anymore ... :(\r\n // Terminate the connection, but we don't need to wait on the promise. This could trigger reconnecting.\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.connection.stop(new Error(\"Server timeout elapsed without receiving a message from the server.\"));\r\n }\r\n async _invokeClientMethod(invocationMessage) {\r\n const methodName = invocationMessage.target.toLowerCase();\r\n const methods = this._methods[methodName];\r\n if (!methods) {\r\n this._logger.log(LogLevel.Warning, `No client method with the name '${methodName}' found.`);\r\n // No handlers provided by client but the server is expecting a response still, so we send an error\r\n if (invocationMessage.invocationId) {\r\n this._logger.log(LogLevel.Warning, `No result given for '${methodName}' method and invocation ID '${invocationMessage.invocationId}'.`);\r\n await this._sendWithProtocol(this._createCompletionMessage(invocationMessage.invocationId, \"Client didn't provide a result.\", null));\r\n }\r\n return;\r\n }\r\n // Avoid issues with handlers removing themselves thus modifying the list while iterating through it\r\n const methodsCopy = methods.slice();\r\n // Server expects a response\r\n const expectsResponse = invocationMessage.invocationId ? true : false;\r\n // We preserve the last result or exception but still call all handlers\r\n let res;\r\n let exception;\r\n let completionMessage;\r\n for (const m of methodsCopy) {\r\n try {\r\n const prevRes = res;\r\n res = await m.apply(this, invocationMessage.arguments);\r\n if (expectsResponse && res && prevRes) {\r\n this._logger.log(LogLevel.Error, `Multiple results provided for '${methodName}'. Sending error to server.`);\r\n completionMessage = this._createCompletionMessage(invocationMessage.invocationId, `Client provided multiple results.`, null);\r\n }\r\n // Ignore exception if we got a result after, the exception will be logged\r\n exception = undefined;\r\n }\r\n catch (e) {\r\n exception = e;\r\n this._logger.log(LogLevel.Error, `A callback for the method '${methodName}' threw error '${e}'.`);\r\n }\r\n }\r\n if (completionMessage) {\r\n await this._sendWithProtocol(completionMessage);\r\n }\r\n else if (expectsResponse) {\r\n // If there is an exception that means either no result was given or a handler after a result threw\r\n if (exception) {\r\n completionMessage = this._createCompletionMessage(invocationMessage.invocationId, `${exception}`, null);\r\n }\r\n else if (res !== undefined) {\r\n completionMessage = this._createCompletionMessage(invocationMessage.invocationId, null, res);\r\n }\r\n else {\r\n this._logger.log(LogLevel.Warning, `No result given for '${methodName}' method and invocation ID '${invocationMessage.invocationId}'.`);\r\n // Client didn't provide a result or throw from a handler, server expects a response so we send an error\r\n completionMessage = this._createCompletionMessage(invocationMessage.invocationId, \"Client didn't provide a result.\", null);\r\n }\r\n await this._sendWithProtocol(completionMessage);\r\n }\r\n else {\r\n if (res) {\r\n this._logger.log(LogLevel.Error, `Result given for '${methodName}' method but server is not expecting a result.`);\r\n }\r\n }\r\n }\r\n _connectionClosed(error) {\r\n this._logger.log(LogLevel.Debug, `HubConnection.connectionClosed(${error}) called while in state ${this._connectionState}.`);\r\n // Triggering this.handshakeRejecter is insufficient because it could already be resolved without the continuation having run yet.\r\n this._stopDuringStartError = this._stopDuringStartError || error || new AbortError(\"The underlying connection was closed before the hub handshake could complete.\");\r\n // If the handshake is in progress, start will be waiting for the handshake promise, so we complete it.\r\n // If it has already completed, this should just noop.\r\n if (this._handshakeResolver) {\r\n this._handshakeResolver();\r\n }\r\n this._cancelCallbacksWithError(error || new Error(\"Invocation canceled due to the underlying connection being closed.\"));\r\n this._cleanupTimeout();\r\n this._cleanupPingTimer();\r\n if (this._connectionState === HubConnectionState.Disconnecting) {\r\n this._completeClose(error);\r\n }\r\n else if (this._connectionState === HubConnectionState.Connected && this._reconnectPolicy) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this._reconnect(error);\r\n }\r\n else if (this._connectionState === HubConnectionState.Connected) {\r\n this._completeClose(error);\r\n }\r\n // If none of the above if conditions were true were called the HubConnection must be in either:\r\n // 1. The Connecting state in which case the handshakeResolver will complete it and stopDuringStartError will fail it.\r\n // 2. The Reconnecting state in which case the handshakeResolver will complete it and stopDuringStartError will fail the current reconnect attempt\r\n // and potentially continue the reconnect() loop.\r\n // 3. The Disconnected state in which case we're already done.\r\n }\r\n _completeClose(error) {\r\n if (this._connectionStarted) {\r\n this._connectionState = HubConnectionState.Disconnected;\r\n this._connectionStarted = false;\r\n if (this._messageBuffer) {\r\n this._messageBuffer._dispose(error !== null && error !== void 0 ? error : new Error(\"Connection closed.\"));\r\n this._messageBuffer = undefined;\r\n }\r\n if (Platform.isBrowser) {\r\n window.document.removeEventListener(\"freeze\", this._freezeEventListener);\r\n }\r\n try {\r\n this._closedCallbacks.forEach((c) => c.apply(this, [error]));\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `An onclose callback called with error '${error}' threw error '${e}'.`);\r\n }\r\n }\r\n }\r\n async _reconnect(error) {\r\n const reconnectStartTime = Date.now();\r\n let previousReconnectAttempts = 0;\r\n let retryError = error !== undefined ? error : new Error(\"Attempting to reconnect due to a unknown error.\");\r\n let nextRetryDelay = this._getNextRetryDelay(previousReconnectAttempts++, 0, retryError);\r\n if (nextRetryDelay === null) {\r\n this._logger.log(LogLevel.Debug, \"Connection not reconnecting because the IRetryPolicy returned null on the first reconnect attempt.\");\r\n this._completeClose(error);\r\n return;\r\n }\r\n this._connectionState = HubConnectionState.Reconnecting;\r\n if (error) {\r\n this._logger.log(LogLevel.Information, `Connection reconnecting because of error '${error}'.`);\r\n }\r\n else {\r\n this._logger.log(LogLevel.Information, \"Connection reconnecting.\");\r\n }\r\n if (this._reconnectingCallbacks.length !== 0) {\r\n try {\r\n this._reconnectingCallbacks.forEach((c) => c.apply(this, [error]));\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `An onreconnecting callback called with error '${error}' threw error '${e}'.`);\r\n }\r\n // Exit early if an onreconnecting callback called connection.stop().\r\n if (this._connectionState !== HubConnectionState.Reconnecting) {\r\n this._logger.log(LogLevel.Debug, \"Connection left the reconnecting state in onreconnecting callback. Done reconnecting.\");\r\n return;\r\n }\r\n }\r\n while (nextRetryDelay !== null) {\r\n this._logger.log(LogLevel.Information, `Reconnect attempt number ${previousReconnectAttempts} will start in ${nextRetryDelay} ms.`);\r\n await new Promise((resolve) => {\r\n this._reconnectDelayHandle = setTimeout(resolve, nextRetryDelay);\r\n });\r\n this._reconnectDelayHandle = undefined;\r\n if (this._connectionState !== HubConnectionState.Reconnecting) {\r\n this._logger.log(LogLevel.Debug, \"Connection left the reconnecting state during reconnect delay. Done reconnecting.\");\r\n return;\r\n }\r\n try {\r\n await this._startInternal();\r\n this._connectionState = HubConnectionState.Connected;\r\n this._logger.log(LogLevel.Information, \"HubConnection reconnected successfully.\");\r\n if (this._reconnectedCallbacks.length !== 0) {\r\n try {\r\n this._reconnectedCallbacks.forEach((c) => c.apply(this, [this.connection.connectionId]));\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `An onreconnected callback called with connectionId '${this.connection.connectionId}; threw error '${e}'.`);\r\n }\r\n }\r\n return;\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Information, `Reconnect attempt failed because of error '${e}'.`);\r\n if (this._connectionState !== HubConnectionState.Reconnecting) {\r\n this._logger.log(LogLevel.Debug, `Connection moved to the '${this._connectionState}' from the reconnecting state during reconnect attempt. Done reconnecting.`);\r\n // The TypeScript compiler thinks that connectionState must be Connected here. The TypeScript compiler is wrong.\r\n if (this._connectionState === HubConnectionState.Disconnecting) {\r\n this._completeClose();\r\n }\r\n return;\r\n }\r\n retryError = e instanceof Error ? e : new Error(e.toString());\r\n nextRetryDelay = this._getNextRetryDelay(previousReconnectAttempts++, Date.now() - reconnectStartTime, retryError);\r\n }\r\n }\r\n this._logger.log(LogLevel.Information, `Reconnect retries have been exhausted after ${Date.now() - reconnectStartTime} ms and ${previousReconnectAttempts} failed attempts. Connection disconnecting.`);\r\n this._completeClose();\r\n }\r\n _getNextRetryDelay(previousRetryCount, elapsedMilliseconds, retryReason) {\r\n try {\r\n return this._reconnectPolicy.nextRetryDelayInMilliseconds({\r\n elapsedMilliseconds,\r\n previousRetryCount,\r\n retryReason,\r\n });\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `IRetryPolicy.nextRetryDelayInMilliseconds(${previousRetryCount}, ${elapsedMilliseconds}) threw error '${e}'.`);\r\n return null;\r\n }\r\n }\r\n _cancelCallbacksWithError(error) {\r\n const callbacks = this._callbacks;\r\n this._callbacks = {};\r\n Object.keys(callbacks)\r\n .forEach((key) => {\r\n const callback = callbacks[key];\r\n try {\r\n callback(null, error);\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `Stream 'error' callback called with '${error}' threw error: ${getErrorString(e)}`);\r\n }\r\n });\r\n }\r\n _cleanupPingTimer() {\r\n if (this._pingServerHandle) {\r\n clearTimeout(this._pingServerHandle);\r\n this._pingServerHandle = undefined;\r\n }\r\n }\r\n _cleanupTimeout() {\r\n if (this._timeoutHandle) {\r\n clearTimeout(this._timeoutHandle);\r\n }\r\n }\r\n _createInvocation(methodName, args, nonblocking, streamIds) {\r\n if (nonblocking) {\r\n if (streamIds.length !== 0) {\r\n return {\r\n arguments: args,\r\n streamIds,\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n else {\r\n return {\r\n arguments: args,\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n }\r\n else {\r\n const invocationId = this._invocationId;\r\n this._invocationId++;\r\n if (streamIds.length !== 0) {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n streamIds,\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n else {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n }\r\n }\r\n _launchStreams(streams, promiseQueue) {\r\n if (streams.length === 0) {\r\n return;\r\n }\r\n // Synchronize stream data so they arrive in-order on the server\r\n if (!promiseQueue) {\r\n promiseQueue = Promise.resolve();\r\n }\r\n // We want to iterate over the keys, since the keys are the stream ids\r\n // eslint-disable-next-line guard-for-in\r\n for (const streamId in streams) {\r\n streams[streamId].subscribe({\r\n complete: () => {\r\n promiseQueue = promiseQueue.then(() => this._sendWithProtocol(this._createCompletionMessage(streamId)));\r\n },\r\n error: (err) => {\r\n let message;\r\n if (err instanceof Error) {\r\n message = err.message;\r\n }\r\n else if (err && err.toString) {\r\n message = err.toString();\r\n }\r\n else {\r\n message = \"Unknown error\";\r\n }\r\n promiseQueue = promiseQueue.then(() => this._sendWithProtocol(this._createCompletionMessage(streamId, message)));\r\n },\r\n next: (item) => {\r\n promiseQueue = promiseQueue.then(() => this._sendWithProtocol(this._createStreamItemMessage(streamId, item)));\r\n },\r\n });\r\n }\r\n }\r\n _replaceStreamingParams(args) {\r\n const streams = [];\r\n const streamIds = [];\r\n for (let i = 0; i < args.length; i++) {\r\n const argument = args[i];\r\n if (this._isObservable(argument)) {\r\n const streamId = this._invocationId;\r\n this._invocationId++;\r\n // Store the stream for later use\r\n streams[streamId] = argument;\r\n streamIds.push(streamId.toString());\r\n // remove stream from args\r\n args.splice(i, 1);\r\n }\r\n }\r\n return [streams, streamIds];\r\n }\r\n _isObservable(arg) {\r\n // This allows other stream implementations to just work (like rxjs)\r\n return arg && arg.subscribe && typeof arg.subscribe === \"function\";\r\n }\r\n _createStreamInvocation(methodName, args, streamIds) {\r\n const invocationId = this._invocationId;\r\n this._invocationId++;\r\n if (streamIds.length !== 0) {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n streamIds,\r\n target: methodName,\r\n type: MessageType.StreamInvocation,\r\n };\r\n }\r\n else {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n target: methodName,\r\n type: MessageType.StreamInvocation,\r\n };\r\n }\r\n }\r\n _createCancelInvocation(id) {\r\n return {\r\n invocationId: id,\r\n type: MessageType.CancelInvocation,\r\n };\r\n }\r\n _createStreamItemMessage(id, item) {\r\n return {\r\n invocationId: id,\r\n item,\r\n type: MessageType.StreamItem,\r\n };\r\n }\r\n _createCompletionMessage(id, error, result) {\r\n if (error) {\r\n return {\r\n error,\r\n invocationId: id,\r\n type: MessageType.Completion,\r\n };\r\n }\r\n return {\r\n invocationId: id,\r\n result,\r\n type: MessageType.Completion,\r\n };\r\n }\r\n _createCloseMessage() {\r\n return { type: MessageType.Close };\r\n }\r\n}\r\n//# sourceMappingURL=HubConnection.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n// 0, 2, 10, 30 second delays before reconnect attempts.\r\nconst DEFAULT_RETRY_DELAYS_IN_MILLISECONDS = [0, 2000, 10000, 30000, null];\r\n/** @private */\r\nexport class DefaultReconnectPolicy {\r\n constructor(retryDelays) {\r\n this._retryDelays = retryDelays !== undefined ? [...retryDelays, null] : DEFAULT_RETRY_DELAYS_IN_MILLISECONDS;\r\n }\r\n nextRetryDelayInMilliseconds(retryContext) {\r\n return this._retryDelays[retryContext.previousRetryCount];\r\n }\r\n}\r\n//# sourceMappingURL=DefaultReconnectPolicy.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nexport class HeaderNames {\r\n}\r\nHeaderNames.Authorization = \"Authorization\";\r\nHeaderNames.Cookie = \"Cookie\";\r\n//# sourceMappingURL=HeaderNames.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { HeaderNames } from \"./HeaderNames\";\r\nimport { HttpClient } from \"./HttpClient\";\r\n/** @private */\r\nexport class AccessTokenHttpClient extends HttpClient {\r\n constructor(innerClient, accessTokenFactory) {\r\n super();\r\n this._innerClient = innerClient;\r\n this._accessTokenFactory = accessTokenFactory;\r\n }\r\n async send(request) {\r\n let allowRetry = true;\r\n if (this._accessTokenFactory && (!this._accessToken || (request.url && request.url.indexOf(\"/negotiate?\") > 0))) {\r\n // don't retry if the request is a negotiate or if we just got a potentially new token from the access token factory\r\n allowRetry = false;\r\n this._accessToken = await this._accessTokenFactory();\r\n }\r\n this._setAuthorizationHeader(request);\r\n const response = await this._innerClient.send(request);\r\n if (allowRetry && response.statusCode === 401 && this._accessTokenFactory) {\r\n this._accessToken = await this._accessTokenFactory();\r\n this._setAuthorizationHeader(request);\r\n return await this._innerClient.send(request);\r\n }\r\n return response;\r\n }\r\n _setAuthorizationHeader(request) {\r\n if (!request.headers) {\r\n request.headers = {};\r\n }\r\n if (this._accessToken) {\r\n request.headers[HeaderNames.Authorization] = `Bearer ${this._accessToken}`;\r\n }\r\n // don't remove the header if there isn't an access token factory, the user manually added the header in this case\r\n else if (this._accessTokenFactory) {\r\n if (request.headers[HeaderNames.Authorization]) {\r\n delete request.headers[HeaderNames.Authorization];\r\n }\r\n }\r\n }\r\n getCookieString(url) {\r\n return this._innerClient.getCookieString(url);\r\n }\r\n}\r\n//# sourceMappingURL=AccessTokenHttpClient.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n// This will be treated as a bit flag in the future, so we keep it using power-of-two values.\r\n/** Specifies a specific HTTP transport type. */\r\nexport var HttpTransportType;\r\n(function (HttpTransportType) {\r\n /** Specifies no transport preference. */\r\n HttpTransportType[HttpTransportType[\"None\"] = 0] = \"None\";\r\n /** Specifies the WebSockets transport. */\r\n HttpTransportType[HttpTransportType[\"WebSockets\"] = 1] = \"WebSockets\";\r\n /** Specifies the Server-Sent Events transport. */\r\n HttpTransportType[HttpTransportType[\"ServerSentEvents\"] = 2] = \"ServerSentEvents\";\r\n /** Specifies the Long Polling transport. */\r\n HttpTransportType[HttpTransportType[\"LongPolling\"] = 4] = \"LongPolling\";\r\n})(HttpTransportType || (HttpTransportType = {}));\r\n/** Specifies the transfer format for a connection. */\r\nexport var TransferFormat;\r\n(function (TransferFormat) {\r\n /** Specifies that only text data will be transmitted over the connection. */\r\n TransferFormat[TransferFormat[\"Text\"] = 1] = \"Text\";\r\n /** Specifies that binary data will be transmitted over the connection. */\r\n TransferFormat[TransferFormat[\"Binary\"] = 2] = \"Binary\";\r\n})(TransferFormat || (TransferFormat = {}));\r\n//# sourceMappingURL=ITransport.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n// Rough polyfill of https://developer.mozilla.org/en-US/docs/Web/API/AbortController\r\n// We don't actually ever use the API being polyfilled, we always use the polyfill because\r\n// it's a very new API right now.\r\n// Not exported from index.\r\n/** @private */\r\nexport class AbortController {\r\n constructor() {\r\n this._isAborted = false;\r\n this.onabort = null;\r\n }\r\n abort() {\r\n if (!this._isAborted) {\r\n this._isAborted = true;\r\n if (this.onabort) {\r\n this.onabort();\r\n }\r\n }\r\n }\r\n get signal() {\r\n return this;\r\n }\r\n get aborted() {\r\n return this._isAborted;\r\n }\r\n}\r\n//# sourceMappingURL=AbortController.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { AbortController } from \"./AbortController\";\r\nimport { HttpError, TimeoutError } from \"./Errors\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, getUserAgentHeader, sendMessage } from \"./Utils\";\r\n// Not exported from 'index', this type is internal.\r\n/** @private */\r\nexport class LongPollingTransport {\r\n // This is an internal type, not exported from 'index' so this is really just internal.\r\n get pollAborted() {\r\n return this._pollAbort.aborted;\r\n }\r\n constructor(httpClient, logger, options) {\r\n this._httpClient = httpClient;\r\n this._logger = logger;\r\n this._pollAbort = new AbortController();\r\n this._options = options;\r\n this._running = false;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n async connect(url, transferFormat) {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this._url = url;\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Connecting.\");\r\n // Allow binary format on Node and Browsers that support binary content (indicated by the presence of responseType property)\r\n if (transferFormat === TransferFormat.Binary &&\r\n (typeof XMLHttpRequest !== \"undefined\" && typeof new XMLHttpRequest().responseType !== \"string\")) {\r\n throw new Error(\"Binary protocols over XmlHttpRequest not implementing advanced features are not supported.\");\r\n }\r\n const [name, value] = getUserAgentHeader();\r\n const headers = { [name]: value, ...this._options.headers };\r\n const pollOptions = {\r\n abortSignal: this._pollAbort.signal,\r\n headers,\r\n timeout: 100000,\r\n withCredentials: this._options.withCredentials,\r\n };\r\n if (transferFormat === TransferFormat.Binary) {\r\n pollOptions.responseType = \"arraybuffer\";\r\n }\r\n // Make initial long polling request\r\n // Server uses first long polling request to finish initializing connection and it returns without data\r\n const pollUrl = `${url}&_=${Date.now()}`;\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) polling: ${pollUrl}.`);\r\n const response = await this._httpClient.get(pollUrl, pollOptions);\r\n if (response.statusCode !== 200) {\r\n this._logger.log(LogLevel.Error, `(LongPolling transport) Unexpected response code: ${response.statusCode}.`);\r\n // Mark running as false so that the poll immediately ends and runs the close logic\r\n this._closeError = new HttpError(response.statusText || \"\", response.statusCode);\r\n this._running = false;\r\n }\r\n else {\r\n this._running = true;\r\n }\r\n this._receiving = this._poll(this._url, pollOptions);\r\n }\r\n async _poll(url, pollOptions) {\r\n try {\r\n while (this._running) {\r\n try {\r\n const pollUrl = `${url}&_=${Date.now()}`;\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) polling: ${pollUrl}.`);\r\n const response = await this._httpClient.get(pollUrl, pollOptions);\r\n if (response.statusCode === 204) {\r\n this._logger.log(LogLevel.Information, \"(LongPolling transport) Poll terminated by server.\");\r\n this._running = false;\r\n }\r\n else if (response.statusCode !== 200) {\r\n this._logger.log(LogLevel.Error, `(LongPolling transport) Unexpected response code: ${response.statusCode}.`);\r\n // Unexpected status code\r\n this._closeError = new HttpError(response.statusText || \"\", response.statusCode);\r\n this._running = false;\r\n }\r\n else {\r\n // Process the response\r\n if (response.content) {\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) data received. ${getDataDetail(response.content, this._options.logMessageContent)}.`);\r\n if (this.onreceive) {\r\n this.onreceive(response.content);\r\n }\r\n }\r\n else {\r\n // This is another way timeout manifest.\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Poll timed out, reissuing.\");\r\n }\r\n }\r\n }\r\n catch (e) {\r\n if (!this._running) {\r\n // Log but disregard errors that occur after stopping\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) Poll errored after shutdown: ${e.message}`);\r\n }\r\n else {\r\n if (e instanceof TimeoutError) {\r\n // Ignore timeouts and reissue the poll.\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Poll timed out, reissuing.\");\r\n }\r\n else {\r\n // Close the connection with the error as the result.\r\n this._closeError = e;\r\n this._running = false;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n finally {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Polling complete.\");\r\n // We will reach here with pollAborted==false when the server returned a response causing the transport to stop.\r\n // If pollAborted==true then client initiated the stop and the stop method will raise the close event after DELETE is sent.\r\n if (!this.pollAborted) {\r\n this._raiseOnClose();\r\n }\r\n }\r\n }\r\n async send(data) {\r\n if (!this._running) {\r\n return Promise.reject(new Error(\"Cannot send until the transport is connected\"));\r\n }\r\n return sendMessage(this._logger, \"LongPolling\", this._httpClient, this._url, data, this._options);\r\n }\r\n async stop() {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Stopping polling.\");\r\n // Tell receiving loop to stop, abort any current request, and then wait for it to finish\r\n this._running = false;\r\n this._pollAbort.abort();\r\n try {\r\n await this._receiving;\r\n // Send DELETE to clean up long polling on the server\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) sending DELETE request to ${this._url}.`);\r\n const headers = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n const deleteOptions = {\r\n headers: { ...headers, ...this._options.headers },\r\n timeout: this._options.timeout,\r\n withCredentials: this._options.withCredentials,\r\n };\r\n let error;\r\n try {\r\n await this._httpClient.delete(this._url, deleteOptions);\r\n }\r\n catch (err) {\r\n error = err;\r\n }\r\n if (error) {\r\n if (error instanceof HttpError) {\r\n if (error.statusCode === 404) {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) A 404 response was returned from sending a DELETE request.\");\r\n }\r\n else {\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) Error sending a DELETE request: ${error}`);\r\n }\r\n }\r\n }\r\n else {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) DELETE request accepted.\");\r\n }\r\n }\r\n finally {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Stop finished.\");\r\n // Raise close event here instead of in polling\r\n // It needs to happen after the DELETE request is sent\r\n this._raiseOnClose();\r\n }\r\n }\r\n _raiseOnClose() {\r\n if (this.onclose) {\r\n let logMessage = \"(LongPolling transport) Firing onclose event.\";\r\n if (this._closeError) {\r\n logMessage += \" Error: \" + this._closeError;\r\n }\r\n this._logger.log(LogLevel.Trace, logMessage);\r\n this.onclose(this._closeError);\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=LongPollingTransport.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, getUserAgentHeader, Platform, sendMessage } from \"./Utils\";\r\n/** @private */\r\nexport class ServerSentEventsTransport {\r\n constructor(httpClient, accessToken, logger, options) {\r\n this._httpClient = httpClient;\r\n this._accessToken = accessToken;\r\n this._logger = logger;\r\n this._options = options;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n async connect(url, transferFormat) {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this._logger.log(LogLevel.Trace, \"(SSE transport) Connecting.\");\r\n // set url before accessTokenFactory because this._url is only for send and we set the auth header instead of the query string for send\r\n this._url = url;\r\n if (this._accessToken) {\r\n url += (url.indexOf(\"?\") < 0 ? \"?\" : \"&\") + `access_token=${encodeURIComponent(this._accessToken)}`;\r\n }\r\n return new Promise((resolve, reject) => {\r\n let opened = false;\r\n if (transferFormat !== TransferFormat.Text) {\r\n reject(new Error(\"The Server-Sent Events transport only supports the 'Text' transfer format\"));\r\n return;\r\n }\r\n let eventSource;\r\n if (Platform.isBrowser || Platform.isWebWorker) {\r\n eventSource = new this._options.EventSource(url, { withCredentials: this._options.withCredentials });\r\n }\r\n else {\r\n // Non-browser passes cookies via the dictionary\r\n const cookies = this._httpClient.getCookieString(url);\r\n const headers = {};\r\n headers.Cookie = cookies;\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n eventSource = new this._options.EventSource(url, { withCredentials: this._options.withCredentials, headers: { ...headers, ...this._options.headers } });\r\n }\r\n try {\r\n eventSource.onmessage = (e) => {\r\n if (this.onreceive) {\r\n try {\r\n this._logger.log(LogLevel.Trace, `(SSE transport) data received. ${getDataDetail(e.data, this._options.logMessageContent)}.`);\r\n this.onreceive(e.data);\r\n }\r\n catch (error) {\r\n this._close(error);\r\n return;\r\n }\r\n }\r\n };\r\n // @ts-ignore: not using event on purpose\r\n eventSource.onerror = (e) => {\r\n // EventSource doesn't give any useful information about server side closes.\r\n if (opened) {\r\n this._close();\r\n }\r\n else {\r\n reject(new Error(\"EventSource failed to connect. The connection could not be found on the server,\"\r\n + \" either the connection ID is not present on the server, or a proxy is refusing/buffering the connection.\"\r\n + \" If you have multiple servers check that sticky sessions are enabled.\"));\r\n }\r\n };\r\n eventSource.onopen = () => {\r\n this._logger.log(LogLevel.Information, `SSE connected to ${this._url}`);\r\n this._eventSource = eventSource;\r\n opened = true;\r\n resolve();\r\n };\r\n }\r\n catch (e) {\r\n reject(e);\r\n return;\r\n }\r\n });\r\n }\r\n async send(data) {\r\n if (!this._eventSource) {\r\n return Promise.reject(new Error(\"Cannot send until the transport is connected\"));\r\n }\r\n return sendMessage(this._logger, \"SSE\", this._httpClient, this._url, data, this._options);\r\n }\r\n stop() {\r\n this._close();\r\n return Promise.resolve();\r\n }\r\n _close(e) {\r\n if (this._eventSource) {\r\n this._eventSource.close();\r\n this._eventSource = undefined;\r\n if (this.onclose) {\r\n this.onclose(e);\r\n }\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=ServerSentEventsTransport.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { HeaderNames } from \"./HeaderNames\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, getUserAgentHeader, Platform } from \"./Utils\";\r\n/** @private */\r\nexport class WebSocketTransport {\r\n constructor(httpClient, accessTokenFactory, logger, logMessageContent, webSocketConstructor, headers) {\r\n this._logger = logger;\r\n this._accessTokenFactory = accessTokenFactory;\r\n this._logMessageContent = logMessageContent;\r\n this._webSocketConstructor = webSocketConstructor;\r\n this._httpClient = httpClient;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n this._headers = headers;\r\n }\r\n async connect(url, transferFormat) {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this._logger.log(LogLevel.Trace, \"(WebSockets transport) Connecting.\");\r\n let token;\r\n if (this._accessTokenFactory) {\r\n token = await this._accessTokenFactory();\r\n }\r\n return new Promise((resolve, reject) => {\r\n url = url.replace(/^http/, \"ws\");\r\n let webSocket;\r\n const cookies = this._httpClient.getCookieString(url);\r\n let opened = false;\r\n if (Platform.isNode || Platform.isReactNative) {\r\n const headers = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n if (token) {\r\n headers[HeaderNames.Authorization] = `Bearer ${token}`;\r\n }\r\n if (cookies) {\r\n headers[HeaderNames.Cookie] = cookies;\r\n }\r\n // Only pass headers when in non-browser environments\r\n webSocket = new this._webSocketConstructor(url, undefined, {\r\n headers: { ...headers, ...this._headers },\r\n });\r\n }\r\n else {\r\n if (token) {\r\n url += (url.indexOf(\"?\") < 0 ? \"?\" : \"&\") + `access_token=${encodeURIComponent(token)}`;\r\n }\r\n }\r\n if (!webSocket) {\r\n // Chrome is not happy with passing 'undefined' as protocol\r\n webSocket = new this._webSocketConstructor(url);\r\n }\r\n if (transferFormat === TransferFormat.Binary) {\r\n webSocket.binaryType = \"arraybuffer\";\r\n }\r\n webSocket.onopen = (_event) => {\r\n this._logger.log(LogLevel.Information, `WebSocket connected to ${url}.`);\r\n this._webSocket = webSocket;\r\n opened = true;\r\n resolve();\r\n };\r\n webSocket.onerror = (event) => {\r\n let error = null;\r\n // ErrorEvent is a browser only type we need to check if the type exists before using it\r\n if (typeof ErrorEvent !== \"undefined\" && event instanceof ErrorEvent) {\r\n error = event.error;\r\n }\r\n else {\r\n error = \"There was an error with the transport\";\r\n }\r\n this._logger.log(LogLevel.Information, `(WebSockets transport) ${error}.`);\r\n };\r\n webSocket.onmessage = (message) => {\r\n this._logger.log(LogLevel.Trace, `(WebSockets transport) data received. ${getDataDetail(message.data, this._logMessageContent)}.`);\r\n if (this.onreceive) {\r\n try {\r\n this.onreceive(message.data);\r\n }\r\n catch (error) {\r\n this._close(error);\r\n return;\r\n }\r\n }\r\n };\r\n webSocket.onclose = (event) => {\r\n // Don't call close handler if connection was never established\r\n // We'll reject the connect call instead\r\n if (opened) {\r\n this._close(event);\r\n }\r\n else {\r\n let error = null;\r\n // ErrorEvent is a browser only type we need to check if the type exists before using it\r\n if (typeof ErrorEvent !== \"undefined\" && event instanceof ErrorEvent) {\r\n error = event.error;\r\n }\r\n else {\r\n error = \"WebSocket failed to connect. The connection could not be found on the server,\"\r\n + \" either the endpoint may not be a SignalR endpoint,\"\r\n + \" the connection ID is not present on the server, or there is a proxy blocking WebSockets.\"\r\n + \" If you have multiple servers check that sticky sessions are enabled.\";\r\n }\r\n reject(new Error(error));\r\n }\r\n };\r\n });\r\n }\r\n send(data) {\r\n if (this._webSocket && this._webSocket.readyState === this._webSocketConstructor.OPEN) {\r\n this._logger.log(LogLevel.Trace, `(WebSockets transport) sending data. ${getDataDetail(data, this._logMessageContent)}.`);\r\n this._webSocket.send(data);\r\n return Promise.resolve();\r\n }\r\n return Promise.reject(\"WebSocket is not in the OPEN state\");\r\n }\r\n stop() {\r\n if (this._webSocket) {\r\n // Manually invoke onclose callback inline so we know the HttpConnection was closed properly before returning\r\n // This also solves an issue where websocket.onclose could take 18+ seconds to trigger during network disconnects\r\n this._close(undefined);\r\n }\r\n return Promise.resolve();\r\n }\r\n _close(event) {\r\n // webSocket will be null if the transport did not start successfully\r\n if (this._webSocket) {\r\n // Clear websocket handlers because we are considering the socket closed now\r\n this._webSocket.onclose = () => { };\r\n this._webSocket.onmessage = () => { };\r\n this._webSocket.onerror = () => { };\r\n this._webSocket.close();\r\n this._webSocket = undefined;\r\n }\r\n this._logger.log(LogLevel.Trace, \"(WebSockets transport) socket closed.\");\r\n if (this.onclose) {\r\n if (this._isCloseEvent(event) && (event.wasClean === false || event.code !== 1000)) {\r\n this.onclose(new Error(`WebSocket closed with status code: ${event.code} (${event.reason || \"no reason given\"}).`));\r\n }\r\n else if (event instanceof Error) {\r\n this.onclose(event);\r\n }\r\n else {\r\n this.onclose();\r\n }\r\n }\r\n }\r\n _isCloseEvent(event) {\r\n return event && typeof event.wasClean === \"boolean\" && typeof event.code === \"number\";\r\n }\r\n}\r\n//# sourceMappingURL=WebSocketTransport.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { AccessTokenHttpClient } from \"./AccessTokenHttpClient\";\r\nimport { DefaultHttpClient } from \"./DefaultHttpClient\";\r\nimport { getEventSource, getWS } from \"./DynamicImports\";\r\nimport { AggregateErrors, DisabledTransportError, FailedToNegotiateWithServerError, FailedToStartTransportError, HttpError, UnsupportedTransportError, AbortError } from \"./Errors\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { HttpTransportType, TransferFormat } from \"./ITransport\";\r\nimport { LongPollingTransport } from \"./LongPollingTransport\";\r\nimport { ServerSentEventsTransport } from \"./ServerSentEventsTransport\";\r\nimport { Arg, createLogger, getUserAgentHeader, Platform } from \"./Utils\";\r\nimport { WebSocketTransport } from \"./WebSocketTransport\";\r\nconst MAX_REDIRECTS = 100;\r\n/** @private */\r\nexport class HttpConnection {\r\n constructor(url, options = {}) {\r\n this._stopPromiseResolver = () => { };\r\n this.features = {};\r\n this._negotiateVersion = 1;\r\n Arg.isRequired(url, \"url\");\r\n this._logger = createLogger(options.logger);\r\n this.baseUrl = this._resolveUrl(url);\r\n options = options || {};\r\n options.logMessageContent = options.logMessageContent === undefined ? false : options.logMessageContent;\r\n if (typeof options.withCredentials === \"boolean\" || options.withCredentials === undefined) {\r\n options.withCredentials = options.withCredentials === undefined ? true : options.withCredentials;\r\n }\r\n else {\r\n throw new Error(\"withCredentials option was not a 'boolean' or 'undefined' value\");\r\n }\r\n options.timeout = options.timeout === undefined ? 100 * 1000 : options.timeout;\r\n let webSocketModule = null;\r\n let eventSourceModule = null;\r\n if (Platform.isNode && typeof require !== \"undefined\") {\r\n webSocketModule = getWS();\r\n eventSourceModule = getEventSource();\r\n }\r\n if (!Platform.isNode && typeof WebSocket !== \"undefined\" && !options.WebSocket) {\r\n options.WebSocket = WebSocket;\r\n }\r\n else if (Platform.isNode && !options.WebSocket) {\r\n if (webSocketModule) {\r\n options.WebSocket = webSocketModule;\r\n }\r\n }\r\n if (!Platform.isNode && typeof EventSource !== \"undefined\" && !options.EventSource) {\r\n options.EventSource = EventSource;\r\n }\r\n else if (Platform.isNode && !options.EventSource) {\r\n if (typeof eventSourceModule !== \"undefined\") {\r\n options.EventSource = eventSourceModule;\r\n }\r\n }\r\n this._httpClient = new AccessTokenHttpClient(options.httpClient || new DefaultHttpClient(this._logger), options.accessTokenFactory);\r\n this._connectionState = \"Disconnected\" /* ConnectionState.Disconnected */;\r\n this._connectionStarted = false;\r\n this._options = options;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n async start(transferFormat) {\r\n transferFormat = transferFormat || TransferFormat.Binary;\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this._logger.log(LogLevel.Debug, `Starting connection with transfer format '${TransferFormat[transferFormat]}'.`);\r\n if (this._connectionState !== \"Disconnected\" /* ConnectionState.Disconnected */) {\r\n return Promise.reject(new Error(\"Cannot start an HttpConnection that is not in the 'Disconnected' state.\"));\r\n }\r\n this._connectionState = \"Connecting\" /* ConnectionState.Connecting */;\r\n this._startInternalPromise = this._startInternal(transferFormat);\r\n await this._startInternalPromise;\r\n // The TypeScript compiler thinks that connectionState must be Connecting here. The TypeScript compiler is wrong.\r\n if (this._connectionState === \"Disconnecting\" /* ConnectionState.Disconnecting */) {\r\n // stop() was called and transitioned the client into the Disconnecting state.\r\n const message = \"Failed to start the HttpConnection before stop() was called.\";\r\n this._logger.log(LogLevel.Error, message);\r\n // We cannot await stopPromise inside startInternal since stopInternal awaits the startInternalPromise.\r\n await this._stopPromise;\r\n return Promise.reject(new AbortError(message));\r\n }\r\n else if (this._connectionState !== \"Connected\" /* ConnectionState.Connected */) {\r\n // stop() was called and transitioned the client into the Disconnecting state.\r\n const message = \"HttpConnection.startInternal completed gracefully but didn't enter the connection into the connected state!\";\r\n this._logger.log(LogLevel.Error, message);\r\n return Promise.reject(new AbortError(message));\r\n }\r\n this._connectionStarted = true;\r\n }\r\n send(data) {\r\n if (this._connectionState !== \"Connected\" /* ConnectionState.Connected */) {\r\n return Promise.reject(new Error(\"Cannot send data if the connection is not in the 'Connected' State.\"));\r\n }\r\n if (!this._sendQueue) {\r\n this._sendQueue = new TransportSendQueue(this.transport);\r\n }\r\n // Transport will not be null if state is connected\r\n return this._sendQueue.send(data);\r\n }\r\n async stop(error) {\r\n if (this._connectionState === \"Disconnected\" /* ConnectionState.Disconnected */) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stop(${error}) ignored because the connection is already in the disconnected state.`);\r\n return Promise.resolve();\r\n }\r\n if (this._connectionState === \"Disconnecting\" /* ConnectionState.Disconnecting */) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stop(${error}) ignored because the connection is already in the disconnecting state.`);\r\n return this._stopPromise;\r\n }\r\n this._connectionState = \"Disconnecting\" /* ConnectionState.Disconnecting */;\r\n this._stopPromise = new Promise((resolve) => {\r\n // Don't complete stop() until stopConnection() completes.\r\n this._stopPromiseResolver = resolve;\r\n });\r\n // stopInternal should never throw so just observe it.\r\n await this._stopInternal(error);\r\n await this._stopPromise;\r\n }\r\n async _stopInternal(error) {\r\n // Set error as soon as possible otherwise there is a race between\r\n // the transport closing and providing an error and the error from a close message\r\n // We would prefer the close message error.\r\n this._stopError = error;\r\n try {\r\n await this._startInternalPromise;\r\n }\r\n catch (e) {\r\n // This exception is returned to the user as a rejected Promise from the start method.\r\n }\r\n // The transport's onclose will trigger stopConnection which will run our onclose event.\r\n // The transport should always be set if currently connected. If it wasn't set, it's likely because\r\n // stop was called during start() and start() failed.\r\n if (this.transport) {\r\n try {\r\n await this.transport.stop();\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `HttpConnection.transport.stop() threw error '${e}'.`);\r\n this._stopConnection();\r\n }\r\n this.transport = undefined;\r\n }\r\n else {\r\n this._logger.log(LogLevel.Debug, \"HttpConnection.transport is undefined in HttpConnection.stop() because start() failed.\");\r\n }\r\n }\r\n async _startInternal(transferFormat) {\r\n // Store the original base url and the access token factory since they may change\r\n // as part of negotiating\r\n let url = this.baseUrl;\r\n this._accessTokenFactory = this._options.accessTokenFactory;\r\n this._httpClient._accessTokenFactory = this._accessTokenFactory;\r\n try {\r\n if (this._options.skipNegotiation) {\r\n if (this._options.transport === HttpTransportType.WebSockets) {\r\n // No need to add a connection ID in this case\r\n this.transport = this._constructTransport(HttpTransportType.WebSockets);\r\n // We should just call connect directly in this case.\r\n // No fallback or negotiate in this case.\r\n await this._startTransport(url, transferFormat);\r\n }\r\n else {\r\n throw new Error(\"Negotiation can only be skipped when using the WebSocket transport directly.\");\r\n }\r\n }\r\n else {\r\n let negotiateResponse = null;\r\n let redirects = 0;\r\n do {\r\n negotiateResponse = await this._getNegotiationResponse(url);\r\n // the user tries to stop the connection when it is being started\r\n if (this._connectionState === \"Disconnecting\" /* ConnectionState.Disconnecting */ || this._connectionState === \"Disconnected\" /* ConnectionState.Disconnected */) {\r\n throw new AbortError(\"The connection was stopped during negotiation.\");\r\n }\r\n if (negotiateResponse.error) {\r\n throw new Error(negotiateResponse.error);\r\n }\r\n if (negotiateResponse.ProtocolVersion) {\r\n throw new Error(\"Detected a connection attempt to an ASP.NET SignalR Server. This client only supports connecting to an ASP.NET Core SignalR Server. See https://aka.ms/signalr-core-differences for details.\");\r\n }\r\n if (negotiateResponse.url) {\r\n url = negotiateResponse.url;\r\n }\r\n if (negotiateResponse.accessToken) {\r\n // Replace the current access token factory with one that uses\r\n // the returned access token\r\n const accessToken = negotiateResponse.accessToken;\r\n this._accessTokenFactory = () => accessToken;\r\n // set the factory to undefined so the AccessTokenHttpClient won't retry with the same token, since we know it won't change until a connection restart\r\n this._httpClient._accessToken = accessToken;\r\n this._httpClient._accessTokenFactory = undefined;\r\n }\r\n redirects++;\r\n } while (negotiateResponse.url && redirects < MAX_REDIRECTS);\r\n if (redirects === MAX_REDIRECTS && negotiateResponse.url) {\r\n throw new Error(\"Negotiate redirection limit exceeded.\");\r\n }\r\n await this._createTransport(url, this._options.transport, negotiateResponse, transferFormat);\r\n }\r\n if (this.transport instanceof LongPollingTransport) {\r\n this.features.inherentKeepAlive = true;\r\n }\r\n if (this._connectionState === \"Connecting\" /* ConnectionState.Connecting */) {\r\n // Ensure the connection transitions to the connected state prior to completing this.startInternalPromise.\r\n // start() will handle the case when stop was called and startInternal exits still in the disconnecting state.\r\n this._logger.log(LogLevel.Debug, \"The HttpConnection connected successfully.\");\r\n this._connectionState = \"Connected\" /* ConnectionState.Connected */;\r\n }\r\n // stop() is waiting on us via this.startInternalPromise so keep this.transport around so it can clean up.\r\n // This is the only case startInternal can exit in neither the connected nor disconnected state because stopConnection()\r\n // will transition to the disconnected state. start() will wait for the transition using the stopPromise.\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, \"Failed to start the connection: \" + e);\r\n this._connectionState = \"Disconnected\" /* ConnectionState.Disconnected */;\r\n this.transport = undefined;\r\n // if start fails, any active calls to stop assume that start will complete the stop promise\r\n this._stopPromiseResolver();\r\n return Promise.reject(e);\r\n }\r\n }\r\n async _getNegotiationResponse(url) {\r\n const headers = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n const negotiateUrl = this._resolveNegotiateUrl(url);\r\n this._logger.log(LogLevel.Debug, `Sending negotiation request: ${negotiateUrl}.`);\r\n try {\r\n const response = await this._httpClient.post(negotiateUrl, {\r\n content: \"\",\r\n headers: { ...headers, ...this._options.headers },\r\n timeout: this._options.timeout,\r\n withCredentials: this._options.withCredentials,\r\n });\r\n if (response.statusCode !== 200) {\r\n return Promise.reject(new Error(`Unexpected status code returned from negotiate '${response.statusCode}'`));\r\n }\r\n const negotiateResponse = JSON.parse(response.content);\r\n if (!negotiateResponse.negotiateVersion || negotiateResponse.negotiateVersion < 1) {\r\n // Negotiate version 0 doesn't use connectionToken\r\n // So we set it equal to connectionId so all our logic can use connectionToken without being aware of the negotiate version\r\n negotiateResponse.connectionToken = negotiateResponse.connectionId;\r\n }\r\n if (negotiateResponse.useStatefulReconnect && this._options._useStatefulReconnect !== true) {\r\n return Promise.reject(new FailedToNegotiateWithServerError(\"Client didn't negotiate Stateful Reconnect but the server did.\"));\r\n }\r\n return negotiateResponse;\r\n }\r\n catch (e) {\r\n let errorMessage = \"Failed to complete negotiation with the server: \" + e;\r\n if (e instanceof HttpError) {\r\n if (e.statusCode === 404) {\r\n errorMessage = errorMessage + \" Either this is not a SignalR endpoint or there is a proxy blocking the connection.\";\r\n }\r\n }\r\n this._logger.log(LogLevel.Error, errorMessage);\r\n return Promise.reject(new FailedToNegotiateWithServerError(errorMessage));\r\n }\r\n }\r\n _createConnectUrl(url, connectionToken) {\r\n if (!connectionToken) {\r\n return url;\r\n }\r\n return url + (url.indexOf(\"?\") === -1 ? \"?\" : \"&\") + `id=${connectionToken}`;\r\n }\r\n async _createTransport(url, requestedTransport, negotiateResponse, requestedTransferFormat) {\r\n let connectUrl = this._createConnectUrl(url, negotiateResponse.connectionToken);\r\n if (this._isITransport(requestedTransport)) {\r\n this._logger.log(LogLevel.Debug, \"Connection was provided an instance of ITransport, using that directly.\");\r\n this.transport = requestedTransport;\r\n await this._startTransport(connectUrl, requestedTransferFormat);\r\n this.connectionId = negotiateResponse.connectionId;\r\n return;\r\n }\r\n const transportExceptions = [];\r\n const transports = negotiateResponse.availableTransports || [];\r\n let negotiate = negotiateResponse;\r\n for (const endpoint of transports) {\r\n const transportOrError = this._resolveTransportOrError(endpoint, requestedTransport, requestedTransferFormat, (negotiate === null || negotiate === void 0 ? void 0 : negotiate.useStatefulReconnect) === true);\r\n if (transportOrError instanceof Error) {\r\n // Store the error and continue, we don't want to cause a re-negotiate in these cases\r\n transportExceptions.push(`${endpoint.transport} failed:`);\r\n transportExceptions.push(transportOrError);\r\n }\r\n else if (this._isITransport(transportOrError)) {\r\n this.transport = transportOrError;\r\n if (!negotiate) {\r\n try {\r\n negotiate = await this._getNegotiationResponse(url);\r\n }\r\n catch (ex) {\r\n return Promise.reject(ex);\r\n }\r\n connectUrl = this._createConnectUrl(url, negotiate.connectionToken);\r\n }\r\n try {\r\n await this._startTransport(connectUrl, requestedTransferFormat);\r\n this.connectionId = negotiate.connectionId;\r\n return;\r\n }\r\n catch (ex) {\r\n this._logger.log(LogLevel.Error, `Failed to start the transport '${endpoint.transport}': ${ex}`);\r\n negotiate = undefined;\r\n transportExceptions.push(new FailedToStartTransportError(`${endpoint.transport} failed: ${ex}`, HttpTransportType[endpoint.transport]));\r\n if (this._connectionState !== \"Connecting\" /* ConnectionState.Connecting */) {\r\n const message = \"Failed to select transport before stop() was called.\";\r\n this._logger.log(LogLevel.Debug, message);\r\n return Promise.reject(new AbortError(message));\r\n }\r\n }\r\n }\r\n }\r\n if (transportExceptions.length > 0) {\r\n return Promise.reject(new AggregateErrors(`Unable to connect to the server with any of the available transports. ${transportExceptions.join(\" \")}`, transportExceptions));\r\n }\r\n return Promise.reject(new Error(\"None of the transports supported by the client are supported by the server.\"));\r\n }\r\n _constructTransport(transport) {\r\n switch (transport) {\r\n case HttpTransportType.WebSockets:\r\n if (!this._options.WebSocket) {\r\n throw new Error(\"'WebSocket' is not supported in your environment.\");\r\n }\r\n return new WebSocketTransport(this._httpClient, this._accessTokenFactory, this._logger, this._options.logMessageContent, this._options.WebSocket, this._options.headers || {});\r\n case HttpTransportType.ServerSentEvents:\r\n if (!this._options.EventSource) {\r\n throw new Error(\"'EventSource' is not supported in your environment.\");\r\n }\r\n return new ServerSentEventsTransport(this._httpClient, this._httpClient._accessToken, this._logger, this._options);\r\n case HttpTransportType.LongPolling:\r\n return new LongPollingTransport(this._httpClient, this._logger, this._options);\r\n default:\r\n throw new Error(`Unknown transport: ${transport}.`);\r\n }\r\n }\r\n _startTransport(url, transferFormat) {\r\n this.transport.onreceive = this.onreceive;\r\n if (this.features.reconnect) {\r\n this.transport.onclose = async (e) => {\r\n let callStop = false;\r\n if (this.features.reconnect) {\r\n try {\r\n this.features.disconnected();\r\n await this.transport.connect(url, transferFormat);\r\n await this.features.resend();\r\n }\r\n catch {\r\n callStop = true;\r\n }\r\n }\r\n else {\r\n this._stopConnection(e);\r\n return;\r\n }\r\n if (callStop) {\r\n this._stopConnection(e);\r\n }\r\n };\r\n }\r\n else {\r\n this.transport.onclose = (e) => this._stopConnection(e);\r\n }\r\n return this.transport.connect(url, transferFormat);\r\n }\r\n _resolveTransportOrError(endpoint, requestedTransport, requestedTransferFormat, useStatefulReconnect) {\r\n const transport = HttpTransportType[endpoint.transport];\r\n if (transport === null || transport === undefined) {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${endpoint.transport}' because it is not supported by this client.`);\r\n return new Error(`Skipping transport '${endpoint.transport}' because it is not supported by this client.`);\r\n }\r\n else {\r\n if (transportMatches(requestedTransport, transport)) {\r\n const transferFormats = endpoint.transferFormats.map((s) => TransferFormat[s]);\r\n if (transferFormats.indexOf(requestedTransferFormat) >= 0) {\r\n if ((transport === HttpTransportType.WebSockets && !this._options.WebSocket) ||\r\n (transport === HttpTransportType.ServerSentEvents && !this._options.EventSource)) {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${HttpTransportType[transport]}' because it is not supported in your environment.'`);\r\n return new UnsupportedTransportError(`'${HttpTransportType[transport]}' is not supported in your environment.`, transport);\r\n }\r\n else {\r\n this._logger.log(LogLevel.Debug, `Selecting transport '${HttpTransportType[transport]}'.`);\r\n try {\r\n this.features.reconnect = transport === HttpTransportType.WebSockets ? useStatefulReconnect : undefined;\r\n return this._constructTransport(transport);\r\n }\r\n catch (ex) {\r\n return ex;\r\n }\r\n }\r\n }\r\n else {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${HttpTransportType[transport]}' because it does not support the requested transfer format '${TransferFormat[requestedTransferFormat]}'.`);\r\n return new Error(`'${HttpTransportType[transport]}' does not support ${TransferFormat[requestedTransferFormat]}.`);\r\n }\r\n }\r\n else {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${HttpTransportType[transport]}' because it was disabled by the client.`);\r\n return new DisabledTransportError(`'${HttpTransportType[transport]}' is disabled by the client.`, transport);\r\n }\r\n }\r\n }\r\n _isITransport(transport) {\r\n return transport && typeof (transport) === \"object\" && \"connect\" in transport;\r\n }\r\n _stopConnection(error) {\r\n this._logger.log(LogLevel.Debug, `HttpConnection.stopConnection(${error}) called while in state ${this._connectionState}.`);\r\n this.transport = undefined;\r\n // If we have a stopError, it takes precedence over the error from the transport\r\n error = this._stopError || error;\r\n this._stopError = undefined;\r\n if (this._connectionState === \"Disconnected\" /* ConnectionState.Disconnected */) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stopConnection(${error}) was ignored because the connection is already in the disconnected state.`);\r\n return;\r\n }\r\n if (this._connectionState === \"Connecting\" /* ConnectionState.Connecting */) {\r\n this._logger.log(LogLevel.Warning, `Call to HttpConnection.stopConnection(${error}) was ignored because the connection is still in the connecting state.`);\r\n throw new Error(`HttpConnection.stopConnection(${error}) was called while the connection is still in the connecting state.`);\r\n }\r\n if (this._connectionState === \"Disconnecting\" /* ConnectionState.Disconnecting */) {\r\n // A call to stop() induced this call to stopConnection and needs to be completed.\r\n // Any stop() awaiters will be scheduled to continue after the onclose callback fires.\r\n this._stopPromiseResolver();\r\n }\r\n if (error) {\r\n this._logger.log(LogLevel.Error, `Connection disconnected with error '${error}'.`);\r\n }\r\n else {\r\n this._logger.log(LogLevel.Information, \"Connection disconnected.\");\r\n }\r\n if (this._sendQueue) {\r\n this._sendQueue.stop().catch((e) => {\r\n this._logger.log(LogLevel.Error, `TransportSendQueue.stop() threw error '${e}'.`);\r\n });\r\n this._sendQueue = undefined;\r\n }\r\n this.connectionId = undefined;\r\n this._connectionState = \"Disconnected\" /* ConnectionState.Disconnected */;\r\n if (this._connectionStarted) {\r\n this._connectionStarted = false;\r\n try {\r\n if (this.onclose) {\r\n this.onclose(error);\r\n }\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `HttpConnection.onclose(${error}) threw error '${e}'.`);\r\n }\r\n }\r\n }\r\n _resolveUrl(url) {\r\n // startsWith is not supported in IE\r\n if (url.lastIndexOf(\"https://\", 0) === 0 || url.lastIndexOf(\"http://\", 0) === 0) {\r\n return url;\r\n }\r\n if (!Platform.isBrowser) {\r\n throw new Error(`Cannot resolve '${url}'.`);\r\n }\r\n // Setting the url to the href propery of an anchor tag handles normalization\r\n // for us. There are 3 main cases.\r\n // 1. Relative path normalization e.g \"b\" -> \"http://localhost:5000/a/b\"\r\n // 2. Absolute path normalization e.g \"/a/b\" -> \"http://localhost:5000/a/b\"\r\n // 3. Networkpath reference normalization e.g \"//localhost:5000/a/b\" -> \"http://localhost:5000/a/b\"\r\n const aTag = window.document.createElement(\"a\");\r\n aTag.href = url;\r\n this._logger.log(LogLevel.Information, `Normalizing '${url}' to '${aTag.href}'.`);\r\n return aTag.href;\r\n }\r\n _resolveNegotiateUrl(url) {\r\n const negotiateUrl = new URL(url);\r\n if (negotiateUrl.pathname.endsWith('/')) {\r\n negotiateUrl.pathname += \"negotiate\";\r\n }\r\n else {\r\n negotiateUrl.pathname += \"/negotiate\";\r\n }\r\n const searchParams = new URLSearchParams(negotiateUrl.searchParams);\r\n if (!searchParams.has(\"negotiateVersion\")) {\r\n searchParams.append(\"negotiateVersion\", this._negotiateVersion.toString());\r\n }\r\n if (searchParams.has(\"useStatefulReconnect\")) {\r\n if (searchParams.get(\"useStatefulReconnect\") === \"true\") {\r\n this._options._useStatefulReconnect = true;\r\n }\r\n }\r\n else if (this._options._useStatefulReconnect === true) {\r\n searchParams.append(\"useStatefulReconnect\", \"true\");\r\n }\r\n negotiateUrl.search = searchParams.toString();\r\n return negotiateUrl.toString();\r\n }\r\n}\r\nfunction transportMatches(requestedTransport, actualTransport) {\r\n return !requestedTransport || ((actualTransport & requestedTransport) !== 0);\r\n}\r\n/** @private */\r\nexport class TransportSendQueue {\r\n constructor(_transport) {\r\n this._transport = _transport;\r\n this._buffer = [];\r\n this._executing = true;\r\n this._sendBufferedData = new PromiseSource();\r\n this._transportResult = new PromiseSource();\r\n this._sendLoopPromise = this._sendLoop();\r\n }\r\n send(data) {\r\n this._bufferData(data);\r\n if (!this._transportResult) {\r\n this._transportResult = new PromiseSource();\r\n }\r\n return this._transportResult.promise;\r\n }\r\n stop() {\r\n this._executing = false;\r\n this._sendBufferedData.resolve();\r\n return this._sendLoopPromise;\r\n }\r\n _bufferData(data) {\r\n if (this._buffer.length && typeof (this._buffer[0]) !== typeof (data)) {\r\n throw new Error(`Expected data to be of type ${typeof (this._buffer)} but was of type ${typeof (data)}`);\r\n }\r\n this._buffer.push(data);\r\n this._sendBufferedData.resolve();\r\n }\r\n async _sendLoop() {\r\n while (true) {\r\n await this._sendBufferedData.promise;\r\n if (!this._executing) {\r\n if (this._transportResult) {\r\n this._transportResult.reject(\"Connection stopped.\");\r\n }\r\n break;\r\n }\r\n this._sendBufferedData = new PromiseSource();\r\n const transportResult = this._transportResult;\r\n this._transportResult = undefined;\r\n const data = typeof (this._buffer[0]) === \"string\" ?\r\n this._buffer.join(\"\") :\r\n TransportSendQueue._concatBuffers(this._buffer);\r\n this._buffer.length = 0;\r\n try {\r\n await this._transport.send(data);\r\n transportResult.resolve();\r\n }\r\n catch (error) {\r\n transportResult.reject(error);\r\n }\r\n }\r\n }\r\n static _concatBuffers(arrayBuffers) {\r\n const totalLength = arrayBuffers.map((b) => b.byteLength).reduce((a, b) => a + b);\r\n const result = new Uint8Array(totalLength);\r\n let offset = 0;\r\n for (const item of arrayBuffers) {\r\n result.set(new Uint8Array(item), offset);\r\n offset += item.byteLength;\r\n }\r\n return result.buffer;\r\n }\r\n}\r\nclass PromiseSource {\r\n constructor() {\r\n this.promise = new Promise((resolve, reject) => [this._resolver, this._rejecter] = [resolve, reject]);\r\n }\r\n resolve() {\r\n this._resolver();\r\n }\r\n reject(reason) {\r\n this._rejecter(reason);\r\n }\r\n}\r\n//# sourceMappingURL=HttpConnection.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { MessageType } from \"./IHubProtocol\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { NullLogger } from \"./Loggers\";\r\nimport { TextMessageFormat } from \"./TextMessageFormat\";\r\nconst JSON_HUB_PROTOCOL_NAME = \"json\";\r\n/** Implements the JSON Hub Protocol. */\r\nexport class JsonHubProtocol {\r\n constructor() {\r\n /** @inheritDoc */\r\n this.name = JSON_HUB_PROTOCOL_NAME;\r\n /** @inheritDoc */\r\n this.version = 2;\r\n /** @inheritDoc */\r\n this.transferFormat = TransferFormat.Text;\r\n }\r\n /** Creates an array of {@link @microsoft/signalr.HubMessage} objects from the specified serialized representation.\r\n *\r\n * @param {string} input A string containing the serialized representation.\r\n * @param {ILogger} logger A logger that will be used to log messages that occur during parsing.\r\n */\r\n parseMessages(input, logger) {\r\n // The interface does allow \"ArrayBuffer\" to be passed in, but this implementation does not. So let's throw a useful error.\r\n if (typeof input !== \"string\") {\r\n throw new Error(\"Invalid input for JSON hub protocol. Expected a string.\");\r\n }\r\n if (!input) {\r\n return [];\r\n }\r\n if (logger === null) {\r\n logger = NullLogger.instance;\r\n }\r\n // Parse the messages\r\n const messages = TextMessageFormat.parse(input);\r\n const hubMessages = [];\r\n for (const message of messages) {\r\n const parsedMessage = JSON.parse(message);\r\n if (typeof parsedMessage.type !== \"number\") {\r\n throw new Error(\"Invalid payload.\");\r\n }\r\n switch (parsedMessage.type) {\r\n case MessageType.Invocation:\r\n this._isInvocationMessage(parsedMessage);\r\n break;\r\n case MessageType.StreamItem:\r\n this._isStreamItemMessage(parsedMessage);\r\n break;\r\n case MessageType.Completion:\r\n this._isCompletionMessage(parsedMessage);\r\n break;\r\n case MessageType.Ping:\r\n // Single value, no need to validate\r\n break;\r\n case MessageType.Close:\r\n // All optional values, no need to validate\r\n break;\r\n case MessageType.Ack:\r\n this._isAckMessage(parsedMessage);\r\n break;\r\n case MessageType.Sequence:\r\n this._isSequenceMessage(parsedMessage);\r\n break;\r\n default:\r\n // Future protocol changes can add message types, old clients can ignore them\r\n logger.log(LogLevel.Information, \"Unknown message type '\" + parsedMessage.type + \"' ignored.\");\r\n continue;\r\n }\r\n hubMessages.push(parsedMessage);\r\n }\r\n return hubMessages;\r\n }\r\n /** Writes the specified {@link @microsoft/signalr.HubMessage} to a string and returns it.\r\n *\r\n * @param {HubMessage} message The message to write.\r\n * @returns {string} A string containing the serialized representation of the message.\r\n */\r\n writeMessage(message) {\r\n return TextMessageFormat.write(JSON.stringify(message));\r\n }\r\n _isInvocationMessage(message) {\r\n this._assertNotEmptyString(message.target, \"Invalid payload for Invocation message.\");\r\n if (message.invocationId !== undefined) {\r\n this._assertNotEmptyString(message.invocationId, \"Invalid payload for Invocation message.\");\r\n }\r\n }\r\n _isStreamItemMessage(message) {\r\n this._assertNotEmptyString(message.invocationId, \"Invalid payload for StreamItem message.\");\r\n if (message.item === undefined) {\r\n throw new Error(\"Invalid payload for StreamItem message.\");\r\n }\r\n }\r\n _isCompletionMessage(message) {\r\n if (message.result && message.error) {\r\n throw new Error(\"Invalid payload for Completion message.\");\r\n }\r\n if (!message.result && message.error) {\r\n this._assertNotEmptyString(message.error, \"Invalid payload for Completion message.\");\r\n }\r\n this._assertNotEmptyString(message.invocationId, \"Invalid payload for Completion message.\");\r\n }\r\n _isAckMessage(message) {\r\n if (typeof message.sequenceId !== 'number') {\r\n throw new Error(\"Invalid SequenceId for Ack message.\");\r\n }\r\n }\r\n _isSequenceMessage(message) {\r\n if (typeof message.sequenceId !== 'number') {\r\n throw new Error(\"Invalid SequenceId for Sequence message.\");\r\n }\r\n }\r\n _assertNotEmptyString(value, errorMessage) {\r\n if (typeof value !== \"string\" || value === \"\") {\r\n throw new Error(errorMessage);\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=JsonHubProtocol.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { DefaultReconnectPolicy } from \"./DefaultReconnectPolicy\";\r\nimport { HttpConnection } from \"./HttpConnection\";\r\nimport { HubConnection } from \"./HubConnection\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { JsonHubProtocol } from \"./JsonHubProtocol\";\r\nimport { NullLogger } from \"./Loggers\";\r\nimport { Arg, ConsoleLogger } from \"./Utils\";\r\nconst LogLevelNameMapping = {\r\n trace: LogLevel.Trace,\r\n debug: LogLevel.Debug,\r\n info: LogLevel.Information,\r\n information: LogLevel.Information,\r\n warn: LogLevel.Warning,\r\n warning: LogLevel.Warning,\r\n error: LogLevel.Error,\r\n critical: LogLevel.Critical,\r\n none: LogLevel.None,\r\n};\r\nfunction parseLogLevel(name) {\r\n // Case-insensitive matching via lower-casing\r\n // Yes, I know case-folding is a complicated problem in Unicode, but we only support\r\n // the ASCII strings defined in LogLevelNameMapping anyway, so it's fine -anurse.\r\n const mapping = LogLevelNameMapping[name.toLowerCase()];\r\n if (typeof mapping !== \"undefined\") {\r\n return mapping;\r\n }\r\n else {\r\n throw new Error(`Unknown log level: ${name}`);\r\n }\r\n}\r\n/** A builder for configuring {@link @microsoft/signalr.HubConnection} instances. */\r\nexport class HubConnectionBuilder {\r\n configureLogging(logging) {\r\n Arg.isRequired(logging, \"logging\");\r\n if (isLogger(logging)) {\r\n this.logger = logging;\r\n }\r\n else if (typeof logging === \"string\") {\r\n const logLevel = parseLogLevel(logging);\r\n this.logger = new ConsoleLogger(logLevel);\r\n }\r\n else {\r\n this.logger = new ConsoleLogger(logging);\r\n }\r\n return this;\r\n }\r\n withUrl(url, transportTypeOrOptions) {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isNotEmpty(url, \"url\");\r\n this.url = url;\r\n // Flow-typing knows where it's at. Since HttpTransportType is a number and IHttpConnectionOptions is guaranteed\r\n // to be an object, we know (as does TypeScript) this comparison is all we need to figure out which overload was called.\r\n if (typeof transportTypeOrOptions === \"object\") {\r\n this.httpConnectionOptions = { ...this.httpConnectionOptions, ...transportTypeOrOptions };\r\n }\r\n else {\r\n this.httpConnectionOptions = {\r\n ...this.httpConnectionOptions,\r\n transport: transportTypeOrOptions,\r\n };\r\n }\r\n return this;\r\n }\r\n /** Configures the {@link @microsoft/signalr.HubConnection} to use the specified Hub Protocol.\r\n *\r\n * @param {IHubProtocol} protocol The {@link @microsoft/signalr.IHubProtocol} implementation to use.\r\n */\r\n withHubProtocol(protocol) {\r\n Arg.isRequired(protocol, \"protocol\");\r\n this.protocol = protocol;\r\n return this;\r\n }\r\n withAutomaticReconnect(retryDelaysOrReconnectPolicy) {\r\n if (this.reconnectPolicy) {\r\n throw new Error(\"A reconnectPolicy has already been set.\");\r\n }\r\n if (!retryDelaysOrReconnectPolicy) {\r\n this.reconnectPolicy = new DefaultReconnectPolicy();\r\n }\r\n else if (Array.isArray(retryDelaysOrReconnectPolicy)) {\r\n this.reconnectPolicy = new DefaultReconnectPolicy(retryDelaysOrReconnectPolicy);\r\n }\r\n else {\r\n this.reconnectPolicy = retryDelaysOrReconnectPolicy;\r\n }\r\n return this;\r\n }\r\n /** Configures {@link @microsoft/signalr.HubConnection.serverTimeoutInMilliseconds} for the {@link @microsoft/signalr.HubConnection}.\r\n *\r\n * @returns The {@link @microsoft/signalr.HubConnectionBuilder} instance, for chaining.\r\n */\r\n withServerTimeout(milliseconds) {\r\n Arg.isRequired(milliseconds, \"milliseconds\");\r\n this._serverTimeoutInMilliseconds = milliseconds;\r\n return this;\r\n }\r\n /** Configures {@link @microsoft/signalr.HubConnection.keepAliveIntervalInMilliseconds} for the {@link @microsoft/signalr.HubConnection}.\r\n *\r\n * @returns The {@link @microsoft/signalr.HubConnectionBuilder} instance, for chaining.\r\n */\r\n withKeepAliveInterval(milliseconds) {\r\n Arg.isRequired(milliseconds, \"milliseconds\");\r\n this._keepAliveIntervalInMilliseconds = milliseconds;\r\n return this;\r\n }\r\n /** Enables and configures options for the Stateful Reconnect feature.\r\n *\r\n * @returns The {@link @microsoft/signalr.HubConnectionBuilder} instance, for chaining.\r\n */\r\n withStatefulReconnect(options) {\r\n if (this.httpConnectionOptions === undefined) {\r\n this.httpConnectionOptions = {};\r\n }\r\n this.httpConnectionOptions._useStatefulReconnect = true;\r\n this._statefulReconnectBufferSize = options === null || options === void 0 ? void 0 : options.bufferSize;\r\n return this;\r\n }\r\n /** Creates a {@link @microsoft/signalr.HubConnection} from the configuration options specified in this builder.\r\n *\r\n * @returns {HubConnection} The configured {@link @microsoft/signalr.HubConnection}.\r\n */\r\n build() {\r\n // If httpConnectionOptions has a logger, use it. Otherwise, override it with the one\r\n // provided to configureLogger\r\n const httpConnectionOptions = this.httpConnectionOptions || {};\r\n // If it's 'null', the user **explicitly** asked for null, don't mess with it.\r\n if (httpConnectionOptions.logger === undefined) {\r\n // If our logger is undefined or null, that's OK, the HttpConnection constructor will handle it.\r\n httpConnectionOptions.logger = this.logger;\r\n }\r\n // Now create the connection\r\n if (!this.url) {\r\n throw new Error(\"The 'HubConnectionBuilder.withUrl' method must be called before building the connection.\");\r\n }\r\n const connection = new HttpConnection(this.url, httpConnectionOptions);\r\n return HubConnection.create(connection, this.logger || NullLogger.instance, this.protocol || new JsonHubProtocol(), this.reconnectPolicy, this._serverTimeoutInMilliseconds, this._keepAliveIntervalInMilliseconds, this._statefulReconnectBufferSize);\r\n }\r\n}\r\nfunction isLogger(logger) {\r\n return logger.log !== undefined;\r\n}\r\n//# sourceMappingURL=HubConnectionBuilder.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultConfiguration = exports.DefaultSchedulerConfiguration = void 0;\nexports.DefaultSchedulerConfiguration = {\n defaultInterval: 5000,\n range: {\n min: 500,\n max: 20000,\n },\n batchSize: 10,\n retryPolicy: 'dropOnFail',\n};\nexports.DefaultConfiguration = {\n console: { enabled: false },\n authTokenFactory: undefined,\n serverLogConf: {\n enabled: false,\n },\n applicationHeaderFactory: undefined,\n};\n//# sourceMappingURL=configuration.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.makeReplacer = exports.post = void 0;\nasync function post(url, payload, authTokenFactory, applicationHeaderFactory, fetch) {\n return fetch(url, {\n method: 'post',\n headers: buildHeaders(authTokenFactory, applicationHeaderFactory),\n body: safeStringify(payload),\n });\n}\nexports.post = post;\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Cyclic_object_value#examples\nfunction safeStringify(data) {\n return JSON.stringify(data, makeReplacer());\n}\nfunction makeReplacer() {\n const seen = new WeakSet();\n return (_key, value) => {\n if (value instanceof Error) {\n // Most properties on Error are not enumerable so we need to do this to get them\n // https://stackoverflow.com/a/26199752/1654241\n const exposedError = {};\n Object.getOwnPropertyNames(value).forEach((key) => {\n const fieldValue = value[key];\n if (typeof fieldValue !== 'function') {\n exposedError[key] = fieldValue;\n }\n });\n return exposedError;\n }\n else if (typeof value === 'object' && value !== null) {\n if (seen.has(value)) {\n return '';\n }\n seen.add(value);\n }\n return value;\n };\n}\nexports.makeReplacer = makeReplacer;\nfunction buildHeaders(authTokenFactory, applicationHeaderFactory) {\n const authToken = authTokenFactory === null || authTokenFactory === void 0 ? void 0 : authTokenFactory();\n const applicationHeader = applicationHeaderFactory === null || applicationHeaderFactory === void 0 ? void 0 : applicationHeaderFactory();\n const headers = {};\n if (authToken !== undefined) {\n headers['Authorization'] = authToken;\n }\n if (applicationHeader !== undefined) {\n headers['Application'] = applicationHeader;\n }\n headers['Content-Type'] = 'application/json';\n return headers;\n}\n//# sourceMappingURL=post.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.makeScheduler = void 0;\nconst configuration_1 = require(\"../../configuration/configuration\");\nconst post_1 = require(\"./post\");\nconst INTERVAL_ADJUSTMENT_FACTOR = 2;\nconst emptyBatch = {\n keys: [],\n values: [],\n};\nfunction makeScheduler(_a, storageStrategy, authTokenFactory, applicationHeaderFactory, fetch) {\n var _b;\n var { url, prefix, scheduler } = _a;\n if (fetch === void 0) { fetch = (_b = globalThis.fetch) === null || _b === void 0 ? void 0 : _b.bind(globalThis); }\n const schedulerConf = scheduler !== null && scheduler !== void 0 ? scheduler : configuration_1.DefaultSchedulerConfiguration;\n let scheduleInterval = schedulerConf.defaultInterval;\n let nextTaskScheduled;\n let isRunning = false;\n async function runTask() {\n var _a;\n const events = (_a = (await (storageStrategy === null || storageStrategy === void 0 ? void 0 : storageStrategy.batchGet(schedulerConf.batchSize)))) !== null && _a !== void 0 ? _a : emptyBatch;\n let count = events.keys.length;\n if (count > 0) {\n const payload = prefixMessages(prefix, events);\n try {\n const response = await (0, post_1.post)(url !== null && url !== void 0 ? url : 'api/log', payload, authTokenFactory, applicationHeaderFactory, fetch);\n if (!response.ok) {\n // ignore this error. Should we log when the logger fail?\n count = 0;\n }\n }\n catch (_err) {\n // ignore this error. Should we log when the logger fail?\n count = 0;\n }\n }\n if (schedulerConf.retryPolicy === 'dropOnFail' || count > 0) {\n await (storageStrategy === null || storageStrategy === void 0 ? void 0 : storageStrategy.batchRemove(events.keys));\n }\n adjustScheduleInterval(count);\n scheduleNextTask();\n }\n function adjustScheduleInterval(lastBatchSize) {\n const { min, max } = schedulerConf.range;\n const lessThanTypicalBatchSize = lastBatchSize < schedulerConf.batchSize;\n const adjustedInterval = lessThanTypicalBatchSize\n ? scheduleInterval * INTERVAL_ADJUSTMENT_FACTOR\n : scheduleInterval / INTERVAL_ADJUSTMENT_FACTOR;\n scheduleInterval = clamp(adjustedInterval, min, max);\n }\n function scheduleNextTask() {\n nextTaskScheduled = setTimeout(runTask, scheduleInterval);\n }\n return {\n isRunning() {\n return isRunning;\n },\n suspend() {\n if (isRunning) {\n isRunning = false;\n clearTimeout(nextTaskScheduled);\n }\n },\n resume() {\n if (!isRunning) {\n isRunning = true;\n scheduleNextTask();\n }\n },\n };\n}\nexports.makeScheduler = makeScheduler;\nfunction prefixMessages(prefix, events) {\n if (prefix == null) {\n return events.values;\n }\n return events.values.map((log) => (Object.assign(Object.assign({}, log), { messageTemplate: prefix + log.messageTemplate })));\n}\nfunction clamp(value, min, max) {\n return Math.max(min, Math.min(value, max));\n}\n//# sourceMappingURL=server-log-scheduler.js.map","/*!\n localForage -- Offline Storage, Improved\n Version 1.10.0\n https://localforage.github.io/localForage\n (c) 2013-2017 Mozilla, Apache License 2.0\n*/\n(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.localforage = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw (f.code=\"MODULE_NOT_FOUND\", f)}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var scriptEl = global.document.createElement('script');\n scriptEl.onreadystatechange = function () {\n nextTick();\n\n scriptEl.onreadystatechange = null;\n scriptEl.parentNode.removeChild(scriptEl);\n scriptEl = null;\n };\n global.document.documentElement.appendChild(scriptEl);\n };\n } else {\n scheduleDrain = function () {\n setTimeout(nextTick, 0);\n };\n }\n}\n\nvar draining;\nvar queue = [];\n//named nextTick for less confusing stack traces\nfunction nextTick() {\n draining = true;\n var i, oldQueue;\n var len = queue.length;\n while (len) {\n oldQueue = queue;\n queue = [];\n i = -1;\n while (++i < len) {\n oldQueue[i]();\n }\n len = queue.length;\n }\n draining = false;\n}\n\nmodule.exports = immediate;\nfunction immediate(task) {\n if (queue.push(task) === 1 && !draining) {\n scheduleDrain();\n }\n}\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}],2:[function(_dereq_,module,exports){\n'use strict';\nvar immediate = _dereq_(1);\n\n/* istanbul ignore next */\nfunction INTERNAL() {}\n\nvar handlers = {};\n\nvar REJECTED = ['REJECTED'];\nvar FULFILLED = ['FULFILLED'];\nvar PENDING = ['PENDING'];\n\nmodule.exports = Promise;\n\nfunction Promise(resolver) {\n if (typeof resolver !== 'function') {\n throw new TypeError('resolver must be a function');\n }\n this.state = PENDING;\n this.queue = [];\n this.outcome = void 0;\n if (resolver !== INTERNAL) {\n safelyResolveThenable(this, resolver);\n }\n}\n\nPromise.prototype[\"catch\"] = function (onRejected) {\n return this.then(null, onRejected);\n};\nPromise.prototype.then = function (onFulfilled, onRejected) {\n if (typeof onFulfilled !== 'function' && this.state === FULFILLED ||\n typeof onRejected !== 'function' && this.state === REJECTED) {\n return this;\n }\n var promise = new this.constructor(INTERNAL);\n if (this.state !== PENDING) {\n var resolver = this.state === FULFILLED ? onFulfilled : onRejected;\n unwrap(promise, resolver, this.outcome);\n } else {\n this.queue.push(new QueueItem(promise, onFulfilled, onRejected));\n }\n\n return promise;\n};\nfunction QueueItem(promise, onFulfilled, onRejected) {\n this.promise = promise;\n if (typeof onFulfilled === 'function') {\n this.onFulfilled = onFulfilled;\n this.callFulfilled = this.otherCallFulfilled;\n }\n if (typeof onRejected === 'function') {\n this.onRejected = onRejected;\n this.callRejected = this.otherCallRejected;\n }\n}\nQueueItem.prototype.callFulfilled = function (value) {\n handlers.resolve(this.promise, value);\n};\nQueueItem.prototype.otherCallFulfilled = function (value) {\n unwrap(this.promise, this.onFulfilled, value);\n};\nQueueItem.prototype.callRejected = function (value) {\n handlers.reject(this.promise, value);\n};\nQueueItem.prototype.otherCallRejected = function (value) {\n unwrap(this.promise, this.onRejected, value);\n};\n\nfunction unwrap(promise, func, value) {\n immediate(function () {\n var returnValue;\n try {\n returnValue = func(value);\n } catch (e) {\n return handlers.reject(promise, e);\n }\n if (returnValue === promise) {\n handlers.reject(promise, new TypeError('Cannot resolve promise with itself'));\n } else {\n handlers.resolve(promise, returnValue);\n }\n });\n}\n\nhandlers.resolve = function (self, value) {\n var result = tryCatch(getThen, value);\n if (result.status === 'error') {\n return handlers.reject(self, result.value);\n }\n var thenable = result.value;\n\n if (thenable) {\n safelyResolveThenable(self, thenable);\n } else {\n self.state = FULFILLED;\n self.outcome = value;\n var i = -1;\n var len = self.queue.length;\n while (++i < len) {\n self.queue[i].callFulfilled(value);\n }\n }\n return self;\n};\nhandlers.reject = function (self, error) {\n self.state = REJECTED;\n self.outcome = error;\n var i = -1;\n var len = self.queue.length;\n while (++i < len) {\n self.queue[i].callRejected(error);\n }\n return self;\n};\n\nfunction getThen(obj) {\n // Make sure we only access the accessor once as required by the spec\n var then = obj && obj.then;\n if (obj && (typeof obj === 'object' || typeof obj === 'function') && typeof then === 'function') {\n return function appyThen() {\n then.apply(obj, arguments);\n };\n }\n}\n\nfunction safelyResolveThenable(self, thenable) {\n // Either fulfill, reject or reject with error\n var called = false;\n function onError(value) {\n if (called) {\n return;\n }\n called = true;\n handlers.reject(self, value);\n }\n\n function onSuccess(value) {\n if (called) {\n return;\n }\n called = true;\n handlers.resolve(self, value);\n }\n\n function tryToUnwrap() {\n thenable(onSuccess, onError);\n }\n\n var result = tryCatch(tryToUnwrap);\n if (result.status === 'error') {\n onError(result.value);\n }\n}\n\nfunction tryCatch(func, value) {\n var out = {};\n try {\n out.value = func(value);\n out.status = 'success';\n } catch (e) {\n out.status = 'error';\n out.value = e;\n }\n return out;\n}\n\nPromise.resolve = resolve;\nfunction resolve(value) {\n if (value instanceof this) {\n return value;\n }\n return handlers.resolve(new this(INTERNAL), value);\n}\n\nPromise.reject = reject;\nfunction reject(reason) {\n var promise = new this(INTERNAL);\n return handlers.reject(promise, reason);\n}\n\nPromise.all = all;\nfunction all(iterable) {\n var self = this;\n if (Object.prototype.toString.call(iterable) !== '[object Array]') {\n return this.reject(new TypeError('must be an array'));\n }\n\n var len = iterable.length;\n var called = false;\n if (!len) {\n return this.resolve([]);\n }\n\n var values = new Array(len);\n var resolved = 0;\n var i = -1;\n var promise = new this(INTERNAL);\n\n while (++i < len) {\n allResolver(iterable[i], i);\n }\n return promise;\n function allResolver(value, i) {\n self.resolve(value).then(resolveFromAll, function (error) {\n if (!called) {\n called = true;\n handlers.reject(promise, error);\n }\n });\n function resolveFromAll(outValue) {\n values[i] = outValue;\n if (++resolved === len && !called) {\n called = true;\n handlers.resolve(promise, values);\n }\n }\n }\n}\n\nPromise.race = race;\nfunction race(iterable) {\n var self = this;\n if (Object.prototype.toString.call(iterable) !== '[object Array]') {\n return this.reject(new TypeError('must be an array'));\n }\n\n var len = iterable.length;\n var called = false;\n if (!len) {\n return this.resolve([]);\n }\n\n var i = -1;\n var promise = new this(INTERNAL);\n\n while (++i < len) {\n resolver(iterable[i]);\n }\n return promise;\n function resolver(value) {\n self.resolve(value).then(function (response) {\n if (!called) {\n called = true;\n handlers.resolve(promise, response);\n }\n }, function (error) {\n if (!called) {\n called = true;\n handlers.reject(promise, error);\n }\n });\n }\n}\n\n},{\"1\":1}],3:[function(_dereq_,module,exports){\n(function (global){\n'use strict';\nif (typeof global.Promise !== 'function') {\n global.Promise = _dereq_(2);\n}\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{\"2\":2}],4:[function(_dereq_,module,exports){\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction getIDB() {\n /* global indexedDB,webkitIndexedDB,mozIndexedDB,OIndexedDB,msIndexedDB */\n try {\n if (typeof indexedDB !== 'undefined') {\n return indexedDB;\n }\n if (typeof webkitIndexedDB !== 'undefined') {\n return webkitIndexedDB;\n }\n if (typeof mozIndexedDB !== 'undefined') {\n return mozIndexedDB;\n }\n if (typeof OIndexedDB !== 'undefined') {\n return OIndexedDB;\n }\n if (typeof msIndexedDB !== 'undefined') {\n return msIndexedDB;\n }\n } catch (e) {\n return;\n }\n}\n\nvar idb = getIDB();\n\nfunction isIndexedDBValid() {\n try {\n // Initialize IndexedDB; fall back to vendor-prefixed versions\n // if needed.\n if (!idb || !idb.open) {\n return false;\n }\n // We mimic PouchDB here;\n //\n // We test for openDatabase because IE Mobile identifies itself\n // as Safari. Oh the lulz...\n var isSafari = typeof openDatabase !== 'undefined' && /(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent) && !/Chrome/.test(navigator.userAgent) && !/BlackBerry/.test(navigator.platform);\n\n var hasFetch = typeof fetch === 'function' && fetch.toString().indexOf('[native code') !== -1;\n\n // Safari <10.1 does not meet our requirements for IDB support\n // (see: https://github.com/pouchdb/pouchdb/issues/5572).\n // Safari 10.1 shipped with fetch, we can use that to detect it.\n // Note: this creates issues with `window.fetch` polyfills and\n // overrides; see:\n // https://github.com/localForage/localForage/issues/856\n return (!isSafari || hasFetch) && typeof indexedDB !== 'undefined' &&\n // some outdated implementations of IDB that appear on Samsung\n // and HTC Android devices <4.4 are missing IDBKeyRange\n // See: https://github.com/mozilla/localForage/issues/128\n // See: https://github.com/mozilla/localForage/issues/272\n typeof IDBKeyRange !== 'undefined';\n } catch (e) {\n return false;\n }\n}\n\n// Abstracts constructing a Blob object, so it also works in older\n// browsers that don't support the native Blob constructor. (i.e.\n// old QtWebKit versions, at least).\n// Abstracts constructing a Blob object, so it also works in older\n// browsers that don't support the native Blob constructor. (i.e.\n// old QtWebKit versions, at least).\nfunction createBlob(parts, properties) {\n /* global BlobBuilder,MSBlobBuilder,MozBlobBuilder,WebKitBlobBuilder */\n parts = parts || [];\n properties = properties || {};\n try {\n return new Blob(parts, properties);\n } catch (e) {\n if (e.name !== 'TypeError') {\n throw e;\n }\n var Builder = typeof BlobBuilder !== 'undefined' ? BlobBuilder : typeof MSBlobBuilder !== 'undefined' ? MSBlobBuilder : typeof MozBlobBuilder !== 'undefined' ? MozBlobBuilder : WebKitBlobBuilder;\n var builder = new Builder();\n for (var i = 0; i < parts.length; i += 1) {\n builder.append(parts[i]);\n }\n return builder.getBlob(properties.type);\n }\n}\n\n// This is CommonJS because lie is an external dependency, so Rollup\n// can just ignore it.\nif (typeof Promise === 'undefined') {\n // In the \"nopromises\" build this will just throw if you don't have\n // a global promise object, but it would throw anyway later.\n _dereq_(3);\n}\nvar Promise$1 = Promise;\n\nfunction executeCallback(promise, callback) {\n if (callback) {\n promise.then(function (result) {\n callback(null, result);\n }, function (error) {\n callback(error);\n });\n }\n}\n\nfunction executeTwoCallbacks(promise, callback, errorCallback) {\n if (typeof callback === 'function') {\n promise.then(callback);\n }\n\n if (typeof errorCallback === 'function') {\n promise[\"catch\"](errorCallback);\n }\n}\n\nfunction normalizeKey(key) {\n // Cast the key to a string, as that's all we can set as a key.\n if (typeof key !== 'string') {\n console.warn(key + ' used as a key, but it is not a string.');\n key = String(key);\n }\n\n return key;\n}\n\nfunction getCallback() {\n if (arguments.length && typeof arguments[arguments.length - 1] === 'function') {\n return arguments[arguments.length - 1];\n }\n}\n\n// Some code originally from async_storage.js in\n// [Gaia](https://github.com/mozilla-b2g/gaia).\n\nvar DETECT_BLOB_SUPPORT_STORE = 'local-forage-detect-blob-support';\nvar supportsBlobs = void 0;\nvar dbContexts = {};\nvar toString = Object.prototype.toString;\n\n// Transaction Modes\nvar READ_ONLY = 'readonly';\nvar READ_WRITE = 'readwrite';\n\n// Transform a binary string to an array buffer, because otherwise\n// weird stuff happens when you try to work with the binary string directly.\n// It is known.\n// From http://stackoverflow.com/questions/14967647/ (continues on next line)\n// encode-decode-image-with-base64-breaks-image (2013-04-21)\nfunction _binStringToArrayBuffer(bin) {\n var length = bin.length;\n var buf = new ArrayBuffer(length);\n var arr = new Uint8Array(buf);\n for (var i = 0; i < length; i++) {\n arr[i] = bin.charCodeAt(i);\n }\n return buf;\n}\n\n//\n// Blobs are not supported in all versions of IndexedDB, notably\n// Chrome <37 and Android <5. In those versions, storing a blob will throw.\n//\n// Various other blob bugs exist in Chrome v37-42 (inclusive).\n// Detecting them is expensive and confusing to users, and Chrome 37-42\n// is at very low usage worldwide, so we do a hacky userAgent check instead.\n//\n// content-type bug: https://code.google.com/p/chromium/issues/detail?id=408120\n// 404 bug: https://code.google.com/p/chromium/issues/detail?id=447916\n// FileReader bug: https://code.google.com/p/chromium/issues/detail?id=447836\n//\n// Code borrowed from PouchDB. See:\n// https://github.com/pouchdb/pouchdb/blob/master/packages/node_modules/pouchdb-adapter-idb/src/blobSupport.js\n//\nfunction _checkBlobSupportWithoutCaching(idb) {\n return new Promise$1(function (resolve) {\n var txn = idb.transaction(DETECT_BLOB_SUPPORT_STORE, READ_WRITE);\n var blob = createBlob(['']);\n txn.objectStore(DETECT_BLOB_SUPPORT_STORE).put(blob, 'key');\n\n txn.onabort = function (e) {\n // If the transaction aborts now its due to not being able to\n // write to the database, likely due to the disk being full\n e.preventDefault();\n e.stopPropagation();\n resolve(false);\n };\n\n txn.oncomplete = function () {\n var matchedChrome = navigator.userAgent.match(/Chrome\\/(\\d+)/);\n var matchedEdge = navigator.userAgent.match(/Edge\\//);\n // MS Edge pretends to be Chrome 42:\n // https://msdn.microsoft.com/en-us/library/hh869301%28v=vs.85%29.aspx\n resolve(matchedEdge || !matchedChrome || parseInt(matchedChrome[1], 10) >= 43);\n };\n })[\"catch\"](function () {\n return false; // error, so assume unsupported\n });\n}\n\nfunction _checkBlobSupport(idb) {\n if (typeof supportsBlobs === 'boolean') {\n return Promise$1.resolve(supportsBlobs);\n }\n return _checkBlobSupportWithoutCaching(idb).then(function (value) {\n supportsBlobs = value;\n return supportsBlobs;\n });\n}\n\nfunction _deferReadiness(dbInfo) {\n var dbContext = dbContexts[dbInfo.name];\n\n // Create a deferred object representing the current database operation.\n var deferredOperation = {};\n\n deferredOperation.promise = new Promise$1(function (resolve, reject) {\n deferredOperation.resolve = resolve;\n deferredOperation.reject = reject;\n });\n\n // Enqueue the deferred operation.\n dbContext.deferredOperations.push(deferredOperation);\n\n // Chain its promise to the database readiness.\n if (!dbContext.dbReady) {\n dbContext.dbReady = deferredOperation.promise;\n } else {\n dbContext.dbReady = dbContext.dbReady.then(function () {\n return deferredOperation.promise;\n });\n }\n}\n\nfunction _advanceReadiness(dbInfo) {\n var dbContext = dbContexts[dbInfo.name];\n\n // Dequeue a deferred operation.\n var deferredOperation = dbContext.deferredOperations.pop();\n\n // Resolve its promise (which is part of the database readiness\n // chain of promises).\n if (deferredOperation) {\n deferredOperation.resolve();\n return deferredOperation.promise;\n }\n}\n\nfunction _rejectReadiness(dbInfo, err) {\n var dbContext = dbContexts[dbInfo.name];\n\n // Dequeue a deferred operation.\n var deferredOperation = dbContext.deferredOperations.pop();\n\n // Reject its promise (which is part of the database readiness\n // chain of promises).\n if (deferredOperation) {\n deferredOperation.reject(err);\n return deferredOperation.promise;\n }\n}\n\nfunction _getConnection(dbInfo, upgradeNeeded) {\n return new Promise$1(function (resolve, reject) {\n dbContexts[dbInfo.name] = dbContexts[dbInfo.name] || createDbContext();\n\n if (dbInfo.db) {\n if (upgradeNeeded) {\n _deferReadiness(dbInfo);\n dbInfo.db.close();\n } else {\n return resolve(dbInfo.db);\n }\n }\n\n var dbArgs = [dbInfo.name];\n\n if (upgradeNeeded) {\n dbArgs.push(dbInfo.version);\n }\n\n var openreq = idb.open.apply(idb, dbArgs);\n\n if (upgradeNeeded) {\n openreq.onupgradeneeded = function (e) {\n var db = openreq.result;\n try {\n db.createObjectStore(dbInfo.storeName);\n if (e.oldVersion <= 1) {\n // Added when support for blob shims was added\n db.createObjectStore(DETECT_BLOB_SUPPORT_STORE);\n }\n } catch (ex) {\n if (ex.name === 'ConstraintError') {\n console.warn('The database \"' + dbInfo.name + '\"' + ' has been upgraded from version ' + e.oldVersion + ' to version ' + e.newVersion + ', but the storage \"' + dbInfo.storeName + '\" already exists.');\n } else {\n throw ex;\n }\n }\n };\n }\n\n openreq.onerror = function (e) {\n e.preventDefault();\n reject(openreq.error);\n };\n\n openreq.onsuccess = function () {\n var db = openreq.result;\n db.onversionchange = function (e) {\n // Triggered when the database is modified (e.g. adding an objectStore) or\n // deleted (even when initiated by other sessions in different tabs).\n // Closing the connection here prevents those operations from being blocked.\n // If the database is accessed again later by this instance, the connection\n // will be reopened or the database recreated as needed.\n e.target.close();\n };\n resolve(db);\n _advanceReadiness(dbInfo);\n };\n });\n}\n\nfunction _getOriginalConnection(dbInfo) {\n return _getConnection(dbInfo, false);\n}\n\nfunction _getUpgradedConnection(dbInfo) {\n return _getConnection(dbInfo, true);\n}\n\nfunction _isUpgradeNeeded(dbInfo, defaultVersion) {\n if (!dbInfo.db) {\n return true;\n }\n\n var isNewStore = !dbInfo.db.objectStoreNames.contains(dbInfo.storeName);\n var isDowngrade = dbInfo.version < dbInfo.db.version;\n var isUpgrade = dbInfo.version > dbInfo.db.version;\n\n if (isDowngrade) {\n // If the version is not the default one\n // then warn for impossible downgrade.\n if (dbInfo.version !== defaultVersion) {\n console.warn('The database \"' + dbInfo.name + '\"' + \" can't be downgraded from version \" + dbInfo.db.version + ' to version ' + dbInfo.version + '.');\n }\n // Align the versions to prevent errors.\n dbInfo.version = dbInfo.db.version;\n }\n\n if (isUpgrade || isNewStore) {\n // If the store is new then increment the version (if needed).\n // This will trigger an \"upgradeneeded\" event which is required\n // for creating a store.\n if (isNewStore) {\n var incVersion = dbInfo.db.version + 1;\n if (incVersion > dbInfo.version) {\n dbInfo.version = incVersion;\n }\n }\n\n return true;\n }\n\n return false;\n}\n\n// encode a blob for indexeddb engines that don't support blobs\nfunction _encodeBlob(blob) {\n return new Promise$1(function (resolve, reject) {\n var reader = new FileReader();\n reader.onerror = reject;\n reader.onloadend = function (e) {\n var base64 = btoa(e.target.result || '');\n resolve({\n __local_forage_encoded_blob: true,\n data: base64,\n type: blob.type\n });\n };\n reader.readAsBinaryString(blob);\n });\n}\n\n// decode an encoded blob\nfunction _decodeBlob(encodedBlob) {\n var arrayBuff = _binStringToArrayBuffer(atob(encodedBlob.data));\n return createBlob([arrayBuff], { type: encodedBlob.type });\n}\n\n// is this one of our fancy encoded blobs?\nfunction _isEncodedBlob(value) {\n return value && value.__local_forage_encoded_blob;\n}\n\n// Specialize the default `ready()` function by making it dependent\n// on the current database operations. Thus, the driver will be actually\n// ready when it's been initialized (default) *and* there are no pending\n// operations on the database (initiated by some other instances).\nfunction _fullyReady(callback) {\n var self = this;\n\n var promise = self._initReady().then(function () {\n var dbContext = dbContexts[self._dbInfo.name];\n\n if (dbContext && dbContext.dbReady) {\n return dbContext.dbReady;\n }\n });\n\n executeTwoCallbacks(promise, callback, callback);\n return promise;\n}\n\n// Try to establish a new db connection to replace the\n// current one which is broken (i.e. experiencing\n// InvalidStateError while creating a transaction).\nfunction _tryReconnect(dbInfo) {\n _deferReadiness(dbInfo);\n\n var dbContext = dbContexts[dbInfo.name];\n var forages = dbContext.forages;\n\n for (var i = 0; i < forages.length; i++) {\n var forage = forages[i];\n if (forage._dbInfo.db) {\n forage._dbInfo.db.close();\n forage._dbInfo.db = null;\n }\n }\n dbInfo.db = null;\n\n return _getOriginalConnection(dbInfo).then(function (db) {\n dbInfo.db = db;\n if (_isUpgradeNeeded(dbInfo)) {\n // Reopen the database for upgrading.\n return _getUpgradedConnection(dbInfo);\n }\n return db;\n }).then(function (db) {\n // store the latest db reference\n // in case the db was upgraded\n dbInfo.db = dbContext.db = db;\n for (var i = 0; i < forages.length; i++) {\n forages[i]._dbInfo.db = db;\n }\n })[\"catch\"](function (err) {\n _rejectReadiness(dbInfo, err);\n throw err;\n });\n}\n\n// FF doesn't like Promises (micro-tasks) and IDDB store operations,\n// so we have to do it with callbacks\nfunction createTransaction(dbInfo, mode, callback, retries) {\n if (retries === undefined) {\n retries = 1;\n }\n\n try {\n var tx = dbInfo.db.transaction(dbInfo.storeName, mode);\n callback(null, tx);\n } catch (err) {\n if (retries > 0 && (!dbInfo.db || err.name === 'InvalidStateError' || err.name === 'NotFoundError')) {\n return Promise$1.resolve().then(function () {\n if (!dbInfo.db || err.name === 'NotFoundError' && !dbInfo.db.objectStoreNames.contains(dbInfo.storeName) && dbInfo.version <= dbInfo.db.version) {\n // increase the db version, to create the new ObjectStore\n if (dbInfo.db) {\n dbInfo.version = dbInfo.db.version + 1;\n }\n // Reopen the database for upgrading.\n return _getUpgradedConnection(dbInfo);\n }\n }).then(function () {\n return _tryReconnect(dbInfo).then(function () {\n createTransaction(dbInfo, mode, callback, retries - 1);\n });\n })[\"catch\"](callback);\n }\n\n callback(err);\n }\n}\n\nfunction createDbContext() {\n return {\n // Running localForages sharing a database.\n forages: [],\n // Shared database.\n db: null,\n // Database readiness (promise).\n dbReady: null,\n // Deferred operations on the database.\n deferredOperations: []\n };\n}\n\n// Open the IndexedDB database (automatically creates one if one didn't\n// previously exist), using any options set in the config.\nfunction _initStorage(options) {\n var self = this;\n var dbInfo = {\n db: null\n };\n\n if (options) {\n for (var i in options) {\n dbInfo[i] = options[i];\n }\n }\n\n // Get the current context of the database;\n var dbContext = dbContexts[dbInfo.name];\n\n // ...or create a new context.\n if (!dbContext) {\n dbContext = createDbContext();\n // Register the new context in the global container.\n dbContexts[dbInfo.name] = dbContext;\n }\n\n // Register itself as a running localForage in the current context.\n dbContext.forages.push(self);\n\n // Replace the default `ready()` function with the specialized one.\n if (!self._initReady) {\n self._initReady = self.ready;\n self.ready = _fullyReady;\n }\n\n // Create an array of initialization states of the related localForages.\n var initPromises = [];\n\n function ignoreErrors() {\n // Don't handle errors here,\n // just makes sure related localForages aren't pending.\n return Promise$1.resolve();\n }\n\n for (var j = 0; j < dbContext.forages.length; j++) {\n var forage = dbContext.forages[j];\n if (forage !== self) {\n // Don't wait for itself...\n initPromises.push(forage._initReady()[\"catch\"](ignoreErrors));\n }\n }\n\n // Take a snapshot of the related localForages.\n var forages = dbContext.forages.slice(0);\n\n // Initialize the connection process only when\n // all the related localForages aren't pending.\n return Promise$1.all(initPromises).then(function () {\n dbInfo.db = dbContext.db;\n // Get the connection or open a new one without upgrade.\n return _getOriginalConnection(dbInfo);\n }).then(function (db) {\n dbInfo.db = db;\n if (_isUpgradeNeeded(dbInfo, self._defaultConfig.version)) {\n // Reopen the database for upgrading.\n return _getUpgradedConnection(dbInfo);\n }\n return db;\n }).then(function (db) {\n dbInfo.db = dbContext.db = db;\n self._dbInfo = dbInfo;\n // Share the final connection amongst related localForages.\n for (var k = 0; k < forages.length; k++) {\n var forage = forages[k];\n if (forage !== self) {\n // Self is already up-to-date.\n forage._dbInfo.db = dbInfo.db;\n forage._dbInfo.version = dbInfo.version;\n }\n }\n });\n}\n\nfunction getItem(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.get(key);\n\n req.onsuccess = function () {\n var value = req.result;\n if (value === undefined) {\n value = null;\n }\n if (_isEncodedBlob(value)) {\n value = _decodeBlob(value);\n }\n resolve(value);\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Iterate over all items stored in database.\nfunction iterate(iterator, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.openCursor();\n var iterationNumber = 1;\n\n req.onsuccess = function () {\n var cursor = req.result;\n\n if (cursor) {\n var value = cursor.value;\n if (_isEncodedBlob(value)) {\n value = _decodeBlob(value);\n }\n var result = iterator(value, cursor.key, iterationNumber++);\n\n // when the iterator callback returns any\n // (non-`undefined`) value, then we stop\n // the iteration immediately\n if (result !== void 0) {\n resolve(result);\n } else {\n cursor[\"continue\"]();\n }\n } else {\n resolve();\n }\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n\n return promise;\n}\n\nfunction setItem(key, value, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n var dbInfo;\n self.ready().then(function () {\n dbInfo = self._dbInfo;\n if (toString.call(value) === '[object Blob]') {\n return _checkBlobSupport(dbInfo.db).then(function (blobSupport) {\n if (blobSupport) {\n return value;\n }\n return _encodeBlob(value);\n });\n }\n return value;\n }).then(function (value) {\n createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n\n // The reason we don't _save_ null is because IE 10 does\n // not support saving the `null` type in IndexedDB. How\n // ironic, given the bug below!\n // See: https://github.com/mozilla/localForage/issues/161\n if (value === null) {\n value = undefined;\n }\n\n var req = store.put(value, key);\n\n transaction.oncomplete = function () {\n // Cast to undefined so the value passed to\n // callback/promise is the same as what one would get out\n // of `getItem()` later. This leads to some weirdness\n // (setItem('foo', undefined) will return `null`), but\n // it's not my fault localStorage is our baseline and that\n // it's weird.\n if (value === undefined) {\n value = null;\n }\n\n resolve(value);\n };\n transaction.onabort = transaction.onerror = function () {\n var err = req.error ? req.error : req.transaction.error;\n reject(err);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction removeItem(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n // We use a Grunt task to make this safe for IE and some\n // versions of Android (including those used by Cordova).\n // Normally IE won't like `.delete()` and will insist on\n // using `['delete']()`, but we have a build step that\n // fixes this for us now.\n var req = store[\"delete\"](key);\n transaction.oncomplete = function () {\n resolve();\n };\n\n transaction.onerror = function () {\n reject(req.error);\n };\n\n // The request will be also be aborted if we've exceeded our storage\n // space.\n transaction.onabort = function () {\n var err = req.error ? req.error : req.transaction.error;\n reject(err);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction clear(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.clear();\n\n transaction.oncomplete = function () {\n resolve();\n };\n\n transaction.onabort = transaction.onerror = function () {\n var err = req.error ? req.error : req.transaction.error;\n reject(err);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction length(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.count();\n\n req.onsuccess = function () {\n resolve(req.result);\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction key(n, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n if (n < 0) {\n resolve(null);\n\n return;\n }\n\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var advanced = false;\n var req = store.openKeyCursor();\n\n req.onsuccess = function () {\n var cursor = req.result;\n if (!cursor) {\n // this means there weren't enough keys\n resolve(null);\n\n return;\n }\n\n if (n === 0) {\n // We have the first key, return it if that's what they\n // wanted.\n resolve(cursor.key);\n } else {\n if (!advanced) {\n // Otherwise, ask the cursor to skip ahead n\n // records.\n advanced = true;\n cursor.advance(n);\n } else {\n // When we get here, we've got the nth key.\n resolve(cursor.key);\n }\n }\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction keys(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.openKeyCursor();\n var keys = [];\n\n req.onsuccess = function () {\n var cursor = req.result;\n\n if (!cursor) {\n resolve(keys);\n return;\n }\n\n keys.push(cursor.key);\n cursor[\"continue\"]();\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction dropInstance(options, callback) {\n callback = getCallback.apply(this, arguments);\n\n var currentConfig = this.config();\n options = typeof options !== 'function' && options || {};\n if (!options.name) {\n options.name = options.name || currentConfig.name;\n options.storeName = options.storeName || currentConfig.storeName;\n }\n\n var self = this;\n var promise;\n if (!options.name) {\n promise = Promise$1.reject('Invalid arguments');\n } else {\n var isCurrentDb = options.name === currentConfig.name && self._dbInfo.db;\n\n var dbPromise = isCurrentDb ? Promise$1.resolve(self._dbInfo.db) : _getOriginalConnection(options).then(function (db) {\n var dbContext = dbContexts[options.name];\n var forages = dbContext.forages;\n dbContext.db = db;\n for (var i = 0; i < forages.length; i++) {\n forages[i]._dbInfo.db = db;\n }\n return db;\n });\n\n if (!options.storeName) {\n promise = dbPromise.then(function (db) {\n _deferReadiness(options);\n\n var dbContext = dbContexts[options.name];\n var forages = dbContext.forages;\n\n db.close();\n for (var i = 0; i < forages.length; i++) {\n var forage = forages[i];\n forage._dbInfo.db = null;\n }\n\n var dropDBPromise = new Promise$1(function (resolve, reject) {\n var req = idb.deleteDatabase(options.name);\n\n req.onerror = function () {\n var db = req.result;\n if (db) {\n db.close();\n }\n reject(req.error);\n };\n\n req.onblocked = function () {\n // Closing all open connections in onversionchange handler should prevent this situation, but if\n // we do get here, it just means the request remains pending - eventually it will succeed or error\n console.warn('dropInstance blocked for database \"' + options.name + '\" until all open connections are closed');\n };\n\n req.onsuccess = function () {\n var db = req.result;\n if (db) {\n db.close();\n }\n resolve(db);\n };\n });\n\n return dropDBPromise.then(function (db) {\n dbContext.db = db;\n for (var i = 0; i < forages.length; i++) {\n var _forage = forages[i];\n _advanceReadiness(_forage._dbInfo);\n }\n })[\"catch\"](function (err) {\n (_rejectReadiness(options, err) || Promise$1.resolve())[\"catch\"](function () {});\n throw err;\n });\n });\n } else {\n promise = dbPromise.then(function (db) {\n if (!db.objectStoreNames.contains(options.storeName)) {\n return;\n }\n\n var newVersion = db.version + 1;\n\n _deferReadiness(options);\n\n var dbContext = dbContexts[options.name];\n var forages = dbContext.forages;\n\n db.close();\n for (var i = 0; i < forages.length; i++) {\n var forage = forages[i];\n forage._dbInfo.db = null;\n forage._dbInfo.version = newVersion;\n }\n\n var dropObjectPromise = new Promise$1(function (resolve, reject) {\n var req = idb.open(options.name, newVersion);\n\n req.onerror = function (err) {\n var db = req.result;\n db.close();\n reject(err);\n };\n\n req.onupgradeneeded = function () {\n var db = req.result;\n db.deleteObjectStore(options.storeName);\n };\n\n req.onsuccess = function () {\n var db = req.result;\n db.close();\n resolve(db);\n };\n });\n\n return dropObjectPromise.then(function (db) {\n dbContext.db = db;\n for (var j = 0; j < forages.length; j++) {\n var _forage2 = forages[j];\n _forage2._dbInfo.db = db;\n _advanceReadiness(_forage2._dbInfo);\n }\n })[\"catch\"](function (err) {\n (_rejectReadiness(options, err) || Promise$1.resolve())[\"catch\"](function () {});\n throw err;\n });\n });\n }\n }\n\n executeCallback(promise, callback);\n return promise;\n}\n\nvar asyncStorage = {\n _driver: 'asyncStorage',\n _initStorage: _initStorage,\n _support: isIndexedDBValid(),\n iterate: iterate,\n getItem: getItem,\n setItem: setItem,\n removeItem: removeItem,\n clear: clear,\n length: length,\n key: key,\n keys: keys,\n dropInstance: dropInstance\n};\n\nfunction isWebSQLValid() {\n return typeof openDatabase === 'function';\n}\n\n// Sadly, the best way to save binary data in WebSQL/localStorage is serializing\n// it to Base64, so this is how we store it to prevent very strange errors with less\n// verbose ways of binary <-> string data storage.\nvar BASE_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\nvar BLOB_TYPE_PREFIX = '~~local_forage_type~';\nvar BLOB_TYPE_PREFIX_REGEX = /^~~local_forage_type~([^~]+)~/;\n\nvar SERIALIZED_MARKER = '__lfsc__:';\nvar SERIALIZED_MARKER_LENGTH = SERIALIZED_MARKER.length;\n\n// OMG the serializations!\nvar TYPE_ARRAYBUFFER = 'arbf';\nvar TYPE_BLOB = 'blob';\nvar TYPE_INT8ARRAY = 'si08';\nvar TYPE_UINT8ARRAY = 'ui08';\nvar TYPE_UINT8CLAMPEDARRAY = 'uic8';\nvar TYPE_INT16ARRAY = 'si16';\nvar TYPE_INT32ARRAY = 'si32';\nvar TYPE_UINT16ARRAY = 'ur16';\nvar TYPE_UINT32ARRAY = 'ui32';\nvar TYPE_FLOAT32ARRAY = 'fl32';\nvar TYPE_FLOAT64ARRAY = 'fl64';\nvar TYPE_SERIALIZED_MARKER_LENGTH = SERIALIZED_MARKER_LENGTH + TYPE_ARRAYBUFFER.length;\n\nvar toString$1 = Object.prototype.toString;\n\nfunction stringToBuffer(serializedString) {\n // Fill the string into a ArrayBuffer.\n var bufferLength = serializedString.length * 0.75;\n var len = serializedString.length;\n var i;\n var p = 0;\n var encoded1, encoded2, encoded3, encoded4;\n\n if (serializedString[serializedString.length - 1] === '=') {\n bufferLength--;\n if (serializedString[serializedString.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n var buffer = new ArrayBuffer(bufferLength);\n var bytes = new Uint8Array(buffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = BASE_CHARS.indexOf(serializedString[i]);\n encoded2 = BASE_CHARS.indexOf(serializedString[i + 1]);\n encoded3 = BASE_CHARS.indexOf(serializedString[i + 2]);\n encoded4 = BASE_CHARS.indexOf(serializedString[i + 3]);\n\n /*jslint bitwise: true */\n bytes[p++] = encoded1 << 2 | encoded2 >> 4;\n bytes[p++] = (encoded2 & 15) << 4 | encoded3 >> 2;\n bytes[p++] = (encoded3 & 3) << 6 | encoded4 & 63;\n }\n return buffer;\n}\n\n// Converts a buffer to a string to store, serialized, in the backend\n// storage library.\nfunction bufferToString(buffer) {\n // base64-arraybuffer\n var bytes = new Uint8Array(buffer);\n var base64String = '';\n var i;\n\n for (i = 0; i < bytes.length; i += 3) {\n /*jslint bitwise: true */\n base64String += BASE_CHARS[bytes[i] >> 2];\n base64String += BASE_CHARS[(bytes[i] & 3) << 4 | bytes[i + 1] >> 4];\n base64String += BASE_CHARS[(bytes[i + 1] & 15) << 2 | bytes[i + 2] >> 6];\n base64String += BASE_CHARS[bytes[i + 2] & 63];\n }\n\n if (bytes.length % 3 === 2) {\n base64String = base64String.substring(0, base64String.length - 1) + '=';\n } else if (bytes.length % 3 === 1) {\n base64String = base64String.substring(0, base64String.length - 2) + '==';\n }\n\n return base64String;\n}\n\n// Serialize a value, afterwards executing a callback (which usually\n// instructs the `setItem()` callback/promise to be executed). This is how\n// we store binary data with localStorage.\nfunction serialize(value, callback) {\n var valueType = '';\n if (value) {\n valueType = toString$1.call(value);\n }\n\n // Cannot use `value instanceof ArrayBuffer` or such here, as these\n // checks fail when running the tests using casper.js...\n //\n // TODO: See why those tests fail and use a better solution.\n if (value && (valueType === '[object ArrayBuffer]' || value.buffer && toString$1.call(value.buffer) === '[object ArrayBuffer]')) {\n // Convert binary arrays to a string and prefix the string with\n // a special marker.\n var buffer;\n var marker = SERIALIZED_MARKER;\n\n if (value instanceof ArrayBuffer) {\n buffer = value;\n marker += TYPE_ARRAYBUFFER;\n } else {\n buffer = value.buffer;\n\n if (valueType === '[object Int8Array]') {\n marker += TYPE_INT8ARRAY;\n } else if (valueType === '[object Uint8Array]') {\n marker += TYPE_UINT8ARRAY;\n } else if (valueType === '[object Uint8ClampedArray]') {\n marker += TYPE_UINT8CLAMPEDARRAY;\n } else if (valueType === '[object Int16Array]') {\n marker += TYPE_INT16ARRAY;\n } else if (valueType === '[object Uint16Array]') {\n marker += TYPE_UINT16ARRAY;\n } else if (valueType === '[object Int32Array]') {\n marker += TYPE_INT32ARRAY;\n } else if (valueType === '[object Uint32Array]') {\n marker += TYPE_UINT32ARRAY;\n } else if (valueType === '[object Float32Array]') {\n marker += TYPE_FLOAT32ARRAY;\n } else if (valueType === '[object Float64Array]') {\n marker += TYPE_FLOAT64ARRAY;\n } else {\n callback(new Error('Failed to get type for BinaryArray'));\n }\n }\n\n callback(marker + bufferToString(buffer));\n } else if (valueType === '[object Blob]') {\n // Conver the blob to a binaryArray and then to a string.\n var fileReader = new FileReader();\n\n fileReader.onload = function () {\n // Backwards-compatible prefix for the blob type.\n var str = BLOB_TYPE_PREFIX + value.type + '~' + bufferToString(this.result);\n\n callback(SERIALIZED_MARKER + TYPE_BLOB + str);\n };\n\n fileReader.readAsArrayBuffer(value);\n } else {\n try {\n callback(JSON.stringify(value));\n } catch (e) {\n console.error(\"Couldn't convert value into a JSON string: \", value);\n\n callback(null, e);\n }\n }\n}\n\n// Deserialize data we've inserted into a value column/field. We place\n// special markers into our strings to mark them as encoded; this isn't\n// as nice as a meta field, but it's the only sane thing we can do whilst\n// keeping localStorage support intact.\n//\n// Oftentimes this will just deserialize JSON content, but if we have a\n// special marker (SERIALIZED_MARKER, defined above), we will extract\n// some kind of arraybuffer/binary data/typed array out of the string.\nfunction deserialize(value) {\n // If we haven't marked this string as being specially serialized (i.e.\n // something other than serialized JSON), we can just return it and be\n // done with it.\n if (value.substring(0, SERIALIZED_MARKER_LENGTH) !== SERIALIZED_MARKER) {\n return JSON.parse(value);\n }\n\n // The following code deals with deserializing some kind of Blob or\n // TypedArray. First we separate out the type of data we're dealing\n // with from the data itself.\n var serializedString = value.substring(TYPE_SERIALIZED_MARKER_LENGTH);\n var type = value.substring(SERIALIZED_MARKER_LENGTH, TYPE_SERIALIZED_MARKER_LENGTH);\n\n var blobType;\n // Backwards-compatible blob type serialization strategy.\n // DBs created with older versions of localForage will simply not have the blob type.\n if (type === TYPE_BLOB && BLOB_TYPE_PREFIX_REGEX.test(serializedString)) {\n var matcher = serializedString.match(BLOB_TYPE_PREFIX_REGEX);\n blobType = matcher[1];\n serializedString = serializedString.substring(matcher[0].length);\n }\n var buffer = stringToBuffer(serializedString);\n\n // Return the right type based on the code/type set during\n // serialization.\n switch (type) {\n case TYPE_ARRAYBUFFER:\n return buffer;\n case TYPE_BLOB:\n return createBlob([buffer], { type: blobType });\n case TYPE_INT8ARRAY:\n return new Int8Array(buffer);\n case TYPE_UINT8ARRAY:\n return new Uint8Array(buffer);\n case TYPE_UINT8CLAMPEDARRAY:\n return new Uint8ClampedArray(buffer);\n case TYPE_INT16ARRAY:\n return new Int16Array(buffer);\n case TYPE_UINT16ARRAY:\n return new Uint16Array(buffer);\n case TYPE_INT32ARRAY:\n return new Int32Array(buffer);\n case TYPE_UINT32ARRAY:\n return new Uint32Array(buffer);\n case TYPE_FLOAT32ARRAY:\n return new Float32Array(buffer);\n case TYPE_FLOAT64ARRAY:\n return new Float64Array(buffer);\n default:\n throw new Error('Unkown type: ' + type);\n }\n}\n\nvar localforageSerializer = {\n serialize: serialize,\n deserialize: deserialize,\n stringToBuffer: stringToBuffer,\n bufferToString: bufferToString\n};\n\n/*\n * Includes code from:\n *\n * base64-arraybuffer\n * https://github.com/niklasvh/base64-arraybuffer\n *\n * Copyright (c) 2012 Niklas von Hertzen\n * Licensed under the MIT license.\n */\n\nfunction createDbTable(t, dbInfo, callback, errorCallback) {\n t.executeSql('CREATE TABLE IF NOT EXISTS ' + dbInfo.storeName + ' ' + '(id INTEGER PRIMARY KEY, key unique, value)', [], callback, errorCallback);\n}\n\n// Open the WebSQL database (automatically creates one if one didn't\n// previously exist), using any options set in the config.\nfunction _initStorage$1(options) {\n var self = this;\n var dbInfo = {\n db: null\n };\n\n if (options) {\n for (var i in options) {\n dbInfo[i] = typeof options[i] !== 'string' ? options[i].toString() : options[i];\n }\n }\n\n var dbInfoPromise = new Promise$1(function (resolve, reject) {\n // Open the database; the openDatabase API will automatically\n // create it for us if it doesn't exist.\n try {\n dbInfo.db = openDatabase(dbInfo.name, String(dbInfo.version), dbInfo.description, dbInfo.size);\n } catch (e) {\n return reject(e);\n }\n\n // Create our key/value table if it doesn't exist.\n dbInfo.db.transaction(function (t) {\n createDbTable(t, dbInfo, function () {\n self._dbInfo = dbInfo;\n resolve();\n }, function (t, error) {\n reject(error);\n });\n }, reject);\n });\n\n dbInfo.serializer = localforageSerializer;\n return dbInfoPromise;\n}\n\nfunction tryExecuteSql(t, dbInfo, sqlStatement, args, callback, errorCallback) {\n t.executeSql(sqlStatement, args, callback, function (t, error) {\n if (error.code === error.SYNTAX_ERR) {\n t.executeSql('SELECT name FROM sqlite_master ' + \"WHERE type='table' AND name = ?\", [dbInfo.storeName], function (t, results) {\n if (!results.rows.length) {\n // if the table is missing (was deleted)\n // re-create it table and retry\n createDbTable(t, dbInfo, function () {\n t.executeSql(sqlStatement, args, callback, errorCallback);\n }, errorCallback);\n } else {\n errorCallback(t, error);\n }\n }, errorCallback);\n } else {\n errorCallback(t, error);\n }\n }, errorCallback);\n}\n\nfunction getItem$1(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT * FROM ' + dbInfo.storeName + ' WHERE key = ? LIMIT 1', [key], function (t, results) {\n var result = results.rows.length ? results.rows.item(0).value : null;\n\n // Check to see if this is serialized content we need to\n // unpack.\n if (result) {\n result = dbInfo.serializer.deserialize(result);\n }\n\n resolve(result);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction iterate$1(iterator, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT * FROM ' + dbInfo.storeName, [], function (t, results) {\n var rows = results.rows;\n var length = rows.length;\n\n for (var i = 0; i < length; i++) {\n var item = rows.item(i);\n var result = item.value;\n\n // Check to see if this is serialized content\n // we need to unpack.\n if (result) {\n result = dbInfo.serializer.deserialize(result);\n }\n\n result = iterator(result, item.key, i + 1);\n\n // void(0) prevents problems with redefinition\n // of `undefined`.\n if (result !== void 0) {\n resolve(result);\n return;\n }\n }\n\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction _setItem(key, value, callback, retriesLeft) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n // The localStorage API doesn't return undefined values in an\n // \"expected\" way, so undefined is always cast to null in all\n // drivers. See: https://github.com/mozilla/localForage/pull/42\n if (value === undefined) {\n value = null;\n }\n\n // Save the original value to pass to the callback.\n var originalValue = value;\n\n var dbInfo = self._dbInfo;\n dbInfo.serializer.serialize(value, function (value, error) {\n if (error) {\n reject(error);\n } else {\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'INSERT OR REPLACE INTO ' + dbInfo.storeName + ' ' + '(key, value) VALUES (?, ?)', [key, value], function () {\n resolve(originalValue);\n }, function (t, error) {\n reject(error);\n });\n }, function (sqlError) {\n // The transaction failed; check\n // to see if it's a quota error.\n if (sqlError.code === sqlError.QUOTA_ERR) {\n // We reject the callback outright for now, but\n // it's worth trying to re-run the transaction.\n // Even if the user accepts the prompt to use\n // more storage on Safari, this error will\n // be called.\n //\n // Try to re-run the transaction.\n if (retriesLeft > 0) {\n resolve(_setItem.apply(self, [key, originalValue, callback, retriesLeft - 1]));\n return;\n }\n reject(sqlError);\n }\n });\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction setItem$1(key, value, callback) {\n return _setItem.apply(this, [key, value, callback, 1]);\n}\n\nfunction removeItem$1(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'DELETE FROM ' + dbInfo.storeName + ' WHERE key = ?', [key], function () {\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Deletes every item in the table.\n// TODO: Find out if this resets the AUTO_INCREMENT number.\nfunction clear$1(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'DELETE FROM ' + dbInfo.storeName, [], function () {\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Does a simple `COUNT(key)` to get the number of items stored in\n// localForage.\nfunction length$1(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n // Ahhh, SQL makes this one soooooo easy.\n tryExecuteSql(t, dbInfo, 'SELECT COUNT(key) as c FROM ' + dbInfo.storeName, [], function (t, results) {\n var result = results.rows.item(0).c;\n resolve(result);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Return the key located at key index X; essentially gets the key from a\n// `WHERE id = ?`. This is the most efficient way I can think to implement\n// this rarely-used (in my experience) part of the API, but it can seem\n// inconsistent, because we do `INSERT OR REPLACE INTO` on `setItem()`, so\n// the ID of each key will change every time it's updated. Perhaps a stored\n// procedure for the `setItem()` SQL would solve this problem?\n// TODO: Don't change ID on `setItem()`.\nfunction key$1(n, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT key FROM ' + dbInfo.storeName + ' WHERE id = ? LIMIT 1', [n + 1], function (t, results) {\n var result = results.rows.length ? results.rows.item(0).key : null;\n resolve(result);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction keys$1(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT key FROM ' + dbInfo.storeName, [], function (t, results) {\n var keys = [];\n\n for (var i = 0; i < results.rows.length; i++) {\n keys.push(results.rows.item(i).key);\n }\n\n resolve(keys);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// https://www.w3.org/TR/webdatabase/#databases\n// > There is no way to enumerate or delete the databases available for an origin from this API.\nfunction getAllStoreNames(db) {\n return new Promise$1(function (resolve, reject) {\n db.transaction(function (t) {\n t.executeSql('SELECT name FROM sqlite_master ' + \"WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'\", [], function (t, results) {\n var storeNames = [];\n\n for (var i = 0; i < results.rows.length; i++) {\n storeNames.push(results.rows.item(i).name);\n }\n\n resolve({\n db: db,\n storeNames: storeNames\n });\n }, function (t, error) {\n reject(error);\n });\n }, function (sqlError) {\n reject(sqlError);\n });\n });\n}\n\nfunction dropInstance$1(options, callback) {\n callback = getCallback.apply(this, arguments);\n\n var currentConfig = this.config();\n options = typeof options !== 'function' && options || {};\n if (!options.name) {\n options.name = options.name || currentConfig.name;\n options.storeName = options.storeName || currentConfig.storeName;\n }\n\n var self = this;\n var promise;\n if (!options.name) {\n promise = Promise$1.reject('Invalid arguments');\n } else {\n promise = new Promise$1(function (resolve) {\n var db;\n if (options.name === currentConfig.name) {\n // use the db reference of the current instance\n db = self._dbInfo.db;\n } else {\n db = openDatabase(options.name, '', '', 0);\n }\n\n if (!options.storeName) {\n // drop all database tables\n resolve(getAllStoreNames(db));\n } else {\n resolve({\n db: db,\n storeNames: [options.storeName]\n });\n }\n }).then(function (operationInfo) {\n return new Promise$1(function (resolve, reject) {\n operationInfo.db.transaction(function (t) {\n function dropTable(storeName) {\n return new Promise$1(function (resolve, reject) {\n t.executeSql('DROP TABLE IF EXISTS ' + storeName, [], function () {\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n }\n\n var operations = [];\n for (var i = 0, len = operationInfo.storeNames.length; i < len; i++) {\n operations.push(dropTable(operationInfo.storeNames[i]));\n }\n\n Promise$1.all(operations).then(function () {\n resolve();\n })[\"catch\"](function (e) {\n reject(e);\n });\n }, function (sqlError) {\n reject(sqlError);\n });\n });\n });\n }\n\n executeCallback(promise, callback);\n return promise;\n}\n\nvar webSQLStorage = {\n _driver: 'webSQLStorage',\n _initStorage: _initStorage$1,\n _support: isWebSQLValid(),\n iterate: iterate$1,\n getItem: getItem$1,\n setItem: setItem$1,\n removeItem: removeItem$1,\n clear: clear$1,\n length: length$1,\n key: key$1,\n keys: keys$1,\n dropInstance: dropInstance$1\n};\n\nfunction isLocalStorageValid() {\n try {\n return typeof localStorage !== 'undefined' && 'setItem' in localStorage &&\n // in IE8 typeof localStorage.setItem === 'object'\n !!localStorage.setItem;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getKeyPrefix(options, defaultConfig) {\n var keyPrefix = options.name + '/';\n\n if (options.storeName !== defaultConfig.storeName) {\n keyPrefix += options.storeName + '/';\n }\n return keyPrefix;\n}\n\n// Check if localStorage throws when saving an item\nfunction checkIfLocalStorageThrows() {\n var localStorageTestKey = '_localforage_support_test';\n\n try {\n localStorage.setItem(localStorageTestKey, true);\n localStorage.removeItem(localStorageTestKey);\n\n return false;\n } catch (e) {\n return true;\n }\n}\n\n// Check if localStorage is usable and allows to save an item\n// This method checks if localStorage is usable in Safari Private Browsing\n// mode, or in any other case where the available quota for localStorage\n// is 0 and there wasn't any saved items yet.\nfunction _isLocalStorageUsable() {\n return !checkIfLocalStorageThrows() || localStorage.length > 0;\n}\n\n// Config the localStorage backend, using options set in the config.\nfunction _initStorage$2(options) {\n var self = this;\n var dbInfo = {};\n if (options) {\n for (var i in options) {\n dbInfo[i] = options[i];\n }\n }\n\n dbInfo.keyPrefix = _getKeyPrefix(options, self._defaultConfig);\n\n if (!_isLocalStorageUsable()) {\n return Promise$1.reject();\n }\n\n self._dbInfo = dbInfo;\n dbInfo.serializer = localforageSerializer;\n\n return Promise$1.resolve();\n}\n\n// Remove all keys from the datastore, effectively destroying all data in\n// the app's key/value store!\nfunction clear$2(callback) {\n var self = this;\n var promise = self.ready().then(function () {\n var keyPrefix = self._dbInfo.keyPrefix;\n\n for (var i = localStorage.length - 1; i >= 0; i--) {\n var key = localStorage.key(i);\n\n if (key.indexOf(keyPrefix) === 0) {\n localStorage.removeItem(key);\n }\n }\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Retrieve an item from the store. Unlike the original async_storage\n// library in Gaia, we don't modify return values at all. If a key's value\n// is `undefined`, we pass that value to the callback function.\nfunction getItem$2(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var result = localStorage.getItem(dbInfo.keyPrefix + key);\n\n // If a result was found, parse it from the serialized\n // string into a JS object. If result isn't truthy, the key\n // is likely undefined and we'll pass it straight to the\n // callback.\n if (result) {\n result = dbInfo.serializer.deserialize(result);\n }\n\n return result;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Iterate over all items in the store.\nfunction iterate$2(iterator, callback) {\n var self = this;\n\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var keyPrefix = dbInfo.keyPrefix;\n var keyPrefixLength = keyPrefix.length;\n var length = localStorage.length;\n\n // We use a dedicated iterator instead of the `i` variable below\n // so other keys we fetch in localStorage aren't counted in\n // the `iterationNumber` argument passed to the `iterate()`\n // callback.\n //\n // See: github.com/mozilla/localForage/pull/435#discussion_r38061530\n var iterationNumber = 1;\n\n for (var i = 0; i < length; i++) {\n var key = localStorage.key(i);\n if (key.indexOf(keyPrefix) !== 0) {\n continue;\n }\n var value = localStorage.getItem(key);\n\n // If a result was found, parse it from the serialized\n // string into a JS object. If result isn't truthy, the\n // key is likely undefined and we'll pass it straight\n // to the iterator.\n if (value) {\n value = dbInfo.serializer.deserialize(value);\n }\n\n value = iterator(value, key.substring(keyPrefixLength), iterationNumber++);\n\n if (value !== void 0) {\n return value;\n }\n }\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Same as localStorage's key() method, except takes a callback.\nfunction key$2(n, callback) {\n var self = this;\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var result;\n try {\n result = localStorage.key(n);\n } catch (error) {\n result = null;\n }\n\n // Remove the prefix from the key, if a key is found.\n if (result) {\n result = result.substring(dbInfo.keyPrefix.length);\n }\n\n return result;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction keys$2(callback) {\n var self = this;\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var length = localStorage.length;\n var keys = [];\n\n for (var i = 0; i < length; i++) {\n var itemKey = localStorage.key(i);\n if (itemKey.indexOf(dbInfo.keyPrefix) === 0) {\n keys.push(itemKey.substring(dbInfo.keyPrefix.length));\n }\n }\n\n return keys;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Supply the number of keys in the datastore to the callback function.\nfunction length$2(callback) {\n var self = this;\n var promise = self.keys().then(function (keys) {\n return keys.length;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Remove an item from the store, nice and simple.\nfunction removeItem$2(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n localStorage.removeItem(dbInfo.keyPrefix + key);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Set a key's value and run an optional callback once the value is set.\n// Unlike Gaia's implementation, the callback function is passed the value,\n// in case you want to operate on that value only after you're sure it\n// saved, or something like that.\nfunction setItem$2(key, value, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = self.ready().then(function () {\n // Convert undefined values to null.\n // https://github.com/mozilla/localForage/pull/42\n if (value === undefined) {\n value = null;\n }\n\n // Save the original value to pass to the callback.\n var originalValue = value;\n\n return new Promise$1(function (resolve, reject) {\n var dbInfo = self._dbInfo;\n dbInfo.serializer.serialize(value, function (value, error) {\n if (error) {\n reject(error);\n } else {\n try {\n localStorage.setItem(dbInfo.keyPrefix + key, value);\n resolve(originalValue);\n } catch (e) {\n // localStorage capacity exceeded.\n // TODO: Make this a specific error/event.\n if (e.name === 'QuotaExceededError' || e.name === 'NS_ERROR_DOM_QUOTA_REACHED') {\n reject(e);\n }\n reject(e);\n }\n }\n });\n });\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction dropInstance$2(options, callback) {\n callback = getCallback.apply(this, arguments);\n\n options = typeof options !== 'function' && options || {};\n if (!options.name) {\n var currentConfig = this.config();\n options.name = options.name || currentConfig.name;\n options.storeName = options.storeName || currentConfig.storeName;\n }\n\n var self = this;\n var promise;\n if (!options.name) {\n promise = Promise$1.reject('Invalid arguments');\n } else {\n promise = new Promise$1(function (resolve) {\n if (!options.storeName) {\n resolve(options.name + '/');\n } else {\n resolve(_getKeyPrefix(options, self._defaultConfig));\n }\n }).then(function (keyPrefix) {\n for (var i = localStorage.length - 1; i >= 0; i--) {\n var key = localStorage.key(i);\n\n if (key.indexOf(keyPrefix) === 0) {\n localStorage.removeItem(key);\n }\n }\n });\n }\n\n executeCallback(promise, callback);\n return promise;\n}\n\nvar localStorageWrapper = {\n _driver: 'localStorageWrapper',\n _initStorage: _initStorage$2,\n _support: isLocalStorageValid(),\n iterate: iterate$2,\n getItem: getItem$2,\n setItem: setItem$2,\n removeItem: removeItem$2,\n clear: clear$2,\n length: length$2,\n key: key$2,\n keys: keys$2,\n dropInstance: dropInstance$2\n};\n\nvar sameValue = function sameValue(x, y) {\n return x === y || typeof x === 'number' && typeof y === 'number' && isNaN(x) && isNaN(y);\n};\n\nvar includes = function includes(array, searchElement) {\n var len = array.length;\n var i = 0;\n while (i < len) {\n if (sameValue(array[i], searchElement)) {\n return true;\n }\n i++;\n }\n\n return false;\n};\n\nvar isArray = Array.isArray || function (arg) {\n return Object.prototype.toString.call(arg) === '[object Array]';\n};\n\n// Drivers are stored here when `defineDriver()` is called.\n// They are shared across all instances of localForage.\nvar DefinedDrivers = {};\n\nvar DriverSupport = {};\n\nvar DefaultDrivers = {\n INDEXEDDB: asyncStorage,\n WEBSQL: webSQLStorage,\n LOCALSTORAGE: localStorageWrapper\n};\n\nvar DefaultDriverOrder = [DefaultDrivers.INDEXEDDB._driver, DefaultDrivers.WEBSQL._driver, DefaultDrivers.LOCALSTORAGE._driver];\n\nvar OptionalDriverMethods = ['dropInstance'];\n\nvar LibraryMethods = ['clear', 'getItem', 'iterate', 'key', 'keys', 'length', 'removeItem', 'setItem'].concat(OptionalDriverMethods);\n\nvar DefaultConfig = {\n description: '',\n driver: DefaultDriverOrder.slice(),\n name: 'localforage',\n // Default DB size is _JUST UNDER_ 5MB, as it's the highest size\n // we can use without a prompt.\n size: 4980736,\n storeName: 'keyvaluepairs',\n version: 1.0\n};\n\nfunction callWhenReady(localForageInstance, libraryMethod) {\n localForageInstance[libraryMethod] = function () {\n var _args = arguments;\n return localForageInstance.ready().then(function () {\n return localForageInstance[libraryMethod].apply(localForageInstance, _args);\n });\n };\n}\n\nfunction extend() {\n for (var i = 1; i < arguments.length; i++) {\n var arg = arguments[i];\n\n if (arg) {\n for (var _key in arg) {\n if (arg.hasOwnProperty(_key)) {\n if (isArray(arg[_key])) {\n arguments[0][_key] = arg[_key].slice();\n } else {\n arguments[0][_key] = arg[_key];\n }\n }\n }\n }\n }\n\n return arguments[0];\n}\n\nvar LocalForage = function () {\n function LocalForage(options) {\n _classCallCheck(this, LocalForage);\n\n for (var driverTypeKey in DefaultDrivers) {\n if (DefaultDrivers.hasOwnProperty(driverTypeKey)) {\n var driver = DefaultDrivers[driverTypeKey];\n var driverName = driver._driver;\n this[driverTypeKey] = driverName;\n\n if (!DefinedDrivers[driverName]) {\n // we don't need to wait for the promise,\n // since the default drivers can be defined\n // in a blocking manner\n this.defineDriver(driver);\n }\n }\n }\n\n this._defaultConfig = extend({}, DefaultConfig);\n this._config = extend({}, this._defaultConfig, options);\n this._driverSet = null;\n this._initDriver = null;\n this._ready = false;\n this._dbInfo = null;\n\n this._wrapLibraryMethodsWithReady();\n this.setDriver(this._config.driver)[\"catch\"](function () {});\n }\n\n // Set any config values for localForage; can be called anytime before\n // the first API call (e.g. `getItem`, `setItem`).\n // We loop through options so we don't overwrite existing config\n // values.\n\n\n LocalForage.prototype.config = function config(options) {\n // If the options argument is an object, we use it to set values.\n // Otherwise, we return either a specified config value or all\n // config values.\n if ((typeof options === 'undefined' ? 'undefined' : _typeof(options)) === 'object') {\n // If localforage is ready and fully initialized, we can't set\n // any new configuration values. Instead, we return an error.\n if (this._ready) {\n return new Error(\"Can't call config() after localforage \" + 'has been used.');\n }\n\n for (var i in options) {\n if (i === 'storeName') {\n options[i] = options[i].replace(/\\W/g, '_');\n }\n\n if (i === 'version' && typeof options[i] !== 'number') {\n return new Error('Database version must be a number.');\n }\n\n this._config[i] = options[i];\n }\n\n // after all config options are set and\n // the driver option is used, try setting it\n if ('driver' in options && options.driver) {\n return this.setDriver(this._config.driver);\n }\n\n return true;\n } else if (typeof options === 'string') {\n return this._config[options];\n } else {\n return this._config;\n }\n };\n\n // Used to define a custom driver, shared across all instances of\n // localForage.\n\n\n LocalForage.prototype.defineDriver = function defineDriver(driverObject, callback, errorCallback) {\n var promise = new Promise$1(function (resolve, reject) {\n try {\n var driverName = driverObject._driver;\n var complianceError = new Error('Custom driver not compliant; see ' + 'https://mozilla.github.io/localForage/#definedriver');\n\n // A driver name should be defined and not overlap with the\n // library-defined, default drivers.\n if (!driverObject._driver) {\n reject(complianceError);\n return;\n }\n\n var driverMethods = LibraryMethods.concat('_initStorage');\n for (var i = 0, len = driverMethods.length; i < len; i++) {\n var driverMethodName = driverMethods[i];\n\n // when the property is there,\n // it should be a method even when optional\n var isRequired = !includes(OptionalDriverMethods, driverMethodName);\n if ((isRequired || driverObject[driverMethodName]) && typeof driverObject[driverMethodName] !== 'function') {\n reject(complianceError);\n return;\n }\n }\n\n var configureMissingMethods = function configureMissingMethods() {\n var methodNotImplementedFactory = function methodNotImplementedFactory(methodName) {\n return function () {\n var error = new Error('Method ' + methodName + ' is not implemented by the current driver');\n var promise = Promise$1.reject(error);\n executeCallback(promise, arguments[arguments.length - 1]);\n return promise;\n };\n };\n\n for (var _i = 0, _len = OptionalDriverMethods.length; _i < _len; _i++) {\n var optionalDriverMethod = OptionalDriverMethods[_i];\n if (!driverObject[optionalDriverMethod]) {\n driverObject[optionalDriverMethod] = methodNotImplementedFactory(optionalDriverMethod);\n }\n }\n };\n\n configureMissingMethods();\n\n var setDriverSupport = function setDriverSupport(support) {\n if (DefinedDrivers[driverName]) {\n console.info('Redefining LocalForage driver: ' + driverName);\n }\n DefinedDrivers[driverName] = driverObject;\n DriverSupport[driverName] = support;\n // don't use a then, so that we can define\n // drivers that have simple _support methods\n // in a blocking manner\n resolve();\n };\n\n if ('_support' in driverObject) {\n if (driverObject._support && typeof driverObject._support === 'function') {\n driverObject._support().then(setDriverSupport, reject);\n } else {\n setDriverSupport(!!driverObject._support);\n }\n } else {\n setDriverSupport(true);\n }\n } catch (e) {\n reject(e);\n }\n });\n\n executeTwoCallbacks(promise, callback, errorCallback);\n return promise;\n };\n\n LocalForage.prototype.driver = function driver() {\n return this._driver || null;\n };\n\n LocalForage.prototype.getDriver = function getDriver(driverName, callback, errorCallback) {\n var getDriverPromise = DefinedDrivers[driverName] ? Promise$1.resolve(DefinedDrivers[driverName]) : Promise$1.reject(new Error('Driver not found.'));\n\n executeTwoCallbacks(getDriverPromise, callback, errorCallback);\n return getDriverPromise;\n };\n\n LocalForage.prototype.getSerializer = function getSerializer(callback) {\n var serializerPromise = Promise$1.resolve(localforageSerializer);\n executeTwoCallbacks(serializerPromise, callback);\n return serializerPromise;\n };\n\n LocalForage.prototype.ready = function ready(callback) {\n var self = this;\n\n var promise = self._driverSet.then(function () {\n if (self._ready === null) {\n self._ready = self._initDriver();\n }\n\n return self._ready;\n });\n\n executeTwoCallbacks(promise, callback, callback);\n return promise;\n };\n\n LocalForage.prototype.setDriver = function setDriver(drivers, callback, errorCallback) {\n var self = this;\n\n if (!isArray(drivers)) {\n drivers = [drivers];\n }\n\n var supportedDrivers = this._getSupportedDrivers(drivers);\n\n function setDriverToConfig() {\n self._config.driver = self.driver();\n }\n\n function extendSelfWithDriver(driver) {\n self._extend(driver);\n setDriverToConfig();\n\n self._ready = self._initStorage(self._config);\n return self._ready;\n }\n\n function initDriver(supportedDrivers) {\n return function () {\n var currentDriverIndex = 0;\n\n function driverPromiseLoop() {\n while (currentDriverIndex < supportedDrivers.length) {\n var driverName = supportedDrivers[currentDriverIndex];\n currentDriverIndex++;\n\n self._dbInfo = null;\n self._ready = null;\n\n return self.getDriver(driverName).then(extendSelfWithDriver)[\"catch\"](driverPromiseLoop);\n }\n\n setDriverToConfig();\n var error = new Error('No available storage method found.');\n self._driverSet = Promise$1.reject(error);\n return self._driverSet;\n }\n\n return driverPromiseLoop();\n };\n }\n\n // There might be a driver initialization in progress\n // so wait for it to finish in order to avoid a possible\n // race condition to set _dbInfo\n var oldDriverSetDone = this._driverSet !== null ? this._driverSet[\"catch\"](function () {\n return Promise$1.resolve();\n }) : Promise$1.resolve();\n\n this._driverSet = oldDriverSetDone.then(function () {\n var driverName = supportedDrivers[0];\n self._dbInfo = null;\n self._ready = null;\n\n return self.getDriver(driverName).then(function (driver) {\n self._driver = driver._driver;\n setDriverToConfig();\n self._wrapLibraryMethodsWithReady();\n self._initDriver = initDriver(supportedDrivers);\n });\n })[\"catch\"](function () {\n setDriverToConfig();\n var error = new Error('No available storage method found.');\n self._driverSet = Promise$1.reject(error);\n return self._driverSet;\n });\n\n executeTwoCallbacks(this._driverSet, callback, errorCallback);\n return this._driverSet;\n };\n\n LocalForage.prototype.supports = function supports(driverName) {\n return !!DriverSupport[driverName];\n };\n\n LocalForage.prototype._extend = function _extend(libraryMethodsAndProperties) {\n extend(this, libraryMethodsAndProperties);\n };\n\n LocalForage.prototype._getSupportedDrivers = function _getSupportedDrivers(drivers) {\n var supportedDrivers = [];\n for (var i = 0, len = drivers.length; i < len; i++) {\n var driverName = drivers[i];\n if (this.supports(driverName)) {\n supportedDrivers.push(driverName);\n }\n }\n return supportedDrivers;\n };\n\n LocalForage.prototype._wrapLibraryMethodsWithReady = function _wrapLibraryMethodsWithReady() {\n // Add a stub for each driver API method that delays the call to the\n // corresponding driver method until localForage is ready. These stubs\n // will be replaced by the driver methods as soon as the driver is\n // loaded, so there is no performance impact.\n for (var i = 0, len = LibraryMethods.length; i < len; i++) {\n callWhenReady(this, LibraryMethods[i]);\n }\n };\n\n LocalForage.prototype.createInstance = function createInstance(options) {\n return new LocalForage(options);\n };\n\n return LocalForage;\n}();\n\n// The actual localForage object that we expose as a module or via a\n// global. It's extended by pulling in one of our other libraries.\n\n\nvar localforage_js = new LocalForage();\n\nmodule.exports = localforage_js;\n\n},{\"3\":3}]},{},[4])(4)\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createKey = void 0;\nfunction createKey() {\n return new Date().toISOString() + '/' + Math.random();\n}\nexports.createKey = createKey;\n//# sourceMappingURL=storage-strategy.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BrowserStorage = void 0;\nconst localforage_1 = __importDefault(require(\"localforage\"));\nconst storage_strategy_1 = require(\"./storage-strategy\");\nclass BrowserStorage {\n constructor(storeName) {\n this.store = localforage_1.default.createInstance({\n driver: [localforage_1.default.INDEXEDDB, localforage_1.default.LOCALSTORAGE],\n name: 'sgme_logger',\n storeName,\n });\n }\n async add(logEvent) {\n const key = (0, storage_strategy_1.createKey)();\n try {\n await this.store.setItem(key, logEvent);\n return key;\n }\n catch (err) {\n console.error('@SGME-Logger Failed to serialize event to browser storage. Retrying...', key, err);\n }\n // If failed, try to add again but without the data\n try {\n const logEventWithoutData = Object.assign(Object.assign({}, logEvent), { parameters: ['Could not serialize data'] });\n await this.store.setItem(key, logEventWithoutData);\n return key;\n }\n catch (err) {\n console.error('@SGME-Logger Could not serialize event to browser storage', key, err);\n }\n return undefined;\n }\n batchGet(batchSize) {\n return new Promise((resolve, reject) => {\n const values = [];\n const keys = [];\n this.store\n .iterate((value, key, iterationNumber) => {\n if (iterationNumber > batchSize) {\n return;\n }\n values.push(value);\n keys.push(key);\n })\n .then(() => resolve({ values, keys }))\n .catch(reject);\n });\n }\n async batchRemove(keys) {\n await Promise.all(keys.map((key) => this.store.removeItem(key)));\n }\n}\nexports.BrowserStorage = BrowserStorage;\n//# sourceMappingURL=browser-storage.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LogLevels = void 0;\nvar LogLevels;\n(function (LogLevels) {\n LogLevels[LogLevels[\"DEBUG\"] = 0] = \"DEBUG\";\n LogLevels[LogLevels[\"INFO\"] = 1] = \"INFO\";\n LogLevels[LogLevels[\"WARN\"] = 2] = \"WARN\";\n LogLevels[LogLevels[\"ERROR\"] = 3] = \"ERROR\";\n})(LogLevels = exports.LogLevels || (exports.LogLevels = {}));\n//# sourceMappingURL=log-event.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getLevel = exports.createConsoleLogger = void 0;\nconst log_event_1 = require(\"../input/log-event\");\nfunction createConsoleLogger(consoleConf, actualConsole = console) {\n return function (logEvent) {\n if (!consoleConf.enabled)\n return;\n const { level } = logEvent;\n if (getLevel(consoleConf.minLevel) > getLevel(level)) {\n return;\n }\n const consoleFunction = getConsoleFunction(actualConsole, level);\n consoleFunction(logEvent.messageTemplate, ...logEvent.parameters);\n };\n}\nexports.createConsoleLogger = createConsoleLogger;\nfunction getLevel(level) {\n return log_event_1.LogLevels[level !== null && level !== void 0 ? level : 'DEBUG'];\n}\nexports.getLevel = getLevel;\nfunction getConsoleFunction(consoleImpl, level) {\n switch (level) {\n case 'INFO':\n return consoleImpl.info.bind(consoleImpl);\n case 'WARN':\n return consoleImpl.warn.bind(consoleImpl);\n case 'ERROR':\n return consoleImpl.error.bind(consoleImpl);\n case 'DEBUG':\n default:\n return consoleImpl.debug.bind(consoleImpl);\n }\n}\n//# sourceMappingURL=create-console-logger.js.map","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import rng from './rng.js';\nimport stringify from './stringify.js'; // **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nvar _nodeId;\n\nvar _clockseq; // Previous uuid creation time\n\n\nvar _lastMSecs = 0;\nvar _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || new Array(16);\n options = options || {};\n var node = options.node || _nodeId;\n var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n var seedBytes = options.random || (options.rng || rng)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n var msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n var dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n var tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (var n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || stringify(b);\n}\n\nexport default v1;","import validate from './validate.js';\n\nfunction parse(uuid) {\n if (!validate(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n var v;\n var arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nexport default parse;","import stringify from './stringify.js';\nimport parse from './parse.js';\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n var bytes = [];\n\n for (var i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nexport var DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexport var URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexport default function (name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = parse(namespace);\n }\n\n if (namespace.length !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n var bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return stringify(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","/*\n * Browser-compatible JavaScript MD5\n *\n * Modification of JavaScript MD5\n * https://github.com/blueimp/JavaScript-MD5\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n *\n * Based on\n * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message\n * Digest Algorithm, as defined in RFC 1321.\n * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for more info.\n */\nfunction md5(bytes) {\n if (typeof bytes === 'string') {\n var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = new Uint8Array(msg.length);\n\n for (var i = 0; i < msg.length; ++i) {\n bytes[i] = msg.charCodeAt(i);\n }\n }\n\n return md5ToHexEncodedArray(wordsToMd5(bytesToWords(bytes), bytes.length * 8));\n}\n/*\n * Convert an array of little-endian words to an array of bytes\n */\n\n\nfunction md5ToHexEncodedArray(input) {\n var output = [];\n var length32 = input.length * 32;\n var hexTab = '0123456789abcdef';\n\n for (var i = 0; i < length32; i += 8) {\n var x = input[i >> 5] >>> i % 32 & 0xff;\n var hex = parseInt(hexTab.charAt(x >>> 4 & 0x0f) + hexTab.charAt(x & 0x0f), 16);\n output.push(hex);\n }\n\n return output;\n}\n/**\n * Calculate output length with padding and bit length\n */\n\n\nfunction getOutputLength(inputLength8) {\n return (inputLength8 + 64 >>> 9 << 4) + 14 + 1;\n}\n/*\n * Calculate the MD5 of an array of little-endian words, and a bit length.\n */\n\n\nfunction wordsToMd5(x, len) {\n /* append padding */\n x[len >> 5] |= 0x80 << len % 32;\n x[getOutputLength(len) - 1] = len;\n var a = 1732584193;\n var b = -271733879;\n var c = -1732584194;\n var d = 271733878;\n\n for (var i = 0; i < x.length; i += 16) {\n var olda = a;\n var oldb = b;\n var oldc = c;\n var oldd = d;\n a = md5ff(a, b, c, d, x[i], 7, -680876936);\n d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);\n c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);\n b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);\n a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);\n d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);\n c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);\n b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);\n a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);\n d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);\n c = md5ff(c, d, a, b, x[i + 10], 17, -42063);\n b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);\n a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);\n d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);\n c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);\n b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);\n a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);\n d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);\n c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);\n b = md5gg(b, c, d, a, x[i], 20, -373897302);\n a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);\n d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);\n c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);\n b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);\n a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);\n d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);\n c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);\n b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);\n a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);\n d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);\n c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);\n b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);\n a = md5hh(a, b, c, d, x[i + 5], 4, -378558);\n d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);\n c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);\n b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);\n a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);\n d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);\n c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);\n b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);\n a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);\n d = md5hh(d, a, b, c, x[i], 11, -358537222);\n c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);\n b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);\n a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);\n d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);\n c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);\n b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);\n a = md5ii(a, b, c, d, x[i], 6, -198630844);\n d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);\n c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);\n b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);\n a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);\n d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);\n c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);\n b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);\n a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);\n d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);\n c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);\n b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);\n a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);\n d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);\n c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);\n b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);\n a = safeAdd(a, olda);\n b = safeAdd(b, oldb);\n c = safeAdd(c, oldc);\n d = safeAdd(d, oldd);\n }\n\n return [a, b, c, d];\n}\n/*\n * Convert an array bytes to an array of little-endian words\n * Characters >255 have their high-byte silently ignored.\n */\n\n\nfunction bytesToWords(input) {\n if (input.length === 0) {\n return [];\n }\n\n var length8 = input.length * 8;\n var output = new Uint32Array(getOutputLength(length8));\n\n for (var i = 0; i < length8; i += 8) {\n output[i >> 5] |= (input[i / 8] & 0xff) << i % 32;\n }\n\n return output;\n}\n/*\n * Add integers, wrapping at 2^32. This uses 16-bit operations internally\n * to work around bugs in some JS interpreters.\n */\n\n\nfunction safeAdd(x, y) {\n var lsw = (x & 0xffff) + (y & 0xffff);\n var msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return msw << 16 | lsw & 0xffff;\n}\n/*\n * Bitwise rotate a 32-bit number to the left.\n */\n\n\nfunction bitRotateLeft(num, cnt) {\n return num << cnt | num >>> 32 - cnt;\n}\n/*\n * These functions implement the four basic operations the algorithm uses.\n */\n\n\nfunction md5cmn(q, a, b, x, s, t) {\n return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);\n}\n\nfunction md5ff(a, b, c, d, x, s, t) {\n return md5cmn(b & c | ~b & d, a, b, x, s, t);\n}\n\nfunction md5gg(a, b, c, d, x, s, t) {\n return md5cmn(b & d | c & ~d, a, b, x, s, t);\n}\n\nfunction md5hh(a, b, c, d, x, s, t) {\n return md5cmn(b ^ c ^ d, a, b, x, s, t);\n}\n\nfunction md5ii(a, b, c, d, x, s, t) {\n return md5cmn(c ^ (b | ~d), a, b, x, s, t);\n}\n\nexport default md5;","import v35 from './v35.js';\nimport md5 from './md5.js';\nvar v3 = v35('v3', 0x30, md5);\nexport default v3;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","// Adapted from Chris Veness' SHA1 code at\n// http://www.movable-type.co.uk/scripts/sha1.html\nfunction f(s, x, y, z) {\n switch (s) {\n case 0:\n return x & y ^ ~x & z;\n\n case 1:\n return x ^ y ^ z;\n\n case 2:\n return x & y ^ x & z ^ y & z;\n\n case 3:\n return x ^ y ^ z;\n }\n}\n\nfunction ROTL(x, n) {\n return x << n | x >>> 32 - n;\n}\n\nfunction sha1(bytes) {\n var K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];\n var H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n\n if (typeof bytes === 'string') {\n var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = [];\n\n for (var i = 0; i < msg.length; ++i) {\n bytes.push(msg.charCodeAt(i));\n }\n } else if (!Array.isArray(bytes)) {\n // Convert Array-like to Array\n bytes = Array.prototype.slice.call(bytes);\n }\n\n bytes.push(0x80);\n var l = bytes.length / 4 + 2;\n var N = Math.ceil(l / 16);\n var M = new Array(N);\n\n for (var _i = 0; _i < N; ++_i) {\n var arr = new Uint32Array(16);\n\n for (var j = 0; j < 16; ++j) {\n arr[j] = bytes[_i * 64 + j * 4] << 24 | bytes[_i * 64 + j * 4 + 1] << 16 | bytes[_i * 64 + j * 4 + 2] << 8 | bytes[_i * 64 + j * 4 + 3];\n }\n\n M[_i] = arr;\n }\n\n M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32);\n M[N - 1][14] = Math.floor(M[N - 1][14]);\n M[N - 1][15] = (bytes.length - 1) * 8 & 0xffffffff;\n\n for (var _i2 = 0; _i2 < N; ++_i2) {\n var W = new Uint32Array(80);\n\n for (var t = 0; t < 16; ++t) {\n W[t] = M[_i2][t];\n }\n\n for (var _t = 16; _t < 80; ++_t) {\n W[_t] = ROTL(W[_t - 3] ^ W[_t - 8] ^ W[_t - 14] ^ W[_t - 16], 1);\n }\n\n var a = H[0];\n var b = H[1];\n var c = H[2];\n var d = H[3];\n var e = H[4];\n\n for (var _t2 = 0; _t2 < 80; ++_t2) {\n var s = Math.floor(_t2 / 20);\n var T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[_t2] >>> 0;\n e = d;\n d = c;\n c = ROTL(b, 30) >>> 0;\n b = a;\n a = T;\n }\n\n H[0] = H[0] + a >>> 0;\n H[1] = H[1] + b >>> 0;\n H[2] = H[2] + c >>> 0;\n H[3] = H[3] + d >>> 0;\n H[4] = H[4] + e >>> 0;\n }\n\n return [H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff, H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff, H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff, H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff, H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff];\n}\n\nexport default sha1;","import v35 from './v35.js';\nimport sha1 from './sha1.js';\nvar v5 = v35('v5', 0x50, sha1);\nexport default v5;","export default '00000000-0000-0000-0000-000000000000';","import validate from './validate.js';\n\nfunction version(uuid) {\n if (!validate(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n return parseInt(uuid.substr(14, 1), 16);\n}\n\nexport default version;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LogBuilder = void 0;\nconst configuration_1 = require(\"../configuration/configuration\");\nconst server_log_scheduler_1 = require(\"../output/server/server-log-scheduler\");\nconst browser_storage_1 = require(\"../output/server/storage/browser-storage\");\nconst create_console_logger_1 = require(\"../output/create-console-logger\");\nconst uuid_1 = require(\"uuid\");\nfunction LogBuilder() {\n const configuration = configuration_1.DefaultConfiguration;\n let storageStrategy;\n const builder = {\n enableConsole(conf) {\n configuration.console = {\n enabled: true,\n minLevel: conf === null || conf === void 0 ? void 0 : conf.minLevel,\n };\n return builder;\n },\n setAuthTokenFactory(factory) {\n configuration.authTokenFactory = factory;\n return builder;\n },\n setApplicationHeader(factory) {\n configuration.applicationHeaderFactory = factory;\n return builder;\n },\n enableServerLogs(serverLogConfiguration) {\n configuration.serverLogConf = Object.assign({ enabled: true }, serverLogConfiguration);\n storageStrategy = new browser_storage_1.BrowserStorage(serverLogConfiguration.storeName);\n return builder;\n },\n build() {\n const { authTokenFactory, serverLogConf, console: consoleConf, applicationHeaderFactory } = configuration;\n const consoleLogger = (0, create_console_logger_1.createConsoleLogger)(consoleConf);\n const loggingSessionId = (0, uuid_1.v4)();\n const serverLogScheduler = serverLogConf.enabled\n ? (0, server_log_scheduler_1.makeScheduler)(serverLogConf, storageStrategy, authTokenFactory, applicationHeaderFactory)\n : null;\n function structuredLog(level, messageTemplate, parameters) {\n const event = {\n messageTemplate,\n parameters,\n level,\n '@timestamp': new Date().toISOString(),\n loggingSessionId,\n };\n consoleLogger(event);\n if (event.level != 'DEBUG' && (serverLogScheduler === null || serverLogScheduler === void 0 ? void 0 : serverLogScheduler.isRunning())) {\n storageStrategy === null || storageStrategy === void 0 ? void 0 : storageStrategy.add(event);\n }\n }\n serverLogScheduler === null || serverLogScheduler === void 0 ? void 0 : serverLogScheduler.resume();\n return {\n logDebug(message, ...optionalData) {\n structuredLog('DEBUG', message, optionalData);\n },\n logInformation(message, ...optionalData) {\n structuredLog('INFO', message, optionalData);\n },\n logWarning(message, ...optionalData) {\n structuredLog('WARN', message, optionalData);\n },\n logError(message, ...optionalData) {\n structuredLog('ERROR', message, optionalData);\n },\n resumeServerLogs() {\n serverLogScheduler === null || serverLogScheduler === void 0 ? void 0 : serverLogScheduler.resume();\n },\n pauseServerLogs() {\n serverLogScheduler === null || serverLogScheduler === void 0 ? void 0 : serverLogScheduler.suspend();\n },\n };\n },\n };\n return builder;\n}\nexports.LogBuilder = LogBuilder;\n//# sourceMappingURL=log-builder.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./builder/log-builder\"), exports);\n//# sourceMappingURL=index.js.map","import { LogBuilder } from '@sgme/logger';\nimport { sgwtConnect } from '@/widgets/sgwtConnect';\nimport { getConfig } from '@/config/config';\n\nconst appConfig = getConfig();\nconst isProd = appConfig?.env === 'prod';\nconst logBuilder = LogBuilder();\n\nif (isProd) {\n logBuilder\n .enableServerLogs({\n url: `${appConfig.apiUrl}/api/log`,\n prefix: '[LMAForex]', //todo check it matches needed index ?\n storeName: 'main',\n })\n .setAuthTokenFactory(() => {\n if (sgwtConnect.isAuthorized()) {\n const authToken = sgwtConnect.getAuthorizationHeader();\n if (authToken) return authToken;\n }\n throw new Error('No authorization header or token. Disconnected ?!');\n });\n} else {\n logBuilder.enableConsole();\n}\n\nexport const logger = logBuilder.build();\n","import { RootState } from '@/state/store';\nimport { createSlice, PayloadAction } from '@reduxjs/toolkit';\n\nexport interface StreamingState {\n state: 'connected' | 'pending' | 'disconnected';\n connectionId: string | undefined;\n}\n\nconst initialState: StreamingState = {\n state: 'pending',\n connectionId: undefined,\n};\n\nexport const streamingSlice = createSlice({\n name: 'streaming',\n initialState,\n reducers: {\n streamingStateChanged: (state, action: PayloadAction) => {\n state.state = action.payload.state;\n state.connectionId = action.payload.connectionId;\n },\n },\n});\n\nexport const { streamingStateChanged } = streamingSlice.actions;\n\nexport const selectStreamingInfo = (state: RootState) => state.streaming;\n\nexport default streamingSlice.reducer;\n","import { retry } from '@/core/signalR/retry';\nimport { HubConnection, HubConnectionBuilder, LogLevel, RetryContext } from '@microsoft/signalr';\nimport { sgwtConnect } from '@/widgets/sgwtConnect';\nimport { getConfig } from '@/config/config';\nimport { logger } from '@/core/logger';\nimport { streamingStateChanged } from '@/features/streaming/streamingSlice';\nimport { AppDispatch } from '@/state/store';\n\nconst MAX_RETRIES = 5;\nconst DELAY_MS = 1_000;\nconst RECONNECT_DELAY = 500;\n\nconst {\n streaming: { hubUrl },\n} = getConfig();\nfunction getAuthorizationToken(): string | undefined {\n const authorizationHeader = sgwtConnect.getAuthorizationHeader();\n if (authorizationHeader === null) {\n return undefined;\n }\n return authorizationHeader.replace('Bearer ', '');\n}\n\nfunction createSignalrConnection(): HubConnection {\n return new HubConnectionBuilder()\n .withUrl(hubUrl, {\n accessTokenFactory: () => getAuthorizationToken() ?? '',\n })\n .configureLogging(LogLevel.Information)\n .withAutomaticReconnect({\n nextRetryDelayInMilliseconds: (retryContext: RetryContext) => {\n const {\n previousRetryCount,\n elapsedMilliseconds,\n retryReason: { stack: retryReasonStack },\n } = retryContext;\n logger.logWarning(\n 'Attempt to auto reconnect. Retry count: {previousRetryCount_n}. Time spend reconnecting in ms: {elapsedMilliseconds_n}. Reason: {retryReasonStack_s}',\n previousRetryCount,\n elapsedMilliseconds,\n JSON.stringify(retryReasonStack),\n );\n\n if (retryContext.elapsedMilliseconds < 60 * 1000) {\n return RECONNECT_DELAY;\n } else {\n return RECONNECT_DELAY * 10;\n }\n },\n })\n .build();\n}\n\nexport const signalrConnection = createSignalrConnection();\n\nexport const startConnection = (dispatch: AppDispatch) =>\n retry(() => signalrConnection.start(), { maxRetries: MAX_RETRIES, delayMs: DELAY_MS }).then(\n () => {\n const connectionId = signalrConnection.connectionId!;\n logger.logInformation('Established signalR connection for {connectionId}', connectionId);\n dispatch(streamingStateChanged({ state: 'connected', connectionId }));\n },\n () => {\n logger.logError(\n 'Fail to establish signalR connection for {connectionId}',\n signalrConnection.connectionId,\n );\n },\n );\n","import { PayloadAction, createSlice } from '@reduxjs/toolkit';\nimport { Vacation } from './vacationModel';\n\ninterface VacationState {\n lastVacation: Vacation | null;\n}\n\nconst initialState = { lastVacation: null } as VacationState;\n\nconst vacationSlice = createSlice({\n name: 'vacation',\n initialState,\n reducers: {\n setLastVacation(state, action: PayloadAction) {\n state.lastVacation = action.payload;\n },\n },\n});\n\nexport const { setLastVacation } = vacationSlice.actions;\n\nexport default vacationSlice.reducer;\n","import { RootState } from '@/state/store';\nimport { PayloadAction, createSelector, createSlice, nanoid } from '@reduxjs/toolkit';\n\nexport type ErrorType = 'TechnicalError' | 'FunctionalError' | 'PayloadFormatError';\n\ntype TechnicalError = 'TE_01';\ntype FunctionalError = 'FE_01' | 'FE_02';\ntype PayloadFormatError = 'PF_01';\n\ntype ErrorCode = TechnicalError | FunctionalError | PayloadFormatError;\n\nexport type AvailableField = 'spotRate.bid' | 'spotRate.ask' | 'swapPoint.bid' | 'swapPoint.ask';\n\nexport type BackendError = {\n errorId: ErrorCode;\n description: string;\n fields?: AvailableField[];\n};\n\nexport type StateBackendError = BackendError & { dealId: string; show: boolean };\nexport type DealsAction = 'SAVE' | 'SEND' | 'DISCARD' | 'CONVERT' | 'REFRESH' | 'DELETE';\n\ninterface ErrorsState {\n errorsToDisplay: Record;\n}\n\nconst initialState = { displayGrowl: true, errorsToDisplay: {}, fieldsInError: {} } as ErrorsState;\n\nconst errorsSlice = createSlice({\n name: 'errors',\n initialState,\n reducers: {\n addErrorToShow: (\n state: ErrorsState,\n action: PayloadAction<{\n stateBackendErrors: Omit[];\n dealsAction: DealsAction;\n }>,\n ) => {\n action.payload.stateBackendErrors.forEach(({ description, errorId, fields, dealId }) => {\n state.errorsToDisplay[nanoid()] = { description, errorId, fields, dealId, show: true };\n });\n },\n hideError: (state: ErrorsState, action: PayloadAction) => {\n state.errorsToDisplay[action.payload] = {\n ...state.errorsToDisplay[action.payload],\n show: false,\n };\n },\n removeErrorToShow: (state, action: PayloadAction) => {\n const { [action.payload]: _removedProperty, ...remainingObject } = state.errorsToDisplay;\n state.errorsToDisplay = remainingObject;\n },\n },\n});\n\nexport const { addErrorToShow, removeErrorToShow, hideError } = errorsSlice.actions;\n\nexport const getErrorsToDisplay = (state: RootState) => state.errors.errorsToDisplay;\n\nconst getDealId = (_state: RootState, dealId: string) => dealId;\n\nexport const getErrorDealById = createSelector(\n [getErrorsToDisplay, getDealId],\n (dealsInError, dealId) =>\n Object.values(dealsInError).find((stateBackendError) => stateBackendError.dealId === dealId),\n);\n\nexport const getErrorInputsByDealId = createSelector(\n [getErrorsToDisplay, getDealId],\n (dealsInError, dealId) => {\n const errorForDeal = Object.values(dealsInError).find(\n (stateBackendError) => stateBackendError.dealId === dealId,\n );\n return errorForDeal?.fields ?? [];\n },\n);\n\n/**\n * Return tuple with stateId to facilite delete inside state\n */\nexport const getErrorByDealId = createSelector(\n [getErrorsToDisplay, getDealId],\n (dealsInError, dealId) =>\n Object.entries(dealsInError).filter(\n ([_stateID, { dealId: currentDealId }]) => currentDealId === dealId,\n ),\n);\nexport default errorsSlice.reducer;\n","import { getConfig } from '@/config/config';\nimport { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react';\nimport { prepareHeaders } from './prepareHeader';\nimport {\n Amount,\n BidAsk,\n BookingStatus,\n Product,\n Vacation,\n} from '@/features/vacation/vacationModel';\nimport { vacationApi } from './vacation.api';\nimport { DateTime as LuxonDatetime } from 'luxon';\nimport { RepriceProps } from '@/components/booking/DealsActions/RepriceButton';\nimport { isDefined } from '@sgme/fp';\nimport { addErrorToShow, BackendError, StateBackendError } from '@/features/errors/errorsSlice';\n\n// Define a service using a base URL and expected endpoints\nexport const dealsApi = createApi({\n reducerPath: 'dealsApi',\n baseQuery: fetchBaseQuery({ baseUrl: `${getConfig().apiUrl}/api/deals`, prepareHeaders }),\n tagTypes: ['Deals'],\n endpoints: (builder) => ({\n saveDeals: builder.mutation({\n query(data) {\n return {\n url: '',\n method: 'PATCH',\n body: data,\n };\n },\n async onQueryStarted(_savePayload, { queryFulfilled, dispatch }) {\n try {\n const { data: savedDeals } = await queryFulfilled;\n\n const failedDeals = getBackendErrors(savedDeals);\n\n if (failedDeals.length > 0) {\n dispatch(addErrorToShow({ stateBackendErrors: failedDeals, dealsAction: 'SAVE' }));\n }\n } catch {\n // todo-Error_Mgt\n }\n },\n }),\n sendDeals: builder.mutation({\n query(data) {\n return {\n url: '/send',\n method: 'POST',\n body: data,\n };\n },\n async onQueryStarted(_sendDealPayload, { queryFulfilled, dispatch }) {\n try {\n const { data: sendedDeals } = await queryFulfilled;\n\n const failedDeals = getBackendErrors(sendedDeals);\n\n if (failedDeals.length > 0) {\n dispatch(addErrorToShow({ stateBackendErrors: failedDeals, dealsAction: 'SEND' }));\n }\n } catch {\n // todo-Error_Mgt\n }\n },\n }),\n discardDeals: builder.mutation({\n query(data) {\n return {\n url: '/discard',\n method: 'POST',\n body: data,\n };\n },\n async onQueryStarted(_discardDealPayload, { queryFulfilled, dispatch }) {\n try {\n const { data: discardedDeals } = await queryFulfilled;\n\n const failedDeals = getBackendErrors(discardedDeals);\n\n if (failedDeals.length > 0) {\n dispatch(addErrorToShow({ stateBackendErrors: failedDeals, dealsAction: 'DISCARD' }));\n }\n } catch {\n // todo-Error_Mgt\n }\n },\n }),\n refreshDeal: builder.mutation({\n query(data) {\n return {\n url: '/refresh',\n method: 'POST',\n body: formatMetadata(data),\n };\n },\n async onQueryStarted(unfilteredPayload, { queryFulfilled, dispatch }) {\n try {\n const { data: updatedDeals } = await queryFulfilled;\n\n const failedDeals = getBackendErrors(updatedDeals);\n\n if (failedDeals.length > 0) {\n dispatch(addErrorToShow({ stateBackendErrors: failedDeals, dealsAction: 'REFRESH' }));\n }\n\n dispatch(\n //update deals in cache - undefined is passed to match the getVacations call as per https://redux-toolkit.js.org/rtk-query/api/created-api/api-slice-utils#example-1\n vacationApi.util.updateQueryData('getVacations', undefined, (draft) => {\n unfilteredPayload.forEach((payload) => {\n updateDealsWithNewValues(draft, updatedDeals, payload);\n });\n }),\n );\n } catch {\n // todo-Error_Mgt\n }\n },\n }),\n DeleteDeal: builder.mutation({\n query(data) {\n return {\n url: '',\n method: 'DELETE',\n body: data,\n };\n },\n async onQueryStarted(_deleteDealPayload, { queryFulfilled, dispatch }) {\n try {\n const { data: deletedDeals } = await queryFulfilled;\n\n const failedDeals = getBackendErrors(deletedDeals);\n\n if (failedDeals.length > 0) {\n dispatch(addErrorToShow({ stateBackendErrors: failedDeals, dealsAction: 'DELETE' }));\n }\n } catch {\n // todo-Error_Mgt\n }\n },\n }),\n convertDeals: builder.mutation({\n query(data) {\n return {\n url: '/convert',\n method: 'POST',\n body: data.deals,\n };\n },\n async onQueryStarted({ vacationId, currency2, currency1 }, { queryFulfilled, dispatch }) {\n try {\n const { data: convertedDeals } = await queryFulfilled;\n\n const failedDeals = getBackendErrors(convertedDeals);\n\n if (failedDeals.length > 0) {\n dispatch(addErrorToShow({ stateBackendErrors: failedDeals, dealsAction: 'CONVERT' }));\n }\n\n dispatch(\n //update deals in cache - undefined is passed to match the getVacations call as per https://redux-toolkit.js.org/rtk-query/api/created-api/api-slice-utils#example-1\n vacationApi.util.updateQueryData('getVacations', undefined, (draft) => {\n updateDealsWithNewValues(draft, convertedDeals, { vacationId, currency2, currency1 });\n }),\n );\n } catch {\n // todo-Error_Mgt\n }\n },\n }),\n }),\n});\n\nexport const {\n useSaveDealsMutation,\n useSendDealsMutation,\n useDiscardDealsMutation,\n useDeleteDealMutation,\n useRefreshDealMutation,\n useConvertDealsMutation,\n} = dealsApi;\n\ntype CommonResponseMetaData = {\n dealId: string;\n status?: 'OK' | 'FAILED';\n};\n\ntype ResponseWithPossiblyFailureReasons = T &\n CommonResponseMetaData & {\n failureReasons?: BackendError[];\n };\ntype ResponseWithFailureReasons = T &\n CommonResponseMetaData & {\n failureReasons: BackendError[];\n };\n\n/**\n * Return a flatmap of BackendErrors\n * @param responseDeals\n * @returns\n */\nfunction getBackendErrors(\n responseDeals: ResponseWithPossiblyFailureReasons[],\n): Omit[] {\n // Use to filter undefined response (typescript)\n const isFailureReason = (\n item: ResponseWithPossiblyFailureReasons | undefined,\n ): item is ResponseWithFailureReasons => !!item;\n\n const failedDeals = responseDeals\n .filter(\n (deal) =>\n deal.status === 'FAILED' || // Status failed doesn't exist on convert response only failureReasons is present\n (isDefined(deal.failureReasons) && deal.failureReasons.length > 0),\n )\n .filter(isFailureReason) // All failed response have mandatory failureReasons attribute\n .flatMap(({ dealId, failureReasons }) =>\n failureReasons.map((backendError) => ({ ...backendError, dealId })),\n );\n\n return failedDeals;\n}\n\n/**\n * Use to remove metadata that is usefull in handling response but not wanted in the request\n * Also we update format of the date to match prerequis backend\n * @param dataWithMetadata\n * @returns\n */\nfunction formatMetadata(dataWithMetadata: PrepareRefreshPayload[]): RefreshPayload[] {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n return dataWithMetadata.map(({ currency1, currency2, vacationId, proposedDate, ...rest }) => {\n const formattedProposedDate = LuxonDatetime.fromISO(proposedDate)\n .setLocale('en-US')\n .toFormat('yyyy-LL-dd');\n return { ...rest, proposedDate: formattedProposedDate } as RefreshPayload;\n });\n}\n\nfunction updateDealsWithNewValues(\n vacationStateDraft: Vacation[],\n dealsValuesToUpdate: RefreshDealResponse[] | ConvertDealResponse[],\n payload: DealPayloadMetaData,\n) {\n const { currency1, currency2, vacationId } = payload;\n\n dealsValuesToUpdate.forEach((dealValues) => {\n const targetedVacation = vacationStateDraft.find((vacation) => vacation.id === vacationId);\n const targetedCurrencyPair = targetedVacation?.currencyPairs.find(\n (currencyPair) =>\n currencyPair.currency1 === currency1 && currencyPair.currency2 === currency2,\n );\n\n const targetedDeal = targetedCurrencyPair?.deals.find((deal) => deal.id === dealValues.dealId);\n\n targetedDeal!.originalAmount = dealValues.originalAmount;\n targetedDeal!.computedAmount = dealValues.computedAmount;\n targetedDeal!.marketRate = dealValues.marketRate;\n targetedDeal!.clientRate = dealValues.clientRate;\n\n if (isRefreshDealPayload(dealValues)) {\n targetedDeal!.spotRate = dealValues.spotRate;\n targetedDeal!.swapPoint = dealValues.swapPoint;\n }\n });\n}\n\nconst isRefreshDealPayload = (\n dealValues: RefreshDealResponse | ConvertDealResponse,\n): dealValues is RefreshDealResponse => (dealValues as RefreshDealResponse).spotRate !== undefined;\n\n// Save Deal\n// Payload\nexport type SavePayload = {\n vacationId: string;\n dealId: string;\n currencyPairId: string;\n currencyPair: string;\n dealOwner: string; // sesameId from sgIAM\n originalAmount: Amount;\n computedAmount: Amount;\n spotRate: BidAsk;\n swapPoint: BidAsk;\n margin: number;\n marketRate: number;\n clientRate: number;\n product: Product;\n};\n\n// Response\nexport type SaveDealResponse = SaveDealResponseSuccess & {\n failureReasons?: BackendError[];\n};\n\nexport type SaveDealResponseSuccess = {\n dealId: string;\n status: 'OK';\n};\n\n// Send Deal\n// Payload\nexport type SendPayload = {\n vacationId: string;\n dealId: string;\n counterparty: string;\n currencyPairId: string;\n currencyPair: string;\n dealOwner: string; // sesameId from sgIAM\n originalAmount: Amount;\n computedAmount: Amount;\n spotRate: BidAsk;\n swapPoint: BidAsk;\n margin: number;\n marketRate: number;\n clientRate: number;\n product: Product;\n};\n\n// Response\nexport type SendDealResponse = SendDealResponseSuccess & {\n failureReasons?: BackendError[];\n};\nexport type SendDealResponseSuccess = {\n dealId: string;\n status: 'OK';\n};\n\n// Discard Deal\n// Payload\nexport type DiscardPayload = {\n vacationId: string;\n dealId: string;\n counterparty: string;\n currencyPairId: string;\n currencyPair: string;\n dealOwner: string; // sesameId from sgIAM\n originalAmount: Amount;\n computedAmount: Amount;\n spotRate: BidAsk;\n swapPoint: BidAsk;\n margin: number;\n marketRate: number;\n clientRate: number;\n product: Product;\n};\n\n// Response\nexport type DiscardDealResponse = DiscardDealResponseSuccess & {\n failureReasons?: BackendError[];\n};\nexport type DiscardDealResponseSuccess = {\n dealId: string;\n status: 'OK';\n};\n\n// RefreshDeal\n// Payload\nexport type RefreshPayload = {\n dealId: string;\n product: Product;\n currencyPair: string;\n proposedDate: string;\n};\n\nexport type PrepareRefreshPayload = RefreshPayload & DealPayloadMetaData;\n\ntype DealPayloadMetaData = {\n currency1: string;\n currency2: string;\n vacationId: string;\n};\n\n// Delete Deal\n// Payload\nexport type DeletePayload = {\n dealId: string;\n vacationId: string;\n dealOwner: string; // sesameId from sgIAM\n product: Product;\n currencyPairId: string;\n};\n\n// Response\nexport type DeleteDealResponse = DeletedDealResponseSuccess & {\n failureReasons?: BackendError[];\n};\nexport type DeletedDealResponseSuccess = {\n dealId: string;\n status: 'OK';\n};\n\ntype CommonDealResponse = {\n dealId: string;\n originalAmount: Amount;\n computedAmount: Amount;\n marketRate: number;\n clientRate: number;\n};\n\n// Response\nexport type RefreshDealResponse = CommonDealResponse & {\n spotRate: BidAsk;\n swapPoint: BidAsk;\n} & { failureReasons?: BackendError[] };\n\nexport type RefreshDealResponseError = RefreshDealResponse & { failureReasons: BackendError[] };\n\n// todo add error case\ntype ConvertDealResponse = ConvertDealResponseSuccess & {\n failureReasons?: BackendError[];\n};\n\ntype ConvertDealResponseSuccess = CommonDealResponse;\n\nexport type ConvertPayload = {\n deals: DealsPayload[];\n vacationId: string;\n currency1: string;\n currency2: string;\n};\n\nexport type DealsPayload = {\n dealId: string;\n product: Product;\n spotRate: {\n bid: number;\n ask: number;\n };\n swapPoint: {\n bid: number;\n ask: number;\n };\n};\n\nexport const updateStatusOnDeals = (deals: RepriceProps[], status: BookingStatus = 'TODO') =>\n vacationApi.util.updateQueryData('getVacations', undefined, (draftVacations) => {\n deals.forEach((deal) => {\n const currentVacation = draftVacations.find((vacation) => vacation.isCurrent);\n\n const targetedCurrencyPair = currentVacation?.currencyPairs.find(\n (currencyPair) =>\n currencyPair.currency1 === deal.currency1 && currencyPair.currency2 === deal.currency2,\n );\n\n const targetedDeal = targetedCurrencyPair?.deals.find(\n (draftDeal) => draftDeal.id === deal.dealId,\n );\n\n if (isDefined(targetedDeal)) {\n targetedDeal.status = status;\n }\n });\n });\n","import { RootState } from '@/state/store';\nimport { createSlice, isAnyOf, PayloadAction } from '@reduxjs/toolkit';\nimport { dealsApi } from '@/api/deals.api';\nimport { BookingStatus, Deal } from '../vacation/vacationModel';\nimport { isNotDefined } from '@sgme/fp';\nimport { addErrorToShow } from '../errors/errorsSlice';\n\nexport type InputsKey = 'spotRate.bid' | 'spotRate.ask' | 'swapPoint.bid' | 'swapPoint.ask';\n\nexport type EditInput = {\n [x in InputsKey]: number | null;\n};\n\ntype BlotterState = {\n inputs: Record;\n isReadOnly: boolean;\n convertedDealsId: string[];\n tabPosition: {\n rowId: null | string;\n columnId: null | InputsKey;\n };\n selectedStatusDeal: BookingStatus | null;\n selectedRows: Deal[];\n};\n\nconst initialState: BlotterState = {\n inputs: {},\n isReadOnly: false,\n convertedDealsId: [],\n tabPosition: {\n rowId: null,\n columnId: null,\n },\n selectedStatusDeal: null,\n selectedRows: [],\n};\n\ntype UpdateInputAction = {\n dealId: string;\n inputKey: InputsKey;\n value: number | null;\n};\n\ntype UpdateTabPositionAction = {\n rowId: string | null;\n columnId: InputsKey | null;\n};\n\nconst blotterSlice = createSlice({\n name: 'blotter',\n initialState,\n reducers: {\n updateInput(state, { payload: { dealId, inputKey, value } }: PayloadAction) {\n const draft = state.inputs[dealId];\n state.inputs[dealId] = { ...draft, [inputKey]: value };\n },\n updateNextTabPosition(\n state,\n { payload: { rowId, columnId } }: PayloadAction,\n ) {\n state.tabPosition.rowId = rowId;\n state.tabPosition.columnId = columnId;\n },\n clearBlotter() {\n // immer does not seem to allow a full override on the root state therefore we use\n // the classic way of returning a new whole state\n return initialState;\n },\n setSelectedStatusDeal(\n state,\n { payload: { dealStatus } }: PayloadAction<{ dealStatus: BookingStatus | null }>,\n ) {\n state.selectedStatusDeal = dealStatus;\n },\n setSelectedRows(state, { payload: { selectedRows } }: PayloadAction<{ selectedRows: Deal[] }>) {\n state.selectedRows = selectedRows;\n },\n resetSelectedRows(state) {\n state.selectedRows = initialState.selectedRows;\n state.selectedStatusDeal = initialState.selectedStatusDeal;\n }\n },\n extraReducers: (builder) => {\n builder.addMatcher(\n isAnyOf(\n // for any backend action we should make the UI readOnly while handling it\n dealsApi.endpoints.refreshDeal.matchPending,\n dealsApi.endpoints.saveDeals.matchPending,\n dealsApi.endpoints.convertDeals.matchPending,\n dealsApi.endpoints.discardDeals.matchPending,\n dealsApi.endpoints.sendDeals.matchPending\n ),\n (state) => {\n state.isReadOnly = true;\n },\n );\n /**\n * Fallback to allow edit on the blotter when an error occurs\n */\n builder.addMatcher(\n isAnyOf(\n dealsApi.endpoints.refreshDeal.matchRejected,\n dealsApi.endpoints.saveDeals.matchRejected,\n dealsApi.endpoints.convertDeals.matchRejected,\n dealsApi.endpoints.discardDeals.matchRejected,\n dealsApi.endpoints.sendDeals.matchRejected,\n ),\n (state) => {\n state.isReadOnly = false;\n },\n );\n builder.addMatcher(\n isAnyOf(\n dealsApi.endpoints.refreshDeal.matchFulfilled,\n dealsApi.endpoints.saveDeals.matchFulfilled,\n ),\n (state, action) => {\n const savedDealsId = action.payload.map((deal) => deal.dealId);\n\n // remove ids that needs to be unstyled\n state.convertedDealsId = state.convertedDealsId.filter(\n (dealId) => !savedDealsId.includes(dealId),\n );\n\n // clear input that needs to be unstyled\n savedDealsId.forEach(\n (dealId) =>\n (state.inputs[dealId] = {\n ['spotRate.ask']: null,\n ['spotRate.bid']: null,\n ['swapPoint.ask']: null,\n ['swapPoint.bid']: null,\n }),\n );\n },\n );\n builder.addMatcher(\n isAnyOf(\n // when back end actions are success the blotter isn't read only any more\n dealsApi.endpoints.refreshDeal.matchFulfilled,\n dealsApi.endpoints.saveDeals.matchFulfilled,\n dealsApi.endpoints.convertDeals.matchFulfilled,\n dealsApi.endpoints.discardDeals.matchFulfilled,\n dealsApi.endpoints.sendDeals.matchFulfilled\n ),\n // whenever the refresh and save action are fulfilled we should\n // make the blotter editable again and remove any UI style that applies to\n // user modification as we have now persisted the changes on the backend\n (state) => {\n state.isReadOnly = false;\n state.selectedStatusDeal = null;\n state.selectedRows = [];\n },\n );\n\n // whenever the convert request is fulfilled, we should\n // indicate to the user what data has been impacted\n builder.addMatcher(\n isAnyOf(dealsApi.endpoints?.convertDeals.matchFulfilled),\n (state, action) => {\n action.payload\n .filter((deal) => isNotDefined(deal.failureReasons) || deal.failureReasons.length === 0)\n .forEach((deal) => {\n if (!state.convertedDealsId.includes(deal.dealId)) {\n state.convertedDealsId.push(deal.dealId);\n }\n });\n },\n );\n\n builder.addMatcher(isAnyOf(addErrorToShow), (state, action) => {\n const dealsInError = action.payload.stateBackendErrors.map((deal) => deal.dealId);\n // remove ids that needs to be unstyled\n state.convertedDealsId = state.convertedDealsId.filter(\n (dealId) => !dealsInError.includes(dealId),\n );\n });\n },\n});\nexport const {\n updateInput,\n updateNextTabPosition,\n clearBlotter,\n setSelectedStatusDeal,\n setSelectedRows,\n resetSelectedRows\n} = blotterSlice.actions;\n\nexport default blotterSlice.reducer;\n\nexport const getUpdatedInputsAll = (state: RootState) => state.blotter.inputs;\n\nexport const getUpdatedInputsByDealId = (state: RootState, dealId: string) =>\n state.blotter.inputs[dealId];\n\nexport const getUpdatedInputByIdAndFieldName = (\n state: RootState,\n dealId: string,\n fieldName: InputsKey,\n) => getUpdatedInputsByDealId(state, dealId)?.[fieldName] ?? null;\n\nexport const isBlotterReadOnly = (state: RootState) => state.blotter.isReadOnly;\n\nexport const getSelectedDealStatus = (state: RootState) => state.blotter.selectedStatusDeal;\nexport const getSelectedRows = (state: RootState) => state.blotter.selectedRows;\n","import { ClosedVacationEventData, CurrencyPair, Vacation } from '@/features/vacation/vacationModel';\nimport { PatchCollection, Recipe } from '@reduxjs/toolkit/dist/query/core/buildThunks';\nimport { isDefined } from '@sgme/fp';\nimport { setLastVacation } from '@/features/vacation/vacationSlice';\nimport { AnyAction, ThunkDispatch } from '@reduxjs/toolkit';\nimport { clearBlotter } from '@/features/blotter/blotterSlice';\n\ntype NewVacationPayload = {\n eventType: 'NEW_VACATION_RECEIVED';\n eventData: { vacation: Vacation };\n};\n\ntype ClosedVacationPayload = {\n eventType: 'VACATION_CLOSED';\n eventData: ClosedVacationEventData;\n};\n\nexport type DealsUpdatedPayload = {\n eventType: 'DEALS_UPDATED';\n eventData: {\n vacationId: string;\n currencyPair: CurrencyPair;\n status: string;\n };\n};\n\nexport type DealsDeletePayload = {\n eventType: 'DEALS_DELETED';\n eventData: {\n vacationId: string;\n currencyPair: CurrencyPair;\n status: string;\n };\n};\n\nexport type DealsSentPayload = {\n eventType: 'DEALS_SENT';\n eventData: {\n vacationId: string;\n currencyPair: CurrencyPair;\n status: string;\n };\n};\n\nexport type DealsDiscardedPayload = {\n eventType: 'DEALS_DISCARDED';\n eventData: {\n vacationId: string;\n currencyPair: CurrencyPair;\n status: string;\n };\n};\n\nexport type VacationNotificationPayload =\n | NewVacationPayload\n | ClosedVacationPayload\n | DealsUpdatedPayload\n | DealsDeletePayload\n | DealsDiscardedPayload\n | DealsSentPayload;\n\nexport const handleVacationEvent = (\n updateCachedData: (updateRecipe: Recipe) => PatchCollection,\n { eventType, eventData }: VacationNotificationPayload,\n dispatch: ThunkDispatch,\n) => {\n switch (eventType) {\n case 'NEW_VACATION_RECEIVED': {\n updateCachedData((draft) => {\n draft.unshift(eventData.vacation);\n });\n dispatch(setLastVacation(eventData.vacation));\n break;\n }\n case 'VACATION_CLOSED': {\n updateCachedData((draft) => {\n const currentVacation = draft.find((vacation) => vacation.isCurrent);\n\n if (isDefined(currentVacation)) {\n currentVacation.isCurrent = false;\n }\n dispatch(clearBlotter());\n });\n break;\n }\n case 'DEALS_DELETED':\n case 'DEALS_SENT':\n case 'DEALS_DISCARDED':\n case 'DEALS_UPDATED': {\n updateCachedData((draft) => { \n const currentVacation = draft.find(\n (vacation) => vacation.id === eventData.vacationId && vacation.isCurrent,\n );\n\n if (isDefined(currentVacation)) {\n currentVacation.currencyPairs = currentVacation.currencyPairs.map((currencyPair) => {\n if (currencyPair.id === eventData.currencyPair.id) {\n return eventData.currencyPair;\n }\n\n return currencyPair;\n });\n }\n });\n break;\n }\n }\n};\n","import { getConfig } from '@/config/config';\nimport { Vacation } from '@/features/vacation/vacationModel';\nimport { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react';\nimport { prepareHeaders } from './prepareHeader';\nimport { signalrConnection, startConnection } from '@/core/signalR/signalr.service';\nimport { handleVacationEvent, VacationNotificationPayload } from '@/api/vacation.service';\n\n// Define a service using a base URL and expected endpoints\nexport const vacationApi = createApi({\n reducerPath: 'vacationApi',\n baseQuery: fetchBaseQuery({ baseUrl: `${getConfig().apiUrl}/api/vacations`, prepareHeaders }),\n endpoints: (builder) => ({\n getVacations: builder.query({\n query: () => `/`,\n async onCacheEntryAdded(\n arg,\n { dispatch, updateCachedData, cacheDataLoaded, cacheEntryRemoved },\n ) {\n //start signalR connexion\n await startConnection(dispatch);\n\n try {\n // wait for the initial query to resolve before proceeding\n await cacheDataLoaded;\n\n signalrConnection.on('ReceiveNotification', (payload: VacationNotificationPayload) => {\n handleVacationEvent(updateCachedData, payload, dispatch);\n });\n } catch {\n // no-op in case `cacheEntryRemoved` resolves before `cacheDataLoaded`,\n // in which case `cacheDataLoaded` will throw\n }\n // cacheEntryRemoved will resolve when the cache subscription is no longer active\n await cacheEntryRemoved;\n // perform cleanup steps once the `cacheEntryRemoved` promise resolves\n await signalrConnection.stop();\n },\n }),\n }),\n});\n\n// Export hooks for usage in functional components, which are\n// auto-generated based on the defined endpoints\nexport const { useGetVacationsQuery } = vacationApi;\n","import { vacationApi } from '@/api/vacation.api';\nimport { createSelector } from '@reduxjs/toolkit';\nimport { Vacation } from './vacationModel';\nimport { RootState } from '@/state/store';\n\nconst selectVacationsResult = vacationApi.endpoints.getVacations.select();\n\nconst selectSessionId = (_state: unknown, sessionId: string | undefined) => sessionId;\n\nconst selectCurrencyPair = (\n _state: unknown,\n _sessionId: string | undefined,\n { currency1, currency2 }: { currency1: string | undefined; currency2: string | undefined },\n) => ({ currency1, currency2 });\n\nconst emptyVacations: Vacation[] = [];\n\n/**\n * Get all vacations\n */\nconst selectAllVacations = createSelector(\n selectVacationsResult,\n (vacationsResult) => vacationsResult?.data ?? emptyVacations,\n);\n\nexport const selectCurrentVacation = createSelector(selectVacationsResult, (vacationsResult) => {\n const currentVacation = vacationsResult?.data?.find((vacation) => vacation.isCurrent);\n\n return currentVacation === undefined ? null : currentVacation;\n});\n\n/**\n * Get Vacations from sessionId\n */\nexport const selectVacationById = createSelector(\n [selectAllVacations, selectSessionId],\n (allVacations, sessionId) => allVacations.find((vacation) => vacation.id === sessionId),\n);\n\n/**\n * Get CurrencyPairs[] from vacations of the given session sessionId\n */\nexport const selectCurrencyPairsFromSessionIdVacation = createSelector(\n selectVacationById,\n (currentVacation) => currentVacation?.currencyPairs ?? [],\n);\n\n/**\n * Get CurreyPairs like EUR/USD that contains Deals[] of vacations of the given session sessionId\n */\nexport const selectCurrencyPairDealsFromSessionIdVacation = createSelector(\n [selectCurrencyPairsFromSessionIdVacation, selectCurrencyPair],\n (currencyPairs, { currency1, currency2 }) => {\n const [currencyPairWithDeals] = currencyPairs.filter(\n (currencyPair) =>\n currencyPair.currency1 === currency1 && currencyPair.currency2 === currency2,\n );\n return currencyPairWithDeals;\n },\n);\n\nexport const selectLastVacation = (state: RootState) => state.vacation.lastVacation;\n","import { DateTime } from 'luxon';\nimport { FormattedMessage } from 'react-intl';\nimport { isDefined, isNotDefined } from '@sgme/fp';\nimport Growl from '@/components/shared/Growl';\nimport { FC, useCallback, useContext, useEffect } from 'react';\nimport { CurrentTimeContext } from '@/context/CurrentTimeContext';\nimport { PossibleSessionTime, Vacation } from '@/features/vacation/vacationModel';\nimport { ExpirationSessionGrowlContext } from '@/context/ExpirationSessionGrowlContext';\nimport { useAppSelector } from '@/hooks/reduxHook';\nimport { selectCurrentVacation } from '@/features/vacation/vacationSelectors';\n\nconst FIFTEEN_MINUTES = 60 * 15;\nconst TWO_MINUTE = 2 * 60;\nconst FIVE_MINUTES = 5 * 60;\n\nconst labelStyle: React.CSSProperties = {\n fontSize: '14px',\n fontWeight: 500,\n lineHeight: '20px',\n letterSpacing: '0em',\n};\n\ntype SessionRemainingTimeCountDownProps = {\n growlRightPosition?: number;\n growlTopPosition?: number;\n};\n\nexport const SessionRemainingTimeCountDown: FC = ({\n growlRightPosition,\n growlTopPosition,\n}) => {\n const currentVacation = useAppSelector(selectCurrentVacation);\n\n return (\n \n \n \n \n {isNotDefined(currentVacation) ? (\n

--:--:--

\n ) : (\n \n )}\n \n );\n};\n\ntype CountDownProps = {\n currentVacation: Vacation;\n growlRightPosition?: number;\n growlTopPosition?: number;\n};\nexport const CountDown: FC = ({\n currentVacation,\n growlRightPosition,\n growlTopPosition,\n}) => {\n const currentTime = useContext(CurrentTimeContext);\n const lastSessionStartTime = currentVacation.sessionTime;\n const remainingTimeInSeconds = computeRemainingTime(currentTime, lastSessionStartTime);\n\n const { lastGrowlDismissedOrExpiredSessionTime, setLastGrowlDismissedOrExpiredSessionTime } =\n useContext(ExpirationSessionGrowlContext);\n\n const isRemainingTimeInferiorToSixtySeconds =\n isDefined(remainingTimeInSeconds) && remainingTimeInSeconds < TWO_MINUTE;\n\n const hasGrowlAlreadyBeenDismissedOrClosedForThisSession =\n lastGrowlDismissedOrExpiredSessionTime === lastSessionStartTime;\n\n const showExpirationGrowl =\n isRemainingTimeInferiorToSixtySeconds && !hasGrowlAlreadyBeenDismissedOrClosedForThisSession;\n\n const closeGrowl = useCallback(() => {\n setLastGrowlDismissedOrExpiredSessionTime(lastSessionStartTime ?? undefined);\n }, [lastSessionStartTime, setLastGrowlDismissedOrExpiredSessionTime]);\n\n useEffect(() => {\n if (showExpirationGrowl) {\n setTimeout(() => {\n closeGrowl();\n }, 10000);\n }\n }, [closeGrowl, showExpirationGrowl]);\n\n if (remainingTimeInSeconds < 0) {\n return

--:--:--

;\n }\n\n return (\n <>\n \n {showExpirationGrowl && (\n {chunks},\n }}\n />\n }\n onClose={closeGrowl}\n titleColor=\"danger\"\n />\n )}\n \n );\n};\n\nconst computeRemainingTime = (\n currentTimeString: string,\n lastSessionStartTime: PossibleSessionTime,\n): number => {\n const currentTimeDate = DateTime.fromFormat(currentTimeString, 'hh:mm:ss');\n // this means we are out of range session opening hours or the previous session is more than 15 min old\n\n //todo could be handled more gracefully in a transformer at the API lvl\n const formattedLastSessionStartTime = lastSessionStartTime.startsWith('9')\n ? lastSessionStartTime.padStart(5, '0')\n : lastSessionStartTime;\n\n const closestPreviousSessionStartTimeDate = DateTime.fromFormat(\n `${formattedLastSessionStartTime}:00`,\n 'hh:mm:ss',\n );\n\n const secondsSinceLastSessionStarted = currentTimeDate.diff(closestPreviousSessionStartTimeDate, [\n 'seconds',\n ]).seconds;\n\n return FIFTEEN_MINUTES - secondsSinceLastSessionStarted;\n};\n\nconst computeColorClassName = (remainingTimeInSeconds: number) => {\n let color = 'text-info';\n\n if (TWO_MINUTE <= remainingTimeInSeconds && remainingTimeInSeconds < FIVE_MINUTES) {\n color = 'text-warning';\n } else if (remainingTimeInSeconds < TWO_MINUTE) {\n color = 'text-danger';\n }\n return color;\n};\n\nconst formatRemainingTime = (remainingTime: number): string => {\n const seconds = (remainingTime % 60).toString().padStart(2, '0');\n const minutes = Math.floor(remainingTime / 60)\n .toString()\n .padStart(2, '0');\n\n return `00:${minutes}:${seconds}`;\n};\n\nconst ColoredRemainingTime = ({ remainingTimeInSeconds }: { remainingTimeInSeconds: number }) => (\n <>\n \n {formatRemainingTime(remainingTimeInSeconds)}\n \n \n);\n","import { Clock } from '@/components/shared/Clock';\nimport { DateKpi } from '@/components/shared/DateKpi';\nimport { SessionRemainingTimeCountDown } from '@/components/shared/SessionRemainingTimeCountDown';\n\nexport function Indicators() {\n return (\n
\n
\n
\n
\n

FX Sessions

\n
\n \n \n \n \n
\n
\n
\n \n );\n}\n","/**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3 createMemoryLocation(entry, typeof entry === \"string\" ? null : entry.state, index === 0 ? \"default\" : undefined));\n let index = clampIndex(initialIndex == null ? entries.length - 1 : initialIndex);\n let action = Action.Pop;\n let listener = null;\n function clampIndex(n) {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation() {\n return entries[index];\n }\n function createMemoryLocation(to, state, key) {\n if (state === void 0) {\n state = null;\n }\n let location = createLocation(entries ? getCurrentLocation().pathname : \"/\", to, state, key);\n warning(location.pathname.charAt(0) === \"/\", \"relative pathnames are not supported in memory history: \" + JSON.stringify(to));\n return location;\n }\n function createHref(to) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n let history = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\"\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({\n action,\n location: nextLocation,\n delta: 1\n });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({\n action,\n location: nextLocation,\n delta: 0\n });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({\n action,\n location: nextLocation,\n delta\n });\n }\n },\n listen(fn) {\n listener = fn;\n return () => {\n listener = null;\n };\n }\n };\n return history;\n}\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nfunction createBrowserHistory(options) {\n if (options === void 0) {\n options = {};\n }\n function createBrowserLocation(window, globalHistory) {\n let {\n pathname,\n search,\n hash\n } = window.location;\n return createLocation(\"\", {\n pathname,\n search,\n hash\n },\n // state defaults to `null` because `window.history.state` does\n globalHistory.state && globalHistory.state.usr || null, globalHistory.state && globalHistory.state.key || \"default\");\n }\n function createBrowserHref(window, to) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n return getUrlBasedHistory(createBrowserLocation, createBrowserHref, null, options);\n}\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nfunction createHashHistory(options) {\n if (options === void 0) {\n options = {};\n }\n function createHashLocation(window, globalHistory) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\"\n } = parsePath(window.location.hash.substr(1));\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route () since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n return createLocation(\"\", {\n pathname,\n search,\n hash\n },\n // state defaults to `null` because `window.history.state` does\n globalHistory.state && globalHistory.state.usr || null, globalHistory.state && globalHistory.state.key || \"default\");\n }\n function createHashHref(window, to) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n function validateHashLocation(location, to) {\n warning(location.pathname.charAt(0) === \"/\", \"relative pathnames are not supported in hash history.push(\" + JSON.stringify(to) + \")\");\n }\n return getUrlBasedHistory(createHashLocation, createHashHref, validateHashLocation, options);\n}\nfunction invariant(value, message) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\nfunction warning(cond, message) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience, so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location, index) {\n return {\n usr: location.state,\n key: location.key,\n idx: index\n };\n}\n/**\n * Creates a Location object with a unique key from the given Path\n */\nfunction createLocation(current, to, state, key) {\n if (state === void 0) {\n state = null;\n }\n let location = _extends({\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\"\n }, typeof to === \"string\" ? parsePath(to) : to, {\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: to && to.key || key || createKey()\n });\n return location;\n}\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nfunction createPath(_ref) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\"\n } = _ref;\n if (search && search !== \"?\") pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\") pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nfunction parsePath(path) {\n let parsedPath = {};\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n if (path) {\n parsedPath.pathname = path;\n }\n }\n return parsedPath;\n}\nfunction getUrlBasedHistory(getLocation, createHref, validateLocation, options) {\n if (options === void 0) {\n options = {};\n }\n let {\n window = document.defaultView,\n v5Compat = false\n } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener = null;\n let index = getIndex();\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState(_extends({}, globalHistory.state, {\n idx: index\n }), \"\");\n }\n function getIndex() {\n let state = globalHistory.state || {\n idx: null\n };\n return state.idx;\n }\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({\n action,\n location: history.location,\n delta\n });\n }\n }\n function push(to, state) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n if (v5Compat && listener) {\n listener({\n action,\n location: history.location,\n delta: 1\n });\n }\n }\n function replace(to, state) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n if (v5Compat && listener) {\n listener({\n action,\n location: history.location,\n delta: 0\n });\n }\n }\n function createURL(to) {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base = window.location.origin !== \"null\" ? window.location.origin : window.location.href;\n let href = typeof to === \"string\" ? to : createPath(to);\n // Treating this as a full URL will strip any trailing spaces so we need to\n // pre-encode them since they might be part of a matching splat param from\n // an ancestor route\n href = href.replace(/ $/, \"%20\");\n invariant(base, \"No window.location.(origin|href) available to create URL for href: \" + href);\n return new URL(href, base);\n }\n let history = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n }\n };\n return history;\n}\n//#endregion\n\nvar ResultType;\n(function (ResultType) {\n ResultType[\"data\"] = \"data\";\n ResultType[\"deferred\"] = \"deferred\";\n ResultType[\"redirect\"] = \"redirect\";\n ResultType[\"error\"] = \"error\";\n})(ResultType || (ResultType = {}));\nconst immutableRouteKeys = new Set([\"lazy\", \"caseSensitive\", \"path\", \"id\", \"index\", \"children\"]);\nfunction isIndexRoute(route) {\n return route.index === true;\n}\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nfunction convertRoutesToDataRoutes(routes, mapRouteProperties, parentPath, manifest) {\n if (parentPath === void 0) {\n parentPath = [];\n }\n if (manifest === void 0) {\n manifest = {};\n }\n return routes.map((route, index) => {\n let treePath = [...parentPath, index];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(route.index !== true || !route.children, \"Cannot specify children on an index route\");\n invariant(!manifest[id], \"Found a route id collision on id \\\"\" + id + \"\\\". Route \" + \"id's must be globally unique within Data Router usages\");\n if (isIndexRoute(route)) {\n let indexRoute = _extends({}, route, mapRouteProperties(route), {\n id\n });\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute = _extends({}, route, mapRouteProperties(route), {\n id,\n children: undefined\n });\n manifest[id] = pathOrLayoutRoute;\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(route.children, mapRouteProperties, treePath, manifest);\n }\n return pathOrLayoutRoute;\n }\n });\n}\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nfunction matchRoutes(routes, locationArg, basename) {\n if (basename === void 0) {\n basename = \"/\";\n }\n let location = typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n let pathname = stripBasename(location.pathname || \"/\", basename);\n if (pathname == null) {\n return null;\n }\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n let decoded = decodePath(pathname);\n matches = matchRouteBranch(branches[i], decoded);\n }\n return matches;\n}\nfunction convertRouteMatchToUiMatch(match, loaderData) {\n let {\n route,\n pathname,\n params\n } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle\n };\n}\nfunction flattenRoutes(routes, branches, parentsMeta, parentPath) {\n if (branches === void 0) {\n branches = [];\n }\n if (parentsMeta === void 0) {\n parentsMeta = [];\n }\n if (parentPath === void 0) {\n parentPath = \"\";\n }\n let flattenRoute = (route, index, relativePath) => {\n let meta = {\n relativePath: relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route\n };\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(meta.relativePath.startsWith(parentPath), \"Absolute route path \\\"\" + meta.relativePath + \"\\\" nested under path \" + (\"\\\"\" + parentPath + \"\\\" is not valid. An absolute child route path \") + \"must start with the combined path of all its parent routes.\");\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true, \"Index routes must not have child routes. Please remove \" + (\"all child routes from route path \\\"\" + path + \"\\\".\"));\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta\n });\n };\n routes.forEach((route, index) => {\n var _route$path;\n // coarse-grain check for optional params\n if (route.path === \"\" || !((_route$path = route.path) != null && _route$path.includes(\"?\"))) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n return branches;\n}\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path) {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n let [first, ...rest] = segments;\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n let result = [];\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(...restExploded.map(subpath => subpath === \"\" ? required : [required, subpath].join(\"/\")));\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n // for absolute paths, ensure `/` instead of empty segment\n return result.map(exploded => path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded);\n}\nfunction rankRouteBranches(branches) {\n branches.sort((a, b) => a.score !== b.score ? b.score - a.score // Higher score first\n : compareIndexes(a.routesMeta.map(meta => meta.childrenIndex), b.routesMeta.map(meta => meta.childrenIndex)));\n}\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = s => s === \"*\";\nfunction computeScore(path, index) {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n if (index) {\n initialScore += indexRouteValue;\n }\n return segments.filter(s => !isSplat(s)).reduce((score, segment) => score + (paramRe.test(segment) ? dynamicSegmentValue : segment === \"\" ? emptySegmentValue : staticSegmentValue), initialScore);\n}\nfunction compareIndexes(a, b) {\n let siblings = a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n return siblings ?\n // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1] :\n // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\nfunction matchRouteBranch(branch, pathname) {\n let {\n routesMeta\n } = branch;\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname = matchedPathname === \"/\" ? pathname : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath({\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end\n }, remainingPathname);\n if (!match) return null;\n Object.assign(matchedParams, match.params);\n let route = meta.route;\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(joinPaths([matchedPathname, match.pathnameBase])),\n route\n });\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n return matches;\n}\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nfunction generatePath(originalPath, params) {\n if (params === void 0) {\n params = {};\n }\n let path = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(false, \"Route path \\\"\" + path + \"\\\" will be treated as if it were \" + (\"\\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\" because the `*` character must \") + \"always follow a `/` in the pattern. To get rid of this warning, \" + (\"please change the route path to \\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\".\"));\n path = path.replace(/\\*$/, \"/*\");\n }\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n const stringify = p => p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n const segments = path.split(/\\/+/).map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\";\n // Apply the splat\n return stringify(params[star]);\n }\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key];\n invariant(optional === \"?\" || param != null, \"Missing \\\":\" + key + \"\\\" param\");\n return stringify(param);\n }\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter(segment => !!segment);\n return prefix + segments.join(\"/\");\n}\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nfunction matchPath(pattern, pathname) {\n if (typeof pattern === \"string\") {\n pattern = {\n path: pattern,\n caseSensitive: false,\n end: true\n };\n }\n let [matcher, compiledParams] = compilePath(pattern.path, pattern.caseSensitive, pattern.end);\n let match = pathname.match(matcher);\n if (!match) return null;\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params = compiledParams.reduce((memo, _ref, index) => {\n let {\n paramName,\n isOptional\n } = _ref;\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname.slice(0, matchedPathname.length - splatValue.length).replace(/(.)\\/+$/, \"$1\");\n }\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = (value || \"\").replace(/%2F/g, \"/\");\n }\n return memo;\n }, {});\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern\n };\n}\nfunction compilePath(path, caseSensitive, end) {\n if (caseSensitive === void 0) {\n caseSensitive = false;\n }\n if (end === void 0) {\n end = true;\n }\n warning(path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"), \"Route path \\\"\" + path + \"\\\" will be treated as if it were \" + (\"\\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\" because the `*` character must \") + \"always follow a `/` in the pattern. To get rid of this warning, \" + (\"please change the route path to \\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\".\"));\n let params = [];\n let regexpSource = \"^\" + path.replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(/\\/:([\\w-]+)(\\?)?/g, (_, paramName, isOptional) => {\n params.push({\n paramName,\n isOptional: isOptional != null\n });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n });\n if (path.endsWith(\"*\")) {\n params.push({\n paramName: \"*\"\n });\n regexpSource += path === \"*\" || path === \"/*\" ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else ;\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n return [matcher, params];\n}\nfunction decodePath(value) {\n try {\n return value.split(\"/\").map(v => decodeURIComponent(v).replace(/\\//g, \"%2F\")).join(\"/\");\n } catch (error) {\n warning(false, \"The URL path \\\"\" + value + \"\\\" could not be decoded because it is is a \" + \"malformed URL segment. This is probably due to a bad percent \" + (\"encoding (\" + error + \").\"));\n return value;\n }\n}\n/**\n * @private\n */\nfunction stripBasename(pathname, basename) {\n if (basename === \"/\") return pathname;\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\") ? basename.length - 1 : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n return pathname.slice(startIndex) || \"/\";\n}\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nfunction resolvePath(to, fromPathname) {\n if (fromPathname === void 0) {\n fromPathname = \"/\";\n }\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\"\n } = typeof to === \"string\" ? parsePath(to) : to;\n let pathname = toPathname ? toPathname.startsWith(\"/\") ? toPathname : resolvePathname(toPathname, fromPathname) : fromPathname;\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash)\n };\n}\nfunction resolvePathname(relativePath, fromPathname) {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n relativeSegments.forEach(segment => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\nfunction getInvalidPathError(char, field, dest, path) {\n return \"Cannot include a '\" + char + \"' character in a manually specified \" + (\"`to.\" + field + \"` field [\" + JSON.stringify(path) + \"]. Please separate it out to the \") + (\"`to.\" + dest + \"` field. Alternatively you may provide the full path as \") + \"a string in and the router will parse it for you.\";\n}\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nfunction getPathContributingMatches(matches) {\n return matches.filter((match, index) => index === 0 || match.route.path && match.route.path.length > 0);\n}\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nfunction getResolveToMatches(matches, v7_relativeSplatPath) {\n let pathMatches = getPathContributingMatches(matches);\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) => idx === matches.length - 1 ? match.pathname : match.pathnameBase);\n }\n return pathMatches.map(match => match.pathnameBase);\n}\n/**\n * @private\n */\nfunction resolveTo(toArg, routePathnames, locationPathname, isPathRelative) {\n if (isPathRelative === void 0) {\n isPathRelative = false;\n }\n let to;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = _extends({}, toArg);\n invariant(!to.pathname || !to.pathname.includes(\"?\"), getInvalidPathError(\"?\", \"pathname\", \"search\", to));\n invariant(!to.pathname || !to.pathname.includes(\"#\"), getInvalidPathError(\"#\", \"pathname\", \"hash\", to));\n invariant(!to.search || !to.search.includes(\"#\"), getInvalidPathError(\"#\", \"search\", \"hash\", to));\n }\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n let from;\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n to.pathname = toSegments.join(\"/\");\n }\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n let path = resolvePath(to, from);\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash = toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash = (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (!path.pathname.endsWith(\"/\") && (hasExplicitTrailingSlash || hasCurrentTrailingSlash)) {\n path.pathname += \"/\";\n }\n return path;\n}\n/**\n * @private\n */\nfunction getToPathname(to) {\n // Empty strings should be treated the same as / paths\n return to === \"\" || to.pathname === \"\" ? \"/\" : typeof to === \"string\" ? parsePath(to).pathname : to.pathname;\n}\n/**\n * @private\n */\nconst joinPaths = paths => paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n/**\n * @private\n */\nconst normalizePathname = pathname => pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n/**\n * @private\n */\nconst normalizeSearch = search => !search || search === \"?\" ? \"\" : search.startsWith(\"?\") ? search : \"?\" + search;\n/**\n * @private\n */\nconst normalizeHash = hash => !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nconst json = function json(data, init) {\n if (init === void 0) {\n init = {};\n }\n let responseInit = typeof init === \"number\" ? {\n status: init\n } : init;\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n return new Response(JSON.stringify(data), _extends({}, responseInit, {\n headers\n }));\n};\nclass AbortedDeferredError extends Error {}\nclass DeferredData {\n constructor(data, responseInit) {\n this.pendingKeysSet = new Set();\n this.subscribers = new Set();\n this.deferredKeys = [];\n invariant(data && typeof data === \"object\" && !Array.isArray(data), \"defer() only accepts plain objects\");\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject;\n this.abortPromise = new Promise((_, r) => reject = r);\n this.controller = new AbortController();\n let onAbort = () => reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () => this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n this.data = Object.entries(data).reduce((acc, _ref2) => {\n let [key, value] = _ref2;\n return Object.assign(acc, {\n [key]: this.trackPromise(key, value)\n });\n }, {});\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n this.init = responseInit;\n }\n trackPromise(key, value) {\n if (!(value instanceof Promise)) {\n return value;\n }\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise = Promise.race([value, this.abortPromise]).then(data => this.onSettle(promise, key, undefined, data), error => this.onSettle(promise, key, error));\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n Object.defineProperty(promise, \"_tracked\", {\n get: () => true\n });\n return promise;\n }\n onSettle(promise, key, error, data) {\n if (this.controller.signal.aborted && error instanceof AbortedDeferredError) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", {\n get: () => error\n });\n return Promise.reject(error);\n }\n this.pendingKeysSet.delete(key);\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\"Deferred data for key \\\"\" + key + \"\\\" resolved/rejected with `undefined`, \" + \"you must resolve/reject with a value or `null`.\");\n Object.defineProperty(promise, \"_error\", {\n get: () => undefinedError\n });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", {\n get: () => error\n });\n this.emit(false, key);\n return Promise.reject(error);\n }\n Object.defineProperty(promise, \"_data\", {\n get: () => data\n });\n this.emit(false, key);\n return data;\n }\n emit(aborted, settledKey) {\n this.subscribers.forEach(subscriber => subscriber(aborted, settledKey));\n }\n subscribe(fn) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n async resolveData(signal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise(resolve => {\n this.subscribe(aborted => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n get unwrappedData() {\n invariant(this.data !== null && this.done, \"Can only unwrap data on initialized and settled deferreds\");\n return Object.entries(this.data).reduce((acc, _ref3) => {\n let [key, value] = _ref3;\n return Object.assign(acc, {\n [key]: unwrapTrackedPromise(value)\n });\n }, {});\n }\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\nfunction isTrackedPromise(value) {\n return value instanceof Promise && value._tracked === true;\n}\nfunction unwrapTrackedPromise(value) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\nconst defer = function defer(data, init) {\n if (init === void 0) {\n init = {};\n }\n let responseInit = typeof init === \"number\" ? {\n status: init\n } : init;\n return new DeferredData(data, responseInit);\n};\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nconst redirect = function redirect(url, init) {\n if (init === void 0) {\n init = 302;\n }\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = {\n status: responseInit\n };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n return new Response(null, _extends({}, responseInit, {\n headers\n }));\n};\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nconst redirectDocument = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nclass ErrorResponseImpl {\n constructor(status, statusText, data, internal) {\n if (internal === void 0) {\n internal = false;\n }\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nfunction isRouteErrorResponse(error) {\n return error != null && typeof error.status === \"number\" && typeof error.statusText === \"string\" && typeof error.internal === \"boolean\" && \"data\" in error;\n}\n\nconst validMutationMethodsArr = [\"post\", \"put\", \"patch\", \"delete\"];\nconst validMutationMethods = new Set(validMutationMethodsArr);\nconst validRequestMethodsArr = [\"get\", ...validMutationMethodsArr];\nconst validRequestMethods = new Set(validRequestMethodsArr);\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\nconst IDLE_NAVIGATION = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined\n};\nconst IDLE_FETCHER = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined\n};\nconst IDLE_BLOCKER = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined\n};\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\nconst defaultMapRouteProperties = route => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary)\n});\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n//#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n/**\n * Create a router and listen to history POP navigations\n */\nfunction createRouter(init) {\n const routerWindow = init.window ? init.window : typeof window !== \"undefined\" ? window : undefined;\n const isBrowser = typeof routerWindow !== \"undefined\" && typeof routerWindow.document !== \"undefined\" && typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n invariant(init.routes.length > 0, \"You must provide a non-empty routes array to createRouter\");\n let mapRouteProperties;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = route => ({\n hasErrorBoundary: detectErrorBoundary(route)\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Routes keyed by ID\n let manifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(init.routes, mapRouteProperties, undefined, manifest);\n let inFlightDataRoutes;\n let basename = init.basename || \"/\";\n // Config driven behavior flags\n let future = _extends({\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false\n }, init.future);\n // Cleanup function for history\n let unlistenHistory = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors = null;\n if (initialMatches == null) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname\n });\n let {\n matches,\n route\n } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = {\n [route.id]: error\n };\n }\n let initialized;\n let hasLazyRoutes = initialMatches.some(m => m.route.lazy);\n let hasLoaders = initialMatches.some(m => m.route.loader);\n if (hasLazyRoutes) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!hasLoaders) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n let isRouteInitialized = m => {\n // No loader, nothing to initialize\n if (!m.route.loader) return true;\n // Explicitly opting-in to running on hydration\n if (m.route.loader.hydrate === true) return false;\n // Otherwise, initialized if hydrated with data or an error\n return loaderData && loaderData[m.route.id] !== undefined || errors && errors[m.route.id] !== undefined;\n };\n // If errors exist, don't consider routes below the boundary\n if (errors) {\n let idx = initialMatches.findIndex(m => errors[m.route.id] !== undefined);\n initialized = initialMatches.slice(0, idx + 1).every(isRouteInitialized);\n } else {\n initialized = initialMatches.every(isRouteInitialized);\n }\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\n let router;\n let state = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: init.hydrationData && init.hydrationData.loaderData || {},\n actionData: init.hydrationData && init.hydrationData.actionData || null,\n errors: init.hydrationData && init.hydrationData.errors || initialErrors,\n fetchers: new Map(),\n blockers: new Map()\n };\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction = Action.Pop;\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n // AbortController for the active navigation\n let pendingNavigationController;\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions = new Map();\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener = null;\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes = [];\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads = [];\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let ignoreNextHistoryUpdate = false;\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(_ref => {\n let {\n action: historyAction,\n location,\n delta\n } = _ref;\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\n return;\n }\n warning(blockerFunctions.size === 0 || delta != null, \"You are trying to use a blocker on a POP navigation to a location \" + \"that was not created by @remix-run/router. This will fail silently in \" + \"production. This can happen if you are navigating outside the router \" + \"via `window.history.pushState`/`window.location.hash` instead of using \" + \"router navigation APIs. This can also happen if you are using \" + \"createHashRouter and the user manually changes the URL.\");\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction\n });\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n ignoreNextHistoryUpdate = true;\n init.history.go(delta * -1);\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location\n });\n // Re-do the same POP navigation we just blocked\n init.history.go(delta);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey, IDLE_BLOCKER);\n updateState({\n blockers\n });\n }\n });\n return;\n }\n return startNavigation(historyAction, location);\n });\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () => persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () => routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(Action.Pop, state.location, {\n initialHydration: true\n });\n }\n return router;\n }\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n // Subscribe to state updates for the router\n function subscribe(fn) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n // Update our state and notify the calling context of the change\n function updateState(newState, opts) {\n if (opts === void 0) {\n opts = {};\n }\n state = _extends({}, state, newState);\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers = [];\n let deletedFetchersKeys = [];\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach(subscriber => subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n unstable_viewTransitionOpts: opts.viewTransitionOpts,\n unstable_flushSync: opts.flushSync === true\n }));\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach(key => state.fetchers.delete(key));\n deletedFetchersKeys.forEach(key => deleteFetcher(key));\n }\n }\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(location, newState, _temp) {\n var _location$state, _location$state2;\n let {\n flushSync\n } = _temp === void 0 ? {} : _temp;\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload = state.actionData != null && state.navigation.formMethod != null && isMutationMethod(state.navigation.formMethod) && state.navigation.state === \"loading\" && ((_location$state = location.state) == null ? void 0 : _location$state._isRedirect) !== true;\n let actionData;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData ? mergeLoaderData(state.loaderData, newState.loaderData, newState.matches || [], newState.errors) : state.loaderData;\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset = pendingPreventScrollReset === true || state.navigation.formMethod != null && isMutationMethod(state.navigation.formMethod) && ((_location$state2 = location.state) == null ? void 0 : _location$state2._isRedirect) !== true;\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n if (isUninterruptedRevalidation) ; else if (pendingAction === Action.Pop) ; else if (pendingAction === Action.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === Action.Replace) {\n init.history.replace(location, location.state);\n }\n let viewTransitionOpts;\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === Action.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location\n };\n }\n updateState(_extends({}, newState, {\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(location, newState.matches || state.matches),\n preventScrollReset,\n blockers\n }), {\n viewTransitionOpts,\n flushSync: flushSync === true\n });\n // Reset stateful navigation vars\n pendingAction = Action.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n }\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(to, opts) {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n let normalizedPath = normalizeTo(state.location, state.matches, basename, future.v7_prependBasename, to, future.v7_relativeSplatPath, opts == null ? void 0 : opts.fromRouteId, opts == null ? void 0 : opts.relative);\n let {\n path,\n submission,\n error\n } = normalizeNavigateOptions(future.v7_normalizeFormMethod, false, normalizedPath, opts);\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = _extends({}, nextLocation, init.history.encodeLocation(nextLocation));\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n let historyAction = Action.Push;\n if (userReplace === true) {\n historyAction = Action.Replace;\n } else if (userReplace === false) ; else if (submission != null && isMutationMethod(submission.formMethod) && submission.formAction === state.location.pathname + state.location.search) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = Action.Replace;\n }\n let preventScrollReset = opts && \"preventScrollReset\" in opts ? opts.preventScrollReset === true : undefined;\n let flushSync = (opts && opts.unstable_flushSync) === true;\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction\n });\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey, IDLE_BLOCKER);\n updateState({\n blockers\n });\n }\n });\n return;\n }\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.unstable_viewTransition,\n flushSync\n });\n }\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({\n revalidation: \"loading\"\n });\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true\n });\n return;\n }\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(pendingAction || state.historyAction, state.navigation.location, {\n overrideNavigation: state.navigation\n });\n }\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(historyAction, location, opts) {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation = (opts && opts.startUninterruptedRevalidation) === true;\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let error = getInternalRouterError(404, {\n pathname: location.pathname\n });\n let {\n matches: notFoundMatches,\n route\n } = getShortCircuitMatches(routesToUse);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n completeNavigation(location, {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error\n }\n }, {\n flushSync\n });\n return;\n }\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial load will always\n // be \"same hash\". For example, on /page#hash and submit a
\n // which will default to a navigation to /page\n if (state.initialized && !isRevalidationRequired && isHashChangeOnly(state.location, location) && !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))) {\n completeNavigation(location, {\n matches\n }, {\n flushSync\n });\n return;\n }\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(init.history, location, pendingNavigationController.signal, opts && opts.submission);\n let pendingActionData;\n let pendingError;\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingError = {\n [findNearestBoundary(matches).route.id]: opts.pendingError\n };\n } else if (opts && opts.submission && isMutationMethod(opts.submission.formMethod)) {\n // Call action if we received an action submission\n let actionOutput = await handleAction(request, location, opts.submission, matches, {\n replace: opts.replace,\n flushSync\n });\n if (actionOutput.shortCircuited) {\n return;\n }\n pendingActionData = actionOutput.pendingActionData;\n pendingError = actionOutput.pendingActionError;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n // Create a GET request for the loaders\n request = new Request(request.url, {\n signal: request.signal\n });\n }\n // Call loaders\n let {\n shortCircuited,\n loaderData,\n errors\n } = await handleLoaders(request, location, matches, loadingNavigation, opts && opts.submission, opts && opts.fetcherSubmission, opts && opts.replace, opts && opts.initialHydration === true, flushSync, pendingActionData, pendingError);\n if (shortCircuited) {\n return;\n }\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n completeNavigation(location, _extends({\n matches\n }, pendingActionData ? {\n actionData: pendingActionData\n } : {}, {\n loaderData,\n errors\n }));\n }\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(request, location, submission, matches, opts) {\n if (opts === void 0) {\n opts = {};\n }\n interruptActiveLoads();\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({\n navigation\n }, {\n flushSync: opts.flushSync === true\n });\n // Call our action and get the result\n let result;\n let actionMatch = getTargetMatch(matches, location);\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id\n })\n };\n } else {\n result = await callLoaderOrAction(\"action\", request, actionMatch, matches, manifest, mapRouteProperties, basename, future.v7_relativeSplatPath);\n if (request.signal.aborted) {\n return {\n shortCircuited: true\n };\n }\n }\n if (isRedirectResult(result)) {\n let replace;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n replace = result.location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(state, result, {\n submission,\n replace\n });\n return {\n shortCircuited: true\n };\n }\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n // By default, all submissions are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n if ((opts && opts.replace) !== true) {\n pendingAction = Action.Push;\n }\n return {\n // Send back an empty object we can use to clear out any prior actionData\n pendingActionData: {},\n pendingActionError: {\n [boundaryMatch.route.id]: result.error\n }\n };\n }\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, {\n type: \"defer-action\"\n });\n }\n return {\n pendingActionData: {\n [actionMatch.route.id]: result.data\n }\n };\n }\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(request, location, matches, overrideNavigation, submission, fetcherSubmission, replace, initialHydration, flushSync, pendingActionData, pendingError) {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation = overrideNavigation || getLoadingNavigation(location, submission);\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission = submission || fetcherSubmission || getSubmissionFromNavigation(loadingNavigation);\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(init.history, state, matches, activeSubmission, location, future.v7_partialHydration && initialHydration === true, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, deletedFetchers, fetchLoadMatches, fetchRedirectIds, routesToUse, basename, pendingActionData, pendingError);\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(routeId => !(matches && matches.some(m => m.route.id === routeId)) || matchesToLoad && matchesToLoad.some(m => m.route.id === routeId));\n pendingNavigationLoadId = ++incrementingLoadId;\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(location, _extends({\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors: pendingError || null\n }, pendingActionData ? {\n actionData: pendingActionData\n } : {}, updatedFetchers ? {\n fetchers: new Map(state.fetchers)\n } : {}), {\n flushSync\n });\n return {\n shortCircuited: true\n };\n }\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n // If we have partialHydration enabled, then don't update the state for the\n // initial data load since it's not a \"navigation\"\n if (!isUninterruptedRevalidation && (!future.v7_partialHydration || !initialHydration)) {\n revalidatingFetchers.forEach(rf => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(undefined, fetcher ? fetcher.data : undefined);\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n let actionData = pendingActionData || state.actionData;\n updateState(_extends({\n navigation: loadingNavigation\n }, actionData ? Object.keys(actionData).length === 0 ? {\n actionData: null\n } : {\n actionData\n } : {}, revalidatingFetchers.length > 0 ? {\n fetchers: new Map(state.fetchers)\n } : {}), {\n flushSync\n });\n }\n revalidatingFetchers.forEach(rf => {\n if (fetchControllers.has(rf.key)) {\n abortFetcher(rf.key);\n }\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () => revalidatingFetchers.forEach(f => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\"abort\", abortPendingFetchRevalidations);\n }\n let {\n results,\n loaderResults,\n fetcherResults\n } = await callLoadersAndMaybeResolveData(state.matches, matches, matchesToLoad, revalidatingFetchers, request);\n if (request.signal.aborted) {\n return {\n shortCircuited: true\n };\n }\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\"abort\", abortPendingFetchRevalidations);\n }\n revalidatingFetchers.forEach(rf => fetchControllers.delete(rf.key));\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(results);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey = revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n await startRedirectNavigation(state, redirect.result, {\n replace\n });\n return {\n shortCircuited: true\n };\n }\n // Process and commit output from loaders\n let {\n loaderData,\n errors\n } = processLoaderData(state, matches, matchesToLoad, loaderResults, pendingError, revalidatingFetchers, fetcherResults, activeDeferreds);\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe(aborted => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n // During partial hydration, preserve SSR errors for routes that don't re-run\n if (future.v7_partialHydration && initialHydration && state.errors) {\n Object.entries(state.errors).filter(_ref2 => {\n let [id] = _ref2;\n return !matchesToLoad.some(m => m.route.id === id);\n }).forEach(_ref3 => {\n let [routeId, error] = _ref3;\n errors = Object.assign(errors || {}, {\n [routeId]: error\n });\n });\n }\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers = updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n return _extends({\n loaderData,\n errors\n }, shouldUpdateFetchers ? {\n fetchers: new Map(state.fetchers)\n } : {});\n }\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(key, routeId, href, opts) {\n if (isServer) {\n throw new Error(\"router.fetch() was called during the server render, but it shouldn't be. \" + \"You are likely calling a useFetcher() method in the body of your component. \" + \"Try moving it to a useEffect or a callback.\");\n }\n if (fetchControllers.has(key)) abortFetcher(key);\n let flushSync = (opts && opts.unstable_flushSync) === true;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(state.location, state.matches, basename, future.v7_prependBasename, href, future.v7_relativeSplatPath, routeId, opts == null ? void 0 : opts.relative);\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n if (!matches) {\n setFetcherError(key, routeId, getInternalRouterError(404, {\n pathname: normalizedPath\n }), {\n flushSync\n });\n return;\n }\n let {\n path,\n submission,\n error\n } = normalizeNavigateOptions(future.v7_normalizeFormMethod, true, normalizedPath, opts);\n if (error) {\n setFetcherError(key, routeId, error, {\n flushSync\n });\n return;\n }\n let match = getTargetMatch(matches, path);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(key, routeId, path, match, matches, flushSync, submission);\n return;\n }\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, {\n routeId,\n path\n });\n handleFetcherLoader(key, routeId, path, match, matches, flushSync, submission);\n }\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(key, routeId, path, match, requestMatches, flushSync, submission) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n if (!match.route.action && !match.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId\n });\n setFetcherError(key, routeId, error, {\n flushSync\n });\n return;\n }\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync\n });\n // Call the action for the fetcher\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(init.history, path, abortController.signal, submission);\n fetchControllers.set(key, abortController);\n let originatingLoadId = incrementingLoadId;\n let actionResult = await callLoaderOrAction(\"action\", fetchRequest, match, requestMatches, manifest, mapRouteProperties, basename, future.v7_relativeSplatPath);\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(state, actionResult, {\n fetcherSubmission: submission\n });\n }\n }\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, {\n type: \"defer-action\"\n });\n }\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(init.history, nextLocation, abortController.signal);\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches = state.navigation.state !== \"idle\" ? matchRoutes(routesToUse, state.navigation.location, basename) : state.matches;\n invariant(matches, \"Didn't find any matches after fetcher action\");\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(init.history, state, matches, submission, nextLocation, false, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, deletedFetchers, fetchLoadMatches, fetchRedirectIds, routesToUse, basename, {\n [match.route.id]: actionResult.data\n }, undefined // No need to send through errors since we short circuit above\n );\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers.filter(rf => rf.key !== key).forEach(rf => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(undefined, existingFetcher ? existingFetcher.data : undefined);\n state.fetchers.set(staleKey, revalidatingFetcher);\n if (fetchControllers.has(staleKey)) {\n abortFetcher(staleKey);\n }\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n updateState({\n fetchers: new Map(state.fetchers)\n });\n let abortPendingFetchRevalidations = () => revalidatingFetchers.forEach(rf => abortFetcher(rf.key));\n abortController.signal.addEventListener(\"abort\", abortPendingFetchRevalidations);\n let {\n results,\n loaderResults,\n fetcherResults\n } = await callLoadersAndMaybeResolveData(state.matches, matches, matchesToLoad, revalidatingFetchers, revalidationRequest);\n if (abortController.signal.aborted) {\n return;\n }\n abortController.signal.removeEventListener(\"abort\", abortPendingFetchRevalidations);\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach(r => fetchControllers.delete(r.key));\n let redirect = findRedirect(results);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey = revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n return startRedirectNavigation(state, redirect.result);\n }\n // Process and commit output from loaders\n let {\n loaderData,\n errors\n } = processLoaderData(state, state.matches, matchesToLoad, loaderResults, undefined, revalidatingFetchers, fetcherResults, activeDeferreds);\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n abortStaleFetchLoads(loadId);\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (state.navigation.state === \"loading\" && loadId > pendingNavigationLoadId) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers)\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(state.loaderData, loaderData, matches, errors),\n fetchers: new Map(state.fetchers)\n });\n isRevalidationRequired = false;\n }\n }\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(key, routeId, path, match, matches, flushSync, submission) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getLoadingFetcher(submission, existingFetcher ? existingFetcher.data : undefined), {\n flushSync\n });\n // Call the loader for this fetcher route match\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(init.history, path, abortController.signal);\n fetchControllers.set(key, abortController);\n let originatingLoadId = incrementingLoadId;\n let result = await callLoaderOrAction(\"loader\", fetchRequest, match, matches, manifest, mapRouteProperties, basename, future.v7_relativeSplatPath);\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result = (await resolveDeferredData(result, fetchRequest.signal, true)) || result;\n }\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n if (fetchRequest.signal.aborted) {\n return;\n }\n // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(state, result);\n return;\n }\n }\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(state, redirect, _temp2) {\n let {\n submission,\n fetcherSubmission,\n replace\n } = _temp2 === void 0 ? {} : _temp2;\n if (redirect.revalidate) {\n isRevalidationRequired = true;\n }\n let redirectLocation = createLocation(state.location, redirect.location, {\n _isRedirect: true\n });\n invariant(redirectLocation, \"Expected a location on the redirect navigation\");\n if (isBrowser) {\n let isDocumentReload = false;\n if (redirect.reloadDocument) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(redirect.location)) {\n const url = init.history.createURL(redirect.location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(redirect.location);\n } else {\n routerWindow.location.assign(redirect.location);\n }\n return;\n }\n }\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n let redirectHistoryAction = replace === true ? Action.Replace : Action.Push;\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let {\n formMethod,\n formAction,\n formEncType\n } = state.navigation;\n if (!submission && !fetcherSubmission && formMethod && formAction && formEncType) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (redirectPreserveMethodStatusCodes.has(redirect.status) && activeSubmission && isMutationMethod(activeSubmission.formMethod)) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: _extends({}, activeSubmission, {\n formAction: redirect.location\n }),\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(redirectLocation, submission);\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset\n });\n }\n }\n async function callLoadersAndMaybeResolveData(currentMatches, matches, matchesToLoad, fetchersToLoad, request) {\n // Call all navigation loaders and revalidating fetcher loaders in parallel,\n // then slice off the results into separate arrays so we can handle them\n // accordingly\n let results = await Promise.all([...matchesToLoad.map(match => callLoaderOrAction(\"loader\", request, match, matches, manifest, mapRouteProperties, basename, future.v7_relativeSplatPath)), ...fetchersToLoad.map(f => {\n if (f.matches && f.match && f.controller) {\n return callLoaderOrAction(\"loader\", createClientSideRequest(init.history, f.path, f.controller.signal), f.match, f.matches, manifest, mapRouteProperties, basename, future.v7_relativeSplatPath);\n } else {\n let error = {\n type: ResultType.error,\n error: getInternalRouterError(404, {\n pathname: f.path\n })\n };\n return error;\n }\n })]);\n let loaderResults = results.slice(0, matchesToLoad.length);\n let fetcherResults = results.slice(matchesToLoad.length);\n await Promise.all([resolveDeferredResults(currentMatches, matchesToLoad, loaderResults, loaderResults.map(() => request.signal), false, state.loaderData), resolveDeferredResults(currentMatches, fetchersToLoad.map(f => f.match), fetcherResults, fetchersToLoad.map(f => f.controller ? f.controller.signal : null), true)]);\n return {\n results,\n loaderResults,\n fetcherResults\n };\n }\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n function updateFetcherState(key, fetcher, opts) {\n if (opts === void 0) {\n opts = {};\n }\n state.fetchers.set(key, fetcher);\n updateState({\n fetchers: new Map(state.fetchers)\n }, {\n flushSync: (opts && opts.flushSync) === true\n });\n }\n function setFetcherError(key, routeId, error, opts) {\n if (opts === void 0) {\n opts = {};\n }\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState({\n errors: {\n [boundaryMatch.route.id]: error\n },\n fetchers: new Map(state.fetchers)\n }, {\n flushSync: (opts && opts.flushSync) === true\n });\n }\n function getFetcher(key) {\n if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n function deleteFetcher(key) {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (fetchControllers.has(key) && !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n state.fetchers.delete(key);\n }\n function deleteFetcherAndUpdateState(key) {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({\n fetchers: new Map(state.fetchers)\n });\n }\n function abortFetcher(key) {\n let controller = fetchControllers.get(key);\n invariant(controller, \"Expected fetch controller: \" + key);\n controller.abort();\n fetchControllers.delete(key);\n }\n function markFetchersDone(keys) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n function markFetchRedirectsDone() {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, \"Expected fetcher: \" + key);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n function abortStaleFetchLoads(landedId) {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, \"Expected fetcher: \" + key);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n function getBlocker(key, fn) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n return blocker;\n }\n function deleteBlocker(key) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key, newBlocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(blocker.state === \"unblocked\" && newBlocker.state === \"blocked\" || blocker.state === \"blocked\" && newBlocker.state === \"blocked\" || blocker.state === \"blocked\" && newBlocker.state === \"proceeding\" || blocker.state === \"blocked\" && newBlocker.state === \"unblocked\" || blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\", \"Invalid blocker state transition: \" + blocker.state + \" -> \" + newBlocker.state);\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({\n blockers\n });\n }\n function shouldBlockNavigation(_ref4) {\n let {\n currentLocation,\n nextLocation,\n historyAction\n } = _ref4;\n if (blockerFunctions.size === 0) {\n return;\n }\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({\n currentLocation,\n nextLocation,\n historyAction\n })) {\n return blockerKey;\n }\n }\n function cancelActiveDeferreds(predicate) {\n let cancelledRouteIds = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(positions, getPosition, getKey) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({\n restoreScrollPosition: y\n });\n }\n }\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n function getScrollKey(location, matches) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(location, matches.map(m => convertRouteMatchToUiMatch(m, state.loaderData)));\n return key || location.key;\n }\n return location.key;\n }\n function saveScrollPosition(location, matches) {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n function getSavedScrollPosition(location, matches) {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n function _internalSetRoutes(newRoutes) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(newRoutes, mapRouteProperties, undefined, manifest);\n }\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: to => init.history.createHref(to),\n encodeLocation: to => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes\n };\n return router;\n}\n//#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\nconst UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\nfunction createStaticHandler(routes, opts) {\n invariant(routes.length > 0, \"You must provide a non-empty routes array to createStaticHandler\");\n let manifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties;\n if (opts != null && opts.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts != null && opts.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = route => ({\n hasErrorBoundary: detectErrorBoundary(route)\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future = _extends({\n v7_relativeSplatPath: false,\n v7_throwAbortReason: false\n }, opts ? opts.future : null);\n let dataRoutes = convertRoutesToDataRoutes(routes, mapRouteProperties, undefined, manifest);\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n */\n async function query(request, _temp3) {\n let {\n requestContext\n } = _temp3 === void 0 ? {} : _temp3;\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, {\n method\n });\n let {\n matches: methodNotAllowedMatches,\n route\n } = getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, {\n pathname: location.pathname\n });\n let {\n matches: notFoundMatches,\n route\n } = getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null\n };\n }\n let result = await queryImpl(request, location, matches, requestContext);\n if (isResponse(result)) {\n return result;\n }\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return _extends({\n location,\n basename\n }, result);\n }\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n */\n async function queryRoute(request, _temp4) {\n let {\n routeId,\n requestContext\n } = _temp4 === void 0 ? {} : _temp4;\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, {\n method\n });\n } else if (!matches) {\n throw getInternalRouterError(404, {\n pathname: location.pathname\n });\n }\n let match = routeId ? matches.find(m => m.route.id === routeId) : getTargetMatch(matches, location);\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, {\n pathname: location.pathname\n });\n }\n let result = await queryImpl(request, location, matches, requestContext, match);\n if (isResponse(result)) {\n return result;\n }\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n if (result.loaderData) {\n var _result$activeDeferre;\n let data = Object.values(result.loaderData)[0];\n if ((_result$activeDeferre = result.activeDeferreds) != null && _result$activeDeferre[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n return undefined;\n }\n async function queryImpl(request, location, matches, requestContext, routeMatch) {\n invariant(request.signal, \"query()/queryRoute() requests must contain an AbortController signal\");\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(request, matches, routeMatch || getTargetMatch(matches, location), requestContext, routeMatch != null);\n return result;\n }\n let result = await loadRouteData(request, matches, requestContext, routeMatch);\n return isResponse(result) ? result : _extends({}, result, {\n actionData: null,\n actionHeaders: {}\n });\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction, we throw\n // it to bail out and then return or throw here based on whether the user\n // returned or threw\n if (isQueryRouteResponse(e)) {\n if (e.type === ResultType.error) {\n throw e.response;\n }\n return e.response;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n async function submit(request, matches, actionMatch, requestContext, isRouteRequest) {\n let result;\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error\n };\n } else {\n result = await callLoaderOrAction(\"action\", request, actionMatch, matches, manifest, mapRouteProperties, basename, future.v7_relativeSplatPath, {\n isStaticRequest: true,\n isRouteRequest,\n requestContext\n });\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n }\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.status,\n headers: {\n Location: result.location\n }\n });\n }\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, {\n type: \"defer-action\"\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error\n };\n }\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: {\n [actionMatch.route.id]: result.data\n },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null\n };\n }\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n let context = await loadRouteData(request, matches, requestContext, undefined, {\n [boundaryMatch.route.id]: result.error\n });\n // action status codes take precedence over loader status codes\n return _extends({}, context, {\n statusCode: isRouteErrorResponse(result.error) ? result.error.status : 500,\n actionData: null,\n actionHeaders: _extends({}, result.headers ? {\n [actionMatch.route.id]: result.headers\n } : {})\n });\n }\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal\n });\n let context = await loadRouteData(loaderRequest, matches, requestContext);\n return _extends({}, context, result.statusCode ? {\n statusCode: result.statusCode\n } : {}, {\n actionData: {\n [actionMatch.route.id]: result.data\n },\n actionHeaders: _extends({}, result.headers ? {\n [actionMatch.route.id]: result.headers\n } : {})\n });\n }\n async function loadRouteData(request, matches, requestContext, routeMatch, pendingActionError) {\n let isRouteRequest = routeMatch != null;\n // Short circuit if we have no loaders to run (queryRoute())\n if (isRouteRequest && !(routeMatch != null && routeMatch.route.loader) && !(routeMatch != null && routeMatch.route.lazy)) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch == null ? void 0 : routeMatch.route.id\n });\n }\n let requestMatches = routeMatch ? [routeMatch] : getLoaderMatchesUntilBoundary(matches, Object.keys(pendingActionError || {})[0]);\n let matchesToLoad = requestMatches.filter(m => m.route.loader || m.route.lazy);\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce((acc, m) => Object.assign(acc, {\n [m.route.id]: null\n }), {}),\n errors: pendingActionError || null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null\n };\n }\n let results = await Promise.all([...matchesToLoad.map(match => callLoaderOrAction(\"loader\", request, match, matches, manifest, mapRouteProperties, basename, future.v7_relativeSplatPath, {\n isStaticRequest: true,\n isRouteRequest,\n requestContext\n }))]);\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(matches, matchesToLoad, results, pendingActionError, activeDeferreds);\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(matchesToLoad.map(match => match.route.id));\n matches.forEach(match => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n return _extends({}, context, {\n matches,\n activeDeferreds: activeDeferreds.size > 0 ? Object.fromEntries(activeDeferreds.entries()) : null\n });\n }\n return {\n dataRoutes,\n query,\n queryRoute\n };\n}\n//#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nfunction getStaticContextFromError(routes, context, error) {\n let newContext = _extends({}, context, {\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error\n }\n });\n return newContext;\n}\nfunction throwStaticHandlerAbortedError(request, isRouteRequest, future) {\n if (future.v7_throwAbortReason && request.signal.reason !== undefined) {\n throw request.signal.reason;\n }\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(method + \"() call aborted: \" + request.method + \" \" + request.url);\n}\nfunction isSubmissionNavigation(opts) {\n return opts != null && (\"formData\" in opts && opts.formData != null || \"body\" in opts && opts.body !== undefined);\n}\nfunction normalizeTo(location, matches, basename, prependBasename, to, v7_relativeSplatPath, fromRouteId, relative) {\n let contextualMatches;\n let activeRouteMatch;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n // Resolve the relative path\n let path = resolveTo(to ? to : \".\", getResolveToMatches(contextualMatches, v7_relativeSplatPath), stripBasename(location.pathname, basename) || location.pathname, relative === \"path\");\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n // Add an ?index param for matched index routes if we don't already have one\n if ((to == null || to === \"\" || to === \".\") && activeRouteMatch && activeRouteMatch.route.index && !hasNakedIndexQuery(path.search)) {\n path.search = path.search ? path.search.replace(/^\\?/, \"?index&\") : \"?index\";\n }\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname = path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n return createPath(path);\n}\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(normalizeFormMethod, isFetcher, path, opts) {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return {\n path\n };\n }\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, {\n method: opts.formMethod\n })\n };\n }\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, {\n type: \"invalid-body\"\n })\n });\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod ? rawFormMethod.toUpperCase() : rawFormMethod.toLowerCase();\n let formAction = stripHashFromPath(path);\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n let text = typeof opts.body === \"string\" ? opts.body : opts.body instanceof FormData || opts.body instanceof URLSearchParams ?\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce((acc, _ref5) => {\n let [name, value] = _ref5;\n return \"\" + acc + name + \"=\" + value + \"\\n\";\n }, \"\") : String(opts.body);\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text\n }\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n try {\n let json = typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined\n }\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n invariant(typeof FormData === \"function\", \"FormData is not available in this environment\");\n let searchParams;\n let formData;\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n let submission = {\n formMethod,\n formAction,\n formEncType: opts && opts.formEncType || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined\n };\n if (isMutationMethod(submission.formMethod)) {\n return {\n path,\n submission\n };\n }\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = \"?\" + searchParams;\n return {\n path: createPath(parsedPath),\n submission\n };\n}\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(matches, boundaryId) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex(m => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\nfunction getMatchesToLoad(history, state, matches, submission, location, isInitialLoad, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, deletedFetchers, fetchLoadMatches, fetchRedirectIds, routesToUse, basename, pendingActionData, pendingError) {\n let actionResult = pendingError ? Object.values(pendingError)[0] : pendingActionData ? Object.values(pendingActionData)[0] : undefined;\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId = pendingError ? Object.keys(pendingError)[0] : undefined;\n let boundaryMatches = getLoaderMatchesUntilBoundary(matches, boundaryId);\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let {\n route\n } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n if (route.loader == null) {\n return false;\n }\n if (isInitialLoad) {\n if (route.loader.hydrate) {\n return true;\n }\n return state.loaderData[route.id] === undefined && (\n // Don't re-run if the loader ran and threw an error\n !state.errors || state.errors[route.id] === undefined);\n }\n // Always call the loader on new route instances and pending defer cancellations\n if (isNewLoader(state.loaderData, state.matches[index], match) || cancelledDeferredRoutes.some(id => id === match.route.id)) {\n return true;\n }\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n return shouldRevalidateLoader(match, _extends({\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params\n }, submission, {\n actionResult,\n defaultShouldRevalidate:\n // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n // Clicked the same link, resubmitted a GET form\n currentUrl.pathname + currentUrl.search === nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search || isNewRouteInstance(currentRouteMatch, nextRouteMatch)\n }));\n });\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial load (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (isInitialLoad || !matches.some(m => m.route.id === f.routeId) || deletedFetchers.has(key)) {\n return;\n }\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null\n });\n return;\n }\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.includes(key)) {\n // Always revalidate if the fetcher was cancelled\n shouldRevalidate = true;\n } else if (fetcher && fetcher.state !== \"idle\" && fetcher.data === undefined) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, _extends({\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params\n }, submission, {\n actionResult,\n defaultShouldRevalidate: isRevalidationRequired\n }));\n }\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController()\n });\n }\n });\n return [navigationMatches, revalidatingFetchers];\n}\nfunction isNewLoader(currentLoaderData, currentMatch, match) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\nfunction isNewRouteInstance(currentMatch, match) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n currentPath != null && currentPath.endsWith(\"*\") && currentMatch.params[\"*\"] !== match.params[\"*\"]\n );\n}\nfunction shouldRevalidateLoader(loaderMatch, arg) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n return arg.defaultShouldRevalidate;\n}\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(route, mapRouteProperties, manifest) {\n if (!route.lazy) {\n return;\n }\n let lazyRoute = await route.lazy();\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue = routeToUpdate[lazyRouteProperty];\n let isPropertyStaticallyDefined = staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n warning(!isPropertyStaticallyDefined, \"Route \\\"\" + routeToUpdate.id + \"\\\" has a static property \\\"\" + lazyRouteProperty + \"\\\" \" + \"defined but its lazy function is also returning a value for this property. \" + (\"The lazy route property \\\"\" + lazyRouteProperty + \"\\\" will be ignored.\"));\n if (!isPropertyStaticallyDefined && !immutableRouteKeys.has(lazyRouteProperty)) {\n routeUpdates[lazyRouteProperty] = lazyRoute[lazyRouteProperty];\n }\n }\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, _extends({}, mapRouteProperties(routeToUpdate), {\n lazy: undefined\n }));\n}\nasync function callLoaderOrAction(type, request, match, matches, manifest, mapRouteProperties, basename, v7_relativeSplatPath, opts) {\n if (opts === void 0) {\n opts = {};\n }\n let resultType;\n let result;\n let onReject;\n let runHandler = handler => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject;\n let abortPromise = new Promise((_, r) => reject = r);\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n return Promise.race([handler({\n request,\n params: match.params,\n context: opts.requestContext\n }), abortPromise]);\n };\n try {\n let handler = match.route[type];\n if (match.route.lazy) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let values = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch(e => {\n handlerError = e;\n }), loadLazyRouteModule(match.route, mapRouteProperties, manifest)]);\n if (handlerError) {\n throw handlerError;\n }\n result = values[0];\n } else {\n // Load lazy route module, then run any returned handler\n await loadLazyRouteModule(match.route, mapRouteProperties, manifest);\n handler = match.route[type];\n if (handler) {\n // Handler still run even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return {\n type: ResultType.data,\n data: undefined\n };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname\n });\n } else {\n result = await runHandler(handler);\n }\n invariant(result !== undefined, \"You defined \" + (type === \"action\" ? \"an action\" : \"a loader\") + \" for route \" + (\"\\\"\" + match.route.id + \"\\\" but didn't return anything from your `\" + type + \"` \") + \"function. Please return a value or `null`.\");\n } catch (e) {\n resultType = ResultType.error;\n result = e;\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n if (isResponse(result)) {\n let status = result.status;\n // Process redirects\n if (redirectStatusCodes.has(status)) {\n let location = result.headers.get(\"Location\");\n invariant(location, \"Redirects returned/thrown from loaders/actions must have a Location header\");\n // Support relative routing in internal redirects\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n location = normalizeTo(new URL(request.url), matches.slice(0, matches.indexOf(match) + 1), basename, true, location, v7_relativeSplatPath);\n } else if (!opts.isStaticRequest) {\n // Strip off the protocol+origin for same-origin + same-basename absolute\n // redirects. If this is a static request, we can let it go back to the\n // browser as-is\n let currentUrl = new URL(request.url);\n let url = location.startsWith(\"//\") ? new URL(currentUrl.protocol + location) : new URL(location);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n location = url.pathname + url.search + url.hash;\n }\n }\n // Don't process redirects in the router during static requests requests.\n // Instead, throw the Response and let the server handle it with an HTTP\n // redirect. We also update the Location header in place in this flow so\n // basename and relative routing is taken into account\n if (opts.isStaticRequest) {\n result.headers.set(\"Location\", location);\n throw result;\n }\n return {\n type: ResultType.redirect,\n status,\n location,\n revalidate: result.headers.get(\"X-Remix-Revalidate\") !== null,\n reloadDocument: result.headers.get(\"X-Remix-Reload-Document\") !== null\n };\n }\n // For SSR single-route requests, we want to hand Responses back directly\n // without unwrapping. We do this with the QueryRouteResponse wrapper\n // interface so we can know whether it was returned or thrown\n if (opts.isRouteRequest) {\n let queryRouteResponse = {\n type: resultType === ResultType.error ? ResultType.error : ResultType.data,\n response: result\n };\n throw queryRouteResponse;\n }\n let data;\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return {\n type: ResultType.error,\n error: e\n };\n }\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: new ErrorResponseImpl(status, result.statusText, data),\n headers: result.headers\n };\n }\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers\n };\n }\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: result\n };\n }\n if (isDeferredData(result)) {\n var _result$init, _result$init2;\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: (_result$init = result.init) == null ? void 0 : _result$init.status,\n headers: ((_result$init2 = result.init) == null ? void 0 : _result$init2.headers) && new Headers(result.init.headers)\n };\n }\n return {\n type: ResultType.data,\n data: result\n };\n}\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(history, location, signal, submission) {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init = {\n signal\n };\n if (submission && isMutationMethod(submission.formMethod)) {\n let {\n formMethod,\n formEncType\n } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n if (formEncType === \"application/json\") {\n init.headers = new Headers({\n \"Content-Type\": formEncType\n });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (formEncType === \"application/x-www-form-urlencoded\" && submission.formData) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n return new Request(url, init);\n}\nfunction convertFormDataToSearchParams(formData) {\n let searchParams = new URLSearchParams();\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n return searchParams;\n}\nfunction convertSearchParamsToFormData(searchParams) {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\nfunction processRouteLoaderData(matches, matchesToLoad, results, pendingError, activeDeferreds) {\n // Fill in loaderData/errors from our loaders\n let loaderData = {};\n let errors = null;\n let statusCode;\n let foundError = false;\n let loaderHeaders = {};\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(!isRedirectResult(result), \"Cannot handle redirect results in processLoaderData\");\n if (isErrorResult(result)) {\n // Look upwards from the matched route for the closest ancestor\n // error boundary, defaulting to the root match\n let boundaryMatch = findNearestBoundary(matches, id);\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError) {\n error = Object.values(pendingError)[0];\n pendingError = undefined;\n }\n errors = errors || {};\n // Prefer higher error values if lower errors bubble to the same boundary\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error) ? result.error.status : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n } else {\n loaderData[id] = result.data;\n }\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode != null && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n });\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError) {\n errors = pendingError;\n loaderData[Object.keys(pendingError)[0]] = undefined;\n }\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders\n };\n}\nfunction processLoaderData(state, matches, matchesToLoad, results, pendingError, revalidatingFetchers, fetcherResults, activeDeferreds) {\n let {\n loaderData,\n errors\n } = processRouteLoaderData(matches, matchesToLoad, results, pendingError, activeDeferreds);\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let {\n key,\n match,\n controller\n } = revalidatingFetchers[index];\n invariant(fetcherResults !== undefined && fetcherResults[index] !== undefined, \"Did not find corresponding fetcher result\");\n let result = fetcherResults[index];\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n continue;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match == null ? void 0 : match.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = _extends({}, errors, {\n [boundaryMatch.route.id]: result.error\n });\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n return {\n loaderData,\n errors\n };\n}\nfunction mergeLoaderData(loaderData, newLoaderData, matches, errors) {\n let mergedLoaderData = _extends({}, newLoaderData);\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(matches, routeId) {\n let eligibleMatches = routeId ? matches.slice(0, matches.findIndex(m => m.route.id === routeId) + 1) : [...matches];\n return eligibleMatches.reverse().find(m => m.route.hasErrorBoundary === true) || matches[0];\n}\nfunction getShortCircuitMatches(routes) {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route = routes.length === 1 ? routes[0] : routes.find(r => r.index || !r.path || r.path === \"/\") || {\n id: \"__shim-error-route__\"\n };\n return {\n matches: [{\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route\n }],\n route\n };\n}\nfunction getInternalRouterError(status, _temp5) {\n let {\n pathname,\n routeId,\n method,\n type\n } = _temp5 === void 0 ? {} : _temp5;\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage = \"You made a \" + method + \" request to \\\"\" + pathname + \"\\\" but \" + (\"did not provide a `loader` for route \\\"\" + routeId + \"\\\", \") + \"so there is no way to handle the request.\";\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = \"Route \\\"\" + routeId + \"\\\" does not match URL \\\"\" + pathname + \"\\\"\";\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = \"No route matches URL \\\"\" + pathname + \"\\\"\";\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage = \"You made a \" + method.toUpperCase() + \" request to \\\"\" + pathname + \"\\\" but \" + (\"did not provide an `action` for route \\\"\" + routeId + \"\\\", \") + \"so there is no way to handle the request.\";\n } else if (method) {\n errorMessage = \"Invalid request method \\\"\" + method.toUpperCase() + \"\\\"\";\n }\n }\n return new ErrorResponseImpl(status || 500, statusText, new Error(errorMessage), true);\n}\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(results) {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return {\n result,\n idx: i\n };\n }\n }\n}\nfunction stripHashFromPath(path) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath(_extends({}, parsedPath, {\n hash: \"\"\n }));\n}\nfunction isHashChangeOnly(a, b) {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\nfunction isDeferredResult(result) {\n return result.type === ResultType.deferred;\n}\nfunction isErrorResult(result) {\n return result.type === ResultType.error;\n}\nfunction isRedirectResult(result) {\n return (result && result.type) === ResultType.redirect;\n}\nfunction isDeferredData(value) {\n let deferred = value;\n return deferred && typeof deferred === \"object\" && typeof deferred.data === \"object\" && typeof deferred.subscribe === \"function\" && typeof deferred.cancel === \"function\" && typeof deferred.resolveData === \"function\";\n}\nfunction isResponse(value) {\n return value != null && typeof value.status === \"number\" && typeof value.statusText === \"string\" && typeof value.headers === \"object\" && typeof value.body !== \"undefined\";\n}\nfunction isRedirectResponse(result) {\n if (!isResponse(result)) {\n return false;\n }\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\nfunction isQueryRouteResponse(obj) {\n return obj && isResponse(obj.response) && (obj.type === ResultType.data || obj.type === ResultType.error);\n}\nfunction isValidMethod(method) {\n return validRequestMethods.has(method.toLowerCase());\n}\nfunction isMutationMethod(method) {\n return validMutationMethods.has(method.toLowerCase());\n}\nasync function resolveDeferredResults(currentMatches, matchesToLoad, results, signals, isFetcher, currentLoaderData) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n let currentMatch = currentMatches.find(m => m.route.id === match.route.id);\n let isRevalidatingLoader = currentMatch != null && !isNewRouteInstance(currentMatch, match) && (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n let signal = signals[index];\n invariant(signal, \"Expected an AbortSignal for revalidating fetcher deferred result\");\n await resolveDeferredData(result, signal, isFetcher).then(result => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\nasync function resolveDeferredData(result, signal, unwrap) {\n if (unwrap === void 0) {\n unwrap = false;\n }\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e\n };\n }\n }\n return {\n type: ResultType.data,\n data: result.deferredData.data\n };\n}\nfunction hasNakedIndexQuery(search) {\n return new URLSearchParams(search).getAll(\"index\").some(v => v === \"\");\n}\nfunction getTargetMatch(matches, location) {\n let search = typeof location === \"string\" ? parsePath(location).search : location.search;\n if (matches[matches.length - 1].route.index && hasNakedIndexQuery(search || \"\")) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\nfunction getSubmissionFromNavigation(navigation) {\n let {\n formMethod,\n formAction,\n formEncType,\n text,\n formData,\n json\n } = navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined\n };\n }\n}\nfunction getLoadingNavigation(location, submission) {\n if (submission) {\n let navigation = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text\n };\n return navigation;\n } else {\n let navigation = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined\n };\n return navigation;\n }\n}\nfunction getSubmittingNavigation(location, submission) {\n let navigation = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text\n };\n return navigation;\n}\nfunction getLoadingFetcher(submission, data) {\n if (submission) {\n let fetcher = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data\n };\n return fetcher;\n } else {\n let fetcher = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data\n };\n return fetcher;\n }\n}\nfunction getSubmittingFetcher(submission, existingFetcher) {\n let fetcher = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined\n };\n return fetcher;\n}\nfunction getDoneFetcher(data) {\n let fetcher = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data\n };\n return fetcher;\n}\nfunction restoreAppliedTransitions(_window, transitions) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(TRANSITIONS_STORAGE_KEY);\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\nfunction persistAppliedTransitions(_window, transitions) {\n if (transitions.size > 0) {\n let json = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(TRANSITIONS_STORAGE_KEY, JSON.stringify(json));\n } catch (error) {\n warning(false, \"Failed to save applied view transitions in sessionStorage (\" + error + \").\");\n }\n }\n}\n//#endregion\n\nexport { AbortedDeferredError, Action, IDLE_BLOCKER, IDLE_FETCHER, IDLE_NAVIGATION, UNSAFE_DEFERRED_SYMBOL, DeferredData as UNSAFE_DeferredData, ErrorResponseImpl as UNSAFE_ErrorResponseImpl, convertRouteMatchToUiMatch as UNSAFE_convertRouteMatchToUiMatch, convertRoutesToDataRoutes as UNSAFE_convertRoutesToDataRoutes, getResolveToMatches as UNSAFE_getResolveToMatches, invariant as UNSAFE_invariant, warning as UNSAFE_warning, createBrowserHistory, createHashHistory, createMemoryHistory, createPath, createRouter, createStaticHandler, defer, generatePath, getStaticContextFromError, getToPathname, isDeferredData, isRouteErrorResponse, joinPaths, json, matchPath, matchRoutes, normalizePathname, parsePath, redirect, redirectDocument, resolvePath, resolveTo, stripBasename };\n//# sourceMappingURL=router.js.map\n","/**\n * React Router v6.22.3\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport * as React from 'react';\nimport { UNSAFE_invariant, joinPaths, matchPath, UNSAFE_getResolveToMatches, UNSAFE_warning, resolveTo, parsePath, matchRoutes, Action, UNSAFE_convertRouteMatchToUiMatch, stripBasename, IDLE_BLOCKER, isRouteErrorResponse, createMemoryHistory, AbortedDeferredError, createRouter } from '@remix-run/router';\nexport { AbortedDeferredError, Action as NavigationType, createPath, defer, generatePath, isRouteErrorResponse, json, matchPath, matchRoutes, parsePath, redirect, redirectDocument, resolvePath } from '@remix-run/router';\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nconst DataRouterContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n DataRouterContext.displayName = \"DataRouter\";\n}\nconst DataRouterStateContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\nconst AwaitContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n AwaitContext.displayName = \"Await\";\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level `` API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\n\nconst NavigationContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n NavigationContext.displayName = \"Navigation\";\n}\nconst LocationContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n LocationContext.displayName = \"Location\";\n}\nconst RouteContext = /*#__PURE__*/React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false\n});\nif (process.env.NODE_ENV !== \"production\") {\n RouteContext.displayName = \"Route\";\n}\nconst RouteErrorContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n RouteErrorContext.displayName = \"RouteError\";\n}\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nfunction useHref(to, _temp) {\n let {\n relative\n } = _temp === void 0 ? {} : _temp;\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useHref() may be used only in the context of a component.\") : UNSAFE_invariant(false) : void 0;\n let {\n basename,\n navigator\n } = React.useContext(NavigationContext);\n let {\n hash,\n pathname,\n search\n } = useResolvedPath(to, {\n relative\n });\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname = pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n return navigator.createHref({\n pathname: joinedPathname,\n search,\n hash\n });\n}\n\n/**\n * Returns true if this component is a descendant of a ``.\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nfunction useInRouterContext() {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nfunction useLocation() {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useLocation() may be used only in the context of a component.\") : UNSAFE_invariant(false) : void 0;\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nfunction useNavigationType() {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * ``.\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nfunction useMatch(pattern) {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useMatch() may be used only in the context of a component.\") : UNSAFE_invariant(false) : void 0;\n let {\n pathname\n } = useLocation();\n return React.useMemo(() => matchPath(pattern, pathname), [pathname, pattern]);\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\n\nconst navigateEffectWarning = \"You should call navigate() in a React.useEffect(), not when \" + \"your component is first rendered.\";\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(cb) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by ``s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nfunction useNavigate() {\n let {\n isDataRoute\n } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\nfunction useNavigateUnstable() {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useNavigate() may be used only in the context of a component.\") : UNSAFE_invariant(false) : void 0;\n let dataRouterContext = React.useContext(DataRouterContext);\n let {\n basename,\n future,\n navigator\n } = React.useContext(NavigationContext);\n let {\n matches\n } = React.useContext(RouteContext);\n let {\n pathname: locationPathname\n } = useLocation();\n let routePathnamesJson = JSON.stringify(UNSAFE_getResolveToMatches(matches, future.v7_relativeSplatPath));\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n let navigate = React.useCallback(function (to, options) {\n if (options === void 0) {\n options = {};\n }\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(activeRef.current, navigateEffectWarning) : void 0;\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n let path = resolveTo(to, JSON.parse(routePathnamesJson), locationPathname, options.relative === \"path\");\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname = path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n (!!options.replace ? navigator.replace : navigator.push)(path, options.state, options);\n }, [basename, navigator, routePathnamesJson, locationPathname, dataRouterContext]);\n return navigate;\n}\nconst OutletContext = /*#__PURE__*/React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nfunction useOutletContext() {\n return React.useContext(OutletContext);\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by `` to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nfunction useOutlet(context) {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return /*#__PURE__*/React.createElement(OutletContext.Provider, {\n value: context\n }, outlet);\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nfunction useParams() {\n let {\n matches\n } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? routeMatch.params : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nfunction useResolvedPath(to, _temp2) {\n let {\n relative\n } = _temp2 === void 0 ? {} : _temp2;\n let {\n future\n } = React.useContext(NavigationContext);\n let {\n matches\n } = React.useContext(RouteContext);\n let {\n pathname: locationPathname\n } = useLocation();\n let routePathnamesJson = JSON.stringify(UNSAFE_getResolveToMatches(matches, future.v7_relativeSplatPath));\n return React.useMemo(() => resolveTo(to, JSON.parse(routePathnamesJson), locationPathname, relative === \"path\"), [to, routePathnamesJson, locationPathname, relative]);\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an `` to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nfunction useRoutes(routes, locationArg) {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nfunction useRoutesImpl(routes, locationArg, dataRouterState, future) {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useRoutes() may be used only in the context of a component.\") : UNSAFE_invariant(false) : void 0;\n let {\n navigator\n } = React.useContext(NavigationContext);\n let {\n matches: parentMatches\n } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n if (process.env.NODE_ENV !== \"production\") {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = parentRoute && parentRoute.path || \"\";\n warningOnce(parentPathname, !parentRoute || parentPath.endsWith(\"*\"), \"You rendered descendant (or called `useRoutes()`) at \" + (\"\\\"\" + parentPathname + \"\\\" (under ) but the \") + \"parent route path has no trailing \\\"*\\\". This means if you navigate \" + \"deeper, the parent won't match anymore and therefore the child \" + \"routes will never render.\\n\\n\" + (\"Please change the parent to .\"));\n }\n let locationFromContext = useLocation();\n let location;\n if (locationArg) {\n var _parsedLocationArg$pa;\n let parsedLocationArg = typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n !(parentPathnameBase === \"/\" || ((_parsedLocationArg$pa = parsedLocationArg.pathname) == null ? void 0 : _parsedLocationArg$pa.startsWith(parentPathnameBase))) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"When overriding the location using `` or `useRoutes(routes, location)`, \" + \"the location pathname must begin with the portion of the URL pathname that was \" + (\"matched by all parent routes. The current pathname base is \\\"\" + parentPathnameBase + \"\\\" \") + (\"but pathname \\\"\" + parsedLocationArg.pathname + \"\\\" was given in the `location` prop.\")) : UNSAFE_invariant(false) : void 0;\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n let pathname = location.pathname || \"/\";\n let remainingPathname = pathname;\n if (parentPathnameBase !== \"/\") {\n // Determine the remaining pathname by removing the # of URL segments the\n // parentPathnameBase has, instead of removing based on character count.\n // This is because we can't guarantee that incoming/outgoing encodings/\n // decodings will match exactly.\n // We decode paths before matching on a per-segment basis with\n // decodeURIComponent(), but we re-encode pathnames via `new URL()` so they\n // match what `window.location.pathname` would reflect. Those don't 100%\n // align when it comes to encoded URI characters such as % and &.\n //\n // So we may end up with:\n // pathname: \"/descendant/a%25b/match\"\n // parentPathnameBase: \"/descendant/a%b\"\n //\n // And the direct substring removal approach won't work :/\n let parentSegments = parentPathnameBase.replace(/^\\//, \"\").split(\"/\");\n let segments = pathname.replace(/^\\//, \"\").split(\"/\");\n remainingPathname = \"/\" + segments.slice(parentSegments.length).join(\"/\");\n }\n let matches = matchRoutes(routes, {\n pathname: remainingPathname\n });\n if (process.env.NODE_ENV !== \"production\") {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(parentRoute || matches != null, \"No routes matched location \\\"\" + location.pathname + location.search + location.hash + \"\\\" \") : void 0;\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(matches == null || matches[matches.length - 1].route.element !== undefined || matches[matches.length - 1].route.Component !== undefined || matches[matches.length - 1].route.lazy !== undefined, \"Matched leaf route at location \\\"\" + location.pathname + location.search + location.hash + \"\\\" \" + \"does not have an element or Component. This means it will render an with a \" + \"null value by default resulting in an \\\"empty\\\" page.\") : void 0;\n }\n let renderedMatches = _renderMatches(matches && matches.map(match => Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation ? navigator.encodeLocation(match.pathname).pathname : match.pathname]),\n pathnameBase: match.pathnameBase === \"/\" ? parentPathnameBase : joinPaths([parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation ? navigator.encodeLocation(match.pathnameBase).pathname : match.pathnameBase])\n })), parentMatches, dataRouterState, future);\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return /*#__PURE__*/React.createElement(LocationContext.Provider, {\n value: {\n location: _extends({\n pathname: \"/\",\n search: \"\",\n hash: \"\",\n state: null,\n key: \"default\"\n }, location),\n navigationType: Action.Pop\n }\n }, renderedMatches);\n }\n return renderedMatches;\n}\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error) ? error.status + \" \" + error.statusText : error instanceof Error ? error.message : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = {\n padding: \"0.5rem\",\n backgroundColor: lightgrey\n };\n let codeStyles = {\n padding: \"2px 4px\",\n backgroundColor: lightgrey\n };\n let devInfo = null;\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\"Error handled by React Router default ErrorBoundary:\", error);\n devInfo = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"p\", null, \"\\uD83D\\uDCBF Hey developer \\uD83D\\uDC4B\"), /*#__PURE__*/React.createElement(\"p\", null, \"You can provide a way better UX than this when your app throws errors by providing your own \", /*#__PURE__*/React.createElement(\"code\", {\n style: codeStyles\n }, \"ErrorBoundary\"), \" or\", \" \", /*#__PURE__*/React.createElement(\"code\", {\n style: codeStyles\n }, \"errorElement\"), \" prop on your route.\"));\n }\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"h2\", null, \"Unexpected Application Error!\"), /*#__PURE__*/React.createElement(\"h3\", {\n style: {\n fontStyle: \"italic\"\n }\n }, message), stack ? /*#__PURE__*/React.createElement(\"pre\", {\n style: preStyles\n }, stack) : null, devInfo);\n}\nconst defaultErrorElement = /*#__PURE__*/React.createElement(DefaultErrorComponent, null);\nclass RenderErrorBoundary extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n location: props.location,\n revalidation: props.revalidation,\n error: props.error\n };\n }\n static getDerivedStateFromError(error) {\n return {\n error: error\n };\n }\n static getDerivedStateFromProps(props, state) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (state.location !== props.location || state.revalidation !== \"idle\" && props.revalidation === \"idle\") {\n return {\n error: props.error,\n location: props.location,\n revalidation: props.revalidation\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error !== undefined ? props.error : state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation\n };\n }\n componentDidCatch(error, errorInfo) {\n console.error(\"React Router caught the following error during render\", error, errorInfo);\n }\n render() {\n return this.state.error !== undefined ? /*#__PURE__*/React.createElement(RouteContext.Provider, {\n value: this.props.routeContext\n }, /*#__PURE__*/React.createElement(RouteErrorContext.Provider, {\n value: this.state.error,\n children: this.props.component\n })) : this.props.children;\n }\n}\nfunction RenderedRoute(_ref) {\n let {\n routeContext,\n match,\n children\n } = _ref;\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (dataRouterContext && dataRouterContext.static && dataRouterContext.staticContext && (match.route.errorElement || match.route.ErrorBoundary)) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n return /*#__PURE__*/React.createElement(RouteContext.Provider, {\n value: routeContext\n }, children);\n}\nfunction _renderMatches(matches, parentMatches, dataRouterState, future) {\n var _dataRouterState2;\n if (parentMatches === void 0) {\n parentMatches = [];\n }\n if (dataRouterState === void 0) {\n dataRouterState = null;\n }\n if (future === void 0) {\n future = null;\n }\n if (matches == null) {\n var _dataRouterState;\n if ((_dataRouterState = dataRouterState) != null && _dataRouterState.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches;\n } else {\n return null;\n }\n }\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = (_dataRouterState2 = dataRouterState) == null ? void 0 : _dataRouterState2.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(m => m.route.id && (errors == null ? void 0 : errors[m.route.id]));\n !(errorIndex >= 0) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"Could not find a matching route for errors on route IDs: \" + Object.keys(errors).join(\",\")) : UNSAFE_invariant(false) : void 0;\n renderedMatches = renderedMatches.slice(0, Math.min(renderedMatches.length, errorIndex + 1));\n }\n\n // If we're in a partial hydration mode, detect if we need to render down to\n // a given HydrateFallback while we load the rest of the hydration data\n let renderFallback = false;\n let fallbackIndex = -1;\n if (dataRouterState && future && future.v7_partialHydration) {\n for (let i = 0; i < renderedMatches.length; i++) {\n let match = renderedMatches[i];\n // Track the deepest fallback up until the first route without data\n if (match.route.HydrateFallback || match.route.hydrateFallbackElement) {\n fallbackIndex = i;\n }\n if (match.route.id) {\n let {\n loaderData,\n errors\n } = dataRouterState;\n let needsToRunLoader = match.route.loader && loaderData[match.route.id] === undefined && (!errors || errors[match.route.id] === undefined);\n if (match.route.lazy || needsToRunLoader) {\n // We found the first route that's not ready to render (waiting on\n // lazy, or has a loader that hasn't run yet). Flag that we need to\n // render a fallback and render up until the appropriate fallback\n renderFallback = true;\n if (fallbackIndex >= 0) {\n renderedMatches = renderedMatches.slice(0, fallbackIndex + 1);\n } else {\n renderedMatches = [renderedMatches[0]];\n }\n break;\n }\n }\n }\n }\n return renderedMatches.reduceRight((outlet, match, index) => {\n // Only data routers handle errors/fallbacks\n let error;\n let shouldRenderHydrateFallback = false;\n let errorElement = null;\n let hydrateFallbackElement = null;\n if (dataRouterState) {\n error = errors && match.route.id ? errors[match.route.id] : undefined;\n errorElement = match.route.errorElement || defaultErrorElement;\n if (renderFallback) {\n if (fallbackIndex < 0 && index === 0) {\n warningOnce(\"route-fallback\", false, \"No `HydrateFallback` element provided to render during initial hydration\");\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = null;\n } else if (fallbackIndex === index) {\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = match.route.hydrateFallbackElement || null;\n }\n }\n }\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children;\n if (error) {\n children = errorElement;\n } else if (shouldRenderHydrateFallback) {\n children = hydrateFallbackElement;\n } else if (match.route.Component) {\n // Note: This is a de-optimized path since React won't re-use the\n // ReactElement since it's identity changes with each new\n // React.createElement call. We keep this so folks can use\n // `` in `` but generally `Component`\n // usage is only advised in `RouterProvider` when we can convert it to\n // `element` ahead of time.\n children = /*#__PURE__*/React.createElement(match.route.Component, null);\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return /*#__PURE__*/React.createElement(RenderedRoute, {\n match: match,\n routeContext: {\n outlet,\n matches,\n isDataRoute: dataRouterState != null\n },\n children: children\n });\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState && (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? /*#__PURE__*/React.createElement(RenderErrorBoundary, {\n location: dataRouterState.location,\n revalidation: dataRouterState.revalidation,\n component: errorElement,\n error: error,\n children: getChildren(),\n routeContext: {\n outlet: null,\n matches,\n isDataRoute: true\n }\n }) : getChildren();\n }, null);\n}\nvar DataRouterHook = /*#__PURE__*/function (DataRouterHook) {\n DataRouterHook[\"UseBlocker\"] = \"useBlocker\";\n DataRouterHook[\"UseRevalidator\"] = \"useRevalidator\";\n DataRouterHook[\"UseNavigateStable\"] = \"useNavigate\";\n return DataRouterHook;\n}(DataRouterHook || {});\nvar DataRouterStateHook = /*#__PURE__*/function (DataRouterStateHook) {\n DataRouterStateHook[\"UseBlocker\"] = \"useBlocker\";\n DataRouterStateHook[\"UseLoaderData\"] = \"useLoaderData\";\n DataRouterStateHook[\"UseActionData\"] = \"useActionData\";\n DataRouterStateHook[\"UseRouteError\"] = \"useRouteError\";\n DataRouterStateHook[\"UseNavigation\"] = \"useNavigation\";\n DataRouterStateHook[\"UseRouteLoaderData\"] = \"useRouteLoaderData\";\n DataRouterStateHook[\"UseMatches\"] = \"useMatches\";\n DataRouterStateHook[\"UseRevalidator\"] = \"useRevalidator\";\n DataRouterStateHook[\"UseNavigateStable\"] = \"useNavigate\";\n DataRouterStateHook[\"UseRouteId\"] = \"useRouteId\";\n return DataRouterStateHook;\n}(DataRouterStateHook || {});\nfunction getDataRouterConsoleError(hookName) {\n return hookName + \" must be used within a data router. See https://reactrouter.com/routers/picking-a-router.\";\n}\nfunction useDataRouterContext(hookName) {\n let ctx = React.useContext(DataRouterContext);\n !ctx ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return ctx;\n}\nfunction useDataRouterState(hookName) {\n let state = React.useContext(DataRouterStateContext);\n !state ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return state;\n}\nfunction useRouteContext(hookName) {\n let route = React.useContext(RouteContext);\n !route ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n !thisRoute.route.id ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, hookName + \" can only be used on routes that contain a unique \\\"id\\\"\") : UNSAFE_invariant(false) : void 0;\n return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nfunction useRouteId() {\n return useCurrentRouteId(DataRouterStateHook.UseRouteId);\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nfunction useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nfunction useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return React.useMemo(() => ({\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation\n }), [dataRouterContext.router.revalidate, state.revalidation]);\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nfunction useMatches() {\n let {\n matches,\n loaderData\n } = useDataRouterState(DataRouterStateHook.UseMatches);\n return React.useMemo(() => matches.map(m => UNSAFE_convertRouteMatchToUiMatch(m, loaderData)), [matches, loaderData]);\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nfunction useLoaderData() {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n if (state.errors && state.errors[routeId] != null) {\n console.error(\"You cannot `useLoaderData` in an errorElement (routeId: \" + routeId + \")\");\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nfunction useRouteLoaderData(routeId) {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nfunction useActionData() {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n return state.actionData ? state.actionData[routeId] : undefined;\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nfunction useRouteError() {\n var _state$errors;\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error !== undefined) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return (_state$errors = state.errors) == null ? void 0 : _state$errors[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor `` value\n */\nfunction useAsyncValue() {\n let value = React.useContext(AwaitContext);\n return value == null ? void 0 : value._data;\n}\n\n/**\n * Returns the error from the nearest ancestor `` value\n */\nfunction useAsyncError() {\n let value = React.useContext(AwaitContext);\n return value == null ? void 0 : value._error;\n}\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nfunction useBlocker(shouldBlock) {\n let {\n router,\n basename\n } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n let [blockerKey, setBlockerKey] = React.useState(\"\");\n let blockerFunction = React.useCallback(arg => {\n if (typeof shouldBlock !== \"function\") {\n return !!shouldBlock;\n }\n if (basename === \"/\") {\n return shouldBlock(arg);\n }\n\n // If they provided us a function and we've got an active basename, strip\n // it from the locations we expose to the user to match the behavior of\n // useLocation\n let {\n currentLocation,\n nextLocation,\n historyAction\n } = arg;\n return shouldBlock({\n currentLocation: _extends({}, currentLocation, {\n pathname: stripBasename(currentLocation.pathname, basename) || currentLocation.pathname\n }),\n nextLocation: _extends({}, nextLocation, {\n pathname: stripBasename(nextLocation.pathname, basename) || nextLocation.pathname\n }),\n historyAction\n });\n }, [basename, shouldBlock]);\n\n // This effect is in charge of blocker key assignment and deletion (which is\n // tightly coupled to the key)\n React.useEffect(() => {\n let key = String(++blockerId);\n setBlockerKey(key);\n return () => router.deleteBlocker(key);\n }, [router]);\n\n // This effect handles assigning the blockerFunction. This is to handle\n // unstable blocker function identities, and happens only after the prior\n // effect so we don't get an orphaned blockerFunction in the router with a\n // key of \"\". Until then we just have the IDLE_BLOCKER.\n React.useEffect(() => {\n if (blockerKey !== \"\") {\n router.getBlocker(blockerKey, blockerFunction);\n }\n }, [router, blockerKey, blockerFunction]);\n\n // Prefer the blocker from `state` not `router.state` since DataRouterContext\n // is memoized so this ensures we update on blocker state updates\n return blockerKey && state.blockers.has(blockerKey) ? state.blockers.get(blockerKey) : IDLE_BLOCKER;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable() {\n let {\n router\n } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n let navigate = React.useCallback(function (to, options) {\n if (options === void 0) {\n options = {};\n }\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(activeRef.current, navigateEffectWarning) : void 0;\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our router subscriber yet\n if (!activeRef.current) return;\n if (typeof to === \"number\") {\n router.navigate(to);\n } else {\n router.navigate(to, _extends({\n fromRouteId: id\n }, options));\n }\n }, [router, id]);\n return navigate;\n}\nconst alreadyWarned = {};\nfunction warningOnce(key, cond, message) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, message) : void 0;\n }\n}\n\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nfunction RouterProvider(_ref) {\n let {\n fallbackElement,\n router,\n future\n } = _ref;\n let [state, setStateImpl] = React.useState(router.state);\n let {\n v7_startTransition\n } = future || {};\n let setState = React.useCallback(newState => {\n if (v7_startTransition && startTransitionImpl) {\n startTransitionImpl(() => setStateImpl(newState));\n } else {\n setStateImpl(newState);\n }\n }, [setStateImpl, v7_startTransition]);\n\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/)\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n React.useEffect(() => {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(fallbackElement == null || !router.future.v7_partialHydration, \"`` is deprecated when using \" + \"`v7_partialHydration`, use a `HydrateFallback` component instead\") : void 0;\n // Only log this once on initial mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n let navigator = React.useMemo(() => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: n => router.navigate(n),\n push: (to, state, opts) => router.navigate(to, {\n state,\n preventScrollReset: opts == null ? void 0 : opts.preventScrollReset\n }),\n replace: (to, state, opts) => router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts == null ? void 0 : opts.preventScrollReset\n })\n };\n }, [router]);\n let basename = router.basename || \"/\";\n let dataRouterContext = React.useMemo(() => ({\n router,\n navigator,\n static: false,\n basename\n }), [router, navigator, basename]);\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a \n \nFor more info see: https://ag-grid.com/javascript-data-grid/getting-started/#getting-started-with-ag-grid-enterprise`;\n }\n }\n else if (ModuleRegistry.moduleBased || ModuleRegistry.moduleBased === undefined) {\n let modName = (_a = Object.entries(ModuleNames).find(([k, v]) => v === moduleName)) === null || _a === void 0 ? void 0 : _a[0];\n warningMessage =\n `AG Grid: unable to use ${reason} as the ${modName} is not registered${ModuleRegistry.areGridScopedModules ? ` for gridId: ${gridId}` : ''}. Check if you have registered the module:\n \n import { ModuleRegistry } from '@ag-grid-community/core';\n import { ${modName} } from '${moduleName}';\n \n ModuleRegistry.registerModules([ ${modName} ]);\n\nFor more info see: https://www.ag-grid.com/javascript-grid/modules/`;\n }\n else {\n warningMessage =\n `AG Grid: unable to use ${reason} as package 'ag-grid-enterprise' has not been imported. Check that you have imported the package:\n \n import 'ag-grid-enterprise';\n \nFor more info see: https://www.ag-grid.com/javascript-grid/packages/`;\n }\n doOnce(() => {\n console.warn(warningMessage);\n }, warningKey);\n return false;\n }\n /**\n * AG GRID INTERNAL - Warn that a given integrated chart type is not supported under the community distribution.\n */\n static __warnEnterpriseChartDisabled(chartType) {\n const reason = 'ag-charts-enterprise';\n const warningKey = reason + ':' + chartType;\n const url = 'https://ag-grid.com/javascript-data-grid/integrated-charts/';\n const warningMessage = `AG Grid: the '${chartType}' chart type is not supported in AG Charts Community. See ${url} for more details.`;\n doOnce(() => {\n console.warn(warningMessage);\n }, warningKey);\n }\n /** AG GRID INTERNAL - Is the given module registered, globally or individually with this grid. */\n static __isRegistered(moduleName, gridId) {\n var _a;\n return !!ModuleRegistry.globalModulesMap[moduleName] || !!((_a = ModuleRegistry.gridModulesMap[gridId]) === null || _a === void 0 ? void 0 : _a[moduleName]);\n }\n /** AG GRID INTERNAL - Get all registered modules globally / individually for this grid. */\n static __getRegisteredModules(gridId) {\n return [...values(ModuleRegistry.globalModulesMap), ...values(ModuleRegistry.gridModulesMap[gridId] || {})];\n }\n /** AG GRID INTERNAL - Get the list of modules registered individually for this grid. */\n static __getGridRegisteredModules(gridId) {\n var _a;\n return values((_a = ModuleRegistry.gridModulesMap[gridId]) !== null && _a !== void 0 ? _a : {}) || [];\n }\n /** INTERNAL */\n static __isPackageBased() {\n return !ModuleRegistry.moduleBased;\n }\n}\n// having in a map a) removes duplicates and b) allows fast lookup\nModuleRegistry.globalModulesMap = {};\nModuleRegistry.gridModulesMap = {};\nModuleRegistry.areGridScopedModules = false;\n","import { exists, values } from \"../utils/generic.mjs\";\nimport { iterateObject } from \"../utils/object.mjs\";\nimport { getFunctionName } from \"../utils/function.mjs\";\nimport { ModuleRegistry } from \"../modules/moduleRegistry.mjs\";\nexport class Context {\n constructor(params, logger) {\n this.beanWrappers = {};\n this.destroyed = false;\n if (!params || !params.beanClasses) {\n return;\n }\n this.contextParams = params;\n this.logger = logger;\n this.logger.log(\">> creating ag-Application Context\");\n this.createBeans();\n const beanInstances = this.getBeanInstances();\n this.wireBeans(beanInstances);\n this.logger.log(\">> ag-Application Context ready - component is alive\");\n }\n getBeanInstances() {\n return values(this.beanWrappers).map(beanEntry => beanEntry.beanInstance);\n }\n createBean(bean, afterPreCreateCallback) {\n if (!bean) {\n throw Error(`Can't wire to bean since it is null`);\n }\n this.wireBeans([bean], afterPreCreateCallback);\n return bean;\n }\n wireBeans(beanInstances, afterPreCreateCallback) {\n this.autoWireBeans(beanInstances);\n this.methodWireBeans(beanInstances);\n this.callLifeCycleMethods(beanInstances, 'preConstructMethods');\n // the callback sets the attributes, so the component has access to attributes\n // before postConstruct methods in the component are executed\n if (exists(afterPreCreateCallback)) {\n beanInstances.forEach(afterPreCreateCallback);\n }\n this.callLifeCycleMethods(beanInstances, 'postConstructMethods');\n }\n createBeans() {\n // register all normal beans\n this.contextParams.beanClasses.forEach(this.createBeanWrapper.bind(this));\n // register override beans, these will overwrite beans above of same name\n // instantiate all beans - overridden beans will be left out\n iterateObject(this.beanWrappers, (key, beanEntry) => {\n let constructorParamsMeta;\n if (beanEntry.bean.__agBeanMetaData && beanEntry.bean.__agBeanMetaData.autowireMethods && beanEntry.bean.__agBeanMetaData.autowireMethods.agConstructor) {\n constructorParamsMeta = beanEntry.bean.__agBeanMetaData.autowireMethods.agConstructor;\n }\n const constructorParams = this.getBeansForParameters(constructorParamsMeta, beanEntry.bean.name);\n const newInstance = new (beanEntry.bean.bind.apply(beanEntry.bean, [null, ...constructorParams]));\n beanEntry.beanInstance = newInstance;\n });\n const createdBeanNames = Object.keys(this.beanWrappers).join(', ');\n this.logger.log(`created beans: ${createdBeanNames}`);\n }\n // tslint:disable-next-line\n createBeanWrapper(BeanClass) {\n const metaData = BeanClass.__agBeanMetaData;\n if (!metaData) {\n let beanName;\n if (BeanClass.prototype.constructor) {\n beanName = getFunctionName(BeanClass.prototype.constructor);\n }\n else {\n beanName = \"\" + BeanClass;\n }\n console.error(`Context item ${beanName} is not a bean`);\n return;\n }\n const beanEntry = {\n bean: BeanClass,\n beanInstance: null,\n beanName: metaData.beanName\n };\n this.beanWrappers[metaData.beanName] = beanEntry;\n }\n autoWireBeans(beanInstances) {\n beanInstances.forEach(beanInstance => {\n this.forEachMetaDataInHierarchy(beanInstance, (metaData, beanName) => {\n const attributes = metaData.agClassAttributes;\n if (!attributes) {\n return;\n }\n attributes.forEach((attribute) => {\n const otherBean = this.lookupBeanInstance(beanName, attribute.beanName, attribute.optional);\n beanInstance[attribute.attributeName] = otherBean;\n });\n });\n });\n }\n methodWireBeans(beanInstances) {\n beanInstances.forEach(beanInstance => {\n this.forEachMetaDataInHierarchy(beanInstance, (metaData, beanName) => {\n iterateObject(metaData.autowireMethods, (methodName, wireParams) => {\n // skip constructor, as this is dealt with elsewhere\n if (methodName === \"agConstructor\") {\n return;\n }\n const initParams = this.getBeansForParameters(wireParams, beanName);\n beanInstance[methodName].apply(beanInstance, initParams);\n });\n });\n });\n }\n forEachMetaDataInHierarchy(beanInstance, callback) {\n let prototype = Object.getPrototypeOf(beanInstance);\n while (prototype != null) {\n const constructor = prototype.constructor;\n if (constructor.hasOwnProperty('__agBeanMetaData')) {\n const metaData = constructor.__agBeanMetaData;\n const beanName = this.getBeanName(constructor);\n callback(metaData, beanName);\n }\n prototype = Object.getPrototypeOf(prototype);\n }\n }\n getBeanName(constructor) {\n if (constructor.__agBeanMetaData && constructor.__agBeanMetaData.beanName) {\n return constructor.__agBeanMetaData.beanName;\n }\n const constructorString = constructor.toString();\n const beanName = constructorString.substring(9, constructorString.indexOf(\"(\"));\n return beanName;\n }\n getBeansForParameters(parameters, beanName) {\n const beansList = [];\n if (parameters) {\n iterateObject(parameters, (paramIndex, otherBeanName) => {\n const otherBean = this.lookupBeanInstance(beanName, otherBeanName);\n beansList[Number(paramIndex)] = otherBean;\n });\n }\n return beansList;\n }\n lookupBeanInstance(wiringBean, beanName, optional = false) {\n if (this.destroyed) {\n this.logger.log(`AG Grid: bean reference ${beanName} is used after the grid is destroyed!`);\n return null;\n }\n if (beanName === \"context\") {\n return this;\n }\n if (this.contextParams.providedBeanInstances && this.contextParams.providedBeanInstances.hasOwnProperty(beanName)) {\n return this.contextParams.providedBeanInstances[beanName];\n }\n const beanEntry = this.beanWrappers[beanName];\n if (beanEntry) {\n return beanEntry.beanInstance;\n }\n if (!optional) {\n console.error(`AG Grid: unable to find bean reference ${beanName} while initialising ${wiringBean}`);\n }\n return null;\n }\n callLifeCycleMethods(beanInstances, lifeCycleMethod) {\n beanInstances.forEach(beanInstance => this.callLifeCycleMethodsOnBean(beanInstance, lifeCycleMethod));\n }\n callLifeCycleMethodsOnBean(beanInstance, lifeCycleMethod, methodToIgnore) {\n // putting all methods into a map removes duplicates\n const allMethods = {};\n // dump methods from each level of the metadata hierarchy\n this.forEachMetaDataInHierarchy(beanInstance, (metaData) => {\n const methods = metaData[lifeCycleMethod];\n if (methods) {\n methods.forEach(methodName => {\n if (methodName != methodToIgnore) {\n allMethods[methodName] = true;\n }\n });\n }\n });\n const allMethodsList = Object.keys(allMethods);\n allMethodsList.forEach(methodName => beanInstance[methodName]());\n }\n getBean(name) {\n return this.lookupBeanInstance(\"getBean\", name, true);\n }\n destroy() {\n if (this.destroyed) {\n return;\n }\n // Set before doing the destroy, so if context.destroy() gets called via another bean\n // we are marked as destroyed already to prevent running destroy() twice\n this.destroyed = true;\n this.logger.log(\">> Shutting down ag-Application Context\");\n const beanInstances = this.getBeanInstances();\n this.destroyBeans(beanInstances);\n this.contextParams.providedBeanInstances = null;\n ModuleRegistry.__unRegisterGridModules(this.contextParams.gridId);\n this.logger.log(\">> ag-Application Context shut down - component is dead\");\n }\n destroyBean(bean) {\n if (!bean) {\n return;\n }\n this.destroyBeans([bean]);\n }\n destroyBeans(beans) {\n if (!beans) {\n return [];\n }\n beans.forEach(bean => {\n this.callLifeCycleMethodsOnBean(bean, 'preDestroyMethods', 'destroy');\n // call destroy() explicitly if it exists\n const beanAny = bean;\n if (typeof beanAny.destroy === 'function') {\n beanAny.destroy();\n }\n });\n return [];\n }\n isDestroyed() {\n return this.destroyed;\n }\n getGridId() {\n return this.contextParams.gridId;\n }\n}\nexport function PreConstruct(target, methodName, descriptor) {\n const props = getOrCreateProps(target.constructor);\n if (!props.preConstructMethods) {\n props.preConstructMethods = [];\n }\n props.preConstructMethods.push(methodName);\n}\nexport function PostConstruct(target, methodName, descriptor) {\n const props = getOrCreateProps(target.constructor);\n if (!props.postConstructMethods) {\n props.postConstructMethods = [];\n }\n props.postConstructMethods.push(methodName);\n}\nexport function PreDestroy(target, methodName, descriptor) {\n const props = getOrCreateProps(target.constructor);\n if (!props.preDestroyMethods) {\n props.preDestroyMethods = [];\n }\n props.preDestroyMethods.push(methodName);\n}\nexport function Bean(beanName) {\n return (classConstructor) => {\n const props = getOrCreateProps(classConstructor);\n props.beanName = beanName;\n };\n}\nexport function Autowired(name) {\n return (target, propertyKey, descriptor) => {\n autowiredFunc(target, name, false, target, propertyKey, null);\n };\n}\nexport function Optional(name) {\n return (target, propertyKey, descriptor) => {\n autowiredFunc(target, name, true, target, propertyKey, null);\n };\n}\nfunction autowiredFunc(target, name, optional, classPrototype, methodOrAttributeName, index) {\n if (name === null) {\n console.error(\"AG Grid: Autowired name should not be null\");\n return;\n }\n if (typeof index === \"number\") {\n console.error(\"AG Grid: Autowired should be on an attribute\");\n return;\n }\n // it's an attribute on the class\n const props = getOrCreateProps(target.constructor);\n if (!props.agClassAttributes) {\n props.agClassAttributes = [];\n }\n props.agClassAttributes.push({\n attributeName: methodOrAttributeName,\n beanName: name,\n optional: optional\n });\n}\nexport function Qualifier(name) {\n return (classPrototype, methodOrAttributeName, index) => {\n const constructor = typeof classPrototype == \"function\" ? classPrototype : classPrototype.constructor;\n let props;\n if (typeof index === \"number\") {\n // it's a parameter on a method\n let methodName;\n if (methodOrAttributeName) {\n props = getOrCreateProps(constructor);\n methodName = methodOrAttributeName;\n }\n else {\n props = getOrCreateProps(constructor);\n methodName = \"agConstructor\";\n }\n if (!props.autowireMethods) {\n props.autowireMethods = {};\n }\n if (!props.autowireMethods[methodName]) {\n props.autowireMethods[methodName] = {};\n }\n props.autowireMethods[methodName][index] = name;\n }\n };\n}\nfunction getOrCreateProps(target) {\n if (!target.hasOwnProperty(\"__agBeanMetaData\")) {\n target.__agBeanMetaData = {};\n }\n return target.__agBeanMetaData;\n}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { Bean, Qualifier } from \"./context/context.mjs\";\nlet EventService = class EventService {\n constructor() {\n this.allSyncListeners = new Map();\n this.allAsyncListeners = new Map();\n this.globalSyncListeners = new Set();\n this.globalAsyncListeners = new Set();\n this.asyncFunctionsQueue = [];\n this.scheduled = false;\n // using an object performs better than a Set for the number of different events we have\n this.firedEvents = {};\n }\n // because this class is used both inside the context and outside the context, we do not\n // use autowired attributes, as that would be confusing, as sometimes the attributes\n // would be wired, and sometimes not.\n //\n // the global event servers used by AG Grid is autowired by the context once, and this\n // setBeans method gets called once.\n //\n // the times when this class is used outside of the context (eg RowNode has an instance of this\n // class) then it is not a bean, and this setBeans method is not called.\n setBeans(gridOptionsService, frameworkOverrides, globalEventListener = null, globalSyncEventListener = null) {\n this.frameworkOverrides = frameworkOverrides;\n this.gridOptionsService = gridOptionsService;\n if (globalEventListener) {\n const async = gridOptionsService.useAsyncEvents();\n this.addGlobalListener(globalEventListener, async);\n }\n if (globalSyncEventListener) {\n this.addGlobalListener(globalSyncEventListener, false);\n }\n }\n setFrameworkOverrides(frameworkOverrides) {\n this.frameworkOverrides = frameworkOverrides;\n }\n getListeners(eventType, async, autoCreateListenerCollection) {\n const listenerMap = async ? this.allAsyncListeners : this.allSyncListeners;\n let listeners = listenerMap.get(eventType);\n // Note: 'autoCreateListenerCollection' should only be 'true' if a listener is about to be added. For instance\n // getListeners() is also called during event dispatch even though no listeners are added. This measure protects\n // against 'memory bloat' as empty collections will prevent the RowNode's event service from being removed after\n // the RowComp is destroyed, see noRegisteredListenersExist() below.\n if (!listeners && autoCreateListenerCollection) {\n listeners = new Set();\n listenerMap.set(eventType, listeners);\n }\n return listeners;\n }\n noRegisteredListenersExist() {\n return this.allSyncListeners.size === 0 && this.allAsyncListeners.size === 0 &&\n this.globalSyncListeners.size === 0 && this.globalAsyncListeners.size === 0;\n }\n addEventListener(eventType, listener, async = false) {\n this.getListeners(eventType, async, true).add(listener);\n }\n removeEventListener(eventType, listener, async = false) {\n const listeners = this.getListeners(eventType, async, false);\n if (!listeners) {\n return;\n }\n listeners.delete(listener);\n if (listeners.size === 0) {\n const listenerMap = async ? this.allAsyncListeners : this.allSyncListeners;\n listenerMap.delete(eventType);\n }\n }\n addGlobalListener(listener, async = false) {\n (async ? this.globalAsyncListeners : this.globalSyncListeners).add(listener);\n }\n removeGlobalListener(listener, async = false) {\n (async ? this.globalAsyncListeners : this.globalSyncListeners).delete(listener);\n }\n dispatchEvent(event) {\n let agEvent = event;\n if (this.gridOptionsService) {\n // Apply common properties to all dispatched events if this event service has had its beans set with gridOptionsService.\n // Note there are multiple instances of EventService that are used local to components which do not set gridOptionsService.\n this.gridOptionsService.addGridCommonParams(agEvent);\n }\n this.dispatchToListeners(agEvent, true);\n this.dispatchToListeners(agEvent, false);\n this.firedEvents[agEvent.type] = true;\n }\n dispatchEventOnce(event) {\n if (!this.firedEvents[event.type]) {\n this.dispatchEvent(event);\n }\n }\n dispatchToListeners(event, async) {\n var _a;\n const eventType = event.type;\n if (async && 'event' in event) {\n const browserEvent = event.event;\n if (browserEvent instanceof Event) {\n // AG-7893 - Persist composedPath() so that its result can still be accessed by the user asynchronously.\n // Within an async event handler if they call composedPath() on the event it will always return an empty [].\n event.eventPath = browserEvent.composedPath();\n }\n }\n const processEventListeners = (listeners, originalListeners) => listeners.forEach(listener => {\n if (!originalListeners.has(listener)) {\n // A listener could have been removed by a previously processed listener. In this case we don't want to call \n return;\n }\n const callback = this.frameworkOverrides\n ? () => this.frameworkOverrides.wrapIncoming(() => listener(event))\n : () => listener(event);\n if (async) {\n this.dispatchAsync(callback);\n }\n else {\n callback();\n }\n });\n const originalListeners = (_a = this.getListeners(eventType, async, false)) !== null && _a !== void 0 ? _a : new Set();\n // create a shallow copy to prevent listeners cyclically adding more listeners to capture this event\n const listeners = new Set(originalListeners);\n if (listeners.size > 0) {\n processEventListeners(listeners, originalListeners);\n }\n const globalListeners = new Set(async ? this.globalAsyncListeners : this.globalSyncListeners);\n globalListeners.forEach((listener) => {\n const callback = this.frameworkOverrides\n ? () => this.frameworkOverrides.wrapIncoming(() => listener(eventType, event))\n : () => listener(eventType, event);\n if (async) {\n this.dispatchAsync(callback);\n }\n else {\n callback();\n }\n });\n }\n // this gets called inside the grid's thread, for each event that it\n // wants to set async. the grid then batches the events into one setTimeout()\n // because setTimeout() is an expensive operation. ideally we would have\n // each event in it's own setTimeout(), but we batch for performance.\n dispatchAsync(func) {\n // add to the queue for executing later in the next VM turn\n this.asyncFunctionsQueue.push(func);\n // check if timeout is already scheduled. the first time the grid calls\n // this within it's thread turn, this should be false, so it will schedule\n // the 'flush queue' method the first time it comes here. then the flag is\n // set to 'true' so it will know it's already scheduled for subsequent calls.\n if (!this.scheduled) {\n // if not scheduled, schedule one\n this.frameworkOverrides.wrapIncoming(() => {\n window.setTimeout(this.flushAsyncQueue.bind(this), 0);\n });\n // mark that it is scheduled\n this.scheduled = true;\n }\n }\n // this happens in the next VM turn only, and empties the queue of events\n flushAsyncQueue() {\n this.scheduled = false;\n // we take a copy, because the event listener could be using\n // the grid, which would cause more events, which would be potentially\n // added to the queue, so safe to take a copy, the new events will\n // get executed in a later VM turn rather than risk updating the\n // queue as we are flushing it.\n const queueCopy = this.asyncFunctionsQueue.slice();\n this.asyncFunctionsQueue = [];\n // execute the queue\n queueCopy.forEach(func => func());\n }\n};\n__decorate([\n __param(0, Qualifier('gridOptionsService')),\n __param(1, Qualifier('frameworkOverrides')),\n __param(2, Qualifier('globalEventListener')),\n __param(3, Qualifier('globalSyncEventListener'))\n], EventService.prototype, \"setBeans\", null);\nEventService = __decorate([\n Bean('eventService')\n], EventService);\nexport { EventService };\n","export class FrameworkEventListenerService {\n constructor(frameworkOverrides) {\n this.frameworkOverrides = frameworkOverrides;\n // Map from user listener to wrapped listener so we can remove listener provided by user\n this.wrappedListeners = new Map();\n this.wrappedGlobalListeners = new Map();\n }\n wrap(userListener) {\n let listener = userListener;\n if (this.frameworkOverrides.shouldWrapOutgoing) {\n listener = (event) => {\n this.frameworkOverrides.wrapOutgoing(() => userListener(event));\n };\n this.wrappedListeners.set(userListener, listener);\n }\n return listener;\n }\n wrapGlobal(userListener) {\n let listener = userListener;\n if (this.frameworkOverrides.shouldWrapOutgoing) {\n listener = (eventType, event) => {\n this.frameworkOverrides.wrapOutgoing(() => userListener(eventType, event));\n };\n this.wrappedGlobalListeners.set(userListener, listener);\n }\n return listener;\n }\n unwrap(userListener) {\n var _a;\n return (_a = this.wrappedListeners.get(userListener)) !== null && _a !== void 0 ? _a : userListener;\n }\n unwrapGlobal(userListener) {\n var _a;\n return (_a = this.wrappedGlobalListeners.get(userListener)) !== null && _a !== void 0 ? _a : userListener;\n }\n}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Autowired, PostConstruct } from \"../context/context.mjs\";\nimport { EventService } from \"../eventService.mjs\";\nimport { FrameworkEventListenerService } from \"../misc/frameworkEventListenerService.mjs\";\nimport { exists, missing } from \"../utils/generic.mjs\";\nimport { mergeDeep } from \"../utils/object.mjs\";\nimport { warnOnce } from \"../utils/function.mjs\";\nconst COL_DEF_DEFAULTS = {\n resizable: true,\n sortable: true\n};\nlet instanceIdSequence = 0;\nexport function getNextColInstanceId() {\n return instanceIdSequence++;\n}\n// Wrapper around a user provide column definition. The grid treats the column definition as ready only.\n// This class contains all the runtime information about a column, plus some logic (the definition has no logic).\n// This class implements both interfaces ColumnGroupChild and ProvidedColumnGroupChild as the class can\n// appear as a child of either the original tree or the displayed tree. However the relevant group classes\n// for each type only implements one, as each group can only appear in it's associated tree (eg ProvidedColumnGroup\n// can only appear in OriginalColumn tree).\nexport class Column {\n constructor(colDef, userProvidedColDef, colId, primary) {\n // used by React (and possibly other frameworks) as key for rendering. also used to\n // identify old vs new columns for destroying cols when no longer used.\n this.instanceId = getNextColInstanceId();\n // The measured height of this column's header when autoHeaderHeight is enabled\n this.autoHeaderHeight = null;\n this.moving = false;\n this.menuVisible = false;\n this.lastLeftPinned = false;\n this.firstRightPinned = false;\n this.filterActive = false;\n this.eventService = new EventService();\n this.tooltipEnabled = false;\n this.rowGroupActive = false;\n this.pivotActive = false;\n this.aggregationActive = false;\n this.colDef = colDef;\n this.userProvidedColDef = userProvidedColDef;\n this.colId = colId;\n this.primary = primary;\n this.setState(colDef);\n }\n getInstanceId() {\n return this.instanceId;\n }\n setState(colDef) {\n // sort\n if (colDef.sort !== undefined) {\n if (colDef.sort === 'asc' || colDef.sort === 'desc') {\n this.sort = colDef.sort;\n }\n }\n else {\n if (colDef.initialSort === 'asc' || colDef.initialSort === 'desc') {\n this.sort = colDef.initialSort;\n }\n }\n // sortIndex\n const sortIndex = colDef.sortIndex;\n const initialSortIndex = colDef.initialSortIndex;\n if (sortIndex !== undefined) {\n if (sortIndex !== null) {\n this.sortIndex = sortIndex;\n }\n }\n else {\n if (initialSortIndex !== null) {\n this.sortIndex = initialSortIndex;\n }\n }\n // hide\n const hide = colDef.hide;\n const initialHide = colDef.initialHide;\n if (hide !== undefined) {\n this.visible = !hide;\n }\n else {\n this.visible = !initialHide;\n }\n // pinned\n if (colDef.pinned !== undefined) {\n this.setPinned(colDef.pinned);\n }\n else {\n this.setPinned(colDef.initialPinned);\n }\n // flex\n const flex = colDef.flex;\n const initialFlex = colDef.initialFlex;\n if (flex !== undefined) {\n this.flex = flex;\n }\n else if (initialFlex !== undefined) {\n this.flex = initialFlex;\n }\n }\n // gets called when user provides an alternative colDef, eg\n setColDef(colDef, userProvidedColDef, source) {\n this.colDef = colDef;\n this.userProvidedColDef = userProvidedColDef;\n this.initMinAndMaxWidths();\n this.initDotNotation();\n this.initTooltip();\n this.eventService.dispatchEvent(this.createColumnEvent('colDefChanged', source));\n }\n /**\n * Returns the column definition provided by the application.\n * This may not be correct, as items can be superseded by default column options.\n * However it's useful for comparison, eg to know which application column definition matches that column.\n */\n getUserProvidedColDef() {\n return this.userProvidedColDef;\n }\n setParent(parent) {\n this.parent = parent;\n }\n /** Returns the parent column group, if column grouping is active. */\n getParent() {\n return this.parent;\n }\n setOriginalParent(originalParent) {\n this.originalParent = originalParent;\n }\n /**\n * Used for marryChildren, helps with comparing when duplicate groups have been created to manage split groups.\n *\n * Parent may contain a duplicate but not identical group when the group is split.\n */\n getOriginalParent() {\n return this.originalParent;\n }\n // this is done after constructor as it uses gridOptionsService\n initialise() {\n this.initMinAndMaxWidths();\n this.resetActualWidth('gridInitializing');\n this.initDotNotation();\n this.initTooltip();\n }\n initDotNotation() {\n const suppressDotNotation = this.gridOptionsService.get('suppressFieldDotNotation');\n this.fieldContainsDots = exists(this.colDef.field) && this.colDef.field.indexOf('.') >= 0 && !suppressDotNotation;\n this.tooltipFieldContainsDots = exists(this.colDef.tooltipField) && this.colDef.tooltipField.indexOf('.') >= 0 && !suppressDotNotation;\n }\n initMinAndMaxWidths() {\n const colDef = this.colDef;\n this.minWidth = this.columnUtils.calculateColMinWidth(colDef);\n this.maxWidth = this.columnUtils.calculateColMaxWidth(colDef);\n }\n initTooltip() {\n this.tooltipEnabled = exists(this.colDef.tooltipField) ||\n exists(this.colDef.tooltipValueGetter) ||\n exists(this.colDef.tooltipComponent);\n }\n resetActualWidth(source) {\n const initialWidth = this.columnUtils.calculateColInitialWidth(this.colDef);\n this.setActualWidth(initialWidth, source, true);\n }\n isEmptyGroup() {\n return false;\n }\n isRowGroupDisplayed(colId) {\n if (missing(this.colDef) || missing(this.colDef.showRowGroup)) {\n return false;\n }\n const showingAllGroups = this.colDef.showRowGroup === true;\n const showingThisGroup = this.colDef.showRowGroup === colId;\n return showingAllGroups || showingThisGroup;\n }\n /** Returns `true` if column is a primary column, `false` if secondary. Secondary columns are used for pivoting. */\n isPrimary() {\n return this.primary;\n }\n /** Returns `true` if column filtering is allowed. */\n isFilterAllowed() {\n // filter defined means it's a string, class or true.\n // if its false, null or undefined then it's false.\n const filterDefined = !!this.colDef.filter;\n return filterDefined;\n }\n isFieldContainsDots() {\n return this.fieldContainsDots;\n }\n isTooltipEnabled() {\n return this.tooltipEnabled;\n }\n isTooltipFieldContainsDots() {\n return this.tooltipFieldContainsDots;\n }\n /** Add an event listener to the column. */\n addEventListener(eventType, userListener) {\n var _a, _b;\n if (this.frameworkOverrides.shouldWrapOutgoing && !this.frameworkEventListenerService) {\n // Only construct if we need it, as it's an overhead for column construction\n this.eventService.setFrameworkOverrides(this.frameworkOverrides);\n this.frameworkEventListenerService = new FrameworkEventListenerService(this.frameworkOverrides);\n }\n const listener = (_b = (_a = this.frameworkEventListenerService) === null || _a === void 0 ? void 0 : _a.wrap(userListener)) !== null && _b !== void 0 ? _b : userListener;\n this.eventService.addEventListener(eventType, listener);\n }\n /** Remove event listener from the column. */\n removeEventListener(eventType, userListener) {\n var _a, _b;\n const listener = (_b = (_a = this.frameworkEventListenerService) === null || _a === void 0 ? void 0 : _a.unwrap(userListener)) !== null && _b !== void 0 ? _b : userListener;\n this.eventService.removeEventListener(eventType, listener);\n }\n createColumnFunctionCallbackParams(rowNode) {\n return this.gridOptionsService.addGridCommonParams({\n node: rowNode,\n data: rowNode.data,\n column: this,\n colDef: this.colDef\n });\n }\n isSuppressNavigable(rowNode) {\n // if boolean set, then just use it\n if (typeof this.colDef.suppressNavigable === 'boolean') {\n return this.colDef.suppressNavigable;\n }\n // if function, then call the function to find out\n if (typeof this.colDef.suppressNavigable === 'function') {\n const params = this.createColumnFunctionCallbackParams(rowNode);\n const userFunc = this.colDef.suppressNavigable;\n return userFunc(params);\n }\n return false;\n }\n /**\n * Returns `true` if the cell for this column is editable for the given `rowNode`, otherwise `false`.\n */\n isCellEditable(rowNode) {\n // only allow editing of groups if the user has this option enabled\n if (rowNode.group && !this.gridOptionsService.get('enableGroupEdit')) {\n return false;\n }\n return this.isColumnFunc(rowNode, this.colDef.editable);\n }\n isSuppressFillHandle() {\n return !!this.colDef.suppressFillHandle;\n }\n isAutoHeight() {\n return !!this.colDef.autoHeight;\n }\n isAutoHeaderHeight() {\n return !!this.colDef.autoHeaderHeight;\n }\n isRowDrag(rowNode) {\n return this.isColumnFunc(rowNode, this.colDef.rowDrag);\n }\n isDndSource(rowNode) {\n return this.isColumnFunc(rowNode, this.colDef.dndSource);\n }\n isCellCheckboxSelection(rowNode) {\n return this.isColumnFunc(rowNode, this.colDef.checkboxSelection);\n }\n isSuppressPaste(rowNode) {\n return this.isColumnFunc(rowNode, this.colDef ? this.colDef.suppressPaste : null);\n }\n isResizable() {\n return !!this.getColDefValue('resizable');\n }\n /** Get value from ColDef or default if it exists. */\n getColDefValue(key) {\n var _a;\n return (_a = this.colDef[key]) !== null && _a !== void 0 ? _a : COL_DEF_DEFAULTS[key];\n }\n isColumnFunc(rowNode, value) {\n // if boolean set, then just use it\n if (typeof value === 'boolean') {\n return value;\n }\n // if function, then call the function to find out\n if (typeof value === 'function') {\n const params = this.createColumnFunctionCallbackParams(rowNode);\n const editableFunc = value;\n return editableFunc(params);\n }\n return false;\n }\n setMoving(moving, source) {\n this.moving = moving;\n this.eventService.dispatchEvent(this.createColumnEvent('movingChanged', source));\n }\n createColumnEvent(type, source) {\n return this.gridOptionsService.addGridCommonParams({\n type: type,\n column: this,\n columns: [this],\n source: source\n });\n }\n isMoving() {\n return this.moving;\n }\n /** If sorting is active, returns the sort direction e.g. `'asc'` or `'desc'`. */\n getSort() {\n return this.sort;\n }\n setSort(sort, source) {\n if (this.sort !== sort) {\n this.sort = sort;\n this.eventService.dispatchEvent(this.createColumnEvent('sortChanged', source));\n }\n this.dispatchStateUpdatedEvent('sort');\n }\n setMenuVisible(visible, source) {\n if (this.menuVisible !== visible) {\n this.menuVisible = visible;\n this.eventService.dispatchEvent(this.createColumnEvent('menuVisibleChanged', source));\n }\n }\n isMenuVisible() {\n return this.menuVisible;\n }\n isSortable() {\n return !!this.getColDefValue('sortable');\n }\n isSortAscending() {\n return this.sort === 'asc';\n }\n isSortDescending() {\n return this.sort === 'desc';\n }\n isSortNone() {\n return missing(this.sort);\n }\n isSorting() {\n return exists(this.sort);\n }\n getSortIndex() {\n return this.sortIndex;\n }\n setSortIndex(sortOrder) {\n this.sortIndex = sortOrder;\n this.dispatchStateUpdatedEvent('sortIndex');\n }\n setAggFunc(aggFunc) {\n this.aggFunc = aggFunc;\n this.dispatchStateUpdatedEvent('aggFunc');\n }\n /** If aggregation is set for the column, returns the aggregation function. */\n getAggFunc() {\n return this.aggFunc;\n }\n getLeft() {\n return this.left;\n }\n getOldLeft() {\n return this.oldLeft;\n }\n getRight() {\n return this.left + this.actualWidth;\n }\n setLeft(left, source) {\n this.oldLeft = this.left;\n if (this.left !== left) {\n this.left = left;\n this.eventService.dispatchEvent(this.createColumnEvent('leftChanged', source));\n }\n }\n /** Returns `true` if filter is active on the column. */\n isFilterActive() {\n return this.filterActive;\n }\n // additionalEventAttributes is used by provided simple floating filter, so it can add 'floatingFilter=true' to the event\n setFilterActive(active, source, additionalEventAttributes) {\n if (this.filterActive !== active) {\n this.filterActive = active;\n this.eventService.dispatchEvent(this.createColumnEvent('filterActiveChanged', source));\n }\n const filterChangedEvent = this.createColumnEvent('filterChanged', source);\n if (additionalEventAttributes) {\n mergeDeep(filterChangedEvent, additionalEventAttributes);\n }\n this.eventService.dispatchEvent(filterChangedEvent);\n }\n /** Returns `true` when this `Column` is hovered, otherwise `false` */\n isHovered() {\n return this.columnHoverService.isHovered(this);\n }\n setPinned(pinned) {\n if (pinned === true || pinned === 'left') {\n this.pinned = 'left';\n }\n else if (pinned === 'right') {\n this.pinned = 'right';\n }\n else {\n this.pinned = null;\n }\n this.dispatchStateUpdatedEvent('pinned');\n }\n setFirstRightPinned(firstRightPinned, source) {\n if (this.firstRightPinned !== firstRightPinned) {\n this.firstRightPinned = firstRightPinned;\n this.eventService.dispatchEvent(this.createColumnEvent('firstRightPinnedChanged', source));\n }\n }\n setLastLeftPinned(lastLeftPinned, source) {\n if (this.lastLeftPinned !== lastLeftPinned) {\n this.lastLeftPinned = lastLeftPinned;\n this.eventService.dispatchEvent(this.createColumnEvent('lastLeftPinnedChanged', source));\n }\n }\n isFirstRightPinned() {\n return this.firstRightPinned;\n }\n isLastLeftPinned() {\n return this.lastLeftPinned;\n }\n isPinned() {\n return this.pinned === 'left' || this.pinned === 'right';\n }\n isPinnedLeft() {\n return this.pinned === 'left';\n }\n isPinnedRight() {\n return this.pinned === 'right';\n }\n getPinned() {\n return this.pinned;\n }\n setVisible(visible, source) {\n const newValue = visible === true;\n if (this.visible !== newValue) {\n this.visible = newValue;\n this.eventService.dispatchEvent(this.createColumnEvent('visibleChanged', source));\n }\n this.dispatchStateUpdatedEvent('hide');\n }\n isVisible() {\n return this.visible;\n }\n isSpanHeaderHeight() {\n const colDef = this.getColDef();\n return !colDef.suppressSpanHeaderHeight && !colDef.autoHeaderHeight;\n }\n getColumnGroupPaddingInfo() {\n let parent = this.getParent();\n if (!parent || !parent.isPadding()) {\n return { numberOfParents: 0, isSpanningTotal: false };\n }\n const numberOfParents = parent.getPaddingLevel() + 1;\n let isSpanningTotal = true;\n while (parent) {\n if (!parent.isPadding()) {\n isSpanningTotal = false;\n break;\n }\n parent = parent.getParent();\n }\n return { numberOfParents, isSpanningTotal };\n }\n /** Returns the column definition for this column.\n * The column definition will be the result of merging the application provided column definition with any provided defaults\n * (e.g. `defaultColDef` grid option, or column types.\n *\n * Equivalent: `getDefinition` */\n getColDef() {\n return this.colDef;\n }\n getColumnGroupShow() {\n return this.colDef.columnGroupShow;\n }\n /**\n * Returns the unique ID for the column.\n *\n * Equivalent: `getId`, `getUniqueId` */\n getColId() {\n return this.colId;\n }\n /**\n * Returns the unique ID for the column.\n *\n * Equivalent: `getColId`, `getUniqueId` */\n getId() {\n return this.colId;\n }\n /**\n * Returns the unique ID for the column.\n *\n * Equivalent: `getColId`, `getId` */\n getUniqueId() {\n return this.colId;\n }\n getDefinition() {\n return this.colDef;\n }\n /** Returns the current width of the column. If the column is resized, the actual width is the new size. */\n getActualWidth() {\n return this.actualWidth;\n }\n getAutoHeaderHeight() {\n return this.autoHeaderHeight;\n }\n /** Returns true if the header height has changed */\n setAutoHeaderHeight(height) {\n const changed = height !== this.autoHeaderHeight;\n this.autoHeaderHeight = height;\n return changed;\n }\n createBaseColDefParams(rowNode) {\n const params = this.gridOptionsService.addGridCommonParams({\n node: rowNode,\n data: rowNode.data,\n colDef: this.colDef,\n column: this\n });\n return params;\n }\n getColSpan(rowNode) {\n if (missing(this.colDef.colSpan)) {\n return 1;\n }\n const params = this.createBaseColDefParams(rowNode);\n const colSpan = this.colDef.colSpan(params);\n // colSpan must be number equal to or greater than 1\n return Math.max(colSpan, 1);\n }\n getRowSpan(rowNode) {\n if (missing(this.colDef.rowSpan)) {\n return 1;\n }\n const params = this.createBaseColDefParams(rowNode);\n const rowSpan = this.colDef.rowSpan(params);\n // rowSpan must be number equal to or greater than 1\n return Math.max(rowSpan, 1);\n }\n setActualWidth(actualWidth, source, silent = false) {\n if (this.minWidth != null) {\n actualWidth = Math.max(actualWidth, this.minWidth);\n }\n if (this.maxWidth != null) {\n actualWidth = Math.min(actualWidth, this.maxWidth);\n }\n if (this.actualWidth !== actualWidth) {\n // disable flex for this column if it was manually resized.\n this.actualWidth = actualWidth;\n if (this.flex && source !== 'flex' && source !== 'gridInitializing') {\n this.flex = null;\n }\n if (!silent) {\n this.fireColumnWidthChangedEvent(source);\n }\n }\n this.dispatchStateUpdatedEvent('width');\n }\n fireColumnWidthChangedEvent(source) {\n this.eventService.dispatchEvent(this.createColumnEvent('widthChanged', source));\n }\n isGreaterThanMax(width) {\n if (this.maxWidth != null) {\n return width > this.maxWidth;\n }\n return false;\n }\n getMinWidth() {\n return this.minWidth;\n }\n getMaxWidth() {\n return this.maxWidth;\n }\n getFlex() {\n return this.flex || 0;\n }\n // this method should only be used by the columnModel to\n // change flex when required by the applyColumnState method.\n setFlex(flex) {\n if (this.flex !== flex) {\n this.flex = flex;\n }\n this.dispatchStateUpdatedEvent('flex');\n }\n setMinimum(source) {\n if (exists(this.minWidth)) {\n this.setActualWidth(this.minWidth, source);\n }\n }\n setRowGroupActive(rowGroup, source) {\n if (this.rowGroupActive !== rowGroup) {\n this.rowGroupActive = rowGroup;\n this.eventService.dispatchEvent(this.createColumnEvent('columnRowGroupChanged', source));\n }\n this.dispatchStateUpdatedEvent('rowGroup');\n }\n /** Returns `true` if row group is currently active for this column. */\n isRowGroupActive() {\n return this.rowGroupActive;\n }\n setPivotActive(pivot, source) {\n if (this.pivotActive !== pivot) {\n this.pivotActive = pivot;\n this.eventService.dispatchEvent(this.createColumnEvent('columnPivotChanged', source));\n }\n this.dispatchStateUpdatedEvent('pivot');\n }\n /** Returns `true` if pivot is currently active for this column. */\n isPivotActive() {\n return this.pivotActive;\n }\n isAnyFunctionActive() {\n return this.isPivotActive() || this.isRowGroupActive() || this.isValueActive();\n }\n isAnyFunctionAllowed() {\n return this.isAllowPivot() || this.isAllowRowGroup() || this.isAllowValue();\n }\n setValueActive(value, source) {\n if (this.aggregationActive !== value) {\n this.aggregationActive = value;\n this.eventService.dispatchEvent(this.createColumnEvent('columnValueChanged', source));\n }\n }\n /** Returns `true` if value (aggregation) is currently active for this column. */\n isValueActive() {\n return this.aggregationActive;\n }\n isAllowPivot() {\n return this.colDef.enablePivot === true;\n }\n isAllowValue() {\n return this.colDef.enableValue === true;\n }\n isAllowRowGroup() {\n return this.colDef.enableRowGroup === true;\n }\n /**\n * @deprecated v31.1 Use `getColDef().menuTabs ?? defaultValues` instead.\n */\n getMenuTabs(defaultValues) {\n warnOnce(`As of v31.1, 'getMenuTabs' is deprecated. Use 'getColDef().menuTabs ?? defaultValues' instead.`);\n let menuTabs = this.getColDef().menuTabs;\n if (menuTabs == null) {\n menuTabs = defaultValues;\n }\n return menuTabs;\n }\n dispatchStateUpdatedEvent(key) {\n this.eventService.dispatchEvent({\n type: Column.EVENT_STATE_UPDATED,\n key\n });\n }\n}\n// + renderedHeaderCell - for making header cell transparent when moving\nColumn.EVENT_MOVING_CHANGED = 'movingChanged';\n// + renderedCell - changing left position\nColumn.EVENT_LEFT_CHANGED = 'leftChanged';\n// + renderedCell - changing width\nColumn.EVENT_WIDTH_CHANGED = 'widthChanged';\n// + renderedCell - for changing pinned classes\nColumn.EVENT_LAST_LEFT_PINNED_CHANGED = 'lastLeftPinnedChanged';\nColumn.EVENT_FIRST_RIGHT_PINNED_CHANGED = 'firstRightPinnedChanged';\n// + renderedColumn - for changing visibility icon\nColumn.EVENT_VISIBLE_CHANGED = 'visibleChanged';\n// + every time the filter changes, used in the floating filters\nColumn.EVENT_FILTER_CHANGED = 'filterChanged';\n// + renderedHeaderCell - marks the header with filter icon\nColumn.EVENT_FILTER_ACTIVE_CHANGED = 'filterActiveChanged';\n// + renderedHeaderCell - marks the header with sort icon\nColumn.EVENT_SORT_CHANGED = 'sortChanged';\n// + renderedHeaderCell - marks the header with sort icon\nColumn.EVENT_COL_DEF_CHANGED = 'colDefChanged';\nColumn.EVENT_MENU_VISIBLE_CHANGED = 'menuVisibleChanged';\n// + toolpanel, for gui updates\nColumn.EVENT_ROW_GROUP_CHANGED = 'columnRowGroupChanged';\n// + toolpanel, for gui updates\nColumn.EVENT_PIVOT_CHANGED = 'columnPivotChanged';\n// + toolpanel, for gui updates\nColumn.EVENT_VALUE_CHANGED = 'columnValueChanged';\n// + dataTypeService - when waiting to infer cell data types\nColumn.EVENT_STATE_UPDATED = 'columnStateUpdated';\n__decorate([\n Autowired('gridOptionsService')\n], Column.prototype, \"gridOptionsService\", void 0);\n__decorate([\n Autowired('columnUtils')\n], Column.prototype, \"columnUtils\", void 0);\n__decorate([\n Autowired('columnHoverService')\n], Column.prototype, \"columnHoverService\", void 0);\n__decorate([\n Autowired('frameworkOverrides')\n], Column.prototype, \"frameworkOverrides\", void 0);\n__decorate([\n PostConstruct\n], Column.prototype, \"initialise\", null);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Column, getNextColInstanceId } from \"./column.mjs\";\nimport { EventService } from \"../eventService.mjs\";\nimport { PreDestroy } from \"../context/context.mjs\";\nexport class ProvidedColumnGroup {\n constructor(colGroupDef, groupId, padding, level) {\n this.localEventService = new EventService();\n this.expandable = false;\n // used by React (and possibly other frameworks) as key for rendering. also used to\n // identify old vs new columns for destroying cols when no longer used.\n this.instanceId = getNextColInstanceId();\n this.expandableListenerRemoveCallback = null;\n this.colGroupDef = colGroupDef;\n this.groupId = groupId;\n this.expanded = !!colGroupDef && !!colGroupDef.openByDefault;\n this.padding = padding;\n this.level = level;\n }\n destroy() {\n if (this.expandableListenerRemoveCallback) {\n this.reset(null, undefined);\n }\n }\n reset(colGroupDef, level) {\n this.colGroupDef = colGroupDef;\n this.level = level;\n this.originalParent = null;\n if (this.expandableListenerRemoveCallback) {\n this.expandableListenerRemoveCallback();\n }\n // we use ! below, as we want to set the object back to the\n // way it was when it was first created\n this.children = undefined;\n this.expandable = undefined;\n }\n getInstanceId() {\n return this.instanceId;\n }\n setOriginalParent(originalParent) {\n this.originalParent = originalParent;\n }\n getOriginalParent() {\n return this.originalParent;\n }\n getLevel() {\n return this.level;\n }\n isVisible() {\n // return true if at least one child is visible\n if (this.children) {\n return this.children.some(child => child.isVisible());\n }\n return false;\n }\n isPadding() {\n return this.padding;\n }\n setExpanded(expanded) {\n this.expanded = expanded === undefined ? false : expanded;\n const event = {\n type: ProvidedColumnGroup.EVENT_EXPANDED_CHANGED\n };\n this.localEventService.dispatchEvent(event);\n }\n isExpandable() {\n return this.expandable;\n }\n isExpanded() {\n return this.expanded;\n }\n getGroupId() {\n return this.groupId;\n }\n getId() {\n return this.getGroupId();\n }\n setChildren(children) {\n this.children = children;\n }\n getChildren() {\n return this.children;\n }\n getColGroupDef() {\n return this.colGroupDef;\n }\n getLeafColumns() {\n const result = [];\n this.addLeafColumns(result);\n return result;\n }\n addLeafColumns(leafColumns) {\n if (!this.children) {\n return;\n }\n this.children.forEach((child) => {\n if (child instanceof Column) {\n leafColumns.push(child);\n }\n else if (child instanceof ProvidedColumnGroup) {\n child.addLeafColumns(leafColumns);\n }\n });\n }\n getColumnGroupShow() {\n const colGroupDef = this.colGroupDef;\n if (!colGroupDef) {\n return;\n }\n return colGroupDef.columnGroupShow;\n }\n // need to check that this group has at least one col showing when both expanded and contracted.\n // if not, then we don't allow expanding and contracting on this group\n setupExpandable() {\n this.setExpandable();\n if (this.expandableListenerRemoveCallback) {\n this.expandableListenerRemoveCallback();\n }\n const listener = this.onColumnVisibilityChanged.bind(this);\n this.getLeafColumns().forEach(col => col.addEventListener('visibleChanged', listener));\n this.expandableListenerRemoveCallback = () => {\n this.getLeafColumns().forEach(col => col.removeEventListener('visibleChanged', listener));\n this.expandableListenerRemoveCallback = null;\n };\n }\n setExpandable() {\n if (this.isPadding()) {\n return;\n }\n // want to make sure the group doesn't disappear when it's open\n let atLeastOneShowingWhenOpen = false;\n // want to make sure the group doesn't disappear when it's closed\n let atLeastOneShowingWhenClosed = false;\n // want to make sure the group has something to show / hide\n let atLeastOneChangeable = false;\n const children = this.findChildrenRemovingPadding();\n for (let i = 0, j = children.length; i < j; i++) {\n const abstractColumn = children[i];\n if (!abstractColumn.isVisible()) {\n continue;\n }\n // if the abstractColumn is a grid generated group, there will be no colDef\n const headerGroupShow = abstractColumn.getColumnGroupShow();\n if (headerGroupShow === 'open') {\n atLeastOneShowingWhenOpen = true;\n atLeastOneChangeable = true;\n }\n else if (headerGroupShow === 'closed') {\n atLeastOneShowingWhenClosed = true;\n atLeastOneChangeable = true;\n }\n else {\n atLeastOneShowingWhenOpen = true;\n atLeastOneShowingWhenClosed = true;\n }\n }\n const expandable = atLeastOneShowingWhenOpen && atLeastOneShowingWhenClosed && atLeastOneChangeable;\n if (this.expandable !== expandable) {\n this.expandable = expandable;\n const event = {\n type: ProvidedColumnGroup.EVENT_EXPANDABLE_CHANGED\n };\n this.localEventService.dispatchEvent(event);\n }\n }\n findChildrenRemovingPadding() {\n const res = [];\n const process = (items) => {\n items.forEach(item => {\n // if padding, we add this children instead of the padding\n const skipBecausePadding = item instanceof ProvidedColumnGroup && item.isPadding();\n if (skipBecausePadding) {\n process(item.children);\n }\n else {\n res.push(item);\n }\n });\n };\n process(this.children);\n return res;\n }\n onColumnVisibilityChanged() {\n this.setExpandable();\n }\n addEventListener(eventType, listener) {\n this.localEventService.addEventListener(eventType, listener);\n }\n removeEventListener(eventType, listener) {\n this.localEventService.removeEventListener(eventType, listener);\n }\n}\nProvidedColumnGroup.EVENT_EXPANDED_CHANGED = 'expandedChanged';\nProvidedColumnGroup.EVENT_EXPANDABLE_CHANGED = 'expandableChanged';\n__decorate([\n PreDestroy\n], ProvidedColumnGroup.prototype, \"destroy\", null);\n","export const DefaultColumnTypes = {\n numericColumn: {\n headerClass: 'ag-right-aligned-header',\n cellClass: 'ag-right-aligned-cell'\n },\n rightAligned: {\n headerClass: 'ag-right-aligned-header',\n cellClass: 'ag-right-aligned-cell'\n }\n};\n","import { toStringOrNull } from './generic.mjs';\nexport function existsAndNotEmpty(value) {\n return value != null && value.length > 0;\n}\nexport function last(arr) {\n if (!arr || !arr.length) {\n return;\n }\n return arr[arr.length - 1];\n}\nexport function areEqual(a, b, comparator) {\n if (a == null && b == null) {\n return true;\n }\n return a != null &&\n b != null &&\n a.length === b.length &&\n a.every((value, index) => comparator ? comparator(value, b[index]) : b[index] === value);\n}\nexport function shallowCompare(arr1, arr2) {\n return areEqual(arr1, arr2);\n}\nexport function sortNumerically(array) {\n return array.sort((a, b) => a - b);\n}\nexport function removeRepeatsFromArray(array, object) {\n if (!array) {\n return;\n }\n for (let index = array.length - 2; index >= 0; index--) {\n const thisOneMatches = array[index] === object;\n const nextOneMatches = array[index + 1] === object;\n if (thisOneMatches && nextOneMatches) {\n array.splice(index + 1, 1);\n }\n }\n}\nexport function removeFromUnorderedArray(array, object) {\n const index = array.indexOf(object);\n if (index >= 0) {\n // preserve the last element, then shorten array length by 1 to delete index\n array[index] = array[array.length - 1];\n array.pop();\n }\n}\nexport function removeFromArray(array, object) {\n const index = array.indexOf(object);\n if (index >= 0) {\n array.splice(index, 1);\n }\n}\nexport function removeAllFromUnorderedArray(array, toRemove) {\n for (let i = 0; i < toRemove.length; i++) {\n removeFromUnorderedArray(array, toRemove[i]);\n }\n}\nexport function removeAllFromArray(array, toRemove) {\n for (let i = 0; i < toRemove.length; i++) {\n removeFromArray(array, toRemove[i]);\n }\n}\nexport function insertIntoArray(array, object, toIndex) {\n array.splice(toIndex, 0, object);\n}\nexport function insertArrayIntoArray(dest, src, toIndex) {\n if (dest == null || src == null) {\n return;\n }\n // put items in backwards, otherwise inserted items end up in reverse order\n for (let i = src.length - 1; i >= 0; i--) {\n const item = src[i];\n insertIntoArray(dest, item, toIndex);\n }\n}\nexport function moveInArray(array, objectsToMove, toIndex) {\n // first take out items from the array\n removeAllFromArray(array, objectsToMove);\n // now add the objects, in same order as provided to us, that means we start at the end\n // as the objects will be pushed to the right as they are inserted\n objectsToMove.slice().reverse().forEach(obj => insertIntoArray(array, obj, toIndex));\n}\nexport function includes(array, value) {\n return array.indexOf(value) > -1;\n}\nexport function flatten(arrayOfArrays) {\n return [].concat.apply([], arrayOfArrays);\n}\nexport function pushAll(target, source) {\n if (source == null || target == null) {\n return;\n }\n source.forEach(value => target.push(value));\n}\nexport function toStrings(array) {\n return array.map(toStringOrNull);\n}\nexport function forEachReverse(list, action) {\n if (list == null) {\n return;\n }\n for (let i = list.length - 1; i >= 0; i--) {\n action(list[i], i);\n }\n}\n","import { includes } from './array.mjs';\nconst AG_GRID_STOP_PROPAGATION = '__ag_Grid_Stop_Propagation';\nconst PASSIVE_EVENTS = ['touchstart', 'touchend', 'touchmove', 'touchcancel', 'scroll'];\nconst supports = {};\n/**\n * a user once raised an issue - they said that when you opened a popup (eg context menu)\n * and then clicked on a selection checkbox, the popup wasn't closed. this is because the\n * popup listens for clicks on the body, however ag-grid WAS stopping propagation on the\n * checkbox clicks (so the rows didn't pick them up as row selection selection clicks).\n * to get around this, we have a pattern to stop propagation for the purposes of AG Grid,\n * but we still let the event pass back to the body.\n * @param {Event} event\n */\nexport function stopPropagationForAgGrid(event) {\n event[AG_GRID_STOP_PROPAGATION] = true;\n}\nexport function isStopPropagationForAgGrid(event) {\n return event[AG_GRID_STOP_PROPAGATION] === true;\n}\nexport const isEventSupported = (() => {\n const tags = {\n select: 'input',\n change: 'input',\n submit: 'form',\n reset: 'form',\n error: 'img',\n load: 'img',\n abort: 'img'\n };\n const eventChecker = (eventName) => {\n if (typeof supports[eventName] === 'boolean') {\n return supports[eventName];\n }\n const el = document.createElement(tags[eventName] || 'div');\n eventName = 'on' + eventName;\n return supports[eventName] = (eventName in el);\n };\n return eventChecker;\n})();\nexport function getCtrlForEventTarget(gridOptionsService, eventTarget, type) {\n let sourceElement = eventTarget;\n while (sourceElement) {\n const renderedComp = gridOptionsService.getDomData(sourceElement, type);\n if (renderedComp) {\n return renderedComp;\n }\n sourceElement = sourceElement.parentElement;\n }\n return null;\n}\nexport function isElementInEventPath(element, event) {\n if (!event || !element) {\n return false;\n }\n return getEventPath(event).indexOf(element) >= 0;\n}\nexport function createEventPath(event) {\n const res = [];\n let pointer = event.target;\n while (pointer) {\n res.push(pointer);\n pointer = pointer.parentElement;\n }\n return res;\n}\n/**\n * Gets the path for a browser Event or from the target on an AG Grid Event\n * https://developer.mozilla.org/en-US/docs/Web/API/Event\n * @param {Event| { target: EventTarget }} event\n * @returns {EventTarget[]}\n */\nexport function getEventPath(event) {\n // This can be called with either a browser event or an AG Grid Event that has a target property.\n const eventNoType = event;\n if (eventNoType.path) {\n return eventNoType.path;\n }\n if (eventNoType.composedPath) {\n return eventNoType.composedPath();\n }\n // If this is an AG Grid event build the path ourselves\n return createEventPath(eventNoType);\n}\nexport function addSafePassiveEventListener(frameworkOverrides, eElement, event, listener) {\n const isPassive = includes(PASSIVE_EVENTS, event);\n const options = isPassive ? { passive: true } : undefined;\n // this check is here for certain scenarios where I believe the user must be destroying\n // the grid somehow but continuing for it to be used\n if (frameworkOverrides && frameworkOverrides.addEventListener) {\n frameworkOverrides.addEventListener(eElement, event, listener, options);\n }\n}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { EventService } from \"../eventService.mjs\";\nimport { Autowired, PreDestroy } from \"./context.mjs\";\nimport { addSafePassiveEventListener } from \"../utils/event.mjs\";\nexport class BeanStub {\n constructor() {\n this.destroyFunctions = [];\n this.destroyed = false;\n // for vue 3 - prevents Vue from trying to make this (and obviously any sub classes) from being reactive\n // prevents vue from creating proxies for created objects and prevents identity related issues\n this.__v_skip = true;\n // this was a test constructor niall built, when active, it prints after 5 seconds all beans/components that are\n // not destroyed. to use, create a new grid, then api.destroy() before 5 seconds. then anything that gets printed\n // points to a bean or component that was not properly disposed of.\n // constructor() {\n // setTimeout(()=> {\n // if (this.isAlive()) {\n // let prototype: any = Object.getPrototypeOf(this);\n // const constructor: any = prototype.constructor;\n // const constructorString = constructor.toString();\n // const beanName = constructorString.substring(9, constructorString.indexOf(\"(\"));\n // console.log('is alive ' + beanName);\n // }\n // }, 5000);\n // }\n // Enable multiple grid properties to be updated together by the user but only trigger shared logic once.\n // Closely related to logic in ComponentUtil.ts\n this.lastChangeSetIdLookup = {};\n this.propertyListenerId = 0;\n this.isAlive = () => !this.destroyed;\n }\n // CellComp and GridComp and override this because they get the FrameworkOverrides from the Beans bean\n getFrameworkOverrides() {\n return this.frameworkOverrides;\n }\n getContext() {\n return this.context;\n }\n destroy() {\n // let prototype: any = Object.getPrototypeOf(this);\n // const constructor: any = prototype.constructor;\n // const constructorString = constructor.toString();\n // const beanName = constructorString.substring(9, constructorString.indexOf(\"(\"));\n this.destroyFunctions.forEach(func => func());\n this.destroyFunctions.length = 0;\n this.destroyed = true;\n this.dispatchEvent({ type: BeanStub.EVENT_DESTROYED });\n }\n addEventListener(eventType, listener) {\n if (!this.localEventService) {\n this.localEventService = new EventService();\n }\n this.localEventService.addEventListener(eventType, listener);\n }\n removeEventListener(eventType, listener) {\n if (this.localEventService) {\n this.localEventService.removeEventListener(eventType, listener);\n }\n }\n dispatchEvent(event) {\n if (this.localEventService) {\n this.localEventService.dispatchEvent(event);\n }\n }\n addManagedListener(object, event, listener) {\n if (this.destroyed) {\n return;\n }\n if (object instanceof HTMLElement) {\n addSafePassiveEventListener(this.getFrameworkOverrides(), object, event, listener);\n }\n else {\n object.addEventListener(event, listener);\n }\n const destroyFunc = () => {\n object.removeEventListener(event, listener);\n this.destroyFunctions = this.destroyFunctions.filter(fn => fn !== destroyFunc);\n return null;\n };\n this.destroyFunctions.push(destroyFunc);\n return destroyFunc;\n }\n setupGridOptionListener(event, listener) {\n this.gridOptionsService.addEventListener(event, listener);\n const destroyFunc = () => {\n this.gridOptionsService.removeEventListener(event, listener);\n this.destroyFunctions = this.destroyFunctions.filter((fn) => fn !== destroyFunc);\n return null;\n };\n this.destroyFunctions.push(destroyFunc);\n return destroyFunc;\n }\n /**\n * Setup a managed property listener for the given GridOption property.\n * @param event GridOption property to listen to changes for.\n * @param listener Listener to run when property value changes\n */\n addManagedPropertyListener(event, listener) {\n if (this.destroyed) {\n return () => null;\n }\n return this.setupGridOptionListener(event, listener);\n }\n /**\n * Setup managed property listeners for the given set of GridOption properties.\n * The listener will be run if any of the property changes but will only run once if\n * multiple of the properties change within the same framework lifecycle event.\n * Works on the basis that GridOptionsService updates all properties *before* any property change events are fired.\n * @param events Array of GridOption properties to listen for changes too.\n * @param listener Shared listener to run if any of the properties change\n */\n addManagedPropertyListeners(events, listener) {\n if (this.destroyed) {\n return;\n }\n // Ensure each set of events can run for the same changeSetId\n const eventsKey = events.join('-') + this.propertyListenerId++;\n const wrappedListener = (event) => {\n if (event.changeSet) {\n // ChangeSet is only set when the property change is part of a group of changes from ComponentUtils\n // Direct api calls should always be run as \n if (event.changeSet && event.changeSet.id === this.lastChangeSetIdLookup[eventsKey]) {\n // Already run the listener for this set of prop changes so don't run again\n return;\n }\n this.lastChangeSetIdLookup[eventsKey] = event.changeSet.id;\n }\n // Don't expose the underlying event value changes to the group listener.\n const propertiesChangeEvent = {\n type: 'gridPropertyChanged',\n changeSet: event.changeSet,\n source: event.source\n };\n listener(propertiesChangeEvent);\n };\n events.forEach((event) => this.setupGridOptionListener(event, wrappedListener));\n }\n addDestroyFunc(func) {\n // if we are already destroyed, we execute the func now\n if (this.isAlive()) {\n this.destroyFunctions.push(func);\n }\n else {\n func();\n }\n }\n createManagedBean(bean, context) {\n const res = this.createBean(bean, context);\n this.addDestroyFunc(this.destroyBean.bind(this, bean, context));\n return res;\n }\n createBean(bean, context, afterPreCreateCallback) {\n return (context || this.getContext()).createBean(bean, afterPreCreateCallback);\n }\n destroyBean(bean, context) {\n return (context || this.getContext()).destroyBean(bean);\n }\n destroyBeans(beans, context) {\n if (beans) {\n beans.forEach(bean => this.destroyBean(bean, context));\n }\n return [];\n }\n}\nBeanStub.EVENT_DESTROYED = 'destroyed';\n__decorate([\n Autowired('frameworkOverrides')\n], BeanStub.prototype, \"frameworkOverrides\", void 0);\n__decorate([\n Autowired('context')\n], BeanStub.prototype, \"context\", void 0);\n__decorate([\n Autowired('eventService')\n], BeanStub.prototype, \"eventService\", void 0);\n__decorate([\n Autowired('gridOptionsService')\n], BeanStub.prototype, \"gridOptionsService\", void 0);\n__decorate([\n Autowired('localeService')\n], BeanStub.prototype, \"localeService\", void 0);\n__decorate([\n Autowired('environment')\n], BeanStub.prototype, \"environment\", void 0);\n__decorate([\n PreDestroy\n], BeanStub.prototype, \"destroy\", null);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { ColumnKeyCreator } from \"./columnKeyCreator.mjs\";\nimport { ProvidedColumnGroup } from \"../entities/providedColumnGroup.mjs\";\nimport { Column } from \"../entities/column.mjs\";\nimport { Autowired, Bean, Qualifier } from \"../context/context.mjs\";\nimport { DefaultColumnTypes } from \"../entities/defaultColumnTypes.mjs\";\nimport { BeanStub } from \"../context/beanStub.mjs\";\nimport { iterateObject, mergeDeep } from '../utils/object.mjs';\nimport { attrToNumber, attrToBoolean } from '../utils/generic.mjs';\nimport { warnOnce } from '../utils/function.mjs';\n// takes ColDefs and ColGroupDefs and turns them into Columns and OriginalGroups\nlet ColumnFactory = class ColumnFactory extends BeanStub {\n setBeans(loggerFactory) {\n this.logger = loggerFactory.create('ColumnFactory');\n }\n createColumnTree(defs, primaryColumns, existingTree, source) {\n // column key creator dishes out unique column id's in a deterministic way,\n // so if we have two grids (that could be master/slave) with same column definitions,\n // then this ensures the two grids use identical id's.\n const columnKeyCreator = new ColumnKeyCreator();\n const { existingCols, existingGroups, existingColKeys } = this.extractExistingTreeData(existingTree);\n columnKeyCreator.addExistingKeys(existingColKeys);\n // create am unbalanced tree that maps the provided definitions\n const unbalancedTree = this.recursivelyCreateColumns(defs, 0, primaryColumns, existingCols, columnKeyCreator, existingGroups, source);\n const treeDept = this.findMaxDept(unbalancedTree, 0);\n this.logger.log('Number of levels for grouped columns is ' + treeDept);\n const columnTree = this.balanceColumnTree(unbalancedTree, 0, treeDept, columnKeyCreator);\n const deptFirstCallback = (child, parent) => {\n if (child instanceof ProvidedColumnGroup) {\n child.setupExpandable();\n }\n // we set the original parents at the end, rather than when we go along, as balancing the tree\n // adds extra levels into the tree. so we can only set parents when balancing is done.\n child.setOriginalParent(parent);\n };\n this.columnUtils.depthFirstOriginalTreeSearch(null, columnTree, deptFirstCallback);\n return {\n columnTree,\n treeDept\n };\n }\n extractExistingTreeData(existingTree) {\n const existingCols = [];\n const existingGroups = [];\n const existingColKeys = [];\n if (existingTree) {\n this.columnUtils.depthFirstOriginalTreeSearch(null, existingTree, (item) => {\n if (item instanceof ProvidedColumnGroup) {\n const group = item;\n existingGroups.push(group);\n }\n else {\n const col = item;\n existingColKeys.push(col.getId());\n existingCols.push(col);\n }\n });\n }\n return { existingCols, existingGroups, existingColKeys };\n }\n createForAutoGroups(autoGroupCols, gridBalancedTree) {\n return autoGroupCols.map((col) => this.createAutoGroupTreeItem(gridBalancedTree, col));\n }\n createAutoGroupTreeItem(balancedColumnTree, column) {\n const dept = this.findDepth(balancedColumnTree);\n // at the end, this will be the top of the tree item.\n let nextChild = column;\n for (let i = dept - 1; i >= 0; i--) {\n const autoGroup = new ProvidedColumnGroup(null, `FAKE_PATH_${column.getId()}}_${i}`, true, i);\n this.createBean(autoGroup);\n autoGroup.setChildren([nextChild]);\n nextChild.setOriginalParent(autoGroup);\n nextChild = autoGroup;\n }\n if (dept === 0) {\n column.setOriginalParent(null);\n }\n // at this point, the nextChild is the top most item in the tree\n return nextChild;\n }\n findDepth(balancedColumnTree) {\n let dept = 0;\n let pointer = balancedColumnTree;\n while (pointer && pointer[0] && pointer[0] instanceof ProvidedColumnGroup) {\n dept++;\n pointer = pointer[0].getChildren();\n }\n return dept;\n }\n balanceColumnTree(unbalancedTree, currentDept, columnDept, columnKeyCreator) {\n const result = [];\n // go through each child, for groups, recurse a level deeper,\n // for columns we need to pad\n for (let i = 0; i < unbalancedTree.length; i++) {\n const child = unbalancedTree[i];\n if (child instanceof ProvidedColumnGroup) {\n // child is a group, all we do is go to the next level of recursion\n const originalGroup = child;\n const newChildren = this.balanceColumnTree(originalGroup.getChildren(), currentDept + 1, columnDept, columnKeyCreator);\n originalGroup.setChildren(newChildren);\n result.push(originalGroup);\n }\n else {\n // child is a column - so here we add in the padded column groups if needed\n let firstPaddedGroup;\n let currentPaddedGroup;\n // this for loop will NOT run any loops if no padded column groups are needed\n for (let j = columnDept - 1; j >= currentDept; j--) {\n const newColId = columnKeyCreator.getUniqueKey(null, null);\n const colGroupDefMerged = this.createMergedColGroupDef(null);\n const paddedGroup = new ProvidedColumnGroup(colGroupDefMerged, newColId, true, currentDept);\n this.createBean(paddedGroup);\n if (currentPaddedGroup) {\n currentPaddedGroup.setChildren([paddedGroup]);\n }\n currentPaddedGroup = paddedGroup;\n if (!firstPaddedGroup) {\n firstPaddedGroup = currentPaddedGroup;\n }\n }\n // likewise this if statement will not run if no padded groups\n if (firstPaddedGroup && currentPaddedGroup) {\n result.push(firstPaddedGroup);\n const hasGroups = unbalancedTree.some(leaf => leaf instanceof ProvidedColumnGroup);\n if (hasGroups) {\n currentPaddedGroup.setChildren([child]);\n continue;\n }\n else {\n currentPaddedGroup.setChildren(unbalancedTree);\n break;\n }\n }\n result.push(child);\n }\n }\n return result;\n }\n findMaxDept(treeChildren, dept) {\n let maxDeptThisLevel = dept;\n for (let i = 0; i < treeChildren.length; i++) {\n const abstractColumn = treeChildren[i];\n if (abstractColumn instanceof ProvidedColumnGroup) {\n const originalGroup = abstractColumn;\n const newDept = this.findMaxDept(originalGroup.getChildren(), dept + 1);\n if (maxDeptThisLevel < newDept) {\n maxDeptThisLevel = newDept;\n }\n }\n }\n return maxDeptThisLevel;\n }\n recursivelyCreateColumns(defs, level, primaryColumns, existingColsCopy, columnKeyCreator, existingGroups, source) {\n if (!defs)\n return [];\n const result = new Array(defs.length);\n for (let i = 0; i < result.length; i++) {\n const def = defs[i];\n if (this.isColumnGroup(def)) {\n result[i] = this.createColumnGroup(primaryColumns, def, level, existingColsCopy, columnKeyCreator, existingGroups, source);\n }\n else {\n result[i] = this.createColumn(primaryColumns, def, existingColsCopy, columnKeyCreator, source);\n }\n }\n return result;\n }\n createColumnGroup(primaryColumns, colGroupDef, level, existingColumns, columnKeyCreator, existingGroups, source) {\n const colGroupDefMerged = this.createMergedColGroupDef(colGroupDef);\n const groupId = columnKeyCreator.getUniqueKey(colGroupDefMerged.groupId || null, null);\n const providedGroup = new ProvidedColumnGroup(colGroupDefMerged, groupId, false, level);\n this.createBean(providedGroup);\n const existingGroupAndIndex = this.findExistingGroup(colGroupDef, existingGroups);\n // make sure we remove, so if user provided duplicate id, then we don't have more than\n // one column instance for colDef with common id\n if (existingGroupAndIndex) {\n existingGroups.splice(existingGroupAndIndex.idx, 1);\n }\n let existingGroup = existingGroupAndIndex === null || existingGroupAndIndex === void 0 ? void 0 : existingGroupAndIndex.group;\n if (existingGroup) {\n providedGroup.setExpanded(existingGroup.isExpanded());\n }\n const children = this.recursivelyCreateColumns(colGroupDefMerged.children, level + 1, primaryColumns, existingColumns, columnKeyCreator, existingGroups, source);\n providedGroup.setChildren(children);\n return providedGroup;\n }\n createMergedColGroupDef(colGroupDef) {\n const colGroupDefMerged = {};\n Object.assign(colGroupDefMerged, this.gridOptionsService.get('defaultColGroupDef'));\n Object.assign(colGroupDefMerged, colGroupDef);\n return colGroupDefMerged;\n }\n createColumn(primaryColumns, colDef, existingColsCopy, columnKeyCreator, source) {\n // see if column already exists\n const existingColAndIndex = this.findExistingColumn(colDef, existingColsCopy);\n // make sure we remove, so if user provided duplicate id, then we don't have more than\n // one column instance for colDef with common id\n if (existingColAndIndex) {\n existingColsCopy === null || existingColsCopy === void 0 ? void 0 : existingColsCopy.splice(existingColAndIndex.idx, 1);\n }\n let column = existingColAndIndex === null || existingColAndIndex === void 0 ? void 0 : existingColAndIndex.column;\n if (!column) {\n // no existing column, need to create one\n const colId = columnKeyCreator.getUniqueKey(colDef.colId, colDef.field);\n const colDefMerged = this.addColumnDefaultAndTypes(colDef, colId);\n column = new Column(colDefMerged, colDef, colId, primaryColumns);\n this.context.createBean(column);\n }\n else {\n const colDefMerged = this.addColumnDefaultAndTypes(colDef, column.getColId());\n column.setColDef(colDefMerged, colDef, source);\n this.applyColumnState(column, colDefMerged, source);\n }\n this.dataTypeService.addColumnListeners(column);\n return column;\n }\n applyColumnState(column, colDef, source) {\n // flex\n const flex = attrToNumber(colDef.flex);\n if (flex !== undefined) {\n column.setFlex(flex);\n }\n // width - we only set width if column is not flexing\n const noFlexThisCol = column.getFlex() <= 0;\n if (noFlexThisCol) {\n // both null and undefined means we skip, as it's not possible to 'clear' width (a column must have a width)\n const width = attrToNumber(colDef.width);\n if (width != null) {\n column.setActualWidth(width, source);\n }\n else {\n // otherwise set the width again, in case min or max width has changed,\n // and width needs to be adjusted.\n const widthBeforeUpdate = column.getActualWidth();\n column.setActualWidth(widthBeforeUpdate, source);\n }\n }\n // sort - anything but undefined will set sort, thus null or empty string will clear the sort\n if (colDef.sort !== undefined) {\n if (colDef.sort == 'asc' || colDef.sort == 'desc') {\n column.setSort(colDef.sort, source);\n }\n else {\n column.setSort(undefined, source);\n }\n }\n // sorted at - anything but undefined, thus null will clear the sortIndex\n const sortIndex = attrToNumber(colDef.sortIndex);\n if (sortIndex !== undefined) {\n column.setSortIndex(sortIndex);\n }\n // hide - anything but undefined, thus null will clear the hide\n const hide = attrToBoolean(colDef.hide);\n if (hide !== undefined) {\n column.setVisible(!hide, source);\n }\n // pinned - anything but undefined, thus null or empty string will remove pinned\n if (colDef.pinned !== undefined) {\n column.setPinned(colDef.pinned);\n }\n }\n findExistingColumn(newColDef, existingColsCopy) {\n if (!existingColsCopy)\n return undefined;\n for (let i = 0; i < existingColsCopy.length; i++) {\n const def = existingColsCopy[i].getUserProvidedColDef();\n if (!def)\n continue;\n const newHasId = newColDef.colId != null;\n if (newHasId) {\n if (existingColsCopy[i].getId() === newColDef.colId) {\n return { idx: i, column: existingColsCopy[i] };\n }\n continue;\n }\n const newHasField = newColDef.field != null;\n if (newHasField) {\n if (def.field === newColDef.field) {\n return { idx: i, column: existingColsCopy[i] };\n }\n continue;\n }\n if (def === newColDef) {\n return { idx: i, column: existingColsCopy[i] };\n }\n }\n return undefined;\n }\n findExistingGroup(newGroupDef, existingGroups) {\n const newHasId = newGroupDef.groupId != null;\n if (!newHasId) {\n return undefined;\n }\n for (let i = 0; i < existingGroups.length; i++) {\n const existingGroup = existingGroups[i];\n const existingDef = existingGroup.getColGroupDef();\n if (!existingDef) {\n continue;\n }\n if (existingGroup.getId() === newGroupDef.groupId) {\n return { idx: i, group: existingGroup };\n }\n }\n return undefined;\n }\n addColumnDefaultAndTypes(colDef, colId) {\n // start with empty merged definition\n const res = {};\n // merge properties from default column definitions\n const defaultColDef = this.gridOptionsService.get('defaultColDef');\n mergeDeep(res, defaultColDef, false, true);\n const columnType = this.dataTypeService.updateColDefAndGetColumnType(res, colDef, colId);\n if (columnType) {\n this.assignColumnTypes(columnType, res);\n }\n // merge properties from column definitions\n mergeDeep(res, colDef, false, true);\n const autoGroupColDef = this.gridOptionsService.get('autoGroupColumnDef');\n const isSortingCoupled = this.gridOptionsService.isColumnsSortingCoupledToGroup();\n if (colDef.rowGroup && autoGroupColDef && isSortingCoupled) {\n // override the sort for row group columns where the autoGroupColDef defines these values.\n mergeDeep(res, { sort: autoGroupColDef.sort, initialSort: autoGroupColDef.initialSort }, false, true);\n }\n this.dataTypeService.validateColDef(res);\n return res;\n }\n assignColumnTypes(typeKeys, colDefMerged) {\n if (!typeKeys.length) {\n return;\n }\n // merge user defined with default column types\n const allColumnTypes = Object.assign({}, DefaultColumnTypes);\n const userTypes = this.gridOptionsService.get('columnTypes') || {};\n iterateObject(userTypes, (key, value) => {\n if (key in allColumnTypes) {\n console.warn(`AG Grid: the column type '${key}' is a default column type and cannot be overridden.`);\n }\n else {\n const colType = value;\n if (colType.type) {\n warnOnce(`Column type definitions 'columnTypes' with a 'type' attribute are not supported ` +\n `because a column type cannot refer to another column type. Only column definitions ` +\n `'columnDefs' can use the 'type' attribute to refer to a column type.`);\n }\n allColumnTypes[key] = value;\n }\n });\n typeKeys.forEach((t) => {\n const typeColDef = allColumnTypes[t.trim()];\n if (typeColDef) {\n mergeDeep(colDefMerged, typeColDef, false, true);\n }\n else {\n console.warn(\"AG Grid: colDef.type '\" + t + \"' does not correspond to defined gridOptions.columnTypes\");\n }\n });\n }\n // if object has children, we assume it's a group\n isColumnGroup(abstractColDef) {\n return abstractColDef.children !== undefined;\n }\n};\n__decorate([\n Autowired('columnUtils')\n], ColumnFactory.prototype, \"columnUtils\", void 0);\n__decorate([\n Autowired('dataTypeService')\n], ColumnFactory.prototype, \"dataTypeService\", void 0);\n__decorate([\n __param(0, Qualifier('loggerFactory'))\n], ColumnFactory.prototype, \"setBeans\", null);\nColumnFactory = __decorate([\n Bean('columnFactory')\n], ColumnFactory);\nexport { ColumnFactory };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Column } from \"./column.mjs\";\nimport { EventService } from \"../eventService.mjs\";\nimport { Autowired } from \"../context/context.mjs\";\nimport { last } from \"../utils/array.mjs\";\nexport class ColumnGroup {\n constructor(providedColumnGroup, groupId, partId, pinned) {\n // depends on the open/closed state of the group, only displaying columns are stored here\n this.displayedChildren = [];\n this.localEventService = new EventService();\n this.groupId = groupId;\n this.partId = partId;\n this.providedColumnGroup = providedColumnGroup;\n this.pinned = pinned;\n }\n // this is static, a it is used outside of this class\n static createUniqueId(groupId, instanceId) {\n return groupId + '_' + instanceId;\n }\n // as the user is adding and removing columns, the groups are recalculated.\n // this reset clears out all children, ready for children to be added again\n reset() {\n this.parent = null;\n this.children = null;\n this.displayedChildren = null;\n }\n getParent() {\n return this.parent;\n }\n setParent(parent) {\n this.parent = parent;\n }\n getUniqueId() {\n return ColumnGroup.createUniqueId(this.groupId, this.partId);\n }\n isEmptyGroup() {\n return this.displayedChildren.length === 0;\n }\n isMoving() {\n const allLeafColumns = this.getProvidedColumnGroup().getLeafColumns();\n if (!allLeafColumns || allLeafColumns.length === 0) {\n return false;\n }\n return allLeafColumns.every(col => col.isMoving());\n }\n checkLeft() {\n // first get all children to setLeft, as it impacts our decision below\n this.displayedChildren.forEach((child) => {\n if (child instanceof ColumnGroup) {\n child.checkLeft();\n }\n });\n // set our left based on first displayed column\n if (this.displayedChildren.length > 0) {\n if (this.gridOptionsService.get('enableRtl')) {\n const lastChild = last(this.displayedChildren);\n const lastChildLeft = lastChild.getLeft();\n this.setLeft(lastChildLeft);\n }\n else {\n const firstChildLeft = this.displayedChildren[0].getLeft();\n this.setLeft(firstChildLeft);\n }\n }\n else {\n // this should never happen, as if we have no displayed columns, then\n // this groups should not even exist.\n this.setLeft(null);\n }\n }\n getLeft() {\n return this.left;\n }\n getOldLeft() {\n return this.oldLeft;\n }\n setLeft(left) {\n this.oldLeft = this.left;\n if (this.left !== left) {\n this.left = left;\n this.localEventService.dispatchEvent(this.createAgEvent(ColumnGroup.EVENT_LEFT_CHANGED));\n }\n }\n getPinned() {\n return this.pinned;\n }\n createAgEvent(type) {\n return { type };\n }\n addEventListener(eventType, listener) {\n this.localEventService.addEventListener(eventType, listener);\n }\n removeEventListener(eventType, listener) {\n this.localEventService.removeEventListener(eventType, listener);\n }\n getGroupId() {\n return this.groupId;\n }\n getPartId() {\n return this.partId;\n }\n isChildInThisGroupDeepSearch(wantedChild) {\n let result = false;\n this.children.forEach((foundChild) => {\n if (wantedChild === foundChild) {\n result = true;\n }\n if (foundChild instanceof ColumnGroup) {\n if (foundChild.isChildInThisGroupDeepSearch(wantedChild)) {\n result = true;\n }\n }\n });\n return result;\n }\n getActualWidth() {\n let groupActualWidth = 0;\n if (this.displayedChildren) {\n this.displayedChildren.forEach((child) => {\n groupActualWidth += child.getActualWidth();\n });\n }\n return groupActualWidth;\n }\n isResizable() {\n if (!this.displayedChildren) {\n return false;\n }\n // if at least one child is resizable, then the group is resizable\n let result = false;\n this.displayedChildren.forEach((child) => {\n if (child.isResizable()) {\n result = true;\n }\n });\n return result;\n }\n getMinWidth() {\n let result = 0;\n this.displayedChildren.forEach((groupChild) => {\n result += groupChild.getMinWidth() || 0;\n });\n return result;\n }\n addChild(child) {\n if (!this.children) {\n this.children = [];\n }\n this.children.push(child);\n }\n getDisplayedChildren() {\n return this.displayedChildren;\n }\n getLeafColumns() {\n const result = [];\n this.addLeafColumns(result);\n return result;\n }\n getDisplayedLeafColumns() {\n const result = [];\n this.addDisplayedLeafColumns(result);\n return result;\n }\n getDefinition() {\n return this.providedColumnGroup.getColGroupDef();\n }\n getColGroupDef() {\n return this.providedColumnGroup.getColGroupDef();\n }\n isPadding() {\n return this.providedColumnGroup.isPadding();\n }\n isExpandable() {\n return this.providedColumnGroup.isExpandable();\n }\n isExpanded() {\n return this.providedColumnGroup.isExpanded();\n }\n setExpanded(expanded) {\n this.providedColumnGroup.setExpanded(expanded);\n }\n addDisplayedLeafColumns(leafColumns) {\n this.displayedChildren.forEach((child) => {\n if (child instanceof Column) {\n leafColumns.push(child);\n }\n else if (child instanceof ColumnGroup) {\n child.addDisplayedLeafColumns(leafColumns);\n }\n });\n }\n addLeafColumns(leafColumns) {\n this.children.forEach((child) => {\n if (child instanceof Column) {\n leafColumns.push(child);\n }\n else if (child instanceof ColumnGroup) {\n child.addLeafColumns(leafColumns);\n }\n });\n }\n getChildren() {\n return this.children;\n }\n getColumnGroupShow() {\n return this.providedColumnGroup.getColumnGroupShow();\n }\n getProvidedColumnGroup() {\n return this.providedColumnGroup;\n }\n getPaddingLevel() {\n const parent = this.getParent();\n if (!this.isPadding() || !parent || !parent.isPadding()) {\n return 0;\n }\n return 1 + parent.getPaddingLevel();\n }\n calculateDisplayedColumns() {\n // clear out last time we calculated\n this.displayedChildren = [];\n // find the column group that is controlling expandable. this is relevant when we have padding (empty)\n // groups, where the expandable is actually the first parent that is not a padding group.\n let parentWithExpansion = this;\n while (parentWithExpansion != null && parentWithExpansion.isPadding()) {\n parentWithExpansion = parentWithExpansion.getParent();\n }\n const isExpandable = parentWithExpansion ? parentWithExpansion.providedColumnGroup.isExpandable() : false;\n // it not expandable, everything is visible\n if (!isExpandable) {\n this.displayedChildren = this.children;\n this.localEventService.dispatchEvent(this.createAgEvent(ColumnGroup.EVENT_DISPLAYED_CHILDREN_CHANGED));\n return;\n }\n // Add cols based on columnGroupShow\n // Note - the below also adds padding groups, these are always added because they never have\n // colDef.columnGroupShow set.\n this.children.forEach(child => {\n // never add empty groups\n const emptyGroup = child instanceof ColumnGroup && (!child.displayedChildren || !child.displayedChildren.length);\n if (emptyGroup) {\n return;\n }\n const headerGroupShow = child.getColumnGroupShow();\n switch (headerGroupShow) {\n case 'open':\n // when set to open, only show col if group is open\n if (parentWithExpansion.providedColumnGroup.isExpanded()) {\n this.displayedChildren.push(child);\n }\n break;\n case 'closed':\n // when set to open, only show col if group is open\n if (!parentWithExpansion.providedColumnGroup.isExpanded()) {\n this.displayedChildren.push(child);\n }\n break;\n default:\n this.displayedChildren.push(child);\n break;\n }\n });\n this.localEventService.dispatchEvent(this.createAgEvent(ColumnGroup.EVENT_DISPLAYED_CHILDREN_CHANGED));\n }\n}\nColumnGroup.EVENT_LEFT_CHANGED = 'leftChanged';\nColumnGroup.EVENT_DISPLAYED_CHILDREN_CHANGED = 'displayedChildrenChanged';\n__decorate([\n Autowired('gridOptionsService')\n], ColumnGroup.prototype, \"gridOptionsService\", void 0);\n","export class Events {\n}\n/** Everything has changed with the columns. Either complete new set of columns set, or user called applyColumnState() */\n/** @deprecated - grid no longer uses this, and setSate() also fires individual events */\nEvents.EVENT_COLUMN_EVERYTHING_CHANGED = 'columnEverythingChanged';\n/** User has set in new columns. */\nEvents.EVENT_NEW_COLUMNS_LOADED = 'newColumnsLoaded';\n/** The pivot mode flag was changed */\nEvents.EVENT_COLUMN_PIVOT_MODE_CHANGED = 'columnPivotModeChanged';\n/** A row group column was added, removed or order changed. */\nEvents.EVENT_COLUMN_ROW_GROUP_CHANGED = 'columnRowGroupChanged';\n/** expandAll / collapseAll was called from the api. */\nEvents.EVENT_EXPAND_COLLAPSE_ALL = 'expandOrCollapseAll';\n/** A pivot column was added, removed or order changed. */\nEvents.EVENT_COLUMN_PIVOT_CHANGED = 'columnPivotChanged';\n/** The list of grid columns has changed. */\nEvents.EVENT_GRID_COLUMNS_CHANGED = 'gridColumnsChanged';\n/** A value column was added, removed or agg function was changed. */\nEvents.EVENT_COLUMN_VALUE_CHANGED = 'columnValueChanged';\n/** A column was moved */\nEvents.EVENT_COLUMN_MOVED = 'columnMoved';\n/** One or more columns was shown / hidden */\nEvents.EVENT_COLUMN_VISIBLE = 'columnVisible';\n/** One or more columns was pinned / unpinned*/\nEvents.EVENT_COLUMN_PINNED = 'columnPinned';\n/** A column group was opened / closed */\nEvents.EVENT_COLUMN_GROUP_OPENED = 'columnGroupOpened';\n/** One or more columns was resized. If just one, the column in the event is set. */\nEvents.EVENT_COLUMN_RESIZED = 'columnResized';\n/** The list of displayed columns has changed, can result from columns open / close, column move, pivot, group, etc */\nEvents.EVENT_DISPLAYED_COLUMNS_CHANGED = 'displayedColumnsChanged';\n/** The grid option related to suppressing movable columns has changed */\nEvents.EVENT_SUPPRESS_COLUMN_MOVE_CHANGED = 'suppressMovableColumns';\n/** The grid option related to suppressing column group selection has changed */\nEvents.EVENT_SUPPRESS_MENU_HIDE_CHANGED = 'suppressMenuHide';\n/** The grid option related to suppressing movable columns has changed */\nEvents.EVENT_SUPPRESS_FIELD_DOT_NOTATION = 'suppressFieldDotNotation';\n/** The list of virtual columns has changed, results from viewport changing */\nEvents.EVENT_VIRTUAL_COLUMNS_CHANGED = 'virtualColumnsChanged';\n/** Column header mouse over */\nEvents.EVENT_COLUMN_HEADER_MOUSE_OVER = 'columnHeaderMouseOver';\n/** Column header mouse leave */\nEvents.EVENT_COLUMN_HEADER_MOUSE_LEAVE = 'columnHeaderMouseLeave';\n/** Column header clicked */\nEvents.EVENT_COLUMN_HEADER_CLICKED = 'columnHeaderClicked';\n/** Column header context menu event, such as right-click or context menu key press */\nEvents.EVENT_COLUMN_HEADER_CONTEXT_MENU = 'columnHeaderContextMenu';\n/** Async Transactions Executed */\nEvents.EVENT_ASYNC_TRANSACTIONS_FLUSHED = 'asyncTransactionsFlushed';\n/** A row group was opened / closed */\nEvents.EVENT_ROW_GROUP_OPENED = 'rowGroupOpened';\n/** Client-Side Row Model only. The client has updated data for the grid */\nEvents.EVENT_ROW_DATA_UPDATED = 'rowDataUpdated';\n/** The client has set new floating data into the grid */\nEvents.EVENT_PINNED_ROW_DATA_CHANGED = 'pinnedRowDataChanged';\n/** Range selection has changed */\nEvents.EVENT_RANGE_SELECTION_CHANGED = 'rangeSelectionChanged';\n/** Chart was created */\nEvents.EVENT_CHART_CREATED = 'chartCreated';\n/** Chart Range selection has changed */\nEvents.EVENT_CHART_RANGE_SELECTION_CHANGED = 'chartRangeSelectionChanged';\n/** Chart Options have changed */\nEvents.EVENT_CHART_OPTIONS_CHANGED = 'chartOptionsChanged';\n/** Chart was destroyed */\nEvents.EVENT_CHART_DESTROYED = 'chartDestroyed';\n/** For when the tool panel is shown / hidden */\nEvents.EVENT_TOOL_PANEL_VISIBLE_CHANGED = 'toolPanelVisibleChanged';\nEvents.EVENT_TOOL_PANEL_SIZE_CHANGED = 'toolPanelSizeChanged';\nEvents.EVENT_COLUMN_PANEL_ITEM_DRAG_START = 'columnPanelItemDragStart';\nEvents.EVENT_COLUMN_PANEL_ITEM_DRAG_END = 'columnPanelItemDragEnd';\n/** Model was updated - grid updates the drawn rows when this happens */\nEvents.EVENT_MODEL_UPDATED = 'modelUpdated';\nEvents.EVENT_CUT_START = 'cutStart';\nEvents.EVENT_CUT_END = 'cutEnd';\nEvents.EVENT_PASTE_START = 'pasteStart';\nEvents.EVENT_PASTE_END = 'pasteEnd';\nEvents.EVENT_FILL_START = 'fillStart';\nEvents.EVENT_FILL_END = 'fillEnd';\nEvents.EVENT_RANGE_DELETE_START = 'rangeDeleteStart';\nEvents.EVENT_RANGE_DELETE_END = 'rangeDeleteEnd';\n/** Undo operation has started. */\nEvents.EVENT_UNDO_STARTED = 'undoStarted';\n/** Undo operation has ended. */\nEvents.EVENT_UNDO_ENDED = 'undoEnded';\n/** Redo operation has started. */\nEvents.EVENT_REDO_STARTED = 'redoStarted';\n/** Redo operation has ended. */\nEvents.EVENT_REDO_ENDED = 'redoEnded';\nEvents.EVENT_KEY_SHORTCUT_CHANGED_CELL_START = 'keyShortcutChangedCellStart';\nEvents.EVENT_KEY_SHORTCUT_CHANGED_CELL_END = 'keyShortcutChangedCellEnd';\nEvents.EVENT_CELL_CLICKED = 'cellClicked';\nEvents.EVENT_CELL_DOUBLE_CLICKED = 'cellDoubleClicked';\nEvents.EVENT_CELL_MOUSE_DOWN = 'cellMouseDown';\nEvents.EVENT_CELL_CONTEXT_MENU = 'cellContextMenu';\nEvents.EVENT_CELL_VALUE_CHANGED = 'cellValueChanged';\nEvents.EVENT_CELL_EDIT_REQUEST = 'cellEditRequest';\nEvents.EVENT_ROW_VALUE_CHANGED = 'rowValueChanged';\nEvents.EVENT_CELL_FOCUSED = 'cellFocused';\nEvents.EVENT_CELL_FOCUS_CLEARED = 'cellFocusCleared';\nEvents.EVENT_FULL_WIDTH_ROW_FOCUSED = 'fullWidthRowFocused';\nEvents.EVENT_ROW_SELECTED = 'rowSelected';\nEvents.EVENT_SELECTION_CHANGED = 'selectionChanged';\nEvents.EVENT_TOOLTIP_SHOW = 'tooltipShow';\nEvents.EVENT_TOOLTIP_HIDE = 'tooltipHide';\nEvents.EVENT_CELL_KEY_DOWN = 'cellKeyDown';\nEvents.EVENT_CELL_MOUSE_OVER = 'cellMouseOver';\nEvents.EVENT_CELL_MOUSE_OUT = 'cellMouseOut';\n/** 2 events for filtering. The grid LISTENS for filterChanged and afterFilterChanged */\nEvents.EVENT_FILTER_CHANGED = 'filterChanged';\n/** Filter was change but not applied. Only useful if apply buttons are used in filters. */\nEvents.EVENT_FILTER_MODIFIED = 'filterModified';\nEvents.EVENT_FILTER_OPENED = 'filterOpened';\nEvents.EVENT_ADVANCED_FILTER_BUILDER_VISIBLE_CHANGED = 'advancedFilterBuilderVisibleChanged';\nEvents.EVENT_SORT_CHANGED = 'sortChanged';\n/** A row was removed from the dom, for any reason. Use to clean up resources (if any) used by the row. */\nEvents.EVENT_VIRTUAL_ROW_REMOVED = 'virtualRowRemoved';\nEvents.EVENT_ROW_CLICKED = 'rowClicked';\nEvents.EVENT_ROW_DOUBLE_CLICKED = 'rowDoubleClicked';\n/** Gets called once after the grid has finished initialising. */\nEvents.EVENT_GRID_READY = 'gridReady';\n/** Called once when the grid is about to get destroyed. */\nEvents.EVENT_GRID_PRE_DESTROYED = 'gridPreDestroyed';\n/** Width of height of the main grid div has changed. Grid listens for this and does layout of grid if it's\n * changed, so always filling the space it was given. */\nEvents.EVENT_GRID_SIZE_CHANGED = 'gridSizeChanged';\n/** The indexes of the rows rendered has changed, eg user has scrolled to a new vertical position. */\nEvents.EVENT_VIEWPORT_CHANGED = 'viewportChanged';\n/* The width of the scrollbar has been calculated */\nEvents.EVENT_SCROLLBAR_WIDTH_CHANGED = 'scrollbarWidthChanged';\n/** Rows were rendered for the first time (ie on async data load). */\nEvents.EVENT_FIRST_DATA_RENDERED = 'firstDataRendered';\n/** A column drag has started, either resizing a column or moving a column. */\nEvents.EVENT_DRAG_STARTED = 'dragStarted';\n/** A column drag has stopped */\nEvents.EVENT_DRAG_STOPPED = 'dragStopped';\nEvents.EVENT_CHECKBOX_CHANGED = 'checkboxChanged';\nEvents.EVENT_ROW_EDITING_STARTED = 'rowEditingStarted';\nEvents.EVENT_ROW_EDITING_STOPPED = 'rowEditingStopped';\nEvents.EVENT_CELL_EDITING_STARTED = 'cellEditingStarted';\nEvents.EVENT_CELL_EDITING_STOPPED = 'cellEditingStopped';\n/** Main body of grid has scrolled, either horizontally or vertically */\nEvents.EVENT_BODY_SCROLL = 'bodyScroll';\n/** Main body of the grid has stopped scrolling, either horizontally or vertically */\nEvents.EVENT_BODY_SCROLL_END = 'bodyScrollEnd';\nEvents.EVENT_HEIGHT_SCALE_CHANGED = 'heightScaleChanged';\n/** The displayed page for pagination has changed. For example the data was filtered or sorted,\n * or the user has moved to a different page. */\nEvents.EVENT_PAGINATION_CHANGED = 'paginationChanged';\n/** Only used by React, Angular, Web Components and VueJS AG Grid components\n * (not used if doing plain JavaScript). If the grid receives changes due\n * to bound properties, this event fires after the grid has finished processing the change. */\nEvents.EVENT_COMPONENT_STATE_CHANGED = 'componentStateChanged';\n/** Only used by the SSRM, called when the grid has no more rows to refresh */\nEvents.EVENT_STORE_REFRESHED = 'storeRefreshed';\nEvents.EVENT_STATE_UPDATED = 'stateUpdated';\n/** The visibility of the column menu has changed. */\nEvents.EVENT_COLUMN_MENU_VISIBLE_CHANGED = 'columnMenuVisibleChanged';\n/***************************** INTERNAL EVENTS: START ******************************************* */\n/** Please remember to add to ComponentUtil.EXCLUDED_INTERNAL_EVENTS to not have these events exposed to framework components. */\n/** All items from here down are used internally by the grid, not intended for external use. */\n// not documented, either experimental, or we just don't want users using an depending on them\nEvents.EVENT_BODY_HEIGHT_CHANGED = 'bodyHeightChanged';\nEvents.EVENT_COLUMN_CONTAINER_WIDTH_CHANGED = 'columnContainerWidthChanged';\nEvents.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED = 'displayedColumnsWidthChanged';\nEvents.EVENT_SCROLL_VISIBILITY_CHANGED = 'scrollVisibilityChanged';\nEvents.EVENT_COLUMN_HOVER_CHANGED = 'columnHoverChanged';\nEvents.EVENT_FLASH_CELLS = 'flashCells';\nEvents.EVENT_PAGINATION_PIXEL_OFFSET_CHANGED = 'paginationPixelOffsetChanged';\nEvents.EVENT_DISPLAYED_ROWS_CHANGED = 'displayedRowsChanged';\nEvents.EVENT_LEFT_PINNED_WIDTH_CHANGED = 'leftPinnedWidthChanged';\nEvents.EVENT_RIGHT_PINNED_WIDTH_CHANGED = 'rightPinnedWidthChanged';\nEvents.EVENT_ROW_CONTAINER_HEIGHT_CHANGED = 'rowContainerHeightChanged';\nEvents.EVENT_HEADER_HEIGHT_CHANGED = 'headerHeightChanged';\nEvents.EVENT_COLUMN_HEADER_HEIGHT_CHANGED = 'columnHeaderHeightChanged';\nEvents.EVENT_ROW_DRAG_ENTER = 'rowDragEnter';\nEvents.EVENT_ROW_DRAG_MOVE = 'rowDragMove';\nEvents.EVENT_ROW_DRAG_LEAVE = 'rowDragLeave';\nEvents.EVENT_ROW_DRAG_END = 'rowDragEnd';\n// environment\nEvents.EVENT_GRID_STYLES_CHANGED = 'gridStylesChanged';\n// primarily for charts\nEvents.EVENT_POPUP_TO_FRONT = 'popupToFront';\n// these are used for server side group and agg - only used by CS with Viewport Row Model - intention is\n// to design these better around server side functions and then release to general public when fully working with\n// all the row models.\nEvents.EVENT_COLUMN_ROW_GROUP_CHANGE_REQUEST = 'columnRowGroupChangeRequest';\nEvents.EVENT_COLUMN_PIVOT_CHANGE_REQUEST = 'columnPivotChangeRequest';\nEvents.EVENT_COLUMN_VALUE_CHANGE_REQUEST = 'columnValueChangeRequest';\nEvents.EVENT_COLUMN_AGG_FUNC_CHANGE_REQUEST = 'columnAggFuncChangeRequest';\nEvents.EVENT_STORE_UPDATED = 'storeUpdated';\nEvents.EVENT_FILTER_DESTROYED = 'filterDestroyed';\nEvents.EVENT_ROW_DATA_UPDATE_STARTED = 'rowDataUpdateStarted';\nEvents.EVENT_ROW_COUNT_READY = 'rowCountReady';\n// Advanced Filters\nEvents.EVENT_ADVANCED_FILTER_ENABLED_CHANGED = 'advancedFilterEnabledChanged';\nEvents.EVENT_DATA_TYPES_INFERRED = 'dataTypesInferred';\n// Widgets\nEvents.EVENT_FIELD_VALUE_CHANGED = 'fieldValueChanged';\nEvents.EVENT_FIELD_PICKER_VALUE_SELECTED = 'fieldPickerValueSelected';\nEvents.EVENT_SIDE_BAR_UPDATED = 'sideBarUpdated';\n","// class returns unique instance id's for columns.\n// eg, the following calls (in this order) will result in:\n//\n// getInstanceIdForKey('country') => 0\n// getInstanceIdForKey('country') => 1\n// getInstanceIdForKey('country') => 2\n// getInstanceIdForKey('country') => 3\n// getInstanceIdForKey('age') => 0\n// getInstanceIdForKey('age') => 1\n// getInstanceIdForKey('country') => 4\nexport class GroupInstanceIdCreator {\n constructor() {\n // this map contains keys to numbers, so we remember what the last call was\n this.existingIds = {};\n }\n getInstanceIdForKey(key) {\n const lastResult = this.existingIds[key];\n let result;\n if (typeof lastResult !== 'number') {\n // first time this key\n result = 0;\n }\n else {\n result = lastResult + 1;\n }\n this.existingIds[key] = result;\n return result;\n }\n}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Autowired, Bean } from \"../context/context.mjs\";\nimport { Column } from \"../entities/column.mjs\";\nimport { BeanStub } from \"../context/beanStub.mjs\";\nimport { mergeDeep } from \"../utils/object.mjs\";\nimport { missing } from \"../utils/generic.mjs\";\nexport const GROUP_AUTO_COLUMN_ID = 'ag-Grid-AutoColumn';\nlet AutoGroupColService = class AutoGroupColService extends BeanStub {\n createAutoGroupColumns(rowGroupColumns) {\n const groupAutoColumns = [];\n const doingTreeData = this.gridOptionsService.get('treeData');\n let doingMultiAutoColumn = this.gridOptionsService.isGroupMultiAutoColumn();\n if (doingTreeData && doingMultiAutoColumn) {\n console.warn('AG Grid: you cannot mix groupDisplayType = \"multipleColumns\" with treeData, only one column can be used to display groups when doing tree data');\n doingMultiAutoColumn = false;\n }\n // if doing groupDisplayType = \"multipleColumns\", then we call the method multiple times, once\n // for each column we are grouping by\n if (doingMultiAutoColumn) {\n rowGroupColumns.forEach((rowGroupCol, index) => {\n groupAutoColumns.push(this.createOneAutoGroupColumn(rowGroupCol, index));\n });\n }\n else {\n groupAutoColumns.push(this.createOneAutoGroupColumn());\n }\n return groupAutoColumns;\n }\n updateAutoGroupColumns(autoGroupColumns, source) {\n autoGroupColumns.forEach((column, index) => this.updateOneAutoGroupColumn(column, index, source));\n }\n // rowGroupCol and index are missing if groupDisplayType != \"multipleColumns\"\n createOneAutoGroupColumn(rowGroupCol, index) {\n // if doing multi, set the field\n let colId;\n if (rowGroupCol) {\n colId = `${GROUP_AUTO_COLUMN_ID}-${rowGroupCol.getId()}`;\n }\n else {\n colId = GROUP_AUTO_COLUMN_ID;\n }\n const colDef = this.createAutoGroupColDef(colId, rowGroupCol, index);\n colDef.colId = colId;\n const newCol = new Column(colDef, null, colId, true);\n this.context.createBean(newCol);\n return newCol;\n }\n /**\n * Refreshes an auto group col to load changes from defaultColDef or autoGroupColDef\n */\n updateOneAutoGroupColumn(colToUpdate, index, source) {\n const oldColDef = colToUpdate.getColDef();\n const underlyingColId = typeof oldColDef.showRowGroup == 'string' ? oldColDef.showRowGroup : undefined;\n const underlyingColumn = underlyingColId != null ? this.columnModel.getPrimaryColumn(underlyingColId) : undefined;\n const colDef = this.createAutoGroupColDef(colToUpdate.getId(), underlyingColumn !== null && underlyingColumn !== void 0 ? underlyingColumn : undefined, index);\n colToUpdate.setColDef(colDef, null, source);\n this.columnFactory.applyColumnState(colToUpdate, colDef, source);\n }\n createAutoGroupColDef(colId, underlyingColumn, index) {\n // if one provided by user, use it, otherwise create one\n let res = this.createBaseColDef(underlyingColumn);\n const autoGroupColumnDef = this.gridOptionsService.get('autoGroupColumnDef');\n mergeDeep(res, autoGroupColumnDef);\n res = this.columnFactory.addColumnDefaultAndTypes(res, colId);\n // For tree data the filter is always allowed\n if (!this.gridOptionsService.get('treeData')) {\n // we would only allow filter if the user has provided field or value getter. otherwise the filter\n // would not be able to work.\n const noFieldOrValueGetter = missing(res.field) &&\n missing(res.valueGetter) &&\n missing(res.filterValueGetter) &&\n res.filter !== 'agGroupColumnFilter';\n if (noFieldOrValueGetter) {\n res.filter = false;\n }\n }\n // if showing many cols, we don't want to show more than one with a checkbox for selection\n if (index && index > 0) {\n res.headerCheckboxSelection = false;\n }\n const isSortingCoupled = this.gridOptionsService.isColumnsSortingCoupledToGroup();\n const hasOwnData = res.valueGetter || res.field != null;\n if (isSortingCoupled && !hasOwnData) {\n // if col is coupled sorting, and has sort attribute, we want to ignore this\n // because we only accept the sort on creation of the col\n res.sortIndex = undefined;\n res.initialSort = undefined;\n }\n return res;\n }\n createBaseColDef(rowGroupCol) {\n const userDef = this.gridOptionsService.get('autoGroupColumnDef');\n const localeTextFunc = this.localeService.getLocaleTextFunc();\n const res = {\n headerName: localeTextFunc('group', 'Group')\n };\n const userHasProvidedGroupCellRenderer = userDef &&\n (userDef.cellRenderer || userDef.cellRendererSelector);\n // only add the default group cell renderer if user hasn't provided one\n if (!userHasProvidedGroupCellRenderer) {\n res.cellRenderer = 'agGroupCellRenderer';\n }\n // we never allow moving the group column\n // defaultAutoColDef.suppressMovable = true;\n if (rowGroupCol) {\n const colDef = rowGroupCol.getColDef();\n Object.assign(res, {\n // cellRendererParams.groupKey: colDefToCopy.field;\n headerName: this.columnModel.getDisplayNameForColumn(rowGroupCol, 'header'),\n headerValueGetter: colDef.headerValueGetter\n });\n if (colDef.cellRenderer) {\n Object.assign(res, {\n cellRendererParams: {\n innerRenderer: colDef.cellRenderer,\n innerRendererParams: colDef.cellRendererParams\n }\n });\n }\n res.showRowGroup = rowGroupCol.getColId();\n }\n else {\n res.showRowGroup = true;\n }\n return res;\n }\n};\n__decorate([\n Autowired('columnModel')\n], AutoGroupColService.prototype, \"columnModel\", void 0);\n__decorate([\n Autowired('columnFactory')\n], AutoGroupColService.prototype, \"columnFactory\", void 0);\nAutoGroupColService = __decorate([\n Bean('autoGroupColService')\n], AutoGroupColService);\nexport { AutoGroupColService };\n","const reUnescapedHtml = /[&<>\"']/g;\n/**\n * HTML Escapes.\n */\nconst HTML_ESCAPES = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n};\n/**\n * It encodes any string in UTF-8 format\n * taken from https://github.com/mathiasbynens/utf8.js\n * @param {string} s\n * @returns {string}\n */\nexport function utf8_encode(s) {\n const stringFromCharCode = String.fromCharCode;\n function ucs2decode(string) {\n const output = [];\n if (!string) {\n return [];\n }\n const len = string.length;\n let counter = 0;\n let value;\n let extra;\n while (counter < len) {\n value = string.charCodeAt(counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < len) {\n // high surrogate, and there is a next character\n extra = string.charCodeAt(counter++);\n if ((extra & 0xFC00) == 0xDC00) { // low surrogate\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n }\n else {\n // unmatched surrogate; only append this code unit, in case the next\n // code unit is the high surrogate of a surrogate pair\n output.push(value);\n counter--;\n }\n }\n else {\n output.push(value);\n }\n }\n return output;\n }\n function checkScalarValue(point) {\n if (point >= 0xD800 && point <= 0xDFFF) {\n throw Error('Lone surrogate U+' + point.toString(16).toUpperCase() +\n ' is not a scalar value');\n }\n }\n function createByte(point, shift) {\n return stringFromCharCode(((point >> shift) & 0x3F) | 0x80);\n }\n function encodeCodePoint(point) {\n if ((point >= 0 && point <= 31 && point !== 10)) {\n const convertedCode = point.toString(16).toUpperCase();\n const paddedCode = convertedCode.padStart(4, '0');\n return `_x${paddedCode}_`;\n }\n if ((point & 0xFFFFFF80) == 0) { // 1-byte sequence\n return stringFromCharCode(point);\n }\n let symbol = '';\n if ((point & 0xFFFFF800) == 0) { // 2-byte sequence\n symbol = stringFromCharCode(((point >> 6) & 0x1F) | 0xC0);\n }\n else if ((point & 0xFFFF0000) == 0) { // 3-byte sequence\n checkScalarValue(point);\n symbol = stringFromCharCode(((point >> 12) & 0x0F) | 0xE0);\n symbol += createByte(point, 6);\n }\n else if ((point & 0xFFE00000) == 0) { // 4-byte sequence\n symbol = stringFromCharCode(((point >> 18) & 0x07) | 0xF0);\n symbol += createByte(point, 12);\n symbol += createByte(point, 6);\n }\n symbol += stringFromCharCode((point & 0x3F) | 0x80);\n return symbol;\n }\n const codePoints = ucs2decode(s);\n const length = codePoints.length;\n let index = -1;\n let codePoint;\n let byteString = '';\n while (++index < length) {\n codePoint = codePoints[index];\n byteString += encodeCodePoint(codePoint);\n }\n return byteString;\n}\nexport function capitalise(str) {\n return str[0].toUpperCase() + str.substring(1).toLowerCase();\n}\nexport function escapeString(toEscape, skipEscapingHtmlChars) {\n if (toEscape == null) {\n return null;\n }\n // we call toString() twice, in case value is an object, where user provides\n // a toString() method, and first call to toString() returns back something other\n // than a string (eg a number to render)\n const stringResult = toEscape.toString().toString();\n if (skipEscapingHtmlChars) {\n return stringResult;\n }\n // in react we don't need to escape html characters, as it's done by the framework\n return stringResult.replace(reUnescapedHtml, chr => HTML_ESCAPES[chr]);\n}\n/**\n * Converts a camelCase string into startCase\n * @param {string} camelCase\n * @return {string}\n */\nexport function camelCaseToHumanText(camelCase) {\n if (!camelCase || camelCase == null) {\n return null;\n }\n // either split on a lowercase followed by uppercase ie asHereTo -> as Here To\n const rex = /([a-z])([A-Z])/g;\n // or starts with uppercase and we take all expect the last which is assumed to be part of next word if followed by lowercase HEREToThere -> HERE To There\n const rexCaps = /([A-Z]+)([A-Z])([a-z])/g;\n const words = camelCase\n .replace(rex, '$1 $2')\n .replace(rexCaps, '$1 $2$3')\n .replace(/\\./g, ' ')\n .split(' ');\n return words.map(word => word.substring(0, 1).toUpperCase() + ((word.length > 1) ? word.substring(1, word.length) : '')).join(' ');\n}\n/**\n * Converts a camelCase string into hyphenated string\n * @param {string} camelCase\n * @return {string}\n */\nexport function camelCaseToHyphenated(camelCase) {\n return camelCase.replace(/[A-Z]/g, s => `-${s.toLocaleLowerCase()}`);\n}\n","export function convertToMap(arr) {\n const map = new Map();\n arr.forEach(pair => map.set(pair[0], pair[1]));\n return map;\n}\n// handy for organising a list into a map, where each item is mapped by an attribute, eg mapping Columns by ID\nexport function mapById(arr, callback) {\n const map = new Map();\n arr.forEach(item => map.set(callback(item), item));\n return map;\n}\nexport function keys(map) {\n const arr = [];\n map.forEach((_, key) => arr.push(key));\n return arr;\n}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { ColumnGroup } from '../entities/columnGroup.mjs';\nimport { Column } from '../entities/column.mjs';\nimport { Events } from '../events.mjs';\nimport { BeanStub } from \"../context/beanStub.mjs\";\nimport { ProvidedColumnGroup } from '../entities/providedColumnGroup.mjs';\nimport { GroupInstanceIdCreator } from './groupInstanceIdCreator.mjs';\nimport { Autowired, Bean, Optional, PostConstruct, PreDestroy, Qualifier } from '../context/context.mjs';\nimport { GROUP_AUTO_COLUMN_ID } from './autoGroupColService.mjs';\nimport { areEqual, last, removeFromArray, moveInArray, includes, insertIntoArray, removeAllFromUnorderedArray, removeFromUnorderedArray } from '../utils/array.mjs';\nimport { missingOrEmpty, exists, missing, attrToBoolean, attrToNumber } from '../utils/generic.mjs';\nimport { camelCaseToHumanText } from '../utils/string.mjs';\nimport { convertToMap } from '../utils/map.mjs';\nimport { warnOnce } from '../utils/function.mjs';\nlet ColumnModel = class ColumnModel extends BeanStub {\n constructor() {\n super(...arguments);\n // header row count, based on user provided columns\n this.primaryHeaderRowCount = 0;\n this.secondaryHeaderRowCount = 0;\n // header row count, either above, or based on pivoting if we are pivoting\n this.gridHeaderRowCount = 0;\n // leave level columns of the displayed trees\n this.displayedColumnsLeft = [];\n this.displayedColumnsRight = [];\n this.displayedColumnsCenter = [];\n // all three lists above combined\n this.displayedColumns = [];\n // for fast lookup, to see if a column or group is still displayed\n this.displayedColumnsAndGroupsMap = {};\n // all columns to be rendered\n this.viewportColumns = [];\n // A hash key to keep track of changes in viewport columns\n this.viewportColumnsHash = '';\n // same as viewportColumns, except we always include columns with headerAutoHeight\n this.headerViewportColumns = [];\n // all columns to be rendered in the centre\n this.viewportColumnsCenter = [];\n // same as viewportColumnsCenter, except we always include columns with headerAutoHeight\n this.headerViewportColumnsCenter = [];\n // all columns & groups to be rendered, index by row. used by header rows to get all items\n // to render for that row.\n this.viewportRowLeft = {};\n this.viewportRowRight = {};\n this.viewportRowCenter = {};\n this.autoHeightActiveAtLeastOnce = false;\n this.rowGroupColumns = [];\n this.valueColumns = [];\n this.pivotColumns = [];\n this.ready = false;\n this.changeEventsDispatching = false;\n this.autoGroupsNeedBuilding = false;\n this.forceRecreateAutoGroups = false;\n this.pivotMode = false;\n this.bodyWidth = 0;\n this.leftWidth = 0;\n this.rightWidth = 0;\n this.bodyWidthDirty = true;\n // when we're waiting for cell data types to be inferred, we need to defer column resizing\n this.shouldQueueResizeOperations = false;\n this.resizeOperationQueue = [];\n }\n init() {\n this.suppressColumnVirtualisation = this.gridOptionsService.get('suppressColumnVirtualisation');\n const pivotMode = this.gridOptionsService.get('pivotMode');\n if (this.isPivotSettingAllowed(pivotMode)) {\n this.pivotMode = pivotMode;\n }\n this.addManagedPropertyListeners(['groupDisplayType', 'treeData', 'treeDataDisplayType', 'groupHideOpenParents'], (event) => this.buildAutoGroupColumns(convertSourceType(event.source)));\n this.addManagedPropertyListener('autoGroupColumnDef', (event) => this.onAutoGroupColumnDefChanged(convertSourceType(event.source)));\n this.addManagedPropertyListeners(['defaultColDef', 'columnTypes', 'suppressFieldDotNotation'], event => this.onSharedColDefChanged(convertSourceType(event.source)));\n this.addManagedPropertyListener('pivotMode', event => this.setPivotMode(this.gridOptionsService.get('pivotMode'), convertSourceType(event.source)));\n this.addManagedListener(this.eventService, Events.EVENT_FIRST_DATA_RENDERED, () => this.onFirstDataRendered());\n }\n buildAutoGroupColumns(source) {\n // Possible for update to be called before columns are present in which case there is nothing to do here.\n if (!this.columnDefs) {\n return;\n }\n this.autoGroupsNeedBuilding = true;\n this.forceRecreateAutoGroups = true;\n this.updateGridColumns();\n this.updateDisplayedColumns(source);\n }\n onAutoGroupColumnDefChanged(source) {\n if (this.groupAutoColumns) {\n this.autoGroupColService.updateAutoGroupColumns(this.groupAutoColumns, source);\n }\n }\n onSharedColDefChanged(source) {\n if (!this.gridColumns) {\n return;\n }\n // if we aren't going to force, update the auto cols in place\n if (this.groupAutoColumns) {\n this.autoGroupColService.updateAutoGroupColumns(this.groupAutoColumns, source);\n }\n this.createColumnsFromColumnDefs(true, source);\n }\n setColumnDefs(columnDefs, source) {\n const colsPreviouslyExisted = !!this.columnDefs;\n this.columnDefs = columnDefs;\n this.createColumnsFromColumnDefs(colsPreviouslyExisted, source);\n }\n recreateColumnDefs(source) {\n this.onSharedColDefChanged(source);\n }\n destroyOldColumns(oldTree, newTree) {\n const oldObjectsById = {};\n if (!oldTree) {\n return;\n }\n // add in all old columns to be destroyed\n this.columnUtils.depthFirstOriginalTreeSearch(null, oldTree, child => {\n oldObjectsById[child.getInstanceId()] = child;\n });\n // however we don't destroy anything in the new tree. if destroying the grid, there is no new tree\n if (newTree) {\n this.columnUtils.depthFirstOriginalTreeSearch(null, newTree, child => {\n oldObjectsById[child.getInstanceId()] = null;\n });\n }\n // what's left can be destroyed\n const colsToDestroy = Object.values(oldObjectsById).filter(item => item != null);\n this.destroyBeans(colsToDestroy);\n }\n destroyColumns() {\n this.destroyOldColumns(this.primaryColumnTree);\n this.destroyOldColumns(this.secondaryBalancedTree);\n this.destroyOldColumns(this.groupAutoColsBalancedTree);\n }\n createColumnsFromColumnDefs(colsPreviouslyExisted, source) {\n // only need to dispatch before/after events if updating columns, never if setting columns for first time\n const dispatchEventsFunc = colsPreviouslyExisted ? this.compareColumnStatesAndDispatchEvents(source) : undefined;\n // always invalidate cache on changing columns, as the column id's for the new columns\n // could overlap with the old id's, so the cache would return old values for new columns.\n this.valueCache.expire();\n // NOTE ==================\n // we should be destroying the existing columns and groups if they exist, for example, the original column\n // group adds a listener to the columns, it should be also removing the listeners\n this.autoGroupsNeedBuilding = true;\n const oldPrimaryColumns = this.primaryColumns;\n const oldPrimaryTree = this.primaryColumnTree;\n const balancedTreeResult = this.columnFactory.createColumnTree(this.columnDefs, true, oldPrimaryTree, source);\n this.destroyOldColumns(this.primaryColumnTree, balancedTreeResult.columnTree);\n this.primaryColumnTree = balancedTreeResult.columnTree;\n this.primaryHeaderRowCount = balancedTreeResult.treeDept + 1;\n this.primaryColumns = this.getColumnsFromTree(this.primaryColumnTree);\n this.primaryColumnsMap = {};\n this.primaryColumns.forEach(col => this.primaryColumnsMap[col.getId()] = col);\n this.extractRowGroupColumns(source, oldPrimaryColumns);\n this.extractPivotColumns(source, oldPrimaryColumns);\n this.extractValueColumns(source, oldPrimaryColumns);\n this.ready = true;\n // if we are showing secondary columns, then no need to update grid columns\n // unless the auto column needs rebuilt, as it's the pivot service responsibility to change these\n // if we are no longer pivoting (ie and need to revert back to primary, otherwise\n // we shouldn't be touching the primary).\n const gridColsNotProcessed = this.gridColsArePrimary === undefined;\n const processGridCols = this.gridColsArePrimary || gridColsNotProcessed || this.autoGroupsNeedBuilding;\n if (processGridCols) {\n this.updateGridColumns();\n if (colsPreviouslyExisted && this.gridColsArePrimary && !this.gridOptionsService.get('maintainColumnOrder')) {\n this.orderGridColumnsLikePrimary();\n }\n this.updateDisplayedColumns(source);\n this.checkViewportColumns();\n }\n // this event is not used by AG Grid, but left here for backwards compatibility,\n // in case applications use it\n this.dispatchEverythingChanged(source);\n // Row Models react to all of these events as well as new columns loaded,\n // this flag instructs row model to ignore these events to reduce refreshes.\n this.changeEventsDispatching = true;\n if (dispatchEventsFunc) {\n dispatchEventsFunc();\n }\n this.changeEventsDispatching = false;\n this.dispatchNewColumnsLoaded(source);\n }\n shouldRowModelIgnoreRefresh() {\n return this.changeEventsDispatching;\n }\n dispatchNewColumnsLoaded(source) {\n const newColumnsLoadedEvent = {\n type: Events.EVENT_NEW_COLUMNS_LOADED,\n source\n };\n this.eventService.dispatchEvent(newColumnsLoadedEvent);\n if (source === 'gridInitializing') {\n this.onColumnsReady();\n }\n }\n // this event is legacy, no grid code listens to it. instead the grid listens to New Columns Loaded\n dispatchEverythingChanged(source) {\n const eventEverythingChanged = {\n type: Events.EVENT_COLUMN_EVERYTHING_CHANGED,\n source\n };\n this.eventService.dispatchEvent(eventEverythingChanged);\n }\n orderGridColumnsLikePrimary() {\n const primaryColumns = this.primaryColumns;\n if (!primaryColumns) {\n return;\n }\n const primaryColsOrdered = primaryColumns.filter(col => this.gridColumns.indexOf(col) >= 0);\n const otherCols = this.gridColumns.filter(col => primaryColsOrdered.indexOf(col) < 0);\n this.gridColumns = [...otherCols, ...primaryColsOrdered];\n this.gridColumns = this.placeLockedColumns(this.gridColumns);\n }\n getAllDisplayedAutoHeightCols() {\n return this.displayedAutoHeightCols;\n }\n setViewport() {\n if (this.gridOptionsService.get('enableRtl')) {\n this.viewportLeft = this.bodyWidth - this.scrollPosition - this.scrollWidth;\n this.viewportRight = this.bodyWidth - this.scrollPosition;\n }\n else {\n this.viewportLeft = this.scrollPosition;\n this.viewportRight = this.scrollWidth + this.scrollPosition;\n }\n }\n // used by clipboard service, to know what columns to paste into\n getDisplayedColumnsStartingAt(column) {\n let currentColumn = column;\n const columns = [];\n while (currentColumn != null) {\n columns.push(currentColumn);\n currentColumn = this.getDisplayedColAfter(currentColumn);\n }\n return columns;\n }\n // checks what columns are currently displayed due to column virtualisation. dispatches an event\n // if the list of columns has changed.\n // + setColumnWidth(), setViewportPosition(), setColumnDefs(), sizeColumnsToFit()\n checkViewportColumns(afterScroll = false) {\n // check displayCenterColumnTree exists first, as it won't exist when grid is initialising\n if (this.displayedColumnsCenter == null) {\n return;\n }\n const viewportColumnsChanged = this.extractViewport();\n if (!viewportColumnsChanged) {\n return;\n }\n const event = {\n type: Events.EVENT_VIRTUAL_COLUMNS_CHANGED,\n afterScroll,\n };\n this.eventService.dispatchEvent(event);\n }\n setViewportPosition(scrollWidth, scrollPosition, afterScroll = false) {\n if (scrollWidth !== this.scrollWidth || scrollPosition !== this.scrollPosition || this.bodyWidthDirty) {\n this.scrollWidth = scrollWidth;\n this.scrollPosition = scrollPosition;\n // we need to call setVirtualViewportLeftAndRight() at least once after the body width changes,\n // as the viewport can stay the same, but in RTL, if body width changes, we need to work out the\n // virtual columns again\n this.bodyWidthDirty = true;\n this.setViewport();\n if (this.ready) {\n this.checkViewportColumns(afterScroll);\n }\n }\n }\n isPivotMode() {\n return this.pivotMode;\n }\n isPivotSettingAllowed(pivot) {\n if (pivot && this.gridOptionsService.get('treeData')) {\n console.warn(\"AG Grid: Pivot mode not available in conjunction Tree Data i.e. 'gridOptions.treeData: true'\");\n return false;\n }\n return true;\n }\n setPivotMode(pivotMode, source) {\n if (pivotMode === this.pivotMode || !this.isPivotSettingAllowed(this.pivotMode)) {\n return;\n }\n this.pivotMode = pivotMode;\n if (!this.gridColumns) {\n return;\n }\n // we need to update grid columns to cover the scenario where user has groupDisplayType = 'custom', as\n // this means we don't use auto group column UNLESS we are in pivot mode (it's mandatory in pivot mode),\n // so need to updateGridColumn() to check it autoGroupCol needs to be added / removed\n this.autoGroupsNeedBuilding = true;\n this.updateGridColumns();\n this.updateDisplayedColumns(source);\n const event = {\n type: Events.EVENT_COLUMN_PIVOT_MODE_CHANGED\n };\n this.eventService.dispatchEvent(event);\n }\n getSecondaryPivotColumn(pivotKeys, valueColKey) {\n if (missing(this.secondaryColumns)) {\n return null;\n }\n const valueColumnToFind = this.getPrimaryColumn(valueColKey);\n let foundColumn = null;\n this.secondaryColumns.forEach(column => {\n const thisPivotKeys = column.getColDef().pivotKeys;\n const pivotValueColumn = column.getColDef().pivotValueColumn;\n const pivotKeyMatches = areEqual(thisPivotKeys, pivotKeys);\n const pivotValueMatches = pivotValueColumn === valueColumnToFind;\n if (pivotKeyMatches && pivotValueMatches) {\n foundColumn = column;\n }\n });\n return foundColumn;\n }\n setBeans(loggerFactory) {\n this.logger = loggerFactory.create('columnModel');\n }\n setFirstRightAndLastLeftPinned(source) {\n let lastLeft;\n let firstRight;\n if (this.gridOptionsService.get('enableRtl')) {\n lastLeft = this.displayedColumnsLeft ? this.displayedColumnsLeft[0] : null;\n firstRight = this.displayedColumnsRight ? last(this.displayedColumnsRight) : null;\n }\n else {\n lastLeft = this.displayedColumnsLeft ? last(this.displayedColumnsLeft) : null;\n firstRight = this.displayedColumnsRight ? this.displayedColumnsRight[0] : null;\n }\n this.gridColumns.forEach((column) => {\n column.setLastLeftPinned(column === lastLeft, source);\n column.setFirstRightPinned(column === firstRight, source);\n });\n }\n autoSizeColumns(params) {\n if (this.shouldQueueResizeOperations) {\n this.resizeOperationQueue.push(() => this.autoSizeColumns(params));\n return;\n }\n const { columns, skipHeader, skipHeaderGroups, stopAtGroup, source = 'api' } = params;\n // because of column virtualisation, we can only do this function on columns that are\n // actually rendered, as non-rendered columns (outside the viewport and not rendered\n // due to column virtualisation) are not present. this can result in all rendered columns\n // getting narrowed, which in turn introduces more rendered columns on the RHS which\n // did not get autosized in the original run, leaving the visible grid with columns on\n // the LHS sized, but RHS no. so we keep looping through the visible columns until\n // no more cols are available (rendered) to be resized\n // we autosize after animation frames finish in case any cell renderers need to complete first. this can\n // happen eg if client code is calling api.autoSizeAllColumns() straight after grid is initialised, but grid\n // hasn't fully drawn out all the cells yet (due to cell renderers in animation frames).\n this.animationFrameService.flushAllFrames();\n // keep track of which cols we have resized in here\n const columnsAutosized = [];\n // initialise with anything except 0 so that while loop executes at least once\n let changesThisTimeAround = -1;\n const shouldSkipHeader = skipHeader != null ? skipHeader : this.gridOptionsService.get('skipHeaderOnAutoSize');\n const shouldSkipHeaderGroups = skipHeaderGroups != null ? skipHeaderGroups : shouldSkipHeader;\n while (changesThisTimeAround !== 0) {\n changesThisTimeAround = 0;\n this.actionOnGridColumns(columns, (column) => {\n // if already autosized, skip it\n if (columnsAutosized.indexOf(column) >= 0) {\n return false;\n }\n // get how wide this col should be\n const preferredWidth = this.autoWidthCalculator.getPreferredWidthForColumn(column, shouldSkipHeader);\n // preferredWidth = -1 if this col is not on the screen\n if (preferredWidth > 0) {\n const newWidth = this.normaliseColumnWidth(column, preferredWidth);\n column.setActualWidth(newWidth, source);\n columnsAutosized.push(column);\n changesThisTimeAround++;\n }\n return true;\n }, source);\n }\n if (!shouldSkipHeaderGroups) {\n this.autoSizeColumnGroupsByColumns(columns, source, stopAtGroup);\n }\n this.dispatchColumnResizedEvent(columnsAutosized, true, 'autosizeColumns');\n }\n dispatchColumnResizedEvent(columns, finished, source, flexColumns = null) {\n if (columns && columns.length) {\n const event = {\n type: Events.EVENT_COLUMN_RESIZED,\n columns: columns,\n column: columns.length === 1 ? columns[0] : null,\n flexColumns: flexColumns,\n finished: finished,\n source: source\n };\n this.eventService.dispatchEvent(event);\n }\n }\n dispatchColumnChangedEvent(type, columns, source) {\n const event = {\n type: type,\n columns: columns,\n column: (columns && columns.length == 1) ? columns[0] : null,\n source: source\n };\n this.eventService.dispatchEvent(event);\n }\n dispatchColumnMovedEvent(params) {\n const { movedColumns, source, toIndex, finished } = params;\n const event = {\n type: Events.EVENT_COLUMN_MOVED,\n columns: movedColumns,\n column: movedColumns && movedColumns.length === 1 ? movedColumns[0] : null,\n toIndex,\n finished,\n source\n };\n this.eventService.dispatchEvent(event);\n }\n dispatchColumnPinnedEvent(changedColumns, source) {\n if (!changedColumns.length) {\n return;\n }\n // if just one column, we use this, otherwise we don't include the col\n const column = changedColumns.length === 1 ? changedColumns[0] : null;\n // only include visible if it's common in all columns\n const pinned = this.getCommonValue(changedColumns, col => col.getPinned());\n const event = {\n type: Events.EVENT_COLUMN_PINNED,\n // mistake in typing, 'undefined' should be allowed, as 'null' means 'not pinned'\n pinned: pinned != null ? pinned : null,\n columns: changedColumns,\n column,\n source: source\n };\n this.eventService.dispatchEvent(event);\n }\n dispatchColumnVisibleEvent(changedColumns, source) {\n if (!changedColumns.length) {\n return;\n }\n // if just one column, we use this, otherwise we don't include the col\n const column = changedColumns.length === 1 ? changedColumns[0] : null;\n // only include visible if it's common in all columns\n const visible = this.getCommonValue(changedColumns, col => col.isVisible());\n const event = {\n type: Events.EVENT_COLUMN_VISIBLE,\n visible,\n columns: changedColumns,\n column,\n source: source\n };\n this.eventService.dispatchEvent(event);\n }\n autoSizeColumn(key, source, skipHeader) {\n if (key) {\n this.autoSizeColumns({ columns: [key], skipHeader, skipHeaderGroups: true, source });\n }\n }\n autoSizeColumnGroupsByColumns(keys, source, stopAtGroup) {\n const columnGroups = new Set();\n const columns = this.getGridColumns(keys);\n columns.forEach(col => {\n let parent = col.getParent();\n while (parent && parent != stopAtGroup) {\n if (!parent.isPadding()) {\n columnGroups.add(parent);\n }\n parent = parent.getParent();\n }\n });\n let headerGroupCtrl;\n const resizedColumns = [];\n for (const columnGroup of columnGroups) {\n for (const headerContainerCtrl of this.ctrlsService.getHeaderRowContainerCtrls()) {\n headerGroupCtrl = headerContainerCtrl.getHeaderCtrlForColumn(columnGroup);\n if (headerGroupCtrl) {\n break;\n }\n }\n if (headerGroupCtrl) {\n headerGroupCtrl.resizeLeafColumnsToFit(source);\n }\n }\n return resizedColumns;\n }\n autoSizeAllColumns(source, skipHeader) {\n if (this.shouldQueueResizeOperations) {\n this.resizeOperationQueue.push(() => this.autoSizeAllColumns(source, skipHeader));\n return;\n }\n const allDisplayedColumns = this.getAllDisplayedColumns();\n this.autoSizeColumns({ columns: allDisplayedColumns, skipHeader, source });\n }\n // Possible candidate for reuse (alot of recursive traversal duplication)\n getColumnsFromTree(rootColumns) {\n const result = [];\n const recursiveFindColumns = (childColumns) => {\n for (let i = 0; i < childColumns.length; i++) {\n const child = childColumns[i];\n if (child instanceof Column) {\n result.push(child);\n }\n else if (child instanceof ProvidedColumnGroup) {\n recursiveFindColumns(child.getChildren());\n }\n }\n };\n recursiveFindColumns(rootColumns);\n return result;\n }\n getAllDisplayedTrees() {\n if (this.displayedTreeLeft && this.displayedTreeRight && this.displayedTreeCentre) {\n return this.displayedTreeLeft\n .concat(this.displayedTreeCentre)\n .concat(this.displayedTreeRight);\n }\n return null;\n }\n // + columnSelectPanel\n getPrimaryColumnTree() {\n return this.primaryColumnTree;\n }\n // + gridPanel -> for resizing the body and setting top margin\n getHeaderRowCount() {\n return this.gridHeaderRowCount;\n }\n // + headerRenderer -> setting pinned body width\n getDisplayedTreeLeft() {\n return this.displayedTreeLeft;\n }\n // + headerRenderer -> setting pinned body width\n getDisplayedTreeRight() {\n return this.displayedTreeRight;\n }\n // + headerRenderer -> setting pinned body width\n getDisplayedTreeCentre() {\n return this.displayedTreeCentre;\n }\n // gridPanel -> ensureColumnVisible\n isColumnDisplayed(column) {\n return this.getAllDisplayedColumns().indexOf(column) >= 0;\n }\n // + csvCreator\n getAllDisplayedColumns() {\n return this.displayedColumns;\n }\n getViewportColumns() {\n return this.viewportColumns;\n }\n getDisplayedLeftColumnsForRow(rowNode) {\n if (!this.colSpanActive) {\n return this.displayedColumnsLeft;\n }\n return this.getDisplayedColumnsForRow(rowNode, this.displayedColumnsLeft);\n }\n getDisplayedRightColumnsForRow(rowNode) {\n if (!this.colSpanActive) {\n return this.displayedColumnsRight;\n }\n return this.getDisplayedColumnsForRow(rowNode, this.displayedColumnsRight);\n }\n isColSpanActive() {\n return this.colSpanActive;\n }\n getDisplayedColumnsForRow(rowNode, displayedColumns, filterCallback, emptySpaceBeforeColumn) {\n const result = [];\n let lastConsideredCol = null;\n for (let i = 0; i < displayedColumns.length; i++) {\n const col = displayedColumns[i];\n const maxAllowedColSpan = displayedColumns.length - i;\n const colSpan = Math.min(col.getColSpan(rowNode), maxAllowedColSpan);\n const columnsToCheckFilter = [col];\n if (colSpan > 1) {\n const colsToRemove = colSpan - 1;\n for (let j = 1; j <= colsToRemove; j++) {\n columnsToCheckFilter.push(displayedColumns[i + j]);\n }\n i += colsToRemove;\n }\n // see which cols we should take out for column virtualisation\n let filterPasses;\n if (filterCallback) {\n // if user provided a callback, means some columns may not be in the viewport.\n // the user will NOT provide a callback if we are talking about pinned areas,\n // as pinned areas have no horizontal scroll and do not virtualise the columns.\n // if lots of columns, that means column spanning, and we set filterPasses = true\n // if one or more of the columns spanned pass the filter.\n filterPasses = false;\n columnsToCheckFilter.forEach(colForFilter => {\n if (filterCallback(colForFilter)) {\n filterPasses = true;\n }\n });\n }\n else {\n filterPasses = true;\n }\n if (filterPasses) {\n if (result.length === 0 && lastConsideredCol) {\n const gapBeforeColumn = emptySpaceBeforeColumn ? emptySpaceBeforeColumn(col) : false;\n if (gapBeforeColumn) {\n result.push(lastConsideredCol);\n }\n }\n result.push(col);\n }\n lastConsideredCol = col;\n }\n return result;\n }\n // + rowRenderer\n // if we are not column spanning, this just returns back the virtual centre columns,\n // however if we are column spanning, then different rows can have different virtual\n // columns, so we have to work out the list for each individual row.\n getViewportCenterColumnsForRow(rowNode) {\n if (!this.colSpanActive) {\n return this.viewportColumnsCenter;\n }\n const emptySpaceBeforeColumn = (col) => {\n const left = col.getLeft();\n return exists(left) && left > this.viewportLeft;\n };\n // if doing column virtualisation, then we filter based on the viewport.\n const filterCallback = this.isColumnVirtualisationSuppressed() ? null : this.isColumnInRowViewport.bind(this);\n return this.getDisplayedColumnsForRow(rowNode, this.displayedColumnsCenter, filterCallback, emptySpaceBeforeColumn);\n }\n isColumnAtEdge(col, edge) {\n const allColumns = this.getAllDisplayedColumns();\n if (!allColumns.length) {\n return false;\n }\n const isFirst = edge === 'first';\n let columnToCompare;\n if (col instanceof ColumnGroup) {\n const leafColumns = col.getDisplayedLeafColumns();\n if (!leafColumns.length) {\n return false;\n }\n columnToCompare = isFirst ? leafColumns[0] : last(leafColumns);\n }\n else {\n columnToCompare = col;\n }\n return (isFirst ? allColumns[0] : last(allColumns)) === columnToCompare;\n }\n getAriaColumnIndex(col) {\n let targetColumn;\n if (col instanceof ColumnGroup) {\n targetColumn = col.getLeafColumns()[0];\n }\n else {\n targetColumn = col;\n }\n return this.ariaOrderColumns.indexOf(targetColumn) + 1;\n }\n isColumnInHeaderViewport(col) {\n // for headers, we never filter out autoHeaderHeight columns, if calculating\n if (col.isAutoHeaderHeight()) {\n return true;\n }\n return this.isColumnInRowViewport(col);\n }\n isColumnInRowViewport(col) {\n // we never filter out autoHeight columns, as we need them in the DOM for calculating Auto Height\n if (col.isAutoHeight()) {\n return true;\n }\n const columnLeft = col.getLeft() || 0;\n const columnRight = columnLeft + col.getActualWidth();\n // adding 200 for buffer size, so some cols off viewport are rendered.\n // this helps horizontal scrolling so user rarely sees white space (unless\n // they scroll horizontally fast). however we are conservative, as the more\n // buffer the slower the vertical redraw speed\n const leftBounds = this.viewportLeft - 200;\n const rightBounds = this.viewportRight + 200;\n const columnToMuchLeft = columnLeft < leftBounds && columnRight < leftBounds;\n const columnToMuchRight = columnLeft > rightBounds && columnRight > rightBounds;\n return !columnToMuchLeft && !columnToMuchRight;\n }\n // used by:\n // + angularGrid -> setting pinned body width\n // note: this should be cached\n getDisplayedColumnsLeftWidth() {\n return this.getWidthOfColsInList(this.displayedColumnsLeft);\n }\n // note: this should be cached\n getDisplayedColumnsRightWidth() {\n return this.getWidthOfColsInList(this.displayedColumnsRight);\n }\n updatePrimaryColumnList(keys, masterList, actionIsAdd, columnCallback, eventType, source) {\n if (!keys || missingOrEmpty(keys)) {\n return;\n }\n let atLeastOne = false;\n keys.forEach(key => {\n if (!key) {\n return;\n }\n const columnToAdd = this.getPrimaryColumn(key);\n if (!columnToAdd) {\n return;\n }\n if (actionIsAdd) {\n if (masterList.indexOf(columnToAdd) >= 0) {\n return;\n }\n masterList.push(columnToAdd);\n }\n else {\n if (masterList.indexOf(columnToAdd) < 0) {\n return;\n }\n removeFromArray(masterList, columnToAdd);\n }\n columnCallback(columnToAdd);\n atLeastOne = true;\n });\n if (!atLeastOne) {\n return;\n }\n if (this.autoGroupsNeedBuilding) {\n this.updateGridColumns();\n }\n this.updateDisplayedColumns(source);\n const event = {\n type: eventType,\n columns: masterList,\n column: masterList.length === 1 ? masterList[0] : null,\n source: source\n };\n this.eventService.dispatchEvent(event);\n }\n setRowGroupColumns(colKeys, source) {\n this.autoGroupsNeedBuilding = true;\n this.setPrimaryColumnList(colKeys, this.rowGroupColumns, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, true, this.setRowGroupActive.bind(this), source);\n }\n setRowGroupActive(active, column, source) {\n if (active === column.isRowGroupActive()) {\n return;\n }\n column.setRowGroupActive(active, source);\n if (active && !this.gridOptionsService.get('suppressRowGroupHidesColumns')) {\n this.setColumnsVisible([column], false, source);\n }\n if (!active && !this.gridOptionsService.get('suppressMakeColumnVisibleAfterUnGroup')) {\n this.setColumnsVisible([column], true, source);\n }\n }\n addRowGroupColumns(keys, source) {\n this.autoGroupsNeedBuilding = true;\n this.updatePrimaryColumnList(keys, this.rowGroupColumns, true, this.setRowGroupActive.bind(this, true), Events.EVENT_COLUMN_ROW_GROUP_CHANGED, source);\n }\n removeRowGroupColumns(keys, source) {\n this.autoGroupsNeedBuilding = true;\n this.updatePrimaryColumnList(keys, this.rowGroupColumns, false, this.setRowGroupActive.bind(this, false), Events.EVENT_COLUMN_ROW_GROUP_CHANGED, source);\n }\n addPivotColumns(keys, source) {\n this.updatePrimaryColumnList(keys, this.pivotColumns, true, column => column.setPivotActive(true, source), Events.EVENT_COLUMN_PIVOT_CHANGED, source);\n }\n setPivotColumns(colKeys, source) {\n this.setPrimaryColumnList(colKeys, this.pivotColumns, Events.EVENT_COLUMN_PIVOT_CHANGED, true, (added, column) => {\n column.setPivotActive(added, source);\n }, source);\n }\n removePivotColumns(keys, source) {\n this.updatePrimaryColumnList(keys, this.pivotColumns, false, column => column.setPivotActive(false, source), Events.EVENT_COLUMN_PIVOT_CHANGED, source);\n }\n setPrimaryColumnList(colKeys, masterList, eventName, detectOrderChange, columnCallback, source) {\n if (!this.gridColumns) {\n return;\n }\n const changes = new Map();\n // store all original cols and their index.\n masterList.forEach((col, idx) => changes.set(col, idx));\n masterList.length = 0;\n if (exists(colKeys)) {\n colKeys.forEach(key => {\n const column = this.getPrimaryColumn(key);\n if (column) {\n masterList.push(column);\n }\n });\n }\n masterList.forEach((col, idx) => {\n const oldIndex = changes.get(col);\n // if the column was not in the list, we add it as it's a change\n // idx is irrelevant now.\n if (oldIndex === undefined) {\n changes.set(col, 0);\n return;\n }\n if (detectOrderChange && oldIndex !== idx) {\n // if we're detecting order changes, and the indexes differ, we retain this as it's changed\n return;\n }\n // otherwise remove this col, as it's unchanged.\n changes.delete(col);\n });\n (this.primaryColumns || []).forEach(column => {\n const added = masterList.indexOf(column) >= 0;\n columnCallback(added, column);\n });\n if (this.autoGroupsNeedBuilding) {\n this.updateGridColumns();\n }\n this.updateDisplayedColumns(source);\n this.dispatchColumnChangedEvent(eventName, [...changes.keys()], source);\n }\n setValueColumns(colKeys, source) {\n this.setPrimaryColumnList(colKeys, this.valueColumns, Events.EVENT_COLUMN_VALUE_CHANGED, false, this.setValueActive.bind(this), source);\n }\n setValueActive(active, column, source) {\n if (active === column.isValueActive()) {\n return;\n }\n column.setValueActive(active, source);\n if (active && !column.getAggFunc()) {\n const initialAggFunc = this.aggFuncService.getDefaultAggFunc(column);\n column.setAggFunc(initialAggFunc);\n }\n }\n addValueColumns(keys, source) {\n this.updatePrimaryColumnList(keys, this.valueColumns, true, this.setValueActive.bind(this, true), Events.EVENT_COLUMN_VALUE_CHANGED, source);\n }\n removeValueColumns(keys, source) {\n this.updatePrimaryColumnList(keys, this.valueColumns, false, this.setValueActive.bind(this, false), Events.EVENT_COLUMN_VALUE_CHANGED, source);\n }\n // returns the width we can set to this col, taking into consideration min and max widths\n normaliseColumnWidth(column, newWidth) {\n const minWidth = column.getMinWidth();\n if (exists(minWidth) && newWidth < minWidth) {\n newWidth = minWidth;\n }\n const maxWidth = column.getMaxWidth();\n if (exists(maxWidth) && column.isGreaterThanMax(newWidth)) {\n newWidth = maxWidth;\n }\n return newWidth;\n }\n getPrimaryOrGridColumn(key) {\n const column = this.getPrimaryColumn(key);\n return column || this.getGridColumn(key);\n }\n setColumnWidths(columnWidths, shiftKey, // @takeFromAdjacent - if user has 'shift' pressed, then pixels are taken from adjacent column\n finished, // @finished - ends up in the event, tells the user if more events are to come\n source) {\n const sets = [];\n columnWidths.forEach(columnWidth => {\n const col = this.getPrimaryOrGridColumn(columnWidth.key);\n if (!col) {\n return;\n }\n sets.push({\n width: columnWidth.newWidth,\n ratios: [1],\n columns: [col]\n });\n // if user wants to do shift resize by default, then we invert the shift operation\n const defaultIsShift = this.gridOptionsService.get('colResizeDefault') === 'shift';\n if (defaultIsShift) {\n shiftKey = !shiftKey;\n }\n if (shiftKey) {\n const otherCol = this.getDisplayedColAfter(col);\n if (!otherCol) {\n return;\n }\n const widthDiff = col.getActualWidth() - columnWidth.newWidth;\n const otherColWidth = otherCol.getActualWidth() + widthDiff;\n sets.push({\n width: otherColWidth,\n ratios: [1],\n columns: [otherCol]\n });\n }\n });\n if (sets.length === 0) {\n return;\n }\n this.resizeColumnSets({\n resizeSets: sets,\n finished,\n source\n });\n }\n checkMinAndMaxWidthsForSet(columnResizeSet) {\n const { columns, width } = columnResizeSet;\n // every col has a min width, so sum them all up and see if we have enough room\n // for all the min widths\n let minWidthAccumulated = 0;\n let maxWidthAccumulated = 0;\n let maxWidthActive = true;\n columns.forEach(col => {\n const minWidth = col.getMinWidth();\n minWidthAccumulated += minWidth || 0;\n const maxWidth = col.getMaxWidth();\n if (exists(maxWidth) && maxWidth > 0) {\n maxWidthAccumulated += maxWidth;\n }\n else {\n // if at least one columns has no max width, it means the group of columns\n // then has no max width, as at least one column can take as much width as possible\n maxWidthActive = false;\n }\n });\n const minWidthPasses = width >= minWidthAccumulated;\n const maxWidthPasses = !maxWidthActive || (width <= maxWidthAccumulated);\n return minWidthPasses && maxWidthPasses;\n }\n // method takes sets of columns and resizes them. either all sets will be resized, or nothing\n // be resized. this is used for example when user tries to resize a group and holds shift key,\n // then both the current group (grows), and the adjacent group (shrinks), will get resized,\n // so that's two sets for this method.\n resizeColumnSets(params) {\n const { resizeSets, finished, source } = params;\n const passMinMaxCheck = !resizeSets || resizeSets.every(columnResizeSet => this.checkMinAndMaxWidthsForSet(columnResizeSet));\n if (!passMinMaxCheck) {\n // even though we are not going to resize beyond min/max size, we still need to dispatch event when finished\n if (finished) {\n const columns = resizeSets && resizeSets.length > 0 ? resizeSets[0].columns : null;\n this.dispatchColumnResizedEvent(columns, finished, source);\n }\n return; // don't resize!\n }\n const changedCols = [];\n const allResizedCols = [];\n resizeSets.forEach(set => {\n const { width, columns, ratios } = set;\n // keep track of pixels used, and last column gets the remaining,\n // to cater for rounding errors, and min width adjustments\n const newWidths = {};\n const finishedCols = {};\n columns.forEach(col => allResizedCols.push(col));\n // the loop below goes through each col. if a col exceeds it's min/max width,\n // it then gets set to its min/max width and the column is removed marked as 'finished'\n // and the calculation is done again leaving this column out. take for example columns\n // {A, width: 50, maxWidth: 100}\n // {B, width: 50}\n // {C, width: 50}\n // and then the set is set to width 600 - on the first pass the grid tries to set each column\n // to 200. it checks A and sees 200 > 100 and so sets the width to 100. col A is then marked\n // as 'finished' and the calculation is done again with the remaining cols B and C, which end up\n // splitting the remaining 500 pixels.\n let finishedColsGrew = true;\n let loopCount = 0;\n while (finishedColsGrew) {\n loopCount++;\n if (loopCount > 1000) {\n // this should never happen, but in the future, someone might introduce a bug here,\n // so we stop the browser from hanging and report bug properly\n console.error('AG Grid: infinite loop in resizeColumnSets');\n break;\n }\n finishedColsGrew = false;\n const subsetCols = [];\n let subsetRatioTotal = 0;\n let pixelsToDistribute = width;\n columns.forEach((col, index) => {\n const thisColFinished = finishedCols[col.getId()];\n if (thisColFinished) {\n pixelsToDistribute -= newWidths[col.getId()];\n }\n else {\n subsetCols.push(col);\n const ratioThisCol = ratios[index];\n subsetRatioTotal += ratioThisCol;\n }\n });\n // because we are not using all of the ratios (cols can be missing),\n // we scale the ratio. if all columns are included, then subsetRatioTotal=1,\n // and so the ratioScale will be 1.\n const ratioScale = 1 / subsetRatioTotal;\n subsetCols.forEach((col, index) => {\n const lastCol = index === (subsetCols.length - 1);\n let colNewWidth;\n if (lastCol) {\n colNewWidth = pixelsToDistribute;\n }\n else {\n colNewWidth = Math.round(ratios[index] * width * ratioScale);\n pixelsToDistribute -= colNewWidth;\n }\n const minWidth = col.getMinWidth();\n const maxWidth = col.getMaxWidth();\n if (exists(minWidth) && colNewWidth < minWidth) {\n colNewWidth = minWidth;\n finishedCols[col.getId()] = true;\n finishedColsGrew = true;\n }\n else if (exists(maxWidth) && maxWidth > 0 && colNewWidth > maxWidth) {\n colNewWidth = maxWidth;\n finishedCols[col.getId()] = true;\n finishedColsGrew = true;\n }\n newWidths[col.getId()] = colNewWidth;\n });\n }\n columns.forEach(col => {\n const newWidth = newWidths[col.getId()];\n const actualWidth = col.getActualWidth();\n if (actualWidth !== newWidth) {\n col.setActualWidth(newWidth, source);\n changedCols.push(col);\n }\n });\n });\n // if no cols changed, then no need to update more or send event.\n const atLeastOneColChanged = changedCols.length > 0;\n let flexedCols = [];\n if (atLeastOneColChanged) {\n flexedCols = this.refreshFlexedColumns({ resizingCols: allResizedCols, skipSetLeft: true });\n this.setLeftValues(source);\n this.updateBodyWidths();\n this.checkViewportColumns();\n }\n // check for change first, to avoid unnecessary firing of events\n // however we always dispatch 'finished' events. this is important\n // when groups are resized, as if the group is changing slowly,\n // eg 1 pixel at a time, then each change will dispatch change events\n // in all the columns in the group, but only one with get the pixel.\n const colsForEvent = allResizedCols.concat(flexedCols);\n if (atLeastOneColChanged || finished) {\n this.dispatchColumnResizedEvent(colsForEvent, finished, source, flexedCols);\n }\n }\n setColumnAggFunc(key, aggFunc, source) {\n if (!key) {\n return;\n }\n const column = this.getPrimaryColumn(key);\n if (!column) {\n return;\n }\n column.setAggFunc(aggFunc);\n this.dispatchColumnChangedEvent(Events.EVENT_COLUMN_VALUE_CHANGED, [column], source);\n }\n moveRowGroupColumn(fromIndex, toIndex, source) {\n if (this.isRowGroupEmpty()) {\n return;\n }\n const column = this.rowGroupColumns[fromIndex];\n const impactedColumns = this.rowGroupColumns.slice(fromIndex, toIndex);\n this.rowGroupColumns.splice(fromIndex, 1);\n this.rowGroupColumns.splice(toIndex, 0, column);\n const event = {\n type: Events.EVENT_COLUMN_ROW_GROUP_CHANGED,\n columns: impactedColumns,\n column: impactedColumns.length === 1 ? impactedColumns[0] : null,\n source: source\n };\n this.eventService.dispatchEvent(event);\n }\n moveColumns(columnsToMoveKeys, toIndex, source, finished = true) {\n if (!this.gridColumns) {\n return;\n }\n this.columnAnimationService.start();\n if (toIndex > this.gridColumns.length - columnsToMoveKeys.length) {\n console.warn('AG Grid: tried to insert columns in invalid location, toIndex = ' + toIndex);\n console.warn('AG Grid: remember that you should not count the moving columns when calculating the new index');\n return;\n }\n // we want to pull all the columns out first and put them into an ordered list\n const movedColumns = this.getGridColumns(columnsToMoveKeys);\n const failedRules = !this.doesMovePassRules(movedColumns, toIndex);\n if (failedRules) {\n return;\n }\n moveInArray(this.gridColumns, movedColumns, toIndex);\n this.updateDisplayedColumns(source);\n this.dispatchColumnMovedEvent({ movedColumns, source, toIndex, finished });\n this.columnAnimationService.finish();\n }\n doesMovePassRules(columnsToMove, toIndex) {\n // make a copy of what the grid columns would look like after the move\n const proposedColumnOrder = this.getProposedColumnOrder(columnsToMove, toIndex);\n return this.doesOrderPassRules(proposedColumnOrder);\n }\n doesOrderPassRules(gridOrder) {\n if (!this.doesMovePassMarryChildren(gridOrder)) {\n return false;\n }\n if (!this.doesMovePassLockedPositions(gridOrder)) {\n return false;\n }\n return true;\n }\n getProposedColumnOrder(columnsToMove, toIndex) {\n const proposedColumnOrder = this.gridColumns.slice();\n moveInArray(proposedColumnOrder, columnsToMove, toIndex);\n return proposedColumnOrder;\n }\n // returns the provided cols sorted in same order as they appear in grid columns. eg if grid columns\n // contains [a,b,c,d,e] and col passed is [e,a] then the passed cols are sorted into [a,e]\n sortColumnsLikeGridColumns(cols) {\n if (!cols || cols.length <= 1) {\n return;\n }\n const notAllColsInGridColumns = cols.filter(c => this.gridColumns.indexOf(c) < 0).length > 0;\n if (notAllColsInGridColumns) {\n return;\n }\n cols.sort((a, b) => {\n const indexA = this.gridColumns.indexOf(a);\n const indexB = this.gridColumns.indexOf(b);\n return indexA - indexB;\n });\n }\n doesMovePassLockedPositions(proposedColumnOrder) {\n // Placement is a number indicating 'left' 'center' or 'right' as 0 1 2\n let lastPlacement = 0;\n let rulePassed = true;\n const lockPositionToPlacement = (position) => {\n if (!position) { // false or undefined\n return 1;\n }\n if (position === true) {\n return 0;\n }\n return position === 'left' ? 0 : 2; // Otherwise 'right'\n };\n proposedColumnOrder.forEach(col => {\n const placement = lockPositionToPlacement(col.getColDef().lockPosition);\n if (placement < lastPlacement) { // If placement goes down, we're not in the correct order\n rulePassed = false;\n }\n lastPlacement = placement;\n });\n return rulePassed;\n }\n doesMovePassMarryChildren(allColumnsCopy) {\n let rulePassed = true;\n this.columnUtils.depthFirstOriginalTreeSearch(null, this.gridBalancedTree, child => {\n if (!(child instanceof ProvidedColumnGroup)) {\n return;\n }\n const columnGroup = child;\n const colGroupDef = columnGroup.getColGroupDef();\n const marryChildren = colGroupDef && colGroupDef.marryChildren;\n if (!marryChildren) {\n return;\n }\n const newIndexes = [];\n columnGroup.getLeafColumns().forEach(col => {\n const newColIndex = allColumnsCopy.indexOf(col);\n newIndexes.push(newColIndex);\n });\n const maxIndex = Math.max.apply(Math, newIndexes);\n const minIndex = Math.min.apply(Math, newIndexes);\n // spread is how far the first column in this group is away from the last column\n const spread = maxIndex - minIndex;\n const maxSpread = columnGroup.getLeafColumns().length - 1;\n // if the columns\n if (spread > maxSpread) {\n rulePassed = false;\n }\n // console.log(`maxIndex = ${maxIndex}, minIndex = ${minIndex}, spread = ${spread}, maxSpread = ${maxSpread}, fail = ${spread > (count-1)}`)\n // console.log(allColumnsCopy.map( col => col.getColDef().field).join(','));\n });\n return rulePassed;\n }\n moveColumnByIndex(fromIndex, toIndex, source) {\n if (!this.gridColumns) {\n return;\n }\n const column = this.gridColumns[fromIndex];\n this.moveColumns([column], toIndex, source);\n }\n getColumnDefs() {\n if (!this.primaryColumns) {\n return;\n }\n const cols = this.primaryColumns.slice();\n if (this.gridColsArePrimary) {\n cols.sort((a, b) => this.gridColumns.indexOf(a) - this.gridColumns.indexOf(b));\n }\n else if (this.lastPrimaryOrder) {\n cols.sort((a, b) => this.lastPrimaryOrder.indexOf(a) - this.lastPrimaryOrder.indexOf(b));\n }\n return this.columnDefFactory.buildColumnDefs(cols, this.rowGroupColumns, this.pivotColumns);\n }\n // used by:\n // + angularGrid -> for setting body width\n // + rowController -> setting main row widths (when inserting and resizing)\n // need to cache this\n getBodyContainerWidth() {\n return this.bodyWidth;\n }\n getContainerWidth(pinned) {\n switch (pinned) {\n case 'left':\n return this.leftWidth;\n case 'right':\n return this.rightWidth;\n default:\n return this.bodyWidth;\n }\n }\n // after setColumnWidth or updateGroupsAndDisplayedColumns\n updateBodyWidths() {\n const newBodyWidth = this.getWidthOfColsInList(this.displayedColumnsCenter);\n const newLeftWidth = this.getWidthOfColsInList(this.displayedColumnsLeft);\n const newRightWidth = this.getWidthOfColsInList(this.displayedColumnsRight);\n // this is used by virtual col calculation, for RTL only, as a change to body width can impact displayed\n // columns, due to RTL inverting the y coordinates\n this.bodyWidthDirty = this.bodyWidth !== newBodyWidth;\n const atLeastOneChanged = this.bodyWidth !== newBodyWidth || this.leftWidth !== newLeftWidth || this.rightWidth !== newRightWidth;\n if (atLeastOneChanged) {\n this.bodyWidth = newBodyWidth;\n this.leftWidth = newLeftWidth;\n this.rightWidth = newRightWidth;\n // this event is fired to allow the grid viewport to resize before the\n // scrollbar tries to update its visibility.\n const evt = {\n type: Events.EVENT_COLUMN_CONTAINER_WIDTH_CHANGED,\n };\n this.eventService.dispatchEvent(evt);\n // when this fires, it is picked up by the gridPanel, which ends up in\n // gridPanel calling setWidthAndScrollPosition(), which in turn calls setViewportPosition()\n const event = {\n type: Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED,\n };\n this.eventService.dispatchEvent(event);\n }\n }\n // + rowController\n getValueColumns() {\n return this.valueColumns ? this.valueColumns : [];\n }\n // + rowController\n getPivotColumns() {\n return this.pivotColumns ? this.pivotColumns : [];\n }\n // + clientSideRowModel\n isPivotActive() {\n return this.pivotColumns && this.pivotColumns.length > 0 && this.pivotMode;\n }\n // + toolPanel\n getRowGroupColumns() {\n return this.rowGroupColumns ? this.rowGroupColumns : [];\n }\n // + rowController -> while inserting rows\n getDisplayedCenterColumns() {\n return this.displayedColumnsCenter;\n }\n // + rowController -> while inserting rows\n getDisplayedLeftColumns() {\n return this.displayedColumnsLeft;\n }\n getDisplayedRightColumns() {\n return this.displayedColumnsRight;\n }\n getDisplayedColumns(type) {\n switch (type) {\n case 'left':\n return this.getDisplayedLeftColumns();\n case 'right':\n return this.getDisplayedRightColumns();\n default:\n return this.getDisplayedCenterColumns();\n }\n }\n // used by:\n // + clientSideRowController -> sorting, building quick filter text\n // + headerRenderer -> sorting (clearing icon)\n getAllPrimaryColumns() {\n return this.primaryColumns ? this.primaryColumns : null;\n }\n getSecondaryColumns() {\n return this.secondaryColumns ? this.secondaryColumns : null;\n }\n getAllColumnsForQuickFilter() {\n return this.columnsForQuickFilter;\n }\n // + moveColumnController\n getAllGridColumns() {\n var _a;\n return (_a = this.gridColumns) !== null && _a !== void 0 ? _a : [];\n }\n isEmpty() {\n return missingOrEmpty(this.gridColumns);\n }\n isRowGroupEmpty() {\n return missingOrEmpty(this.rowGroupColumns);\n }\n setColumnsVisible(keys, visible = false, source) {\n this.applyColumnState({\n state: keys.map(key => ({\n colId: typeof key === 'string' ? key : key.getColId(),\n hide: !visible,\n })),\n }, source);\n }\n setColumnsPinned(keys, pinned, source) {\n if (!this.gridColumns) {\n return;\n }\n if (this.gridOptionsService.isDomLayout('print')) {\n console.warn(`AG Grid: Changing the column pinning status is not allowed with domLayout='print'`);\n return;\n }\n this.columnAnimationService.start();\n let actualPinned;\n if (pinned === true || pinned === 'left') {\n actualPinned = 'left';\n }\n else if (pinned === 'right') {\n actualPinned = 'right';\n }\n else {\n actualPinned = null;\n }\n this.actionOnGridColumns(keys, (col) => {\n if (col.getPinned() !== actualPinned) {\n col.setPinned(actualPinned);\n return true;\n }\n return false;\n }, source, () => {\n const event = {\n type: Events.EVENT_COLUMN_PINNED,\n pinned: actualPinned,\n column: null,\n columns: null,\n source: source\n };\n return event;\n });\n this.columnAnimationService.finish();\n }\n // does an action on a set of columns. provides common functionality for looking up the\n // columns based on key, getting a list of effected columns, and then updated the event\n // with either one column (if it was just one col) or a list of columns\n // used by: autoResize, setVisible, setPinned\n actionOnGridColumns(// the column keys this action will be on\n keys, \n // the action to do - if this returns false, the column was skipped\n // and won't be included in the event\n action, \n // should return back a column event of the right type\n source, createEvent) {\n if (missingOrEmpty(keys)) {\n return;\n }\n const updatedColumns = [];\n keys.forEach(key => {\n if (!key) {\n return;\n }\n const column = this.getGridColumn(key);\n if (!column) {\n return;\n }\n // need to check for false with type (ie !== instead of !=)\n // as not returning anything (undefined) would also be false\n const resultOfAction = action(column);\n if (resultOfAction !== false) {\n updatedColumns.push(column);\n }\n });\n if (!updatedColumns.length) {\n return;\n }\n this.updateDisplayedColumns(source);\n if (exists(createEvent) && createEvent) {\n const event = createEvent();\n event.columns = updatedColumns;\n event.column = updatedColumns.length === 1 ? updatedColumns[0] : null;\n this.eventService.dispatchEvent(event);\n }\n }\n getDisplayedColBefore(col) {\n const allDisplayedColumns = this.getAllDisplayedColumns();\n const oldIndex = allDisplayedColumns.indexOf(col);\n if (oldIndex > 0) {\n return allDisplayedColumns[oldIndex - 1];\n }\n return null;\n }\n // used by:\n // + rowRenderer -> for navigation\n getDisplayedColAfter(col) {\n const allDisplayedColumns = this.getAllDisplayedColumns();\n const oldIndex = allDisplayedColumns.indexOf(col);\n if (oldIndex < (allDisplayedColumns.length - 1)) {\n return allDisplayedColumns[oldIndex + 1];\n }\n return null;\n }\n getDisplayedGroupAfter(columnGroup) {\n return this.getDisplayedGroupAtDirection(columnGroup, 'After');\n }\n getDisplayedGroupBefore(columnGroup) {\n return this.getDisplayedGroupAtDirection(columnGroup, 'Before');\n }\n getDisplayedGroupAtDirection(columnGroup, direction) {\n // pick the last displayed column in this group\n const requiredLevel = columnGroup.getProvidedColumnGroup().getLevel() + columnGroup.getPaddingLevel();\n const colGroupLeafColumns = columnGroup.getDisplayedLeafColumns();\n const col = direction === 'After' ? last(colGroupLeafColumns) : colGroupLeafColumns[0];\n const getDisplayColMethod = `getDisplayedCol${direction}`;\n while (true) {\n // keep moving to the next col, until we get to another group\n const column = this[getDisplayColMethod](col);\n if (!column) {\n return null;\n }\n const groupPointer = this.getColumnGroupAtLevel(column, requiredLevel);\n if (groupPointer !== columnGroup) {\n return groupPointer;\n }\n }\n }\n getColumnGroupAtLevel(column, level) {\n // get group at same level as the one we are looking for\n let groupPointer = column.getParent();\n let originalGroupLevel;\n let groupPointerLevel;\n while (true) {\n const groupPointerProvidedColumnGroup = groupPointer.getProvidedColumnGroup();\n originalGroupLevel = groupPointerProvidedColumnGroup.getLevel();\n groupPointerLevel = groupPointer.getPaddingLevel();\n if (originalGroupLevel + groupPointerLevel <= level) {\n break;\n }\n groupPointer = groupPointer.getParent();\n }\n return groupPointer;\n }\n isPinningLeft() {\n return this.displayedColumnsLeft.length > 0;\n }\n isPinningRight() {\n return this.displayedColumnsRight.length > 0;\n }\n getPrimaryAndSecondaryAndAutoColumns() {\n return [].concat(...[\n this.primaryColumns || [],\n this.groupAutoColumns || [],\n this.secondaryColumns || [],\n ]);\n }\n createStateItemFromColumn(column) {\n const rowGroupIndex = column.isRowGroupActive() ? this.rowGroupColumns.indexOf(column) : null;\n const pivotIndex = column.isPivotActive() ? this.pivotColumns.indexOf(column) : null;\n const aggFunc = column.isValueActive() ? column.getAggFunc() : null;\n const sort = column.getSort() != null ? column.getSort() : null;\n const sortIndex = column.getSortIndex() != null ? column.getSortIndex() : null;\n const flex = column.getFlex() != null && column.getFlex() > 0 ? column.getFlex() : null;\n const res = {\n colId: column.getColId(),\n width: column.getActualWidth(),\n hide: !column.isVisible(),\n pinned: column.getPinned(),\n sort,\n sortIndex,\n aggFunc,\n rowGroup: column.isRowGroupActive(),\n rowGroupIndex,\n pivot: column.isPivotActive(),\n pivotIndex: pivotIndex,\n flex\n };\n return res;\n }\n getColumnState() {\n if (missing(this.primaryColumns) || !this.isAlive()) {\n return [];\n }\n const colsForState = this.getPrimaryAndSecondaryAndAutoColumns();\n const res = colsForState.map(this.createStateItemFromColumn.bind(this));\n this.orderColumnStateList(res);\n return res;\n }\n orderColumnStateList(columnStateList) {\n // for fast looking, store the index of each column\n const colIdToGridIndexMap = convertToMap(this.gridColumns.map((col, index) => [col.getColId(), index]));\n columnStateList.sort((itemA, itemB) => {\n const posA = colIdToGridIndexMap.has(itemA.colId) ? colIdToGridIndexMap.get(itemA.colId) : -1;\n const posB = colIdToGridIndexMap.has(itemB.colId) ? colIdToGridIndexMap.get(itemB.colId) : -1;\n return posA - posB;\n });\n }\n resetColumnState(source) {\n if (missingOrEmpty(this.primaryColumns)) {\n return;\n }\n // NOTE = there is one bug here that no customer has noticed - if a column has colDef.lockPosition,\n // this is ignored below when ordering the cols. to work, we should always put lockPosition cols first.\n // As a work around, developers should just put lockPosition columns first in their colDef list.\n // we can't use 'allColumns' as the order might of messed up, so get the primary ordered list\n const primaryColumns = this.getColumnsFromTree(this.primaryColumnTree);\n const columnStates = [];\n // we start at 1000, so if user has mix of rowGroup and group specified, it will work with both.\n // eg IF user has ColA.rowGroupIndex=0, ColB.rowGroupIndex=1, ColC.rowGroup=true,\n // THEN result will be ColA.rowGroupIndex=0, ColB.rowGroupIndex=1, ColC.rowGroup=1000\n let letRowGroupIndex = 1000;\n let letPivotIndex = 1000;\n let colsToProcess = [];\n if (this.groupAutoColumns) {\n colsToProcess = colsToProcess.concat(this.groupAutoColumns);\n }\n if (primaryColumns) {\n colsToProcess = colsToProcess.concat(primaryColumns);\n }\n colsToProcess.forEach(column => {\n const stateItem = this.getColumnStateFromColDef(column);\n if (missing(stateItem.rowGroupIndex) && stateItem.rowGroup) {\n stateItem.rowGroupIndex = letRowGroupIndex++;\n }\n if (missing(stateItem.pivotIndex) && stateItem.pivot) {\n stateItem.pivotIndex = letPivotIndex++;\n }\n columnStates.push(stateItem);\n });\n this.applyColumnState({ state: columnStates, applyOrder: true }, source);\n }\n getColumnStateFromColDef(column) {\n const getValueOrNull = (a, b) => a != null ? a : b != null ? b : null;\n const colDef = column.getColDef();\n const sort = getValueOrNull(colDef.sort, colDef.initialSort);\n const sortIndex = getValueOrNull(colDef.sortIndex, colDef.initialSortIndex);\n const hide = getValueOrNull(colDef.hide, colDef.initialHide);\n const pinned = getValueOrNull(colDef.pinned, colDef.initialPinned);\n const width = getValueOrNull(colDef.width, colDef.initialWidth);\n const flex = getValueOrNull(colDef.flex, colDef.initialFlex);\n let rowGroupIndex = getValueOrNull(colDef.rowGroupIndex, colDef.initialRowGroupIndex);\n let rowGroup = getValueOrNull(colDef.rowGroup, colDef.initialRowGroup);\n if (rowGroupIndex == null && (rowGroup == null || rowGroup == false)) {\n rowGroupIndex = null;\n rowGroup = null;\n }\n let pivotIndex = getValueOrNull(colDef.pivotIndex, colDef.initialPivotIndex);\n let pivot = getValueOrNull(colDef.pivot, colDef.initialPivot);\n if (pivotIndex == null && (pivot == null || pivot == false)) {\n pivotIndex = null;\n pivot = null;\n }\n const aggFunc = getValueOrNull(colDef.aggFunc, colDef.initialAggFunc);\n return {\n colId: column.getColId(),\n sort,\n sortIndex,\n hide,\n pinned,\n width,\n flex,\n rowGroup,\n rowGroupIndex,\n pivot,\n pivotIndex,\n aggFunc,\n };\n }\n applyColumnState(params, source) {\n if (missingOrEmpty(this.primaryColumns)) {\n return false;\n }\n if (params && params.state && !params.state.forEach) {\n console.warn('AG Grid: applyColumnState() - the state attribute should be an array, however an array was not found. Please provide an array of items (one for each col you want to change) for state.');\n return false;\n }\n const applyStates = (states, existingColumns, getById) => {\n const dispatchEventsFunc = this.compareColumnStatesAndDispatchEvents(source);\n this.autoGroupsNeedBuilding = true;\n // at the end below, this list will have all columns we got no state for\n const columnsWithNoState = existingColumns.slice();\n const rowGroupIndexes = {};\n const pivotIndexes = {};\n const autoGroupColumnStates = [];\n // If pivoting is modified, these are the states we try to reapply after\n // the secondary columns are re-generated\n const unmatchedAndAutoStates = [];\n let unmatchedCount = 0;\n const previousRowGroupCols = this.rowGroupColumns.slice();\n const previousPivotCols = this.pivotColumns.slice();\n states.forEach((state) => {\n const colId = state.colId || '';\n // auto group columns are re-created so deferring syncing with ColumnState\n const isAutoGroupColumn = colId.startsWith(GROUP_AUTO_COLUMN_ID);\n if (isAutoGroupColumn) {\n autoGroupColumnStates.push(state);\n unmatchedAndAutoStates.push(state);\n return;\n }\n const column = getById(colId);\n if (!column) {\n unmatchedAndAutoStates.push(state);\n unmatchedCount += 1;\n }\n else {\n this.syncColumnWithStateItem(column, state, params.defaultState, rowGroupIndexes, pivotIndexes, false, source);\n removeFromArray(columnsWithNoState, column);\n }\n });\n // anything left over, we got no data for, so add in the column as non-value, non-rowGroup and hidden\n const applyDefaultsFunc = (col) => this.syncColumnWithStateItem(col, null, params.defaultState, rowGroupIndexes, pivotIndexes, false, source);\n columnsWithNoState.forEach(applyDefaultsFunc);\n // sort the lists according to the indexes that were provided\n const comparator = (indexes, oldList, colA, colB) => {\n const indexA = indexes[colA.getId()];\n const indexB = indexes[colB.getId()];\n const aHasIndex = indexA != null;\n const bHasIndex = indexB != null;\n if (aHasIndex && bHasIndex) {\n // both a and b are new cols with index, so sort on index\n return indexA - indexB;\n }\n if (aHasIndex) {\n // a has an index, so it should be before a\n return -1;\n }\n if (bHasIndex) {\n // b has an index, so it should be before a\n return 1;\n }\n const oldIndexA = oldList.indexOf(colA);\n const oldIndexB = oldList.indexOf(colB);\n const aHasOldIndex = oldIndexA >= 0;\n const bHasOldIndex = oldIndexB >= 0;\n if (aHasOldIndex && bHasOldIndex) {\n // both a and b are old cols, so sort based on last order\n return oldIndexA - oldIndexB;\n }\n if (aHasOldIndex) {\n // a is old, b is new, so b is first\n return -1;\n }\n // this bit does matter, means both are new cols\n // but without index or that b is old and a is new\n return 1;\n };\n this.rowGroupColumns.sort(comparator.bind(this, rowGroupIndexes, previousRowGroupCols));\n this.pivotColumns.sort(comparator.bind(this, pivotIndexes, previousPivotCols));\n this.updateGridColumns();\n // sync newly created auto group columns with ColumnState\n const autoGroupColsCopy = this.groupAutoColumns ? this.groupAutoColumns.slice() : [];\n autoGroupColumnStates.forEach(stateItem => {\n const autoCol = this.getAutoColumn(stateItem.colId);\n removeFromArray(autoGroupColsCopy, autoCol);\n this.syncColumnWithStateItem(autoCol, stateItem, params.defaultState, null, null, true, source);\n });\n // autogroup cols with nothing else, apply the default\n autoGroupColsCopy.forEach(applyDefaultsFunc);\n this.applyOrderAfterApplyState(params);\n this.updateDisplayedColumns(source);\n this.dispatchEverythingChanged(source);\n dispatchEventsFunc(); // Will trigger secondary column changes if pivoting modified\n return { unmatchedAndAutoStates, unmatchedCount };\n };\n this.columnAnimationService.start();\n let { unmatchedAndAutoStates, unmatchedCount, } = applyStates(params.state || [], this.primaryColumns || [], (id) => this.getPrimaryColumn(id));\n // If there are still states left over, see if we can apply them to newly generated\n // secondary or auto columns. Also if defaults exist, ensure they are applied to secondary cols\n if (unmatchedAndAutoStates.length > 0 || exists(params.defaultState)) {\n unmatchedCount = applyStates(unmatchedAndAutoStates, this.secondaryColumns || [], (id) => this.getSecondaryColumn(id)).unmatchedCount;\n }\n this.columnAnimationService.finish();\n return unmatchedCount === 0; // Successful if no states unaccounted for\n }\n applyOrderAfterApplyState(params) {\n if (!params.applyOrder || !params.state) {\n return;\n }\n let newOrder = [];\n const processedColIds = {};\n params.state.forEach(item => {\n if (!item.colId || processedColIds[item.colId]) {\n return;\n }\n const col = this.gridColumnsMap[item.colId];\n if (col) {\n newOrder.push(col);\n processedColIds[item.colId] = true;\n }\n });\n // add in all other columns\n let autoGroupInsertIndex = 0;\n this.gridColumns.forEach(col => {\n const colId = col.getColId();\n const alreadyProcessed = processedColIds[colId] != null;\n if (alreadyProcessed) {\n return;\n }\n const isAutoGroupCol = colId.startsWith(GROUP_AUTO_COLUMN_ID);\n if (isAutoGroupCol) {\n // auto group columns, if missing from state list, are added to the start.\n // it's common to have autoGroup missing, as grouping could be on by default\n // on a column, but the user could of since removed the grouping via the UI.\n // if we don't inc the insert index, autoGroups will be inserted in reverse order\n insertIntoArray(newOrder, col, autoGroupInsertIndex++);\n }\n else {\n // normal columns, if missing from state list, are added at the end\n newOrder.push(col);\n }\n });\n // this is already done in updateGridColumns, however we changed the order above (to match the order of the state\n // columns) so we need to do it again. we could of put logic into the order above to take into account fixed\n // columns, however if we did then we would have logic for updating fixed columns twice. reusing the logic here\n // is less sexy for the code here, but it keeps consistency.\n newOrder = this.placeLockedColumns(newOrder);\n if (!this.doesMovePassMarryChildren(newOrder)) {\n console.warn('AG Grid: Applying column order broke a group where columns should be married together. Applying new order has been discarded.');\n return;\n }\n this.gridColumns = newOrder;\n }\n compareColumnStatesAndDispatchEvents(source) {\n const startState = {\n rowGroupColumns: this.rowGroupColumns.slice(),\n pivotColumns: this.pivotColumns.slice(),\n valueColumns: this.valueColumns.slice()\n };\n const columnStateBefore = this.getColumnState();\n const columnStateBeforeMap = {};\n columnStateBefore.forEach(col => {\n columnStateBeforeMap[col.colId] = col;\n });\n return () => {\n const colsForState = this.getPrimaryAndSecondaryAndAutoColumns();\n // dispatches generic ColumnEvents where all columns are returned rather than what has changed\n const dispatchWhenListsDifferent = (eventType, colsBefore, colsAfter, idMapper) => {\n const beforeList = colsBefore.map(idMapper);\n const afterList = colsAfter.map(idMapper);\n const unchanged = areEqual(beforeList, afterList);\n if (unchanged) {\n return;\n }\n const changes = new Set(colsBefore);\n colsAfter.forEach(id => {\n // if the first list had it, delete it, as it's unchanged.\n if (!changes.delete(id)) {\n // if the second list has it, and first doesn't, add it.\n changes.add(id);\n }\n });\n const changesArr = [...changes];\n const event = {\n type: eventType,\n columns: changesArr,\n column: changesArr.length === 1 ? changesArr[0] : null,\n source: source\n };\n this.eventService.dispatchEvent(event);\n };\n // determines which columns have changed according to supplied predicate\n const getChangedColumns = (changedPredicate) => {\n const changedColumns = [];\n colsForState.forEach(column => {\n const colStateBefore = columnStateBeforeMap[column.getColId()];\n if (colStateBefore && changedPredicate(colStateBefore, column)) {\n changedColumns.push(column);\n }\n });\n return changedColumns;\n };\n const columnIdMapper = (c) => c.getColId();\n dispatchWhenListsDifferent(Events.EVENT_COLUMN_ROW_GROUP_CHANGED, startState.rowGroupColumns, this.rowGroupColumns, columnIdMapper);\n dispatchWhenListsDifferent(Events.EVENT_COLUMN_PIVOT_CHANGED, startState.pivotColumns, this.pivotColumns, columnIdMapper);\n const valueChangePredicate = (cs, c) => {\n const oldActive = cs.aggFunc != null;\n const activeChanged = oldActive != c.isValueActive();\n // we only check aggFunc if the agg is active\n const aggFuncChanged = oldActive && cs.aggFunc != c.getAggFunc();\n return activeChanged || aggFuncChanged;\n };\n const changedValues = getChangedColumns(valueChangePredicate);\n if (changedValues.length > 0) {\n this.dispatchColumnChangedEvent(Events.EVENT_COLUMN_VALUE_CHANGED, changedValues, source);\n }\n const resizeChangePredicate = (cs, c) => cs.width != c.getActualWidth();\n this.dispatchColumnResizedEvent(getChangedColumns(resizeChangePredicate), true, source);\n const pinnedChangePredicate = (cs, c) => cs.pinned != c.getPinned();\n this.dispatchColumnPinnedEvent(getChangedColumns(pinnedChangePredicate), source);\n const visibilityChangePredicate = (cs, c) => cs.hide == c.isVisible();\n this.dispatchColumnVisibleEvent(getChangedColumns(visibilityChangePredicate), source);\n const sortChangePredicate = (cs, c) => cs.sort != c.getSort() || cs.sortIndex != c.getSortIndex();\n const changedColumns = getChangedColumns(sortChangePredicate);\n if (changedColumns.length > 0) {\n this.sortController.dispatchSortChangedEvents(source, changedColumns);\n }\n // special handling for moved column events\n this.normaliseColumnMovedEventForColumnState(columnStateBefore, source);\n };\n }\n getCommonValue(cols, valueGetter) {\n if (!cols || cols.length == 0) {\n return undefined;\n }\n // compare each value to the first value. if nothing differs, then value is common so return it.\n const firstValue = valueGetter(cols[0]);\n for (let i = 1; i < cols.length; i++) {\n if (firstValue !== valueGetter(cols[i])) {\n // values differ, no common value\n return undefined;\n }\n }\n return firstValue;\n }\n normaliseColumnMovedEventForColumnState(colStateBefore, source) {\n // we are only interested in columns that were both present and visible before and after\n const colStateAfter = this.getColumnState();\n const colStateAfterMapped = {};\n colStateAfter.forEach(s => colStateAfterMapped[s.colId] = s);\n // get id's of cols in both before and after lists\n const colsIntersectIds = {};\n colStateBefore.forEach(s => {\n if (colStateAfterMapped[s.colId]) {\n colsIntersectIds[s.colId] = true;\n }\n });\n // filter state lists, so we only have cols that were present before and after\n const beforeFiltered = colStateBefore.filter(c => colsIntersectIds[c.colId]);\n const afterFiltered = colStateAfter.filter(c => colsIntersectIds[c.colId]);\n // see if any cols are in a different location\n const movedColumns = [];\n afterFiltered.forEach((csAfter, index) => {\n const csBefore = beforeFiltered && beforeFiltered[index];\n if (csBefore && csBefore.colId !== csAfter.colId) {\n const gridCol = this.getGridColumn(csBefore.colId);\n if (gridCol) {\n movedColumns.push(gridCol);\n }\n }\n });\n if (!movedColumns.length) {\n return;\n }\n this.dispatchColumnMovedEvent({ movedColumns, source, finished: true });\n }\n syncColumnWithStateItem(column, stateItem, defaultState, rowGroupIndexes, pivotIndexes, autoCol, source) {\n if (!column) {\n return;\n }\n const getValue = (key1, key2) => {\n const obj = { value1: undefined, value2: undefined };\n let calculated = false;\n if (stateItem) {\n if (stateItem[key1] !== undefined) {\n obj.value1 = stateItem[key1];\n calculated = true;\n }\n if (exists(key2) && stateItem[key2] !== undefined) {\n obj.value2 = stateItem[key2];\n calculated = true;\n }\n }\n if (!calculated && defaultState) {\n if (defaultState[key1] !== undefined) {\n obj.value1 = defaultState[key1];\n }\n if (exists(key2) && defaultState[key2] !== undefined) {\n obj.value2 = defaultState[key2];\n }\n }\n return obj;\n };\n // following ensures we are left with boolean true or false, eg converts (null, undefined, 0) all to true\n const hide = getValue('hide').value1;\n if (hide !== undefined) {\n column.setVisible(!hide, source);\n }\n // sets pinned to 'left' or 'right'\n const pinned = getValue('pinned').value1;\n if (pinned !== undefined) {\n column.setPinned(pinned);\n }\n // if width provided and valid, use it, otherwise stick with the old width\n const minColWidth = this.columnUtils.calculateColMinWidth(column.getColDef());\n // flex\n const flex = getValue('flex').value1;\n // if flex is null or a value, set into the col\n if (flex !== undefined) {\n column.setFlex(flex);\n }\n // if flex is null or undefined, fall back to setting width\n if (flex == null) {\n // if no flex, then use width if it's there\n const width = getValue('width').value1;\n if (width != null) {\n if (minColWidth != null && width >= minColWidth) {\n column.setActualWidth(width, source);\n }\n }\n }\n const sort = getValue('sort').value1;\n if (sort !== undefined) {\n if (sort === 'desc' || sort === 'asc') {\n column.setSort(sort, source);\n }\n else {\n column.setSort(undefined, source);\n }\n }\n const sortIndex = getValue('sortIndex').value1;\n if (sortIndex !== undefined) {\n column.setSortIndex(sortIndex);\n }\n // we do not do aggFunc, rowGroup or pivot for auto cols or secondary cols\n if (autoCol || !column.isPrimary()) {\n return;\n }\n const aggFunc = getValue('aggFunc').value1;\n if (aggFunc !== undefined) {\n if (typeof aggFunc === 'string') {\n column.setAggFunc(aggFunc);\n if (!column.isValueActive()) {\n column.setValueActive(true, source);\n this.valueColumns.push(column);\n }\n }\n else {\n if (exists(aggFunc)) {\n console.warn('AG Grid: stateItem.aggFunc must be a string. if using your own aggregation ' +\n 'functions, register the functions first before using them in get/set state. This is because it is ' +\n 'intended for the column state to be stored and retrieved as simple JSON.');\n }\n // Note: we do not call column.setAggFunc(null), so that next time we aggregate\n // by this column (eg drag the column to the agg section int he toolpanel) it will\n // default to the last aggregation function.\n if (column.isValueActive()) {\n column.setValueActive(false, source);\n removeFromArray(this.valueColumns, column);\n }\n }\n }\n const { value1: rowGroup, value2: rowGroupIndex } = getValue('rowGroup', 'rowGroupIndex');\n if (rowGroup !== undefined || rowGroupIndex !== undefined) {\n if (typeof rowGroupIndex === 'number' || rowGroup) {\n if (!column.isRowGroupActive()) {\n column.setRowGroupActive(true, source);\n this.rowGroupColumns.push(column);\n }\n if (rowGroupIndexes && typeof rowGroupIndex === 'number') {\n rowGroupIndexes[column.getId()] = rowGroupIndex;\n }\n }\n else {\n if (column.isRowGroupActive()) {\n column.setRowGroupActive(false, source);\n removeFromArray(this.rowGroupColumns, column);\n }\n }\n }\n const { value1: pivot, value2: pivotIndex } = getValue('pivot', 'pivotIndex');\n if (pivot !== undefined || pivotIndex !== undefined) {\n if (typeof pivotIndex === 'number' || pivot) {\n if (!column.isPivotActive()) {\n column.setPivotActive(true, source);\n this.pivotColumns.push(column);\n }\n if (pivotIndexes && typeof pivotIndex === 'number') {\n pivotIndexes[column.getId()] = pivotIndex;\n }\n }\n else {\n if (column.isPivotActive()) {\n column.setPivotActive(false, source);\n removeFromArray(this.pivotColumns, column);\n }\n }\n }\n }\n getGridColumns(keys) {\n return this.getColumns(keys, this.getGridColumn.bind(this));\n }\n getColumns(keys, columnLookupCallback) {\n const foundColumns = [];\n if (keys) {\n keys.forEach((key) => {\n const column = columnLookupCallback(key);\n if (column) {\n foundColumns.push(column);\n }\n });\n }\n return foundColumns;\n }\n // used by growGroupPanel\n getColumnWithValidation(key) {\n if (key == null) {\n return null;\n }\n const column = this.getGridColumn(key);\n if (!column) {\n console.warn('AG Grid: could not find column ' + key);\n }\n return column;\n }\n getPrimaryColumn(key) {\n if (!this.primaryColumns) {\n return null;\n }\n return this.getColumn(key, this.primaryColumns, this.primaryColumnsMap);\n }\n getGridColumn(key) {\n return this.getColumn(key, this.gridColumns, this.gridColumnsMap);\n }\n lookupGridColumn(key) {\n return this.gridColumnsMap[key];\n }\n getSecondaryColumn(key) {\n if (!this.secondaryColumns) {\n return null;\n }\n return this.getColumn(key, this.secondaryColumns, this.secondaryColumnsMap);\n }\n getColumn(key, columnList, columnMap) {\n if (!key || !columnMap) {\n return null;\n }\n // most of the time this method gets called the key is a string, so we put this shortcut in\n // for performance reasons, to see if we can match for ID (it doesn't do auto columns, that's done below)\n if (typeof key == 'string' && columnMap[key]) {\n return columnMap[key];\n }\n for (let i = 0; i < columnList.length; i++) {\n if (this.columnsMatch(columnList[i], key)) {\n return columnList[i];\n }\n }\n return this.getAutoColumn(key);\n }\n getSourceColumnsForGroupColumn(groupCol) {\n const sourceColumnId = groupCol.getColDef().showRowGroup;\n if (!sourceColumnId) {\n return null;\n }\n if (sourceColumnId === true) {\n return this.rowGroupColumns.slice(0);\n }\n const column = this.getPrimaryColumn(sourceColumnId);\n return column ? [column] : null;\n }\n getAutoColumn(key) {\n if (!this.groupAutoColumns ||\n !exists(this.groupAutoColumns) ||\n missing(this.groupAutoColumns)) {\n return null;\n }\n return this.groupAutoColumns.find(groupCol => this.columnsMatch(groupCol, key)) || null;\n }\n columnsMatch(column, key) {\n const columnMatches = column === key;\n const colDefMatches = column.getColDef() === key;\n const idMatches = column.getColId() == key;\n return columnMatches || colDefMatches || idMatches;\n }\n getDisplayNameForColumn(column, location, includeAggFunc = false) {\n if (!column) {\n return null;\n }\n const headerName = this.getHeaderName(column.getColDef(), column, null, null, location);\n if (includeAggFunc) {\n return this.wrapHeaderNameWithAggFunc(column, headerName);\n }\n return headerName;\n }\n getDisplayNameForProvidedColumnGroup(columnGroup, providedColumnGroup, location) {\n const colGroupDef = providedColumnGroup ? providedColumnGroup.getColGroupDef() : null;\n if (colGroupDef) {\n return this.getHeaderName(colGroupDef, null, columnGroup, providedColumnGroup, location);\n }\n return null;\n }\n getDisplayNameForColumnGroup(columnGroup, location) {\n return this.getDisplayNameForProvidedColumnGroup(columnGroup, columnGroup.getProvidedColumnGroup(), location);\n }\n // location is where the column is going to appear, ie who is calling us\n getHeaderName(colDef, column, columnGroup, providedColumnGroup, location) {\n const headerValueGetter = colDef.headerValueGetter;\n if (headerValueGetter) {\n const params = this.gridOptionsService.addGridCommonParams({\n colDef: colDef,\n column: column,\n columnGroup: columnGroup,\n providedColumnGroup: providedColumnGroup,\n location: location\n });\n if (typeof headerValueGetter === 'function') {\n // valueGetter is a function, so just call it\n return headerValueGetter(params);\n }\n else if (typeof headerValueGetter === 'string') {\n // valueGetter is an expression, so execute the expression\n return this.expressionService.evaluate(headerValueGetter, params);\n }\n console.warn('AG Grid: headerValueGetter must be a function or a string');\n return '';\n }\n else if (colDef.headerName != null) {\n return colDef.headerName;\n }\n else if (colDef.field) {\n return camelCaseToHumanText(colDef.field);\n }\n return '';\n }\n wrapHeaderNameWithAggFunc(column, headerName) {\n if (this.gridOptionsService.get('suppressAggFuncInHeader')) {\n return headerName;\n }\n // only columns with aggregation active can have aggregations\n const pivotValueColumn = column.getColDef().pivotValueColumn;\n const pivotActiveOnThisColumn = exists(pivotValueColumn);\n let aggFunc = null;\n let aggFuncFound;\n // otherwise we have a measure that is active, and we are doing aggregation on it\n if (pivotActiveOnThisColumn) {\n const isCollapsedHeaderEnabled = this.gridOptionsService.get('removePivotHeaderRowWhenSingleValueColumn') && this.valueColumns.length === 1;\n const isTotalColumn = column.getColDef().pivotTotalColumnIds !== undefined;\n if (isCollapsedHeaderEnabled && !isTotalColumn) {\n return headerName; // Skip decorating the header - in this case the label is the pivot key, not the value col\n }\n aggFunc = pivotValueColumn ? pivotValueColumn.getAggFunc() : null;\n aggFuncFound = true;\n }\n else {\n const measureActive = column.isValueActive();\n const aggregationPresent = this.pivotMode || !this.isRowGroupEmpty();\n if (measureActive && aggregationPresent) {\n aggFunc = column.getAggFunc();\n aggFuncFound = true;\n }\n else {\n aggFuncFound = false;\n }\n }\n if (aggFuncFound) {\n const aggFuncString = (typeof aggFunc === 'string') ? aggFunc : 'func';\n const localeTextFunc = this.localeService.getLocaleTextFunc();\n const aggFuncStringTranslated = localeTextFunc(aggFuncString, aggFuncString);\n return `${aggFuncStringTranslated}(${headerName})`;\n }\n return headerName;\n }\n // returns the group with matching colId and instanceId. If instanceId is missing,\n // matches only on the colId.\n getColumnGroup(colId, partId) {\n if (!colId) {\n return null;\n }\n if (colId instanceof ColumnGroup) {\n return colId;\n }\n const allColumnGroups = this.getAllDisplayedTrees();\n const checkPartId = typeof partId === 'number';\n let result = null;\n this.columnUtils.depthFirstAllColumnTreeSearch(allColumnGroups, (child) => {\n if (child instanceof ColumnGroup) {\n const columnGroup = child;\n let matched;\n if (checkPartId) {\n matched = colId === columnGroup.getGroupId() && partId === columnGroup.getPartId();\n }\n else {\n matched = colId === columnGroup.getGroupId();\n }\n if (matched) {\n result = columnGroup;\n }\n }\n });\n return result;\n }\n isReady() {\n return this.ready;\n }\n extractValueColumns(source, oldPrimaryColumns) {\n this.valueColumns = this.extractColumns(oldPrimaryColumns, this.valueColumns, (col, flag) => col.setValueActive(flag, source), \n // aggFunc doesn't have index variant, cos order of value cols doesn't matter, so always return null\n () => undefined, () => undefined, \n // aggFunc is a string, so return it's existence\n (colDef) => {\n const aggFunc = colDef.aggFunc;\n // null or empty string means clear\n if (aggFunc === null || aggFunc === '') {\n return null;\n }\n if (aggFunc === undefined) {\n return;\n }\n return !!aggFunc;\n }, (colDef) => {\n // return false if any of the following: null, undefined, empty string\n return colDef.initialAggFunc != null && colDef.initialAggFunc != '';\n });\n // all new columns added will have aggFunc missing, so set it to what is in the colDef\n this.valueColumns.forEach(col => {\n const colDef = col.getColDef();\n // if aggFunc provided, we always override, as reactive property\n if (colDef.aggFunc != null && colDef.aggFunc != '') {\n col.setAggFunc(colDef.aggFunc);\n }\n else {\n // otherwise we use initialAggFunc only if no agg func set - which happens when new column only\n if (!col.getAggFunc()) {\n col.setAggFunc(colDef.initialAggFunc);\n }\n }\n });\n }\n extractRowGroupColumns(source, oldPrimaryColumns) {\n this.rowGroupColumns = this.extractColumns(oldPrimaryColumns, this.rowGroupColumns, (col, flag) => col.setRowGroupActive(flag, source), (colDef) => colDef.rowGroupIndex, (colDef) => colDef.initialRowGroupIndex, (colDef) => colDef.rowGroup, (colDef) => colDef.initialRowGroup);\n }\n extractColumns(oldPrimaryColumns = [], previousCols = [], setFlagFunc, getIndexFunc, getInitialIndexFunc, getValueFunc, getInitialValueFunc) {\n const colsWithIndex = [];\n const colsWithValue = [];\n // go though all cols.\n // if value, change\n // if default only, change only if new\n (this.primaryColumns || []).forEach(col => {\n const colIsNew = oldPrimaryColumns.indexOf(col) < 0;\n const colDef = col.getColDef();\n const value = attrToBoolean(getValueFunc(colDef));\n const initialValue = attrToBoolean(getInitialValueFunc(colDef));\n const index = attrToNumber(getIndexFunc(colDef));\n const initialIndex = attrToNumber(getInitialIndexFunc(colDef));\n let include;\n const valuePresent = value !== undefined;\n const indexPresent = index !== undefined;\n const initialValuePresent = initialValue !== undefined;\n const initialIndexPresent = initialIndex !== undefined;\n if (valuePresent) {\n include = value; // boolean value is guaranteed as attrToBoolean() is used above\n }\n else if (indexPresent) {\n if (index === null) {\n // if col is new we don't want to use the default / initial if index is set to null. Similarly,\n // we don't want to include the property for existing columns, i.e. we want to 'clear' it.\n include = false;\n }\n else {\n // note that 'null >= 0' evaluates to true which means 'rowGroupIndex = null' would enable row\n // grouping if the null check didn't exist above.\n include = index >= 0;\n }\n }\n else {\n if (colIsNew) {\n // as no value or index is 'present' we use the default / initial when col is new\n if (initialValuePresent) {\n include = initialValue;\n }\n else if (initialIndexPresent) {\n include = initialIndex != null && initialIndex >= 0;\n }\n else {\n include = false;\n }\n }\n else {\n // otherwise include it if included last time, e.g. if we are extracting row group cols and this col\n // is an existing row group col (i.e. it exists in 'previousCols') then we should include it.\n include = previousCols.indexOf(col) >= 0;\n }\n }\n if (include) {\n const useIndex = colIsNew ? (index != null || initialIndex != null) : index != null;\n useIndex ? colsWithIndex.push(col) : colsWithValue.push(col);\n }\n });\n const getIndexForCol = (col) => {\n const index = getIndexFunc(col.getColDef());\n const defaultIndex = getInitialIndexFunc(col.getColDef());\n return index != null ? index : defaultIndex;\n };\n // sort cols with index, and add these first\n colsWithIndex.sort((colA, colB) => {\n const indexA = getIndexForCol(colA);\n const indexB = getIndexForCol(colB);\n if (indexA === indexB) {\n return 0;\n }\n if (indexA < indexB) {\n return -1;\n }\n return 1;\n });\n const res = [].concat(colsWithIndex);\n // second add columns that were there before and in the same order as they were before,\n // so we are preserving order of current grouping of columns that simply have rowGroup=true\n previousCols.forEach(col => {\n if (colsWithValue.indexOf(col) >= 0) {\n res.push(col);\n }\n });\n // lastly put in all remaining cols\n colsWithValue.forEach(col => {\n if (res.indexOf(col) < 0) {\n res.push(col);\n }\n });\n // set flag=false for removed cols\n previousCols.forEach(col => {\n if (res.indexOf(col) < 0) {\n setFlagFunc(col, false);\n }\n });\n // set flag=true for newly added cols\n res.forEach(col => {\n if (previousCols.indexOf(col) < 0) {\n setFlagFunc(col, true);\n }\n });\n return res;\n }\n extractPivotColumns(source, oldPrimaryColumns) {\n this.pivotColumns = this.extractColumns(oldPrimaryColumns, this.pivotColumns, (col, flag) => col.setPivotActive(flag, source), (colDef) => colDef.pivotIndex, (colDef) => colDef.initialPivotIndex, (colDef) => colDef.pivot, (colDef) => colDef.initialPivot);\n }\n resetColumnGroupState(source) {\n if (!this.primaryColumnTree) {\n return;\n }\n const stateItems = [];\n this.columnUtils.depthFirstOriginalTreeSearch(null, this.primaryColumnTree, child => {\n if (child instanceof ProvidedColumnGroup) {\n const colGroupDef = child.getColGroupDef();\n const groupState = {\n groupId: child.getGroupId(),\n open: !colGroupDef ? undefined : colGroupDef.openByDefault\n };\n stateItems.push(groupState);\n }\n });\n this.setColumnGroupState(stateItems, source);\n }\n getColumnGroupState() {\n const columnGroupState = [];\n this.columnUtils.depthFirstOriginalTreeSearch(null, this.gridBalancedTree, node => {\n if (node instanceof ProvidedColumnGroup) {\n columnGroupState.push({\n groupId: node.getGroupId(),\n open: node.isExpanded()\n });\n }\n });\n return columnGroupState;\n }\n setColumnGroupState(stateItems, source) {\n if (!this.gridBalancedTree) {\n return;\n }\n this.columnAnimationService.start();\n const impactedGroups = [];\n stateItems.forEach(stateItem => {\n const groupKey = stateItem.groupId;\n const newValue = stateItem.open;\n const providedColumnGroup = this.getProvidedColumnGroup(groupKey);\n if (!providedColumnGroup) {\n return;\n }\n if (providedColumnGroup.isExpanded() === newValue) {\n return;\n }\n this.logger.log('columnGroupOpened(' + providedColumnGroup.getGroupId() + ',' + newValue + ')');\n providedColumnGroup.setExpanded(newValue);\n impactedGroups.push(providedColumnGroup);\n });\n this.updateGroupsAndDisplayedColumns(source);\n this.setFirstRightAndLastLeftPinned(source);\n if (impactedGroups.length) {\n const event = {\n type: Events.EVENT_COLUMN_GROUP_OPENED,\n columnGroup: ProvidedColumnGroup.length === 1 ? impactedGroups[0] : undefined,\n columnGroups: impactedGroups,\n };\n this.eventService.dispatchEvent(event);\n }\n this.columnAnimationService.finish();\n }\n // called by headerRenderer - when a header is opened or closed\n setColumnGroupOpened(key, newValue, source) {\n let keyAsString;\n if (key instanceof ProvidedColumnGroup) {\n keyAsString = key.getId();\n }\n else {\n keyAsString = key || '';\n }\n this.setColumnGroupState([{ groupId: keyAsString, open: newValue }], source);\n }\n getProvidedColumnGroup(key) {\n // if (key instanceof ProvidedColumnGroup) { return key; }\n if (typeof key !== 'string') {\n console.error('AG Grid: group key must be a string');\n }\n // otherwise, search for the column group by id\n let res = null;\n this.columnUtils.depthFirstOriginalTreeSearch(null, this.gridBalancedTree, node => {\n if (node instanceof ProvidedColumnGroup) {\n if (node.getId() === key) {\n res = node;\n }\n }\n });\n return res;\n }\n calculateColumnsForDisplay() {\n let columnsForDisplay;\n if (this.pivotMode && missing(this.secondaryColumns)) {\n // pivot mode is on, but we are not pivoting, so we only\n // show columns we are aggregating on\n columnsForDisplay = this.gridColumns.filter(column => {\n const isAutoGroupCol = this.groupAutoColumns && includes(this.groupAutoColumns, column);\n const isValueCol = this.valueColumns && includes(this.valueColumns, column);\n return isAutoGroupCol || isValueCol;\n });\n }\n else {\n // otherwise continue as normal. this can be working on the primary\n // or secondary columns, whatever the gridColumns are set to\n columnsForDisplay = this.gridColumns.filter(column => {\n // keep col if a) it's auto-group or b) it's visible\n const isAutoGroupCol = this.groupAutoColumns && includes(this.groupAutoColumns, column);\n return isAutoGroupCol || column.isVisible();\n });\n }\n return columnsForDisplay;\n }\n checkColSpanActiveInCols(columns) {\n let result = false;\n columns.forEach(col => {\n if (exists(col.getColDef().colSpan)) {\n result = true;\n }\n });\n return result;\n }\n calculateColumnsForGroupDisplay() {\n this.groupDisplayColumns = [];\n this.groupDisplayColumnsMap = {};\n const checkFunc = (col) => {\n const colDef = col.getColDef();\n const underlyingColumn = colDef.showRowGroup;\n if (colDef && exists(underlyingColumn)) {\n this.groupDisplayColumns.push(col);\n if (typeof underlyingColumn === 'string') {\n this.groupDisplayColumnsMap[underlyingColumn] = col;\n }\n else if (underlyingColumn === true) {\n this.getRowGroupColumns().forEach(rowGroupCol => {\n this.groupDisplayColumnsMap[rowGroupCol.getId()] = col;\n });\n }\n }\n };\n this.gridColumns.forEach(checkFunc);\n }\n getGroupDisplayColumns() {\n return this.groupDisplayColumns;\n }\n getGroupDisplayColumnForGroup(rowGroupColumnId) {\n return this.groupDisplayColumnsMap[rowGroupColumnId];\n }\n updateDisplayedColumns(source) {\n const columnsForDisplay = this.calculateColumnsForDisplay();\n this.buildDisplayedTrees(columnsForDisplay);\n // also called when group opened/closed\n this.updateGroupsAndDisplayedColumns(source);\n // also called when group opened/closed\n this.setFirstRightAndLastLeftPinned(source);\n }\n isSecondaryColumnsPresent() {\n return exists(this.secondaryColumns);\n }\n setSecondaryColumns(colDefs, source) {\n if (!this.gridColumns) {\n return;\n }\n const newColsPresent = colDefs && colDefs.length > 0;\n // if not cols passed, and we had no cols anyway, then do nothing\n if (!newColsPresent && missing(this.secondaryColumns)) {\n return;\n }\n if (newColsPresent) {\n this.processSecondaryColumnDefinitions(colDefs);\n const balancedTreeResult = this.columnFactory.createColumnTree(colDefs, false, this.secondaryBalancedTree || this.previousSecondaryColumns || undefined, source);\n this.destroyOldColumns(this.secondaryBalancedTree, balancedTreeResult.columnTree);\n this.secondaryBalancedTree = balancedTreeResult.columnTree;\n this.secondaryHeaderRowCount = balancedTreeResult.treeDept + 1;\n this.secondaryColumns = this.getColumnsFromTree(this.secondaryBalancedTree);\n this.secondaryColumnsMap = {};\n this.secondaryColumns.forEach(col => this.secondaryColumnsMap[col.getId()] = col);\n this.previousSecondaryColumns = null;\n }\n else {\n this.previousSecondaryColumns = this.secondaryBalancedTree;\n this.secondaryBalancedTree = null;\n this.secondaryHeaderRowCount = -1;\n this.secondaryColumns = null;\n this.secondaryColumnsMap = {};\n }\n this.updateGridColumns();\n this.updateDisplayedColumns(source);\n }\n processSecondaryColumnDefinitions(colDefs) {\n const columnCallback = this.gridOptionsService.get('processPivotResultColDef');\n const groupCallback = this.gridOptionsService.get('processPivotResultColGroupDef');\n if (!columnCallback && !groupCallback) {\n return undefined;\n }\n const searchForColDefs = (colDefs2) => {\n colDefs2.forEach((abstractColDef) => {\n const isGroup = exists(abstractColDef.children);\n if (isGroup) {\n const colGroupDef = abstractColDef;\n if (groupCallback) {\n groupCallback(colGroupDef);\n }\n searchForColDefs(colGroupDef.children);\n }\n else {\n const colDef = abstractColDef;\n if (columnCallback) {\n columnCallback(colDef);\n }\n }\n });\n };\n if (colDefs) {\n searchForColDefs(colDefs);\n }\n }\n // called from: applyColumnState, setColumnDefs, setSecondaryColumns\n updateGridColumns() {\n const prevGridCols = this.gridBalancedTree;\n if (this.gridColsArePrimary) {\n this.lastPrimaryOrder = this.gridColumns;\n }\n else {\n this.lastSecondaryOrder = this.gridColumns;\n }\n // create the new auto columns\n const areAutoColsChanged = this.createGroupAutoColumnsIfNeeded();\n // if auto group cols have changed, and we have a sort order, we need to move auto cols to the start\n if (areAutoColsChanged) {\n const groupAutoColsMap = convertToMap(this.groupAutoColumns.map(col => [col, true]));\n // if group cols have changed, remove them from any previous orders and add them to the start.\n if (this.lastPrimaryOrder) {\n this.lastPrimaryOrder = this.lastPrimaryOrder.filter(col => !groupAutoColsMap.has(col));\n this.lastPrimaryOrder = [...this.groupAutoColumns, ...this.lastPrimaryOrder];\n }\n if (this.lastSecondaryOrder) {\n this.lastSecondaryOrder = this.lastSecondaryOrder.filter(col => !groupAutoColsMap.has(col));\n this.lastSecondaryOrder = [...this.groupAutoColumns, ...this.lastSecondaryOrder];\n }\n }\n let sortOrderToRecover;\n if (this.secondaryColumns && this.secondaryBalancedTree) {\n const hasSameColumns = this.secondaryColumns.some((col) => {\n return this.gridColumnsMap[col.getColId()] !== undefined;\n });\n this.gridBalancedTree = this.secondaryBalancedTree.slice();\n this.gridHeaderRowCount = this.secondaryHeaderRowCount;\n this.gridColumns = this.secondaryColumns.slice();\n this.gridColsArePrimary = false;\n // If the current columns are the same or a subset of the previous\n // we keep the previous order, otherwise we go back to the order the pivot\n // cols are generated in\n if (hasSameColumns) {\n sortOrderToRecover = this.lastSecondaryOrder;\n }\n }\n else if (this.primaryColumns) {\n this.gridBalancedTree = this.primaryColumnTree.slice();\n this.gridHeaderRowCount = this.primaryHeaderRowCount;\n this.gridColumns = this.primaryColumns.slice();\n this.gridColsArePrimary = true;\n // updateGridColumns gets called after user adds a row group. we want to maintain the order of the columns\n // when this happens (eg if user moved a column) rather than revert back to the original column order.\n // likewise if changing in/out of pivot mode, we want to maintain the order of the cols\n sortOrderToRecover = this.lastPrimaryOrder;\n }\n this.addAutoGroupToGridColumns();\n this.orderGridColsLike(sortOrderToRecover);\n this.gridColumns = this.placeLockedColumns(this.gridColumns);\n this.calculateColumnsForGroupDisplay();\n this.refreshQuickFilterColumns();\n this.clearDisplayedAndViewportColumns();\n this.colSpanActive = this.checkColSpanActiveInCols(this.gridColumns);\n this.gridColumnsMap = {};\n this.gridColumns.forEach(col => this.gridColumnsMap[col.getId()] = col);\n this.setAutoHeightActive();\n if (!areEqual(prevGridCols, this.gridBalancedTree)) {\n const event = {\n type: Events.EVENT_GRID_COLUMNS_CHANGED\n };\n this.eventService.dispatchEvent(event);\n }\n }\n setAutoHeightActive() {\n this.autoHeightActive = this.gridColumns.filter(col => col.isAutoHeight()).length > 0;\n if (this.autoHeightActive) {\n this.autoHeightActiveAtLeastOnce = true;\n const supportedRowModel = this.gridOptionsService.isRowModelType('clientSide') || this.gridOptionsService.isRowModelType('serverSide');\n if (!supportedRowModel) {\n warnOnce('autoHeight columns only work with Client Side Row Model and Server Side Row Model.');\n }\n }\n }\n orderGridColsLike(colsOrder) {\n if (missing(colsOrder)) {\n return;\n }\n const lastOrderMapped = convertToMap(colsOrder.map((col, index) => [col, index]));\n // only do the sort if at least one column is accounted for. columns will be not accounted for\n // if changing from secondary to primary columns\n let noColsFound = true;\n this.gridColumns.forEach(col => {\n if (lastOrderMapped.has(col)) {\n noColsFound = false;\n }\n });\n if (noColsFound) {\n return;\n }\n // order cols in the same order as before. we need to make sure that all\n // cols still exists, so filter out any that no longer exist.\n const gridColsMap = convertToMap(this.gridColumns.map(col => [col, true]));\n const oldColsOrdered = colsOrder.filter(col => gridColsMap.has(col));\n const oldColsMap = convertToMap(oldColsOrdered.map(col => [col, true]));\n const newColsOrdered = this.gridColumns.filter(col => !oldColsMap.has(col));\n // add in the new columns, at the end (if no group), or at the end of the group (if a group)\n const newGridColumns = oldColsOrdered.slice();\n newColsOrdered.forEach(newCol => {\n let parent = newCol.getOriginalParent();\n // if no parent, means we are not grouping, so just add the column to the end\n if (!parent) {\n newGridColumns.push(newCol);\n return;\n }\n // find the group the column belongs to. if no siblings at the current level (eg col in group on it's\n // own) then go up one level and look for siblings there.\n const siblings = [];\n while (!siblings.length && parent) {\n const leafCols = parent.getLeafColumns();\n leafCols.forEach(leafCol => {\n const presentInNewGriColumns = newGridColumns.indexOf(leafCol) >= 0;\n const noYetInSiblings = siblings.indexOf(leafCol) < 0;\n if (presentInNewGriColumns && noYetInSiblings) {\n siblings.push(leafCol);\n }\n });\n parent = parent.getOriginalParent();\n }\n // if no siblings exist at any level, this means the col is in a group (or parent groups) on it's own\n if (!siblings.length) {\n newGridColumns.push(newCol);\n return;\n }\n // find index of last column in the group\n const indexes = siblings.map(col => newGridColumns.indexOf(col));\n const lastIndex = Math.max(...indexes);\n insertIntoArray(newGridColumns, newCol, lastIndex + 1);\n });\n this.gridColumns = newGridColumns;\n }\n isPrimaryColumnGroupsPresent() {\n return this.primaryHeaderRowCount > 1;\n }\n // if we are using autoGroupCols, then they should be included for quick filter. this covers the\n // following scenarios:\n // a) user provides 'field' into autoGroupCol of normal grid, so now because a valid col to filter leafs on\n // b) using tree data and user depends on autoGroupCol for first col, and we also want to filter on this\n // (tree data is a bit different, as parent rows can be filtered on, unlike row grouping)\n refreshQuickFilterColumns() {\n var _a;\n let columnsForQuickFilter = (_a = (this.isPivotMode() ? this.secondaryColumns : this.primaryColumns)) !== null && _a !== void 0 ? _a : [];\n if (this.groupAutoColumns) {\n columnsForQuickFilter = columnsForQuickFilter.concat(this.groupAutoColumns);\n }\n this.columnsForQuickFilter = this.gridOptionsService.get('includeHiddenColumnsInQuickFilter')\n ? columnsForQuickFilter\n : columnsForQuickFilter.filter(col => col.isVisible() || col.isRowGroupActive());\n }\n placeLockedColumns(cols) {\n const left = [];\n const normal = [];\n const right = [];\n cols.forEach((col) => {\n const position = col.getColDef().lockPosition;\n if (position === 'right') {\n right.push(col);\n }\n else if (position === 'left' || position === true) {\n left.push(col);\n }\n else {\n normal.push(col);\n }\n });\n return [...left, ...normal, ...right];\n }\n addAutoGroupToGridColumns() {\n if (missing(this.groupAutoColumns)) {\n this.destroyOldColumns(this.groupAutoColsBalancedTree);\n this.groupAutoColsBalancedTree = null;\n return;\n }\n this.gridColumns = this.groupAutoColumns ? this.groupAutoColumns.concat(this.gridColumns) : this.gridColumns;\n const newAutoColsTree = this.columnFactory.createForAutoGroups(this.groupAutoColumns, this.gridBalancedTree);\n this.destroyOldColumns(this.groupAutoColsBalancedTree, newAutoColsTree);\n this.groupAutoColsBalancedTree = newAutoColsTree;\n this.gridBalancedTree = newAutoColsTree.concat(this.gridBalancedTree);\n }\n // gets called after we copy down grid columns, to make sure any part of the gui\n // that tries to draw, eg the header, it will get empty lists of columns rather\n // than stale columns. for example, the header will received gridColumnsChanged\n // event, so will try and draw, but it will draw successfully when it acts on the\n // virtualColumnsChanged event\n clearDisplayedAndViewportColumns() {\n this.viewportRowLeft = {};\n this.viewportRowRight = {};\n this.viewportRowCenter = {};\n this.displayedColumnsLeft = [];\n this.displayedColumnsRight = [];\n this.displayedColumnsCenter = [];\n this.displayedColumns = [];\n this.ariaOrderColumns = [];\n this.viewportColumns = [];\n this.headerViewportColumns = [];\n this.viewportColumnsHash = '';\n }\n updateGroupsAndDisplayedColumns(source) {\n this.updateOpenClosedVisibilityInColumnGroups();\n this.deriveDisplayedColumns(source);\n this.refreshFlexedColumns();\n this.extractViewport();\n this.updateBodyWidths();\n // this event is picked up by the gui, headerRenderer and rowRenderer, to recalculate what columns to display\n const event = {\n type: Events.EVENT_DISPLAYED_COLUMNS_CHANGED\n };\n this.eventService.dispatchEvent(event);\n }\n deriveDisplayedColumns(source) {\n this.derivedDisplayedColumnsFromDisplayedTree(this.displayedTreeLeft, this.displayedColumnsLeft);\n this.derivedDisplayedColumnsFromDisplayedTree(this.displayedTreeCentre, this.displayedColumnsCenter);\n this.derivedDisplayedColumnsFromDisplayedTree(this.displayedTreeRight, this.displayedColumnsRight);\n this.joinColumnsAriaOrder();\n this.joinDisplayedColumns();\n this.setLeftValues(source);\n this.displayedAutoHeightCols = this.displayedColumns.filter(col => col.isAutoHeight());\n }\n isAutoRowHeightActive() {\n return this.autoHeightActive;\n }\n wasAutoRowHeightEverActive() {\n return this.autoHeightActiveAtLeastOnce;\n }\n joinColumnsAriaOrder() {\n const allColumns = this.getAllGridColumns();\n const pinnedLeft = [];\n const center = [];\n const pinnedRight = [];\n for (const col of allColumns) {\n const pinned = col.getPinned();\n if (!pinned) {\n center.push(col);\n }\n else if (pinned === true || pinned === 'left') {\n pinnedLeft.push(col);\n }\n else {\n pinnedRight.push(col);\n }\n }\n this.ariaOrderColumns = pinnedLeft.concat(center).concat(pinnedRight);\n }\n joinDisplayedColumns() {\n if (this.gridOptionsService.get('enableRtl')) {\n this.displayedColumns = this.displayedColumnsRight\n .concat(this.displayedColumnsCenter)\n .concat(this.displayedColumnsLeft);\n }\n else {\n this.displayedColumns = this.displayedColumnsLeft\n .concat(this.displayedColumnsCenter)\n .concat(this.displayedColumnsRight);\n }\n }\n // sets the left pixel position of each column\n setLeftValues(source) {\n this.setLeftValuesOfColumns(source);\n this.setLeftValuesOfGroups();\n }\n setLeftValuesOfColumns(source) {\n if (!this.primaryColumns) {\n return;\n }\n // go through each list of displayed columns\n const allColumns = this.getPrimaryAndSecondaryAndAutoColumns().slice(0);\n // let totalColumnWidth = this.getWidthOfColsInList()\n const doingRtl = this.gridOptionsService.get('enableRtl');\n [\n this.displayedColumnsLeft,\n this.displayedColumnsRight,\n this.displayedColumnsCenter\n ].forEach(columns => {\n if (doingRtl) {\n // when doing RTL, we start at the top most pixel (ie RHS) and work backwards\n let left = this.getWidthOfColsInList(columns);\n columns.forEach(column => {\n left -= column.getActualWidth();\n column.setLeft(left, source);\n });\n }\n else {\n // otherwise normal LTR, we start at zero\n let left = 0;\n columns.forEach(column => {\n column.setLeft(left, source);\n left += column.getActualWidth();\n });\n }\n removeAllFromUnorderedArray(allColumns, columns);\n });\n // items left in allColumns are columns not displayed, so remove the left position. this is\n // important for the rows, as if a col is made visible, then taken out, then made visible again,\n // we don't want the animation of the cell floating in from the old position, whatever that was.\n allColumns.forEach((column) => {\n column.setLeft(null, source);\n });\n }\n setLeftValuesOfGroups() {\n // a groups left value is the lest left value of it's children\n [\n this.displayedTreeLeft,\n this.displayedTreeRight,\n this.displayedTreeCentre\n ].forEach(columns => {\n columns.forEach(column => {\n if (column instanceof ColumnGroup) {\n const columnGroup = column;\n columnGroup.checkLeft();\n }\n });\n });\n }\n derivedDisplayedColumnsFromDisplayedTree(tree, columns) {\n columns.length = 0;\n this.columnUtils.depthFirstDisplayedColumnTreeSearch(tree, (child) => {\n if (child instanceof Column) {\n columns.push(child);\n }\n });\n }\n isColumnVirtualisationSuppressed() {\n // When running within jsdom the viewportRight is always 0, so we need to return true to allow\n // tests to validate all the columns.\n return this.suppressColumnVirtualisation || this.viewportRight === 0;\n }\n extractViewportColumns() {\n if (this.isColumnVirtualisationSuppressed()) {\n // no virtualisation, so don't filter\n this.viewportColumnsCenter = this.displayedColumnsCenter;\n this.headerViewportColumnsCenter = this.displayedColumnsCenter;\n }\n else {\n // filter out what should be visible\n this.viewportColumnsCenter = this.displayedColumnsCenter.filter(this.isColumnInRowViewport.bind(this));\n this.headerViewportColumnsCenter = this.displayedColumnsCenter.filter(this.isColumnInHeaderViewport.bind(this));\n }\n this.viewportColumns = this.viewportColumnsCenter\n .concat(this.displayedColumnsLeft)\n .concat(this.displayedColumnsRight);\n this.headerViewportColumns = this.headerViewportColumnsCenter\n .concat(this.displayedColumnsLeft)\n .concat(this.displayedColumnsRight);\n }\n getVirtualHeaderGroupRow(type, dept) {\n let result;\n switch (type) {\n case 'left':\n result = this.viewportRowLeft[dept];\n break;\n case 'right':\n result = this.viewportRowRight[dept];\n break;\n default:\n result = this.viewportRowCenter[dept];\n break;\n }\n if (missing(result)) {\n result = [];\n }\n return result;\n }\n calculateHeaderRows() {\n // go through each group, see if any of it's cols are displayed, and if yes,\n // then this group is included\n this.viewportRowLeft = {};\n this.viewportRowRight = {};\n this.viewportRowCenter = {};\n // for easy lookup when building the groups.\n const virtualColIds = {};\n this.headerViewportColumns.forEach(col => virtualColIds[col.getId()] = true);\n const testGroup = (children, result, dept) => {\n let returnValue = false;\n for (let i = 0; i < children.length; i++) {\n // see if this item is within viewport\n const child = children[i];\n let addThisItem = false;\n if (child instanceof Column) {\n // for column, test if column is included\n addThisItem = virtualColIds[child.getId()] === true;\n }\n else {\n // if group, base decision on children\n const columnGroup = child;\n const displayedChildren = columnGroup.getDisplayedChildren();\n if (displayedChildren) {\n addThisItem = testGroup(displayedChildren, result, dept + 1);\n }\n }\n if (addThisItem) {\n returnValue = true;\n if (!result[dept]) {\n result[dept] = [];\n }\n result[dept].push(child);\n }\n }\n return returnValue;\n };\n testGroup(this.displayedTreeLeft, this.viewportRowLeft, 0);\n testGroup(this.displayedTreeRight, this.viewportRowRight, 0);\n testGroup(this.displayedTreeCentre, this.viewportRowCenter, 0);\n }\n extractViewport() {\n const hashColumn = (c) => `${c.getId()}-${c.getPinned() || 'normal'}`;\n this.extractViewportColumns();\n const newHash = this.viewportColumns.map(hashColumn).join('#');\n const changed = this.viewportColumnsHash !== newHash;\n if (changed) {\n this.viewportColumnsHash = newHash;\n this.calculateHeaderRows();\n }\n return changed;\n }\n refreshFlexedColumns(params = {}) {\n var _a;\n const source = params.source ? params.source : 'flex';\n if (params.viewportWidth != null) {\n this.flexViewportWidth = params.viewportWidth;\n }\n if (!this.flexViewportWidth) {\n return [];\n }\n // If the grid has left-over space, divide it between flexing columns in proportion to their flex value.\n // A \"flexing column\" is one that has a 'flex' value set and is not currently being constrained by its\n // minWidth or maxWidth rules.\n let flexAfterDisplayIndex = -1;\n if (params.resizingCols) {\n const allResizingCols = new Set(params.resizingCols);\n // find the last resizing col, as only cols after this one are affected by the resizing\n let displayedCols = this.displayedColumnsCenter;\n for (let i = displayedCols.length - 1; i >= 0; i--) {\n if (allResizingCols.has(displayedCols[i])) {\n flexAfterDisplayIndex = i;\n break;\n }\n }\n }\n // the width of all of the columns for which the width has been determined\n let knownColumnsWidth = 0;\n let flexingColumns = [];\n // store the minimum width of all the flex columns, so we can determine if flex is even possible more quickly\n let minimumFlexedWidth = 0;\n let totalFlex = 0;\n for (let i = 0; i < this.displayedColumnsCenter.length; i++) {\n const isFlex = this.displayedColumnsCenter[i].getFlex() && i > flexAfterDisplayIndex;\n if (isFlex) {\n flexingColumns.push(this.displayedColumnsCenter[i]);\n totalFlex += this.displayedColumnsCenter[i].getFlex();\n minimumFlexedWidth += (_a = this.displayedColumnsCenter[i].getMinWidth()) !== null && _a !== void 0 ? _a : 0;\n }\n else {\n knownColumnsWidth += this.displayedColumnsCenter[i].getActualWidth();\n }\n }\n ;\n if (!flexingColumns.length) {\n return [];\n }\n let changedColumns = [];\n // this is for performance to prevent trying to flex when unnecessary\n if (knownColumnsWidth + minimumFlexedWidth > this.flexViewportWidth) {\n // known columns and the minimum width of all the flex cols are too wide for viewport\n // so don't flex\n flexingColumns.forEach(col => { var _a; return col.setActualWidth((_a = col.getMinWidth()) !== null && _a !== void 0 ? _a : 0, source); });\n // No columns should flex, but all have been changed. Swap arrays so events fire properly.\n // Expensive logic won't execute as flex columns is empty.\n changedColumns = flexingColumns;\n flexingColumns = [];\n }\n const flexingColumnSizes = [];\n let spaceForFlexingColumns;\n outer: while (true) {\n spaceForFlexingColumns = this.flexViewportWidth - knownColumnsWidth;\n const spacePerFlex = spaceForFlexingColumns / totalFlex;\n for (let i = 0; i < flexingColumns.length; i++) {\n const col = flexingColumns[i];\n const widthByFlexRule = spacePerFlex * col.getFlex();\n let constrainedWidth = 0;\n const minWidth = col.getMinWidth();\n const maxWidth = col.getMaxWidth();\n if (exists(minWidth) && widthByFlexRule < minWidth) {\n constrainedWidth = minWidth;\n }\n else if (exists(maxWidth) && widthByFlexRule > maxWidth) {\n constrainedWidth = maxWidth;\n }\n if (constrainedWidth) {\n // This column is not in fact flexing as it is being constrained to a specific size\n // so remove it from the list of flexing columns and start again\n col.setActualWidth(constrainedWidth, source);\n removeFromUnorderedArray(flexingColumns, col);\n totalFlex -= col.getFlex();\n changedColumns.push(col);\n knownColumnsWidth += col.getActualWidth();\n continue outer;\n }\n flexingColumnSizes[i] = Math.round(widthByFlexRule);\n }\n break;\n }\n let remainingSpace = spaceForFlexingColumns;\n flexingColumns.forEach((col, i) => {\n col.setActualWidth(Math.min(flexingColumnSizes[i], remainingSpace), source);\n changedColumns.push(col);\n remainingSpace -= flexingColumnSizes[i];\n });\n if (!params.skipSetLeft) {\n this.setLeftValues(source);\n }\n if (params.updateBodyWidths) {\n this.updateBodyWidths();\n }\n if (params.fireResizedEvent) {\n this.dispatchColumnResizedEvent(changedColumns, true, source, flexingColumns);\n }\n return flexingColumns;\n }\n // called from api\n sizeColumnsToFit(gridWidth, source = \"sizeColumnsToFit\", silent, params) {\n var _a, _b, _c, _d, _e;\n if (this.shouldQueueResizeOperations) {\n this.resizeOperationQueue.push(() => this.sizeColumnsToFit(gridWidth, source, silent, params));\n return;\n }\n const limitsMap = {};\n if (params) {\n (_a = params === null || params === void 0 ? void 0 : params.columnLimits) === null || _a === void 0 ? void 0 : _a.forEach((_a) => {\n var { key } = _a, dimensions = __rest(_a, [\"key\"]);\n limitsMap[typeof key === 'string' ? key : key.getColId()] = dimensions;\n });\n }\n // avoid divide by zero\n const allDisplayedColumns = this.getAllDisplayedColumns();\n const doColumnsAlreadyFit = gridWidth === this.getWidthOfColsInList(allDisplayedColumns);\n if (gridWidth <= 0 || !allDisplayedColumns.length || doColumnsAlreadyFit) {\n return;\n }\n const colsToSpread = [];\n const colsToNotSpread = [];\n allDisplayedColumns.forEach(column => {\n if (column.getColDef().suppressSizeToFit === true) {\n colsToNotSpread.push(column);\n }\n else {\n colsToSpread.push(column);\n }\n });\n // make a copy of the cols that are going to be resized\n const colsToDispatchEventFor = colsToSpread.slice(0);\n let finishedResizing = false;\n const moveToNotSpread = (column) => {\n removeFromArray(colsToSpread, column);\n colsToNotSpread.push(column);\n };\n // resetting cols to their original width makes the sizeColumnsToFit more deterministic,\n // rather than depending on the current size of the columns. most users call sizeColumnsToFit\n // immediately after grid is created, so will make no difference. however if application is calling\n // sizeColumnsToFit repeatedly (eg after column group is opened / closed repeatedly) we don't want\n // the columns to start shrinking / growing over time.\n //\n // NOTE: the process below will assign values to `this.actualWidth` of each column without firing events\n // for this reason we need to manually dispatch resize events after the resize has been done for each column.\n colsToSpread.forEach(column => {\n var _a, _b;\n column.resetActualWidth(source);\n const widthOverride = limitsMap === null || limitsMap === void 0 ? void 0 : limitsMap[column.getId()];\n const minOverride = ((_a = widthOverride === null || widthOverride === void 0 ? void 0 : widthOverride.minWidth) !== null && _a !== void 0 ? _a : params === null || params === void 0 ? void 0 : params.defaultMinWidth);\n const maxOverride = ((_b = widthOverride === null || widthOverride === void 0 ? void 0 : widthOverride.maxWidth) !== null && _b !== void 0 ? _b : params === null || params === void 0 ? void 0 : params.defaultMaxWidth);\n const colWidth = column.getActualWidth();\n if (typeof minOverride === 'number' && colWidth < minOverride) {\n column.setActualWidth(minOverride, source, true);\n }\n else if (typeof maxOverride === 'number' && colWidth > maxOverride) {\n column.setActualWidth(maxOverride, source, true);\n }\n });\n while (!finishedResizing) {\n finishedResizing = true;\n const availablePixels = gridWidth - this.getWidthOfColsInList(colsToNotSpread);\n if (availablePixels <= 0) {\n // no width, set everything to minimum\n colsToSpread.forEach((column) => {\n var _a, _b;\n const widthOverride = (_b = (_a = limitsMap === null || limitsMap === void 0 ? void 0 : limitsMap[column.getId()]) === null || _a === void 0 ? void 0 : _a.minWidth) !== null && _b !== void 0 ? _b : params === null || params === void 0 ? void 0 : params.defaultMinWidth;\n if (typeof widthOverride === 'number') {\n column.setActualWidth(widthOverride, source, true);\n return;\n }\n column.setMinimum(source);\n });\n }\n else {\n const scale = availablePixels / this.getWidthOfColsInList(colsToSpread);\n // we set the pixels for the last col based on what's left, as otherwise\n // we could be a pixel or two short or extra because of rounding errors.\n let pixelsForLastCol = availablePixels;\n // backwards through loop, as we are removing items as we go\n for (let i = colsToSpread.length - 1; i >= 0; i--) {\n const column = colsToSpread[i];\n const widthOverride = limitsMap === null || limitsMap === void 0 ? void 0 : limitsMap[column.getId()];\n const minOverride = ((_b = widthOverride === null || widthOverride === void 0 ? void 0 : widthOverride.minWidth) !== null && _b !== void 0 ? _b : params === null || params === void 0 ? void 0 : params.defaultMinWidth);\n const maxOverride = ((_c = widthOverride === null || widthOverride === void 0 ? void 0 : widthOverride.maxWidth) !== null && _c !== void 0 ? _c : params === null || params === void 0 ? void 0 : params.defaultMaxWidth);\n const colMinWidth = (_d = column.getMinWidth()) !== null && _d !== void 0 ? _d : 0;\n const colMaxWidth = (_e = column.getMaxWidth()) !== null && _e !== void 0 ? _e : Number.MAX_VALUE;\n const minWidth = typeof minOverride === 'number' && minOverride > colMinWidth ? minOverride : column.getMinWidth();\n const maxWidth = typeof maxOverride === 'number' && maxOverride < colMaxWidth ? maxOverride : column.getMaxWidth();\n let newWidth = Math.round(column.getActualWidth() * scale);\n if (exists(minWidth) && newWidth < minWidth) {\n newWidth = minWidth;\n moveToNotSpread(column);\n finishedResizing = false;\n }\n else if (exists(maxWidth) && newWidth > maxWidth) {\n newWidth = maxWidth;\n moveToNotSpread(column);\n finishedResizing = false;\n }\n else if (i === 0) { // if this is the last column\n newWidth = pixelsForLastCol;\n }\n column.setActualWidth(newWidth, source, true);\n pixelsForLastCol -= newWidth;\n }\n }\n }\n // see notes above\n colsToDispatchEventFor.forEach(col => {\n col.fireColumnWidthChangedEvent(source);\n });\n this.setLeftValues(source);\n this.updateBodyWidths();\n if (silent) {\n return;\n }\n this.dispatchColumnResizedEvent(colsToDispatchEventFor, true, source);\n }\n buildDisplayedTrees(visibleColumns) {\n const leftVisibleColumns = [];\n const rightVisibleColumns = [];\n const centerVisibleColumns = [];\n visibleColumns.forEach(column => {\n switch (column.getPinned()) {\n case \"left\":\n leftVisibleColumns.push(column);\n break;\n case \"right\":\n rightVisibleColumns.push(column);\n break;\n default:\n centerVisibleColumns.push(column);\n break;\n }\n });\n const groupInstanceIdCreator = new GroupInstanceIdCreator();\n this.displayedTreeLeft = this.displayedGroupCreator.createDisplayedGroups(leftVisibleColumns, groupInstanceIdCreator, 'left', this.displayedTreeLeft);\n this.displayedTreeRight = this.displayedGroupCreator.createDisplayedGroups(rightVisibleColumns, groupInstanceIdCreator, 'right', this.displayedTreeRight);\n this.displayedTreeCentre = this.displayedGroupCreator.createDisplayedGroups(centerVisibleColumns, groupInstanceIdCreator, null, this.displayedTreeCentre);\n this.updateDisplayedMap();\n }\n updateDisplayedMap() {\n this.displayedColumnsAndGroupsMap = {};\n const func = (child) => {\n this.displayedColumnsAndGroupsMap[child.getUniqueId()] = child;\n };\n this.columnUtils.depthFirstAllColumnTreeSearch(this.displayedTreeCentre, func);\n this.columnUtils.depthFirstAllColumnTreeSearch(this.displayedTreeLeft, func);\n this.columnUtils.depthFirstAllColumnTreeSearch(this.displayedTreeRight, func);\n }\n isDisplayed(item) {\n const fromMap = this.displayedColumnsAndGroupsMap[item.getUniqueId()];\n // check for reference, in case new column / group with same id is now present\n return fromMap === item;\n }\n updateOpenClosedVisibilityInColumnGroups() {\n const allColumnGroups = this.getAllDisplayedTrees();\n this.columnUtils.depthFirstAllColumnTreeSearch(allColumnGroups, child => {\n if (child instanceof ColumnGroup) {\n child.calculateDisplayedColumns();\n }\n });\n }\n getGroupAutoColumns() {\n return this.groupAutoColumns;\n }\n /**\n * Creates new auto group columns if required\n * @returns whether auto cols have changed\n */\n createGroupAutoColumnsIfNeeded() {\n const forceRecreateAutoGroups = this.forceRecreateAutoGroups;\n this.forceRecreateAutoGroups = false;\n if (!this.autoGroupsNeedBuilding) {\n return false;\n }\n this.autoGroupsNeedBuilding = false;\n const groupFullWidthRow = this.gridOptionsService.isGroupUseEntireRow(this.pivotMode);\n // we need to allow suppressing auto-column separately for group and pivot as the normal situation\n // is CSRM and user provides group column themselves for normal view, but when they go into pivot the\n // columns are generated by the grid so no opportunity for user to provide group column. so need a way\n // to suppress auto-col for grouping only, and not pivot.\n // however if using Viewport RM or SSRM and user is providing the columns, the user may wish full control\n // of the group column in this instance.\n const suppressAutoColumn = this.pivotMode ?\n this.gridOptionsService.get('pivotSuppressAutoColumn') : this.isGroupSuppressAutoColumn();\n const groupingActive = this.rowGroupColumns.length > 0 || this.gridOptionsService.get('treeData');\n const needAutoColumns = groupingActive && !suppressAutoColumn && !groupFullWidthRow;\n if (needAutoColumns) {\n const newAutoGroupCols = this.autoGroupColService.createAutoGroupColumns(this.rowGroupColumns);\n const autoColsDifferent = !this.autoColsEqual(newAutoGroupCols, this.groupAutoColumns);\n // we force recreate so new group cols pick up the new\n // definitions. otherwise we could ignore the new cols because they appear to be the same.\n if (autoColsDifferent || forceRecreateAutoGroups) {\n this.groupAutoColumns = newAutoGroupCols;\n return true;\n }\n }\n else {\n this.groupAutoColumns = null;\n }\n return false;\n }\n isGroupSuppressAutoColumn() {\n const groupDisplayType = this.gridOptionsService.get('groupDisplayType');\n const isCustomRowGroups = groupDisplayType === 'custom';\n if (isCustomRowGroups) {\n return true;\n }\n const treeDataDisplayType = this.gridOptionsService.get('treeDataDisplayType');\n return treeDataDisplayType === 'custom';\n }\n autoColsEqual(colsA, colsB) {\n return areEqual(colsA, colsB, (a, b) => a.getColId() === b.getColId());\n }\n getWidthOfColsInList(columnList) {\n return columnList.reduce((width, col) => width + col.getActualWidth(), 0);\n }\n getFirstDisplayedColumn() {\n const isRtl = this.gridOptionsService.get('enableRtl');\n const queryOrder = [\n 'getDisplayedLeftColumns',\n 'getDisplayedCenterColumns',\n 'getDisplayedRightColumns'\n ];\n if (isRtl) {\n queryOrder.reverse();\n }\n for (let i = 0; i < queryOrder.length; i++) {\n const container = this[queryOrder[i]]();\n if (container.length) {\n return isRtl ? last(container) : container[0];\n }\n }\n return null;\n }\n setColumnHeaderHeight(col, height) {\n const changed = col.setAutoHeaderHeight(height);\n if (changed) {\n const event = {\n type: Events.EVENT_COLUMN_HEADER_HEIGHT_CHANGED,\n column: col,\n columns: [col],\n source: 'autosizeColumnHeaderHeight',\n };\n this.eventService.dispatchEvent(event);\n }\n }\n getColumnGroupHeaderRowHeight() {\n if (this.isPivotMode()) {\n return this.getPivotGroupHeaderHeight();\n }\n return this.getGroupHeaderHeight();\n }\n getColumnHeaderRowHeight() {\n const defaultHeight = (this.isPivotMode() ?\n this.getPivotHeaderHeight() :\n this.getHeaderHeight());\n const displayedHeights = this.getAllDisplayedColumns()\n .filter((col) => col.isAutoHeaderHeight())\n .map((col) => col.getAutoHeaderHeight() || 0);\n return Math.max(defaultHeight, ...displayedHeights);\n }\n getHeaderHeight() {\n var _a;\n return (_a = this.gridOptionsService.get('headerHeight')) !== null && _a !== void 0 ? _a : this.environment.getFromTheme(25, 'headerHeight');\n }\n getFloatingFiltersHeight() {\n var _a;\n return (_a = this.gridOptionsService.get('floatingFiltersHeight')) !== null && _a !== void 0 ? _a : this.getHeaderHeight();\n }\n getGroupHeaderHeight() {\n var _a;\n return (_a = this.gridOptionsService.get('groupHeaderHeight')) !== null && _a !== void 0 ? _a : this.getHeaderHeight();\n }\n getPivotHeaderHeight() {\n var _a;\n return (_a = this.gridOptionsService.get('pivotHeaderHeight')) !== null && _a !== void 0 ? _a : this.getHeaderHeight();\n }\n getPivotGroupHeaderHeight() {\n var _a;\n return (_a = this.gridOptionsService.get('pivotGroupHeaderHeight')) !== null && _a !== void 0 ? _a : this.getGroupHeaderHeight();\n }\n queueResizeOperations() {\n this.shouldQueueResizeOperations = true;\n }\n processResizeOperations() {\n this.shouldQueueResizeOperations = false;\n this.resizeOperationQueue.forEach(resizeOperation => resizeOperation());\n this.resizeOperationQueue = [];\n }\n resetColumnDefIntoColumn(column, source) {\n const userColDef = column.getUserProvidedColDef();\n if (!userColDef) {\n return false;\n }\n const newColDef = this.columnFactory.addColumnDefaultAndTypes(userColDef, column.getColId());\n column.setColDef(newColDef, userColDef, source);\n return true;\n }\n isColumnGroupingLocked(column) {\n const groupLockGroupColumns = this.gridOptionsService.get('groupLockGroupColumns');\n if (!column.isRowGroupActive() || groupLockGroupColumns === 0) {\n return false;\n }\n if (groupLockGroupColumns === -1) {\n return true;\n }\n const colIndex = this.rowGroupColumns.findIndex(groupCol => groupCol.getColId() === column.getColId());\n return groupLockGroupColumns > colIndex;\n }\n generateColumnStateForRowGroupAndPivotIndexes(updatedRowGroupColumnState, updatedPivotColumnState) {\n // Generally columns should appear in the order they were before. For any new columns, these should appear in the original col def order.\n // The exception is for columns that were added via `addGroupColumns`. These should appear at the end.\n // We don't have to worry about full updates, as in this case the arrays are correct, and they won't appear in the updated lists.\n let existingColumnStateUpdates = {};\n const orderColumns = (updatedColumnState, colList, enableProp, initialEnableProp, indexProp, initialIndexProp) => {\n if (!colList.length || !this.primaryColumns) {\n return [];\n }\n const updatedColIdArray = Object.keys(updatedColumnState);\n const updatedColIds = new Set(updatedColIdArray);\n const newColIds = new Set(updatedColIdArray);\n const allColIds = new Set(colList.map(column => {\n const colId = column.getColId();\n newColIds.delete(colId);\n return colId;\n }).concat(updatedColIdArray));\n const colIdsInOriginalOrder = [];\n const originalOrderMap = {};\n let orderIndex = 0;\n for (let i = 0; i < this.primaryColumns.length; i++) {\n const colId = this.primaryColumns[i].getColId();\n if (allColIds.has(colId)) {\n colIdsInOriginalOrder.push(colId);\n originalOrderMap[colId] = orderIndex++;\n }\n }\n // follow approach in `resetColumnState`\n let index = 1000;\n let hasAddedNewCols = false;\n let lastIndex = 0;\n const processPrecedingNewCols = (colId) => {\n const originalOrderIndex = originalOrderMap[colId];\n for (let i = lastIndex; i < originalOrderIndex; i++) {\n const newColId = colIdsInOriginalOrder[i];\n if (newColIds.has(newColId)) {\n updatedColumnState[newColId][indexProp] = index++;\n newColIds.delete(newColId);\n }\n }\n lastIndex = originalOrderIndex;\n };\n colList.forEach(column => {\n const colId = column.getColId();\n if (updatedColIds.has(colId)) {\n // New col already exists. Add any other new cols that should be before it.\n processPrecedingNewCols(colId);\n updatedColumnState[colId][indexProp] = index++;\n }\n else {\n const colDef = column.getColDef();\n const missingIndex = colDef[indexProp] === null || (colDef[indexProp] === undefined && colDef[initialIndexProp] == null);\n if (missingIndex) {\n if (!hasAddedNewCols) {\n const propEnabled = colDef[enableProp] || (colDef[enableProp] === undefined && colDef[initialEnableProp]);\n if (propEnabled) {\n processPrecedingNewCols(colId);\n }\n else {\n // Reached the first manually added column. Add all the new columns now.\n newColIds.forEach(newColId => {\n // Rather than increment the index, just use the original order index - doesn't need to be contiguous.\n updatedColumnState[newColId][indexProp] = index + originalOrderMap[newColId];\n });\n index += colIdsInOriginalOrder.length;\n hasAddedNewCols = true;\n }\n }\n if (!existingColumnStateUpdates[colId]) {\n existingColumnStateUpdates[colId] = { colId };\n }\n existingColumnStateUpdates[colId][indexProp] = index++;\n }\n }\n });\n };\n orderColumns(updatedRowGroupColumnState, this.rowGroupColumns, 'rowGroup', 'initialRowGroup', 'rowGroupIndex', 'initialRowGroupIndex');\n orderColumns(updatedPivotColumnState, this.pivotColumns, 'pivot', 'initialPivot', 'pivotIndex', 'initialPivotIndex');\n return Object.values(existingColumnStateUpdates);\n }\n onColumnsReady() {\n const autoSizeStrategy = this.gridOptionsService.get('autoSizeStrategy');\n if (!autoSizeStrategy) {\n return;\n }\n const { type } = autoSizeStrategy;\n // ensure things like aligned grids have linked first\n setTimeout(() => {\n if (type === 'fitGridWidth') {\n const { columnLimits: propColumnLimits, defaultMinWidth, defaultMaxWidth } = autoSizeStrategy;\n const columnLimits = propColumnLimits === null || propColumnLimits === void 0 ? void 0 : propColumnLimits.map(({ colId: key, minWidth, maxWidth }) => ({\n key,\n minWidth,\n maxWidth\n }));\n this.ctrlsService.getGridBodyCtrl().sizeColumnsToFit({\n defaultMinWidth,\n defaultMaxWidth,\n columnLimits\n });\n }\n else if (type === 'fitProvidedWidth') {\n this.sizeColumnsToFit(autoSizeStrategy.width, 'sizeColumnsToFit');\n }\n });\n }\n onFirstDataRendered() {\n const autoSizeStrategy = this.gridOptionsService.get('autoSizeStrategy');\n if ((autoSizeStrategy === null || autoSizeStrategy === void 0 ? void 0 : autoSizeStrategy.type) !== 'fitCellContents') {\n return;\n }\n const { colIds: columns, skipHeader } = autoSizeStrategy;\n // ensure render has finished\n setTimeout(() => {\n if (columns) {\n this.autoSizeColumns({\n columns,\n skipHeader,\n source: 'autosizeColumns'\n });\n }\n else {\n this.autoSizeAllColumns('autosizeColumns', skipHeader);\n }\n });\n }\n};\n__decorate([\n Autowired('expressionService')\n], ColumnModel.prototype, \"expressionService\", void 0);\n__decorate([\n Autowired('columnFactory')\n], ColumnModel.prototype, \"columnFactory\", void 0);\n__decorate([\n Autowired('displayedGroupCreator')\n], ColumnModel.prototype, \"displayedGroupCreator\", void 0);\n__decorate([\n Autowired('ctrlsService')\n], ColumnModel.prototype, \"ctrlsService\", void 0);\n__decorate([\n Autowired('autoWidthCalculator')\n], ColumnModel.prototype, \"autoWidthCalculator\", void 0);\n__decorate([\n Autowired('columnUtils')\n], ColumnModel.prototype, \"columnUtils\", void 0);\n__decorate([\n Autowired('columnAnimationService')\n], ColumnModel.prototype, \"columnAnimationService\", void 0);\n__decorate([\n Autowired('autoGroupColService')\n], ColumnModel.prototype, \"autoGroupColService\", void 0);\n__decorate([\n Optional('aggFuncService')\n], ColumnModel.prototype, \"aggFuncService\", void 0);\n__decorate([\n Optional('valueCache')\n], ColumnModel.prototype, \"valueCache\", void 0);\n__decorate([\n Optional('animationFrameService')\n], ColumnModel.prototype, \"animationFrameService\", void 0);\n__decorate([\n Autowired('sortController')\n], ColumnModel.prototype, \"sortController\", void 0);\n__decorate([\n Autowired('columnDefFactory')\n], ColumnModel.prototype, \"columnDefFactory\", void 0);\n__decorate([\n PostConstruct\n], ColumnModel.prototype, \"init\", null);\n__decorate([\n PreDestroy\n], ColumnModel.prototype, \"destroyColumns\", null);\n__decorate([\n __param(0, Qualifier('loggerFactory'))\n], ColumnModel.prototype, \"setBeans\", null);\nColumnModel = __decorate([\n Bean('columnModel')\n], ColumnModel);\nexport { ColumnModel };\nexport function convertSourceType(source) {\n // unfortunately they do not match so need to perform conversion\n return source === 'gridOptionsUpdated' ? 'gridOptionsChanged' : source;\n}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { ColumnGroup } from \"../entities/columnGroup.mjs\";\nimport { ProvidedColumnGroup } from \"../entities/providedColumnGroup.mjs\";\nimport { Bean } from \"../context/context.mjs\";\nimport { BeanStub } from \"../context/beanStub.mjs\";\nimport { attrToNumber } from \"../utils/generic.mjs\";\n// takes in a list of columns, as specified by the column definitions, and returns column groups\nlet ColumnUtils = class ColumnUtils extends BeanStub {\n calculateColMinWidth(colDef) {\n return colDef.minWidth != null ? colDef.minWidth : this.environment.getMinColWidth();\n }\n calculateColMaxWidth(colDef) {\n return colDef.maxWidth != null ? colDef.maxWidth : Number.MAX_SAFE_INTEGER;\n }\n calculateColInitialWidth(colDef) {\n const minColWidth = this.calculateColMinWidth(colDef);\n const maxColWidth = this.calculateColMaxWidth(colDef);\n let width;\n const colDefWidth = attrToNumber(colDef.width);\n const colDefInitialWidth = attrToNumber(colDef.initialWidth);\n if (colDefWidth != null) {\n width = colDefWidth;\n }\n else if (colDefInitialWidth != null) {\n width = colDefInitialWidth;\n }\n else {\n width = 200;\n }\n return Math.max(Math.min(width, maxColWidth), minColWidth);\n }\n getOriginalPathForColumn(column, originalBalancedTree) {\n const result = [];\n let found = false;\n const recursePath = (balancedColumnTree, dept) => {\n for (let i = 0; i < balancedColumnTree.length; i++) {\n if (found) {\n return;\n }\n // quit the search, so 'result' is kept with the found result\n const node = balancedColumnTree[i];\n if (node instanceof ProvidedColumnGroup) {\n const nextNode = node;\n recursePath(nextNode.getChildren(), dept + 1);\n result[dept] = node;\n }\n else if (node === column) {\n found = true;\n }\n }\n };\n recursePath(originalBalancedTree, 0);\n // we should always find the path, but in case there is a bug somewhere, returning null\n // will make it fail rather than provide a 'hard to track down' bug\n return found ? result : null;\n }\n depthFirstOriginalTreeSearch(parent, tree, callback) {\n if (!tree) {\n return;\n }\n tree.forEach((child) => {\n if (child instanceof ProvidedColumnGroup) {\n this.depthFirstOriginalTreeSearch(child, child.getChildren(), callback);\n }\n callback(child, parent);\n });\n }\n depthFirstAllColumnTreeSearch(tree, callback) {\n if (!tree) {\n return;\n }\n tree.forEach((child) => {\n if (child instanceof ColumnGroup) {\n this.depthFirstAllColumnTreeSearch(child.getChildren(), callback);\n }\n callback(child);\n });\n }\n depthFirstDisplayedColumnTreeSearch(tree, callback) {\n if (!tree) {\n return;\n }\n tree.forEach((child) => {\n if (child instanceof ColumnGroup) {\n this.depthFirstDisplayedColumnTreeSearch(child.getDisplayedChildren(), callback);\n }\n callback(child);\n });\n }\n};\nColumnUtils = __decorate([\n Bean('columnUtils')\n], ColumnUtils);\nexport { ColumnUtils };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { ColumnGroup } from \"../entities/columnGroup.mjs\";\nimport { Bean } from \"../context/context.mjs\";\nimport { BeanStub } from \"../context/beanStub.mjs\";\nimport { exists } from \"../utils/generic.mjs\";\n// takes in a list of columns, as specified by the column definitions, and returns column groups\nlet DisplayedGroupCreator = class DisplayedGroupCreator extends BeanStub {\n createDisplayedGroups(\n // all displayed columns sorted - this is the columns the grid should show\n sortedVisibleColumns, \n // creates unique id's for the group\n groupInstanceIdCreator, \n // whether it's left, right or center col\n pinned, \n // we try to reuse old groups if we can, to allow gui to do animation\n oldDisplayedGroups) {\n const oldColumnsMapped = this.mapOldGroupsById(oldDisplayedGroups);\n /**\n * The following logic starts at the leaf level of columns, iterating through them to build their parent\n * groups when the parents match.\n *\n * The created groups are then added to an array, and similarly iterated on until we reach the top level.\n *\n * When row groups have no original parent, it's added to the result.\n */\n const topLevelResultCols = [];\n // this is an array of cols or col groups at one level of depth, starting from leaf and ending at root\n let groupsOrColsAtCurrentLevel = sortedVisibleColumns;\n while (groupsOrColsAtCurrentLevel.length) {\n // store what's currently iterating so the function can build the next level of col groups\n const currentlyIterating = groupsOrColsAtCurrentLevel;\n groupsOrColsAtCurrentLevel = [];\n // store the index of the last row which was different from the previous row, this is used as a slice\n // index for finding the children to group together\n let lastGroupedColIdx = 0;\n // create a group of children from lastGroupedColIdx to the provided `to` parameter\n const createGroupToIndex = (to) => {\n const from = lastGroupedColIdx;\n lastGroupedColIdx = to;\n const previousNode = currentlyIterating[from];\n const previousNodeProvided = previousNode instanceof ColumnGroup ? previousNode.getProvidedColumnGroup() : previousNode;\n const previousNodeParent = previousNodeProvided.getOriginalParent();\n if (previousNodeParent == null) {\n // if the last node was different, and had a null parent, then we add all the nodes to the final\n // results)\n for (let i = from; i < to; i++) {\n topLevelResultCols.push(currentlyIterating[i]);\n }\n return;\n }\n // the parent differs from the previous node, so we create a group from the previous node\n // and add all to the result array, except the current node.\n const newGroup = this.createColumnGroup(previousNodeParent, groupInstanceIdCreator, oldColumnsMapped, pinned);\n for (let i = from; i < to; i++) {\n newGroup.addChild(currentlyIterating[i]);\n }\n groupsOrColsAtCurrentLevel.push(newGroup);\n };\n for (let i = 1; i < currentlyIterating.length; i++) {\n const thisNode = currentlyIterating[i];\n const thisNodeProvided = thisNode instanceof ColumnGroup ? thisNode.getProvidedColumnGroup() : thisNode;\n const thisNodeParent = thisNodeProvided.getOriginalParent();\n const previousNode = currentlyIterating[lastGroupedColIdx];\n const previousNodeProvided = previousNode instanceof ColumnGroup ? previousNode.getProvidedColumnGroup() : previousNode;\n const previousNodeParent = previousNodeProvided.getOriginalParent();\n if (thisNodeParent !== previousNodeParent) {\n createGroupToIndex(i);\n }\n }\n if (lastGroupedColIdx < currentlyIterating.length) {\n createGroupToIndex(currentlyIterating.length);\n }\n }\n this.setupParentsIntoColumns(topLevelResultCols, null);\n return topLevelResultCols;\n }\n createColumnGroup(providedGroup, groupInstanceIdCreator, oldColumnsMapped, pinned) {\n const groupId = providedGroup.getGroupId();\n const instanceId = groupInstanceIdCreator.getInstanceIdForKey(groupId);\n const uniqueId = ColumnGroup.createUniqueId(groupId, instanceId);\n let columnGroup = oldColumnsMapped[uniqueId];\n // if the user is setting new colDefs, it is possible that the id's overlap, and we\n // would have a false match from above. so we double check we are talking about the\n // same original column group.\n if (columnGroup && columnGroup.getProvidedColumnGroup() !== providedGroup) {\n columnGroup = null;\n }\n if (exists(columnGroup)) {\n // clean out the old column group here, as we will be adding children into it again\n columnGroup.reset();\n }\n else {\n columnGroup = new ColumnGroup(providedGroup, groupId, instanceId, pinned);\n this.context.createBean(columnGroup);\n }\n return columnGroup;\n }\n // returns back a 2d map of ColumnGroup as follows: groupId -> instanceId -> ColumnGroup\n mapOldGroupsById(displayedGroups) {\n const result = {};\n const recursive = (columnsOrGroups) => {\n columnsOrGroups.forEach(columnOrGroup => {\n if (columnOrGroup instanceof ColumnGroup) {\n const columnGroup = columnOrGroup;\n result[columnOrGroup.getUniqueId()] = columnGroup;\n recursive(columnGroup.getChildren());\n }\n });\n };\n if (displayedGroups) {\n recursive(displayedGroups);\n }\n return result;\n }\n setupParentsIntoColumns(columnsOrGroups, parent) {\n columnsOrGroups.forEach(columnsOrGroup => {\n columnsOrGroup.setParent(parent);\n if (columnsOrGroup instanceof ColumnGroup) {\n const columnGroup = columnsOrGroup;\n this.setupParentsIntoColumns(columnGroup.getChildren(), columnGroup);\n }\n });\n }\n};\nDisplayedGroupCreator = __decorate([\n Bean('displayedGroupCreator')\n], DisplayedGroupCreator);\nexport { DisplayedGroupCreator };\n","export const INITIAL_GRID_OPTION_KEYS = {\n enableBrowserTooltips: true,\n tooltipTrigger: true,\n tooltipMouseTrack: true,\n tooltipInteraction: true,\n defaultColGroupDef: true,\n suppressAutoSize: true,\n skipHeaderOnAutoSize: true,\n autoSizeStrategy: true,\n components: true,\n stopEditingWhenCellsLoseFocus: true,\n undoRedoCellEditing: true,\n undoRedoCellEditingLimit: true,\n excelStyles: true,\n cacheQuickFilter: true,\n excludeHiddenColumnsFromQuickFilter: true,\n advancedFilterModel: true,\n customChartThemes: true,\n chartThemeOverrides: true,\n enableChartToolPanelsButton: true,\n suppressChartToolPanelsButton: true,\n chartToolPanelsDef: true,\n loadingCellRendererSelector: true,\n localeText: true,\n keepDetailRows: true,\n keepDetailRowsCount: true,\n detailRowHeight: true,\n detailRowAutoHeight: true,\n tabIndex: true,\n valueCache: true,\n valueCacheNeverExpires: true,\n enableCellExpressions: true,\n suppressParentsInRowNodes: true,\n suppressTouch: true,\n suppressAsyncEvents: true,\n suppressBrowserResizeObserver: true,\n suppressPropertyNamesCheck: true,\n debug: true,\n loadingOverlayComponent: true,\n suppressLoadingOverlay: true,\n noRowsOverlayComponent: true,\n paginationPageSizeSelector: true,\n paginateChildRows: true,\n pivotPanelShow: true,\n pivotSuppressAutoColumn: true,\n suppressExpandablePivotGroups: true,\n aggFuncs: true,\n suppressAggFuncInHeader: true,\n suppressAggAtRootLevel: true,\n removePivotHeaderRowWhenSingleValueColumn: true,\n allowShowChangeAfterFilter: true,\n ensureDomOrder: true,\n enableRtl: true,\n suppressColumnVirtualisation: true,\n suppressMaxRenderedRowRestriction: true,\n suppressRowVirtualisation: true,\n rowDragText: true,\n suppressGroupMaintainValueType: true,\n groupLockGroupColumns: true,\n rowGroupPanelSuppressSort: true,\n suppressGroupRowsSticky: true,\n rowModelType: true,\n cacheOverflowSize: true,\n infiniteInitialRowCount: true,\n serverSideInitialRowCount: true,\n suppressServerSideInfiniteScroll: true,\n maxBlocksInCache: true,\n maxConcurrentDatasourceRequests: true,\n blockLoadDebounceMillis: true,\n serverSideOnlyRefreshFilteredGroups: true,\n serverSidePivotResultFieldSeparator: true,\n viewportRowModelPageSize: true,\n viewportRowModelBufferSize: true,\n debounceVerticalScrollbar: true,\n suppressAnimationFrame: true,\n suppressPreventDefaultOnMouseWheel: true,\n scrollbarWidth: true,\n icons: true,\n suppressRowTransform: true,\n gridId: true,\n functionsPassive: true,\n enableGroupEdit: true,\n initialState: true,\n processUnpinnedColumns: true,\n createChartContainer: true,\n getLocaleText: true,\n getRowId: true,\n reactiveCustomComponents: true,\n columnMenu: true,\n};\n/**\n * These keys are used for validating properties supplied on a gridOptions object, and for code generation.\n * If you change the properties on the gridOptions interface, you *must* update this file as well to be consistent.\n */\nexport class PropertyKeys {\n}\nPropertyKeys.STRING_PROPERTIES = [\n 'rowSelection', 'overlayLoadingTemplate', 'overlayNoRowsTemplate', 'gridId', 'quickFilterText', 'rowModelType', 'editType', 'domLayout',\n 'clipboardDelimiter', 'rowGroupPanelShow', 'multiSortKey', 'pivotColumnGroupTotals', 'pivotRowTotals', 'pivotPanelShow', 'fillHandleDirection',\n 'groupDisplayType', 'treeDataDisplayType', 'colResizeDefault', 'tooltipTrigger', 'serverSidePivotResultFieldSeparator', 'columnMenu',\n];\nPropertyKeys.OBJECT_PROPERTIES = [\n 'components', 'rowStyle', 'context', 'autoGroupColumnDef', 'localeText', 'icons', 'datasource', 'serverSideDatasource', 'viewportDatasource',\n 'groupRowRendererParams', 'aggFuncs', 'fullWidthCellRendererParams', 'defaultColGroupDef', 'defaultColDef', 'defaultCsvExportParams',\n 'defaultExcelExportParams', 'columnTypes', 'rowClassRules', 'detailCellRendererParams', 'loadingCellRendererParams', 'loadingOverlayComponentParams',\n 'noRowsOverlayComponentParams', 'popupParent', 'statusBar', 'sideBar', 'chartThemeOverrides', 'customChartThemes', 'chartToolPanelsDef',\n 'dataTypeDefinitions', 'advancedFilterModel', 'advancedFilterParent', 'advancedFilterBuilderParams', 'initialState', 'autoSizeStrategy',\n];\nPropertyKeys.ARRAY_PROPERTIES = [\n 'sortingOrder', 'alignedGrids', 'rowData', 'columnDefs', 'excelStyles', 'pinnedTopRowData', 'pinnedBottomRowData', 'chartThemes',\n 'rowClass', 'paginationPageSizeSelector',\n];\nPropertyKeys.NUMBER_PROPERTIES = [\n 'rowHeight', 'detailRowHeight', 'rowBuffer', 'headerHeight', 'groupHeaderHeight', 'groupLockGroupColumns', 'floatingFiltersHeight',\n 'pivotHeaderHeight', 'pivotGroupHeaderHeight', 'groupDefaultExpanded', 'pivotDefaultExpanded', 'viewportRowModelPageSize',\n 'viewportRowModelBufferSize', 'autoSizePadding', 'maxBlocksInCache', 'maxConcurrentDatasourceRequests', 'tooltipShowDelay',\n 'tooltipHideDelay', 'cacheOverflowSize', 'paginationPageSize', 'cacheBlockSize', 'infiniteInitialRowCount', 'serverSideInitialRowCount',\n 'scrollbarWidth', 'asyncTransactionWaitMillis', 'blockLoadDebounceMillis', 'keepDetailRowsCount', 'undoRedoCellEditingLimit',\n 'cellFlashDelay', 'cellFadeDelay', 'cellFlashDuration', 'cellFadeDuration', 'tabIndex'\n];\nPropertyKeys.BOOLEAN_PROPERTIES = [\n 'suppressMakeColumnVisibleAfterUnGroup', 'suppressRowClickSelection', 'suppressCellFocus', 'suppressHeaderFocus', 'suppressHorizontalScroll', 'groupSelectsChildren',\n 'alwaysShowHorizontalScroll', 'alwaysShowVerticalScroll', 'debug', 'enableBrowserTooltips', 'enableCellExpressions', 'groupIncludeTotalFooter',\n 'groupSuppressBlankHeader', 'suppressMenuHide', 'suppressRowDeselection', 'unSortIcon', 'suppressMultiSort', 'alwaysMultiSort', 'singleClickEdit',\n 'suppressLoadingOverlay', 'suppressNoRowsOverlay', 'suppressAutoSize', 'skipHeaderOnAutoSize', 'suppressParentsInRowNodes', 'suppressColumnMoveAnimation',\n 'suppressMovableColumns', 'suppressFieldDotNotation', 'enableRangeSelection', 'enableRangeHandle', 'enableFillHandle', 'suppressClearOnFillReduction',\n 'deltaSort', 'suppressTouch', 'suppressAsyncEvents', 'allowContextMenuWithControlKey', 'suppressContextMenu', 'enableCellChangeFlash',\n 'suppressDragLeaveHidesColumns', 'suppressRowGroupHidesColumns', 'suppressMiddleClickScrolls', 'suppressPreventDefaultOnMouseWheel',\n 'suppressCopyRowsToClipboard', 'copyHeadersToClipboard', 'copyGroupHeadersToClipboard', 'pivotMode', 'suppressAggFuncInHeader',\n 'suppressColumnVirtualisation', 'alwaysAggregateAtRootLevel', 'suppressAggAtRootLevel', 'suppressFocusAfterRefresh', 'functionsPassive',\n 'functionsReadOnly', 'animateRows', 'groupSelectsFiltered', 'groupRemoveSingleChildren', 'groupRemoveLowestSingleChildren', 'enableRtl',\n 'suppressClickEdit', 'rowDragEntireRow', 'rowDragManaged', 'suppressRowDrag', 'suppressMoveWhenRowDragging', 'rowDragMultiRow', 'enableGroupEdit',\n 'embedFullWidthRows', 'suppressPaginationPanel', 'groupHideOpenParents', 'groupAllowUnbalanced', 'pagination', 'paginationAutoPageSize',\n 'suppressScrollOnNewData', 'suppressScrollWhenPopupsAreOpen', 'purgeClosedRowNodes', 'cacheQuickFilter', 'includeHiddenColumnsInQuickFilter',\n 'excludeHiddenColumnsFromQuickFilter', 'ensureDomOrder', 'accentedSort', 'suppressChangeDetection', 'valueCache', 'valueCacheNeverExpires',\n 'aggregateOnlyChangedColumns', 'suppressAnimationFrame', 'suppressExcelExport', 'suppressCsvExport', 'includeHiddenColumnsInAdvancedFilter',\n 'suppressMultiRangeSelection', 'enterMovesDown', 'enterMovesDownAfterEdit', 'enterNavigatesVerticallyAfterEdit', 'enterNavigatesVertically',\n 'suppressPropertyNamesCheck', 'rowMultiSelectWithClick', 'suppressRowHoverHighlight', 'suppressRowTransform', 'suppressClipboardPaste',\n 'suppressLastEmptyLineOnPaste', 'enableCharts', 'enableChartToolPanelsButton', 'suppressChartToolPanelsButton', 'suppressMaintainUnsortedOrder',\n 'enableCellTextSelection', 'suppressBrowserResizeObserver', 'suppressMaxRenderedRowRestriction', 'excludeChildrenWhenTreeDataFiltering',\n 'tooltipMouseTrack', 'tooltipInteraction', 'keepDetailRows', 'paginateChildRows', 'preventDefaultOnContextMenu', 'undoRedoCellEditing',\n 'allowDragFromColumnsToolPanel', 'pivotSuppressAutoColumn', 'suppressExpandablePivotGroups', 'debounceVerticalScrollbar', 'detailRowAutoHeight',\n 'serverSideFilterAllLevels', 'serverSideSortAllLevels', 'serverSideEnableClientSideSort', 'serverSideOnlyRefreshFilteredGroups', 'serverSideSortOnServer', 'serverSideFilterOnServer',\n 'suppressAggFilteredOnly', 'showOpenedGroup', 'suppressClipboardApi', 'suppressModelUpdateAfterUpdateTransaction', 'stopEditingWhenCellsLoseFocus',\n 'maintainColumnOrder', 'groupMaintainOrder', 'columnHoverHighlight', 'readOnlyEdit', 'suppressRowVirtualisation', 'enableCellEditingOnBackspace',\n 'resetRowDataOnUpdate', 'removePivotHeaderRowWhenSingleValueColumn', 'suppressCopySingleCellRanges', 'suppressGroupRowsSticky', 'suppressCutToClipboard',\n 'suppressServerSideInfiniteScroll', 'rowGroupPanelSuppressSort', 'allowShowChangeAfterFilter', 'enableAdvancedFilter', 'masterDetail', 'treeData',\n 'suppressGroupMaintainValueType', 'reactiveCustomComponents'\n];\n/** You do not need to include event callbacks in this list, as they are generated automatically. */\nPropertyKeys.FUNCTIONAL_PROPERTIES = [\n 'doesExternalFilterPass', 'processPivotResultColDef', 'processPivotResultColGroupDef', 'getBusinessKeyForNode', 'isRowSelectable', 'rowDragText',\n 'groupRowRenderer', 'fullWidthCellRenderer', 'loadingCellRenderer', 'loadingOverlayComponent', 'noRowsOverlayComponent', 'detailCellRenderer',\n 'quickFilterParser', 'quickFilterMatcher'\n];\n/** These callbacks extend AgGridCommon interface */\nPropertyKeys.CALLBACK_PROPERTIES = [\n 'getLocaleText', 'isExternalFilterPresent', 'getRowHeight', 'getRowClass', 'getRowStyle', 'getContextMenuItems', 'getMainMenuItems',\n 'processRowPostCreate', 'processCellForClipboard', 'getGroupRowAgg', 'isFullWidthRow', 'sendToClipboard', 'navigateToNextHeader',\n 'tabToNextHeader', 'navigateToNextCell', 'tabToNextCell', 'processCellFromClipboard', 'getDocument', 'postProcessPopup', 'getChildCount',\n 'getDataPath', 'isRowMaster', 'postSortRows', 'processHeaderForClipboard', 'processUnpinnedColumns', 'processGroupHeaderForClipboard',\n 'paginationNumberFormatter', 'processDataFromClipboard', 'getServerSideGroupKey', 'isServerSideGroup', 'createChartContainer',\n 'getChartToolbarItems', 'fillOperation', 'isApplyServerSideTransaction', 'getServerSideGroupLevelParams', 'isServerSideGroupOpenByDefault',\n 'isGroupOpenByDefault', 'initialGroupOrderComparator', 'groupIncludeFooter', 'loadingCellRendererSelector', 'getRowId', 'groupAggFiltering'\n];\nPropertyKeys.FUNCTION_PROPERTIES = [\n ...PropertyKeys.FUNCTIONAL_PROPERTIES,\n ...PropertyKeys.CALLBACK_PROPERTIES\n];\nPropertyKeys.ALL_PROPERTIES = [\n ...PropertyKeys.ARRAY_PROPERTIES,\n ...PropertyKeys.OBJECT_PROPERTIES,\n ...PropertyKeys.STRING_PROPERTIES,\n ...PropertyKeys.NUMBER_PROPERTIES,\n ...PropertyKeys.FUNCTION_PROPERTIES,\n ...PropertyKeys.BOOLEAN_PROPERTIES\n];\n","var _a;\nimport { Events } from '../events.mjs';\nimport { PropertyKeys } from '../propertyKeys.mjs';\nimport { iterateObject } from '../utils/object.mjs';\nimport { includes } from '../utils/array.mjs';\nimport { values } from '../utils/generic.mjs';\nexport class ComponentUtil {\n static getCallbackForEvent(eventName) {\n if (!eventName || eventName.length < 2) {\n return eventName;\n }\n return 'on' + eventName[0].toUpperCase() + eventName.substring(1);\n }\n static getGridOptionKeys() {\n // Vue does not have keys in prod so instead need to run through all the \n // gridOptions checking for presence of a gridOption key.\n return this.ALL_PROPERTIES_AND_CALLBACKS;\n }\n /** Combines component props / attributes with the provided gridOptions returning a new combined gridOptions object */\n static combineAttributesAndGridOptions(gridOptions, component) {\n // create empty grid options if none were passed\n if (typeof gridOptions !== 'object') {\n gridOptions = {};\n }\n // shallow copy (so we don't change the provided object)\n const mergedOptions = Object.assign({}, gridOptions);\n const keys = ComponentUtil.getGridOptionKeys();\n // Loop through component props, if they are not undefined and a valid gridOption copy to gridOptions\n keys.forEach(key => {\n const value = component[key];\n if (typeof value !== 'undefined' && value !== ComponentUtil.VUE_OMITTED_PROPERTY) {\n mergedOptions[key] = value;\n }\n });\n return mergedOptions;\n }\n static processOnChange(changes, api) {\n if (!changes) {\n return;\n }\n // Only process changes to properties that are part of the gridOptions\n const gridChanges = {};\n let hasChanges = false;\n Object.keys(changes)\n .filter((key) => ComponentUtil.ALL_PROPERTIES_AND_CALLBACKS_SET.has(key))\n .forEach((key) => {\n gridChanges[key] = changes[key];\n hasChanges = true;\n });\n if (!hasChanges) {\n return;\n }\n api.__internalUpdateGridOptions(gridChanges);\n // copy gridChanges into an event for dispatch\n const event = {\n type: Events.EVENT_COMPONENT_STATE_CHANGED\n };\n iterateObject(gridChanges, (key, value) => {\n event[key] = value;\n });\n api.dispatchEvent(event);\n }\n}\n_a = ComponentUtil;\n// all events\nComponentUtil.EVENTS = values(Events);\nComponentUtil.VUE_OMITTED_PROPERTY = 'AG-VUE-OMITTED-PROPERTY';\n// events that are internal to AG Grid and should not be exposed to users via documentation or generated framework components\n/** Exclude the following internal events from code generation to prevent exposing these events via framework components */\nComponentUtil.EXCLUDED_INTERNAL_EVENTS = [\n Events.EVENT_SCROLLBAR_WIDTH_CHANGED,\n Events.EVENT_CHECKBOX_CHANGED,\n Events.EVENT_HEIGHT_SCALE_CHANGED,\n Events.EVENT_BODY_HEIGHT_CHANGED,\n Events.EVENT_COLUMN_CONTAINER_WIDTH_CHANGED,\n Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED,\n Events.EVENT_SCROLL_VISIBILITY_CHANGED,\n Events.EVENT_COLUMN_HOVER_CHANGED,\n Events.EVENT_FLASH_CELLS,\n Events.EVENT_PAGINATION_PIXEL_OFFSET_CHANGED,\n Events.EVENT_DISPLAYED_ROWS_CHANGED,\n Events.EVENT_LEFT_PINNED_WIDTH_CHANGED,\n Events.EVENT_RIGHT_PINNED_WIDTH_CHANGED,\n Events.EVENT_ROW_CONTAINER_HEIGHT_CHANGED,\n Events.EVENT_POPUP_TO_FRONT,\n Events.EVENT_STORE_UPDATED,\n Events.EVENT_COLUMN_PANEL_ITEM_DRAG_START,\n Events.EVENT_COLUMN_PANEL_ITEM_DRAG_END,\n Events.EVENT_FILL_START,\n Events.EVENT_FILL_END,\n Events.EVENT_KEY_SHORTCUT_CHANGED_CELL_START,\n Events.EVENT_KEY_SHORTCUT_CHANGED_CELL_END,\n Events.EVENT_FULL_WIDTH_ROW_FOCUSED,\n Events.EVENT_HEADER_HEIGHT_CHANGED,\n Events.EVENT_COLUMN_HEADER_HEIGHT_CHANGED,\n Events.EVENT_CELL_FOCUS_CLEARED,\n Events.EVENT_GRID_STYLES_CHANGED,\n Events.EVENT_FILTER_DESTROYED,\n Events.EVENT_ROW_DATA_UPDATE_STARTED,\n Events.EVENT_ADVANCED_FILTER_ENABLED_CHANGED,\n Events.EVENT_DATA_TYPES_INFERRED,\n Events.EVENT_FIELD_VALUE_CHANGED,\n Events.EVENT_FIELD_PICKER_VALUE_SELECTED,\n Events.EVENT_SUPPRESS_COLUMN_MOVE_CHANGED,\n Events.EVENT_SUPPRESS_MENU_HIDE_CHANGED,\n Events.EVENT_SUPPRESS_FIELD_DOT_NOTATION,\n Events.EVENT_ROW_COUNT_READY,\n Events.EVENT_SIDE_BAR_UPDATED,\n];\n// events that are available for use by users of AG Grid and so should be documented\n/** EVENTS that should be exposed via code generation for the framework components. */\nComponentUtil.PUBLIC_EVENTS = ComponentUtil.EVENTS.filter(e => !includes(ComponentUtil.EXCLUDED_INTERNAL_EVENTS, e));\n// onXXX methods, based on the above events\nComponentUtil.EVENT_CALLBACKS = ComponentUtil.EVENTS.map(event => ComponentUtil.getCallbackForEvent(event));\nComponentUtil.STRING_PROPERTIES = PropertyKeys.STRING_PROPERTIES;\nComponentUtil.OBJECT_PROPERTIES = PropertyKeys.OBJECT_PROPERTIES;\nComponentUtil.ARRAY_PROPERTIES = PropertyKeys.ARRAY_PROPERTIES;\nComponentUtil.NUMBER_PROPERTIES = PropertyKeys.NUMBER_PROPERTIES;\nComponentUtil.BOOLEAN_PROPERTIES = PropertyKeys.BOOLEAN_PROPERTIES;\nComponentUtil.FUNCTION_PROPERTIES = PropertyKeys.FUNCTION_PROPERTIES;\nComponentUtil.ALL_PROPERTIES = PropertyKeys.ALL_PROPERTIES;\nComponentUtil.ALL_PROPERTIES_AND_CALLBACKS = [..._a.ALL_PROPERTIES, ..._a.EVENT_CALLBACKS];\nComponentUtil.ALL_PROPERTIES_AND_CALLBACKS_SET = new Set(ComponentUtil.ALL_PROPERTIES_AND_CALLBACKS);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Bean } from \"../context/context.mjs\";\nimport { BeanStub } from \"../context/beanStub.mjs\";\nlet AgStackComponentsRegistry = class AgStackComponentsRegistry extends BeanStub {\n constructor() {\n super(...arguments);\n this.componentsMappedByName = {};\n }\n setupComponents(components) {\n if (components) {\n components.forEach(componentMeta => this.addComponent(componentMeta));\n }\n }\n addComponent(componentMeta) {\n // get name of the class as a string\n // insert a dash after every capital letter\n // let classEscaped = className.replace(/([A-Z])/g, \"-$1\").toLowerCase();\n const classEscaped = componentMeta.componentName.replace(/([a-z])([A-Z])/g, \"$1-$2\").toLowerCase();\n // put all to upper case\n const classUpperCase = classEscaped.toUpperCase();\n // finally store\n this.componentsMappedByName[classUpperCase] = componentMeta.componentClass;\n }\n getComponentClass(htmlTag) {\n return this.componentsMappedByName[htmlTag];\n }\n};\nAgStackComponentsRegistry = __decorate([\n Bean('agStackComponentsRegistry')\n], AgStackComponentsRegistry);\nexport { AgStackComponentsRegistry };\n","// ARIA HELPER FUNCTIONS\nfunction toggleAriaAttribute(element, attribute, value) {\n if (value == null || (typeof value === 'string' && value == '')) {\n removeAriaAttribute(element, attribute);\n }\n else {\n setAriaAttribute(element, attribute, value);\n }\n}\nfunction setAriaAttribute(element, attribute, value) {\n element.setAttribute(ariaAttributeName(attribute), value.toString());\n}\nfunction removeAriaAttribute(element, attribute) {\n element.removeAttribute(ariaAttributeName(attribute));\n}\nfunction ariaAttributeName(attribute) {\n return `aria-${attribute}`;\n}\nexport function setAriaRole(element, role) {\n if (role) {\n element.setAttribute('role', role);\n }\n else {\n element.removeAttribute('role');\n }\n}\nexport function getAriaSortState(sortDirection) {\n let sort;\n if (sortDirection === 'asc') {\n sort = 'ascending';\n }\n else if (sortDirection === 'desc') {\n sort = 'descending';\n }\n else if (sortDirection === 'mixed') {\n sort = 'other';\n }\n else {\n sort = 'none';\n }\n return sort;\n}\n// ARIA ATTRIBUTE GETTERS\nexport function getAriaLevel(element) {\n return parseInt(element.getAttribute('aria-level'), 10);\n}\nexport function getAriaPosInSet(element) {\n return parseInt(element.getAttribute('aria-posinset'), 10);\n}\nexport function getAriaLabel(element) {\n return element.getAttribute('aria-label');\n}\n// ARIA ATTRIBUTE SETTERS\nexport function setAriaLabel(element, label) {\n toggleAriaAttribute(element, 'label', label);\n}\nexport function setAriaLabelledBy(element, labelledBy) {\n toggleAriaAttribute(element, 'labelledby', labelledBy);\n}\nexport function setAriaDescribedBy(element, describedby) {\n toggleAriaAttribute(element, 'describedby', describedby);\n}\nexport function setAriaLive(element, live) {\n toggleAriaAttribute(element, 'live', live);\n}\nexport function setAriaAtomic(element, atomic) {\n toggleAriaAttribute(element, 'atomic', atomic);\n}\nexport function setAriaRelevant(element, relevant) {\n toggleAriaAttribute(element, 'relevant', relevant);\n}\nexport function setAriaLevel(element, level) {\n toggleAriaAttribute(element, 'level', level);\n}\nexport function setAriaDisabled(element, disabled) {\n toggleAriaAttribute(element, 'disabled', disabled);\n}\nexport function setAriaHidden(element, hidden) {\n toggleAriaAttribute(element, 'hidden', hidden);\n}\nexport function setAriaActiveDescendant(element, descendantId) {\n toggleAriaAttribute(element, 'activedescendant', descendantId);\n}\nexport function setAriaExpanded(element, expanded) {\n setAriaAttribute(element, 'expanded', expanded);\n}\nexport function removeAriaExpanded(element) {\n removeAriaAttribute(element, 'expanded');\n}\nexport function setAriaSetSize(element, setsize) {\n setAriaAttribute(element, 'setsize', setsize);\n}\nexport function setAriaPosInSet(element, position) {\n setAriaAttribute(element, 'posinset', position);\n}\nexport function setAriaMultiSelectable(element, multiSelectable) {\n setAriaAttribute(element, 'multiselectable', multiSelectable);\n}\nexport function setAriaRowCount(element, rowCount) {\n setAriaAttribute(element, 'rowcount', rowCount);\n}\nexport function setAriaRowIndex(element, rowIndex) {\n setAriaAttribute(element, 'rowindex', rowIndex);\n}\nexport function setAriaColCount(element, colCount) {\n setAriaAttribute(element, 'colcount', colCount);\n}\nexport function setAriaColIndex(element, colIndex) {\n setAriaAttribute(element, 'colindex', colIndex);\n}\nexport function setAriaColSpan(element, colSpan) {\n setAriaAttribute(element, 'colspan', colSpan);\n}\nexport function setAriaSort(element, sort) {\n setAriaAttribute(element, 'sort', sort);\n}\nexport function removeAriaSort(element) {\n removeAriaAttribute(element, 'sort');\n}\nexport function setAriaSelected(element, selected) {\n toggleAriaAttribute(element, 'selected', selected);\n}\nexport function setAriaChecked(element, checked) {\n setAriaAttribute(element, 'checked', checked === undefined ? 'mixed' : checked);\n}\nexport function setAriaControls(controllerElement, controlledElement) {\n toggleAriaAttribute(controllerElement, 'controls', controlledElement.id);\n setAriaLabelledBy(controlledElement, controllerElement.id);\n}\nexport function getAriaCheckboxStateName(translate, state) {\n return state === undefined\n ? translate('ariaIndeterminate', 'indeterminate')\n : (state === true\n ? translate('ariaChecked', 'checked')\n : translate('ariaUnchecked', 'unchecked'));\n}\n","/**\n * These variables are lazy loaded, as otherwise they try and get initialised when we are loading\n * unit tests and we don't have references to window or document in the unit tests\n */\nlet isSafari;\nlet safariVersion;\nlet isChrome;\nlet isFirefox;\nlet isMacOs;\nlet isIOS;\nlet invisibleScrollbar;\nlet browserScrollbarWidth;\nexport function isBrowserSafari() {\n if (isSafari === undefined) {\n isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n }\n return isSafari;\n}\nexport function getSafariVersion() {\n if (safariVersion === undefined) {\n if (isBrowserSafari()) {\n const versionMatch = navigator.userAgent.match(/version\\/(\\d+)/i);\n if (versionMatch) {\n safariVersion = versionMatch[1] != null ? parseFloat(versionMatch[1]) : 0;\n }\n }\n else {\n safariVersion = 0;\n }\n }\n return safariVersion;\n}\n/**\n * Returns true for Chrome and also for Edge (Chromium)\n */\nexport function isBrowserChrome() {\n if (isChrome === undefined) {\n const win = window;\n isChrome = (!!win.chrome && (!!win.chrome.webstore || !!win.chrome.runtime)) ||\n (/Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor));\n }\n return isChrome;\n}\nexport function isBrowserFirefox() {\n if (isFirefox === undefined) {\n isFirefox = /(firefox)/i.test(navigator.userAgent);\n }\n return isFirefox;\n}\nexport function isMacOsUserAgent() {\n if (isMacOs === undefined) {\n isMacOs = /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform);\n }\n return isMacOs;\n}\nexport function isIOSUserAgent() {\n if (isIOS === undefined) {\n isIOS = (/iPad|iPhone|iPod/.test(navigator.platform) ||\n // eslint-disable-next-line\n (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1));\n }\n return isIOS;\n}\nexport function browserSupportsPreventScroll() {\n // all browsers except safari support focus({ preventScroll: true }).\n // this feature was added on Safari 15+\n return !isBrowserSafari() || getSafariVersion() >= 15;\n}\nexport function getTabIndex(el) {\n if (!el) {\n return null;\n }\n const numberTabIndex = el.tabIndex;\n const tabIndex = el.getAttribute('tabIndex');\n if (numberTabIndex === -1 && (tabIndex === null || (tabIndex === '' && !isBrowserFirefox()))) {\n return null;\n }\n return numberTabIndex.toString();\n}\nexport function getMaxDivHeight() {\n if (!document.body) {\n return -1;\n }\n let res = 1000000;\n // FF reports the height back but still renders blank after ~6M px\n const testUpTo = navigator.userAgent.toLowerCase().match(/firefox/) ? 6000000 : 1000000000;\n const div = document.createElement('div');\n document.body.appendChild(div);\n while (true) {\n const test = res * 2;\n div.style.height = test + 'px';\n if (test > testUpTo || div.clientHeight !== test) {\n break;\n }\n else {\n res = test;\n }\n }\n document.body.removeChild(div);\n return res;\n}\nexport function getBodyWidth() {\n var _a, _b, _c;\n return (_b = (_a = document.body) === null || _a === void 0 ? void 0 : _a.clientWidth) !== null && _b !== void 0 ? _b : (window.innerHeight || ((_c = document.documentElement) === null || _c === void 0 ? void 0 : _c.clientWidth) || -1);\n}\nexport function getBodyHeight() {\n var _a, _b, _c;\n return (_b = (_a = document.body) === null || _a === void 0 ? void 0 : _a.clientHeight) !== null && _b !== void 0 ? _b : (window.innerHeight || ((_c = document.documentElement) === null || _c === void 0 ? void 0 : _c.clientHeight) || -1);\n}\nexport function getScrollbarWidth() {\n if (browserScrollbarWidth == null) {\n initScrollbarWidthAndVisibility();\n }\n return browserScrollbarWidth;\n}\nfunction initScrollbarWidthAndVisibility() {\n const body = document.body;\n const div = document.createElement('div');\n div.style.width = div.style.height = '100px';\n div.style.opacity = '0';\n div.style.overflow = 'scroll';\n div.style.msOverflowStyle = 'scrollbar'; // needed for WinJS apps\n div.style.position = 'absolute';\n body.appendChild(div);\n let width = div.offsetWidth - div.clientWidth;\n // if width is 0 and client width is 0, means the DOM isn't ready\n if (width === 0 && div.clientWidth === 0) {\n width = null;\n }\n // remove div\n if (div.parentNode) {\n div.parentNode.removeChild(div);\n }\n if (width != null) {\n browserScrollbarWidth = width;\n invisibleScrollbar = width === 0;\n }\n}\nexport function isInvisibleScrollbar() {\n if (invisibleScrollbar == null) {\n initScrollbarWidthAndVisibility();\n }\n return invisibleScrollbar;\n}\n","export function padStartWidthZeros(value, totalStringSize) {\n return value.toString().padStart(totalStringSize, '0');\n}\nexport function createArrayOfNumbers(first, last) {\n const result = [];\n for (let i = first; i <= last; i++) {\n result.push(i);\n }\n return result;\n}\nexport function cleanNumber(value) {\n if (typeof value === 'string') {\n value = parseInt(value, 10);\n }\n if (typeof value === 'number') {\n return Math.floor(value);\n }\n return null;\n}\nexport function decToHex(number, bytes) {\n let hex = '';\n for (let i = 0; i < bytes; i++) {\n hex += String.fromCharCode(number & 0xff);\n number >>>= 8;\n }\n return hex;\n}\nexport function formatNumberTwoDecimalPlacesAndCommas(value, thousandSeparator, decimalSeparator) {\n if (typeof value !== 'number') {\n return '';\n }\n return formatNumberCommas(Math.round(value * 100) / 100, thousandSeparator, decimalSeparator);\n}\n/**\n * the native method number.toLocaleString(undefined, {minimumFractionDigits: 0})\n * puts in decimal places in IE, so we use this method instead\n * from: http://blog.tompawlak.org/number-currency-formatting-javascript\n * @param {number} value\n * @returns {string}\n */\nexport function formatNumberCommas(value, thousandSeparator, decimalSeparator) {\n if (typeof value !== 'number') {\n return '';\n }\n return value.toString().replace('.', decimalSeparator).replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, `$1${thousandSeparator}`);\n}\nexport function sum(values) {\n return values == null ? null : values.reduce((total, value) => total + value, 0);\n}\n","import { padStartWidthZeros } from './number.mjs';\n/**\n * Serialises a Date to a string of format `yyyy-MM-dd HH:mm:ss`.\n * An alternative separator can be provided to be used instead of hyphens.\n * @param date The date to serialise\n * @param includeTime Whether to include the time in the serialised string\n * @param separator The separator to use between date parts\n */\nexport function serialiseDate(date, includeTime = true, separator = '-') {\n if (!date) {\n return null;\n }\n let serialised = [date.getFullYear(), date.getMonth() + 1, date.getDate()].map(part => padStartWidthZeros(part, 2)).join(separator);\n if (includeTime) {\n serialised += ' ' + [date.getHours(), date.getMinutes(), date.getSeconds()].map(part => padStartWidthZeros(part, 2)).join(':');\n }\n return serialised;\n}\nconst calculateOrdinal = (value) => {\n if (value > 3 && value < 21) {\n return 'th';\n }\n const remainder = value % 10;\n switch (remainder) {\n case 1: return \"st\";\n case 2: return \"nd\";\n case 3: return \"rd\";\n }\n return 'th';\n};\n/**\n * Serialises a Date to a string of format the defined format, does not include time.\n * @param date The date to serialise\n * @param format The string to format the date to, defaults to YYYY-MM-DD\n */\nexport function dateToFormattedString(date, format = 'YYYY-MM-DD') {\n const fullYear = padStartWidthZeros(date.getFullYear(), 4);\n const months = [\n 'January', 'February', 'March', 'April', 'May', 'June',\n 'July', 'August', 'September', 'October', 'November', 'December',\n ];\n const days = [\n 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday',\n ];\n const replace = {\n YYYY: () => fullYear.slice(fullYear.length - 4, fullYear.length),\n YY: () => fullYear.slice(fullYear.length - 2, fullYear.length),\n Y: () => `${date.getFullYear()}`,\n MMMM: () => months[date.getMonth()],\n MMM: () => months[date.getMonth()].slice(0, 3),\n MM: () => padStartWidthZeros(date.getMonth() + 1, 2),\n Mo: () => `${date.getMonth() + 1}${calculateOrdinal(date.getMonth() + 1)}`,\n M: () => `${date.getMonth() + 1}`,\n Do: () => `${date.getDate()}${calculateOrdinal(date.getDate())}`,\n DD: () => padStartWidthZeros(date.getDate(), 2),\n D: () => `${date.getDate()}`,\n dddd: () => days[date.getDay()],\n ddd: () => days[date.getDay()].slice(0, 3),\n dd: () => days[date.getDay()].slice(0, 2),\n do: () => `${date.getDay()}${calculateOrdinal(date.getDay())}`,\n d: () => `${date.getDay()}`,\n };\n const regexp = new RegExp(Object.keys(replace).join('|'), 'g');\n return format.replace(regexp, (match) => {\n if (match in replace) {\n return replace[match]();\n }\n return match;\n });\n}\n/**\n * Parses a date and time from a string in the format `yyyy-MM-dd HH:mm:ss`\n */\nexport function parseDateTimeFromString(value) {\n if (!value) {\n return null;\n }\n const [dateStr, timeStr] = value.split(' ');\n if (!dateStr) {\n return null;\n }\n const fields = dateStr.split('-').map(f => parseInt(f, 10));\n if (fields.filter(f => !isNaN(f)).length !== 3) {\n return null;\n }\n const [year, month, day] = fields;\n const date = new Date(year, month - 1, day);\n if (date.getFullYear() !== year ||\n date.getMonth() !== month - 1 ||\n date.getDate() !== day) {\n // date was not parsed as expected so must have been invalid\n return null;\n }\n if (!timeStr || timeStr === '00:00:00') {\n return date;\n }\n const [hours, minutes, seconds] = timeStr.split(':').map(part => parseInt(part, 10));\n if (hours >= 0 && hours < 24) {\n date.setHours(hours);\n }\n if (minutes >= 0 && minutes < 60) {\n date.setMinutes(minutes);\n }\n if (seconds >= 0 && seconds < 60) {\n date.setSeconds(seconds);\n }\n return date;\n}\n","import { isBrowserChrome, isBrowserSafari } from './browser.mjs';\nimport { setAriaHidden } from './aria.mjs';\nimport { camelCaseToHyphenated } from './string.mjs';\nlet rtlNegativeScroll;\n/**\n * This method adds a class to an element and remove that class from all siblings.\n * Useful for toggling state.\n * @param {HTMLElement} element The element to receive the class\n * @param {string} elementClass The class to be assigned to the element\n * @param {boolean} otherElementClass The class to be assigned to siblings of the element, but not the element itself\n */\nexport function radioCssClass(element, elementClass, otherElementClass) {\n const parent = element.parentElement;\n let sibling = parent && parent.firstChild;\n while (sibling) {\n if (elementClass) {\n sibling.classList.toggle(elementClass, sibling === element);\n }\n if (otherElementClass) {\n sibling.classList.toggle(otherElementClass, sibling !== element);\n }\n sibling = sibling.nextSibling;\n }\n}\nexport const FOCUSABLE_SELECTOR = '[tabindex], input, select, button, textarea, [href]';\nexport const FOCUSABLE_EXCLUDE = '[disabled], .ag-disabled:not(.ag-button), .ag-disabled *';\nexport function isFocusableFormField(element) {\n const matches = Element.prototype.matches || Element.prototype.msMatchesSelector;\n const inputSelector = 'input, select, button, textarea';\n const isFocusable = matches.call(element, inputSelector);\n const isNotFocusable = matches.call(element, FOCUSABLE_EXCLUDE);\n const isElementVisible = isVisible(element);\n const focusable = isFocusable && !isNotFocusable && isElementVisible;\n return focusable;\n}\nexport function setDisplayed(element, displayed, options = {}) {\n const { skipAriaHidden } = options;\n element.classList.toggle('ag-hidden', !displayed);\n if (!skipAriaHidden) {\n setAriaHidden(element, !displayed);\n }\n}\nexport function setVisible(element, visible, options = {}) {\n const { skipAriaHidden } = options;\n element.classList.toggle('ag-invisible', !visible);\n if (!skipAriaHidden) {\n setAriaHidden(element, !visible);\n }\n}\nexport function setDisabled(element, disabled) {\n const attributeName = 'disabled';\n const addOrRemoveDisabledAttribute = disabled ?\n (e) => e.setAttribute(attributeName, '') :\n (e) => e.removeAttribute(attributeName);\n addOrRemoveDisabledAttribute(element);\n nodeListForEach(element.querySelectorAll('input'), input => addOrRemoveDisabledAttribute(input));\n}\nexport function isElementChildOfClass(element, cls, maxNest) {\n let counter = 0;\n while (element) {\n if (element.classList.contains(cls)) {\n return true;\n }\n element = element.parentElement;\n if (typeof maxNest == 'number') {\n if (++counter > maxNest) {\n break;\n }\n }\n else if (element === maxNest) {\n break;\n }\n }\n return false;\n}\n// returns back sizes as doubles instead of strings. similar to\n// getBoundingClientRect, however getBoundingClientRect does not:\n// a) work with fractions (eg browser is zooming)\n// b) has CSS transitions applied (eg CSS scale, browser zoom), which we don't want, we want the un-transitioned values\nexport function getElementSize(el) {\n const { height, width, borderTopWidth, borderRightWidth, borderBottomWidth, borderLeftWidth, paddingTop, paddingRight, paddingBottom, paddingLeft, marginTop, marginRight, marginBottom, marginLeft, boxSizing } = window.getComputedStyle(el);\n return {\n height: parseFloat(height || '0'),\n width: parseFloat(width || '0'),\n borderTopWidth: parseFloat(borderTopWidth || '0'),\n borderRightWidth: parseFloat(borderRightWidth || '0'),\n borderBottomWidth: parseFloat(borderBottomWidth || '0'),\n borderLeftWidth: parseFloat(borderLeftWidth || '0'),\n paddingTop: parseFloat(paddingTop || '0'),\n paddingRight: parseFloat(paddingRight || '0'),\n paddingBottom: parseFloat(paddingBottom || '0'),\n paddingLeft: parseFloat(paddingLeft || '0'),\n marginTop: parseFloat(marginTop || '0'),\n marginRight: parseFloat(marginRight || '0'),\n marginBottom: parseFloat(marginBottom || '0'),\n marginLeft: parseFloat(marginLeft || '0'),\n boxSizing\n };\n}\nexport function getInnerHeight(el) {\n const size = getElementSize(el);\n if (size.boxSizing === 'border-box') {\n return size.height - size.paddingTop - size.paddingBottom;\n }\n return size.height;\n}\nexport function getInnerWidth(el) {\n const size = getElementSize(el);\n if (size.boxSizing === 'border-box') {\n return size.width - size.paddingLeft - size.paddingRight;\n }\n return size.width;\n}\nexport function getAbsoluteHeight(el) {\n const size = getElementSize(el);\n const marginRight = size.marginBottom + size.marginTop;\n return Math.ceil(el.offsetHeight + marginRight);\n}\nexport function getAbsoluteWidth(el) {\n const size = getElementSize(el);\n const marginWidth = size.marginLeft + size.marginRight;\n return Math.ceil(el.offsetWidth + marginWidth);\n}\nexport function getElementRectWithOffset(el) {\n const offsetElementRect = el.getBoundingClientRect();\n const { borderTopWidth, borderLeftWidth, borderRightWidth, borderBottomWidth } = getElementSize(el);\n return {\n top: offsetElementRect.top + (borderTopWidth || 0),\n left: offsetElementRect.left + (borderLeftWidth || 0),\n right: offsetElementRect.right + (borderRightWidth || 0),\n bottom: offsetElementRect.bottom + (borderBottomWidth || 0),\n };\n}\nexport function isRtlNegativeScroll() {\n if (typeof rtlNegativeScroll === \"boolean\") {\n return rtlNegativeScroll;\n }\n const template = document.createElement('div');\n template.style.direction = 'rtl';\n template.style.width = '1px';\n template.style.height = '1px';\n template.style.position = 'fixed';\n template.style.top = '0px';\n template.style.overflow = 'hidden';\n template.dir = 'rtl';\n template.innerHTML = /* html */\n `
\n \n \n
`;\n document.body.appendChild(template);\n template.scrollLeft = 1;\n rtlNegativeScroll = Math.floor(template.scrollLeft) === 0;\n document.body.removeChild(template);\n return rtlNegativeScroll;\n}\nexport function getScrollLeft(element, rtl) {\n let scrollLeft = element.scrollLeft;\n if (rtl) {\n // Absolute value - for FF that reports RTL scrolls in negative numbers\n scrollLeft = Math.abs(scrollLeft);\n if (isBrowserChrome() && !isRtlNegativeScroll()) {\n scrollLeft = element.scrollWidth - element.clientWidth - scrollLeft;\n }\n }\n return scrollLeft;\n}\nexport function setScrollLeft(element, value, rtl) {\n if (rtl) {\n // Chrome and Safari when doing RTL have the END position of the scroll as zero, not the start\n if (isRtlNegativeScroll()) {\n value *= -1;\n }\n else if (isBrowserSafari() || isBrowserChrome()) {\n value = element.scrollWidth - element.clientWidth - value;\n }\n }\n element.scrollLeft = value;\n}\nexport function clearElement(el) {\n while (el && el.firstChild) {\n el.removeChild(el.firstChild);\n }\n}\nexport function removeFromParent(node) {\n if (node && node.parentNode) {\n node.parentNode.removeChild(node);\n }\n}\nexport function isInDOM(element) {\n return !!element.offsetParent;\n}\nexport function isVisible(element) {\n const el = element;\n if (el.checkVisibility) {\n return el.checkVisibility({ checkVisibilityCSS: true });\n }\n const isHidden = !isInDOM(element) || window.getComputedStyle(element).visibility !== 'visible';\n return !isHidden;\n}\n/**\n * Loads the template and returns it as an element. makes up for no simple way in\n * the dom api to load html directly, eg we cannot do this: document.createElement(template)\n * @param {string} template\n * @returns {HTMLElement}\n */\nexport function loadTemplate(template) {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = (template || '').trim();\n return tempDiv.firstChild;\n}\nexport function ensureDomOrder(eContainer, eChild, eChildBefore) {\n // if already in right order, do nothing\n if (eChildBefore && eChildBefore.nextSibling === eChild) {\n return;\n }\n if (eChildBefore) {\n if (eChildBefore.nextSibling) {\n // insert between the eRowBefore and the row after it\n eContainer.insertBefore(eChild, eChildBefore.nextSibling);\n }\n else {\n // if nextSibling is missing, means other row is at end, so just append new row at the end\n eContainer.appendChild(eChild);\n }\n }\n else {\n // otherwise put at start\n if (eContainer.firstChild && eContainer.firstChild !== eChild) {\n // insert it at the first location\n eContainer.insertAdjacentElement('afterbegin', eChild);\n }\n }\n}\nexport function setDomChildOrder(eContainer, orderedChildren) {\n for (let i = 0; i < orderedChildren.length; i++) {\n const correctCellAtIndex = orderedChildren[i];\n const actualCellAtIndex = eContainer.children[i];\n if (actualCellAtIndex !== correctCellAtIndex) {\n eContainer.insertBefore(correctCellAtIndex, actualCellAtIndex);\n }\n }\n}\nexport function insertWithDomOrder(eContainer, eToInsert, eChildBefore) {\n if (eChildBefore) {\n // if previous element exists, just slot in after the previous element\n eChildBefore.insertAdjacentElement('afterend', eToInsert);\n }\n else {\n if (eContainer.firstChild) {\n // insert it at the first location\n eContainer.insertAdjacentElement('afterbegin', eToInsert);\n }\n else {\n // otherwise eContainer is empty, so just append it\n eContainer.appendChild(eToInsert);\n }\n }\n}\nexport function addStylesToElement(eElement, styles) {\n if (!styles) {\n return;\n }\n for (const [key, value] of Object.entries(styles)) {\n if (!key || !key.length || value == null) {\n continue;\n }\n // changes the key from camelCase into a hyphenated-string\n const parsedKey = camelCaseToHyphenated(key);\n const valueAsString = value.toString();\n const parsedValue = valueAsString.replace(/\\s*!important/g, '');\n const priority = parsedValue.length != valueAsString.length ? 'important' : undefined;\n eElement.style.setProperty(parsedKey, parsedValue, priority);\n }\n}\nexport function isHorizontalScrollShowing(element) {\n return element.clientWidth < element.scrollWidth;\n}\nexport function isVerticalScrollShowing(element) {\n return element.clientHeight < element.scrollHeight;\n}\nexport function setElementWidth(element, width) {\n if (width === 'flex') {\n element.style.removeProperty('width');\n element.style.removeProperty('minWidth');\n element.style.removeProperty('maxWidth');\n element.style.flex = '1 1 auto';\n }\n else {\n setFixedWidth(element, width);\n }\n}\nexport function setFixedWidth(element, width) {\n width = formatSize(width);\n element.style.width = width.toString();\n element.style.maxWidth = width.toString();\n element.style.minWidth = width.toString();\n}\nexport function setElementHeight(element, height) {\n if (height === 'flex') {\n element.style.removeProperty('height');\n element.style.removeProperty('minHeight');\n element.style.removeProperty('maxHeight');\n element.style.flex = '1 1 auto';\n }\n else {\n setFixedHeight(element, height);\n }\n}\nexport function setFixedHeight(element, height) {\n height = formatSize(height);\n element.style.height = height.toString();\n element.style.maxHeight = height.toString();\n element.style.minHeight = height.toString();\n}\nexport function formatSize(size) {\n if (typeof size === 'number') {\n return `${size}px`;\n }\n return size;\n}\nexport function isNodeOrElement(o) {\n return o instanceof Node || o instanceof HTMLElement;\n}\n/**\n * Makes a copy of a node list into a list\n * @param {NodeList} nodeList\n * @returns {Node[]}\n */\nexport function copyNodeList(nodeList) {\n if (nodeList == null) {\n return [];\n }\n const result = [];\n nodeListForEach(nodeList, node => result.push(node));\n return result;\n}\nexport function iterateNamedNodeMap(map, callback) {\n if (!map) {\n return;\n }\n for (let i = 0; i < map.length; i++) {\n const attr = map[i];\n callback(attr.name, attr.value);\n }\n}\nexport function addOrRemoveAttribute(element, name, value) {\n if (value == null) {\n element.removeAttribute(name);\n }\n else {\n element.setAttribute(name, value.toString());\n }\n}\nexport function nodeListForEach(nodeList, action) {\n if (nodeList == null) {\n return;\n }\n for (let i = 0; i < nodeList.length; i++) {\n action(nodeList[i]);\n }\n}\n/**\n * cell renderers are used in a few places. they bind to dom slightly differently to other cell renders as they\n * can return back strings (instead of html element) in the getGui() method. common code placed here to handle that.\n * @param {AgPromise} cellRendererPromise\n * @param {HTMLElement} eTarget\n */\nexport function bindCellRendererToHtmlElement(cellRendererPromise, eTarget) {\n cellRendererPromise.then(cellRenderer => {\n const gui = cellRenderer.getGui();\n if (gui != null) {\n if (typeof gui === 'object') {\n eTarget.appendChild(gui);\n }\n else {\n eTarget.innerHTML = gui;\n }\n }\n });\n}\n","export function fuzzyCheckStrings(inputValues, validValues, allSuggestions) {\n const fuzzyMatches = {};\n const invalidInputs = inputValues.filter(inputValue => !validValues.some((validValue) => validValue === inputValue));\n if (invalidInputs.length > 0) {\n invalidInputs.forEach(invalidInput => fuzzyMatches[invalidInput] = fuzzySuggestions(invalidInput, allSuggestions).values);\n }\n return fuzzyMatches;\n}\n/**\n *\n * @param {String} inputValue The value to be compared against a list of strings\n * @param allSuggestions The list of strings to be compared against\n */\nexport function fuzzySuggestions(inputValue, allSuggestions, hideIrrelevant, filterByPercentageOfBestMatch) {\n let thisSuggestions = allSuggestions.map((text, idx) => ({\n value: text,\n relevance: stringWeightedDistances(inputValue.toLowerCase(), text.toLocaleLowerCase()),\n idx\n }));\n thisSuggestions.sort((a, b) => b.relevance - a.relevance);\n if (hideIrrelevant) {\n thisSuggestions = thisSuggestions.filter(suggestion => suggestion.relevance !== 0);\n }\n if (thisSuggestions.length > 0 && filterByPercentageOfBestMatch && filterByPercentageOfBestMatch > 0) {\n const bestMatch = thisSuggestions[0].relevance;\n const limit = bestMatch * filterByPercentageOfBestMatch;\n thisSuggestions = thisSuggestions.filter(suggestion => limit - suggestion.relevance < 0);\n }\n const values = [];\n const indices = [];\n for (const suggestion of thisSuggestions) {\n values.push(suggestion.value);\n indices.push(suggestion.idx);\n }\n return { values, indices };\n}\nfunction stringWeightedDistances(str1, str2) {\n const a = str1.replace(/\\s/g, '');\n const b = str2.replace(/\\s/g, '');\n let weight = 0;\n let lastIndex = -1;\n for (let i = 0; i < a.length; i++) {\n const idx = b.indexOf(a[i], lastIndex + 1);\n if (idx === -1) {\n continue;\n }\n lastIndex = idx;\n weight += (100 - (lastIndex * 100 / 10000) * 100);\n }\n return weight;\n}\n","import { loadTemplate, isNodeOrElement } from './dom.mjs';\nimport { setAriaRole } from './aria.mjs';\n//\n// IMPORTANT NOTE!\n//\n// If you change the list below, copy/paste the new content into the docs page custom-icons\n//\nexport const iconNameClassMap = {\n // header column group shown when expanded (click to contract)\n columnGroupOpened: 'expanded',\n // header column group shown when contracted (click to expand)\n columnGroupClosed: 'contracted',\n // tool panel column group contracted (click to expand)\n columnSelectClosed: 'tree-closed',\n // tool panel column group expanded (click to contract)\n columnSelectOpen: 'tree-open',\n // column tool panel header expand/collapse all button, shown when some children are expanded and\n // others are collapsed\n columnSelectIndeterminate: 'tree-indeterminate',\n // shown on ghost icon while dragging column to the side of the grid to pin\n columnMovePin: 'pin',\n // shown on ghost icon while dragging over part of the page that is not a drop zone\n columnMoveHide: 'eye-slash',\n // shown on ghost icon while dragging columns to reorder\n columnMoveMove: 'arrows',\n // animating icon shown when dragging a column to the right of the grid causes horizontal scrolling\n columnMoveLeft: 'left',\n // animating icon shown when dragging a column to the left of the grid causes horizontal scrolling\n columnMoveRight: 'right',\n // shown on ghost icon while dragging over Row Groups drop zone\n columnMoveGroup: 'group',\n // shown on ghost icon while dragging over Values drop zone\n columnMoveValue: 'aggregation',\n // shown on ghost icon while dragging over pivot drop zone\n columnMovePivot: 'pivot',\n // shown on ghost icon while dragging over drop zone that doesn't support it, e.g.\n // string column over aggregation drop zone\n dropNotAllowed: 'not-allowed',\n // shown on row group when contracted (click to expand)\n groupContracted: 'tree-closed',\n // shown on row group when expanded (click to contract)\n groupExpanded: 'tree-open',\n // set filter tree list group contracted (click to expand)\n setFilterGroupClosed: 'tree-closed',\n // set filter tree list group expanded (click to contract)\n setFilterGroupOpen: 'tree-open',\n // set filter tree list expand/collapse all button, shown when some children are expanded and\n // others are collapsed\n setFilterGroupIndeterminate: 'tree-indeterminate',\n // context menu chart item\n chart: 'chart',\n // chart window title bar\n close: 'cross',\n // X (remove) on column 'pill' after adding it to a drop zone list\n cancel: 'cancel',\n // indicates the currently active pin state in the \"Pin column\" sub-menu of the column menu\n check: 'tick',\n // \"go to first\" button in pagination controls\n first: 'first',\n // \"go to previous\" button in pagination controls\n previous: 'previous',\n // \"go to next\" button in pagination controls\n next: 'next',\n // \"go to last\" button in pagination controls\n last: 'last',\n // shown on top right of chart when chart is linked to range data (click to unlink)\n linked: 'linked',\n // shown on top right of chart when chart is not linked to range data (click to link)\n unlinked: 'unlinked',\n // \"Choose colour\" button on chart settings tab\n colorPicker: 'color-picker',\n // rotating spinner shown by the loading cell renderer\n groupLoading: 'loading',\n // button to launch enterprise column menu\n menu: 'menu',\n menuAlt: 'menu-alt',\n // filter tool panel tab\n filter: 'filter',\n // column tool panel tab\n columns: 'columns',\n // button in chart regular size window title bar (click to maximise)\n maximize: 'maximize',\n // button in chart maximised window title bar (click to make regular size)\n minimize: 'minimize',\n // \"Pin column\" item in column header menu\n menuPin: 'pin',\n // \"Value aggregation\" column menu item (shown on numeric columns when grouping is active)\"\n menuValue: 'aggregation',\n // \"Group by {column-name}\" item in column header menu\n menuAddRowGroup: 'group',\n // \"Un-Group by {column-name}\" item in column header menu\n menuRemoveRowGroup: 'group',\n // context menu copy item\n clipboardCopy: 'copy',\n // context menu cut item\n clipboardCut: 'cut',\n // context menu paste item\n clipboardPaste: 'paste',\n // identifies the pivot drop zone\n pivotPanel: 'pivot',\n // \"Row groups\" drop zone in column tool panel\n rowGroupPanel: 'group',\n // columns tool panel Values drop zone\n valuePanel: 'aggregation',\n // drag handle used to pick up draggable columns\n columnDrag: 'grip',\n // drag handle used to pick up draggable rows\n rowDrag: 'grip',\n // context menu export item\n save: 'save',\n // csv export\n csvExport: 'csv',\n // excel export,\n excelExport: 'excel',\n // icon on dropdown editors\n smallDown: 'small-down',\n // version of small-right used in RTL mode\n smallLeft: 'small-left',\n // separater between column 'pills' when you add multiple columns to the header drop zone\n smallRight: 'small-right',\n smallUp: 'small-up',\n // show on column header when column is sorted ascending\n sortAscending: 'asc',\n // show on column header when column is sorted descending\n sortDescending: 'desc',\n // show on column header when column has no sort, only when enabled with gridOptions.unSortIcon=true\n sortUnSort: 'none',\n // Builder button in Advanced Filter\n advancedFilterBuilder: 'group',\n // drag handle used to pick up Advanced Filter Builder rows\n advancedFilterBuilderDrag: 'grip',\n // Advanced Filter Builder row validation error\n advancedFilterBuilderInvalid: 'not-allowed',\n // shown on Advanced Filter Builder rows to move them up\n advancedFilterBuilderMoveUp: 'up',\n // shown on Advanced Filter Builder rows to move them down\n advancedFilterBuilderMoveDown: 'down',\n // shown on Advanced Filter Builder rows to add new rows\n advancedFilterBuilderAdd: 'plus',\n // shown on Advanced Filter Builder rows to remove row\n advancedFilterBuilderRemove: 'minus',\n};\n/**\n * If icon provided, use this (either a string, or a function callback).\n * if not, then use the default icon from the theme\n * @param {string} iconName\n * @param {GridOptionsService} gridOptionsService\n * @param {Column | null} [column]\n * @returns {Element}\n */\nexport function createIcon(iconName, gridOptionsService, column) {\n const iconContents = createIconNoSpan(iconName, gridOptionsService, column);\n if (iconContents) {\n const { className } = iconContents;\n if ((typeof className === 'string' && className.indexOf('ag-icon') > -1) ||\n (typeof className === 'object' && className['ag-icon'])) {\n return iconContents;\n }\n }\n const eResult = document.createElement('span');\n eResult.appendChild(iconContents);\n return eResult;\n}\nexport function createIconNoSpan(iconName, gridOptionsService, column, forceCreate) {\n let userProvidedIcon = null;\n // check col for icon first\n const icons = column && column.getColDef().icons;\n if (icons) {\n userProvidedIcon = icons[iconName];\n }\n // if not in col, try grid options\n if (gridOptionsService && !userProvidedIcon) {\n const optionsIcons = gridOptionsService.get('icons');\n if (optionsIcons) {\n userProvidedIcon = optionsIcons[iconName];\n }\n }\n // now if user provided, use it\n if (userProvidedIcon) {\n let rendererResult;\n if (typeof userProvidedIcon === 'function') {\n rendererResult = userProvidedIcon();\n }\n else if (typeof userProvidedIcon === 'string') {\n rendererResult = userProvidedIcon;\n }\n else {\n throw new Error('icon from grid options needs to be a string or a function');\n }\n if (typeof rendererResult === 'string') {\n return loadTemplate(rendererResult);\n }\n if (isNodeOrElement(rendererResult)) {\n return rendererResult;\n }\n console.warn('AG Grid: iconRenderer should return back a string or a dom object');\n }\n else {\n const span = document.createElement('span');\n let cssClass = iconNameClassMap[iconName];\n if (!cssClass) {\n if (!forceCreate) {\n console.warn(`AG Grid: Did not find icon ${iconName}`);\n cssClass = '';\n }\n else {\n cssClass = iconName;\n }\n }\n span.setAttribute('class', `ag-icon ag-icon-${cssClass}`);\n span.setAttribute('unselectable', 'on');\n setAriaRole(span, 'presentation');\n return span;\n }\n}\n","export class KeyCode {\n}\nKeyCode.BACKSPACE = 'Backspace';\nKeyCode.TAB = 'Tab';\nKeyCode.ENTER = 'Enter';\nKeyCode.ESCAPE = 'Escape';\nKeyCode.SPACE = ' ';\nKeyCode.LEFT = 'ArrowLeft';\nKeyCode.UP = 'ArrowUp';\nKeyCode.RIGHT = 'ArrowRight';\nKeyCode.DOWN = 'ArrowDown';\nKeyCode.DELETE = 'Delete';\nKeyCode.F2 = 'F2';\nKeyCode.PAGE_UP = 'PageUp';\nKeyCode.PAGE_DOWN = 'PageDown';\nKeyCode.PAGE_HOME = 'Home';\nKeyCode.PAGE_END = 'End';\n// these should be used with `event.code` instead of `event.key`\n// as `event.key` changes when non-latin keyboards are used\nKeyCode.A = 'KeyA';\nKeyCode.C = 'KeyC';\nKeyCode.D = 'KeyD';\nKeyCode.V = 'KeyV';\nKeyCode.X = 'KeyX';\nKeyCode.Y = 'KeyY';\nKeyCode.Z = 'KeyZ';\n","import { KeyCode } from '../constants/keyCode.mjs';\nimport { isMacOsUserAgent } from './browser.mjs';\nimport { exists } from './generic.mjs';\nconst A_KEYCODE = 65;\nconst C_KEYCODE = 67;\nconst V_KEYCODE = 86;\nconst D_KEYCODE = 68;\nconst Z_KEYCODE = 90;\nconst Y_KEYCODE = 89;\nexport function isEventFromPrintableCharacter(event) {\n // no allowed printable chars have alt or ctrl key combinations\n if (event.altKey || event.ctrlKey || event.metaKey) {\n return false;\n }\n // if key is length 1, eg if it is 'a' for the a key, or '2' for the '2' key.\n // non-printable characters have names, eg 'Enter' or 'Backspace'.\n const printableCharacter = event.key.length === 1;\n return printableCharacter;\n}\n/**\n * Allows user to tell the grid to skip specific keyboard events\n * @param {GridOptionsService} gridOptionsService\n * @param {KeyboardEvent} keyboardEvent\n * @param {IRowNode} rowNode\n * @param {Column} column\n * @param {boolean} editing\n * @returns {boolean}\n */\nexport function isUserSuppressingKeyboardEvent(gridOptionsService, keyboardEvent, rowNode, column, editing) {\n const colDefFunc = column ? column.getColDef().suppressKeyboardEvent : undefined;\n // if no callbacks provided by user, then do nothing\n if (!colDefFunc) {\n return false;\n }\n const params = gridOptionsService.addGridCommonParams({\n event: keyboardEvent,\n editing,\n column,\n node: rowNode,\n data: rowNode.data,\n colDef: column.getColDef()\n });\n // colDef get first preference on suppressing events\n if (colDefFunc) {\n const colDefFuncResult = colDefFunc(params);\n // if colDef func suppressed, then return now, no need to call gridOption func\n if (colDefFuncResult) {\n return true;\n }\n }\n // otherwise return false, don't suppress, as colDef didn't suppress and no func on gridOptions\n return false;\n}\nexport function isUserSuppressingHeaderKeyboardEvent(gridOptionsService, keyboardEvent, headerRowIndex, column) {\n const colDef = column.getDefinition();\n const colDefFunc = colDef && colDef.suppressHeaderKeyboardEvent;\n if (!exists(colDefFunc)) {\n return false;\n }\n const params = gridOptionsService.addGridCommonParams({\n colDef: colDef,\n column,\n headerRowIndex,\n event: keyboardEvent\n });\n return !!colDefFunc(params);\n}\nexport function normaliseQwertyAzerty(keyboardEvent) {\n const { keyCode } = keyboardEvent;\n let code;\n switch (keyCode) {\n case A_KEYCODE:\n code = KeyCode.A;\n break;\n case C_KEYCODE:\n code = KeyCode.C;\n break;\n case V_KEYCODE:\n code = KeyCode.V;\n break;\n case D_KEYCODE:\n code = KeyCode.D;\n break;\n case Z_KEYCODE:\n code = KeyCode.Z;\n break;\n case Y_KEYCODE:\n code = KeyCode.Y;\n break;\n default:\n code = keyboardEvent.code;\n }\n return code;\n}\nexport function isDeleteKey(key, alwaysReturnFalseOnBackspace = false) {\n if (key === KeyCode.DELETE) {\n return true;\n }\n if (!alwaysReturnFalseOnBackspace && key === KeyCode.BACKSPACE) {\n return isMacOsUserAgent();\n }\n return false;\n}\n","/**\n * `True` if the event is close to the original event by X pixels either vertically or horizontally.\n * we only start dragging after X pixels so this allows us to know if we should start dragging yet.\n * @param {MouseEvent | TouchEvent} e1\n * @param {MouseEvent | TouchEvent} e2\n * @param {number} pixelCount\n * @returns {boolean}\n */\nexport function areEventsNear(e1, e2, pixelCount) {\n // by default, we wait 4 pixels before starting the drag\n if (pixelCount === 0) {\n return false;\n }\n const diffX = Math.abs(e1.clientX - e2.clientX);\n const diffY = Math.abs(e1.clientY - e2.clientY);\n return Math.max(diffX, diffY) <= pixelCount;\n}\n","/**\n * Gets called by: a) ClientSideNodeManager and b) GroupStage to do sorting.\n * when in ClientSideNodeManager we always have indexes (as this sorts the items the\n * user provided) but when in GroupStage, the nodes can contain filler nodes that\n * don't have order id's\n * @param {RowNode[]} rowNodes\n * @param {Object} rowNodeOrder\n *\n * @returns a boolean representing whether nodes were reordered\n */\nexport function sortRowNodesByOrder(rowNodes, rowNodeOrder) {\n if (!rowNodes) {\n return false;\n }\n const comparator = (nodeA, nodeB) => {\n const positionA = rowNodeOrder[nodeA.id];\n const positionB = rowNodeOrder[nodeB.id];\n const aHasIndex = positionA !== undefined;\n const bHasIndex = positionB !== undefined;\n const bothNodesAreUserNodes = aHasIndex && bHasIndex;\n const bothNodesAreFillerNodes = !aHasIndex && !bHasIndex;\n if (bothNodesAreUserNodes) {\n // when comparing two nodes the user has provided, they always\n // have indexes\n return positionA - positionB;\n }\n if (bothNodesAreFillerNodes) {\n // when comparing two filler nodes, we have no index to compare them\n // against, however we want this sorting to be deterministic, so that\n // the rows don't jump around as the user does delta updates. so we\n // want the same sort result. so we use the __objectId - which doesn't make sense\n // from a sorting point of view, but does give consistent behaviour between\n // calls. otherwise groups jump around as delta updates are done.\n // note: previously here we used nodeId, however this gave a strange order\n // as string ordering of numbers is wrong, so using id based on creation order\n // as least gives better looking order.\n return nodeA.__objectId - nodeB.__objectId;\n }\n if (aHasIndex) {\n return 1;\n }\n return -1;\n };\n // check if the list first needs sorting\n let rowNodeA;\n let rowNodeB;\n let atLeastOneOutOfOrder = false;\n for (let i = 0; i < rowNodes.length - 1; i++) {\n rowNodeA = rowNodes[i];\n rowNodeB = rowNodes[i + 1];\n if (comparator(rowNodeA, rowNodeB) > 0) {\n atLeastOneOutOfOrder = true;\n break;\n }\n }\n if (atLeastOneOutOfOrder) {\n rowNodes.sort(comparator);\n return true;\n }\n return false;\n}\n","export function convertToSet(list) {\n const set = new Set();\n list.forEach(x => set.add(x));\n return set;\n}\n","import * as AriaUtils from './aria.mjs';\nimport * as ArrayUtils from './array.mjs';\nimport * as BrowserUtils from './browser.mjs';\nimport * as DateUtils from './date.mjs';\nimport * as DomUtils from './dom.mjs';\nimport * as EventUtils from './event.mjs';\nimport * as FunctionUtils from './function.mjs';\nimport * as FuzzyMatchUtils from './fuzzyMatch.mjs';\nimport * as GenericUtils from './generic.mjs';\nimport * as IconUtils from './icon.mjs';\nimport * as KeyboardUtils from './keyboard.mjs';\nimport * as MapUtils from './map.mjs';\nimport * as MouseUtils from './mouse.mjs';\nimport * as NumberUtils from './number.mjs';\nimport * as ObjectUtils from './object.mjs';\nimport * as RowNodeUtils from './rowNode.mjs';\nimport * as SetUtils from './set.mjs';\nimport * as StringUtils from './string.mjs';\nconst utils = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, AriaUtils), ArrayUtils), BrowserUtils), DateUtils), DomUtils), EventUtils), FunctionUtils), FuzzyMatchUtils), GenericUtils), IconUtils), KeyboardUtils), MapUtils), MouseUtils), NumberUtils), ObjectUtils), RowNodeUtils), SetUtils), StringUtils);\nexport const _ = utils;\n","export class NumberSequence {\n constructor(initValue = 0, step = 1) {\n this.nextValue = initValue;\n this.step = step;\n }\n next() {\n const valToReturn = this.nextValue;\n this.nextValue += this.step;\n return valToReturn;\n }\n peek() {\n return this.nextValue;\n }\n skip(count) {\n this.nextValue += count;\n }\n}\n","export var AgPromiseStatus;\n(function (AgPromiseStatus) {\n AgPromiseStatus[AgPromiseStatus[\"IN_PROGRESS\"] = 0] = \"IN_PROGRESS\";\n AgPromiseStatus[AgPromiseStatus[\"RESOLVED\"] = 1] = \"RESOLVED\";\n})(AgPromiseStatus || (AgPromiseStatus = {}));\nexport class AgPromise {\n constructor(callback) {\n this.status = AgPromiseStatus.IN_PROGRESS;\n this.resolution = null;\n this.waiters = [];\n callback(value => this.onDone(value), params => this.onReject(params));\n }\n static all(promises) {\n return new AgPromise(resolve => {\n let remainingToResolve = promises.length;\n const combinedValues = new Array(remainingToResolve);\n promises.forEach((promise, index) => {\n promise.then(value => {\n combinedValues[index] = value;\n remainingToResolve--;\n if (remainingToResolve === 0) {\n resolve(combinedValues);\n }\n });\n });\n });\n }\n static resolve(value = null) {\n return new AgPromise(resolve => resolve(value));\n }\n then(func) {\n return new AgPromise(resolve => {\n if (this.status === AgPromiseStatus.RESOLVED) {\n resolve(func(this.resolution));\n }\n else {\n this.waiters.push(value => resolve(func(value)));\n }\n });\n }\n resolveNow(ifNotResolvedValue, ifResolved) {\n return this.status === AgPromiseStatus.RESOLVED ? ifResolved(this.resolution) : ifNotResolvedValue;\n }\n onDone(value) {\n this.status = AgPromiseStatus.RESOLVED;\n this.resolution = value;\n this.waiters.forEach(waiter => waiter(value));\n }\n onReject(params) {\n console.warn('TBI');\n }\n}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Autowired, PostConstruct } from \"../context/context.mjs\";\nimport { BeanStub } from \"../context/beanStub.mjs\";\nimport { exists } from \"../utils/generic.mjs\";\nimport { isIOSUserAgent } from \"../utils/browser.mjs\";\nimport { warnOnce } from \"../utils/function.mjs\";\nimport { Events } from \"../eventKeys.mjs\";\nvar TooltipStates;\n(function (TooltipStates) {\n TooltipStates[TooltipStates[\"NOTHING\"] = 0] = \"NOTHING\";\n TooltipStates[TooltipStates[\"WAITING_TO_SHOW\"] = 1] = \"WAITING_TO_SHOW\";\n TooltipStates[TooltipStates[\"SHOWING\"] = 2] = \"SHOWING\";\n})(TooltipStates || (TooltipStates = {}));\nvar TooltipTrigger;\n(function (TooltipTrigger) {\n TooltipTrigger[TooltipTrigger[\"HOVER\"] = 0] = \"HOVER\";\n TooltipTrigger[TooltipTrigger[\"FOCUS\"] = 1] = \"FOCUS\";\n})(TooltipTrigger || (TooltipTrigger = {}));\nexport class CustomTooltipFeature extends BeanStub {\n constructor(parentComp, tooltipShowDelayOverride, tooltipHideDelayOverride) {\n super();\n this.parentComp = parentComp;\n this.tooltipShowDelayOverride = tooltipShowDelayOverride;\n this.tooltipHideDelayOverride = tooltipHideDelayOverride;\n this.SHOW_QUICK_TOOLTIP_DIFF = 1000;\n this.FADE_OUT_TOOLTIP_TIMEOUT = 1000;\n this.INTERACTIVE_HIDE_DELAY = 100;\n this.interactionEnabled = false;\n this.isInteractingWithTooltip = false;\n this.state = TooltipStates.NOTHING;\n // when showing the tooltip, we need to make sure it's the most recent instance we request, as due to\n // async we could request two tooltips before the first instance returns, in which case we should\n // disregard the second instance.\n this.tooltipInstanceCount = 0;\n this.tooltipMouseTrack = false;\n }\n postConstruct() {\n if (this.gridOptionsService.get('tooltipInteraction')) {\n this.interactionEnabled = true;\n }\n this.tooltipTrigger = this.getTooltipTrigger();\n this.tooltipMouseTrack = this.gridOptionsService.get('tooltipMouseTrack');\n const el = this.parentComp.getGui();\n if (this.tooltipTrigger === TooltipTrigger.HOVER) {\n this.addManagedListener(el, 'mouseenter', this.onMouseEnter.bind(this));\n this.addManagedListener(el, 'mouseleave', this.onMouseLeave.bind(this));\n }\n if (this.tooltipTrigger === TooltipTrigger.FOCUS) {\n this.addManagedListener(el, 'focusin', this.onFocusIn.bind(this));\n this.addManagedListener(el, 'focusout', this.onFocusOut.bind(this));\n }\n this.addManagedListener(el, 'mousemove', this.onMouseMove.bind(this));\n if (!this.interactionEnabled) {\n this.addManagedListener(el, 'mousedown', this.onMouseDown.bind(this));\n this.addManagedListener(el, 'keydown', this.onKeyDown.bind(this));\n }\n }\n getGridOptionsTooltipDelay(delayOption) {\n const delay = this.gridOptionsService.get(delayOption);\n if (delay < 0) {\n warnOnce(`${delayOption} should not be lower than 0`);\n }\n return Math.max(200, delay);\n }\n getTooltipDelay(type) {\n var _a, _b;\n if (type === 'show') {\n return (_a = this.tooltipShowDelayOverride) !== null && _a !== void 0 ? _a : this.getGridOptionsTooltipDelay('tooltipShowDelay');\n }\n else {\n return (_b = this.tooltipHideDelayOverride) !== null && _b !== void 0 ? _b : this.getGridOptionsTooltipDelay('tooltipHideDelay');\n }\n }\n destroy() {\n // if this component gets destroyed while tooltip is showing, need to make sure\n // we don't end with no mouseLeave event resulting in zombie tooltip\n this.setToDoNothing();\n super.destroy();\n }\n getTooltipTrigger() {\n const trigger = this.gridOptionsService.get('tooltipTrigger');\n if (!trigger || trigger === 'hover') {\n return TooltipTrigger.HOVER;\n }\n return TooltipTrigger.FOCUS;\n }\n onMouseEnter(e) {\n // if `interactiveTooltipTimeoutId` is set, it means that this cell has a tooltip\n // and we are in the process of moving the cursor from the tooltip back to the cell\n // so we need to unlock this service here.\n if (this.interactionEnabled && this.interactiveTooltipTimeoutId) {\n this.unlockService();\n this.startHideTimeout();\n }\n if (isIOSUserAgent()) {\n return;\n }\n if (CustomTooltipFeature.isLocked) {\n this.showTooltipTimeoutId = window.setTimeout(() => {\n this.prepareToShowTooltip(e);\n }, this.INTERACTIVE_HIDE_DELAY);\n }\n else {\n this.prepareToShowTooltip(e);\n }\n }\n onMouseMove(e) {\n // there is a delay from the time we mouseOver a component and the time the\n // tooltip is displayed, so we need to track mousemove to be able to correctly\n // position the tooltip when showTooltip is called.\n if (this.lastMouseEvent) {\n this.lastMouseEvent = e;\n }\n if (this.tooltipMouseTrack &&\n this.state === TooltipStates.SHOWING &&\n this.tooltipComp) {\n this.positionTooltip();\n }\n }\n onMouseDown() {\n this.setToDoNothing();\n }\n onMouseLeave() {\n // if interaction is enabled, we need to verify if the user is moving\n // the cursor from the cell onto the tooltip, so we lock the service \n // for 100ms to prevent other tooltips from being created while this is happening.\n if (this.interactionEnabled) {\n this.lockService();\n }\n else {\n this.setToDoNothing();\n }\n }\n onFocusIn() {\n this.prepareToShowTooltip();\n }\n onFocusOut(e) {\n var _a;\n const relatedTarget = e.relatedTarget;\n const parentCompGui = this.parentComp.getGui();\n const tooltipGui = (_a = this.tooltipComp) === null || _a === void 0 ? void 0 : _a.getGui();\n if (this.isInteractingWithTooltip ||\n parentCompGui.contains(relatedTarget) ||\n (this.interactionEnabled && (tooltipGui === null || tooltipGui === void 0 ? void 0 : tooltipGui.contains(relatedTarget)))) {\n return;\n }\n this.setToDoNothing();\n }\n onKeyDown() {\n this.setToDoNothing();\n }\n prepareToShowTooltip(mouseEvent) {\n // every mouseenter should be following by a mouseleave, however for some unknown, it's possible for\n // mouseenter to be called twice in a row, which can happen if editing the cell. this was reported\n // in https://ag-grid.atlassian.net/browse/AG-4422. to get around this, we check the state, and if\n // state is != nothing, then we know mouseenter was already received.\n if (this.state != TooltipStates.NOTHING || CustomTooltipFeature.isLocked) {\n return false;\n }\n // if we are showing the tooltip because of focus, no delay at all\n // if another tooltip was hidden very recently, we only wait 200ms to show, not the normal waiting time\n let delay = 0;\n if (mouseEvent) {\n delay = this.isLastTooltipHiddenRecently() ? 200 : this.getTooltipDelay('show');\n }\n this.lastMouseEvent = mouseEvent || null;\n this.showTooltipTimeoutId = window.setTimeout(this.showTooltip.bind(this), delay);\n this.state = TooltipStates.WAITING_TO_SHOW;\n return true;\n }\n isLastTooltipHiddenRecently() {\n // return true if <1000ms since last time we hid a tooltip\n const now = new Date().getTime();\n const then = CustomTooltipFeature.lastTooltipHideTime;\n return (now - then) < this.SHOW_QUICK_TOOLTIP_DIFF;\n }\n setToDoNothing() {\n if (this.state === TooltipStates.SHOWING) {\n this.hideTooltip();\n }\n if (this.onBodyScrollEventCallback) {\n this.onBodyScrollEventCallback();\n this.onBodyScrollEventCallback = undefined;\n }\n if (this.onColumnMovedEventCallback) {\n this.onColumnMovedEventCallback();\n this.onColumnMovedEventCallback = undefined;\n }\n this.clearTimeouts();\n this.state = TooltipStates.NOTHING;\n this.lastMouseEvent = null;\n }\n showTooltip() {\n const params = Object.assign({}, this.parentComp.getTooltipParams());\n if (!exists(params.value)) {\n this.setToDoNothing();\n return;\n }\n this.state = TooltipStates.SHOWING;\n this.tooltipInstanceCount++;\n // we pass in tooltipInstanceCount so the callback knows what the count was when\n // we requested the tooltip, so if another tooltip was requested in the mean time\n // we disregard it\n const callback = this.newTooltipComponentCallback.bind(this, this.tooltipInstanceCount);\n const userDetails = this.userComponentFactory.getTooltipCompDetails(params);\n userDetails.newAgStackInstance().then(callback);\n }\n hideTooltip(forceHide) {\n if (!forceHide && this.isInteractingWithTooltip) {\n return;\n }\n // check if comp exists - due to async, although we asked for\n // one, the instance may not be back yet\n if (this.tooltipComp) {\n this.destroyTooltipComp();\n CustomTooltipFeature.lastTooltipHideTime = new Date().getTime();\n }\n const event = {\n type: Events.EVENT_TOOLTIP_HIDE,\n parentGui: this.parentComp.getGui()\n };\n this.eventService.dispatchEvent(event);\n this.state = TooltipStates.NOTHING;\n }\n newTooltipComponentCallback(tooltipInstanceCopy, tooltipComp) {\n const compNoLongerNeeded = this.state !== TooltipStates.SHOWING || this.tooltipInstanceCount !== tooltipInstanceCopy;\n if (compNoLongerNeeded) {\n this.getContext().destroyBean(tooltipComp);\n return;\n }\n const eGui = tooltipComp.getGui();\n this.tooltipComp = tooltipComp;\n if (!eGui.classList.contains('ag-tooltip')) {\n eGui.classList.add('ag-tooltip-custom');\n }\n if (this.tooltipTrigger === TooltipTrigger.HOVER) {\n eGui.classList.add('ag-tooltip-animate');\n }\n if (this.interactionEnabled) {\n eGui.classList.add('ag-tooltip-interactive');\n }\n const translate = this.localeService.getLocaleTextFunc();\n const addPopupRes = this.popupService.addPopup({\n eChild: eGui,\n ariaLabel: translate('ariaLabelTooltip', 'Tooltip')\n });\n if (addPopupRes) {\n this.tooltipPopupDestroyFunc = addPopupRes.hideFunc;\n }\n this.positionTooltip();\n if (this.tooltipTrigger === TooltipTrigger.FOCUS) {\n this.onBodyScrollEventCallback = this.addManagedListener(this.eventService, Events.EVENT_BODY_SCROLL, this.setToDoNothing.bind(this));\n this.onColumnMovedEventCallback = this.addManagedListener(this.eventService, Events.EVENT_COLUMN_MOVED, this.setToDoNothing.bind(this));\n }\n if (this.interactionEnabled) {\n if (this.tooltipTrigger === TooltipTrigger.HOVER) {\n this.tooltipMouseEnterListener = this.addManagedListener(eGui, 'mouseenter', this.onTooltipMouseEnter.bind(this)) || null;\n this.tooltipMouseLeaveListener = this.addManagedListener(eGui, 'mouseleave', this.onTooltipMouseLeave.bind(this)) || null;\n }\n else {\n this.tooltipFocusInListener = this.addManagedListener(eGui, 'focusin', this.onTooltipFocusIn.bind(this)) || null;\n this.tooltipFocusOutListener = this.addManagedListener(eGui, 'focusout', this.onTooltipFocusOut.bind(this)) || null;\n }\n }\n const event = {\n type: Events.EVENT_TOOLTIP_SHOW,\n tooltipGui: eGui,\n parentGui: this.parentComp.getGui()\n };\n this.eventService.dispatchEvent(event);\n this.startHideTimeout();\n }\n onTooltipMouseEnter() {\n this.isInteractingWithTooltip = true;\n this.unlockService();\n }\n onTooltipMouseLeave() {\n this.isInteractingWithTooltip = false;\n this.lockService();\n }\n onTooltipFocusIn() {\n this.isInteractingWithTooltip = true;\n }\n onTooltipFocusOut(e) {\n var _a;\n const parentGui = this.parentComp.getGui();\n const tooltipGui = (_a = this.tooltipComp) === null || _a === void 0 ? void 0 : _a.getGui();\n const relatedTarget = e.relatedTarget;\n // focusout is dispatched when inner elements lose focus\n // so we need to verify if focus is contained within the tooltip\n if (tooltipGui === null || tooltipGui === void 0 ? void 0 : tooltipGui.contains(relatedTarget)) {\n return;\n }\n this.isInteractingWithTooltip = false;\n // if we move the focus from the tooltip back to the original cell\n // the tooltip should remain open, but we need to restart the hide timeout counter\n if (parentGui.contains(relatedTarget)) {\n this.startHideTimeout();\n }\n // if the parent cell doesn't contain the focus, simply hide the tooltip\n else {\n this.hideTooltip();\n }\n }\n positionTooltip() {\n const params = {\n type: 'tooltip',\n ePopup: this.tooltipComp.getGui(),\n nudgeY: 18,\n skipObserver: this.tooltipMouseTrack\n };\n if (this.lastMouseEvent) {\n this.popupService.positionPopupUnderMouseEvent(Object.assign(Object.assign({}, params), { mouseEvent: this.lastMouseEvent }));\n }\n else {\n this.popupService.positionPopupByComponent(Object.assign(Object.assign({}, params), { eventSource: this.parentComp.getGui(), position: 'under', keepWithinBounds: true, nudgeY: 5 }));\n }\n }\n destroyTooltipComp() {\n // add class to fade out the tooltip\n this.tooltipComp.getGui().classList.add('ag-tooltip-hiding');\n // make local copies of these variables, as we use them in the async function below,\n // and we clear then to 'undefined' later, so need to take a copy before they are undefined.\n const tooltipPopupDestroyFunc = this.tooltipPopupDestroyFunc;\n const tooltipComp = this.tooltipComp;\n const delay = this.tooltipTrigger === TooltipTrigger.HOVER ? this.FADE_OUT_TOOLTIP_TIMEOUT : 0;\n window.setTimeout(() => {\n tooltipPopupDestroyFunc();\n this.getContext().destroyBean(tooltipComp);\n }, delay);\n this.clearTooltipListeners();\n this.tooltipPopupDestroyFunc = undefined;\n this.tooltipComp = undefined;\n }\n clearTooltipListeners() {\n [\n this.tooltipMouseEnterListener, this.tooltipMouseLeaveListener,\n this.tooltipFocusInListener, this.tooltipFocusOutListener\n ].forEach(listener => {\n if (listener) {\n listener();\n }\n });\n this.tooltipMouseEnterListener = this.tooltipMouseLeaveListener =\n this.tooltipFocusInListener = this.tooltipFocusOutListener = null;\n }\n lockService() {\n CustomTooltipFeature.isLocked = true;\n this.interactiveTooltipTimeoutId = window.setTimeout(() => {\n this.unlockService();\n this.setToDoNothing();\n }, this.INTERACTIVE_HIDE_DELAY);\n }\n unlockService() {\n CustomTooltipFeature.isLocked = false;\n this.clearInteractiveTimeout();\n }\n startHideTimeout() {\n this.clearHideTimeout();\n this.hideTooltipTimeoutId = window.setTimeout(this.hideTooltip.bind(this), this.getTooltipDelay('hide'));\n }\n clearShowTimeout() {\n if (!this.showTooltipTimeoutId) {\n return;\n }\n window.clearTimeout(this.showTooltipTimeoutId);\n this.showTooltipTimeoutId = undefined;\n }\n clearHideTimeout() {\n if (!this.hideTooltipTimeoutId) {\n return;\n }\n window.clearTimeout(this.hideTooltipTimeoutId);\n this.hideTooltipTimeoutId = undefined;\n }\n clearInteractiveTimeout() {\n if (!this.interactiveTooltipTimeoutId) {\n return;\n }\n window.clearTimeout(this.interactiveTooltipTimeoutId);\n this.interactiveTooltipTimeoutId = undefined;\n }\n clearTimeouts() {\n this.clearShowTimeout();\n this.clearHideTimeout();\n this.clearInteractiveTimeout();\n }\n}\nCustomTooltipFeature.isLocked = false;\n__decorate([\n Autowired('popupService')\n], CustomTooltipFeature.prototype, \"popupService\", void 0);\n__decorate([\n Autowired('userComponentFactory')\n], CustomTooltipFeature.prototype, \"userComponentFactory\", void 0);\n__decorate([\n PostConstruct\n], CustomTooltipFeature.prototype, \"postConstruct\", null);\n","export class CssClassManager {\n constructor(getGui) {\n // to minimise DOM hits, we only apply CSS classes if they have changed. as adding a CSS class that is already\n // there, or removing one that wasn't present, all takes CPU.\n this.cssClassStates = {};\n this.getGui = getGui;\n }\n addCssClass(className) {\n const list = (className || '').split(' ');\n if (list.length > 1) {\n list.forEach(cls => this.addCssClass(cls));\n return;\n }\n const updateNeeded = this.cssClassStates[className] !== true;\n if (updateNeeded && className.length) {\n const eGui = this.getGui();\n if (eGui) {\n eGui.classList.add(className);\n }\n this.cssClassStates[className] = true;\n }\n }\n removeCssClass(className) {\n const list = (className || '').split(' ');\n if (list.length > 1) {\n list.forEach(cls => this.removeCssClass(cls));\n return;\n }\n const updateNeeded = this.cssClassStates[className] !== false;\n if (updateNeeded && className.length) {\n const eGui = this.getGui();\n if (eGui) {\n eGui.classList.remove(className);\n }\n this.cssClassStates[className] = false;\n }\n }\n containsCssClass(className) {\n const eGui = this.getGui();\n if (!eGui) {\n return false;\n }\n return eGui.classList.contains(className);\n }\n addOrRemoveCssClass(className, addOrRemove) {\n if (!className) {\n return;\n }\n // we check for spaces before doing the split, as doing the split\n // created a performance problem (on windows only, see AG-6765)\n if (className.indexOf(' ') >= 0) {\n const list = (className || '').split(' ');\n if (list.length > 1) {\n list.forEach(cls => this.addOrRemoveCssClass(cls, addOrRemove));\n return;\n }\n }\n const updateNeeded = this.cssClassStates[className] !== addOrRemove;\n if (updateNeeded && className.length) {\n const eGui = this.getGui();\n if (eGui) {\n eGui.classList.toggle(className, addOrRemove);\n }\n this.cssClassStates[className] = addOrRemove;\n }\n }\n}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Autowired, PreConstruct } from \"../context/context.mjs\";\nimport { BeanStub } from \"../context/beanStub.mjs\";\nimport { NumberSequence } from \"../utils/index.mjs\";\nimport { isNodeOrElement, copyNodeList, iterateNamedNodeMap, loadTemplate, setVisible, setDisplayed } from '../utils/dom.mjs';\nimport { getFunctionName } from '../utils/function.mjs';\nimport { CustomTooltipFeature } from \"./customTooltipFeature.mjs\";\nimport { CssClassManager } from \"../rendering/cssClassManager.mjs\";\nconst compIdSequence = new NumberSequence();\nexport class Component extends BeanStub {\n constructor(template) {\n super();\n // if false, then CSS class \"ag-hidden\" is applied, which sets \"display: none\"\n this.displayed = true;\n // if false, then CSS class \"ag-invisible\" is applied, which sets \"visibility: hidden\"\n this.visible = true;\n // unique id for this row component. this is used for getting a reference to the HTML dom.\n // we cannot use the RowNode id as this is not unique (due to animation, old rows can be lying\n // around as we create a new rowComp instance for the same row node).\n this.compId = compIdSequence.next();\n this.cssClassManager = new CssClassManager(() => this.eGui);\n if (template) {\n this.setTemplate(template);\n }\n }\n preConstructOnComponent() {\n this.usingBrowserTooltips = this.gridOptionsService.get('enableBrowserTooltips');\n }\n getCompId() {\n return this.compId;\n }\n getTooltipParams() {\n return {\n value: this.tooltipText,\n location: 'UNKNOWN'\n };\n }\n setTooltip(newTooltipText, showDelayOverride, hideDelayOverride) {\n const removeTooltip = () => {\n if (this.usingBrowserTooltips) {\n this.getGui().removeAttribute('title');\n }\n else {\n this.tooltipFeature = this.destroyBean(this.tooltipFeature);\n }\n };\n const addTooltip = () => {\n if (this.usingBrowserTooltips) {\n this.getGui().setAttribute('title', this.tooltipText);\n }\n else {\n this.tooltipFeature = this.createBean(new CustomTooltipFeature(this, showDelayOverride, hideDelayOverride));\n }\n };\n if (this.tooltipText != newTooltipText) {\n if (this.tooltipText) {\n removeTooltip();\n }\n if (newTooltipText != null) {\n this.tooltipText = newTooltipText;\n if (this.tooltipText) {\n addTooltip();\n }\n }\n }\n }\n // for registered components only, eg creates AgCheckbox instance from ag-checkbox HTML tag\n createChildComponentsFromTags(parentNode, paramsMap) {\n // we MUST take a copy of the list first, as the 'swapComponentForNode' adds comments into the DOM\n // which messes up the traversal order of the children.\n const childNodeList = copyNodeList(parentNode.childNodes);\n childNodeList.forEach(childNode => {\n if (!(childNode instanceof HTMLElement)) {\n return;\n }\n const childComp = this.createComponentFromElement(childNode, childComp => {\n // copy over all attributes, including css classes, so any attributes user put on the tag\n // wll be carried across\n const childGui = childComp.getGui();\n if (childGui) {\n this.copyAttributesFromNode(childNode, childComp.getGui());\n }\n }, paramsMap);\n if (childComp) {\n if (childComp.addItems && childNode.children.length) {\n this.createChildComponentsFromTags(childNode, paramsMap);\n // converting from HTMLCollection to Array\n const items = Array.prototype.slice.call(childNode.children);\n childComp.addItems(items);\n }\n // replace the tag (eg ag-checkbox) with the proper HTMLElement (eg 'div') in the dom\n this.swapComponentForNode(childComp, parentNode, childNode);\n }\n else if (childNode.childNodes) {\n this.createChildComponentsFromTags(childNode, paramsMap);\n }\n });\n }\n createComponentFromElement(element, afterPreCreateCallback, paramsMap) {\n const key = element.nodeName;\n const componentParams = paramsMap ? paramsMap[element.getAttribute('ref')] : undefined;\n const ComponentClass = this.agStackComponentsRegistry.getComponentClass(key);\n if (ComponentClass) {\n Component.elementGettingCreated = element;\n const newComponent = new ComponentClass(componentParams);\n newComponent.setParentComponent(this);\n this.createBean(newComponent, null, afterPreCreateCallback);\n return newComponent;\n }\n return null;\n }\n copyAttributesFromNode(source, dest) {\n iterateNamedNodeMap(source.attributes, (name, value) => dest.setAttribute(name, value));\n }\n swapComponentForNode(newComponent, parentNode, childNode) {\n const eComponent = newComponent.getGui();\n parentNode.replaceChild(eComponent, childNode);\n parentNode.insertBefore(document.createComment(childNode.nodeName), eComponent);\n this.addDestroyFunc(this.destroyBean.bind(this, newComponent));\n this.swapInComponentForQuerySelectors(newComponent, childNode);\n }\n swapInComponentForQuerySelectors(newComponent, childNode) {\n const thisNoType = this;\n this.iterateOverQuerySelectors((querySelector) => {\n if (thisNoType[querySelector.attributeName] === childNode) {\n thisNoType[querySelector.attributeName] = newComponent;\n }\n });\n }\n iterateOverQuerySelectors(action) {\n let thisPrototype = Object.getPrototypeOf(this);\n while (thisPrototype != null) {\n const metaData = thisPrototype.__agComponentMetaData;\n const currentProtoName = getFunctionName(thisPrototype.constructor);\n if (metaData && metaData[currentProtoName] && metaData[currentProtoName].querySelectors) {\n metaData[currentProtoName].querySelectors.forEach((querySelector) => action(querySelector));\n }\n thisPrototype = Object.getPrototypeOf(thisPrototype);\n }\n }\n activateTabIndex(elements) {\n const tabIndex = this.gridOptionsService.get('tabIndex');\n if (!elements) {\n elements = [];\n }\n if (!elements.length) {\n elements.push(this.getGui());\n }\n elements.forEach(el => el.setAttribute('tabindex', tabIndex.toString()));\n }\n setTemplate(template, paramsMap) {\n const eGui = loadTemplate(template);\n this.setTemplateFromElement(eGui, paramsMap);\n }\n setTemplateFromElement(element, paramsMap) {\n this.eGui = element;\n this.eGui.__agComponent = this;\n this.wireQuerySelectors();\n // context will not be available when user sets template in constructor\n if (!!this.getContext()) {\n this.createChildComponentsFromTags(this.getGui(), paramsMap);\n }\n }\n createChildComponentsPreConstruct() {\n // ui exists if user sets template in constructor. when this happens, we have to wait for the context\n // to be autoWired first before we can create child components.\n if (!!this.getGui()) {\n this.createChildComponentsFromTags(this.getGui());\n }\n }\n wireQuerySelectors() {\n if (!this.eGui) {\n return;\n }\n const thisNoType = this;\n this.iterateOverQuerySelectors((querySelector) => {\n const setResult = (result) => thisNoType[querySelector.attributeName] = result;\n // if it's a ref selector, and match is on top level component, we return\n // the element. otherwise no way of components putting ref=xxx on the top\n // level element as querySelector only looks at children.\n const topLevelRefMatch = querySelector.refSelector\n && this.getAttribute('ref') === querySelector.refSelector;\n if (topLevelRefMatch) {\n setResult(this.eGui);\n }\n else {\n // otherwise use querySelector, which looks at children\n const resultOfQuery = this.eGui.querySelector(querySelector.querySelector);\n if (resultOfQuery) {\n setResult(resultOfQuery.__agComponent || resultOfQuery);\n }\n }\n });\n }\n getGui() {\n return this.eGui;\n }\n getFocusableElement() {\n return this.eGui;\n }\n getAriaElement() {\n return this.getFocusableElement();\n }\n setParentComponent(component) {\n this.parentComponent = component;\n }\n getParentComponent() {\n return this.parentComponent;\n }\n // this method is for older code, that wants to provide the gui element,\n // it is not intended for this to be in ag-Stack\n setGui(eGui) {\n this.eGui = eGui;\n }\n queryForHtmlElement(cssSelector) {\n return this.eGui.querySelector(cssSelector);\n }\n queryForHtmlInputElement(cssSelector) {\n return this.eGui.querySelector(cssSelector);\n }\n appendChild(newChild, container) {\n if (newChild == null) {\n return;\n }\n if (!container) {\n container = this.eGui;\n }\n if (isNodeOrElement(newChild)) {\n container.appendChild(newChild);\n }\n else {\n const childComponent = newChild;\n container.appendChild(childComponent.getGui());\n }\n }\n isDisplayed() {\n return this.displayed;\n }\n setVisible(visible, options = {}) {\n if (visible !== this.visible) {\n this.visible = visible;\n const { skipAriaHidden } = options;\n setVisible(this.eGui, visible, { skipAriaHidden });\n }\n }\n setDisplayed(displayed, options = {}) {\n if (displayed !== this.displayed) {\n this.displayed = displayed;\n const { skipAriaHidden } = options;\n setDisplayed(this.eGui, displayed, { skipAriaHidden });\n const event = {\n type: Component.EVENT_DISPLAYED_CHANGED,\n visible: this.displayed\n };\n this.dispatchEvent(event);\n }\n }\n destroy() {\n if (this.tooltipFeature) {\n this.tooltipFeature = this.destroyBean(this.tooltipFeature);\n }\n if (this.parentComponent) {\n this.parentComponent = undefined;\n }\n const eGui = this.eGui;\n if (eGui && eGui.__agComponent) {\n eGui.__agComponent = undefined;\n }\n super.destroy();\n }\n addGuiEventListener(event, listener, options) {\n this.eGui.addEventListener(event, listener, options);\n this.addDestroyFunc(() => this.eGui.removeEventListener(event, listener));\n }\n addCssClass(className) {\n this.cssClassManager.addCssClass(className);\n }\n removeCssClass(className) {\n this.cssClassManager.removeCssClass(className);\n }\n containsCssClass(className) {\n return this.cssClassManager.containsCssClass(className);\n }\n addOrRemoveCssClass(className, addOrRemove) {\n this.cssClassManager.addOrRemoveCssClass(className, addOrRemove);\n }\n getAttribute(key) {\n const { eGui } = this;\n return eGui ? eGui.getAttribute(key) : null;\n }\n getRefElement(refName) {\n return this.queryForHtmlElement(`[ref=\"${refName}\"]`);\n }\n}\nComponent.EVENT_DISPLAYED_CHANGED = 'displayedChanged';\n__decorate([\n Autowired('agStackComponentsRegistry')\n], Component.prototype, \"agStackComponentsRegistry\", void 0);\n__decorate([\n PreConstruct\n], Component.prototype, \"preConstructOnComponent\", null);\n__decorate([\n PreConstruct\n], Component.prototype, \"createChildComponentsPreConstruct\", null);\n","import { getFunctionName } from '../utils/function.mjs';\nexport function QuerySelector(selector) {\n return querySelectorFunc.bind(this, selector, undefined);\n}\nexport function RefSelector(ref) {\n return querySelectorFunc.bind(this, `[ref=${ref}]`, ref);\n}\nfunction querySelectorFunc(selector, refSelector, classPrototype, methodOrAttributeName, index) {\n if (selector === null) {\n console.error('AG Grid: QuerySelector selector should not be null');\n return;\n }\n if (typeof index === 'number') {\n console.error('AG Grid: QuerySelector should be on an attribute');\n return;\n }\n addToObjectProps(classPrototype, 'querySelectors', {\n attributeName: methodOrAttributeName,\n querySelector: selector,\n refSelector: refSelector\n });\n}\n// // think we should take this out, put property bindings on the\n// export function Method(eventName?: string): Function {\n// return methodFunc.bind(this, eventName);\n// }\n//\n// function methodFunc(alias: string, target: Object, methodName: string) {\n// if (alias === null) {\n// console.error(\"AG Grid: EventListener eventName should not be null\");\n// return;\n// }\n//\n// addToObjectProps(target, 'methods', {\n// methodName: methodName,\n// alias: alias\n// });\n// }\nfunction addToObjectProps(target, key, value) {\n // it's an attribute on the class\n const props = getOrCreateProps(target, getFunctionName(target.constructor));\n if (!props[key]) {\n props[key] = [];\n }\n props[key].push(value);\n}\nfunction getOrCreateProps(target, instanceName) {\n if (!target.__agComponentMetaData) {\n target.__agComponentMetaData = {};\n }\n if (!target.__agComponentMetaData[instanceName]) {\n target.__agComponentMetaData[instanceName] = {};\n }\n return target.__agComponentMetaData[instanceName];\n}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component } from '../../../widgets/component.mjs';\nimport { RefSelector } from '../../../widgets/componentAnnotations.mjs';\nimport { Autowired } from '../../../context/context.mjs';\n// optional floating filter for user provided filters - instead of providing a floating filter,\n// they can provide a getModelAsString() method on the filter instead. this class just displays\n// the string returned from getModelAsString()\nexport class ReadOnlyFloatingFilter extends Component {\n constructor() {\n super(/* html */ `\n
\n \n
`);\n }\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n destroy() {\n super.destroy();\n }\n init(params) {\n this.params = params;\n const displayName = this.columnModel.getDisplayNameForColumn(params.column, 'header', true);\n const translate = this.localeService.getLocaleTextFunc();\n this.eFloatingFilterText\n .setDisabled(true)\n .setInputAriaLabel(`${displayName} ${translate('ariaFilterInput', 'Filter Input')}`);\n }\n onParentModelChanged(parentModel) {\n if (parentModel == null) {\n this.eFloatingFilterText.setValue('');\n return;\n }\n this.params.parentFilterInstance(filterInstance => {\n // it would be nice to check if getModelAsString was present before creating this component,\n // however that is not possible, as React Hooks and VueJS don't attached the methods to the Filter until\n // AFTER the filter is created, not allowing inspection before this (we create floating filters as columns\n // are drawn, but the parent filters are only created when needed).\n if (filterInstance.getModelAsString) {\n const modelAsString = filterInstance.getModelAsString(parentModel);\n this.eFloatingFilterText.setValue(modelAsString);\n }\n });\n }\n onParamsUpdated(params) {\n this.refresh(params);\n }\n refresh(params) {\n this.init(params);\n }\n}\n__decorate([\n RefSelector('eFloatingFilterText')\n], ReadOnlyFloatingFilter.prototype, \"eFloatingFilterText\", void 0);\n__decorate([\n Autowired('columnModel')\n], ReadOnlyFloatingFilter.prototype, \"columnModel\", void 0);\n","import { setDisplayed } from '../../../utils/dom.mjs';\nimport { warnOnce } from '../../../utils/function.mjs';\n/** Provides sync access to async component. Date component can be lazy created - this class encapsulates\n * this by keeping value locally until DateComp has loaded, then passing DateComp the value. */\nexport class DateCompWrapper {\n constructor(context, userComponentFactory, dateComponentParams, eParent) {\n this.alive = true;\n this.context = context;\n this.eParent = eParent;\n const compDetails = userComponentFactory.getDateCompDetails(dateComponentParams);\n const promise = compDetails.newAgStackInstance();\n promise.then(dateComp => {\n // because async, check the filter still exists after component comes back\n if (!this.alive) {\n context.destroyBean(dateComp);\n return;\n }\n this.dateComp = dateComp;\n if (!dateComp) {\n return;\n }\n eParent.appendChild(dateComp.getGui());\n if (dateComp.afterGuiAttached) {\n dateComp.afterGuiAttached();\n }\n if (this.tempValue) {\n dateComp.setDate(this.tempValue);\n }\n if (this.disabled != null) {\n this.setDateCompDisabled(this.disabled);\n }\n });\n }\n destroy() {\n this.alive = false;\n this.dateComp = this.context.destroyBean(this.dateComp);\n }\n getDate() {\n return this.dateComp ? this.dateComp.getDate() : this.tempValue;\n }\n setDate(value) {\n if (this.dateComp) {\n this.dateComp.setDate(value);\n }\n else {\n this.tempValue = value;\n }\n }\n setDisabled(disabled) {\n if (this.dateComp) {\n this.setDateCompDisabled(disabled);\n }\n else {\n this.disabled = disabled;\n }\n }\n setDisplayed(displayed) {\n setDisplayed(this.eParent, displayed);\n }\n setInputPlaceholder(placeholder) {\n if (this.dateComp && this.dateComp.setInputPlaceholder) {\n this.dateComp.setInputPlaceholder(placeholder);\n }\n }\n setInputAriaLabel(label) {\n if (this.dateComp && this.dateComp.setInputAriaLabel) {\n this.dateComp.setInputAriaLabel(label);\n }\n }\n afterGuiAttached(params) {\n if (this.dateComp && typeof this.dateComp.afterGuiAttached === 'function') {\n this.dateComp.afterGuiAttached(params);\n }\n }\n updateParams(params) {\n var _a, _b;\n let hasRefreshed = false;\n if (((_a = this.dateComp) === null || _a === void 0 ? void 0 : _a.refresh) && typeof this.dateComp.refresh === 'function') {\n const result = this.dateComp.refresh(params);\n // framework wrapper always implements optional methods, but returns null if no underlying method\n if (result !== null) {\n hasRefreshed = true;\n }\n }\n if (!hasRefreshed && ((_b = this.dateComp) === null || _b === void 0 ? void 0 : _b.onParamsUpdated) && typeof this.dateComp.onParamsUpdated === 'function') {\n const result = this.dateComp.onParamsUpdated(params);\n if (result !== null) {\n warnOnce(`Custom date component method 'onParamsUpdated' is deprecated. Use 'refresh' instead.`);\n }\n }\n }\n setDateCompDisabled(disabled) {\n if (this.dateComp == null) {\n return;\n }\n if (this.dateComp.setDisabled == null) {\n return;\n }\n this.dateComp.setDisabled(disabled);\n }\n}\n","/* Common logic for options, used by both filters and floating filters. */\nexport class OptionsFactory {\n constructor() {\n this.customFilterOptions = {};\n }\n init(params, defaultOptions) {\n this.filterOptions = params.filterOptions || defaultOptions;\n this.mapCustomOptions();\n this.selectDefaultItem(params);\n }\n getFilterOptions() {\n return this.filterOptions;\n }\n mapCustomOptions() {\n if (!this.filterOptions) {\n return;\n }\n this.filterOptions.forEach(filterOption => {\n if (typeof filterOption === 'string') {\n return;\n }\n const requiredProperties = [['displayKey'], ['displayName'], ['predicate', 'test']];\n const propertyCheck = (keys) => {\n if (!keys.some(key => filterOption[key] != null)) {\n console.warn(`AG Grid: ignoring FilterOptionDef as it doesn't contain one of '${keys}'`);\n return false;\n }\n return true;\n };\n if (!requiredProperties.every(propertyCheck)) {\n this.filterOptions = this.filterOptions.filter(v => v === filterOption) || [];\n return;\n }\n this.customFilterOptions[filterOption.displayKey] = filterOption;\n });\n }\n selectDefaultItem(params) {\n if (params.defaultOption) {\n this.defaultOption = params.defaultOption;\n }\n else if (this.filterOptions.length >= 1) {\n const firstFilterOption = this.filterOptions[0];\n if (typeof firstFilterOption === 'string') {\n this.defaultOption = firstFilterOption;\n }\n else if (firstFilterOption.displayKey) {\n this.defaultOption = firstFilterOption.displayKey;\n }\n else {\n console.warn(`AG Grid: invalid FilterOptionDef supplied as it doesn't contain a 'displayKey'`);\n }\n }\n else {\n console.warn('AG Grid: no filter options for filter');\n }\n }\n getDefaultOption() {\n return this.defaultOption;\n }\n getCustomOption(name) {\n return this.customFilterOptions[name];\n }\n}\n","export const FILTER_LOCALE_TEXT = {\n applyFilter: 'Apply',\n clearFilter: 'Clear',\n resetFilter: 'Reset',\n cancelFilter: 'Cancel',\n textFilter: 'Text Filter',\n numberFilter: 'Number Filter',\n dateFilter: 'Date Filter',\n setFilter: 'Set Filter',\n filterOoo: 'Filter...',\n empty: 'Choose one',\n equals: 'Equals',\n notEqual: 'Does not equal',\n lessThan: 'Less than',\n greaterThan: 'Greater than',\n inRange: 'Between',\n inRangeStart: 'From',\n inRangeEnd: 'To',\n lessThanOrEqual: 'Less than or equal to',\n greaterThanOrEqual: 'Greater than or equal to',\n contains: 'Contains',\n notContains: 'Does not contain',\n startsWith: 'Begins with',\n endsWith: 'Ends with',\n blank: 'Blank',\n notBlank: 'Not blank',\n before: 'Before',\n after: 'After',\n andCondition: 'AND',\n orCondition: 'OR',\n dateFormatOoo: 'yyyy-mm-dd',\n};\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { PostConstruct, Autowired } from '../context/context.mjs';\nimport { KeyCode } from '../constants/keyCode.mjs';\nimport { isStopPropagationForAgGrid, stopPropagationForAgGrid } from '../utils/event.mjs';\nimport { BeanStub } from '../context/beanStub.mjs';\nexport class ManagedFocusFeature extends BeanStub {\n constructor(eFocusableElement, callbacks = {}) {\n super();\n this.eFocusableElement = eFocusableElement;\n this.callbacks = callbacks;\n this.callbacks = Object.assign({ shouldStopEventPropagation: () => false, onTabKeyDown: (e) => {\n if (e.defaultPrevented) {\n return;\n }\n const nextRoot = this.focusService.findNextFocusableElement(this.eFocusableElement, false, e.shiftKey);\n if (!nextRoot) {\n return;\n }\n nextRoot.focus();\n e.preventDefault();\n } }, callbacks);\n }\n postConstruct() {\n this.eFocusableElement.classList.add(ManagedFocusFeature.FOCUS_MANAGED_CLASS);\n this.addKeyDownListeners(this.eFocusableElement);\n if (this.callbacks.onFocusIn) {\n this.addManagedListener(this.eFocusableElement, 'focusin', this.callbacks.onFocusIn);\n }\n if (this.callbacks.onFocusOut) {\n this.addManagedListener(this.eFocusableElement, 'focusout', this.callbacks.onFocusOut);\n }\n }\n addKeyDownListeners(eGui) {\n this.addManagedListener(eGui, 'keydown', (e) => {\n if (e.defaultPrevented || isStopPropagationForAgGrid(e)) {\n return;\n }\n if (this.callbacks.shouldStopEventPropagation(e)) {\n stopPropagationForAgGrid(e);\n return;\n }\n if (e.key === KeyCode.TAB) {\n this.callbacks.onTabKeyDown(e);\n }\n else if (this.callbacks.handleKeyDown) {\n this.callbacks.handleKeyDown(e);\n }\n });\n }\n}\nManagedFocusFeature.FOCUS_MANAGED_CLASS = 'ag-focus-managed';\n__decorate([\n Autowired('focusService')\n], ManagedFocusFeature.prototype, \"focusService\", void 0);\n__decorate([\n PostConstruct\n], ManagedFocusFeature.prototype, \"postConstruct\", null);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { BeanStub } from \"../../context/beanStub.mjs\";\nimport { Autowired } from \"../../context/context.mjs\";\nimport { getAbsoluteHeight, getAbsoluteWidth, isVisible, setFixedHeight, setFixedWidth } from \"../../utils/dom.mjs\";\nconst RESIZE_CONTAINER_STYLE = 'ag-resizer-wrapper';\nconst RESIZE_TEMPLATE = /* html */ `
\n
\n
\n
\n
\n
\n
\n
\n
\n
`;\nexport class PositionableFeature extends BeanStub {\n constructor(element, config) {\n super();\n this.element = element;\n this.dragStartPosition = {\n x: 0,\n y: 0\n };\n this.position = {\n x: 0,\n y: 0\n };\n this.lastSize = {\n width: -1,\n height: -1\n };\n this.positioned = false;\n this.resizersAdded = false;\n this.resizeListeners = [];\n this.boundaryEl = null;\n this.isResizing = false;\n this.isMoving = false;\n this.resizable = {};\n this.movable = false;\n this.currentResizer = null;\n this.config = Object.assign({}, { popup: false }, config);\n }\n center() {\n const { clientHeight, clientWidth } = this.offsetParent;\n const x = (clientWidth / 2) - (this.getWidth() / 2);\n const y = (clientHeight / 2) - (this.getHeight() / 2);\n this.offsetElement(x, y);\n }\n initialisePosition() {\n if (this.positioned) {\n return;\n }\n const { centered, forcePopupParentAsOffsetParent, minWidth, width, minHeight, height, x, y } = this.config;\n if (!this.offsetParent) {\n this.setOffsetParent();\n }\n let computedMinHeight = 0;\n let computedMinWidth = 0;\n // here we don't use the main offset parent but the element's offsetParent\n // in order to calculated the minWidth and minHeight correctly\n const isElementVisible = isVisible(this.element);\n if (isElementVisible) {\n const boundaryEl = this.findBoundaryElement();\n const offsetParentComputedStyles = window.getComputedStyle(boundaryEl);\n if (offsetParentComputedStyles.minWidth != null) {\n const paddingWidth = boundaryEl.offsetWidth - this.element.offsetWidth;\n computedMinWidth = parseInt(offsetParentComputedStyles.minWidth, 10) - paddingWidth;\n }\n if (offsetParentComputedStyles.minHeight != null) {\n const paddingHeight = boundaryEl.offsetHeight - this.element.offsetHeight;\n computedMinHeight = parseInt(offsetParentComputedStyles.minHeight, 10) - paddingHeight;\n }\n }\n this.minHeight = minHeight || computedMinHeight;\n this.minWidth = minWidth || computedMinWidth;\n if (width) {\n this.setWidth(width);\n }\n if (height) {\n this.setHeight(height);\n }\n if (!width || !height) {\n this.refreshSize();\n }\n if (centered) {\n this.center();\n }\n else if (x || y) {\n this.offsetElement(x, y);\n }\n else if (isElementVisible && forcePopupParentAsOffsetParent) {\n let boundaryEl = this.boundaryEl;\n let initialisedDuringPositioning = true;\n if (!boundaryEl) {\n boundaryEl = this.findBoundaryElement();\n initialisedDuringPositioning = false;\n }\n if (boundaryEl) {\n const top = parseFloat(boundaryEl.style.top);\n const left = parseFloat(boundaryEl.style.left);\n if (initialisedDuringPositioning) {\n this.offsetElement(isNaN(left) ? 0 : left, isNaN(top) ? 0 : top);\n }\n else {\n this.setPosition(left, top);\n }\n }\n }\n this.positioned = !!this.offsetParent;\n }\n isPositioned() {\n return this.positioned;\n }\n getPosition() {\n return this.position;\n }\n setMovable(movable, moveElement) {\n if (!this.config.popup || movable === this.movable) {\n return;\n }\n this.movable = movable;\n const params = this.moveElementDragListener || {\n eElement: moveElement,\n onDragStart: this.onMoveStart.bind(this),\n onDragging: this.onMove.bind(this),\n onDragStop: this.onMoveEnd.bind(this)\n };\n if (movable) {\n this.dragService.addDragSource(params);\n this.moveElementDragListener = params;\n }\n else {\n this.dragService.removeDragSource(params);\n this.moveElementDragListener = undefined;\n }\n }\n setResizable(resizable) {\n this.clearResizeListeners();\n if (resizable) {\n this.addResizers();\n }\n else {\n this.removeResizers();\n }\n if (typeof resizable === 'boolean') {\n if (resizable === false) {\n return;\n }\n resizable = {\n topLeft: resizable,\n top: resizable,\n topRight: resizable,\n right: resizable,\n bottomRight: resizable,\n bottom: resizable,\n bottomLeft: resizable,\n left: resizable\n };\n }\n Object.keys(resizable).forEach((side) => {\n const resizableStructure = resizable;\n const isSideResizable = !!resizableStructure[side];\n const resizerEl = this.getResizerElement(side);\n const params = {\n dragStartPixels: 0,\n eElement: resizerEl,\n onDragStart: (e) => this.onResizeStart(e, side),\n onDragging: this.onResize.bind(this),\n onDragStop: (e) => this.onResizeEnd(e, side),\n };\n if (isSideResizable || (!this.isAlive() && !isSideResizable)) {\n if (isSideResizable) {\n this.dragService.addDragSource(params);\n this.resizeListeners.push(params);\n resizerEl.style.pointerEvents = 'all';\n }\n else {\n resizerEl.style.pointerEvents = 'none';\n }\n this.resizable[side] = isSideResizable;\n }\n });\n }\n removeSizeFromEl() {\n this.element.style.removeProperty('height');\n this.element.style.removeProperty('width');\n this.element.style.removeProperty('flex');\n }\n restoreLastSize() {\n this.element.style.flex = '0 0 auto';\n const { height, width } = this.lastSize;\n if (width !== -1) {\n this.element.style.width = `${width}px`;\n }\n if (height !== -1) {\n this.element.style.height = `${height}px`;\n }\n }\n getHeight() {\n return this.element.offsetHeight;\n }\n setHeight(height) {\n const { popup } = this.config;\n const eGui = this.element;\n let isPercent = false;\n if (typeof height === 'string' && height.indexOf('%') !== -1) {\n setFixedHeight(eGui, height);\n height = getAbsoluteHeight(eGui);\n isPercent = true;\n }\n else {\n height = Math.max(this.minHeight, height);\n if (this.positioned) {\n const availableHeight = this.getAvailableHeight();\n if (availableHeight && height > availableHeight) {\n height = availableHeight;\n }\n }\n }\n if (this.getHeight() === height) {\n return;\n }\n if (!isPercent) {\n if (popup) {\n setFixedHeight(eGui, height);\n }\n else {\n eGui.style.height = `${height}px`;\n eGui.style.flex = '0 0 auto';\n this.lastSize.height = typeof height === 'number' ? height : parseFloat(height);\n }\n }\n else {\n eGui.style.maxHeight = 'unset';\n eGui.style.minHeight = 'unset';\n }\n }\n getAvailableHeight() {\n const { popup, forcePopupParentAsOffsetParent } = this.config;\n if (!this.positioned) {\n this.initialisePosition();\n }\n const { clientHeight } = this.offsetParent;\n if (!clientHeight) {\n return null;\n }\n const elRect = this.element.getBoundingClientRect();\n const offsetParentRect = this.offsetParent.getBoundingClientRect();\n const yPosition = popup ? this.position.y : elRect.top;\n const parentTop = popup ? 0 : offsetParentRect.top;\n // When `forcePopupParentAsOffsetParent`, there may be elements that appear after the resizable element, but aren't included in the height.\n // Take these into account here\n let additionalHeight = 0;\n if (forcePopupParentAsOffsetParent) {\n const parentEl = this.element.parentElement;\n if (parentEl) {\n const { bottom } = parentEl.getBoundingClientRect();\n additionalHeight = bottom - elRect.bottom;\n }\n }\n const availableHeight = clientHeight + parentTop - yPosition - additionalHeight;\n return availableHeight;\n }\n getWidth() {\n return this.element.offsetWidth;\n }\n setWidth(width) {\n const eGui = this.element;\n const { popup } = this.config;\n let isPercent = false;\n if (typeof width === 'string' && width.indexOf('%') !== -1) {\n setFixedWidth(eGui, width);\n width = getAbsoluteWidth(eGui);\n isPercent = true;\n }\n else if (this.positioned) {\n width = Math.max(this.minWidth, width);\n const { clientWidth } = this.offsetParent;\n const xPosition = popup ? this.position.x : this.element.getBoundingClientRect().left;\n if (clientWidth && (width + xPosition > clientWidth)) {\n width = clientWidth - xPosition;\n }\n }\n if (this.getWidth() === width) {\n return;\n }\n if (!isPercent) {\n if (this.config.popup) {\n setFixedWidth(eGui, width);\n }\n else {\n eGui.style.width = `${width}px`;\n eGui.style.flex = ' unset';\n this.lastSize.width = typeof width === 'number' ? width : parseFloat(width);\n }\n }\n else {\n eGui.style.maxWidth = 'unset';\n eGui.style.minWidth = 'unset';\n }\n }\n offsetElement(x = 0, y = 0) {\n const { forcePopupParentAsOffsetParent } = this.config;\n const ePopup = forcePopupParentAsOffsetParent ? this.boundaryEl : this.element;\n if (!ePopup) {\n return;\n }\n this.popupService.positionPopup({\n ePopup,\n keepWithinBounds: true,\n skipObserver: this.movable || this.isResizable(),\n updatePosition: () => ({ x, y })\n });\n this.setPosition(parseFloat(ePopup.style.left), parseFloat(ePopup.style.top));\n }\n constrainSizeToAvailableHeight(constrain) {\n if (!this.config.forcePopupParentAsOffsetParent) {\n return;\n }\n const applyMaxHeightToElement = () => {\n const availableHeight = this.getAvailableHeight();\n this.element.style.setProperty('max-height', `${availableHeight}px`);\n };\n if (constrain) {\n this.resizeObserverSubscriber = this.resizeObserverService.observeResize(this.popupService.getPopupParent(), applyMaxHeightToElement);\n }\n else {\n this.element.style.removeProperty('max-height');\n if (this.resizeObserverSubscriber) {\n this.resizeObserverSubscriber();\n this.resizeObserverSubscriber = undefined;\n }\n }\n }\n setPosition(x, y) {\n this.position.x = x;\n this.position.y = y;\n }\n updateDragStartPosition(x, y) {\n this.dragStartPosition = { x, y };\n }\n calculateMouseMovement(params) {\n const { e, isLeft, isTop, anywhereWithin, topBuffer } = params;\n const xDiff = e.clientX - this.dragStartPosition.x;\n const yDiff = e.clientY - this.dragStartPosition.y;\n const movementX = this.shouldSkipX(e, !!isLeft, !!anywhereWithin, xDiff) ? 0 : xDiff;\n const movementY = this.shouldSkipY(e, !!isTop, topBuffer, yDiff) ? 0 : yDiff;\n return { movementX, movementY };\n }\n shouldSkipX(e, isLeft, anywhereWithin, diff) {\n const elRect = this.element.getBoundingClientRect();\n const parentRect = this.offsetParent.getBoundingClientRect();\n const boundaryElRect = this.boundaryEl.getBoundingClientRect();\n const xPosition = this.config.popup ? this.position.x : elRect.left;\n // skip if cursor is outside of popupParent horizontally\n let skipX = ((xPosition <= 0 && parentRect.left >= e.clientX) ||\n (parentRect.right <= e.clientX && parentRect.right <= boundaryElRect.right));\n if (skipX) {\n return true;\n }\n if (isLeft) {\n skipX = (\n // skip if we are moving to the left and the cursor\n // is positioned to the right of the left side anchor\n (diff < 0 && e.clientX > xPosition + parentRect.left) ||\n // skip if we are moving to the right and the cursor\n // is positioned to the left of the dialog\n (diff > 0 && e.clientX < xPosition + parentRect.left));\n }\n else {\n if (anywhereWithin) {\n // if anywhereWithin is true, we allow to move\n // as long as the cursor is within the dialog\n skipX = ((diff < 0 && e.clientX > boundaryElRect.right) ||\n (diff > 0 && e.clientX < xPosition + parentRect.left));\n }\n else {\n skipX = (\n // if the movement is bound to the right side of the dialog\n // we skip if we are moving to the left and the cursor\n // is to the right of the dialog\n (diff < 0 && e.clientX > boundaryElRect.right) ||\n // or skip if we are moving to the right and the cursor\n // is to the left of the right side anchor\n (diff > 0 && e.clientX < boundaryElRect.right));\n }\n }\n return skipX;\n }\n shouldSkipY(e, isTop, topBuffer = 0, diff) {\n const elRect = this.element.getBoundingClientRect();\n const parentRect = this.offsetParent.getBoundingClientRect();\n const boundaryElRect = this.boundaryEl.getBoundingClientRect();\n const yPosition = this.config.popup ? this.position.y : elRect.top;\n // skip if cursor is outside of popupParent vertically\n let skipY = ((yPosition <= 0 && parentRect.top >= e.clientY) ||\n (parentRect.bottom <= e.clientY && parentRect.bottom <= boundaryElRect.bottom));\n if (skipY) {\n return true;\n }\n if (isTop) {\n skipY = (\n // skip if we are moving to towards top and the cursor is\n // below the top anchor + topBuffer\n // note: topBuffer is used when moving the dialog using the title bar\n (diff < 0 && e.clientY > yPosition + parentRect.top + topBuffer) ||\n // skip if we are moving to the bottom and the cursor is\n // above the top anchor\n (diff > 0 && e.clientY < yPosition + parentRect.top));\n }\n else {\n skipY = (\n // skip if we are moving towards the top and the cursor\n // is below the bottom anchor\n (diff < 0 && e.clientY > boundaryElRect.bottom) ||\n // skip if we are moving towards the bottom and the cursor\n // is above the bottom anchor\n (diff > 0 && e.clientY < boundaryElRect.bottom));\n }\n return skipY;\n }\n createResizeMap() {\n const eGui = this.element;\n this.resizerMap = {\n topLeft: { element: eGui.querySelector('[ref=eTopLeftResizer]') },\n top: { element: eGui.querySelector('[ref=eTopResizer]') },\n topRight: { element: eGui.querySelector('[ref=eTopRightResizer]') },\n right: { element: eGui.querySelector('[ref=eRightResizer]') },\n bottomRight: { element: eGui.querySelector('[ref=eBottomRightResizer]') },\n bottom: { element: eGui.querySelector('[ref=eBottomResizer]') },\n bottomLeft: { element: eGui.querySelector('[ref=eBottomLeftResizer]') },\n left: { element: eGui.querySelector('[ref=eLeftResizer]') }\n };\n }\n addResizers() {\n if (this.resizersAdded) {\n return;\n }\n const eGui = this.element;\n if (!eGui) {\n return;\n }\n const parser = new DOMParser();\n const resizers = parser.parseFromString(RESIZE_TEMPLATE, 'text/html').body;\n eGui.appendChild(resizers.firstChild);\n this.createResizeMap();\n this.resizersAdded = true;\n }\n removeResizers() {\n this.resizerMap = undefined;\n const resizerEl = this.element.querySelector(`.${RESIZE_CONTAINER_STYLE}`);\n if (resizerEl) {\n this.element.removeChild(resizerEl);\n }\n this.resizersAdded = false;\n }\n getResizerElement(side) {\n return this.resizerMap[side].element;\n }\n onResizeStart(e, side) {\n this.boundaryEl = this.findBoundaryElement();\n if (!this.positioned) {\n this.initialisePosition();\n }\n this.currentResizer = {\n isTop: !!side.match(/top/i),\n isRight: !!side.match(/right/i),\n isBottom: !!side.match(/bottom/i),\n isLeft: !!side.match(/left/i),\n };\n this.element.classList.add('ag-resizing');\n this.resizerMap[side].element.classList.add('ag-active');\n const { popup, forcePopupParentAsOffsetParent } = this.config;\n if (!popup && !forcePopupParentAsOffsetParent) {\n this.applySizeToSiblings(this.currentResizer.isBottom || this.currentResizer.isTop);\n }\n this.isResizing = true;\n this.updateDragStartPosition(e.clientX, e.clientY);\n }\n getSiblings() {\n const element = this.element;\n const parent = element.parentElement;\n if (!parent) {\n return null;\n }\n return Array.prototype.slice.call(parent.children).filter((el) => !el.classList.contains('ag-hidden'));\n }\n getMinSizeOfSiblings() {\n const siblings = this.getSiblings() || [];\n let height = 0;\n let width = 0;\n for (let i = 0; i < siblings.length; i++) {\n const currentEl = siblings[i];\n const isFlex = !!currentEl.style.flex && currentEl.style.flex !== '0 0 auto';\n if (currentEl === this.element) {\n continue;\n }\n let nextHeight = this.minHeight || 0;\n let nextWidth = this.minWidth || 0;\n if (isFlex) {\n const computedStyle = window.getComputedStyle(currentEl);\n if (computedStyle.minHeight) {\n nextHeight = parseInt(computedStyle.minHeight, 10);\n }\n if (computedStyle.minWidth) {\n nextWidth = parseInt(computedStyle.minWidth, 10);\n }\n }\n else {\n nextHeight = currentEl.offsetHeight;\n nextWidth = currentEl.offsetWidth;\n }\n height += nextHeight;\n width += nextWidth;\n }\n return { height, width };\n }\n applySizeToSiblings(vertical) {\n let containerToFlex = null;\n const siblings = this.getSiblings();\n if (!siblings) {\n return;\n }\n for (let i = 0; i < siblings.length; i++) {\n const el = siblings[i];\n if (el === containerToFlex) {\n continue;\n }\n if (vertical) {\n el.style.height = `${el.offsetHeight}px`;\n }\n else {\n el.style.width = `${el.offsetWidth}px`;\n }\n el.style.flex = '0 0 auto';\n if (el === this.element) {\n containerToFlex = siblings[i + 1];\n }\n }\n if (containerToFlex) {\n containerToFlex.style.removeProperty('height');\n containerToFlex.style.removeProperty('min-height');\n containerToFlex.style.removeProperty('max-height');\n containerToFlex.style.flex = '1 1 auto';\n }\n }\n isResizable() {\n return Object.values(this.resizable).some(value => value);\n }\n onResize(e) {\n if (!this.isResizing || !this.currentResizer) {\n return;\n }\n const { popup, forcePopupParentAsOffsetParent } = this.config;\n const { isTop, isRight, isBottom, isLeft } = this.currentResizer;\n const isHorizontal = isRight || isLeft;\n const isVertical = isBottom || isTop;\n const { movementX, movementY } = this.calculateMouseMovement({ e, isLeft, isTop });\n const xPosition = this.position.x;\n const yPosition = this.position.y;\n let offsetLeft = 0;\n let offsetTop = 0;\n if (isHorizontal && movementX) {\n const direction = isLeft ? -1 : 1;\n const oldWidth = this.getWidth();\n const newWidth = oldWidth + (movementX * direction);\n let skipWidth = false;\n if (isLeft) {\n offsetLeft = oldWidth - newWidth;\n if (xPosition + offsetLeft <= 0 || newWidth <= this.minWidth) {\n skipWidth = true;\n offsetLeft = 0;\n }\n }\n if (!skipWidth) {\n this.setWidth(newWidth);\n }\n }\n if (isVertical && movementY) {\n const direction = isTop ? -1 : 1;\n const oldHeight = this.getHeight();\n const newHeight = oldHeight + (movementY * direction);\n let skipHeight = false;\n if (isTop) {\n offsetTop = oldHeight - newHeight;\n if (yPosition + offsetTop <= 0 || newHeight <= this.minHeight) {\n skipHeight = true;\n offsetTop = 0;\n }\n }\n else {\n // do not let the size of all siblings be higher than the parent container\n if (!this.config.popup &&\n !this.config.forcePopupParentAsOffsetParent &&\n oldHeight < newHeight &&\n (this.getMinSizeOfSiblings().height + newHeight) > this.element.parentElement.offsetHeight) {\n skipHeight = true;\n }\n }\n if (!skipHeight) {\n this.setHeight(newHeight);\n }\n }\n this.updateDragStartPosition(e.clientX, e.clientY);\n if ((popup || forcePopupParentAsOffsetParent) && offsetLeft || offsetTop) {\n this.offsetElement(xPosition + offsetLeft, yPosition + offsetTop);\n }\n }\n onResizeEnd(e, side) {\n this.isResizing = false;\n this.currentResizer = null;\n this.boundaryEl = null;\n const params = {\n type: 'resize'\n };\n this.element.classList.remove('ag-resizing');\n this.resizerMap[side].element.classList.remove('ag-active');\n this.dispatchEvent(params);\n }\n refreshSize() {\n const eGui = this.element;\n if (this.config.popup) {\n if (!this.config.width) {\n this.setWidth(eGui.offsetWidth);\n }\n if (!this.config.height) {\n this.setHeight(eGui.offsetHeight);\n }\n }\n }\n onMoveStart(e) {\n this.boundaryEl = this.findBoundaryElement();\n if (!this.positioned) {\n this.initialisePosition();\n }\n this.isMoving = true;\n this.element.classList.add('ag-moving');\n this.updateDragStartPosition(e.clientX, e.clientY);\n }\n onMove(e) {\n if (!this.isMoving) {\n return;\n }\n const { x, y } = this.position;\n let topBuffer;\n if (this.config.calculateTopBuffer) {\n topBuffer = this.config.calculateTopBuffer();\n }\n const { movementX, movementY } = this.calculateMouseMovement({\n e,\n isTop: true,\n anywhereWithin: true,\n topBuffer\n });\n this.offsetElement(x + movementX, y + movementY);\n this.updateDragStartPosition(e.clientX, e.clientY);\n }\n onMoveEnd() {\n this.isMoving = false;\n this.boundaryEl = null;\n this.element.classList.remove('ag-moving');\n }\n setOffsetParent() {\n if (this.config.forcePopupParentAsOffsetParent) {\n this.offsetParent = this.popupService.getPopupParent();\n }\n else {\n this.offsetParent = this.element.offsetParent;\n }\n }\n findBoundaryElement() {\n let el = this.element;\n while (el) {\n if (window.getComputedStyle(el).position !== 'static') {\n return el;\n }\n el = el.parentElement;\n }\n return this.element;\n }\n clearResizeListeners() {\n while (this.resizeListeners.length) {\n const params = this.resizeListeners.pop();\n this.dragService.removeDragSource(params);\n }\n }\n destroy() {\n super.destroy();\n if (this.moveElementDragListener) {\n this.dragService.removeDragSource(this.moveElementDragListener);\n }\n this.constrainSizeToAvailableHeight(false);\n this.clearResizeListeners();\n this.removeResizers();\n }\n}\n__decorate([\n Autowired('popupService')\n], PositionableFeature.prototype, \"popupService\", void 0);\n__decorate([\n Autowired('resizeObserverService')\n], PositionableFeature.prototype, \"resizeObserverService\", void 0);\n__decorate([\n Autowired('dragService')\n], PositionableFeature.prototype, \"dragService\", void 0);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Autowired, PostConstruct } from '../../context/context.mjs';\nimport { clearElement, loadTemplate, removeFromParent, setDisabled } from '../../utils/dom.mjs';\nimport { debounce } from '../../utils/function.mjs';\nimport { FILTER_LOCALE_TEXT } from '../filterLocaleText.mjs';\nimport { ManagedFocusFeature } from '../../widgets/managedFocusFeature.mjs';\nimport { convertToSet } from '../../utils/set.mjs';\nimport { Component } from '../../widgets/component.mjs';\nimport { RefSelector } from '../../widgets/componentAnnotations.mjs';\nimport { PositionableFeature } from '../../rendering/features/positionableFeature.mjs';\n/**\n * Contains common logic to all provided filters (apply button, clear button, etc).\n * All the filters that come with AG Grid extend this class. User filters do not\n * extend this class.\n *\n * @param M type of filter-model managed by the concrete sub-class that extends this type\n * @param V type of value managed by the concrete sub-class that extends this type\n */\nexport class ProvidedFilter extends Component {\n constructor(filterNameKey) {\n super();\n this.filterNameKey = filterNameKey;\n this.applyActive = false;\n this.hidePopup = null;\n this.debouncePending = false;\n // after the user hits 'apply' the model gets copied to here. this is then the model that we use for\n // all filtering. so if user changes UI but doesn't hit apply, then the UI will be out of sync with this model.\n // this is what we want, as the UI should only become the 'active' filter once it's applied. when apply is\n // inactive, this model will be in sync (following the debounce ms). if the UI is not a valid filter\n // (eg the value is missing so nothing to filter on, or for set filter all checkboxes are checked so filter\n // not active) then this appliedModel will be null/undefined.\n this.appliedModel = null;\n this.buttonListeners = [];\n }\n postConstruct() {\n this.resetTemplate(); // do this first to create the DOM\n this.createManagedBean(new ManagedFocusFeature(this.getFocusableElement(), {\n handleKeyDown: this.handleKeyDown.bind(this)\n }));\n this.positionableFeature = new PositionableFeature(this.getPositionableElement(), {\n forcePopupParentAsOffsetParent: true\n });\n this.createBean(this.positionableFeature);\n }\n // override\n handleKeyDown(e) { }\n getFilterTitle() {\n return this.translate(this.filterNameKey);\n }\n isFilterActive() {\n // filter is active if we have a valid applied model\n return !!this.appliedModel;\n }\n resetTemplate(paramsMap) {\n let eGui = this.getGui();\n if (eGui) {\n eGui.removeEventListener('submit', this.onFormSubmit);\n }\n const templateString = /* html */ `\n \n
\n ${this.createBodyTemplate()}\n
\n `;\n this.setTemplate(templateString, paramsMap);\n eGui = this.getGui();\n if (eGui) {\n eGui.addEventListener('submit', this.onFormSubmit);\n }\n }\n isReadOnly() {\n return !!this.providedFilterParams.readOnly;\n }\n init(params) {\n this.setParams(params);\n this.resetUiToDefaults(true).then(() => {\n this.updateUiVisibility();\n this.setupOnBtApplyDebounce();\n });\n }\n setParams(params) {\n this.providedFilterParams = params;\n this.applyActive = ProvidedFilter.isUseApplyButton(params);\n this.resetButtonsPanel();\n }\n updateParams(params) {\n this.providedFilterParams = params;\n this.applyActive = ProvidedFilter.isUseApplyButton(params);\n this.resetUiToActiveModel(this.getModel(), () => {\n this.updateUiVisibility();\n this.setupOnBtApplyDebounce();\n });\n }\n resetButtonsPanel() {\n const { buttons } = this.providedFilterParams;\n const hasButtons = buttons && buttons.length > 0 && !this.isReadOnly();\n if (!this.eButtonsPanel) {\n // Only create the buttons panel if we need to\n if (hasButtons) {\n this.eButtonsPanel = document.createElement('div');\n this.eButtonsPanel.classList.add('ag-filter-apply-panel');\n }\n }\n else {\n // Always empty the buttons panel before adding new buttons\n clearElement(this.eButtonsPanel);\n this.buttonListeners.forEach(destroyFunc => destroyFunc === null || destroyFunc === void 0 ? void 0 : destroyFunc());\n this.buttonListeners = [];\n }\n if (!hasButtons) {\n // The case when we need to hide the buttons panel because there are no buttons\n if (this.eButtonsPanel) {\n removeFromParent(this.eButtonsPanel);\n }\n return;\n }\n // At this point we know we have a buttons and a buttons panel has been created.\n // Instead of appending each button to the DOM individually, we create a fragment and append that\n // to the DOM once. This is much faster than appending each button individually.\n const fragment = document.createDocumentFragment();\n const addButton = (type) => {\n let text;\n let clickListener;\n switch (type) {\n case 'apply':\n text = this.translate('applyFilter');\n clickListener = (e) => this.onBtApply(false, false, e);\n break;\n case 'clear':\n text = this.translate('clearFilter');\n clickListener = () => this.onBtClear();\n break;\n case 'reset':\n text = this.translate('resetFilter');\n clickListener = () => this.onBtReset();\n break;\n case 'cancel':\n text = this.translate('cancelFilter');\n clickListener = (e) => { this.onBtCancel(e); };\n break;\n default:\n console.warn('AG Grid: Unknown button type specified');\n return;\n }\n const buttonType = type === 'apply' ? 'submit' : 'button';\n const button = loadTemplate(\n /* html */\n `${text}\n `);\n this.buttonListeners.push(this.addManagedListener(button, 'click', clickListener));\n fragment.append(button);\n };\n convertToSet(buttons).forEach(type => addButton(type));\n this.eButtonsPanel.append(fragment);\n this.getGui().appendChild(this.eButtonsPanel);\n }\n // subclasses can override this to provide alternative debounce defaults\n getDefaultDebounceMs() {\n return 0;\n }\n setupOnBtApplyDebounce() {\n const debounceMs = ProvidedFilter.getDebounceMs(this.providedFilterParams, this.getDefaultDebounceMs());\n const debounceFunc = debounce(this.checkApplyDebounce.bind(this), debounceMs);\n this.onBtApplyDebounce = () => {\n this.debouncePending = true;\n debounceFunc();\n };\n }\n checkApplyDebounce() {\n if (this.debouncePending) {\n // May already have been applied, so don't apply again (e.g. closing filter before debounce timeout)\n this.debouncePending = false;\n this.onBtApply();\n }\n }\n getModel() {\n return this.appliedModel ? this.appliedModel : null;\n }\n setModel(model) {\n const promise = model != null ? this.setModelIntoUi(model) : this.resetUiToDefaults();\n return promise.then(() => {\n this.updateUiVisibility();\n // we set the model from the GUI, rather than the provided model,\n // so the model is consistent, e.g. handling of null/undefined will be the same,\n // or if model is case-insensitive, then casing is removed.\n this.applyModel('api');\n });\n }\n onBtCancel(e) {\n this.resetUiToActiveModel(this.getModel(), () => {\n this.handleCancelEnd(e);\n });\n }\n handleCancelEnd(e) {\n if (this.providedFilterParams.closeOnApply) {\n this.close(e);\n }\n }\n resetUiToActiveModel(currentModel, afterUiUpdatedFunc) {\n const afterAppliedFunc = () => {\n this.onUiChanged(false, 'prevent');\n afterUiUpdatedFunc === null || afterUiUpdatedFunc === void 0 ? void 0 : afterUiUpdatedFunc();\n };\n if (currentModel != null) {\n this.setModelIntoUi(currentModel).then(afterAppliedFunc);\n }\n else {\n this.resetUiToDefaults().then(afterAppliedFunc);\n }\n }\n onBtClear() {\n this.resetUiToDefaults().then(() => this.onUiChanged());\n }\n onBtReset() {\n this.onBtClear();\n this.onBtApply();\n }\n /**\n * Applies changes made in the UI to the filter, and returns true if the model has changed.\n */\n applyModel(source = 'api') {\n const newModel = this.getModelFromUi();\n if (!this.isModelValid(newModel)) {\n return false;\n }\n const previousModel = this.appliedModel;\n this.appliedModel = newModel;\n // models can be same if user pasted same content into text field, or maybe just changed the case\n // and it's a case insensitive filter\n return !this.areModelsEqual(previousModel, newModel);\n }\n isModelValid(model) {\n return true;\n }\n onFormSubmit(e) {\n e.preventDefault();\n }\n onBtApply(afterFloatingFilter = false, afterDataChange = false, e) {\n // Prevent form submission\n if (e) {\n e.preventDefault();\n }\n if (this.applyModel(afterDataChange ? 'rowDataUpdated' : 'ui')) {\n // the floating filter uses 'afterFloatingFilter' info, so it doesn't refresh after filter changed if change\n // came from floating filter\n const source = 'columnFilter';\n this.providedFilterParams.filterChangedCallback({ afterFloatingFilter, afterDataChange, source });\n }\n const { closeOnApply } = this.providedFilterParams;\n // only close if an apply button is visible, otherwise we'd be closing every time a change was made!\n if (closeOnApply && this.applyActive && !afterFloatingFilter && !afterDataChange) {\n this.close(e);\n }\n }\n onNewRowsLoaded() {\n }\n close(e) {\n if (!this.hidePopup) {\n return;\n }\n const keyboardEvent = e;\n const key = keyboardEvent && keyboardEvent.key;\n let params;\n if (key === 'Enter' || key === 'Space') {\n params = { keyboardEvent };\n }\n this.hidePopup(params);\n this.hidePopup = null;\n }\n /**\n * By default, if the change came from a floating filter it will be applied immediately, otherwise if there is no\n * apply button it will be applied after a debounce, otherwise it will not be applied at all. This behaviour can\n * be adjusted by using the apply parameter.\n */\n onUiChanged(fromFloatingFilter = false, apply) {\n this.updateUiVisibility();\n this.providedFilterParams.filterModifiedCallback();\n if (this.applyActive && !this.isReadOnly()) {\n const isValid = this.isModelValid(this.getModelFromUi());\n const applyFilterButton = this.getRefElement('applyFilterButton');\n if (applyFilterButton) {\n setDisabled(applyFilterButton, !isValid);\n }\n }\n if ((fromFloatingFilter && !apply) || apply === 'immediately') {\n this.onBtApply(fromFloatingFilter);\n }\n else if ((!this.applyActive && !apply) || apply === 'debounce') {\n this.onBtApplyDebounce();\n }\n }\n afterGuiAttached(params) {\n if (params) {\n this.hidePopup = params.hidePopup;\n }\n this.refreshFilterResizer(params === null || params === void 0 ? void 0 : params.container);\n }\n refreshFilterResizer(containerType) {\n // tool panel is scrollable, so don't need to size\n if (!this.positionableFeature || containerType === 'toolPanel') {\n return;\n }\n const isResizable = containerType === 'floatingFilter' || containerType === 'columnFilter';\n const { positionableFeature, gridOptionsService } = this;\n if (isResizable) {\n positionableFeature.restoreLastSize();\n positionableFeature.setResizable(gridOptionsService.get('enableRtl')\n ? { bottom: true, bottomLeft: true, left: true }\n : { bottom: true, bottomRight: true, right: true });\n }\n else {\n this.positionableFeature.removeSizeFromEl();\n this.positionableFeature.setResizable(false);\n }\n this.positionableFeature.constrainSizeToAvailableHeight(true);\n }\n afterGuiDetached() {\n this.checkApplyDebounce();\n if (this.positionableFeature) {\n this.positionableFeature.constrainSizeToAvailableHeight(false);\n }\n }\n // static, as used by floating filter also\n static getDebounceMs(params, debounceDefault) {\n if (ProvidedFilter.isUseApplyButton(params)) {\n if (params.debounceMs != null) {\n console.warn('AG Grid: debounceMs is ignored when apply button is present');\n }\n return 0;\n }\n return params.debounceMs != null ? params.debounceMs : debounceDefault;\n }\n // static, as used by floating filter also\n static isUseApplyButton(params) {\n return !!params.buttons && params.buttons.indexOf('apply') >= 0;\n }\n refresh(newParams) {\n this.providedFilterParams = newParams;\n return true;\n }\n destroy() {\n const eGui = this.getGui();\n if (eGui) {\n eGui.removeEventListener('submit', this.onFormSubmit);\n }\n this.hidePopup = null;\n if (this.positionableFeature) {\n this.positionableFeature = this.destroyBean(this.positionableFeature);\n }\n this.appliedModel = null;\n super.destroy();\n }\n translate(key) {\n const translate = this.localeService.getLocaleTextFunc();\n return translate(key, FILTER_LOCALE_TEXT[key]);\n }\n getCellValue(rowNode) {\n return this.providedFilterParams.getValue(rowNode);\n }\n // override to control positionable feature\n getPositionableElement() {\n return this.eFilterBody;\n }\n}\n__decorate([\n Autowired('rowModel')\n], ProvidedFilter.prototype, \"rowModel\", void 0);\n__decorate([\n RefSelector('eFilterBody')\n], ProvidedFilter.prototype, \"eFilterBody\", void 0);\n__decorate([\n PostConstruct\n], ProvidedFilter.prototype, \"postConstruct\", null);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component } from \"./component.mjs\";\nimport { PostConstruct } from \"../context/context.mjs\";\nimport { clearElement, setDisabled, setDisplayed, setElementWidth } from \"../utils/dom.mjs\";\nimport { setAriaRole } from \"../utils/aria.mjs\";\nexport class AgAbstractLabel extends Component {\n constructor(config, template) {\n super(template);\n this.labelSeparator = '';\n this.labelAlignment = 'left';\n this.disabled = false;\n this.label = '';\n this.config = config || {};\n }\n postConstruct() {\n this.addCssClass('ag-labeled');\n this.eLabel.classList.add('ag-label');\n const { labelSeparator, label, labelWidth, labelAlignment } = this.config;\n if (labelSeparator != null) {\n this.setLabelSeparator(labelSeparator);\n }\n if (label != null) {\n this.setLabel(label);\n }\n if (labelWidth != null) {\n this.setLabelWidth(labelWidth);\n }\n this.setLabelAlignment(labelAlignment || this.labelAlignment);\n this.refreshLabel();\n }\n refreshLabel() {\n clearElement(this.eLabel);\n if (typeof this.label === 'string') {\n this.eLabel.innerText = this.label + this.labelSeparator;\n }\n else if (this.label) {\n this.eLabel.appendChild(this.label);\n }\n if (this.label === '') {\n setDisplayed(this.eLabel, false);\n setAriaRole(this.eLabel, 'presentation');\n }\n else {\n setDisplayed(this.eLabel, true);\n setAriaRole(this.eLabel, null);\n }\n }\n setLabelSeparator(labelSeparator) {\n if (this.labelSeparator === labelSeparator) {\n return this;\n }\n this.labelSeparator = labelSeparator;\n if (this.label != null) {\n this.refreshLabel();\n }\n return this;\n }\n getLabelId() {\n this.eLabel.id = this.eLabel.id || `ag-${this.getCompId()}-label`;\n return this.eLabel.id;\n }\n getLabel() {\n return this.label;\n }\n setLabel(label) {\n if (this.label === label) {\n return this;\n }\n this.label = label;\n this.refreshLabel();\n return this;\n }\n setLabelAlignment(alignment) {\n const eGui = this.getGui();\n const eGuiClassList = eGui.classList;\n eGuiClassList.toggle('ag-label-align-left', alignment === 'left');\n eGuiClassList.toggle('ag-label-align-right', alignment === 'right');\n eGuiClassList.toggle('ag-label-align-top', alignment === 'top');\n return this;\n }\n setLabelEllipsis(hasEllipsis) {\n this.eLabel.classList.toggle('ag-label-ellipsis', hasEllipsis);\n return this;\n }\n setLabelWidth(width) {\n if (this.label == null) {\n return this;\n }\n setElementWidth(this.eLabel, width);\n return this;\n }\n setDisabled(disabled) {\n disabled = !!disabled;\n const element = this.getGui();\n setDisabled(element, disabled);\n element.classList.toggle('ag-disabled', disabled);\n this.disabled = disabled;\n return this;\n }\n isDisabled() {\n return !!this.disabled;\n }\n}\n__decorate([\n PostConstruct\n], AgAbstractLabel.prototype, \"postConstruct\", null);\n","import { AgAbstractLabel } from './agAbstractLabel.mjs';\nimport { setFixedWidth } from '../utils/dom.mjs';\nimport { Events } from '../eventKeys.mjs';\nimport { getAriaLabel, setAriaLabel, setAriaLabelledBy } from '../utils/aria.mjs';\nexport class AgAbstractField extends AgAbstractLabel {\n constructor(config, template, className) {\n super(config, template);\n this.className = className;\n }\n postConstruct() {\n super.postConstruct();\n if (this.className) {\n this.addCssClass(this.className);\n }\n this.refreshAriaLabelledBy();\n }\n refreshAriaLabelledBy() {\n const ariaEl = this.getAriaElement();\n const labelId = this.getLabelId();\n if (getAriaLabel(ariaEl) !== null) {\n setAriaLabelledBy(ariaEl, '');\n }\n else {\n setAriaLabelledBy(ariaEl, labelId !== null && labelId !== void 0 ? labelId : '');\n }\n }\n setAriaLabel(label) {\n setAriaLabel(this.getAriaElement(), label);\n this.refreshAriaLabelledBy();\n return this;\n }\n onValueChange(callbackFn) {\n this.addManagedListener(this, Events.EVENT_FIELD_VALUE_CHANGED, () => callbackFn(this.getValue()));\n return this;\n }\n getWidth() {\n return this.getGui().clientWidth;\n }\n setWidth(width) {\n setFixedWidth(this.getGui(), width);\n return this;\n }\n getPreviousValue() {\n return this.previousValue;\n }\n getValue() {\n return this.value;\n }\n setValue(value, silent) {\n if (this.value === value) {\n return this;\n }\n this.previousValue = this.value;\n this.value = value;\n if (!silent) {\n this.dispatchEvent({ type: Events.EVENT_FIELD_VALUE_CHANGED });\n }\n return this;\n }\n}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { AgAbstractField } from \"./agAbstractField.mjs\";\nimport { RefSelector } from \"./componentAnnotations.mjs\";\nimport { setAriaExpanded, setAriaRole } from \"../utils/aria.mjs\";\nimport { createIconNoSpan } from \"../utils/icon.mjs\";\nimport { setElementWidth, getAbsoluteWidth, getInnerHeight, formatSize } from \"../utils/dom.mjs\";\nimport { KeyCode } from '../constants/keyCode.mjs';\nimport { Autowired } from \"../context/context.mjs\";\nimport { Events } from \"../eventKeys.mjs\";\nconst TEMPLATE = /* html */ `\n
\n
\n
\n
\n
\n
\n
`;\nexport class AgPickerField extends AgAbstractField {\n constructor(config) {\n super(config, (config === null || config === void 0 ? void 0 : config.template) || TEMPLATE, config === null || config === void 0 ? void 0 : config.className);\n this.isPickerDisplayed = false;\n this.skipClick = false;\n this.pickerGap = 4;\n this.hideCurrentPicker = null;\n this.ariaRole = config === null || config === void 0 ? void 0 : config.ariaRole;\n this.onPickerFocusIn = this.onPickerFocusIn.bind(this);\n this.onPickerFocusOut = this.onPickerFocusOut.bind(this);\n if (!config) {\n return;\n }\n const { pickerGap, maxPickerHeight, variableWidth, minPickerWidth, maxPickerWidth } = config;\n if (pickerGap != null) {\n this.pickerGap = pickerGap;\n }\n this.variableWidth = !!variableWidth;\n if (maxPickerHeight != null) {\n this.setPickerMaxHeight(maxPickerHeight);\n }\n if (minPickerWidth != null) {\n this.setPickerMinWidth(minPickerWidth);\n }\n if (maxPickerWidth != null) {\n this.setPickerMaxWidth(maxPickerWidth);\n }\n }\n postConstruct() {\n super.postConstruct();\n this.setupAria();\n const displayId = `ag-${this.getCompId()}-display`;\n this.eDisplayField.setAttribute('id', displayId);\n const ariaEl = this.getAriaElement();\n this.addManagedListener(ariaEl, 'keydown', this.onKeyDown.bind(this));\n this.addManagedListener(this.eLabel, 'mousedown', this.onLabelOrWrapperMouseDown.bind(this));\n this.addManagedListener(this.eWrapper, 'mousedown', this.onLabelOrWrapperMouseDown.bind(this));\n const { pickerIcon } = this.config;\n if (pickerIcon) {\n const icon = createIconNoSpan(pickerIcon, this.gridOptionsService);\n if (icon) {\n this.eIcon.appendChild(icon);\n }\n }\n }\n setupAria() {\n const ariaEl = this.getAriaElement();\n ariaEl.setAttribute('tabindex', (this.gridOptionsService.get('tabIndex')).toString());\n setAriaExpanded(ariaEl, false);\n if (this.ariaRole) {\n setAriaRole(ariaEl, this.ariaRole);\n }\n }\n onLabelOrWrapperMouseDown(e) {\n if (e) {\n const focusableEl = this.getFocusableElement();\n // if the focusableEl is not the wrapper and the mousedown\n // targets the focusableEl, we should not expand/collapse the picker.\n // Note: this will happen when AgRichSelect is set with `allowTyping=true`\n if (focusableEl !== this.eWrapper && (e === null || e === void 0 ? void 0 : e.target) === focusableEl) {\n return;\n }\n // this prevents a BUG where MouseDown causes the element to be focused\n // after the picker is shown and focus ends up being lost.\n e.preventDefault();\n this.getFocusableElement().focus();\n }\n if (this.skipClick) {\n this.skipClick = false;\n return;\n }\n if (this.isDisabled()) {\n return;\n }\n if (this.isPickerDisplayed) {\n this.hidePicker();\n }\n else {\n this.showPicker();\n }\n }\n onKeyDown(e) {\n switch (e.key) {\n case KeyCode.UP:\n case KeyCode.DOWN:\n case KeyCode.ENTER:\n case KeyCode.SPACE:\n e.preventDefault();\n this.onLabelOrWrapperMouseDown();\n break;\n case KeyCode.ESCAPE:\n if (this.isPickerDisplayed) {\n e.preventDefault();\n e.stopPropagation();\n if (this.hideCurrentPicker) {\n this.hideCurrentPicker();\n }\n }\n break;\n }\n }\n showPicker() {\n this.isPickerDisplayed = true;\n if (!this.pickerComponent) {\n this.pickerComponent = this.createPickerComponent();\n }\n const pickerGui = this.pickerComponent.getGui();\n pickerGui.addEventListener('focusin', this.onPickerFocusIn);\n pickerGui.addEventListener('focusout', this.onPickerFocusOut);\n this.hideCurrentPicker = this.renderAndPositionPicker();\n this.toggleExpandedStyles(true);\n }\n renderAndPositionPicker() {\n const eDocument = this.gridOptionsService.getDocument();\n const ePicker = this.pickerComponent.getGui();\n if (!this.gridOptionsService.get('suppressScrollWhenPopupsAreOpen')) {\n this.destroyMouseWheelFunc = this.addManagedListener(this.eventService, Events.EVENT_BODY_SCROLL, () => {\n this.hidePicker();\n });\n }\n const translate = this.localeService.getLocaleTextFunc();\n const { pickerAriaLabelKey, pickerAriaLabelValue, modalPicker = true } = this.config;\n const popupParams = {\n modal: modalPicker,\n eChild: ePicker,\n closeOnEsc: true,\n closedCallback: () => {\n const shouldRestoreFocus = eDocument.activeElement === eDocument.body;\n this.beforeHidePicker();\n if (shouldRestoreFocus && this.isAlive()) {\n this.getFocusableElement().focus();\n }\n },\n ariaLabel: translate(pickerAriaLabelKey, pickerAriaLabelValue),\n };\n const addPopupRes = this.popupService.addPopup(popupParams);\n const { maxPickerHeight, minPickerWidth, maxPickerWidth, variableWidth } = this;\n if (variableWidth) {\n if (minPickerWidth) {\n ePicker.style.minWidth = minPickerWidth;\n }\n ePicker.style.width = formatSize(getAbsoluteWidth(this.eWrapper));\n if (maxPickerWidth) {\n ePicker.style.maxWidth = maxPickerWidth;\n }\n }\n else {\n setElementWidth(ePicker, maxPickerWidth !== null && maxPickerWidth !== void 0 ? maxPickerWidth : getAbsoluteWidth(this.eWrapper));\n }\n const maxHeight = maxPickerHeight !== null && maxPickerHeight !== void 0 ? maxPickerHeight : `${getInnerHeight(this.popupService.getPopupParent())}px`;\n ePicker.style.setProperty('max-height', maxHeight);\n ePicker.style.position = 'absolute';\n this.alignPickerToComponent();\n return addPopupRes.hideFunc;\n }\n alignPickerToComponent() {\n if (!this.pickerComponent) {\n return;\n }\n const { pickerType } = this.config;\n const { pickerGap } = this;\n const alignSide = this.gridOptionsService.get('enableRtl') ? 'right' : 'left';\n this.popupService.positionPopupByComponent({\n type: pickerType,\n eventSource: this.eWrapper,\n ePopup: this.pickerComponent.getGui(),\n position: 'under',\n alignSide,\n keepWithinBounds: true,\n nudgeY: pickerGap\n });\n }\n beforeHidePicker() {\n if (this.destroyMouseWheelFunc) {\n this.destroyMouseWheelFunc();\n this.destroyMouseWheelFunc = undefined;\n }\n this.toggleExpandedStyles(false);\n const pickerGui = this.pickerComponent.getGui();\n pickerGui.removeEventListener('focusin', this.onPickerFocusIn);\n pickerGui.removeEventListener('focusout', this.onPickerFocusOut);\n this.isPickerDisplayed = false;\n this.pickerComponent = undefined;\n this.hideCurrentPicker = null;\n }\n toggleExpandedStyles(expanded) {\n if (!this.isAlive()) {\n return;\n }\n const ariaEl = this.getAriaElement();\n setAriaExpanded(ariaEl, expanded);\n this.eWrapper.classList.toggle('ag-picker-expanded', expanded);\n this.eWrapper.classList.toggle('ag-picker-collapsed', !expanded);\n }\n onPickerFocusIn() {\n this.togglePickerHasFocus(true);\n }\n onPickerFocusOut(e) {\n var _a;\n if (!((_a = this.pickerComponent) === null || _a === void 0 ? void 0 : _a.getGui().contains(e.relatedTarget))) {\n this.togglePickerHasFocus(false);\n }\n }\n togglePickerHasFocus(focused) {\n if (!this.pickerComponent) {\n return;\n }\n this.eWrapper.classList.toggle('ag-picker-has-focus', focused);\n }\n hidePicker() {\n if (this.hideCurrentPicker) {\n this.hideCurrentPicker();\n }\n }\n setInputWidth(width) {\n setElementWidth(this.eWrapper, width);\n return this;\n }\n getFocusableElement() {\n return this.eWrapper;\n }\n setPickerGap(gap) {\n this.pickerGap = gap;\n return this;\n }\n setPickerMinWidth(width) {\n if (typeof width === 'number') {\n width = `${width}px`;\n }\n this.minPickerWidth = width == null ? undefined : width;\n return this;\n }\n setPickerMaxWidth(width) {\n if (typeof width === 'number') {\n width = `${width}px`;\n }\n this.maxPickerWidth = width == null ? undefined : width;\n return this;\n }\n setPickerMaxHeight(height) {\n if (typeof height === 'number') {\n height = `${height}px`;\n }\n this.maxPickerHeight = height == null ? undefined : height;\n return this;\n }\n destroy() {\n this.hidePicker();\n super.destroy();\n }\n}\n__decorate([\n Autowired('popupService')\n], AgPickerField.prototype, \"popupService\", void 0);\n__decorate([\n RefSelector('eLabel')\n], AgPickerField.prototype, \"eLabel\", void 0);\n__decorate([\n RefSelector('eWrapper')\n], AgPickerField.prototype, \"eWrapper\", void 0);\n__decorate([\n RefSelector('eDisplayField')\n], AgPickerField.prototype, \"eDisplayField\", void 0);\n__decorate([\n RefSelector('eIcon')\n], AgPickerField.prototype, \"eIcon\", void 0);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component } from \"./component.mjs\";\nimport { PostConstruct } from \"../context/context.mjs\";\nimport { escapeString } from \"../utils/string.mjs\";\nimport { KeyCode } from '../constants/keyCode.mjs';\nimport { setAriaPosInSet, setAriaRole, setAriaSelected, setAriaSetSize } from '../utils/aria.mjs';\nimport { Events } from \"../eventKeys.mjs\";\nimport { isVisible } from \"../utils/dom.mjs\";\nexport class AgList extends Component {\n constructor(cssIdentifier = 'default') {\n super(/* html */ `
`);\n this.cssIdentifier = cssIdentifier;\n this.options = [];\n this.itemEls = [];\n }\n init() {\n this.addManagedListener(this.getGui(), 'keydown', this.handleKeyDown.bind(this));\n }\n handleKeyDown(e) {\n const key = e.key;\n switch (key) {\n case KeyCode.ENTER:\n if (!this.highlightedEl) {\n this.setValue(this.getValue());\n }\n else {\n const pos = this.itemEls.indexOf(this.highlightedEl);\n this.setValueByIndex(pos);\n }\n break;\n case KeyCode.DOWN:\n case KeyCode.UP:\n const isDown = key === KeyCode.DOWN;\n let itemToHighlight;\n e.preventDefault();\n if (!this.highlightedEl) {\n itemToHighlight = this.itemEls[isDown ? 0 : this.itemEls.length - 1];\n }\n else {\n const currentIdx = this.itemEls.indexOf(this.highlightedEl);\n let nextPos = currentIdx + (isDown ? 1 : -1);\n nextPos = Math.min(Math.max(nextPos, 0), this.itemEls.length - 1);\n itemToHighlight = this.itemEls[nextPos];\n }\n this.highlightItem(itemToHighlight);\n break;\n }\n }\n addOptions(listOptions) {\n listOptions.forEach(listOption => this.addOption(listOption));\n return this;\n }\n addOption(listOption) {\n const { value, text } = listOption;\n const sanitisedText = escapeString(text || value);\n this.options.push({ value, text: sanitisedText });\n this.renderOption(value, sanitisedText);\n this.updateIndices();\n return this;\n }\n updateIndices() {\n const options = this.getGui().querySelectorAll('.ag-list-item');\n options.forEach((option, idx) => {\n setAriaPosInSet(option, idx + 1);\n setAriaSetSize(option, options.length);\n });\n }\n renderOption(value, text) {\n const itemEl = document.createElement('div');\n setAriaRole(itemEl, 'option');\n itemEl.classList.add('ag-list-item', `ag-${this.cssIdentifier}-list-item`);\n itemEl.innerHTML = `${text}`;\n itemEl.tabIndex = -1;\n this.itemEls.push(itemEl);\n this.addManagedListener(itemEl, 'mouseover', () => this.highlightItem(itemEl));\n this.addManagedListener(itemEl, 'mouseleave', () => this.clearHighlighted());\n this.addManagedListener(itemEl, 'click', () => this.setValue(value));\n this.getGui().appendChild(itemEl);\n }\n setValue(value, silent) {\n if (this.value === value) {\n this.fireItemSelected();\n return this;\n }\n if (value == null) {\n this.reset();\n return this;\n }\n const idx = this.options.findIndex(option => option.value === value);\n if (idx !== -1) {\n const option = this.options[idx];\n this.value = option.value;\n this.displayValue = option.text != null ? option.text : option.value;\n this.highlightItem(this.itemEls[idx]);\n if (!silent) {\n this.fireChangeEvent();\n }\n }\n return this;\n }\n setValueByIndex(idx) {\n return this.setValue(this.options[idx].value);\n }\n getValue() {\n return this.value;\n }\n getDisplayValue() {\n return this.displayValue;\n }\n refreshHighlighted() {\n this.clearHighlighted();\n const idx = this.options.findIndex(option => option.value === this.value);\n if (idx !== -1) {\n this.highlightItem(this.itemEls[idx]);\n }\n }\n reset() {\n this.value = null;\n this.displayValue = null;\n this.clearHighlighted();\n this.fireChangeEvent();\n }\n highlightItem(el) {\n if (!isVisible(el)) {\n return;\n }\n this.clearHighlighted();\n this.highlightedEl = el;\n this.highlightedEl.classList.add(AgList.ACTIVE_CLASS);\n setAriaSelected(this.highlightedEl, true);\n this.highlightedEl.focus();\n }\n clearHighlighted() {\n if (!this.highlightedEl || !isVisible(this.highlightedEl)) {\n return;\n }\n this.highlightedEl.classList.remove(AgList.ACTIVE_CLASS);\n setAriaSelected(this.highlightedEl, false);\n this.highlightedEl = null;\n }\n fireChangeEvent() {\n this.dispatchEvent({ type: Events.EVENT_FIELD_VALUE_CHANGED });\n this.fireItemSelected();\n }\n fireItemSelected() {\n this.dispatchEvent({ type: AgList.EVENT_ITEM_SELECTED });\n }\n}\nAgList.EVENT_ITEM_SELECTED = 'selectedItem';\nAgList.ACTIVE_CLASS = 'ag-active-item';\n__decorate([\n PostConstruct\n], AgList.prototype, \"init\", null);\n","import { AgPickerField } from \"./agPickerField.mjs\";\nimport { AgList } from \"./agList.mjs\";\nimport { Events } from \"../eventKeys.mjs\";\nimport { KeyCode } from \"../constants/keyCode.mjs\";\nimport { setAriaControls } from \"../utils/aria.mjs\";\nexport class AgSelect extends AgPickerField {\n constructor(config) {\n super(Object.assign({ pickerAriaLabelKey: 'ariaLabelSelectField', pickerAriaLabelValue: 'Select Field', pickerType: 'ag-list', className: 'ag-select', pickerIcon: 'smallDown', ariaRole: 'combobox' }, config));\n }\n postConstruct() {\n super.postConstruct();\n this.createListComponent();\n this.eWrapper.tabIndex = this.gridOptionsService.get('tabIndex');\n }\n createListComponent() {\n this.listComponent = this.createBean(new AgList('select'));\n this.listComponent.setParentComponent(this);\n const eListAriaEl = this.listComponent.getAriaElement();\n const listId = `ag-select-list-${this.listComponent.getCompId()}`;\n eListAriaEl.setAttribute('id', listId);\n setAriaControls(this.getAriaElement(), eListAriaEl);\n this.listComponent.addGuiEventListener('keydown', (e) => {\n if (e.key === KeyCode.TAB) {\n e.preventDefault();\n e.stopImmediatePropagation();\n this.getGui().dispatchEvent(new KeyboardEvent('keydown', {\n key: e.key,\n shiftKey: e.shiftKey,\n ctrlKey: e.ctrlKey,\n bubbles: true\n }));\n }\n ;\n });\n this.listComponent.addManagedListener(this.listComponent, AgList.EVENT_ITEM_SELECTED, () => {\n this.hidePicker();\n this.dispatchEvent({ type: AgSelect.EVENT_ITEM_SELECTED });\n });\n this.listComponent.addManagedListener(this.listComponent, Events.EVENT_FIELD_VALUE_CHANGED, () => {\n if (!this.listComponent) {\n return;\n }\n this.setValue(this.listComponent.getValue(), false, true);\n this.hidePicker();\n });\n }\n createPickerComponent() {\n // do not create the picker every time to save state\n return this.listComponent;\n }\n showPicker() {\n if (!this.listComponent) {\n return;\n }\n super.showPicker();\n this.listComponent.refreshHighlighted();\n }\n addOptions(options) {\n options.forEach(option => this.addOption(option));\n return this;\n }\n addOption(option) {\n this.listComponent.addOption(option);\n return this;\n }\n setValue(value, silent, fromPicker) {\n if (this.value === value || !this.listComponent) {\n return this;\n }\n if (!fromPicker) {\n this.listComponent.setValue(value, true);\n }\n const newValue = this.listComponent.getValue();\n if (newValue === this.getValue()) {\n return this;\n }\n this.eDisplayField.innerHTML = this.listComponent.getDisplayValue();\n return super.setValue(value, silent);\n }\n destroy() {\n if (this.listComponent) {\n this.destroyBean(this.listComponent);\n this.listComponent = undefined;\n }\n super.destroy();\n }\n}\nAgSelect.EVENT_ITEM_SELECTED = 'selectedItem';\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { RefSelector } from './componentAnnotations.mjs';\nimport { AgAbstractField } from './agAbstractField.mjs';\nimport { setDisabled, setElementWidth, addOrRemoveAttribute } from '../utils/dom.mjs';\nimport { setAriaLabel } from '../utils/aria.mjs';\nexport class AgAbstractInputField extends AgAbstractField {\n constructor(config, className, inputType = 'text', displayFieldTag = 'input') {\n super(config, /* html */ `\n
\n
\n
\n <${displayFieldTag} ref=\"eInput\" class=\"ag-input-field-input\">\n
\n
`, className);\n this.inputType = inputType;\n this.displayFieldTag = displayFieldTag;\n }\n postConstruct() {\n super.postConstruct();\n this.setInputType();\n this.eLabel.classList.add(`${this.className}-label`);\n this.eWrapper.classList.add(`${this.className}-input-wrapper`);\n this.eInput.classList.add(`${this.className}-input`);\n this.addCssClass('ag-input-field');\n this.eInput.id = this.eInput.id || `ag-${this.getCompId()}-input`;\n const { width, value } = this.config;\n if (width != null) {\n this.setWidth(width);\n }\n if (value != null) {\n this.setValue(value);\n }\n this.addInputListeners();\n this.activateTabIndex([this.eInput]);\n }\n addInputListeners() {\n this.addManagedListener(this.eInput, 'input', e => this.setValue(e.target.value));\n }\n setInputType() {\n if (this.displayFieldTag === 'input') {\n this.eInput.setAttribute('type', this.inputType);\n }\n }\n getInputElement() {\n return this.eInput;\n }\n setInputWidth(width) {\n setElementWidth(this.eWrapper, width);\n return this;\n }\n setInputName(name) {\n this.getInputElement().setAttribute('name', name);\n return this;\n }\n getFocusableElement() {\n return this.eInput;\n }\n setMaxLength(length) {\n const eInput = this.eInput;\n eInput.maxLength = length;\n return this;\n }\n setInputPlaceholder(placeholder) {\n addOrRemoveAttribute(this.eInput, 'placeholder', placeholder);\n return this;\n }\n setInputAriaLabel(label) {\n setAriaLabel(this.eInput, label);\n this.refreshAriaLabelledBy();\n return this;\n }\n setDisabled(disabled) {\n setDisabled(this.eInput, disabled);\n return super.setDisabled(disabled);\n }\n setAutoComplete(value) {\n if (value === true) {\n // Remove the autocomplete attribute if the value is explicitly set to true\n // to allow the default browser autocomplete/autofill behaviour.\n addOrRemoveAttribute(this.eInput, 'autocomplete', null);\n }\n else {\n // When a string is provided, use it as the value of the autocomplete attribute.\n // This enables users to specify how they want to the browser to handle the autocomplete on the input, as per spec:\n // https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete#values\n const autoCompleteValue = typeof value === 'string' ? value : 'off';\n addOrRemoveAttribute(this.eInput, 'autocomplete', autoCompleteValue);\n }\n return this;\n }\n}\n__decorate([\n RefSelector('eLabel')\n], AgAbstractInputField.prototype, \"eLabel\", void 0);\n__decorate([\n RefSelector('eWrapper')\n], AgAbstractInputField.prototype, \"eWrapper\", void 0);\n__decorate([\n RefSelector('eInput')\n], AgAbstractInputField.prototype, \"eInput\", void 0);\n","import { Events } from \"../events.mjs\";\nimport { AgAbstractInputField } from './agAbstractInputField.mjs';\nexport class AgCheckbox extends AgAbstractInputField {\n constructor(config, className = 'ag-checkbox', inputType = 'checkbox') {\n super(config, className, inputType);\n this.labelAlignment = 'right';\n this.selected = false;\n this.readOnly = false;\n this.passive = false;\n }\n addInputListeners() {\n this.addManagedListener(this.eInput, 'click', this.onCheckboxClick.bind(this));\n this.addManagedListener(this.eLabel, 'click', this.toggle.bind(this));\n }\n getNextValue() {\n return this.selected === undefined ? true : !this.selected;\n }\n setPassive(passive) {\n this.passive = passive;\n }\n isReadOnly() {\n return this.readOnly;\n }\n setReadOnly(readOnly) {\n this.eWrapper.classList.toggle('ag-disabled', readOnly);\n this.eInput.disabled = readOnly;\n this.readOnly = readOnly;\n }\n setDisabled(disabled) {\n this.eWrapper.classList.toggle('ag-disabled', disabled);\n return super.setDisabled(disabled);\n }\n toggle() {\n if (this.eInput.disabled) {\n return;\n }\n const previousValue = this.isSelected();\n const nextValue = this.getNextValue();\n if (this.passive) {\n this.dispatchChange(nextValue, previousValue);\n }\n else {\n this.setValue(nextValue);\n }\n }\n getValue() {\n return this.isSelected();\n }\n setValue(value, silent) {\n this.refreshSelectedClass(value);\n this.setSelected(value, silent);\n return this;\n }\n setName(name) {\n const input = this.getInputElement();\n input.name = name;\n return this;\n }\n isSelected() {\n return this.selected;\n }\n setSelected(selected, silent) {\n if (this.isSelected() === selected) {\n return;\n }\n this.previousValue = this.isSelected();\n selected = this.selected = typeof selected === 'boolean' ? selected : undefined;\n this.eInput.checked = selected;\n this.eInput.indeterminate = selected === undefined;\n if (!silent) {\n this.dispatchChange(this.selected, this.previousValue);\n }\n }\n dispatchChange(selected, previousValue, event) {\n this.dispatchEvent({ type: Events.EVENT_FIELD_VALUE_CHANGED, selected, previousValue, event });\n const input = this.getInputElement();\n const checkboxChangedEvent = {\n type: Events.EVENT_CHECKBOX_CHANGED,\n id: input.id,\n name: input.name,\n selected,\n previousValue\n };\n this.eventService.dispatchEvent(checkboxChangedEvent);\n }\n onCheckboxClick(e) {\n if (this.passive || this.eInput.disabled) {\n return;\n }\n const previousValue = this.isSelected();\n const selected = this.selected = e.target.checked;\n this.refreshSelectedClass(selected);\n this.dispatchChange(selected, previousValue, e);\n }\n refreshSelectedClass(value) {\n this.eWrapper.classList.toggle('ag-checked', value === true);\n this.eWrapper.classList.toggle('ag-indeterminate', value == null);\n }\n}\n","import { AgCheckbox } from './agCheckbox.mjs';\nimport { Events } from '../eventKeys.mjs';\nexport class AgRadioButton extends AgCheckbox {\n constructor(config) {\n super(config, 'ag-radio-button', 'radio');\n }\n isSelected() {\n return this.eInput.checked;\n }\n toggle() {\n if (this.eInput.disabled) {\n return;\n }\n // do not allow an active radio button to be deselected\n if (!this.isSelected()) {\n this.setValue(true);\n }\n }\n addInputListeners() {\n super.addInputListeners();\n this.addManagedListener(this.eventService, Events.EVENT_CHECKBOX_CHANGED, this.onChange.bind(this));\n }\n /**\n * This ensures that if another radio button in the same named group is selected, we deselect this radio button.\n * By default the browser does this for you, but we are managing classes ourselves in order to ensure input\n * elements are styled correctly in IE11, and the DOM 'changed' event is only fired when a button is selected,\n * not deselected, so we need to use our own event.\n */\n onChange(event) {\n if (event.selected &&\n event.name &&\n this.eInput.name &&\n this.eInput.name === event.name &&\n event.id &&\n this.eInput.id !== event.id) {\n this.setValue(false, true);\n }\n }\n}\n","import { OptionsFactory } from './optionsFactory.mjs';\nimport { ProvidedFilter } from './providedFilter.mjs';\nimport { AgPromise } from '../../utils/index.mjs';\nimport { AgSelect } from '../../widgets/agSelect.mjs';\nimport { AgRadioButton } from '../../widgets/agRadioButton.mjs';\nimport { areEqual } from '../../utils/array.mjs';\nimport { setDisplayed, setDisabled, removeFromParent } from '../../utils/dom.mjs';\nimport { FILTER_LOCALE_TEXT } from '../filterLocaleText.mjs';\nimport { Component } from '../../widgets/component.mjs';\nimport { AgAbstractInputField } from '../../widgets/agAbstractInputField.mjs';\nimport { warnOnce, isFunction } from '../../utils/function.mjs';\nexport class SimpleFilterModelFormatter {\n constructor(localeService, optionsFactory, valueFormatter) {\n this.localeService = localeService;\n this.optionsFactory = optionsFactory;\n this.valueFormatter = valueFormatter;\n }\n // used by:\n // 1) NumberFloatingFilter & TextFloatingFilter: Always, for both when editable and read only.\n // 2) DateFloatingFilter: Only when read only (as we show text rather than a date picker when read only)\n getModelAsString(model) {\n if (!model) {\n return null;\n }\n const isCombined = model.operator != null;\n const translate = this.localeService.getLocaleTextFunc();\n if (isCombined) {\n const combinedModel = model;\n let { conditions } = combinedModel;\n if (!conditions) {\n const { condition1, condition2 } = combinedModel;\n conditions = [condition1, condition2];\n }\n const customOptions = conditions.map(condition => this.getModelAsString(condition));\n const joinOperatorTranslateKey = combinedModel.operator === 'AND' ? 'andCondition' : 'orCondition';\n return customOptions.join(` ${translate(joinOperatorTranslateKey, FILTER_LOCALE_TEXT[joinOperatorTranslateKey])} `);\n }\n else if (model.type === SimpleFilter.BLANK || model.type === SimpleFilter.NOT_BLANK) {\n return translate(model.type, model.type);\n }\n else {\n const condition = model;\n const customOption = this.optionsFactory.getCustomOption(condition.type);\n // For custom filter options we display the Name of the filter instead\n // of displaying the `from` value, as it wouldn't be relevant\n const { displayKey, displayName, numberOfInputs } = customOption || {};\n if (displayKey && displayName && numberOfInputs === 0) {\n translate(displayKey, displayName);\n return displayName;\n }\n return this.conditionToString(condition, customOption);\n }\n }\n updateParams(params) {\n this.optionsFactory = params.optionsFactory;\n }\n formatValue(value) {\n var _a;\n return this.valueFormatter ? ((_a = this.valueFormatter(value !== null && value !== void 0 ? value : null)) !== null && _a !== void 0 ? _a : '') : String(value);\n }\n}\n/**\n * Every filter with a dropdown where the user can specify a comparing type against the filter values.\n *\n * @param M type of filter-model managed by the concrete sub-class that extends this type\n * @param V type of value managed by the concrete sub-class that extends this type\n * @param E type of UI element used for collecting user-input\n */\nexport class SimpleFilter extends ProvidedFilter {\n constructor() {\n super(...arguments);\n this.eTypes = [];\n this.eJoinOperatorPanels = [];\n this.eJoinOperatorsAnd = [];\n this.eJoinOperatorsOr = [];\n this.eConditionBodies = [];\n this.listener = () => this.onUiChanged();\n this.lastUiCompletePosition = null;\n this.joinOperatorId = 0;\n }\n getNumberOfInputs(type) {\n const customOpts = this.optionsFactory.getCustomOption(type);\n if (customOpts) {\n const { numberOfInputs } = customOpts;\n return numberOfInputs != null ? numberOfInputs : 1;\n }\n const zeroInputTypes = [\n SimpleFilter.EMPTY, SimpleFilter.NOT_BLANK, SimpleFilter.BLANK,\n ];\n if (type && zeroInputTypes.indexOf(type) >= 0) {\n return 0;\n }\n else if (type === SimpleFilter.IN_RANGE) {\n return 2;\n }\n return 1;\n }\n // floating filter calls this when user applies filter from floating filter\n onFloatingFilterChanged(type, value) {\n this.setTypeFromFloatingFilter(type);\n this.setValueFromFloatingFilter(value);\n this.onUiChanged(true);\n }\n setTypeFromFloatingFilter(type) {\n this.eTypes.forEach((eType, position) => {\n if (position === 0) {\n eType.setValue(type, true);\n }\n else {\n eType.setValue(this.optionsFactory.getDefaultOption(), true);\n }\n });\n }\n getModelFromUi() {\n const conditions = this.getUiCompleteConditions();\n if (conditions.length === 0) {\n return null;\n }\n if (this.maxNumConditions > 1 && conditions.length > 1) {\n return {\n filterType: this.getFilterType(),\n operator: this.getJoinOperator(),\n condition1: conditions[0],\n condition2: conditions[1],\n conditions\n };\n }\n return conditions[0];\n }\n getConditionTypes() {\n return this.eTypes.map(eType => eType.getValue());\n }\n getConditionType(position) {\n return this.eTypes[position].getValue();\n }\n getJoinOperator() {\n if (this.eJoinOperatorsOr.length === 0) {\n return this.defaultJoinOperator;\n }\n return this.eJoinOperatorsOr[0].getValue() === true ? 'OR' : 'AND';\n }\n areModelsEqual(a, b) {\n // both are missing\n if (!a && !b) {\n return true;\n }\n // one is missing, other present\n if ((!a && b) || (a && !b)) {\n return false;\n }\n // one is combined, the other is not\n const aIsSimple = !a.operator;\n const bIsSimple = !b.operator;\n const oneSimpleOneCombined = (!aIsSimple && bIsSimple) || (aIsSimple && !bIsSimple);\n if (oneSimpleOneCombined) {\n return false;\n }\n let res;\n // otherwise both present, so compare\n if (aIsSimple) {\n const aSimple = a;\n const bSimple = b;\n res = this.areSimpleModelsEqual(aSimple, bSimple);\n }\n else {\n const aCombined = a;\n const bCombined = b;\n res = aCombined.operator === bCombined.operator\n && areEqual(aCombined.conditions, bCombined.conditions, (aModel, bModel) => this.areSimpleModelsEqual(aModel, bModel));\n }\n return res;\n }\n shouldRefresh(newParams) {\n var _a, _b, _c;\n const model = this.getModel();\n const conditions = model ? ((_a = model.conditions) !== null && _a !== void 0 ? _a : [model]) : null;\n // Do Not refresh when one of the existing condition options is not in new options list\n const newOptionsList = (_c = (_b = newParams.filterOptions) === null || _b === void 0 ? void 0 : _b.map(option => typeof option === 'string' ? option : option.displayKey)) !== null && _c !== void 0 ? _c : this.getDefaultFilterOptions();\n const allConditionsExistInNewOptionsList = !conditions || conditions.every(condition => newOptionsList.find(option => option === condition.type) !== undefined);\n if (!allConditionsExistInNewOptionsList) {\n return false;\n }\n // Check number of conditions vs maxNumConditions\n if (typeof newParams.maxNumConditions === 'number' && conditions && conditions.length > newParams.maxNumConditions) {\n return false;\n }\n return true;\n }\n refresh(newParams) {\n if (!this.shouldRefresh(newParams)) {\n return false;\n }\n const parentRefreshed = super.refresh(newParams);\n if (!parentRefreshed) {\n return false;\n }\n this.setParams(newParams);\n this.removeConditionsAndOperators(0);\n this.createOption();\n this.setModel(this.getModel());\n return true;\n }\n setModelIntoUi(model) {\n const isCombined = model.operator;\n if (isCombined) {\n let combinedModel = model;\n if (!combinedModel.conditions) {\n combinedModel.conditions = [\n combinedModel.condition1,\n combinedModel.condition2\n ];\n }\n const numConditions = this.validateAndUpdateConditions(combinedModel.conditions);\n const numPrevConditions = this.getNumConditions();\n if (numConditions < numPrevConditions) {\n this.removeConditionsAndOperators(numConditions);\n }\n else if (numConditions > numPrevConditions) {\n for (let i = numPrevConditions; i < numConditions; i++) {\n this.createJoinOperatorPanel();\n this.createOption();\n }\n }\n const orChecked = combinedModel.operator === 'OR';\n this.eJoinOperatorsAnd.forEach(eJoinOperatorAnd => eJoinOperatorAnd.setValue(!orChecked, true));\n this.eJoinOperatorsOr.forEach(eJoinOperatorOr => eJoinOperatorOr.setValue(orChecked, true));\n combinedModel.conditions.forEach((condition, position) => {\n this.eTypes[position].setValue(condition.type, true);\n this.setConditionIntoUi(condition, position);\n });\n }\n else {\n const simpleModel = model;\n if (this.getNumConditions() > 1) {\n this.removeConditionsAndOperators(1);\n }\n this.eTypes[0].setValue(simpleModel.type, true);\n this.setConditionIntoUi(simpleModel, 0);\n }\n this.lastUiCompletePosition = this.getNumConditions() - 1;\n this.createMissingConditionsAndOperators();\n this.onUiChanged();\n return AgPromise.resolve();\n }\n validateAndUpdateConditions(conditions) {\n let numConditions = conditions.length;\n if (numConditions > this.maxNumConditions) {\n conditions.splice(this.maxNumConditions);\n warnOnce('Filter Model contains more conditions than \"filterParams.maxNumConditions\". Additional conditions have been ignored.');\n numConditions = this.maxNumConditions;\n }\n return numConditions;\n }\n doesFilterPass(params) {\n var _a;\n const model = this.getModel();\n if (model == null) {\n return true;\n }\n const { operator } = model;\n const models = [];\n if (operator) {\n const combinedModel = model;\n models.push(...((_a = combinedModel.conditions) !== null && _a !== void 0 ? _a : []));\n }\n else {\n models.push(model);\n }\n const combineFunction = operator && operator === 'OR' ? 'some' : 'every';\n return models[combineFunction](m => this.individualConditionPasses(params, m));\n }\n setParams(params) {\n super.setParams(params);\n this.setNumConditions(params);\n this.defaultJoinOperator = this.getDefaultJoinOperator(params.defaultJoinOperator);\n this.filterPlaceholder = params.filterPlaceholder;\n this.optionsFactory = new OptionsFactory();\n this.optionsFactory.init(params, this.getDefaultFilterOptions());\n this.createFilterListOptions();\n this.createOption();\n this.createMissingConditionsAndOperators();\n if (this.isReadOnly()) {\n // only do this when read only (so no other focusable elements), otherwise the tab order breaks\n // as the tabbed layout managed focus feature will focus the body when it shouldn't\n this.eFilterBody.setAttribute('tabindex', '-1');\n }\n }\n setNumConditions(params) {\n var _a, _b;\n if (params.suppressAndOrCondition != null) {\n warnOnce('Since v29.2 \"filterParams.suppressAndOrCondition\" is deprecated. Use \"filterParams.maxNumConditions = 1\" instead.');\n }\n if (params.alwaysShowBothConditions != null) {\n warnOnce('Since v29.2 \"filterParams.alwaysShowBothConditions\" is deprecated. Use \"filterParams.numAlwaysVisibleConditions = 2\" instead.');\n }\n this.maxNumConditions = (_a = params.maxNumConditions) !== null && _a !== void 0 ? _a : (params.suppressAndOrCondition ? 1 : 2);\n if (this.maxNumConditions < 1) {\n warnOnce('\"filterParams.maxNumConditions\" must be greater than or equal to zero.');\n this.maxNumConditions = 1;\n }\n this.numAlwaysVisibleConditions = (_b = params.numAlwaysVisibleConditions) !== null && _b !== void 0 ? _b : (params.alwaysShowBothConditions ? 2 : 1);\n if (this.numAlwaysVisibleConditions < 1) {\n warnOnce('\"filterParams.numAlwaysVisibleConditions\" must be greater than or equal to zero.');\n this.numAlwaysVisibleConditions = 1;\n }\n if (this.numAlwaysVisibleConditions > this.maxNumConditions) {\n warnOnce('\"filterParams.numAlwaysVisibleConditions\" cannot be greater than \"filterParams.maxNumConditions\".');\n this.numAlwaysVisibleConditions = this.maxNumConditions;\n }\n }\n createOption() {\n const eType = this.createManagedBean(new AgSelect());\n this.eTypes.push(eType);\n eType.addCssClass('ag-filter-select');\n this.eFilterBody.appendChild(eType.getGui());\n const eConditionBody = this.createValueElement();\n this.eConditionBodies.push(eConditionBody);\n this.eFilterBody.appendChild(eConditionBody);\n this.putOptionsIntoDropdown(eType);\n this.resetType(eType);\n const position = this.getNumConditions() - 1;\n this.forEachPositionInput(position, (element) => this.resetInput(element));\n this.addChangedListeners(eType, position);\n }\n createJoinOperatorPanel() {\n const eJoinOperatorPanel = document.createElement('div');\n this.eJoinOperatorPanels.push(eJoinOperatorPanel);\n eJoinOperatorPanel.classList.add('ag-filter-condition');\n const eJoinOperatorAnd = this.createJoinOperator(this.eJoinOperatorsAnd, eJoinOperatorPanel, 'and');\n const eJoinOperatorOr = this.createJoinOperator(this.eJoinOperatorsOr, eJoinOperatorPanel, 'or');\n this.eFilterBody.appendChild(eJoinOperatorPanel);\n const index = this.eJoinOperatorPanels.length - 1;\n const uniqueGroupId = this.joinOperatorId++;\n this.resetJoinOperatorAnd(eJoinOperatorAnd, index, uniqueGroupId);\n this.resetJoinOperatorOr(eJoinOperatorOr, index, uniqueGroupId);\n if (!this.isReadOnly()) {\n eJoinOperatorAnd.onValueChange(this.listener);\n eJoinOperatorOr.onValueChange(this.listener);\n }\n }\n createJoinOperator(eJoinOperators, eJoinOperatorPanel, andOr) {\n const eJoinOperator = this.createManagedBean(new AgRadioButton());\n eJoinOperators.push(eJoinOperator);\n eJoinOperator.addCssClass('ag-filter-condition-operator');\n eJoinOperator.addCssClass(`ag-filter-condition-operator-${andOr}`);\n eJoinOperatorPanel.appendChild(eJoinOperator.getGui());\n return eJoinOperator;\n }\n getDefaultJoinOperator(defaultJoinOperator) {\n return defaultJoinOperator === 'AND' || defaultJoinOperator === 'OR' ? defaultJoinOperator : 'AND';\n }\n createFilterListOptions() {\n const filterOptions = this.optionsFactory.getFilterOptions();\n this.filterListOptions = filterOptions.map(option => typeof option === 'string' ?\n this.createBoilerplateListOption(option) :\n this.createCustomListOption(option));\n }\n putOptionsIntoDropdown(eType) {\n // Add specified options to condition drop-down.\n this.filterListOptions.forEach(listOption => {\n eType.addOption(listOption);\n });\n // Make drop-downs read-only if there is only one option.\n eType.setDisabled(this.filterListOptions.length <= 1);\n }\n createBoilerplateListOption(option) {\n return { value: option, text: this.translate(option) };\n }\n createCustomListOption(option) {\n const { displayKey } = option;\n const customOption = this.optionsFactory.getCustomOption(option.displayKey);\n return {\n value: displayKey,\n text: customOption ?\n this.localeService.getLocaleTextFunc()(customOption.displayKey, customOption.displayName) :\n this.translate(displayKey),\n };\n }\n /**\n * @deprecated As of v29.2 filters can have more than two conditions. Check `colDef.filterParams.maxNumConditions` instead.\n */\n isAllowTwoConditions() {\n return this.maxNumConditions >= 2;\n }\n createBodyTemplate() {\n // created dynamically\n return '';\n }\n getCssIdentifier() {\n return 'simple-filter';\n }\n updateUiVisibility() {\n const joinOperator = this.getJoinOperator();\n this.updateNumConditions();\n // from here, the number of elements in all the collections is correct, so can just update the values/statuses\n this.updateConditionStatusesAndValues(this.lastUiCompletePosition, joinOperator);\n }\n updateNumConditions() {\n var _a;\n // Collection sizes are already correct if updated via API, so only need to handle UI updates here\n let lastUiCompletePosition = -1;\n let areAllConditionsUiComplete = true;\n for (let position = 0; position < this.getNumConditions(); position++) {\n if (this.isConditionUiComplete(position)) {\n lastUiCompletePosition = position;\n }\n else {\n areAllConditionsUiComplete = false;\n }\n }\n if (this.shouldAddNewConditionAtEnd(areAllConditionsUiComplete)) {\n this.createJoinOperatorPanel();\n this.createOption();\n }\n else {\n const activePosition = (_a = this.lastUiCompletePosition) !== null && _a !== void 0 ? _a : this.getNumConditions() - 2;\n if (lastUiCompletePosition < activePosition) {\n // remove any incomplete conditions at the end, excluding the active position\n this.removeConditionsAndOperators(activePosition + 1);\n const removeStartPosition = lastUiCompletePosition + 1;\n const numConditionsToRemove = activePosition - removeStartPosition;\n if (numConditionsToRemove > 0) {\n this.removeConditionsAndOperators(removeStartPosition, numConditionsToRemove);\n }\n this.createMissingConditionsAndOperators();\n }\n }\n this.lastUiCompletePosition = lastUiCompletePosition;\n }\n updateConditionStatusesAndValues(lastUiCompletePosition, joinOperator) {\n this.eTypes.forEach((eType, position) => {\n const disabled = this.isConditionDisabled(position, lastUiCompletePosition);\n eType.setDisabled(disabled || this.filterListOptions.length <= 1);\n if (position === 1) {\n setDisabled(this.eJoinOperatorPanels[0], disabled);\n this.eJoinOperatorsAnd[0].setDisabled(disabled);\n this.eJoinOperatorsOr[0].setDisabled(disabled);\n }\n });\n this.eConditionBodies.forEach((element, index) => {\n setDisplayed(element, this.isConditionBodyVisible(index));\n });\n const orChecked = (joinOperator !== null && joinOperator !== void 0 ? joinOperator : this.getJoinOperator()) === 'OR';\n this.eJoinOperatorsAnd.forEach((eJoinOperatorAnd, index) => {\n eJoinOperatorAnd.setValue(!orChecked, true);\n });\n this.eJoinOperatorsOr.forEach((eJoinOperatorOr, index) => {\n eJoinOperatorOr.setValue(orChecked, true);\n });\n this.forEachInput((element, index, position, numberOfInputs) => {\n this.setElementDisplayed(element, index < numberOfInputs);\n this.setElementDisabled(element, this.isConditionDisabled(position, lastUiCompletePosition));\n });\n this.resetPlaceholder();\n }\n shouldAddNewConditionAtEnd(areAllConditionsUiComplete) {\n return areAllConditionsUiComplete && this.getNumConditions() < this.maxNumConditions && !this.isReadOnly();\n }\n removeConditionsAndOperators(startPosition, deleteCount) {\n if (startPosition >= this.getNumConditions()) {\n return;\n }\n this.removeComponents(this.eTypes, startPosition, deleteCount);\n this.removeElements(this.eConditionBodies, startPosition, deleteCount);\n this.removeValueElements(startPosition, deleteCount);\n const joinOperatorIndex = Math.max(startPosition - 1, 0);\n this.removeElements(this.eJoinOperatorPanels, joinOperatorIndex, deleteCount);\n this.removeComponents(this.eJoinOperatorsAnd, joinOperatorIndex, deleteCount);\n this.removeComponents(this.eJoinOperatorsOr, joinOperatorIndex, deleteCount);\n }\n removeElements(elements, startPosition, deleteCount) {\n const removedElements = this.removeItems(elements, startPosition, deleteCount);\n removedElements.forEach(element => removeFromParent(element));\n }\n removeComponents(components, startPosition, deleteCount) {\n const removedComponents = this.removeItems(components, startPosition, deleteCount);\n removedComponents.forEach(comp => {\n removeFromParent(comp.getGui());\n this.destroyBean(comp);\n });\n }\n removeItems(items, startPosition, deleteCount) {\n return deleteCount == null ? items.splice(startPosition) : items.splice(startPosition, deleteCount);\n }\n afterGuiAttached(params) {\n super.afterGuiAttached(params);\n this.resetPlaceholder();\n if (!(params === null || params === void 0 ? void 0 : params.suppressFocus)) {\n if (this.isReadOnly()) {\n // something needs focus otherwise keyboard navigation breaks, so focus the filter body\n this.eFilterBody.focus();\n }\n else {\n const firstInput = this.getInputs(0)[0];\n if (!firstInput) {\n return;\n }\n if (firstInput instanceof AgAbstractInputField) {\n firstInput.getInputElement().focus();\n }\n }\n }\n }\n afterGuiDetached() {\n super.afterGuiDetached();\n const appliedModel = this.getModel();\n // Reset temporary UI state that was applied to the DOM but not committed to the model\n this.resetUiToActiveModel(appliedModel);\n // remove incomplete positions\n let lastUiCompletePosition = -1;\n // as we remove incomplete positions, the last UI complete position will change\n let updatedLastUiCompletePosition = -1;\n let conditionsRemoved = false;\n const joinOperator = this.getJoinOperator();\n for (let position = this.getNumConditions() - 1; position >= 0; position--) {\n if (this.isConditionUiComplete(position)) {\n if (lastUiCompletePosition === -1) {\n lastUiCompletePosition = position;\n updatedLastUiCompletePosition = position;\n }\n }\n else {\n const shouldRemovePositionAtEnd = position >= this.numAlwaysVisibleConditions && !this.isConditionUiComplete(position - 1);\n const positionBeforeLastUiCompletePosition = position < lastUiCompletePosition;\n if (shouldRemovePositionAtEnd || positionBeforeLastUiCompletePosition) {\n this.removeConditionsAndOperators(position, 1);\n conditionsRemoved = true;\n if (positionBeforeLastUiCompletePosition) {\n updatedLastUiCompletePosition--;\n }\n }\n }\n }\n let shouldUpdateConditionStatusesAndValues = false;\n if (this.getNumConditions() < this.numAlwaysVisibleConditions) {\n // if conditions have been removed, need to recreate new ones at the end up to the number required\n this.createMissingConditionsAndOperators();\n shouldUpdateConditionStatusesAndValues = true;\n }\n if (this.shouldAddNewConditionAtEnd(updatedLastUiCompletePosition === this.getNumConditions() - 1)) {\n this.createJoinOperatorPanel();\n this.createOption();\n shouldUpdateConditionStatusesAndValues = true;\n }\n if (shouldUpdateConditionStatusesAndValues) {\n this.updateConditionStatusesAndValues(updatedLastUiCompletePosition, joinOperator);\n }\n if (conditionsRemoved) {\n this.updateJoinOperatorsDisabled();\n }\n this.lastUiCompletePosition = updatedLastUiCompletePosition;\n }\n getPlaceholderText(defaultPlaceholder, position) {\n let placeholder = this.translate(defaultPlaceholder);\n if (isFunction(this.filterPlaceholder)) {\n const filterPlaceholderFn = this.filterPlaceholder;\n const filterOptionKey = this.eTypes[position].getValue();\n const filterOption = this.translate(filterOptionKey);\n placeholder = filterPlaceholderFn({\n filterOptionKey,\n filterOption,\n placeholder\n });\n }\n else if (typeof this.filterPlaceholder === 'string') {\n placeholder = this.filterPlaceholder;\n }\n return placeholder;\n }\n // allow sub-classes to reset HTML placeholders after UI update.\n resetPlaceholder() {\n const globalTranslate = this.localeService.getLocaleTextFunc();\n this.forEachInput((element, index, position, numberOfInputs) => {\n if (!(element instanceof AgAbstractInputField)) {\n return;\n }\n const placeholder = index === 0 && numberOfInputs > 1 ? 'inRangeStart' :\n index === 0 ? 'filterOoo' :\n 'inRangeEnd';\n const ariaLabel = index === 0 && numberOfInputs > 1 ? globalTranslate('ariaFilterFromValue', 'Filter from value') :\n index === 0 ? globalTranslate('ariaFilterValue', 'Filter Value') :\n globalTranslate('ariaFilterToValue', 'Filter to Value');\n element.setInputPlaceholder(this.getPlaceholderText(placeholder, position));\n element.setInputAriaLabel(ariaLabel);\n });\n }\n setElementValue(element, value, fromFloatingFilter) {\n if (element instanceof AgAbstractInputField) {\n element.setValue(value != null ? String(value) : null, true);\n }\n }\n setElementDisplayed(element, displayed) {\n if (element instanceof Component) {\n setDisplayed(element.getGui(), displayed);\n }\n }\n setElementDisabled(element, disabled) {\n if (element instanceof Component) {\n setDisabled(element.getGui(), disabled);\n }\n }\n attachElementOnChange(element, listener) {\n if (element instanceof AgAbstractInputField) {\n element.onValueChange(listener);\n }\n }\n forEachInput(cb) {\n this.getConditionTypes().forEach((type, position) => {\n this.forEachPositionTypeInput(position, type, cb);\n });\n }\n forEachPositionInput(position, cb) {\n const type = this.getConditionType(position);\n this.forEachPositionTypeInput(position, type, cb);\n }\n forEachPositionTypeInput(position, type, cb) {\n const numberOfInputs = this.getNumberOfInputs(type);\n const inputs = this.getInputs(position);\n for (let index = 0; index < inputs.length; index++) {\n const input = inputs[index];\n if (input != null) {\n cb(input, index, position, numberOfInputs);\n }\n }\n }\n isConditionDisabled(position, lastUiCompletePosition) {\n if (this.isReadOnly()) {\n return true;\n } // Read-only mode trumps everything.\n if (position === 0) {\n return false;\n } // Position 0 should typically be editable.\n // Only allow editing of a 2nd or later condition if the previous condition is complete and no subsequent conditions are complete.\n return position > lastUiCompletePosition + 1;\n }\n isConditionBodyVisible(position) {\n // Check that the condition needs inputs.\n const type = this.getConditionType(position);\n const numberOfInputs = this.getNumberOfInputs(type);\n return numberOfInputs > 0;\n }\n // returns true if the UI represents a working filter, eg all parts are filled out.\n // eg if text filter and textfield blank then returns false.\n isConditionUiComplete(position) {\n if (position >= this.getNumConditions()) {\n return false;\n } // Condition doesn't exist.\n const type = this.getConditionType(position);\n if (type === SimpleFilter.EMPTY) {\n return false;\n }\n if (this.getValues(position).some(v => v == null)) {\n return false;\n }\n return true;\n }\n getNumConditions() {\n return this.eTypes.length;\n }\n getUiCompleteConditions() {\n const conditions = [];\n for (let position = 0; position < this.getNumConditions(); position++) {\n if (this.isConditionUiComplete(position)) {\n conditions.push(this.createCondition(position));\n }\n }\n return conditions;\n }\n createMissingConditionsAndOperators() {\n if (this.isReadOnly()) {\n return;\n } // don't show incomplete conditions when read only\n for (let i = this.getNumConditions(); i < this.numAlwaysVisibleConditions; i++) {\n this.createJoinOperatorPanel();\n this.createOption();\n }\n }\n resetUiToDefaults(silent) {\n this.removeConditionsAndOperators(this.isReadOnly() ? 1 : this.numAlwaysVisibleConditions);\n this.eTypes.forEach(eType => this.resetType(eType));\n this.eJoinOperatorsAnd.forEach((eJoinOperatorAnd, index) => this.resetJoinOperatorAnd(eJoinOperatorAnd, index, this.joinOperatorId + index));\n this.eJoinOperatorsOr.forEach((eJoinOperatorOr, index) => this.resetJoinOperatorOr(eJoinOperatorOr, index, this.joinOperatorId + index));\n this.joinOperatorId++;\n this.forEachInput((element) => this.resetInput(element));\n this.resetPlaceholder();\n this.createMissingConditionsAndOperators();\n this.lastUiCompletePosition = null;\n if (!silent) {\n this.onUiChanged();\n }\n return AgPromise.resolve();\n }\n resetType(eType) {\n const translate = this.localeService.getLocaleTextFunc();\n const filteringLabel = translate('ariaFilteringOperator', 'Filtering operator');\n eType\n .setValue(this.optionsFactory.getDefaultOption(), true)\n .setAriaLabel(filteringLabel)\n .setDisabled(this.isReadOnly() || this.filterListOptions.length <= 1);\n }\n resetJoinOperatorAnd(eJoinOperatorAnd, index, uniqueGroupId) {\n this.resetJoinOperator(eJoinOperatorAnd, index, this.isDefaultOperator('AND'), this.translate('andCondition'), uniqueGroupId);\n }\n resetJoinOperatorOr(eJoinOperatorOr, index, uniqueGroupId) {\n this.resetJoinOperator(eJoinOperatorOr, index, this.isDefaultOperator('OR'), this.translate('orCondition'), uniqueGroupId);\n }\n resetJoinOperator(eJoinOperator, index, value, label, uniqueGroupId) {\n this.updateJoinOperatorDisabled(eJoinOperator\n .setValue(value, true)\n .setName(`ag-simple-filter-and-or-${this.getCompId()}-${uniqueGroupId}`)\n .setLabel(label), index);\n }\n updateJoinOperatorsDisabled() {\n this.eJoinOperatorsAnd.forEach((eJoinOperator, index) => this.updateJoinOperatorDisabled(eJoinOperator, index));\n this.eJoinOperatorsOr.forEach((eJoinOperator, index) => this.updateJoinOperatorDisabled(eJoinOperator, index));\n }\n updateJoinOperatorDisabled(eJoinOperator, index) {\n eJoinOperator.setDisabled(this.isReadOnly() || index > 0);\n }\n resetInput(element) {\n this.setElementValue(element, null);\n this.setElementDisabled(element, this.isReadOnly());\n }\n // puts model values into the UI\n setConditionIntoUi(model, position) {\n const values = this.mapValuesFromModel(model);\n this.forEachInput((element, index, elPosition, _) => {\n if (elPosition !== position) {\n return;\n }\n this.setElementValue(element, values[index] != null ? values[index] : null);\n });\n }\n // after floating filter changes, this sets the 'value' section. this is implemented by the base class\n // (as that's where value is controlled), the 'type' part from the floating filter is dealt with in this class.\n setValueFromFloatingFilter(value) {\n this.forEachInput((element, index, position, _) => {\n this.setElementValue(element, index === 0 && position === 0 ? value : null, true);\n });\n }\n isDefaultOperator(operator) {\n return operator === this.defaultJoinOperator;\n }\n addChangedListeners(eType, position) {\n if (this.isReadOnly()) {\n return;\n }\n eType.onValueChange(this.listener);\n this.forEachPositionInput(position, (element) => {\n this.attachElementOnChange(element, this.listener);\n });\n }\n /** returns true if the row passes the said condition */\n individualConditionPasses(params, filterModel) {\n const cellValue = this.getCellValue(params.node);\n const values = this.mapValuesFromModel(filterModel);\n const customFilterOption = this.optionsFactory.getCustomOption(filterModel.type);\n const customFilterResult = this.evaluateCustomFilter(customFilterOption, values, cellValue);\n if (customFilterResult != null) {\n return customFilterResult;\n }\n if (cellValue == null) {\n return this.evaluateNullValue(filterModel.type);\n }\n return this.evaluateNonNullValue(values, cellValue, filterModel, params);\n }\n evaluateCustomFilter(customFilterOption, values, cellValue) {\n if (customFilterOption == null) {\n return;\n }\n const { predicate } = customFilterOption;\n // only execute the custom filter if a value exists or a value isn't required, i.e. input is hidden\n if (predicate != null && !values.some(v => v == null)) {\n return predicate(values, cellValue);\n }\n // No custom filter invocation, indicate that to the caller.\n return;\n }\n isBlank(cellValue) {\n return cellValue == null ||\n (typeof cellValue === 'string' && cellValue.trim().length === 0);\n }\n hasInvalidInputs() {\n return false;\n }\n}\nSimpleFilter.EMPTY = 'empty';\nSimpleFilter.BLANK = 'blank';\nSimpleFilter.NOT_BLANK = 'notBlank';\nSimpleFilter.EQUALS = 'equals';\nSimpleFilter.NOT_EQUAL = 'notEqual';\nSimpleFilter.LESS_THAN = 'lessThan';\nSimpleFilter.LESS_THAN_OR_EQUAL = 'lessThanOrEqual';\nSimpleFilter.GREATER_THAN = 'greaterThan';\nSimpleFilter.GREATER_THAN_OR_EQUAL = 'greaterThanOrEqual';\nSimpleFilter.IN_RANGE = 'inRange';\nSimpleFilter.CONTAINS = 'contains';\nSimpleFilter.NOT_CONTAINS = 'notContains';\nSimpleFilter.STARTS_WITH = 'startsWith';\nSimpleFilter.ENDS_WITH = 'endsWith';\n","import { SimpleFilter } from \"./simpleFilter.mjs\";\nexport class ScalarFilter extends SimpleFilter {\n setParams(params) {\n super.setParams(params);\n this.scalarFilterParams = params;\n }\n evaluateNullValue(filterType) {\n switch (filterType) {\n case ScalarFilter.EQUALS:\n case ScalarFilter.NOT_EQUAL:\n if (this.scalarFilterParams.includeBlanksInEquals) {\n return true;\n }\n break;\n case ScalarFilter.GREATER_THAN:\n case ScalarFilter.GREATER_THAN_OR_EQUAL:\n if (this.scalarFilterParams.includeBlanksInGreaterThan) {\n return true;\n }\n break;\n case ScalarFilter.LESS_THAN:\n case ScalarFilter.LESS_THAN_OR_EQUAL:\n if (this.scalarFilterParams.includeBlanksInLessThan) {\n return true;\n }\n break;\n case ScalarFilter.IN_RANGE:\n if (this.scalarFilterParams.includeBlanksInRange) {\n return true;\n }\n break;\n case ScalarFilter.BLANK:\n return true;\n case ScalarFilter.NOT_BLANK:\n return false;\n }\n return false;\n }\n evaluateNonNullValue(values, cellValue, filterModel) {\n const comparator = this.comparator();\n const compareResult = values[0] != null ? comparator(values[0], cellValue) : 0;\n switch (filterModel.type) {\n case ScalarFilter.EQUALS:\n return compareResult === 0;\n case ScalarFilter.NOT_EQUAL:\n return compareResult !== 0;\n case ScalarFilter.GREATER_THAN:\n return compareResult > 0;\n case ScalarFilter.GREATER_THAN_OR_EQUAL:\n return compareResult >= 0;\n case ScalarFilter.LESS_THAN:\n return compareResult < 0;\n case ScalarFilter.LESS_THAN_OR_EQUAL:\n return compareResult <= 0;\n case ScalarFilter.IN_RANGE: {\n const compareToResult = comparator(values[1], cellValue);\n return this.scalarFilterParams.inRangeInclusive ?\n compareResult >= 0 && compareToResult <= 0 :\n compareResult > 0 && compareToResult < 0;\n }\n case ScalarFilter.BLANK:\n return this.isBlank(cellValue);\n case ScalarFilter.NOT_BLANK:\n return !this.isBlank(cellValue);\n default:\n console.warn('AG Grid: Unexpected type of filter \"' + filterModel.type + '\", it looks like the filter was configured with incorrect Filter Options');\n return true;\n }\n }\n}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Autowired } from '../../../context/context.mjs';\nimport { DateCompWrapper } from './dateCompWrapper.mjs';\nimport { SimpleFilter, SimpleFilterModelFormatter } from '../simpleFilter.mjs';\nimport { ScalarFilter } from '../scalarFilter.mjs';\nimport { serialiseDate, parseDateTimeFromString, dateToFormattedString } from '../../../utils/date.mjs';\nconst DEFAULT_MIN_YEAR = 1000;\nconst DEFAULT_MAX_YEAR = Infinity;\nexport class DateFilterModelFormatter extends SimpleFilterModelFormatter {\n constructor(dateFilterParams, localeService, optionsFactory) {\n super(localeService, optionsFactory);\n this.dateFilterParams = dateFilterParams;\n }\n conditionToString(condition, options) {\n const { type } = condition;\n const { numberOfInputs } = options || {};\n const isRange = type == SimpleFilter.IN_RANGE || numberOfInputs === 2;\n const dateFrom = parseDateTimeFromString(condition.dateFrom);\n const dateTo = parseDateTimeFromString(condition.dateTo);\n const format = this.dateFilterParams.inRangeFloatingFilterDateFormat;\n if (isRange) {\n const formattedFrom = dateFrom !== null ? dateToFormattedString(dateFrom, format) : 'null';\n const formattedTo = dateTo !== null ? dateToFormattedString(dateTo, format) : 'null';\n return `${formattedFrom}-${formattedTo}`;\n }\n if (dateFrom != null) {\n return dateToFormattedString(dateFrom, format);\n }\n // cater for when the type doesn't need a value\n return `${type}`;\n }\n updateParams(params) {\n super.updateParams(params);\n this.dateFilterParams = params.dateFilterParams;\n }\n}\nexport class DateFilter extends ScalarFilter {\n constructor() {\n super('dateFilter');\n this.eConditionPanelsFrom = [];\n this.eConditionPanelsTo = [];\n this.dateConditionFromComps = [];\n this.dateConditionToComps = [];\n this.minValidYear = DEFAULT_MIN_YEAR;\n this.maxValidYear = DEFAULT_MAX_YEAR;\n this.minValidDate = null;\n this.maxValidDate = null;\n }\n afterGuiAttached(params) {\n super.afterGuiAttached(params);\n this.dateConditionFromComps[0].afterGuiAttached(params);\n }\n mapValuesFromModel(filterModel) {\n // unlike the other filters, we do two things here:\n // 1) allow for different attribute names (same as done for other filters) (eg the 'from' and 'to'\n // are in different locations in Date and Number filter models)\n // 2) convert the type (because Date filter uses Dates, however model is 'string')\n //\n // NOTE: The conversion of string to date also removes the timezone - i.e. when user picks\n // a date from the UI, it will have timezone info in it. This is lost when creating\n // the model. When we recreate the date again here, it's without a timezone.\n const { dateFrom, dateTo, type } = filterModel || {};\n return [\n dateFrom && parseDateTimeFromString(dateFrom) || null,\n dateTo && parseDateTimeFromString(dateTo) || null,\n ].slice(0, this.getNumberOfInputs(type));\n }\n comparator() {\n return this.dateFilterParams.comparator ? this.dateFilterParams.comparator : this.defaultComparator.bind(this);\n }\n defaultComparator(filterDate, cellValue) {\n // The default comparator assumes that the cellValue is a date\n const cellAsDate = cellValue;\n if (cellValue == null || cellAsDate < filterDate) {\n return -1;\n }\n if (cellAsDate > filterDate) {\n return 1;\n }\n return 0;\n }\n setParams(params) {\n this.dateFilterParams = params;\n super.setParams(params);\n const yearParser = (param, fallback) => {\n if (params[param] != null) {\n if (!isNaN(params[param])) {\n return params[param] == null ? fallback : Number(params[param]);\n }\n else {\n console.warn(`AG Grid: DateFilter ${param} is not a number`);\n }\n }\n return fallback;\n };\n this.minValidYear = yearParser('minValidYear', DEFAULT_MIN_YEAR);\n this.maxValidYear = yearParser('maxValidYear', DEFAULT_MAX_YEAR);\n if (this.minValidYear > this.maxValidYear) {\n console.warn(`AG Grid: DateFilter minValidYear should be <= maxValidYear`);\n }\n if (params.minValidDate) {\n this.minValidDate = params.minValidDate instanceof Date ? params.minValidDate : parseDateTimeFromString(params.minValidDate);\n }\n else {\n this.minValidDate = null;\n }\n if (params.maxValidDate) {\n this.maxValidDate = params.maxValidDate instanceof Date ? params.maxValidDate : parseDateTimeFromString(params.maxValidDate);\n }\n else {\n this.maxValidDate = null;\n }\n if (this.minValidDate && this.maxValidDate && this.minValidDate > this.maxValidDate) {\n console.warn(`AG Grid: DateFilter minValidDate should be <= maxValidDate`);\n }\n this.filterModelFormatter = new DateFilterModelFormatter(this.dateFilterParams, this.localeService, this.optionsFactory);\n }\n createDateCompWrapper(element) {\n const dateCompWrapper = new DateCompWrapper(this.getContext(), this.userComponentFactory, {\n onDateChanged: () => this.onUiChanged(),\n filterParams: this.dateFilterParams\n }, element);\n this.addDestroyFunc(() => dateCompWrapper.destroy());\n return dateCompWrapper;\n }\n setElementValue(element, value) {\n element.setDate(value);\n }\n setElementDisplayed(element, displayed) {\n element.setDisplayed(displayed);\n }\n setElementDisabled(element, disabled) {\n element.setDisabled(disabled);\n }\n getDefaultFilterOptions() {\n return DateFilter.DEFAULT_FILTER_OPTIONS;\n }\n createValueElement() {\n const eCondition = document.createElement('div');\n eCondition.classList.add('ag-filter-body');\n this.createFromToElement(eCondition, this.eConditionPanelsFrom, this.dateConditionFromComps, 'from');\n this.createFromToElement(eCondition, this.eConditionPanelsTo, this.dateConditionToComps, 'to');\n return eCondition;\n }\n createFromToElement(eCondition, eConditionPanels, dateConditionComps, fromTo) {\n const eConditionPanel = document.createElement('div');\n eConditionPanel.classList.add(`ag-filter-${fromTo}`);\n eConditionPanel.classList.add(`ag-filter-date-${fromTo}`);\n eConditionPanels.push(eConditionPanel);\n eCondition.appendChild(eConditionPanel);\n dateConditionComps.push(this.createDateCompWrapper(eConditionPanel));\n }\n removeValueElements(startPosition, deleteCount) {\n this.removeDateComps(this.dateConditionFromComps, startPosition, deleteCount);\n this.removeDateComps(this.dateConditionToComps, startPosition, deleteCount);\n this.removeItems(this.eConditionPanelsFrom, startPosition, deleteCount);\n this.removeItems(this.eConditionPanelsTo, startPosition, deleteCount);\n }\n removeDateComps(components, startPosition, deleteCount) {\n const removedComponents = this.removeItems(components, startPosition, deleteCount);\n removedComponents.forEach(comp => comp.destroy());\n }\n isValidDateValue(value) {\n if (value === null) {\n return false;\n }\n if (this.minValidDate) {\n if (value < this.minValidDate) {\n return false;\n }\n }\n else {\n if (value.getUTCFullYear() < this.minValidYear) {\n return false;\n }\n }\n if (this.maxValidDate) {\n if (value > this.maxValidDate) {\n return false;\n }\n }\n else {\n if (value.getUTCFullYear() > this.maxValidYear) {\n return false;\n }\n }\n return true;\n }\n ;\n isConditionUiComplete(position) {\n if (!super.isConditionUiComplete(position)) {\n return false;\n }\n let valid = true;\n this.forEachInput((element, index, elPosition, numberOfInputs) => {\n if (elPosition !== position || !valid || index >= numberOfInputs) {\n return;\n }\n valid = valid && this.isValidDateValue(element.getDate());\n });\n return valid;\n }\n areSimpleModelsEqual(aSimple, bSimple) {\n return aSimple.dateFrom === bSimple.dateFrom\n && aSimple.dateTo === bSimple.dateTo\n && aSimple.type === bSimple.type;\n }\n getFilterType() {\n return 'date';\n }\n createCondition(position) {\n const type = this.getConditionType(position);\n const model = {};\n const values = this.getValues(position);\n if (values.length > 0) {\n model.dateFrom = serialiseDate(values[0]);\n }\n if (values.length > 1) {\n model.dateTo = serialiseDate(values[1]);\n }\n return Object.assign({ dateFrom: null, dateTo: null, filterType: this.getFilterType(), type }, model);\n }\n resetPlaceholder() {\n const globalTranslate = this.localeService.getLocaleTextFunc();\n const placeholder = this.translate('dateFormatOoo');\n const ariaLabel = globalTranslate('ariaFilterValue', 'Filter Value');\n this.forEachInput((element) => {\n element.setInputPlaceholder(placeholder);\n element.setInputAriaLabel(ariaLabel);\n });\n }\n getInputs(position) {\n if (position >= this.dateConditionFromComps.length) {\n return [null, null];\n }\n return [this.dateConditionFromComps[position], this.dateConditionToComps[position]];\n }\n getValues(position) {\n const result = [];\n this.forEachPositionInput(position, (element, index, _elPosition, numberOfInputs) => {\n if (index < numberOfInputs) {\n result.push(element.getDate());\n }\n });\n return result;\n }\n translate(key) {\n if (key === ScalarFilter.LESS_THAN) {\n return super.translate('before');\n }\n if (key === ScalarFilter.GREATER_THAN) {\n return super.translate('after');\n }\n return super.translate(key);\n }\n getModelAsString(model) {\n var _a;\n return (_a = this.filterModelFormatter.getModelAsString(model)) !== null && _a !== void 0 ? _a : '';\n }\n}\nDateFilter.DEFAULT_FILTER_OPTIONS = [\n ScalarFilter.EQUALS,\n ScalarFilter.NOT_EQUAL,\n ScalarFilter.LESS_THAN,\n ScalarFilter.GREATER_THAN,\n ScalarFilter.IN_RANGE,\n ScalarFilter.BLANK,\n ScalarFilter.NOT_BLANK,\n];\n__decorate([\n Autowired('userComponentFactory')\n], DateFilter.prototype, \"userComponentFactory\", void 0);\n","import { Component } from '../../../widgets/component.mjs';\nimport { SimpleFilter } from '../../provided/simpleFilter.mjs';\nimport { OptionsFactory } from '../../provided/optionsFactory.mjs';\nexport class SimpleFloatingFilter extends Component {\n getDefaultDebounceMs() {\n return 0;\n }\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n destroy() {\n super.destroy();\n }\n isEventFromFloatingFilter(event) {\n return event && event.afterFloatingFilter;\n }\n isEventFromDataChange(event) {\n return event === null || event === void 0 ? void 0 : event.afterDataChange;\n }\n getLastType() {\n return this.lastType;\n }\n isReadOnly() {\n return this.readOnly;\n }\n setLastTypeFromModel(model) {\n // if no model provided by the parent filter use default\n if (!model) {\n this.lastType = this.optionsFactory.getDefaultOption();\n return;\n }\n const isCombined = model.operator;\n let condition;\n if (isCombined) {\n const combinedModel = model;\n condition = combinedModel.conditions[0];\n }\n else {\n condition = model;\n }\n this.lastType = condition.type;\n }\n canWeEditAfterModelFromParentFilter(model) {\n if (!model) {\n // if no model, then we can edit as long as the lastType is something we can edit, as this\n // is the type we will provide to the parent filter if the user decides to use the floating filter.\n return this.isTypeEditable(this.lastType);\n }\n // never allow editing if the filter is combined (ie has two parts)\n const isCombined = model.operator;\n if (isCombined) {\n return false;\n }\n const simpleModel = model;\n return this.isTypeEditable(simpleModel.type);\n }\n init(params) {\n this.setSimpleParams(params, false);\n }\n setSimpleParams(params, update = true) {\n this.optionsFactory = new OptionsFactory();\n this.optionsFactory.init(params.filterParams, this.getDefaultFilterOptions());\n // Initial call\n if (!update) {\n this.lastType = this.optionsFactory.getDefaultOption();\n }\n // readOnly is a property of ProvidedFilterParams - we need to find a better (type-safe)\n // way to support reading this in the future.\n this.readOnly = !!params.filterParams.readOnly;\n // we are editable if:\n // 1) there is a type (user has configured filter wrong if not type)\n // AND\n // 2) the default type is not 'inRange'\n const editable = this.isTypeEditable(this.optionsFactory.getDefaultOption());\n this.setEditable(editable);\n }\n onParamsUpdated(params) {\n this.refresh(params);\n }\n refresh(params) {\n this.setSimpleParams(params);\n }\n doesFilterHaveSingleInput(filterType) {\n const customFilterOption = this.optionsFactory.getCustomOption(filterType);\n const { numberOfInputs } = customFilterOption || {};\n return numberOfInputs == null || numberOfInputs == 1;\n }\n isTypeEditable(type) {\n const uneditableTypes = [\n SimpleFilter.IN_RANGE, SimpleFilter.EMPTY, SimpleFilter.BLANK, SimpleFilter.NOT_BLANK,\n ];\n return !!type &&\n !this.isReadOnly() &&\n this.doesFilterHaveSingleInput(type) &&\n uneditableTypes.indexOf(type) < 0;\n }\n}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { DateFilter, DateFilterModelFormatter } from './dateFilter.mjs';\nimport { Autowired } from '../../../context/context.mjs';\nimport { DateCompWrapper } from './dateCompWrapper.mjs';\nimport { RefSelector } from '../../../widgets/componentAnnotations.mjs';\nimport { SimpleFloatingFilter } from '../../floating/provided/simpleFloatingFilter.mjs';\nimport { ProvidedFilter } from '../providedFilter.mjs';\nimport { setDisplayed } from '../../../utils/dom.mjs';\nimport { parseDateTimeFromString, serialiseDate } from '../../../utils/date.mjs';\nimport { debounce } from '../../../utils/function.mjs';\nexport class DateFloatingFilter extends SimpleFloatingFilter {\n constructor() {\n super(/* html */ `\n
\n \n
\n
`);\n }\n getDefaultFilterOptions() {\n return DateFilter.DEFAULT_FILTER_OPTIONS;\n }\n init(params) {\n super.init(params);\n this.params = params;\n this.filterParams = params.filterParams;\n this.createDateComponent();\n this.filterModelFormatter = new DateFilterModelFormatter(this.filterParams, this.localeService, this.optionsFactory);\n const translate = this.localeService.getLocaleTextFunc();\n this.eReadOnlyText\n .setDisabled(true)\n .setInputAriaLabel(translate('ariaDateFilterInput', 'Date Filter Input'));\n }\n onParamsUpdated(params) {\n this.refresh(params);\n }\n refresh(params) {\n super.refresh(params);\n this.params = params;\n this.filterParams = params.filterParams;\n this.updateDateComponent();\n this.filterModelFormatter.updateParams({ optionsFactory: this.optionsFactory, dateFilterParams: this.filterParams });\n this.updateCompOnModelChange(params.currentParentModel());\n }\n updateCompOnModelChange(model) {\n // Update the read-only text field\n const allowEditing = !this.isReadOnly() && this.canWeEditAfterModelFromParentFilter(model);\n this.setEditable(allowEditing);\n if (allowEditing) {\n if (model) {\n const dateModel = model;\n this.dateComp.setDate(parseDateTimeFromString(dateModel.dateFrom));\n }\n else {\n this.dateComp.setDate(null);\n }\n this.eReadOnlyText.setValue('');\n }\n else {\n this.eReadOnlyText.setValue(this.filterModelFormatter.getModelAsString(model));\n this.dateComp.setDate(null);\n }\n }\n setEditable(editable) {\n setDisplayed(this.eDateWrapper, editable);\n setDisplayed(this.eReadOnlyText.getGui(), !editable);\n }\n onParentModelChanged(model, event) {\n // We don't want to update the floating filter if the floating filter caused the change,\n // because the UI is already in sync. if we didn't do this, the UI would behave strangely\n // as it would be updating as the user is typing.\n // This is similar for data changes, which don't affect provided date floating filters\n if (this.isEventFromFloatingFilter(event) || this.isEventFromDataChange(event)) {\n return;\n }\n super.setLastTypeFromModel(model);\n this.updateCompOnModelChange(model);\n }\n onDateChanged() {\n const filterValueDate = this.dateComp.getDate();\n const filterValueText = serialiseDate(filterValueDate);\n this.params.parentFilterInstance(filterInstance => {\n if (filterInstance) {\n const date = parseDateTimeFromString(filterValueText);\n filterInstance.onFloatingFilterChanged(this.getLastType() || null, date);\n }\n });\n }\n getDateComponentParams() {\n const debounceMs = ProvidedFilter.getDebounceMs(this.params.filterParams, this.getDefaultDebounceMs());\n return {\n onDateChanged: debounce(this.onDateChanged.bind(this), debounceMs),\n filterParams: this.params.column.getColDef().filterParams\n };\n }\n createDateComponent() {\n this.dateComp = new DateCompWrapper(this.getContext(), this.userComponentFactory, this.getDateComponentParams(), this.eDateWrapper);\n this.addDestroyFunc(() => this.dateComp.destroy());\n }\n updateDateComponent() {\n const params = this.gridOptionsService.addGridCommonParams(this.getDateComponentParams());\n this.dateComp.updateParams(params);\n }\n getFilterModelFormatter() {\n return this.filterModelFormatter;\n }\n}\n__decorate([\n Autowired('userComponentFactory')\n], DateFloatingFilter.prototype, \"userComponentFactory\", void 0);\n__decorate([\n RefSelector('eReadOnlyText')\n], DateFloatingFilter.prototype, \"eReadOnlyText\", void 0);\n__decorate([\n RefSelector('eDateWrapper')\n], DateFloatingFilter.prototype, \"eDateWrapper\", void 0);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component } from '../../../widgets/component.mjs';\nimport { RefSelector } from '../../../widgets/componentAnnotations.mjs';\nimport { serialiseDate, parseDateTimeFromString, dateToFormattedString } from '../../../utils/date.mjs';\nimport { getSafariVersion, isBrowserChrome, isBrowserFirefox, isBrowserSafari } from '../../../utils/browser.mjs';\nimport { warnOnce } from '../../../utils/function.mjs';\nexport class DefaultDateComponent extends Component {\n constructor() {\n super(/* html */ `\n
\n \n
`);\n }\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n destroy() {\n super.destroy();\n }\n init(params) {\n this.params = params;\n this.setParams(params);\n const eDocument = this.gridOptionsService.getDocument();\n const inputElement = this.eDateInput.getInputElement();\n // ensures that the input element is focussed when a clear button is clicked,\n // unless using safari as there is no clear button and focus does not work properly\n this.addManagedListener(inputElement, 'mousedown', () => {\n if (this.eDateInput.isDisabled() || this.usingSafariDatePicker) {\n return;\n }\n inputElement.focus();\n });\n this.addManagedListener(inputElement, 'input', e => {\n if (e.target !== eDocument.activeElement) {\n return;\n }\n if (this.eDateInput.isDisabled()) {\n return;\n }\n this.params.onDateChanged();\n });\n }\n setParams(params) {\n const inputElement = this.eDateInput.getInputElement();\n const shouldUseBrowserDatePicker = this.shouldUseBrowserDatePicker(params);\n this.usingSafariDatePicker = shouldUseBrowserDatePicker && isBrowserSafari();\n inputElement.type = shouldUseBrowserDatePicker ? 'date' : 'text';\n const { minValidYear, maxValidYear, minValidDate, maxValidDate, } = params.filterParams || {};\n if (minValidDate && minValidYear) {\n warnOnce('DateFilter should not have both minValidDate and minValidYear parameters set at the same time! minValidYear will be ignored.');\n }\n if (maxValidDate && maxValidYear) {\n warnOnce('DateFilter should not have both maxValidDate and maxValidYear parameters set at the same time! maxValidYear will be ignored.');\n }\n if (minValidDate && maxValidDate) {\n const [parsedMinValidDate, parsedMaxValidDate] = [minValidDate, maxValidDate]\n .map(v => v instanceof Date ? v : parseDateTimeFromString(v));\n if (parsedMinValidDate && parsedMaxValidDate && parsedMinValidDate.getTime() > parsedMaxValidDate.getTime()) {\n warnOnce('DateFilter parameter minValidDate should always be lower than or equal to parameter maxValidDate.');\n }\n }\n if (minValidDate) {\n if (minValidDate instanceof Date) {\n inputElement.min = dateToFormattedString(minValidDate);\n }\n else {\n inputElement.min = minValidDate;\n }\n }\n else {\n if (minValidYear) {\n inputElement.min = `${minValidYear}-01-01`;\n }\n }\n if (maxValidDate) {\n if (maxValidDate instanceof Date) {\n inputElement.max = dateToFormattedString(maxValidDate);\n }\n else {\n inputElement.max = maxValidDate;\n }\n }\n else {\n if (maxValidYear) {\n inputElement.max = `${maxValidYear}-12-31`;\n }\n }\n }\n onParamsUpdated(params) {\n this.refresh(params);\n }\n refresh(params) {\n this.params = params;\n this.setParams(params);\n }\n getDate() {\n return parseDateTimeFromString(this.eDateInput.getValue());\n }\n setDate(date) {\n this.eDateInput.setValue(serialiseDate(date, false));\n }\n setInputPlaceholder(placeholder) {\n this.eDateInput.setInputPlaceholder(placeholder);\n }\n setDisabled(disabled) {\n this.eDateInput.setDisabled(disabled);\n }\n afterGuiAttached(params) {\n if (!params || !params.suppressFocus) {\n this.eDateInput.getInputElement().focus();\n }\n }\n shouldUseBrowserDatePicker(params) {\n if (params.filterParams && params.filterParams.browserDatePicker != null) {\n return params.filterParams.browserDatePicker;\n }\n return isBrowserChrome() || isBrowserFirefox() || (isBrowserSafari() && getSafariVersion() >= 14.1);\n }\n}\n__decorate([\n RefSelector('eDateInput')\n], DefaultDateComponent.prototype, \"eDateInput\", void 0);\n","import { AgAbstractInputField } from './agAbstractInputField.mjs';\nimport { exists } from '../utils/generic.mjs';\nimport { isEventFromPrintableCharacter } from '../utils/keyboard.mjs';\nexport class AgInputTextField extends AgAbstractInputField {\n constructor(config, className = 'ag-text-field', inputType = 'text') {\n super(config, className, inputType);\n }\n postConstruct() {\n super.postConstruct();\n if (this.config.allowedCharPattern) {\n this.preventDisallowedCharacters();\n }\n }\n setValue(value, silent) {\n // update the input before we call super.setValue, so it's updated before the value changed event is fired\n if (this.eInput.value !== value) {\n this.eInput.value = exists(value) ? value : '';\n }\n return super.setValue(value, silent);\n }\n /** Used to set an initial value into the input without necessarily setting `this.value` or triggering events (e.g. to set an invalid value) */\n setStartValue(value) {\n this.setValue(value, true);\n }\n preventDisallowedCharacters() {\n const pattern = new RegExp(`[${this.config.allowedCharPattern}]`);\n const preventCharacters = (event) => {\n if (!isEventFromPrintableCharacter(event)) {\n return;\n }\n if (event.key && !pattern.test(event.key)) {\n event.preventDefault();\n }\n };\n this.addManagedListener(this.eInput, 'keydown', preventCharacters);\n this.addManagedListener(this.eInput, 'paste', (e) => {\n var _a;\n const text = (_a = e.clipboardData) === null || _a === void 0 ? void 0 : _a.getData('text');\n if (text && text.split('').some((c) => !pattern.test(c))) {\n e.preventDefault();\n }\n });\n }\n}\n","import { AgInputTextField } from \"./agInputTextField.mjs\";\nimport { addOrRemoveAttribute } from '../utils/dom.mjs';\nimport { exists } from \"../utils/generic.mjs\";\nexport class AgInputNumberField extends AgInputTextField {\n constructor(config) {\n super(config, 'ag-number-field', 'number');\n }\n postConstruct() {\n super.postConstruct();\n this.addManagedListener(this.eInput, 'blur', () => {\n const floatedValue = parseFloat(this.eInput.value);\n const value = isNaN(floatedValue) ? '' : this.normalizeValue(floatedValue.toString());\n if (this.value !== value) {\n this.setValue(value);\n }\n });\n this.addManagedListener(this.eInput, 'wheel', this.onWheel.bind(this));\n this.eInput.step = 'any';\n }\n onWheel(e) {\n // Prevent default scroll events from incrementing / decrementing the input, since its inconsistent between browsers\n if (document.activeElement === this.eInput) {\n e.preventDefault();\n }\n }\n normalizeValue(value) {\n if (value === '') {\n return '';\n }\n if (this.precision != null) {\n value = this.adjustPrecision(value);\n }\n const val = parseFloat(value);\n if (this.min != null && val < this.min) {\n value = this.min.toString();\n }\n else if (this.max != null && val > this.max) {\n value = this.max.toString();\n }\n return value;\n }\n adjustPrecision(value, isScientificNotation) {\n if (this.precision == null) {\n return value;\n }\n if (isScientificNotation) {\n const floatString = parseFloat(value).toFixed(this.precision);\n return parseFloat(floatString).toString();\n }\n // can't use toFixed here because we don't want to round up\n const parts = String(value).split('.');\n if (parts.length > 1) {\n if (parts[1].length <= this.precision) {\n return value;\n }\n else if (this.precision > 0) {\n return `${parts[0]}.${parts[1].slice(0, this.precision)}`;\n }\n }\n return parts[0];\n }\n setMin(min) {\n if (this.min === min) {\n return this;\n }\n this.min = min;\n addOrRemoveAttribute(this.eInput, 'min', min);\n return this;\n }\n setMax(max) {\n if (this.max === max) {\n return this;\n }\n this.max = max;\n addOrRemoveAttribute(this.eInput, 'max', max);\n return this;\n }\n setPrecision(precision) {\n this.precision = precision;\n return this;\n }\n setStep(step) {\n if (this.step === step) {\n return this;\n }\n this.step = step;\n addOrRemoveAttribute(this.eInput, 'step', step);\n return this;\n }\n setValue(value, silent) {\n return this.setValueOrInputValue(v => super.setValue(v, silent), () => this, value);\n }\n setStartValue(value) {\n return this.setValueOrInputValue(v => super.setValue(v, true), v => { this.eInput.value = v; }, value);\n }\n setValueOrInputValue(setValueFunc, setInputValueOnlyFunc, value) {\n if (exists(value)) {\n // need to maintain the scientific notation format whilst typing (e.g. 1e10)\n let setInputValueOnly = this.isScientificNotation(value);\n if (setInputValueOnly && this.eInput.validity.valid) {\n return setValueFunc(value);\n }\n if (!setInputValueOnly) {\n value = this.adjustPrecision(value);\n const normalizedValue = this.normalizeValue(value);\n // outside of valid range\n setInputValueOnly = value != normalizedValue;\n }\n if (setInputValueOnly) {\n return setInputValueOnlyFunc(value);\n }\n }\n return setValueFunc(value);\n }\n getValue() {\n if (!this.eInput.validity.valid) {\n return undefined;\n }\n const inputValue = this.eInput.value;\n if (this.isScientificNotation(inputValue)) {\n return this.adjustPrecision(inputValue, true);\n }\n return super.getValue();\n }\n isScientificNotation(value) {\n return typeof value === 'string' && value.includes('e');\n }\n}\n","import { SimpleFilter, SimpleFilterModelFormatter } from '../simpleFilter.mjs';\nimport { ScalarFilter } from '../scalarFilter.mjs';\nimport { makeNull } from '../../../utils/generic.mjs';\nimport { AgInputTextField } from '../../../widgets/agInputTextField.mjs';\nimport { setAriaRole } from '../../../utils/aria.mjs';\nimport { AgInputNumberField } from '../../../widgets/agInputNumberField.mjs';\nexport class NumberFilterModelFormatter extends SimpleFilterModelFormatter {\n conditionToString(condition, options) {\n const { numberOfInputs } = options || {};\n const isRange = condition.type == SimpleFilter.IN_RANGE || numberOfInputs === 2;\n if (isRange) {\n return `${this.formatValue(condition.filter)}-${this.formatValue(condition.filterTo)}`;\n }\n // cater for when the type doesn't need a value\n if (condition.filter != null) {\n return this.formatValue(condition.filter);\n }\n return `${condition.type}`;\n }\n}\nexport function getAllowedCharPattern(filterParams) {\n const { allowedCharPattern } = filterParams !== null && filterParams !== void 0 ? filterParams : {};\n return allowedCharPattern !== null && allowedCharPattern !== void 0 ? allowedCharPattern : null;\n}\nexport class NumberFilter extends ScalarFilter {\n constructor() {\n super('numberFilter');\n this.eValuesFrom = [];\n this.eValuesTo = [];\n }\n refresh(params) {\n if (this.numberFilterParams.allowedCharPattern !== params.allowedCharPattern) {\n return false;\n }\n return super.refresh(params);\n }\n mapValuesFromModel(filterModel) {\n const { filter, filterTo, type } = filterModel || {};\n return [\n this.processValue(filter),\n this.processValue(filterTo),\n ].slice(0, this.getNumberOfInputs(type));\n }\n getDefaultDebounceMs() {\n return 500;\n }\n comparator() {\n return (left, right) => {\n if (left === right) {\n return 0;\n }\n return left < right ? 1 : -1;\n };\n }\n setParams(params) {\n this.numberFilterParams = params;\n super.setParams(params);\n this.filterModelFormatter = new NumberFilterModelFormatter(this.localeService, this.optionsFactory, this.numberFilterParams.numberFormatter);\n }\n getDefaultFilterOptions() {\n return NumberFilter.DEFAULT_FILTER_OPTIONS;\n }\n setElementValue(element, value, fromFloatingFilter) {\n // values from floating filter are directly from the input, not from the model\n const valueToSet = !fromFloatingFilter && this.numberFilterParams.numberFormatter\n ? this.numberFilterParams.numberFormatter(value !== null && value !== void 0 ? value : null)\n : value;\n super.setElementValue(element, valueToSet);\n }\n createValueElement() {\n const allowedCharPattern = getAllowedCharPattern(this.numberFilterParams);\n const eCondition = document.createElement('div');\n eCondition.classList.add('ag-filter-body');\n setAriaRole(eCondition, 'presentation');\n this.createFromToElement(eCondition, this.eValuesFrom, 'from', allowedCharPattern);\n this.createFromToElement(eCondition, this.eValuesTo, 'to', allowedCharPattern);\n return eCondition;\n }\n createFromToElement(eCondition, eValues, fromTo, allowedCharPattern) {\n const eValue = this.createManagedBean(allowedCharPattern ? new AgInputTextField({ allowedCharPattern }) : new AgInputNumberField());\n eValue.addCssClass(`ag-filter-${fromTo}`);\n eValue.addCssClass('ag-filter-filter');\n eValues.push(eValue);\n eCondition.appendChild(eValue.getGui());\n }\n removeValueElements(startPosition, deleteCount) {\n this.removeComponents(this.eValuesFrom, startPosition, deleteCount);\n this.removeComponents(this.eValuesTo, startPosition, deleteCount);\n }\n getValues(position) {\n const result = [];\n this.forEachPositionInput(position, (element, index, _elPosition, numberOfInputs) => {\n if (index < numberOfInputs) {\n result.push(this.processValue(this.stringToFloat(element.getValue())));\n }\n });\n return result;\n }\n areSimpleModelsEqual(aSimple, bSimple) {\n return aSimple.filter === bSimple.filter\n && aSimple.filterTo === bSimple.filterTo\n && aSimple.type === bSimple.type;\n }\n getFilterType() {\n return 'number';\n }\n processValue(value) {\n if (value == null) {\n return null;\n }\n return isNaN(value) ? null : value;\n }\n stringToFloat(value) {\n if (typeof value === 'number') {\n return value;\n }\n let filterText = makeNull(value);\n if (filterText != null && filterText.trim() === '') {\n filterText = null;\n }\n if (this.numberFilterParams.numberParser) {\n return this.numberFilterParams.numberParser(filterText);\n }\n return filterText == null || filterText.trim() === '-' ? null : parseFloat(filterText);\n }\n createCondition(position) {\n const type = this.getConditionType(position);\n const model = {\n filterType: this.getFilterType(),\n type\n };\n const values = this.getValues(position);\n if (values.length > 0) {\n model.filter = values[0];\n }\n if (values.length > 1) {\n model.filterTo = values[1];\n }\n return model;\n }\n getInputs(position) {\n if (position >= this.eValuesFrom.length) {\n return [null, null];\n }\n return [this.eValuesFrom[position], this.eValuesTo[position]];\n }\n getModelAsString(model) {\n var _a;\n return (_a = this.filterModelFormatter.getModelAsString(model)) !== null && _a !== void 0 ? _a : '';\n }\n hasInvalidInputs() {\n let invalidInputs = false;\n this.forEachInput(element => {\n if (!element.getInputElement().validity.valid) {\n invalidInputs = true;\n return;\n }\n });\n return invalidInputs;\n }\n}\nNumberFilter.DEFAULT_FILTER_OPTIONS = [\n ScalarFilter.EQUALS,\n ScalarFilter.NOT_EQUAL,\n ScalarFilter.GREATER_THAN,\n ScalarFilter.GREATER_THAN_OR_EQUAL,\n ScalarFilter.LESS_THAN,\n ScalarFilter.LESS_THAN_OR_EQUAL,\n ScalarFilter.IN_RANGE,\n ScalarFilter.BLANK,\n ScalarFilter.NOT_BLANK,\n];\n","import { SimpleFilter, SimpleFilterModelFormatter, } from '../simpleFilter.mjs';\nimport { AgInputTextField } from '../../../widgets/agInputTextField.mjs';\nimport { makeNull } from '../../../utils/generic.mjs';\nimport { _ } from '../../../utils/index.mjs';\nimport { setAriaRole } from '../../../utils/aria.mjs';\nexport class TextFilterModelFormatter extends SimpleFilterModelFormatter {\n conditionToString(condition, options) {\n const { numberOfInputs } = options || {};\n const isRange = condition.type == SimpleFilter.IN_RANGE || numberOfInputs === 2;\n if (isRange) {\n return `${condition.filter}-${condition.filterTo}`;\n }\n // cater for when the type doesn't need a value\n if (condition.filter != null) {\n return `${condition.filter}`;\n }\n return `${condition.type}`;\n }\n}\nexport class TextFilter extends SimpleFilter {\n constructor() {\n super('textFilter');\n this.eValuesFrom = [];\n this.eValuesTo = [];\n }\n static trimInput(value) {\n const trimmedInput = value && value.trim();\n // trim the input, unless it is all whitespace (this is consistent with Excel behaviour)\n return trimmedInput === '' ? value : trimmedInput;\n }\n getDefaultDebounceMs() {\n return 500;\n }\n setParams(params) {\n this.textFilterParams = params;\n super.setParams(params);\n this.matcher = this.getTextMatcher();\n this.formatter = this.textFilterParams.textFormatter ||\n (this.textFilterParams.caseSensitive ? TextFilter.DEFAULT_FORMATTER : TextFilter.DEFAULT_LOWERCASE_FORMATTER);\n this.filterModelFormatter = new TextFilterModelFormatter(this.localeService, this.optionsFactory);\n }\n getTextMatcher() {\n const legacyComparator = this.textFilterParams.textCustomComparator;\n if (legacyComparator) {\n _.warnOnce('textCustomComparator is deprecated, use textMatcher instead.');\n return ({ filterOption, value, filterText }) => legacyComparator(filterOption, value, filterText);\n }\n return this.textFilterParams.textMatcher || TextFilter.DEFAULT_MATCHER;\n }\n createCondition(position) {\n const type = this.getConditionType(position);\n const model = {\n filterType: this.getFilterType(),\n type,\n };\n const values = this.getValuesWithSideEffects(position, true);\n if (values.length > 0) {\n model.filter = values[0];\n }\n if (values.length > 1) {\n model.filterTo = values[1];\n }\n return model;\n }\n getFilterType() {\n return 'text';\n }\n areSimpleModelsEqual(aSimple, bSimple) {\n return aSimple.filter === bSimple.filter &&\n aSimple.filterTo === bSimple.filterTo &&\n aSimple.type === bSimple.type;\n }\n getInputs(position) {\n if (position >= this.eValuesFrom.length) {\n return [null, null];\n }\n return [this.eValuesFrom[position], this.eValuesTo[position]];\n }\n getValues(position) {\n return this.getValuesWithSideEffects(position, false);\n }\n getValuesWithSideEffects(position, applySideEffects) {\n const result = [];\n this.forEachPositionInput(position, (element, index, _elPosition, numberOfInputs) => {\n var _a;\n if (index < numberOfInputs) {\n let value = makeNull(element.getValue());\n if (applySideEffects && this.textFilterParams.trimInput) {\n value = (_a = TextFilter.trimInput(value)) !== null && _a !== void 0 ? _a : null;\n element.setValue(value, true); // ensure clean value is visible\n }\n result.push(value);\n }\n });\n return result;\n }\n getDefaultFilterOptions() {\n return TextFilter.DEFAULT_FILTER_OPTIONS;\n }\n createValueElement() {\n const eCondition = document.createElement('div');\n eCondition.classList.add('ag-filter-body');\n setAriaRole(eCondition, 'presentation');\n this.createFromToElement(eCondition, this.eValuesFrom, 'from');\n this.createFromToElement(eCondition, this.eValuesTo, 'to');\n return eCondition;\n }\n createFromToElement(eCondition, eValues, fromTo) {\n const eValue = this.createManagedBean(new AgInputTextField());\n eValue.addCssClass(`ag-filter-${fromTo}`);\n eValue.addCssClass('ag-filter-filter');\n eValues.push(eValue);\n eCondition.appendChild(eValue.getGui());\n }\n removeValueElements(startPosition, deleteCount) {\n this.removeComponents(this.eValuesFrom, startPosition, deleteCount);\n this.removeComponents(this.eValuesTo, startPosition, deleteCount);\n }\n mapValuesFromModel(filterModel) {\n const { filter, filterTo, type } = filterModel || {};\n return [\n filter || null,\n filterTo || null,\n ].slice(0, this.getNumberOfInputs(type));\n }\n evaluateNullValue(filterType) {\n const filterTypesAllowNulls = [\n SimpleFilter.NOT_EQUAL, SimpleFilter.NOT_CONTAINS, SimpleFilter.BLANK,\n ];\n return filterType ? filterTypesAllowNulls.indexOf(filterType) >= 0 : false;\n }\n evaluateNonNullValue(values, cellValue, filterModel, params) {\n const formattedValues = values.map(v => this.formatter(v)) || [];\n const cellValueFormatted = this.formatter(cellValue);\n const { api, colDef, column, columnApi, context, textFormatter } = this.textFilterParams;\n if (filterModel.type === SimpleFilter.BLANK) {\n return this.isBlank(cellValue);\n }\n else if (filterModel.type === SimpleFilter.NOT_BLANK) {\n return !this.isBlank(cellValue);\n }\n const matcherParams = {\n api,\n colDef,\n column,\n columnApi,\n context,\n node: params.node,\n data: params.data,\n filterOption: filterModel.type,\n value: cellValueFormatted,\n textFormatter,\n };\n return formattedValues.some(v => this.matcher(Object.assign(Object.assign({}, matcherParams), { filterText: v })));\n }\n getModelAsString(model) {\n var _a;\n return (_a = this.filterModelFormatter.getModelAsString(model)) !== null && _a !== void 0 ? _a : '';\n }\n}\nTextFilter.DEFAULT_FILTER_OPTIONS = [\n SimpleFilter.CONTAINS,\n SimpleFilter.NOT_CONTAINS,\n SimpleFilter.EQUALS,\n SimpleFilter.NOT_EQUAL,\n SimpleFilter.STARTS_WITH,\n SimpleFilter.ENDS_WITH,\n SimpleFilter.BLANK,\n SimpleFilter.NOT_BLANK,\n];\nTextFilter.DEFAULT_FORMATTER = (from) => from;\nTextFilter.DEFAULT_LOWERCASE_FORMATTER = (from) => from == null ? null : from.toString().toLowerCase();\nTextFilter.DEFAULT_MATCHER = ({ filterOption, value, filterText }) => {\n if (filterText == null) {\n return false;\n }\n switch (filterOption) {\n case TextFilter.CONTAINS:\n return value.indexOf(filterText) >= 0;\n case TextFilter.NOT_CONTAINS:\n return value.indexOf(filterText) < 0;\n case TextFilter.EQUALS:\n return value === filterText;\n case TextFilter.NOT_EQUAL:\n return value != filterText;\n case TextFilter.STARTS_WITH:\n return value.indexOf(filterText) === 0;\n case TextFilter.ENDS_WITH:\n const index = value.lastIndexOf(filterText);\n return index >= 0 && index === (value.length - filterText.length);\n default:\n return false;\n }\n};\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { RefSelector } from '../../../widgets/componentAnnotations.mjs';\nimport { debounce } from '../../../utils/function.mjs';\nimport { ProvidedFilter } from '../../provided/providedFilter.mjs';\nimport { PostConstruct, Autowired } from '../../../context/context.mjs';\nimport { SimpleFloatingFilter } from './simpleFloatingFilter.mjs';\nimport { AgInputTextField } from '../../../widgets/agInputTextField.mjs';\nimport { KeyCode } from '../../../constants/keyCode.mjs';\nimport { TextFilter } from '../../provided/text/textFilter.mjs';\nimport { BeanStub } from '../../../context/beanStub.mjs';\nimport { clearElement } from '../../../utils/dom.mjs';\nexport class FloatingFilterTextInputService extends BeanStub {\n constructor(params) {\n super();\n this.params = params;\n this.valueChangedListener = () => { };\n }\n setupGui(parentElement) {\n var _a;\n this.eFloatingFilterTextInput = this.createManagedBean(new AgInputTextField((_a = this.params) === null || _a === void 0 ? void 0 : _a.config));\n const eInput = this.eFloatingFilterTextInput.getGui();\n parentElement.appendChild(eInput);\n this.addManagedListener(eInput, 'input', (e) => this.valueChangedListener(e));\n this.addManagedListener(eInput, 'keydown', (e) => this.valueChangedListener(e));\n }\n setEditable(editable) {\n this.eFloatingFilterTextInput.setDisabled(!editable);\n }\n setAutoComplete(autoComplete) {\n this.eFloatingFilterTextInput.setAutoComplete(autoComplete);\n }\n getValue() {\n return this.eFloatingFilterTextInput.getValue();\n }\n setValue(value, silent) {\n this.eFloatingFilterTextInput.setValue(value, silent);\n }\n setValueChangedListener(listener) {\n this.valueChangedListener = listener;\n }\n setParams(params) {\n this.setAriaLabel(params.ariaLabel);\n if (params.autoComplete !== undefined) {\n this.setAutoComplete(params.autoComplete);\n }\n }\n setAriaLabel(ariaLabel) {\n this.eFloatingFilterTextInput.setInputAriaLabel(ariaLabel);\n }\n}\n;\nexport class TextInputFloatingFilter extends SimpleFloatingFilter {\n postConstruct() {\n this.setTemplate(/* html */ `\n
\n `);\n }\n getDefaultDebounceMs() {\n return 500;\n }\n onParentModelChanged(model, event) {\n if (this.isEventFromFloatingFilter(event) || this.isEventFromDataChange(event)) {\n // if the floating filter triggered the change, it is already in sync.\n // Data changes also do not affect provided text floating filters\n return;\n }\n this.setLastTypeFromModel(model);\n this.setEditable(this.canWeEditAfterModelFromParentFilter(model));\n this.floatingFilterInputService.setValue(this.getFilterModelFormatter().getModelAsString(model));\n }\n init(params) {\n this.setupFloatingFilterInputService(params);\n super.init(params);\n this.setTextInputParams(params);\n }\n setupFloatingFilterInputService(params) {\n this.floatingFilterInputService = this.createFloatingFilterInputService(params);\n this.floatingFilterInputService.setupGui(this.eFloatingFilterInputContainer);\n }\n setTextInputParams(params) {\n var _a;\n this.params = params;\n const autoComplete = (_a = params.browserAutoComplete) !== null && _a !== void 0 ? _a : false;\n this.floatingFilterInputService.setParams({\n ariaLabel: this.getAriaLabel(params),\n autoComplete,\n });\n this.applyActive = ProvidedFilter.isUseApplyButton(this.params.filterParams);\n if (!this.isReadOnly()) {\n const debounceMs = ProvidedFilter.getDebounceMs(this.params.filterParams, this.getDefaultDebounceMs());\n const toDebounce = debounce(this.syncUpWithParentFilter.bind(this), debounceMs);\n this.floatingFilterInputService.setValueChangedListener(toDebounce);\n }\n }\n onParamsUpdated(params) {\n this.refresh(params);\n }\n refresh(params) {\n super.refresh(params);\n this.setTextInputParams(params);\n }\n recreateFloatingFilterInputService(params) {\n const value = this.floatingFilterInputService.getValue();\n clearElement(this.eFloatingFilterInputContainer);\n this.destroyBean(this.floatingFilterInputService);\n this.setupFloatingFilterInputService(params);\n this.floatingFilterInputService.setValue(value, true);\n }\n getAriaLabel(params) {\n const displayName = this.columnModel.getDisplayNameForColumn(params.column, 'header', true);\n const translate = this.localeService.getLocaleTextFunc();\n return `${displayName} ${translate('ariaFilterInput', 'Filter Input')}`;\n }\n syncUpWithParentFilter(e) {\n const isEnterKey = e.key === KeyCode.ENTER;\n if (this.applyActive && !isEnterKey) {\n return;\n }\n let value = this.floatingFilterInputService.getValue();\n if (this.params.filterParams.trimInput) {\n value = TextFilter.trimInput(value);\n this.floatingFilterInputService.setValue(value, true); // ensure visible value is trimmed\n }\n this.params.parentFilterInstance(filterInstance => {\n if (filterInstance) {\n // NumberFilter is typed as number, but actually receives string values\n filterInstance.onFloatingFilterChanged(this.getLastType() || null, value || null);\n }\n });\n }\n setEditable(editable) {\n this.floatingFilterInputService.setEditable(editable);\n }\n}\n__decorate([\n Autowired('columnModel')\n], TextInputFloatingFilter.prototype, \"columnModel\", void 0);\n__decorate([\n RefSelector('eFloatingFilterInputContainer')\n], TextInputFloatingFilter.prototype, \"eFloatingFilterInputContainer\", void 0);\n__decorate([\n PostConstruct\n], TextInputFloatingFilter.prototype, \"postConstruct\", null);\n","import { getAllowedCharPattern, NumberFilter, NumberFilterModelFormatter } from './numberFilter.mjs';\nimport { FloatingFilterTextInputService, TextInputFloatingFilter } from '../../floating/provided/textInputFloatingFilter.mjs';\nimport { AgInputNumberField } from '../../../widgets/agInputNumberField.mjs';\nimport { AgInputTextField } from '../../../widgets/agInputTextField.mjs';\nimport { BeanStub } from '../../../context/beanStub.mjs';\nclass FloatingFilterNumberInputService extends BeanStub {\n constructor() {\n super(...arguments);\n this.valueChangedListener = () => { };\n this.numberInputActive = true;\n }\n setupGui(parentElement) {\n this.eFloatingFilterNumberInput = this.createManagedBean(new AgInputNumberField());\n this.eFloatingFilterTextInput = this.createManagedBean(new AgInputTextField());\n this.eFloatingFilterTextInput.setDisabled(true);\n const eNumberInput = this.eFloatingFilterNumberInput.getGui();\n const eTextInput = this.eFloatingFilterTextInput.getGui();\n parentElement.appendChild(eNumberInput);\n parentElement.appendChild(eTextInput);\n this.setupListeners(eNumberInput, (e) => this.valueChangedListener(e));\n this.setupListeners(eTextInput, (e) => this.valueChangedListener(e));\n }\n setEditable(editable) {\n this.numberInputActive = editable;\n this.eFloatingFilterNumberInput.setDisplayed(this.numberInputActive);\n this.eFloatingFilterTextInput.setDisplayed(!this.numberInputActive);\n }\n setAutoComplete(autoComplete) {\n this.eFloatingFilterNumberInput.setAutoComplete(autoComplete);\n this.eFloatingFilterTextInput.setAutoComplete(autoComplete);\n }\n getValue() {\n return this.getActiveInputElement().getValue();\n }\n setValue(value, silent) {\n this.getActiveInputElement().setValue(value, silent);\n }\n getActiveInputElement() {\n return this.numberInputActive ? this.eFloatingFilterNumberInput : this.eFloatingFilterTextInput;\n }\n setValueChangedListener(listener) {\n this.valueChangedListener = listener;\n }\n setupListeners(element, listener) {\n this.addManagedListener(element, 'input', listener);\n this.addManagedListener(element, 'keydown', listener);\n }\n setParams(params) {\n this.setAriaLabel(params.ariaLabel);\n if (params.autoComplete !== undefined) {\n this.setAutoComplete(params.autoComplete);\n }\n }\n setAriaLabel(ariaLabel) {\n this.eFloatingFilterNumberInput.setInputAriaLabel(ariaLabel);\n this.eFloatingFilterTextInput.setInputAriaLabel(ariaLabel);\n }\n}\nexport class NumberFloatingFilter extends TextInputFloatingFilter {\n init(params) {\n var _a;\n super.init(params);\n this.filterModelFormatter = new NumberFilterModelFormatter(this.localeService, this.optionsFactory, (_a = params.filterParams) === null || _a === void 0 ? void 0 : _a.numberFormatter);\n }\n onParamsUpdated(params) {\n this.refresh(params);\n }\n refresh(params) {\n const allowedCharPattern = getAllowedCharPattern(params.filterParams);\n if (allowedCharPattern !== this.allowedCharPattern) {\n this.recreateFloatingFilterInputService(params);\n }\n super.refresh(params);\n this.filterModelFormatter.updateParams({ optionsFactory: this.optionsFactory });\n }\n getDefaultFilterOptions() {\n return NumberFilter.DEFAULT_FILTER_OPTIONS;\n }\n getFilterModelFormatter() {\n return this.filterModelFormatter;\n }\n createFloatingFilterInputService(params) {\n this.allowedCharPattern = getAllowedCharPattern(params.filterParams);\n if (this.allowedCharPattern) {\n // need to use text input\n return this.createManagedBean(new FloatingFilterTextInputService({\n config: { allowedCharPattern: this.allowedCharPattern },\n }));\n }\n return this.createManagedBean(new FloatingFilterNumberInputService());\n }\n}\n","import { TextFilter, TextFilterModelFormatter } from './textFilter.mjs';\nimport { FloatingFilterTextInputService, TextInputFloatingFilter } from '../../floating/provided/textInputFloatingFilter.mjs';\nexport class TextFloatingFilter extends TextInputFloatingFilter {\n init(params) {\n super.init(params);\n this.filterModelFormatter = new TextFilterModelFormatter(this.localeService, this.optionsFactory);\n }\n onParamsUpdated(params) {\n this.refresh(params);\n }\n refresh(params) {\n super.refresh(params);\n this.filterModelFormatter.updateParams({ optionsFactory: this.optionsFactory });\n }\n getDefaultFilterOptions() {\n return TextFilter.DEFAULT_FILTER_OPTIONS;\n }\n getFilterModelFormatter() {\n return this.filterModelFormatter;\n }\n createFloatingFilterInputService() {\n return this.createManagedBean(new FloatingFilterTextInputService());\n }\n}\n","import { EventService } from \"../eventService.mjs\";\nimport { areEventsNear } from \"../utils/mouse.mjs\";\nexport class TouchListener {\n constructor(eElement, preventMouseClick = false) {\n this.destroyFuncs = [];\n this.touching = false;\n this.eventService = new EventService();\n this.eElement = eElement;\n this.preventMouseClick = preventMouseClick;\n const startListener = this.onTouchStart.bind(this);\n const moveListener = this.onTouchMove.bind(this);\n const endListener = this.onTouchEnd.bind(this);\n this.eElement.addEventListener(\"touchstart\", startListener, { passive: true });\n this.eElement.addEventListener(\"touchmove\", moveListener, { passive: true });\n // we set passive=false, as we want to prevent default on this event\n this.eElement.addEventListener(\"touchend\", endListener, { passive: false });\n this.destroyFuncs.push(() => {\n this.eElement.removeEventListener(\"touchstart\", startListener, { passive: true });\n this.eElement.removeEventListener(\"touchmove\", moveListener, { passive: true });\n this.eElement.removeEventListener(\"touchend\", endListener, { passive: false });\n });\n }\n getActiveTouch(touchList) {\n for (let i = 0; i < touchList.length; i++) {\n const matches = touchList[i].identifier === this.touchStart.identifier;\n if (matches) {\n return touchList[i];\n }\n }\n return null;\n }\n addEventListener(eventType, listener) {\n this.eventService.addEventListener(eventType, listener);\n }\n removeEventListener(eventType, listener) {\n this.eventService.removeEventListener(eventType, listener);\n }\n onTouchStart(touchEvent) {\n // only looking at one touch point at any time\n if (this.touching) {\n return;\n }\n this.touchStart = touchEvent.touches[0];\n this.touching = true;\n this.moved = false;\n const touchStartCopy = this.touchStart;\n window.setTimeout(() => {\n const touchesMatch = this.touchStart === touchStartCopy;\n if (this.touching && touchesMatch && !this.moved) {\n this.moved = true;\n const event = {\n type: TouchListener.EVENT_LONG_TAP,\n touchStart: this.touchStart,\n touchEvent: touchEvent\n };\n this.eventService.dispatchEvent(event);\n }\n }, 500);\n }\n onTouchMove(touchEvent) {\n if (!this.touching) {\n return;\n }\n const touch = this.getActiveTouch(touchEvent.touches);\n if (!touch) {\n return;\n }\n const eventIsFarAway = !areEventsNear(touch, this.touchStart, 4);\n if (eventIsFarAway) {\n this.moved = true;\n }\n }\n onTouchEnd(touchEvent) {\n if (!this.touching) {\n return;\n }\n if (!this.moved) {\n const event = {\n type: TouchListener.EVENT_TAP,\n touchStart: this.touchStart\n };\n this.eventService.dispatchEvent(event);\n this.checkForDoubleTap();\n }\n // stops the tap from also been processed as a mouse click\n if (this.preventMouseClick && touchEvent.cancelable) {\n touchEvent.preventDefault();\n }\n this.touching = false;\n }\n checkForDoubleTap() {\n const now = new Date().getTime();\n if (this.lastTapTime && this.lastTapTime > 0) {\n // if previous tap, see if duration is short enough to be considered double tap\n const interval = now - this.lastTapTime;\n if (interval > TouchListener.DOUBLE_TAP_MILLIS) {\n // dispatch double tap event\n const event = {\n type: TouchListener.EVENT_DOUBLE_TAP,\n touchStart: this.touchStart\n };\n this.eventService.dispatchEvent(event);\n // this stops a tripple tap ending up as two double taps\n this.lastTapTime = null;\n }\n else {\n this.lastTapTime = now;\n }\n }\n else {\n this.lastTapTime = now;\n }\n }\n destroy() {\n this.destroyFuncs.forEach(func => func());\n }\n}\nTouchListener.EVENT_TAP = \"tap\";\nTouchListener.EVENT_DOUBLE_TAP = \"doubleTap\";\nTouchListener.EVENT_LONG_TAP = \"longTap\";\nTouchListener.DOUBLE_TAP_MILLIS = 500;\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Events } from \"../../../eventKeys.mjs\";\nimport { setDisplayed, clearElement } from \"../../../utils/dom.mjs\";\nimport { Autowired } from \"../../../context/context.mjs\";\nimport { RefSelector } from \"../../../widgets/componentAnnotations.mjs\";\nimport { Component } from \"../../../widgets/component.mjs\";\nimport { createIconNoSpan } from \"../../../utils/icon.mjs\";\nexport class SortIndicatorComp extends Component {\n constructor(skipTemplate) {\n super();\n if (!skipTemplate) {\n this.setTemplate(SortIndicatorComp.TEMPLATE);\n }\n }\n attachCustomElements(eSortOrder, eSortAsc, eSortDesc, eSortMixed, eSortNone) {\n this.eSortOrder = eSortOrder;\n this.eSortAsc = eSortAsc;\n this.eSortDesc = eSortDesc;\n this.eSortMixed = eSortMixed;\n this.eSortNone = eSortNone;\n }\n setupSort(column, suppressOrder = false) {\n this.column = column;\n this.suppressOrder = suppressOrder;\n this.setupMultiSortIndicator();\n if (!this.column.isSortable()) {\n return;\n }\n this.addInIcon('sortAscending', this.eSortAsc, column);\n this.addInIcon('sortDescending', this.eSortDesc, column);\n this.addInIcon('sortUnSort', this.eSortNone, column);\n this.addManagedPropertyListener('unSortIcon', () => this.updateIcons());\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, () => this.updateIcons());\n // Watch global events, as row group columns can effect their display column.\n this.addManagedListener(this.eventService, Events.EVENT_SORT_CHANGED, () => this.onSortChanged());\n // when grouping changes so can sort indexes and icons\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, () => this.onSortChanged());\n this.onSortChanged();\n }\n addInIcon(iconName, eParent, column) {\n if (eParent == null) {\n return;\n }\n const eIcon = createIconNoSpan(iconName, this.gridOptionsService, column);\n if (eIcon) {\n eParent.appendChild(eIcon);\n }\n }\n onSortChanged() {\n this.updateIcons();\n if (!this.suppressOrder) {\n this.updateSortOrder();\n }\n }\n updateIcons() {\n const sortDirection = this.sortController.getDisplaySortForColumn(this.column);\n if (this.eSortAsc) {\n const isAscending = sortDirection === 'asc';\n setDisplayed(this.eSortAsc, isAscending, { skipAriaHidden: true });\n }\n if (this.eSortDesc) {\n const isDescending = sortDirection === 'desc';\n setDisplayed(this.eSortDesc, isDescending, { skipAriaHidden: true });\n }\n if (this.eSortNone) {\n const alwaysHideNoSort = !this.column.getColDef().unSortIcon && !this.gridOptionsService.get('unSortIcon');\n const isNone = sortDirection === null || sortDirection === undefined;\n setDisplayed(this.eSortNone, !alwaysHideNoSort && isNone, { skipAriaHidden: true });\n }\n }\n setupMultiSortIndicator() {\n this.addInIcon('sortUnSort', this.eSortMixed, this.column);\n const isColumnShowingRowGroup = this.column.getColDef().showRowGroup;\n const areGroupsCoupled = this.gridOptionsService.isColumnsSortingCoupledToGroup();\n if (areGroupsCoupled && isColumnShowingRowGroup) {\n // Watch global events, as row group columns can effect their display column.\n this.addManagedListener(this.eventService, Events.EVENT_SORT_CHANGED, () => this.updateMultiSortIndicator());\n // when grouping changes so can sort indexes and icons\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, () => this.updateMultiSortIndicator());\n this.updateMultiSortIndicator();\n }\n }\n updateMultiSortIndicator() {\n if (this.eSortMixed) {\n const isMixedSort = this.sortController.getDisplaySortForColumn(this.column) === 'mixed';\n setDisplayed(this.eSortMixed, isMixedSort, { skipAriaHidden: true });\n }\n }\n // we listen here for global sort events, NOT column sort events, as we want to do this\n // when sorting has been set on all column (if we listened just for our col (where we\n // set the asc / desc icons) then it's possible other cols are yet to get their sorting state.\n updateSortOrder() {\n var _a;\n if (!this.eSortOrder) {\n return;\n }\n const allColumnsWithSorting = this.sortController.getColumnsWithSortingOrdered();\n const indexThisCol = (_a = this.sortController.getDisplaySortIndexForColumn(this.column)) !== null && _a !== void 0 ? _a : -1;\n const moreThanOneColSorting = allColumnsWithSorting.some(col => { var _a; return (_a = this.sortController.getDisplaySortIndexForColumn(col)) !== null && _a !== void 0 ? _a : -1 >= 1; });\n const showIndex = indexThisCol >= 0 && moreThanOneColSorting;\n setDisplayed(this.eSortOrder, showIndex, { skipAriaHidden: true });\n if (indexThisCol >= 0) {\n this.eSortOrder.textContent = (indexThisCol + 1).toString();\n }\n else {\n clearElement(this.eSortOrder);\n }\n }\n}\nSortIndicatorComp.TEMPLATE = `\n \n \n \n \n \n `;\n__decorate([\n RefSelector('eSortOrder')\n], SortIndicatorComp.prototype, \"eSortOrder\", void 0);\n__decorate([\n RefSelector('eSortAsc')\n], SortIndicatorComp.prototype, \"eSortAsc\", void 0);\n__decorate([\n RefSelector('eSortDesc')\n], SortIndicatorComp.prototype, \"eSortDesc\", void 0);\n__decorate([\n RefSelector('eSortMixed')\n], SortIndicatorComp.prototype, \"eSortMixed\", void 0);\n__decorate([\n RefSelector('eSortNone')\n], SortIndicatorComp.prototype, \"eSortNone\", void 0);\n__decorate([\n Autowired('columnModel')\n], SortIndicatorComp.prototype, \"columnModel\", void 0);\n__decorate([\n Autowired('sortController')\n], SortIndicatorComp.prototype, \"sortController\", void 0);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Autowired } from \"../../../context/context.mjs\";\nimport { Column } from \"../../../entities/column.mjs\";\nimport { removeFromParent, setDisplayed } from \"../../../utils/dom.mjs\";\nimport { exists } from \"../../../utils/generic.mjs\";\nimport { createIconNoSpan } from \"../../../utils/icon.mjs\";\nimport { escapeString } from \"../../../utils/string.mjs\";\nimport { Component } from \"../../../widgets/component.mjs\";\nimport { RefSelector } from \"../../../widgets/componentAnnotations.mjs\";\nimport { TouchListener } from \"../../../widgets/touchListener.mjs\";\nimport { SortIndicatorComp } from \"./sortIndicatorComp.mjs\";\nimport { Events } from \"../../../eventKeys.mjs\";\nexport class HeaderComp extends Component {\n constructor() {\n super(...arguments);\n this.lastMovingChanged = 0;\n }\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n destroy() {\n super.destroy();\n }\n refresh(params) {\n this.params = params;\n // if template changed, then recreate the whole comp, the code required to manage\n // a changing template is to difficult for what it's worth.\n if (this.workOutTemplate() != this.currentTemplate) {\n return false;\n }\n if (this.workOutShowMenu() != this.currentShowMenu) {\n return false;\n }\n if (this.workOutSort() != this.currentSort) {\n return false;\n }\n if (this.shouldSuppressMenuHide() != this.currentSuppressMenuHide) {\n return false;\n }\n this.setDisplayName(params);\n return true;\n }\n workOutTemplate() {\n var _a;\n let template = (_a = this.params.template) !== null && _a !== void 0 ? _a : HeaderComp.TEMPLATE;\n // take account of any newlines & whitespace before/after the actual template\n template = template && template.trim ? template.trim() : template;\n return template;\n }\n init(params) {\n this.params = params;\n this.currentTemplate = this.workOutTemplate();\n this.setTemplate(this.currentTemplate);\n this.setupTap();\n this.setMenu();\n this.setupSort();\n this.setupFilterIcon();\n this.setupFilterButton();\n this.setDisplayName(params);\n }\n setDisplayName(params) {\n if (this.currentDisplayName != params.displayName) {\n this.currentDisplayName = params.displayName;\n const displayNameSanitised = escapeString(this.currentDisplayName, true);\n if (this.eText) {\n this.eText.textContent = displayNameSanitised;\n }\n }\n }\n addInIcon(iconName, eParent, column) {\n if (eParent == null) {\n return;\n }\n const eIcon = createIconNoSpan(iconName, this.gridOptionsService, column);\n if (eIcon) {\n eParent.appendChild(eIcon);\n }\n }\n setupTap() {\n const { gridOptionsService } = this;\n if (gridOptionsService.get('suppressTouch')) {\n return;\n }\n const touchListener = new TouchListener(this.getGui(), true);\n const suppressMenuHide = this.shouldSuppressMenuHide();\n const tapMenuButton = suppressMenuHide && exists(this.eMenu);\n const menuTouchListener = tapMenuButton ? new TouchListener(this.eMenu, true) : touchListener;\n if (this.params.enableMenu) {\n const eventType = tapMenuButton ? 'EVENT_TAP' : 'EVENT_LONG_TAP';\n const showMenuFn = (event) => this.params.showColumnMenuAfterMouseClick(event.touchStart);\n this.addManagedListener(menuTouchListener, TouchListener[eventType], showMenuFn);\n }\n if (this.params.enableSorting) {\n const tapListener = (event) => {\n var _a, _b;\n const target = event.touchStart.target;\n // When suppressMenuHide is true, a tap on the menu icon or filter button will bubble up\n // to the header container, in that case we should not sort\n if (suppressMenuHide && (((_a = this.eMenu) === null || _a === void 0 ? void 0 : _a.contains(target)) || ((_b = this.eFilterButton) === null || _b === void 0 ? void 0 : _b.contains(target)))) {\n return;\n }\n this.sortController.progressSort(this.params.column, false, \"uiColumnSorted\");\n };\n this.addManagedListener(touchListener, TouchListener.EVENT_TAP, tapListener);\n }\n if (this.params.enableFilterButton) {\n const filterButtonTouchListener = new TouchListener(this.eFilterButton, true);\n this.addManagedListener(filterButtonTouchListener, 'tap', () => this.params.showFilter(this.eFilterButton));\n this.addDestroyFunc(() => filterButtonTouchListener.destroy());\n }\n // if tapMenuButton is true `touchListener` and `menuTouchListener` are different\n // so we need to make sure to destroy both listeners here\n this.addDestroyFunc(() => touchListener.destroy());\n if (tapMenuButton) {\n this.addDestroyFunc(() => menuTouchListener.destroy());\n }\n }\n workOutShowMenu() {\n return this.params.enableMenu && this.menuService.isHeaderMenuButtonEnabled();\n }\n shouldSuppressMenuHide() {\n return this.menuService.isHeaderMenuButtonAlwaysShowEnabled();\n }\n setMenu() {\n // if no menu provided in template, do nothing\n if (!this.eMenu) {\n return;\n }\n this.currentShowMenu = this.workOutShowMenu();\n if (!this.currentShowMenu) {\n removeFromParent(this.eMenu);\n this.eMenu = undefined;\n return;\n }\n const isLegacyMenu = this.menuService.isLegacyMenuEnabled();\n this.addInIcon(isLegacyMenu ? 'menu' : 'menuAlt', this.eMenu, this.params.column);\n this.eMenu.classList.toggle('ag-header-menu-icon', !isLegacyMenu);\n this.currentSuppressMenuHide = this.shouldSuppressMenuHide();\n this.addManagedListener(this.eMenu, 'click', () => this.params.showColumnMenu(this.eMenu));\n this.eMenu.classList.toggle('ag-header-menu-always-show', this.currentSuppressMenuHide);\n }\n onMenuKeyboardShortcut(isFilterShortcut) {\n var _a, _b, _c, _d;\n const { column } = this.params;\n const isLegacyMenuEnabled = this.menuService.isLegacyMenuEnabled();\n if (isFilterShortcut && !isLegacyMenuEnabled) {\n if (this.menuService.isFilterMenuInHeaderEnabled(column)) {\n this.params.showFilter((_b = (_a = this.eFilterButton) !== null && _a !== void 0 ? _a : this.eMenu) !== null && _b !== void 0 ? _b : this.getGui());\n return true;\n }\n }\n else if (this.params.enableMenu) {\n this.params.showColumnMenu((_d = (_c = this.eMenu) !== null && _c !== void 0 ? _c : this.eFilterButton) !== null && _d !== void 0 ? _d : this.getGui());\n return true;\n }\n return false;\n }\n workOutSort() {\n return this.params.enableSorting;\n }\n setupSort() {\n this.currentSort = this.params.enableSorting;\n // eSortIndicator will not be present when customers provided custom header\n // templates, in that case, we need to look for provided sort elements and\n // manually create eSortIndicator.\n if (!this.eSortIndicator) {\n this.eSortIndicator = this.context.createBean(new SortIndicatorComp(true));\n this.eSortIndicator.attachCustomElements(this.eSortOrder, this.eSortAsc, this.eSortDesc, this.eSortMixed, this.eSortNone);\n }\n this.eSortIndicator.setupSort(this.params.column);\n // we set up the indicator prior to the check for whether this column is sortable, as it allows the indicator to\n // set up the multi sort indicator which can appear irrelevant of whether this column can itself be sorted.\n // this can occur in the case of a non-sortable group display column.\n if (!this.currentSort) {\n return;\n }\n // keep track of last time the moving changed flag was set\n this.addManagedListener(this.params.column, Column.EVENT_MOVING_CHANGED, () => {\n this.lastMovingChanged = new Date().getTime();\n });\n // add the event on the header, so when clicked, we do sorting\n if (this.eLabel) {\n this.addManagedListener(this.eLabel, 'click', (event) => {\n // sometimes when moving a column via dragging, this was also firing a clicked event.\n // here is issue raised by user: https://ag-grid.zendesk.com/agent/tickets/1076\n // this check stops sort if a) column is moving or b) column moved less than 200ms ago (so caters for race condition)\n const moving = this.params.column.isMoving();\n const nowTime = new Date().getTime();\n // typically there is <2ms if moving flag was set recently, as it would be done in same VM turn\n const movedRecently = (nowTime - this.lastMovingChanged) < 50;\n const columnMoving = moving || movedRecently;\n if (!columnMoving) {\n const sortUsingCtrl = this.gridOptionsService.get('multiSortKey') === 'ctrl';\n const multiSort = sortUsingCtrl ? (event.ctrlKey || event.metaKey) : event.shiftKey;\n this.params.progressSort(multiSort);\n }\n });\n }\n const onSortingChanged = () => {\n this.addOrRemoveCssClass('ag-header-cell-sorted-asc', this.params.column.isSortAscending());\n this.addOrRemoveCssClass('ag-header-cell-sorted-desc', this.params.column.isSortDescending());\n this.addOrRemoveCssClass('ag-header-cell-sorted-none', this.params.column.isSortNone());\n if (this.params.column.getColDef().showRowGroup) {\n const sourceColumns = this.columnModel.getSourceColumnsForGroupColumn(this.params.column);\n // this == is intentional, as it allows null and undefined to match, which are both unsorted states\n const sortDirectionsMatch = sourceColumns === null || sourceColumns === void 0 ? void 0 : sourceColumns.every(sourceCol => this.params.column.getSort() == sourceCol.getSort());\n const isMultiSorting = !sortDirectionsMatch;\n this.addOrRemoveCssClass('ag-header-cell-sorted-mixed', isMultiSorting);\n }\n };\n this.addManagedListener(this.eventService, Events.EVENT_SORT_CHANGED, onSortingChanged);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, onSortingChanged);\n }\n setupFilterIcon() {\n if (!this.eFilter) {\n return;\n }\n this.configureFilter(this.params.enableFilterIcon, this.eFilter, this.onFilterChangedIcon.bind(this));\n }\n setupFilterButton() {\n if (!this.eFilterButton) {\n return;\n }\n const configured = this.configureFilter(this.params.enableFilterButton, this.eFilterButton, this.onFilterChangedButton.bind(this));\n if (configured) {\n this.addManagedListener(this.eFilterButton, 'click', () => this.params.showFilter(this.eFilterButton));\n }\n else {\n this.eFilterButton = undefined;\n }\n }\n configureFilter(enabled, element, filterChangedCallback) {\n if (!enabled) {\n removeFromParent(element);\n return false;\n }\n const { column } = this.params;\n this.addInIcon('filter', element, column);\n this.addManagedListener(column, Column.EVENT_FILTER_CHANGED, filterChangedCallback);\n filterChangedCallback();\n return true;\n }\n onFilterChangedIcon() {\n const filterPresent = this.params.column.isFilterActive();\n setDisplayed(this.eFilter, filterPresent, { skipAriaHidden: true });\n }\n onFilterChangedButton() {\n const filterPresent = this.params.column.isFilterActive();\n this.eFilterButton.classList.toggle('ag-filter-active', filterPresent);\n }\n getAnchorElementForMenu(isFilter) {\n var _a, _b, _c, _d;\n if (isFilter) {\n return (_b = (_a = this.eFilterButton) !== null && _a !== void 0 ? _a : this.eMenu) !== null && _b !== void 0 ? _b : this.getGui();\n }\n return (_d = (_c = this.eMenu) !== null && _c !== void 0 ? _c : this.eFilterButton) !== null && _d !== void 0 ? _d : this.getGui();\n }\n}\nHeaderComp.TEMPLATE = `
\n \n \n
\n \n \n \n
\n
`;\n__decorate([\n Autowired('sortController')\n], HeaderComp.prototype, \"sortController\", void 0);\n__decorate([\n Autowired('menuService')\n], HeaderComp.prototype, \"menuService\", void 0);\n__decorate([\n Autowired('columnModel')\n], HeaderComp.prototype, \"columnModel\", void 0);\n__decorate([\n RefSelector('eFilter')\n], HeaderComp.prototype, \"eFilter\", void 0);\n__decorate([\n RefSelector('eFilterButton')\n], HeaderComp.prototype, \"eFilterButton\", void 0);\n__decorate([\n RefSelector('eSortIndicator')\n], HeaderComp.prototype, \"eSortIndicator\", void 0);\n__decorate([\n RefSelector('eMenu')\n], HeaderComp.prototype, \"eMenu\", void 0);\n__decorate([\n RefSelector('eLabel')\n], HeaderComp.prototype, \"eLabel\", void 0);\n__decorate([\n RefSelector('eText')\n], HeaderComp.prototype, \"eText\", void 0);\n__decorate([\n RefSelector('eSortOrder')\n], HeaderComp.prototype, \"eSortOrder\", void 0);\n__decorate([\n RefSelector('eSortAsc')\n], HeaderComp.prototype, \"eSortAsc\", void 0);\n__decorate([\n RefSelector('eSortDesc')\n], HeaderComp.prototype, \"eSortDesc\", void 0);\n__decorate([\n RefSelector('eSortMixed')\n], HeaderComp.prototype, \"eSortMixed\", void 0);\n__decorate([\n RefSelector('eSortNone')\n], HeaderComp.prototype, \"eSortNone\", void 0);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Autowired } from \"../../../context/context.mjs\";\nimport { ProvidedColumnGroup } from \"../../../entities/providedColumnGroup.mjs\";\nimport { setDisplayed } from \"../../../utils/dom.mjs\";\nimport { isStopPropagationForAgGrid, stopPropagationForAgGrid } from \"../../../utils/event.mjs\";\nimport { warnOnce } from \"../../../utils/function.mjs\";\nimport { exists } from \"../../../utils/generic.mjs\";\nimport { createIconNoSpan } from \"../../../utils/icon.mjs\";\nimport { escapeString } from \"../../../utils/string.mjs\";\nimport { Component } from \"../../../widgets/component.mjs\";\nimport { RefSelector } from \"../../../widgets/componentAnnotations.mjs\";\nimport { TouchListener } from \"../../../widgets/touchListener.mjs\";\nexport class HeaderGroupComp extends Component {\n constructor() {\n super(HeaderGroupComp.TEMPLATE);\n }\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n destroy() {\n super.destroy();\n }\n init(params) {\n this.params = params;\n this.checkWarnings();\n this.setupLabel();\n this.addGroupExpandIcon();\n this.setupExpandIcons();\n }\n checkWarnings() {\n const paramsAny = this.params;\n if (paramsAny.template) {\n warnOnce(`A template was provided for Header Group Comp - templates are only supported for Header Comps (not groups)`);\n }\n }\n setupExpandIcons() {\n this.addInIcon(\"columnGroupOpened\", \"agOpened\");\n this.addInIcon(\"columnGroupClosed\", \"agClosed\");\n const expandAction = (event) => {\n if (isStopPropagationForAgGrid(event)) {\n return;\n }\n const newExpandedValue = !this.params.columnGroup.isExpanded();\n this.columnModel.setColumnGroupOpened(this.params.columnGroup.getProvidedColumnGroup(), newExpandedValue, \"uiColumnExpanded\");\n };\n this.addTouchAndClickListeners(this.eCloseIcon, expandAction);\n this.addTouchAndClickListeners(this.eOpenIcon, expandAction);\n const stopPropagationAction = (event) => {\n stopPropagationForAgGrid(event);\n };\n // adding stopPropagation to the double click for the icons prevents double click action happening\n // when the icons are clicked. if the icons are double clicked, then the groups should open and\n // then close again straight away. if we also listened to double click, then the group would open,\n // close, then open, which is not what we want. double click should only action if the user double\n // clicks outside of the icons.\n this.addManagedListener(this.eCloseIcon, \"dblclick\", stopPropagationAction);\n this.addManagedListener(this.eOpenIcon, \"dblclick\", stopPropagationAction);\n this.addManagedListener(this.getGui(), \"dblclick\", expandAction);\n this.updateIconVisibility();\n const providedColumnGroup = this.params.columnGroup.getProvidedColumnGroup();\n this.addManagedListener(providedColumnGroup, ProvidedColumnGroup.EVENT_EXPANDED_CHANGED, this.updateIconVisibility.bind(this));\n this.addManagedListener(providedColumnGroup, ProvidedColumnGroup.EVENT_EXPANDABLE_CHANGED, this.updateIconVisibility.bind(this));\n }\n addTouchAndClickListeners(eElement, action) {\n const touchListener = new TouchListener(eElement, true);\n this.addManagedListener(touchListener, TouchListener.EVENT_TAP, action);\n this.addDestroyFunc(() => touchListener.destroy());\n this.addManagedListener(eElement, \"click\", action);\n }\n updateIconVisibility() {\n const columnGroup = this.params.columnGroup;\n if (columnGroup.isExpandable()) {\n const expanded = this.params.columnGroup.isExpanded();\n setDisplayed(this.eOpenIcon, expanded);\n setDisplayed(this.eCloseIcon, !expanded);\n }\n else {\n setDisplayed(this.eOpenIcon, false);\n setDisplayed(this.eCloseIcon, false);\n }\n }\n addInIcon(iconName, refName) {\n const eIcon = createIconNoSpan(iconName, this.gridOptionsService, null);\n if (eIcon) {\n this.getRefElement(refName).appendChild(eIcon);\n }\n }\n addGroupExpandIcon() {\n if (!this.params.columnGroup.isExpandable()) {\n setDisplayed(this.eOpenIcon, false);\n setDisplayed(this.eCloseIcon, false);\n return;\n }\n }\n setupLabel() {\n var _a;\n // no renderer, default text render\n const { displayName, columnGroup } = this.params;\n if (exists(displayName)) {\n const displayNameSanitised = escapeString(displayName, true);\n this.getRefElement('agLabel').textContent = displayNameSanitised;\n }\n this.addOrRemoveCssClass('ag-sticky-label', !((_a = columnGroup.getColGroupDef()) === null || _a === void 0 ? void 0 : _a.suppressStickyLabel));\n }\n}\nHeaderGroupComp.TEMPLATE = `
\n \n \n \n
`;\n__decorate([\n Autowired(\"columnModel\")\n], HeaderGroupComp.prototype, \"columnModel\", void 0);\n__decorate([\n RefSelector(\"agOpened\")\n], HeaderGroupComp.prototype, \"eOpenIcon\", void 0);\n__decorate([\n RefSelector(\"agClosed\")\n], HeaderGroupComp.prototype, \"eCloseIcon\", void 0);\n","import { Component } from \"./component.mjs\";\nexport class PopupComponent extends Component {\n isPopup() {\n return true;\n }\n setParentComponent(container) {\n container.addCssClass('ag-has-popup');\n super.setParentComponent(container);\n }\n destroy() {\n const parentComp = this.parentComponent;\n const hasParent = parentComp && parentComp.isAlive();\n if (hasParent) {\n parentComp.getGui().classList.remove('ag-has-popup');\n }\n super.destroy();\n }\n}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { PopupComponent } from \"../../widgets/popupComponent.mjs\";\nimport { RefSelector } from \"../../widgets/componentAnnotations.mjs\";\nimport { exists } from \"../../utils/generic.mjs\";\nimport { KeyCode } from '../../constants/keyCode.mjs';\nexport class LargeTextCellEditor extends PopupComponent {\n constructor() {\n super(LargeTextCellEditor.TEMPLATE);\n }\n init(params) {\n this.params = params;\n this.focusAfterAttached = params.cellStartedEdit;\n this.eTextArea\n .setMaxLength(params.maxLength || 200)\n .setCols(params.cols || 60)\n .setRows(params.rows || 10);\n if (exists(params.value, true)) {\n this.eTextArea.setValue(params.value.toString(), true);\n }\n this.addGuiEventListener('keydown', this.onKeyDown.bind(this));\n this.activateTabIndex();\n }\n onKeyDown(event) {\n const key = event.key;\n if (key === KeyCode.LEFT ||\n key === KeyCode.UP ||\n key === KeyCode.RIGHT ||\n key === KeyCode.DOWN ||\n (event.shiftKey && key === KeyCode.ENTER)) { // shift+enter allows for newlines\n event.stopPropagation();\n }\n }\n afterGuiAttached() {\n const translate = this.localeService.getLocaleTextFunc();\n this.eTextArea.setInputAriaLabel(translate('ariaInputEditor', 'Input Editor'));\n if (this.focusAfterAttached) {\n this.eTextArea.getFocusableElement().focus();\n }\n }\n getValue() {\n const value = this.eTextArea.getValue();\n if (!exists(value) && !exists(this.params.value)) {\n return this.params.value;\n }\n return this.params.parseValue(value);\n }\n}\nLargeTextCellEditor.TEMPLATE = `
\n \n
`;\n__decorate([\n RefSelector(\"eTextArea\")\n], LargeTextCellEditor.prototype, \"eTextArea\", void 0);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { AgSelect } from \"../../widgets/agSelect.mjs\";\nimport { Autowired } from \"../../context/context.mjs\";\nimport { PopupComponent } from \"../../widgets/popupComponent.mjs\";\nimport { RefSelector } from \"../../widgets/componentAnnotations.mjs\";\nimport { missing } from \"../../utils/generic.mjs\";\nimport { KeyCode } from '../../constants/keyCode.mjs';\nexport class SelectCellEditor extends PopupComponent {\n constructor() {\n super(/* html */ `
\n \n
`);\n this.startedByEnter = false;\n }\n init(params) {\n this.focusAfterAttached = params.cellStartedEdit;\n const { eSelect, valueFormatterService, gridOptionsService } = this;\n const { values, value, eventKey } = params;\n if (missing(values)) {\n console.warn('AG Grid: no values found for select cellEditor');\n return;\n }\n this.startedByEnter = eventKey != null ? eventKey === KeyCode.ENTER : false;\n let hasValue = false;\n values.forEach((currentValue) => {\n const option = { value: currentValue };\n const valueFormatted = valueFormatterService.formatValue(params.column, null, currentValue);\n const valueFormattedExits = valueFormatted !== null && valueFormatted !== undefined;\n option.text = valueFormattedExits ? valueFormatted : currentValue;\n eSelect.addOption(option);\n hasValue = hasValue || value === currentValue;\n });\n if (hasValue) {\n eSelect.setValue(params.value, true);\n }\n else if (params.values.length) {\n eSelect.setValue(params.values[0], true);\n }\n const { valueListGap, valueListMaxWidth, valueListMaxHeight } = params;\n if (valueListGap != null) {\n eSelect.setPickerGap(valueListGap);\n }\n if (valueListMaxHeight != null) {\n eSelect.setPickerMaxHeight(valueListMaxHeight);\n }\n if (valueListMaxWidth != null) {\n eSelect.setPickerMaxWidth(valueListMaxWidth);\n }\n // we don't want to add this if full row editing, otherwise selecting will stop the\n // full row editing.\n if (gridOptionsService.get('editType') !== 'fullRow') {\n this.addManagedListener(this.eSelect, AgSelect.EVENT_ITEM_SELECTED, () => params.stopEditing());\n }\n }\n afterGuiAttached() {\n if (this.focusAfterAttached) {\n this.eSelect.getFocusableElement().focus();\n }\n if (this.startedByEnter) {\n setTimeout(() => {\n if (this.isAlive()) {\n this.eSelect.showPicker();\n }\n });\n }\n }\n focusIn() {\n this.eSelect.getFocusableElement().focus();\n }\n getValue() {\n return this.eSelect.getValue();\n }\n isPopup() {\n return false;\n }\n}\n__decorate([\n Autowired('valueFormatterService')\n], SelectCellEditor.prototype, \"valueFormatterService\", void 0);\n__decorate([\n RefSelector('eSelect')\n], SelectCellEditor.prototype, \"eSelect\", void 0);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { PopupComponent } from \"../../widgets/popupComponent.mjs\";\nimport { RefSelector } from \"../../widgets/componentAnnotations.mjs\";\nimport { isBrowserSafari } from \"../../utils/browser.mjs\";\nimport { KeyCode } from '../../constants/keyCode.mjs';\nexport class SimpleCellEditor extends PopupComponent {\n constructor(cellEditorInput) {\n super(/* html */ `\n
\n ${cellEditorInput.getTemplate()}\n
`);\n this.cellEditorInput = cellEditorInput;\n }\n init(params) {\n this.params = params;\n const eInput = this.eInput;\n this.cellEditorInput.init(eInput, params);\n let startValue;\n // cellStartedEdit is only false if we are doing fullRow editing\n if (params.cellStartedEdit) {\n this.focusAfterAttached = true;\n const eventKey = params.eventKey;\n if (eventKey === KeyCode.BACKSPACE || params.eventKey === KeyCode.DELETE) {\n startValue = '';\n }\n else if (eventKey && eventKey.length === 1) {\n startValue = eventKey;\n }\n else {\n startValue = this.cellEditorInput.getStartValue();\n if (eventKey !== KeyCode.F2) {\n this.highlightAllOnFocus = true;\n }\n }\n }\n else {\n this.focusAfterAttached = false;\n startValue = this.cellEditorInput.getStartValue();\n }\n if (startValue != null) {\n eInput.setStartValue(startValue);\n }\n this.addManagedListener(eInput.getGui(), 'keydown', (event) => {\n const { key } = event;\n if (key === KeyCode.PAGE_UP || key === KeyCode.PAGE_DOWN) {\n event.preventDefault();\n }\n });\n }\n afterGuiAttached() {\n var _a, _b;\n const translate = this.localeService.getLocaleTextFunc();\n const eInput = this.eInput;\n eInput.setInputAriaLabel(translate('ariaInputEditor', 'Input Editor'));\n if (!this.focusAfterAttached) {\n return;\n }\n // Added for AG-3238. We can't remove this explicit focus() because Chrome requires an input\n // to be focused before setSelectionRange will work. But it triggers a bug in Safari where\n // explicitly focusing then blurring an empty field will cause the parent container to scroll.\n if (!isBrowserSafari()) {\n eInput.getFocusableElement().focus();\n }\n const inputEl = eInput.getInputElement();\n if (this.highlightAllOnFocus) {\n inputEl.select();\n }\n else {\n (_b = (_a = this.cellEditorInput).setCaret) === null || _b === void 0 ? void 0 : _b.call(_a);\n }\n }\n // gets called when tabbing through cells and in full row edit mode\n focusIn() {\n const eInput = this.eInput;\n const focusEl = eInput.getFocusableElement();\n const inputEl = eInput.getInputElement();\n focusEl.focus();\n inputEl.select();\n }\n getValue() {\n return this.cellEditorInput.getValue();\n }\n isPopup() {\n return false;\n }\n}\n__decorate([\n RefSelector('eInput')\n], SimpleCellEditor.prototype, \"eInput\", void 0);\n","import { SimpleCellEditor } from \"./simpleCellEditor.mjs\";\nimport { exists } from \"../../utils/generic.mjs\";\nclass TextCellEditorInput {\n getTemplate() {\n return /* html */ ``;\n }\n init(eInput, params) {\n this.eInput = eInput;\n this.params = params;\n if (params.maxLength != null) {\n eInput.setMaxLength(params.maxLength);\n }\n }\n getValue() {\n const value = this.eInput.getValue();\n if (!exists(value) && !exists(this.params.value)) {\n return this.params.value;\n }\n return this.params.parseValue(value);\n }\n getStartValue() {\n const formatValue = this.params.useFormatter || this.params.column.getColDef().refData;\n return formatValue ? this.params.formatValue(this.params.value) : this.params.value;\n }\n setCaret() {\n // when we started editing, we want the caret at the end, not the start.\n // this comes into play in two scenarios:\n // a) when user hits F2\n // b) when user hits a printable character\n const value = this.eInput.getValue();\n const len = (exists(value) && value.length) || 0;\n if (len) {\n this.eInput.getInputElement().setSelectionRange(len, len);\n }\n }\n}\nexport class TextCellEditor extends SimpleCellEditor {\n constructor() {\n super(new TextCellEditorInput());\n }\n}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Autowired } from \"../../context/context.mjs\";\nimport { Component } from \"../../widgets/component.mjs\";\nimport { exists } from \"../../utils/generic.mjs\";\nimport { clearElement } from \"../../utils/dom.mjs\";\nconst ARROW_UP = '\\u2191';\nconst ARROW_DOWN = '\\u2193';\nexport class AnimateShowChangeCellRenderer extends Component {\n constructor() {\n super();\n this.refreshCount = 0;\n const template = document.createElement('span');\n const delta = document.createElement('span');\n delta.setAttribute('class', 'ag-value-change-delta');\n const value = document.createElement('span');\n value.setAttribute('class', 'ag-value-change-value');\n template.appendChild(delta);\n template.appendChild(value);\n this.setTemplateFromElement(template);\n }\n init(params) {\n this.eValue = this.queryForHtmlElement('.ag-value-change-value');\n this.eDelta = this.queryForHtmlElement('.ag-value-change-delta');\n this.refresh(params, true);\n }\n showDelta(params, delta) {\n const absDelta = Math.abs(delta);\n const valueFormatted = params.formatValue(absDelta);\n const valueToUse = exists(valueFormatted) ? valueFormatted : absDelta;\n const deltaUp = (delta >= 0);\n if (deltaUp) {\n this.eDelta.textContent = ARROW_UP + valueToUse;\n }\n else {\n // because negative, use ABS to remove sign\n this.eDelta.textContent = ARROW_DOWN + valueToUse;\n }\n this.eDelta.classList.toggle('ag-value-change-delta-up', deltaUp);\n this.eDelta.classList.toggle('ag-value-change-delta-down', !deltaUp);\n }\n setTimerToRemoveDelta() {\n // the refreshCount makes sure that if the value updates again while\n // the below timer is waiting, then the below timer will realise it\n // is not the most recent and will not try to remove the delta value.\n this.refreshCount++;\n const refreshCountCopy = this.refreshCount;\n this.getFrameworkOverrides().wrapIncoming(() => {\n window.setTimeout(() => {\n if (refreshCountCopy === this.refreshCount) {\n this.hideDeltaValue();\n }\n }, 2000);\n });\n }\n hideDeltaValue() {\n this.eValue.classList.remove('ag-value-change-value-highlight');\n clearElement(this.eDelta);\n }\n refresh(params, isInitialRender = false) {\n const value = params.value;\n if (value === this.lastValue) {\n return false;\n }\n if (exists(params.valueFormatted)) {\n this.eValue.textContent = params.valueFormatted;\n }\n else if (exists(params.value)) {\n this.eValue.textContent = value;\n }\n else {\n clearElement(this.eValue);\n }\n // we don't show the delta if we are in the middle of a filter. see comment on FilterManager\n // with regards processingFilterChange\n if (this.filterManager.isSuppressFlashingCellsBecauseFiltering()) {\n return false;\n }\n if (typeof value === 'number' && typeof this.lastValue === 'number') {\n const delta = value - this.lastValue;\n this.showDelta(params, delta);\n }\n // highlight the current value, but only if it's not new, otherwise it\n // would get highlighted first time the value is shown\n if (this.lastValue) {\n this.eValue.classList.add('ag-value-change-value-highlight');\n }\n if (!isInitialRender) {\n this.setTimerToRemoveDelta();\n }\n this.lastValue = value;\n return true;\n }\n}\n__decorate([\n Autowired('filterManager')\n], AnimateShowChangeCellRenderer.prototype, \"filterManager\", void 0);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Autowired } from \"../../context/context.mjs\";\nimport { Component } from \"../../widgets/component.mjs\";\nimport { clearElement } from \"../../utils/dom.mjs\";\nimport { missing, exists } from \"../../utils/generic.mjs\";\nexport class AnimateSlideCellRenderer extends Component {\n constructor() {\n super();\n this.refreshCount = 0;\n const template = document.createElement('span');\n const slide = document.createElement('span');\n slide.setAttribute('class', 'ag-value-slide-current');\n template.appendChild(slide);\n this.setTemplateFromElement(template);\n this.eCurrent = this.queryForHtmlElement('.ag-value-slide-current');\n }\n init(params) {\n this.refresh(params, true);\n }\n addSlideAnimation() {\n this.refreshCount++;\n // below we keep checking this, and stop working on the animation\n // if it no longer matches - this means another animation has started\n // and this one is stale.\n const refreshCountCopy = this.refreshCount;\n // if old animation, remove it\n if (this.ePrevious) {\n this.getGui().removeChild(this.ePrevious);\n }\n const prevElement = document.createElement('span');\n prevElement.setAttribute('class', 'ag-value-slide-previous ag-value-slide-out');\n this.ePrevious = prevElement;\n this.ePrevious.textContent = this.eCurrent.textContent;\n this.getGui().insertBefore(this.ePrevious, this.eCurrent);\n // having timeout of 0 allows use to skip to the next css turn,\n // so we know the previous css classes have been applied. so the\n // complex set of setTimeout below creates the animation\n this.getFrameworkOverrides().wrapIncoming(() => {\n window.setTimeout(() => {\n if (refreshCountCopy !== this.refreshCount) {\n return;\n }\n this.ePrevious.classList.add('ag-value-slide-out-end');\n }, 50);\n window.setTimeout(() => {\n if (refreshCountCopy !== this.refreshCount) {\n return;\n }\n this.getGui().removeChild(this.ePrevious);\n this.ePrevious = null;\n }, 3000);\n });\n }\n refresh(params, isInitialRender = false) {\n let value = params.value;\n if (missing(value)) {\n value = '';\n }\n if (value === this.lastValue) {\n return false;\n }\n // we don't show the delta if we are in the middle of a filter. see comment on FilterManager\n // with regards processingFilterChange\n if (this.filterManager.isSuppressFlashingCellsBecauseFiltering()) {\n return false;\n }\n if (!isInitialRender) {\n this.addSlideAnimation();\n }\n this.lastValue = value;\n if (exists(params.valueFormatted)) {\n this.eCurrent.textContent = params.valueFormatted;\n }\n else if (exists(params.value)) {\n this.eCurrent.textContent = value;\n }\n else {\n clearElement(this.eCurrent);\n }\n return true;\n }\n}\n__decorate([\n Autowired('filterManager')\n], AnimateSlideCellRenderer.prototype, \"filterManager\", void 0);\n","import { Events } from \"../events.mjs\";\nimport { EventService } from \"../eventService.mjs\";\nimport { debounce } from \"../utils/function.mjs\";\nimport { exists, missing, missingOrEmpty } from \"../utils/generic.mjs\";\nimport { FrameworkEventListenerService } from \"../misc/frameworkEventListenerService.mjs\";\nexport class RowNode {\n constructor(beans) {\n /** The current row index. If the row is filtered out or in a collapsed group, this value will be `null`. */\n this.rowIndex = null;\n /** The key for the group eg Ireland, UK, USA */\n this.key = null;\n /** Children mapped by the pivot columns. */\n this.childrenMapped = {};\n /**\n * This will be `true` if it has a rowIndex assigned, otherwise `false`.\n */\n this.displayed = false;\n /** The row top position in pixels. */\n this.rowTop = null;\n /** The top pixel for this row last time, makes sense if data set was ordered or filtered,\n * it is used so new rows can animate in from their old position. */\n this.oldRowTop = null;\n /** `true` by default - can be overridden via gridOptions.isRowSelectable(rowNode) */\n this.selectable = true;\n /** Used by sorting service - to give deterministic sort to groups. Previously we\n * just id for this, however id is a string and had slower sorting compared to numbers. */\n this.__objectId = RowNode.OBJECT_ID_SEQUENCE++;\n /** When one or more Columns are using autoHeight, this keeps track of height of each autoHeight Cell,\n * indexed by the Column ID. */\n this.__autoHeights = {};\n /** `true` when nodes with the same id are being removed and added as part of the same batch transaction */\n this.alreadyRendered = false;\n this.highlighted = null;\n this.hovered = false;\n this.selected = false;\n this.beans = beans;\n }\n /**\n * Replaces the data on the `rowNode`. When this method is called, the grid will refresh the entire rendered row if it is displayed.\n */\n setData(data) {\n this.setDataCommon(data, false);\n }\n // similar to setRowData, however it is expected that the data is the same data item. this\n // is intended to be used with Redux type stores, where the whole data can be changed. we are\n // guaranteed that the data is the same entity (so grid doesn't need to worry about the id of the\n // underlying data changing, hence doesn't need to worry about selection). the grid, upon receiving\n // dataChanged event, will refresh the cells rather than rip them all out (so user can show transitions).\n /**\n * Updates the data on the `rowNode`. When this method is called, the grid will refresh the entire rendered row if it is displayed.\n */\n updateData(data) {\n this.setDataCommon(data, true);\n }\n setDataCommon(data, update) {\n const oldData = this.data;\n this.data = data;\n this.beans.valueCache.onDataChanged();\n this.updateDataOnDetailNode();\n this.checkRowSelectable();\n this.resetQuickFilterAggregateText();\n const event = this.createDataChangedEvent(data, oldData, update);\n this.dispatchLocalEvent(event);\n }\n // when we are doing master / detail, the detail node is lazy created, but then kept around.\n // so if we show / hide the detail, the same detail rowNode is used. so we need to keep the data\n // in sync, otherwise expand/collapse of the detail would still show the old values.\n updateDataOnDetailNode() {\n if (this.detailNode) {\n this.detailNode.data = this.data;\n }\n }\n createDataChangedEvent(newData, oldData, update) {\n return {\n type: RowNode.EVENT_DATA_CHANGED,\n node: this,\n oldData: oldData,\n newData: newData,\n update: update\n };\n }\n createLocalRowEvent(type) {\n return {\n type: type,\n node: this\n };\n }\n getRowIndexString() {\n if (this.rowPinned === 'top') {\n return 't-' + this.rowIndex;\n }\n if (this.rowPinned === 'bottom') {\n return 'b-' + this.rowIndex;\n }\n return this.rowIndex.toString();\n }\n createDaemonNode() {\n const oldNode = new RowNode(this.beans);\n // just copy the id and data, this is enough for the node to be used\n // in the selection controller (the selection controller is the only\n // place where daemon nodes can live).\n oldNode.id = this.id;\n oldNode.data = this.data;\n oldNode.__daemon = true;\n oldNode.selected = this.selected;\n oldNode.level = this.level;\n return oldNode;\n }\n setDataAndId(data, id) {\n const oldNode = exists(this.id) ? this.createDaemonNode() : null;\n const oldData = this.data;\n this.data = data;\n this.updateDataOnDetailNode();\n this.setId(id);\n this.checkRowSelectable();\n this.beans.selectionService.syncInRowNode(this, oldNode);\n const event = this.createDataChangedEvent(data, oldData, false);\n this.dispatchLocalEvent(event);\n }\n checkRowSelectable() {\n const isRowSelectableFunc = this.beans.gridOptionsService.get('isRowSelectable');\n this.setRowSelectable(isRowSelectableFunc ? isRowSelectableFunc(this) : true);\n }\n setRowSelectable(newVal, suppressSelectionUpdate) {\n if (this.selectable !== newVal) {\n this.selectable = newVal;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_SELECTABLE_CHANGED));\n }\n if (suppressSelectionUpdate) {\n return;\n }\n const isGroupSelectsChildren = this.beans.gridOptionsService.get('groupSelectsChildren');\n if (isGroupSelectsChildren) {\n const selected = this.calculateSelectedFromChildren();\n this.setSelectedParams({\n newValue: selected !== null && selected !== void 0 ? selected : false,\n source: 'selectableChanged',\n });\n return;\n }\n // if row is selected but shouldn't be selectable, then deselect.\n if (this.isSelected() && !this.selectable) {\n this.setSelectedParams({\n newValue: false,\n source: 'selectableChanged',\n });\n }\n }\n }\n setId(id) {\n // see if user is providing the id's\n const getRowIdFunc = this.beans.gridOptionsService.getCallback('getRowId');\n if (getRowIdFunc) {\n // if user is providing the id's, then we set the id only after the data has been set.\n // this is important for virtual pagination and viewport, where empty rows exist.\n if (this.data) {\n // we pass 'true' as we skip this level when generating keys,\n // as we don't always have the key for this level (eg when updating\n // data via transaction on SSRM, we are getting key to look up the\n // RowNode, don't have the RowNode yet, thus no way to get the current key)\n const parentKeys = this.getGroupKeys(true);\n this.id = getRowIdFunc({\n data: this.data,\n parentKeys: parentKeys.length > 0 ? parentKeys : undefined,\n level: this.level\n });\n // make sure id provided doesn't start with 'row-group-' as this is reserved. also check that\n // it has 'startsWith' in case the user provided a number.\n if (this.id !== null && typeof this.id === 'string' && this.id.startsWith(RowNode.ID_PREFIX_ROW_GROUP)) {\n console.error(`AG Grid: Row IDs cannot start with ${RowNode.ID_PREFIX_ROW_GROUP}, this is a reserved prefix for AG Grid's row grouping feature.`);\n }\n // force id to be a string\n if (this.id !== null && typeof this.id !== 'string') {\n this.id = '' + this.id;\n }\n }\n else {\n // this can happen if user has set blank into the rowNode after the row previously\n // having data. this happens in virtual page row model, when data is delete and\n // the page is refreshed.\n this.id = undefined;\n }\n }\n else {\n this.id = id;\n }\n }\n getGroupKeys(excludeSelf = false) {\n const keys = [];\n let pointer = this;\n if (excludeSelf) {\n pointer = pointer.parent;\n }\n while (pointer && pointer.level >= 0) {\n keys.push(pointer.key);\n pointer = pointer.parent;\n }\n keys.reverse();\n return keys;\n }\n isPixelInRange(pixel) {\n if (!exists(this.rowTop) || !exists(this.rowHeight)) {\n return false;\n }\n return pixel >= this.rowTop && pixel < (this.rowTop + this.rowHeight);\n }\n setFirstChild(firstChild) {\n if (this.firstChild === firstChild) {\n return;\n }\n this.firstChild = firstChild;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_FIRST_CHILD_CHANGED));\n }\n }\n setLastChild(lastChild) {\n if (this.lastChild === lastChild) {\n return;\n }\n this.lastChild = lastChild;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_LAST_CHILD_CHANGED));\n }\n }\n setChildIndex(childIndex) {\n if (this.childIndex === childIndex) {\n return;\n }\n this.childIndex = childIndex;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_CHILD_INDEX_CHANGED));\n }\n }\n setRowTop(rowTop) {\n this.oldRowTop = this.rowTop;\n if (this.rowTop === rowTop) {\n return;\n }\n this.rowTop = rowTop;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_TOP_CHANGED));\n }\n this.setDisplayed(rowTop !== null);\n }\n clearRowTopAndRowIndex() {\n this.oldRowTop = null;\n this.setRowTop(null);\n this.setRowIndex(null);\n }\n setDisplayed(displayed) {\n if (this.displayed === displayed) {\n return;\n }\n this.displayed = displayed;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_DISPLAYED_CHANGED));\n }\n }\n setDragging(dragging) {\n if (this.dragging === dragging) {\n return;\n }\n this.dragging = dragging;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_DRAGGING_CHANGED));\n }\n }\n setHighlighted(highlighted) {\n if (highlighted === this.highlighted) {\n return;\n }\n this.highlighted = highlighted;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_HIGHLIGHT_CHANGED));\n }\n }\n setHovered(hovered) {\n if (this.hovered === hovered) {\n return;\n }\n this.hovered = hovered;\n }\n isHovered() {\n return this.hovered;\n }\n setAllChildrenCount(allChildrenCount) {\n if (this.allChildrenCount === allChildrenCount) {\n return;\n }\n this.allChildrenCount = allChildrenCount;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_ALL_CHILDREN_COUNT_CHANGED));\n }\n }\n setMaster(master) {\n if (this.master === master) {\n return;\n }\n // if changing AWAY from master, then unexpand, otherwise\n // next time it's shown it is expanded again\n if (this.master && !master) {\n this.expanded = false;\n }\n this.master = master;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_MASTER_CHANGED));\n }\n }\n setGroup(group) {\n if (this.group === group) {\n return;\n }\n // if we used to be a group, and no longer, then close the node\n if (this.group && !group) {\n this.expanded = false;\n }\n this.group = group;\n this.updateHasChildren();\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_GROUP_CHANGED));\n }\n }\n /**\n * Sets the row height.\n * Call if you want to change the height initially assigned to the row.\n * After calling, you must call `api.onRowHeightChanged()` so the grid knows it needs to work out the placement of the rows. */\n setRowHeight(rowHeight, estimated = false) {\n this.rowHeight = rowHeight;\n this.rowHeightEstimated = estimated;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_HEIGHT_CHANGED));\n }\n }\n setRowAutoHeight(cellHeight, column) {\n if (!this.__autoHeights) {\n this.__autoHeights = {};\n }\n this.__autoHeights[column.getId()] = cellHeight;\n if (cellHeight != null) {\n if (this.checkAutoHeightsDebounced == null) {\n this.checkAutoHeightsDebounced = debounce(this.checkAutoHeights.bind(this), 1);\n }\n this.checkAutoHeightsDebounced();\n }\n }\n checkAutoHeights() {\n let notAllPresent = false;\n let nonePresent = true;\n let newRowHeight = 0;\n const autoHeights = this.__autoHeights;\n if (autoHeights == null) {\n return;\n }\n const displayedAutoHeightCols = this.beans.columnModel.getAllDisplayedAutoHeightCols();\n displayedAutoHeightCols.forEach(col => {\n let cellHeight = autoHeights[col.getId()];\n if (cellHeight == null) {\n // If column spanning is active a column may not provide auto height for a row if that\n // cell is not present for the given row due to a previous cell spanning over the auto height column.\n if (this.beans.columnModel.isColSpanActive()) {\n let activeColsForRow = [];\n switch (col.getPinned()) {\n case 'left':\n activeColsForRow = this.beans.columnModel.getDisplayedLeftColumnsForRow(this);\n break;\n case 'right':\n activeColsForRow = this.beans.columnModel.getDisplayedRightColumnsForRow(this);\n break;\n case null:\n activeColsForRow = this.beans.columnModel.getViewportCenterColumnsForRow(this);\n break;\n }\n if (activeColsForRow.includes(col)) {\n // Column is present in the row, i.e not spanned over, but no auto height was provided so we cannot calculate the row height\n notAllPresent = true;\n return;\n }\n // Ignore this column as it is spanned over and not present in the row\n cellHeight = -1;\n }\n else {\n notAllPresent = true;\n return;\n }\n }\n else {\n // At least one auto height is present\n nonePresent = false;\n }\n if (cellHeight > newRowHeight) {\n newRowHeight = cellHeight;\n }\n });\n if (notAllPresent) {\n return;\n }\n // we take min of 10, so we don't adjust for empty rows. if <10, we put to default.\n // this prevents the row starting very small when waiting for async components,\n // which would then mean the grid squashes in far to many rows (as small heights\n // means more rows fit in) which looks crap. so best ignore small values and assume\n // we are still waiting for values to render.\n if (nonePresent || newRowHeight < 10) {\n newRowHeight = this.beans.gridOptionsService.getRowHeightForNode(this).height;\n }\n if (newRowHeight == this.rowHeight) {\n return;\n }\n this.setRowHeight(newRowHeight);\n const rowModel = this.beans.rowModel;\n if (rowModel.onRowHeightChangedDebounced) {\n rowModel.onRowHeightChangedDebounced();\n }\n }\n setRowIndex(rowIndex) {\n if (this.rowIndex === rowIndex) {\n return;\n }\n this.rowIndex = rowIndex;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_ROW_INDEX_CHANGED));\n }\n }\n setUiLevel(uiLevel) {\n if (this.uiLevel === uiLevel) {\n return;\n }\n this.uiLevel = uiLevel;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_UI_LEVEL_CHANGED));\n }\n }\n /**\n * Set the expanded state of this rowNode. Pass `true` to expand and `false` to collapse.\n */\n setExpanded(expanded, e) {\n if (this.expanded === expanded) {\n return;\n }\n this.expanded = expanded;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_EXPANDED_CHANGED));\n }\n const event = Object.assign({}, this.createGlobalRowEvent(Events.EVENT_ROW_GROUP_OPENED), {\n expanded,\n event: e || null\n });\n this.beans.rowNodeEventThrottle.dispatchExpanded(event);\n // when using footers we need to refresh the group row, as the aggregation\n // values jump between group and footer\n if (this.sibling) {\n this.beans.rowRenderer.refreshCells({ rowNodes: [this] });\n }\n }\n createGlobalRowEvent(type) {\n return this.beans.gridOptionsService.addGridCommonParams({\n type: type,\n node: this,\n data: this.data,\n rowIndex: this.rowIndex,\n rowPinned: this.rowPinned\n });\n }\n dispatchLocalEvent(event) {\n if (this.eventService) {\n this.eventService.dispatchEvent(event);\n }\n }\n /**\n * Replaces the value on the `rowNode` for the specified column. When complete,\n * the grid will refresh the rendered cell on the required row only.\n * **Note**: This method only fires `onCellEditRequest` when the Grid is in **Read Only** mode.\n *\n * @param colKey The column where the value should be updated\n * @param newValue The new value\n * @param eventSource The source of the event\n * @returns `true` if the value was changed, otherwise `false`.\n */\n setDataValue(colKey, newValue, eventSource) {\n const getColumnFromKey = () => {\n var _a;\n if (typeof colKey !== 'string') {\n return colKey;\n }\n // if in pivot mode, grid columns wont include primary columns\n return (_a = this.beans.columnModel.getGridColumn(colKey)) !== null && _a !== void 0 ? _a : this.beans.columnModel.getPrimaryColumn(colKey);\n };\n // When it is done via the editors, no 'cell changed' event gets fired, as it's assumed that\n // the cell knows about the change given it's in charge of the editing.\n // this method is for the client to call, so the cell listens for the change\n // event, and also flashes the cell when the change occurs.\n const column = getColumnFromKey();\n const oldValue = this.getValueFromValueService(column);\n if (this.beans.gridOptionsService.get('readOnlyEdit')) {\n this.dispatchEventForSaveValueReadOnly(column, oldValue, newValue, eventSource);\n return false;\n }\n const valueChanged = this.beans.valueService.setValue(this, column, newValue, eventSource);\n this.dispatchCellChangedEvent(column, newValue, oldValue);\n this.checkRowSelectable();\n return valueChanged;\n }\n getValueFromValueService(column) {\n // if we don't check this, then the grid will render leaf groups as open even if we are not\n // allowing the user to open leaf groups. confused? remember for pivot mode we don't allow\n // opening leaf groups, so we have to force leafGroups to be closed in case the user expanded\n // them via the API, or user user expanded them in the UI before turning on pivot mode\n const lockedClosedGroup = this.leafGroup && this.beans.columnModel.isPivotMode();\n const isOpenGroup = this.group && this.expanded && !this.footer && !lockedClosedGroup;\n // are we showing group footers\n const getGroupIncludeFooter = this.beans.gridOptionsService.getGroupIncludeFooter();\n const groupFootersEnabled = getGroupIncludeFooter({ node: this });\n // if doing footers, we normally don't show agg data at group level when group is open\n const groupAlwaysShowAggData = this.beans.gridOptionsService.get('groupSuppressBlankHeader');\n // if doing grouping and footers, we don't want to include the agg value\n // in the header when the group is open\n const ignoreAggData = (isOpenGroup && groupFootersEnabled) && !groupAlwaysShowAggData;\n const value = this.beans.valueService.getValue(column, this, false, ignoreAggData);\n return value;\n }\n dispatchEventForSaveValueReadOnly(column, oldValue, newValue, eventSource) {\n const event = this.beans.gridOptionsService.addGridCommonParams({\n type: Events.EVENT_CELL_EDIT_REQUEST,\n event: null,\n rowIndex: this.rowIndex,\n rowPinned: this.rowPinned,\n column: column,\n colDef: column.getColDef(),\n data: this.data,\n node: this,\n oldValue,\n newValue,\n value: newValue,\n source: eventSource\n });\n this.beans.eventService.dispatchEvent(event);\n }\n setGroupValue(colKey, newValue) {\n const column = this.beans.columnModel.getGridColumn(colKey);\n if (missing(this.groupData)) {\n this.groupData = {};\n }\n const columnId = column.getColId();\n const oldValue = this.groupData[columnId];\n if (oldValue === newValue) {\n return;\n }\n this.groupData[columnId] = newValue;\n this.dispatchCellChangedEvent(column, newValue, oldValue);\n }\n // sets the data for an aggregation\n setAggData(newAggData) {\n const oldAggData = this.aggData;\n this.aggData = newAggData;\n // if no event service, nobody has registered for events, so no need fire event\n if (this.eventService) {\n const eventFunc = (colId) => {\n const value = this.aggData ? this.aggData[colId] : undefined;\n const oldValue = oldAggData ? oldAggData[colId] : undefined;\n if (value === oldValue) {\n return;\n }\n // do a quick lookup - despite the event it's possible the column no longer exists\n const column = this.beans.columnModel.lookupGridColumn(colId);\n if (!column) {\n return;\n }\n this.dispatchCellChangedEvent(column, value, oldValue);\n };\n for (const key in this.aggData) {\n eventFunc(key);\n }\n for (const key in newAggData) {\n if (key in this.aggData) {\n continue;\n } // skip if already fired an event.\n eventFunc(key);\n }\n }\n }\n updateHasChildren() {\n // in CSRM, the group property will be set before the childrenAfterGroup property, check both to prevent flickering\n let newValue = (this.group && !this.footer) || (this.childrenAfterGroup && this.childrenAfterGroup.length > 0);\n const isSsrm = this.beans.gridOptionsService.isRowModelType('serverSide');\n if (isSsrm) {\n const isTreeData = this.beans.gridOptionsService.get('treeData');\n const isGroupFunc = this.beans.gridOptionsService.get('isServerSideGroup');\n // stubs and footers can never have children, as they're grid rows. if tree data the presence of children\n // is determined by the isServerSideGroup callback, if not tree data then the rows group property will be set.\n newValue = !this.stub && !this.footer && (isTreeData ? !!isGroupFunc && isGroupFunc(this.data) : !!this.group);\n }\n if (newValue !== this.__hasChildren) {\n this.__hasChildren = !!newValue;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_HAS_CHILDREN_CHANGED));\n }\n }\n }\n hasChildren() {\n if (this.__hasChildren == null) {\n this.updateHasChildren();\n }\n return this.__hasChildren;\n }\n isEmptyRowGroupNode() {\n return this.group && missingOrEmpty(this.childrenAfterGroup);\n }\n dispatchCellChangedEvent(column, newValue, oldValue) {\n const cellChangedEvent = {\n type: RowNode.EVENT_CELL_CHANGED,\n node: this,\n column: column,\n newValue: newValue,\n oldValue: oldValue\n };\n this.dispatchLocalEvent(cellChangedEvent);\n }\n /**\n * The first time `quickFilter` runs, the grid creates a one-off string representation of the row.\n * This string is then used for the quick filter instead of hitting each column separately.\n * When you edit, using grid editing, this string gets cleared down.\n * However if you edit without using grid editing, you will need to clear this string down for the row to be updated with the new values.\n * Otherwise new values will not work with the `quickFilter`. */\n resetQuickFilterAggregateText() {\n this.quickFilterAggregateText = null;\n }\n /** Returns:\n * - `true` if the node can be expanded, i.e it is a group or master row.\n * - `false` if the node cannot be expanded\n */\n isExpandable() {\n if (this.footer) {\n return false;\n }\n if (this.beans.columnModel.isPivotMode()) {\n // master detail and leaf groups aren't expandable in pivot mode.\n return this.hasChildren() && !this.leafGroup;\n }\n return this.hasChildren() || !!this.master;\n }\n /** Returns:\n * - `true` if node is selected,\n * - `false` if the node isn't selected\n * - `undefined` if it's partially selected (group where not all children are selected). */\n isSelected() {\n // for footers, we just return what our sibling selected state is, as cannot select a footer\n if (this.footer) {\n return this.sibling.isSelected();\n }\n return this.selected;\n }\n /** Perform a depth-first search of this node and its children. */\n depthFirstSearch(callback) {\n if (this.childrenAfterGroup) {\n this.childrenAfterGroup.forEach(child => child.depthFirstSearch(callback));\n }\n callback(this);\n }\n // + selectionController.calculatedSelectedForAllGroupNodes()\n calculateSelectedFromChildren() {\n var _a;\n let atLeastOneSelected = false;\n let atLeastOneDeSelected = false;\n let atLeastOneMixed = false;\n if (!((_a = this.childrenAfterGroup) === null || _a === void 0 ? void 0 : _a.length)) {\n return this.selectable ? this.selected : null;\n }\n for (let i = 0; i < this.childrenAfterGroup.length; i++) {\n const child = this.childrenAfterGroup[i];\n let childState = child.isSelected();\n // non-selectable nodes must be calculated from their children, or ignored if no value results.\n if (!child.selectable) {\n const selectable = child.calculateSelectedFromChildren();\n if (selectable === null) {\n continue;\n }\n childState = selectable;\n }\n switch (childState) {\n case true:\n atLeastOneSelected = true;\n break;\n case false:\n atLeastOneDeSelected = true;\n break;\n default:\n atLeastOneMixed = true;\n break;\n }\n }\n if (atLeastOneMixed || (atLeastOneSelected && atLeastOneDeSelected)) {\n return undefined;\n }\n if (atLeastOneSelected) {\n return true;\n }\n if (atLeastOneDeSelected) {\n return false;\n }\n if (!this.selectable) {\n return null;\n }\n return this.selected;\n }\n setSelectedInitialValue(selected) {\n this.selected = selected;\n }\n selectThisNode(newValue, e, source = 'api') {\n // we only check selectable when newValue=true (ie selecting) to allow unselecting values,\n // as selectable is dynamic, need a way to unselect rows when selectable becomes false.\n const selectionNotAllowed = !this.selectable && newValue;\n const selectionNotChanged = this.selected === newValue;\n if (selectionNotAllowed || selectionNotChanged) {\n return false;\n }\n this.selected = newValue;\n if (this.eventService) {\n this.dispatchLocalEvent(this.createLocalRowEvent(RowNode.EVENT_ROW_SELECTED));\n const sibling = this.sibling;\n if (sibling && sibling.footer) {\n sibling.dispatchLocalEvent(sibling.createLocalRowEvent(RowNode.EVENT_ROW_SELECTED));\n }\n }\n const event = Object.assign(Object.assign({}, this.createGlobalRowEvent(Events.EVENT_ROW_SELECTED)), { event: e || null, source });\n this.beans.eventService.dispatchEvent(event);\n return true;\n }\n /**\n * Select (or deselect) the node.\n * @param newValue -`true` for selection, `false` for deselection.\n * @param clearSelection - If selecting, then passing `true` will select the node exclusively (i.e. NOT do multi select). If doing deselection, `clearSelection` has no impact.\n * @param source - Source property that will appear in the `selectionChanged` event.\n */\n setSelected(newValue, clearSelection = false, source = 'api') {\n if (typeof source === 'boolean') {\n console.warn('AG Grid: since version v30, rowNode.setSelected() property `suppressFinishActions` has been removed, please use `gridApi.setNodesSelected()` for bulk actions, and the event `source` property for ignoring events instead.');\n return;\n }\n this.setSelectedParams({\n newValue,\n clearSelection,\n rangeSelect: false,\n source\n });\n }\n // this is for internal use only. To make calling code more readable, this is the same method as setSelected except it takes names parameters\n setSelectedParams(params) {\n if (this.rowPinned) {\n console.warn('AG Grid: cannot select pinned rows');\n return 0;\n }\n if (this.id === undefined) {\n console.warn('AG Grid: cannot select node until id for node is known');\n return 0;\n }\n return this.beans.selectionService.setNodesSelected(Object.assign(Object.assign({}, params), { nodes: [this.footer ? this.sibling : this] }));\n }\n /**\n * Returns:\n * - `true` if node is either pinned to the `top` or `bottom`\n * - `false` if the node isn't pinned\n */\n isRowPinned() {\n return this.rowPinned === 'top' || this.rowPinned === 'bottom';\n }\n isParentOfNode(potentialParent) {\n let parentNode = this.parent;\n while (parentNode) {\n if (parentNode === potentialParent) {\n return true;\n }\n parentNode = parentNode.parent;\n }\n return false;\n }\n /** Add an event listener. */\n addEventListener(eventType, userListener) {\n var _a, _b;\n if (!this.eventService) {\n this.eventService = new EventService();\n }\n if (this.beans.frameworkOverrides.shouldWrapOutgoing && !this.frameworkEventListenerService) {\n this.eventService.setFrameworkOverrides(this.beans.frameworkOverrides);\n this.frameworkEventListenerService = new FrameworkEventListenerService(this.beans.frameworkOverrides);\n }\n const listener = (_b = (_a = this.frameworkEventListenerService) === null || _a === void 0 ? void 0 : _a.wrap(userListener)) !== null && _b !== void 0 ? _b : userListener;\n this.eventService.addEventListener(eventType, listener);\n }\n /** Remove event listener. */\n removeEventListener(eventType, userListener) {\n var _a, _b;\n if (!this.eventService) {\n return;\n }\n const listener = (_b = (_a = this.frameworkEventListenerService) === null || _a === void 0 ? void 0 : _a.unwrap(userListener)) !== null && _b !== void 0 ? _b : userListener;\n this.eventService.removeEventListener(eventType, listener);\n if (this.eventService.noRegisteredListenersExist()) {\n this.eventService = null;\n }\n }\n onMouseEnter() {\n this.dispatchLocalEvent(this.createLocalRowEvent(RowNode.EVENT_MOUSE_ENTER));\n }\n onMouseLeave() {\n this.dispatchLocalEvent(this.createLocalRowEvent(RowNode.EVENT_MOUSE_LEAVE));\n }\n getFirstChildOfFirstChild(rowGroupColumn) {\n let currentRowNode = this;\n let isCandidate = true;\n let foundFirstChildPath = false;\n let nodeToSwapIn = null;\n // if we are hiding groups, then if we are the first child, of the first child,\n // all the way up to the column we are interested in, then we show the group cell.\n while (isCandidate && !foundFirstChildPath) {\n const parentRowNode = currentRowNode.parent;\n const firstChild = exists(parentRowNode) && currentRowNode.firstChild;\n if (firstChild) {\n if (parentRowNode.rowGroupColumn === rowGroupColumn) {\n foundFirstChildPath = true;\n nodeToSwapIn = parentRowNode;\n }\n }\n else {\n isCandidate = false;\n }\n currentRowNode = parentRowNode;\n }\n return foundFirstChildPath ? nodeToSwapIn : null;\n }\n /**\n * Returns:\n * - `true` if the node is a full width cell\n * - `false` if the node is not a full width cell\n */\n isFullWidthCell() {\n if (this.detail) {\n return true;\n }\n const isFullWidthCellFunc = this.beans.gridOptionsService.getCallback('isFullWidthRow');\n return isFullWidthCellFunc ? isFullWidthCellFunc({ rowNode: this }) : false;\n }\n /**\n * Returns the route of the row node. If the Row Node is a group, it returns the route to that Row Node.\n * If the Row Node is not a group, it returns `undefined`.\n */\n getRoute() {\n if (this.key == null) {\n return;\n }\n const res = [];\n let pointer = this;\n while (pointer.key != null) {\n res.push(pointer.key);\n pointer = pointer.parent;\n }\n return res.reverse();\n }\n createFooter() {\n // only create footer node once, otherwise we have daemons and\n // the animate screws up with the daemons hanging around\n if (this.sibling) {\n return;\n }\n // we don't copy these properties as they cause the footer node\n // to have properties which should be unique to the row.\n const ignoredProperties = new Set([\n 'eventService',\n '__objectId',\n 'sticky',\n ]);\n const footerNode = new RowNode(this.beans);\n Object.keys(this).forEach(key => {\n if (ignoredProperties.has(key)) {\n return;\n }\n footerNode[key] = this[key];\n });\n footerNode.footer = true;\n footerNode.setRowTop(null);\n footerNode.setRowIndex(null);\n // manually set oldRowTop to null so we discard any\n // previous information about its position.\n footerNode.oldRowTop = null;\n footerNode.id = 'rowGroupFooter_' + this.id;\n // get both header and footer to reference each other as siblings. this is never undone,\n // only overwritten. so if a group is expanded, then contracted, it will have a ghost\n // sibling - but that's fine, as we can ignore this if the header is contracted.\n footerNode.sibling = this;\n this.sibling = footerNode;\n }\n // Only used by SSRM. In CSRM this is never used as footers should always be present for\n // the purpose of exporting collapsed groups. In SSRM it is not possible to export collapsed\n // groups anyway, so can destroy footers.\n destroyFooter() {\n if (!this.sibling) {\n return;\n }\n this.sibling.setRowTop(null);\n this.sibling.setRowIndex(null);\n this.sibling = undefined;\n }\n}\nRowNode.ID_PREFIX_ROW_GROUP = 'row-group-';\nRowNode.ID_PREFIX_TOP_PINNED = 't-';\nRowNode.ID_PREFIX_BOTTOM_PINNED = 'b-';\nRowNode.OBJECT_ID_SEQUENCE = 0;\nRowNode.EVENT_ROW_SELECTED = 'rowSelected';\nRowNode.EVENT_DATA_CHANGED = 'dataChanged';\nRowNode.EVENT_CELL_CHANGED = 'cellChanged';\nRowNode.EVENT_ALL_CHILDREN_COUNT_CHANGED = 'allChildrenCountChanged';\nRowNode.EVENT_MASTER_CHANGED = 'masterChanged';\nRowNode.EVENT_GROUP_CHANGED = 'groupChanged';\nRowNode.EVENT_MOUSE_ENTER = 'mouseEnter';\nRowNode.EVENT_MOUSE_LEAVE = 'mouseLeave';\nRowNode.EVENT_HEIGHT_CHANGED = 'heightChanged';\nRowNode.EVENT_TOP_CHANGED = 'topChanged';\nRowNode.EVENT_DISPLAYED_CHANGED = 'displayedChanged';\nRowNode.EVENT_FIRST_CHILD_CHANGED = 'firstChildChanged';\nRowNode.EVENT_LAST_CHILD_CHANGED = 'lastChildChanged';\nRowNode.EVENT_CHILD_INDEX_CHANGED = 'childIndexChanged';\nRowNode.EVENT_ROW_INDEX_CHANGED = 'rowIndexChanged';\nRowNode.EVENT_EXPANDED_CHANGED = 'expandedChanged';\nRowNode.EVENT_HAS_CHILDREN_CHANGED = 'hasChildrenChanged';\nRowNode.EVENT_SELECTABLE_CHANGED = 'selectableChanged';\nRowNode.EVENT_UI_LEVEL_CHANGED = 'uiLevelChanged';\nRowNode.EVENT_HIGHLIGHT_CHANGED = 'rowHighlightChanged';\nRowNode.EVENT_DRAGGING_CHANGED = 'draggingChanged';\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { PostConstruct } from '../context/context.mjs';\nimport { Component } from '../widgets/component.mjs';\nimport { Events } from '../events.mjs';\nimport { RefSelector } from '../widgets/componentAnnotations.mjs';\nimport { RowNode } from '../entities/rowNode.mjs';\nimport { stopPropagationForAgGrid } from '../utils/event.mjs';\nexport class CheckboxSelectionComponent extends Component {\n constructor() {\n super(/* html*/ `\n
\n \n
`);\n }\n postConstruct() {\n this.eCheckbox.setPassive(true);\n }\n getCheckboxId() {\n return this.eCheckbox.getInputElement().id;\n }\n onDataChanged() {\n // when rows are loaded for the second time, this can impact the selection, as a row\n // could be loaded as already selected (if user scrolls down, and then up again).\n this.onSelectionChanged();\n }\n onSelectableChanged() {\n this.showOrHideSelect();\n }\n onSelectionChanged() {\n const state = this.rowNode.isSelected();\n this.eCheckbox.setValue(state, true);\n }\n onClicked(newValue, groupSelectsFiltered, event) {\n return this.rowNode.setSelectedParams({ newValue, rangeSelect: event.shiftKey, groupSelectsFiltered, event, source: 'checkboxSelected' });\n }\n init(params) {\n this.rowNode = params.rowNode;\n this.column = params.column;\n this.overrides = params.overrides;\n this.onSelectionChanged();\n // we don't want double click on this icon to open a group\n this.addManagedListener(this.eCheckbox.getInputElement(), 'dblclick', (event) => {\n stopPropagationForAgGrid(event);\n });\n this.addManagedListener(this.eCheckbox.getInputElement(), 'click', (event) => {\n // we don't want the row clicked event to fire when selecting the checkbox, otherwise the row\n // would possibly get selected twice\n stopPropagationForAgGrid(event);\n const groupSelectsFiltered = this.gridOptionsService.get('groupSelectsFiltered');\n const isSelected = this.eCheckbox.getValue();\n if (this.shouldHandleIndeterminateState(isSelected, groupSelectsFiltered)) {\n // try toggling children to determine action.\n const result = this.onClicked(true, groupSelectsFiltered, event || {});\n if (result === 0) {\n this.onClicked(false, groupSelectsFiltered, event);\n }\n }\n else if (isSelected) {\n this.onClicked(false, groupSelectsFiltered, event);\n }\n else {\n this.onClicked(true, groupSelectsFiltered, event || {});\n }\n });\n this.addManagedListener(this.rowNode, RowNode.EVENT_ROW_SELECTED, this.onSelectionChanged.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_DATA_CHANGED, this.onDataChanged.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_SELECTABLE_CHANGED, this.onSelectableChanged.bind(this));\n const isRowSelectableFunc = this.gridOptionsService.get('isRowSelectable');\n const checkboxVisibleIsDynamic = isRowSelectableFunc || typeof this.getIsVisible() === 'function';\n if (checkboxVisibleIsDynamic) {\n const showOrHideSelectListener = this.showOrHideSelect.bind(this);\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, showOrHideSelectListener);\n this.addManagedListener(this.rowNode, RowNode.EVENT_DATA_CHANGED, showOrHideSelectListener);\n this.addManagedListener(this.rowNode, RowNode.EVENT_CELL_CHANGED, showOrHideSelectListener);\n this.showOrHideSelect();\n }\n this.eCheckbox.getInputElement().setAttribute('tabindex', '-1');\n }\n shouldHandleIndeterminateState(isSelected, groupSelectsFiltered) {\n // for CSRM groupSelectsFiltered, we can get an indeterminate state where all filtered children are selected,\n // and we would expect clicking to deselect all rather than select all\n return groupSelectsFiltered &&\n (this.eCheckbox.getPreviousValue() === undefined || isSelected === undefined) &&\n this.gridOptionsService.isRowModelType('clientSide');\n }\n showOrHideSelect() {\n var _a, _b, _c, _d;\n // if the isRowSelectable() is not provided the row node is selectable by default\n let selectable = this.rowNode.selectable;\n // checkboxSelection callback is deemed a legacy solution however we will still consider it's result.\n // If selectable, then also check the colDef callback. if not selectable, this it short circuits - no need\n // to call the colDef callback.\n const isVisible = this.getIsVisible();\n if (selectable) {\n if (typeof isVisible === 'function') {\n const extraParams = (_a = this.overrides) === null || _a === void 0 ? void 0 : _a.callbackParams;\n const params = (_b = this.column) === null || _b === void 0 ? void 0 : _b.createColumnFunctionCallbackParams(this.rowNode);\n selectable = params ? isVisible(Object.assign(Object.assign({}, extraParams), params)) : false;\n }\n else {\n selectable = isVisible !== null && isVisible !== void 0 ? isVisible : false;\n }\n }\n const disableInsteadOfHide = (_c = this.column) === null || _c === void 0 ? void 0 : _c.getColDef().showDisabledCheckboxes;\n if (disableInsteadOfHide) {\n this.eCheckbox.setDisabled(!selectable);\n this.setVisible(true);\n this.setDisplayed(true);\n return;\n }\n if ((_d = this.overrides) === null || _d === void 0 ? void 0 : _d.removeHidden) {\n this.setDisplayed(selectable);\n return;\n }\n this.setVisible(selectable);\n }\n getIsVisible() {\n var _a, _b;\n if (this.overrides) {\n return this.overrides.isVisible;\n }\n // column will be missing if groupDisplayType = 'groupRows'\n return (_b = (_a = this.column) === null || _a === void 0 ? void 0 : _a.getColDef()) === null || _b === void 0 ? void 0 : _b.checkboxSelection;\n }\n}\n__decorate([\n RefSelector('eCheckbox')\n], CheckboxSelectionComponent.prototype, \"eCheckbox\", void 0);\n__decorate([\n PostConstruct\n], CheckboxSelectionComponent.prototype, \"postConstruct\", null);\n","export var VerticalDirection;\n(function (VerticalDirection) {\n VerticalDirection[VerticalDirection[\"Up\"] = 0] = \"Up\";\n VerticalDirection[VerticalDirection[\"Down\"] = 1] = \"Down\";\n})(VerticalDirection || (VerticalDirection = {}));\nexport var HorizontalDirection;\n(function (HorizontalDirection) {\n HorizontalDirection[HorizontalDirection[\"Left\"] = 0] = \"Left\";\n HorizontalDirection[HorizontalDirection[\"Right\"] = 1] = \"Right\";\n})(HorizontalDirection || (HorizontalDirection = {}));\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar DragAndDropService_1;\nimport { BeanStub } from \"../context/beanStub.mjs\";\nimport { PostConstruct, Bean, Autowired, PreDestroy } from \"../context/context.mjs\";\nimport { escapeString } from \"../utils/string.mjs\";\nimport { createIcon } from \"../utils/icon.mjs\";\nimport { flatten, removeFromArray } from \"../utils/array.mjs\";\nimport { getBodyHeight, getBodyWidth } from \"../utils/browser.mjs\";\nimport { loadTemplate, clearElement, getElementRectWithOffset } from \"../utils/dom.mjs\";\nimport { isFunction } from \"../utils/function.mjs\";\nimport { HorizontalDirection, VerticalDirection } from \"../constants/direction.mjs\";\nexport var DragSourceType;\n(function (DragSourceType) {\n DragSourceType[DragSourceType[\"ToolPanel\"] = 0] = \"ToolPanel\";\n DragSourceType[DragSourceType[\"HeaderCell\"] = 1] = \"HeaderCell\";\n DragSourceType[DragSourceType[\"RowDrag\"] = 2] = \"RowDrag\";\n DragSourceType[DragSourceType[\"ChartPanel\"] = 3] = \"ChartPanel\";\n DragSourceType[DragSourceType[\"AdvancedFilterBuilder\"] = 4] = \"AdvancedFilterBuilder\";\n})(DragSourceType || (DragSourceType = {}));\nlet DragAndDropService = DragAndDropService_1 = class DragAndDropService extends BeanStub {\n constructor() {\n super(...arguments);\n this.dragSourceAndParamsList = [];\n this.dropTargets = [];\n }\n init() {\n this.ePinnedIcon = createIcon('columnMovePin', this.gridOptionsService, null);\n this.eHideIcon = createIcon('columnMoveHide', this.gridOptionsService, null);\n this.eMoveIcon = createIcon('columnMoveMove', this.gridOptionsService, null);\n this.eLeftIcon = createIcon('columnMoveLeft', this.gridOptionsService, null);\n this.eRightIcon = createIcon('columnMoveRight', this.gridOptionsService, null);\n this.eGroupIcon = createIcon('columnMoveGroup', this.gridOptionsService, null);\n this.eAggregateIcon = createIcon('columnMoveValue', this.gridOptionsService, null);\n this.ePivotIcon = createIcon('columnMovePivot', this.gridOptionsService, null);\n this.eDropNotAllowedIcon = createIcon('dropNotAllowed', this.gridOptionsService, null);\n }\n addDragSource(dragSource, allowTouch = false) {\n const params = {\n eElement: dragSource.eElement,\n dragStartPixels: dragSource.dragStartPixels,\n onDragStart: this.onDragStart.bind(this, dragSource),\n onDragStop: this.onDragStop.bind(this),\n onDragging: this.onDragging.bind(this),\n includeTouch: allowTouch\n };\n this.dragSourceAndParamsList.push({ params: params, dragSource: dragSource });\n this.dragService.addDragSource(params);\n }\n removeDragSource(dragSource) {\n const sourceAndParams = this.dragSourceAndParamsList.find(item => item.dragSource === dragSource);\n if (sourceAndParams) {\n this.dragService.removeDragSource(sourceAndParams.params);\n removeFromArray(this.dragSourceAndParamsList, sourceAndParams);\n }\n }\n clearDragSourceParamsList() {\n this.dragSourceAndParamsList.forEach(sourceAndParams => this.dragService.removeDragSource(sourceAndParams.params));\n this.dragSourceAndParamsList.length = 0;\n this.dropTargets.length = 0;\n }\n nudge() {\n if (this.dragging) {\n this.onDragging(this.eventLastTime, true);\n }\n }\n onDragStart(dragSource, mouseEvent) {\n this.dragging = true;\n this.dragSource = dragSource;\n this.eventLastTime = mouseEvent;\n this.dragItem = this.dragSource.getDragItem();\n if (this.dragSource.onDragStarted) {\n this.dragSource.onDragStarted();\n }\n this.createGhost();\n }\n onDragStop(mouseEvent) {\n this.eventLastTime = null;\n this.dragging = false;\n if (this.dragSource.onDragStopped) {\n this.dragSource.onDragStopped();\n }\n if (this.lastDropTarget && this.lastDropTarget.onDragStop) {\n const draggingEvent = this.createDropTargetEvent(this.lastDropTarget, mouseEvent, null, null, false);\n this.lastDropTarget.onDragStop(draggingEvent);\n }\n this.lastDropTarget = null;\n this.dragItem = null;\n this.removeGhost();\n }\n onDragging(mouseEvent, fromNudge) {\n var _a, _b, _c, _d;\n const hDirection = this.getHorizontalDirection(mouseEvent);\n const vDirection = this.getVerticalDirection(mouseEvent);\n this.eventLastTime = mouseEvent;\n this.positionGhost(mouseEvent);\n // check if mouseEvent intersects with any of the drop targets\n const validDropTargets = this.dropTargets.filter(target => this.isMouseOnDropTarget(mouseEvent, target));\n const dropTarget = this.findCurrentDropTarget(mouseEvent, validDropTargets);\n if (dropTarget !== this.lastDropTarget) {\n this.leaveLastTargetIfExists(mouseEvent, hDirection, vDirection, fromNudge);\n if (this.lastDropTarget !== null && dropTarget === null) {\n (_b = (_a = this.dragSource).onGridExit) === null || _b === void 0 ? void 0 : _b.call(_a, this.dragItem);\n }\n if (this.lastDropTarget === null && dropTarget !== null) {\n (_d = (_c = this.dragSource).onGridEnter) === null || _d === void 0 ? void 0 : _d.call(_c, this.dragItem);\n }\n this.enterDragTargetIfExists(dropTarget, mouseEvent, hDirection, vDirection, fromNudge);\n this.lastDropTarget = dropTarget;\n }\n else if (dropTarget && dropTarget.onDragging) {\n const draggingEvent = this.createDropTargetEvent(dropTarget, mouseEvent, hDirection, vDirection, fromNudge);\n dropTarget.onDragging(draggingEvent);\n }\n }\n getAllContainersFromDropTarget(dropTarget) {\n const secondaryContainers = dropTarget.getSecondaryContainers ? dropTarget.getSecondaryContainers() : null;\n const containers = [[dropTarget.getContainer()]];\n return secondaryContainers ? containers.concat(secondaryContainers) : containers;\n }\n allContainersIntersect(mouseEvent, containers) {\n for (const container of containers) {\n const rect = container.getBoundingClientRect();\n // if element is not visible, then width and height are zero\n if (rect.width === 0 || rect.height === 0) {\n return false;\n }\n const horizontalFit = mouseEvent.clientX >= rect.left && mouseEvent.clientX < rect.right;\n const verticalFit = mouseEvent.clientY >= rect.top && mouseEvent.clientY < rect.bottom;\n if (!horizontalFit || !verticalFit) {\n return false;\n }\n }\n return true;\n }\n // checks if the mouse is on the drop target. it checks eContainer and eSecondaryContainers\n isMouseOnDropTarget(mouseEvent, dropTarget) {\n const allContainersFromDropTarget = this.getAllContainersFromDropTarget(dropTarget);\n let mouseOverTarget = false;\n for (const currentContainers of allContainersFromDropTarget) {\n if (this.allContainersIntersect(mouseEvent, currentContainers)) {\n mouseOverTarget = true;\n break;\n }\n }\n if (dropTarget.targetContainsSource && !dropTarget.getContainer().contains(this.dragSource.eElement)) {\n return false;\n }\n return mouseOverTarget && dropTarget.isInterestedIn(this.dragSource.type, this.dragSource.eElement);\n }\n findCurrentDropTarget(mouseEvent, validDropTargets) {\n const len = validDropTargets.length;\n if (len === 0) {\n return null;\n }\n if (len === 1) {\n return validDropTargets[0];\n }\n const rootNode = this.gridOptionsService.getRootNode();\n // elementsFromPoint return a list of elements under\n // the mouseEvent sorted from topMost to bottomMost\n const elementStack = rootNode.elementsFromPoint(mouseEvent.clientX, mouseEvent.clientY);\n // loop over the sorted elementStack to find which dropTarget comes first\n for (const el of elementStack) {\n for (const dropTarget of validDropTargets) {\n const containers = flatten(this.getAllContainersFromDropTarget(dropTarget));\n if (containers.indexOf(el) !== -1) {\n return dropTarget;\n }\n }\n }\n // we should never hit this point of the code because only\n // valid dropTargets should be provided to this method.\n return null;\n }\n enterDragTargetIfExists(dropTarget, mouseEvent, hDirection, vDirection, fromNudge) {\n if (!dropTarget) {\n return;\n }\n if (dropTarget.onDragEnter) {\n const dragEnterEvent = this.createDropTargetEvent(dropTarget, mouseEvent, hDirection, vDirection, fromNudge);\n dropTarget.onDragEnter(dragEnterEvent);\n }\n this.setGhostIcon(dropTarget.getIconName ? dropTarget.getIconName() : null);\n }\n leaveLastTargetIfExists(mouseEvent, hDirection, vDirection, fromNudge) {\n if (!this.lastDropTarget) {\n return;\n }\n if (this.lastDropTarget.onDragLeave) {\n const dragLeaveEvent = this.createDropTargetEvent(this.lastDropTarget, mouseEvent, hDirection, vDirection, fromNudge);\n this.lastDropTarget.onDragLeave(dragLeaveEvent);\n }\n this.setGhostIcon(null);\n }\n addDropTarget(dropTarget) {\n this.dropTargets.push(dropTarget);\n }\n removeDropTarget(dropTarget) {\n this.dropTargets = this.dropTargets.filter(target => target.getContainer() !== dropTarget.getContainer());\n }\n hasExternalDropZones() {\n return this.dropTargets.some(zones => zones.external);\n }\n findExternalZone(params) {\n const externalTargets = this.dropTargets.filter(target => target.external);\n return externalTargets.find(zone => zone.getContainer() === params.getContainer()) || null;\n }\n getHorizontalDirection(event) {\n const clientX = this.eventLastTime && this.eventLastTime.clientX;\n const eClientX = event.clientX;\n if (clientX === eClientX) {\n return null;\n }\n return clientX > eClientX ? HorizontalDirection.Left : HorizontalDirection.Right;\n }\n getVerticalDirection(event) {\n const clientY = this.eventLastTime && this.eventLastTime.clientY;\n const eClientY = event.clientY;\n if (clientY === eClientY) {\n return null;\n }\n return clientY > eClientY ? VerticalDirection.Up : VerticalDirection.Down;\n }\n createDropTargetEvent(dropTarget, event, hDirection, vDirection, fromNudge) {\n // localise x and y to the target\n const dropZoneTarget = dropTarget.getContainer();\n const rect = dropZoneTarget.getBoundingClientRect();\n const { gridApi: api, columnApi, dragItem, dragSource } = this;\n const x = event.clientX - rect.left;\n const y = event.clientY - rect.top;\n return { event, x, y, vDirection, hDirection, dragSource, fromNudge, dragItem: dragItem, api, columnApi, dropZoneTarget };\n }\n positionGhost(event) {\n const ghost = this.eGhost;\n if (!ghost) {\n return;\n }\n const ghostRect = ghost.getBoundingClientRect();\n const ghostHeight = ghostRect.height;\n const browserWidth = getBodyWidth() - 2; // 2px for 1px borderLeft and 1px borderRight\n const browserHeight = getBodyHeight() - 2; // 2px for 1px borderTop and 1px borderBottom\n const offsetParentSize = getElementRectWithOffset(ghost.offsetParent);\n const { clientY, clientX } = event;\n let top = (clientY - offsetParentSize.top) - (ghostHeight / 2);\n let left = (clientX - offsetParentSize.left) - 10;\n const eDocument = this.gridOptionsService.getDocument();\n const win = (eDocument.defaultView || window);\n const windowScrollY = win.pageYOffset || eDocument.documentElement.scrollTop;\n const windowScrollX = win.pageXOffset || eDocument.documentElement.scrollLeft;\n // check ghost is not positioned outside of the browser\n if (browserWidth > 0 && ((left + ghost.clientWidth) > (browserWidth + windowScrollX))) {\n left = browserWidth + windowScrollX - ghost.clientWidth;\n }\n if (left < 0) {\n left = 0;\n }\n if (browserHeight > 0 && ((top + ghost.clientHeight) > (browserHeight + windowScrollY))) {\n top = browserHeight + windowScrollY - ghost.clientHeight;\n }\n if (top < 0) {\n top = 0;\n }\n ghost.style.left = `${left}px`;\n ghost.style.top = `${top}px`;\n }\n removeGhost() {\n if (this.eGhost && this.eGhostParent) {\n this.eGhostParent.removeChild(this.eGhost);\n }\n this.eGhost = null;\n }\n createGhost() {\n this.eGhost = loadTemplate(DragAndDropService_1.GHOST_TEMPLATE);\n this.mouseEventService.stampTopLevelGridCompWithGridInstance(this.eGhost);\n const { theme } = this.environment.getTheme();\n if (theme) {\n this.eGhost.classList.add(theme);\n }\n this.eGhostIcon = this.eGhost.querySelector('.ag-dnd-ghost-icon');\n this.setGhostIcon(null);\n const eText = this.eGhost.querySelector('.ag-dnd-ghost-label');\n let dragItemName = this.dragSource.dragItemName;\n if (isFunction(dragItemName)) {\n dragItemName = dragItemName();\n }\n eText.innerHTML = escapeString(dragItemName) || '';\n this.eGhost.style.height = '25px';\n this.eGhost.style.top = '20px';\n this.eGhost.style.left = '20px';\n const eDocument = this.gridOptionsService.getDocument();\n let rootNode = null;\n let targetEl = null;\n try {\n rootNode = eDocument.fullscreenElement;\n }\n catch (e) {\n // some environments like SalesForce will throw errors\n // simply by trying to read the fullscreenElement property\n }\n finally {\n if (!rootNode) {\n rootNode = this.gridOptionsService.getRootNode();\n }\n const body = rootNode.querySelector('body');\n if (body) {\n targetEl = body;\n }\n else if (rootNode instanceof ShadowRoot) {\n targetEl = rootNode;\n }\n else if (rootNode instanceof Document) {\n targetEl = rootNode === null || rootNode === void 0 ? void 0 : rootNode.documentElement;\n }\n else {\n targetEl = rootNode;\n }\n }\n this.eGhostParent = targetEl;\n if (!this.eGhostParent) {\n console.warn('AG Grid: could not find document body, it is needed for dragging columns');\n }\n else {\n this.eGhostParent.appendChild(this.eGhost);\n }\n }\n setGhostIcon(iconName, shake = false) {\n clearElement(this.eGhostIcon);\n let eIcon = null;\n if (!iconName) {\n iconName = this.dragSource.getDefaultIconName ? this.dragSource.getDefaultIconName() : DragAndDropService_1.ICON_NOT_ALLOWED;\n }\n switch (iconName) {\n case DragAndDropService_1.ICON_PINNED:\n eIcon = this.ePinnedIcon;\n break;\n case DragAndDropService_1.ICON_MOVE:\n eIcon = this.eMoveIcon;\n break;\n case DragAndDropService_1.ICON_LEFT:\n eIcon = this.eLeftIcon;\n break;\n case DragAndDropService_1.ICON_RIGHT:\n eIcon = this.eRightIcon;\n break;\n case DragAndDropService_1.ICON_GROUP:\n eIcon = this.eGroupIcon;\n break;\n case DragAndDropService_1.ICON_AGGREGATE:\n eIcon = this.eAggregateIcon;\n break;\n case DragAndDropService_1.ICON_PIVOT:\n eIcon = this.ePivotIcon;\n break;\n case DragAndDropService_1.ICON_NOT_ALLOWED:\n eIcon = this.eDropNotAllowedIcon;\n break;\n case DragAndDropService_1.ICON_HIDE:\n eIcon = this.eHideIcon;\n break;\n }\n this.eGhostIcon.classList.toggle('ag-shake-left-to-right', shake);\n if (eIcon === this.eHideIcon && this.gridOptionsService.get('suppressDragLeaveHidesColumns')) {\n return;\n }\n if (eIcon) {\n this.eGhostIcon.appendChild(eIcon);\n }\n }\n};\nDragAndDropService.ICON_PINNED = 'pinned';\nDragAndDropService.ICON_MOVE = 'move';\nDragAndDropService.ICON_LEFT = 'left';\nDragAndDropService.ICON_RIGHT = 'right';\nDragAndDropService.ICON_GROUP = 'group';\nDragAndDropService.ICON_AGGREGATE = 'aggregate';\nDragAndDropService.ICON_PIVOT = 'pivot';\nDragAndDropService.ICON_NOT_ALLOWED = 'notAllowed';\nDragAndDropService.ICON_HIDE = 'hide';\nDragAndDropService.GHOST_TEMPLATE = `
\n \n
\n
`;\n__decorate([\n Autowired('dragService')\n], DragAndDropService.prototype, \"dragService\", void 0);\n__decorate([\n Autowired('mouseEventService')\n], DragAndDropService.prototype, \"mouseEventService\", void 0);\n__decorate([\n Autowired('columnApi')\n], DragAndDropService.prototype, \"columnApi\", void 0);\n__decorate([\n Autowired('gridApi')\n], DragAndDropService.prototype, \"gridApi\", void 0);\n__decorate([\n PostConstruct\n], DragAndDropService.prototype, \"init\", null);\n__decorate([\n PreDestroy\n], DragAndDropService.prototype, \"clearDragSourceParamsList\", null);\nDragAndDropService = DragAndDropService_1 = __decorate([\n Bean('dragAndDropService')\n], DragAndDropService);\nexport { DragAndDropService };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component } from \"../../widgets/component.mjs\";\nimport { Autowired, PostConstruct, PreDestroy } from \"../../context/context.mjs\";\nimport { RowNode } from \"../../entities/rowNode.mjs\";\nimport { DragSourceType } from \"../../dragAndDrop/dragAndDropService.mjs\";\nimport { Events } from \"../../eventKeys.mjs\";\nimport { BeanStub } from \"../../context/beanStub.mjs\";\nimport { createIconNoSpan } from \"../../utils/icon.mjs\";\nimport { isFunction, warnOnce } from \"../../utils/function.mjs\";\nexport class RowDragComp extends Component {\n constructor(cellValueFn, rowNode, column, customGui, dragStartPixels, suppressVisibilityChange) {\n super();\n this.cellValueFn = cellValueFn;\n this.rowNode = rowNode;\n this.column = column;\n this.customGui = customGui;\n this.dragStartPixels = dragStartPixels;\n this.suppressVisibilityChange = suppressVisibilityChange;\n this.dragSource = null;\n }\n isCustomGui() {\n return this.customGui != null;\n }\n postConstruct() {\n if (!this.customGui) {\n this.setTemplate(/* html */ `
`);\n this.getGui().appendChild(createIconNoSpan('rowDrag', this.gridOptionsService, null));\n this.addDragSource();\n }\n else {\n this.setDragElement(this.customGui, this.dragStartPixels);\n }\n this.checkCompatibility();\n if (!this.suppressVisibilityChange) {\n const strategy = this.gridOptionsService.get('rowDragManaged') ?\n new ManagedVisibilityStrategy(this, this.beans, this.rowNode, this.column) :\n new NonManagedVisibilityStrategy(this, this.beans, this.rowNode, this.column);\n this.createManagedBean(strategy, this.beans.context);\n }\n }\n setDragElement(dragElement, dragStartPixels) {\n this.setTemplateFromElement(dragElement);\n this.addDragSource(dragStartPixels);\n }\n getSelectedNodes() {\n const isRowDragMultiRow = this.gridOptionsService.get('rowDragMultiRow');\n if (!isRowDragMultiRow) {\n return [this.rowNode];\n }\n const selection = this.beans.selectionService.getSelectedNodes();\n return selection.indexOf(this.rowNode) !== -1 ? selection : [this.rowNode];\n }\n // returns true if all compatibility items work out\n checkCompatibility() {\n const managed = this.gridOptionsService.get('rowDragManaged');\n const treeData = this.gridOptionsService.get('treeData');\n if (treeData && managed) {\n warnOnce('If using row drag with tree data, you cannot have rowDragManaged=true');\n }\n }\n getDragItem() {\n return {\n rowNode: this.rowNode,\n rowNodes: this.getSelectedNodes(),\n columns: this.column ? [this.column] : undefined,\n defaultTextValue: this.cellValueFn(),\n };\n }\n getRowDragText(column) {\n if (column) {\n const colDef = column.getColDef();\n if (colDef.rowDragText) {\n return colDef.rowDragText;\n }\n }\n return this.gridOptionsService.get('rowDragText');\n }\n addDragSource(dragStartPixels = 4) {\n // if this is changing the drag element, delete the previous dragSource\n if (this.dragSource) {\n this.removeDragSource();\n }\n const translate = this.localeService.getLocaleTextFunc();\n this.dragSource = {\n type: DragSourceType.RowDrag,\n eElement: this.getGui(),\n dragItemName: () => {\n var _a;\n const dragItem = this.getDragItem();\n const dragItemCount = ((_a = dragItem.rowNodes) === null || _a === void 0 ? void 0 : _a.length) || 1;\n const rowDragText = this.getRowDragText(this.column);\n if (rowDragText) {\n return rowDragText(dragItem, dragItemCount);\n }\n return dragItemCount === 1 ? this.cellValueFn() : `${dragItemCount} ${translate('rowDragRows', 'rows')}`;\n },\n getDragItem: () => this.getDragItem(),\n dragStartPixels,\n dragSourceDomDataKey: this.gridOptionsService.getDomDataKey()\n };\n this.beans.dragAndDropService.addDragSource(this.dragSource, true);\n }\n removeDragSource() {\n if (this.dragSource) {\n this.beans.dragAndDropService.removeDragSource(this.dragSource);\n }\n this.dragSource = null;\n }\n}\n__decorate([\n Autowired('beans')\n], RowDragComp.prototype, \"beans\", void 0);\n__decorate([\n PostConstruct\n], RowDragComp.prototype, \"postConstruct\", null);\n__decorate([\n PreDestroy\n], RowDragComp.prototype, \"removeDragSource\", null);\nclass VisibilityStrategy extends BeanStub {\n constructor(parent, rowNode, column) {\n super();\n this.parent = parent;\n this.rowNode = rowNode;\n this.column = column;\n }\n setDisplayedOrVisible(neverDisplayed) {\n const displayedOptions = { skipAriaHidden: true };\n if (neverDisplayed) {\n this.parent.setDisplayed(false, displayedOptions);\n }\n else {\n let shown = true;\n let isShownSometimes = false;\n if (this.column) {\n shown = this.column.isRowDrag(this.rowNode) || this.parent.isCustomGui();\n isShownSometimes = isFunction(this.column.getColDef().rowDrag);\n }\n // if shown sometimes, them some rows can have drag handle while other don't,\n // so we use setVisible to keep the handles horizontally aligned (as setVisible\n // keeps the empty space, whereas setDisplayed looses the space)\n if (isShownSometimes) {\n this.parent.setDisplayed(true, displayedOptions);\n this.parent.setVisible(shown, displayedOptions);\n }\n else {\n this.parent.setDisplayed(shown, displayedOptions);\n this.parent.setVisible(true, displayedOptions);\n }\n }\n }\n}\n// when non managed, the visibility depends on suppressRowDrag property only\nclass NonManagedVisibilityStrategy extends VisibilityStrategy {\n constructor(parent, beans, rowNode, column) {\n super(parent, rowNode, column);\n this.beans = beans;\n }\n postConstruct() {\n this.addManagedPropertyListener('suppressRowDrag', this.onSuppressRowDrag.bind(this));\n // in case data changes, then we need to update visibility of drag item\n this.addManagedListener(this.rowNode, RowNode.EVENT_DATA_CHANGED, this.workOutVisibility.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_CELL_CHANGED, this.workOutVisibility.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_CELL_CHANGED, this.workOutVisibility.bind(this));\n this.addManagedListener(this.beans.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.workOutVisibility.bind(this));\n this.workOutVisibility();\n }\n onSuppressRowDrag() {\n this.workOutVisibility();\n }\n workOutVisibility() {\n // only show the drag if both sort and filter are not present\n const neverDisplayed = this.gridOptionsService.get('suppressRowDrag');\n this.setDisplayedOrVisible(neverDisplayed);\n }\n}\n__decorate([\n PostConstruct\n], NonManagedVisibilityStrategy.prototype, \"postConstruct\", null);\n// when managed, the visibility depends on sort, filter and row group, as well as suppressRowDrag property\nclass ManagedVisibilityStrategy extends VisibilityStrategy {\n constructor(parent, beans, rowNode, column) {\n super(parent, rowNode, column);\n this.beans = beans;\n }\n postConstruct() {\n // we do not show the component if sort, filter or grouping is active\n this.addManagedListener(this.beans.eventService, Events.EVENT_SORT_CHANGED, this.workOutVisibility.bind(this));\n this.addManagedListener(this.beans.eventService, Events.EVENT_FILTER_CHANGED, this.workOutVisibility.bind(this));\n this.addManagedListener(this.beans.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, this.workOutVisibility.bind(this));\n this.addManagedListener(this.beans.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.workOutVisibility.bind(this));\n // in case data changes, then we need to update visibility of drag item\n this.addManagedListener(this.rowNode, RowNode.EVENT_DATA_CHANGED, this.workOutVisibility.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_CELL_CHANGED, this.workOutVisibility.bind(this));\n this.addManagedPropertyListener('suppressRowDrag', this.onSuppressRowDrag.bind(this));\n this.workOutVisibility();\n }\n onSuppressRowDrag() {\n this.workOutVisibility();\n }\n workOutVisibility() {\n // only show the drag if both sort and filter are not present\n const gridBodyCon = this.beans.ctrlsService.getGridBodyCtrl();\n const rowDragFeature = gridBodyCon.getRowDragFeature();\n const shouldPreventRowMove = rowDragFeature && rowDragFeature.shouldPreventRowMove();\n const suppressRowDrag = this.gridOptionsService.get('suppressRowDrag');\n const hasExternalDropZones = this.beans.dragAndDropService.hasExternalDropZones();\n const neverDisplayed = (shouldPreventRowMove && !hasExternalDropZones) || suppressRowDrag;\n this.setDisplayedOrVisible(neverDisplayed);\n }\n}\n__decorate([\n PostConstruct\n], ManagedVisibilityStrategy.prototype, \"postConstruct\", null);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { KeyCode } from \"../../constants/keyCode.mjs\";\nimport { BeanStub } from \"../../context/beanStub.mjs\";\nimport { Autowired } from \"../../context/context.mjs\";\nimport { RowNode } from \"../../entities/rowNode.mjs\";\nimport { removeAriaExpanded, setAriaExpanded } from \"../../utils/aria.mjs\";\nimport { isElementInEventPath, isStopPropagationForAgGrid, stopPropagationForAgGrid } from \"../../utils/event.mjs\";\nimport { missing } from \"../../utils/generic.mjs\";\nimport { createIconNoSpan } from \"../../utils/icon.mjs\";\nimport { cloneObject } from \"../../utils/object.mjs\";\nimport { CheckboxSelectionComponent } from \"../checkboxSelectionComponent.mjs\";\nimport { RowDragComp } from \"../row/rowDragComp.mjs\";\nexport class GroupCellRendererCtrl extends BeanStub {\n init(comp, eGui, eCheckbox, eExpanded, eContracted, compClass, params) {\n var _a, _b, _c, _d;\n this.params = params;\n this.eGui = eGui;\n this.eCheckbox = eCheckbox;\n this.eExpanded = eExpanded;\n this.eContracted = eContracted;\n this.comp = comp;\n this.compClass = compClass;\n const { node, value, colDef } = params;\n const topLevelFooter = this.isTopLevelFooter();\n // logic for skipping cells follows, never skip top level footer cell.\n if (!topLevelFooter) {\n const embeddedRowMismatch = this.isEmbeddedRowMismatch();\n if (embeddedRowMismatch) {\n return;\n }\n // this footer should only be non-top level. Don't need to check groupIncludeFooter\n // as we won't have footer rows in that instance.\n if (node.footer && this.gridOptionsService.get('groupHideOpenParents')) {\n const showRowGroup = colDef && colDef.showRowGroup;\n const rowGroupColumnId = node.rowGroupColumn && node.rowGroupColumn.getColId();\n // if the groupCellRenderer is inside of a footer and groupHideOpenParents is true\n // we should only display the groupCellRenderer if the current column is the rowGroupedColumn\n if (showRowGroup !== rowGroupColumnId) {\n return;\n }\n }\n }\n this.setupShowingValueForOpenedParent();\n this.findDisplayedGroupNode();\n if (!topLevelFooter) {\n const showingFooterTotal = params.node.footer && params.node.rowGroupIndex === this.columnModel.getRowGroupColumns().findIndex(c => { var _a; return c.getColId() === ((_a = params.colDef) === null || _a === void 0 ? void 0 : _a.showRowGroup); });\n // if we're always showing a group value\n const isAlwaysShowing = this.gridOptionsService.get('groupDisplayType') != 'multipleColumns' || this.gridOptionsService.get('treeData');\n // if the cell is populated with a parent value due to `showOpenedGroup`\n const showOpenGroupValue = (isAlwaysShowing || (this.gridOptionsService.get('showOpenedGroup') && !params.node.footer && ((!params.node.group ||\n (params.node.rowGroupIndex != null &&\n params.node.rowGroupIndex > this.columnModel.getRowGroupColumns().findIndex(c => { var _a; return c.getColId() === ((_a = params.colDef) === null || _a === void 0 ? void 0 : _a.showRowGroup); }))))));\n // not showing a leaf value (field/valueGetter)\n const leafWithValues = !node.group && (((_a = this.params.colDef) === null || _a === void 0 ? void 0 : _a.field) || ((_b = this.params.colDef) === null || _b === void 0 ? void 0 : _b.valueGetter));\n // doesn't have expand/collapse chevron\n const isExpandable = this.isExpandable();\n // is showing pivot leaf cell\n const showPivotModeLeafValue = this.columnModel.isPivotMode() && node.leafGroup && ((_c = node.rowGroupColumn) === null || _c === void 0 ? void 0 : _c.getColId()) === ((_d = params.column) === null || _d === void 0 ? void 0 : _d.getColDef().showRowGroup);\n // if not showing any values or chevron, skip cell.\n const canSkipRenderingCell = !this.showingValueForOpenedParent && !isExpandable && !leafWithValues && !showOpenGroupValue && !showingFooterTotal && !showPivotModeLeafValue;\n if (canSkipRenderingCell) {\n return;\n }\n }\n this.addExpandAndContract();\n this.addFullWidthRowDraggerIfNeeded();\n this.addCheckboxIfNeeded();\n this.addValueElement();\n this.setupIndent();\n this.refreshAriaExpanded();\n }\n getCellAriaRole() {\n var _a, _b;\n const colDefAriaRole = (_a = this.params.colDef) === null || _a === void 0 ? void 0 : _a.cellAriaRole;\n const columnColDefAriaRole = (_b = this.params.column) === null || _b === void 0 ? void 0 : _b.getColDef().cellAriaRole;\n return colDefAriaRole || columnColDefAriaRole || 'gridcell';\n }\n destroy() {\n super.destroy();\n // property cleanup to avoid memory leaks\n this.expandListener = null;\n }\n refreshAriaExpanded() {\n const { node, eGridCell } = this.params;\n if (this.expandListener) {\n this.expandListener = this.expandListener();\n }\n if (!this.isExpandable()) {\n removeAriaExpanded(eGridCell);\n return;\n }\n const listener = () => {\n // for react, we don't use JSX, as setting attributes via jsx is slower\n setAriaExpanded(eGridCell, !!node.expanded);\n };\n this.expandListener = this.addManagedListener(node, RowNode.EVENT_EXPANDED_CHANGED, listener) || null;\n listener();\n }\n isTopLevelFooter() {\n if (!this.gridOptionsService.get('groupIncludeTotalFooter')) {\n return false;\n }\n if (this.params.value != null || this.params.node.level != -1) {\n return false;\n }\n // at this point, we know it's the root node and there is no value present, so it's a footer cell.\n // the only thing to work out is if we are displaying groups across multiple\n // columns (groupDisplayType: 'multipleColumns'), we only want 'total' to appear in the first column.\n const colDef = this.params.colDef;\n const doingFullWidth = colDef == null;\n if (doingFullWidth) {\n return true;\n }\n if (colDef.showRowGroup === true) {\n return true;\n }\n const rowGroupCols = this.columnModel.getRowGroupColumns();\n // this is a sanity check, rowGroupCols should always be present\n if (!rowGroupCols || rowGroupCols.length === 0) {\n return true;\n }\n const firstRowGroupCol = rowGroupCols[0];\n return firstRowGroupCol.getId() === colDef.showRowGroup;\n }\n // if we are doing embedded full width rows, we only show the renderer when\n // in the body, or if pinning in the pinned section, or if pinning and RTL,\n // in the right section. otherwise we would have the cell repeated in each section.\n isEmbeddedRowMismatch() {\n if (!this.params.fullWidth || !this.gridOptionsService.get('embedFullWidthRows')) {\n return false;\n }\n const pinnedLeftCell = this.params.pinned === 'left';\n const pinnedRightCell = this.params.pinned === 'right';\n const bodyCell = !pinnedLeftCell && !pinnedRightCell;\n if (this.gridOptionsService.get('enableRtl')) {\n if (this.columnModel.isPinningLeft()) {\n return !pinnedRightCell;\n }\n return !bodyCell;\n }\n if (this.columnModel.isPinningLeft()) {\n return !pinnedLeftCell;\n }\n return !bodyCell;\n }\n findDisplayedGroupNode() {\n const column = this.params.column;\n const rowNode = this.params.node;\n if (this.showingValueForOpenedParent) {\n let pointer = rowNode.parent;\n while (pointer != null) {\n if (pointer.rowGroupColumn && column.isRowGroupDisplayed(pointer.rowGroupColumn.getId())) {\n this.displayedGroupNode = pointer;\n break;\n }\n pointer = pointer.parent;\n }\n }\n // if we didn't find a displayed group, set it to the row node\n if (missing(this.displayedGroupNode)) {\n this.displayedGroupNode = rowNode;\n }\n }\n setupShowingValueForOpenedParent() {\n // note - this code depends on sortService.updateGroupDataForHiddenOpenParents, where group data\n // is updated to reflect the dragged down parents\n const rowNode = this.params.node;\n const column = this.params.column;\n if (!this.gridOptionsService.get('groupHideOpenParents')) {\n this.showingValueForOpenedParent = false;\n return;\n }\n // hideOpenParents means rowNode.groupData can have data for the group this column is displaying, even though\n // this rowNode isn't grouping by the column we are displaying\n // if no groupData at all, we are not showing a parent value\n if (!rowNode.groupData) {\n this.showingValueForOpenedParent = false;\n return;\n }\n // this is the normal case, in that we are showing a group for which this column is configured. note that\n // this means the Row Group is closed (if it was open, we would not be displaying it)\n const showingGroupNode = rowNode.rowGroupColumn != null;\n if (showingGroupNode) {\n const keyOfGroupingColumn = rowNode.rowGroupColumn.getId();\n const configuredToShowThisGroupLevel = column.isRowGroupDisplayed(keyOfGroupingColumn);\n // if showing group as normal, we didn't take group info from parent\n if (configuredToShowThisGroupLevel) {\n this.showingValueForOpenedParent = false;\n return;\n }\n }\n // see if we are showing a Group Value for the Displayed Group. if we are showing a group value, and this Row Node\n // is not grouping by this Displayed Group, we must of gotten the value from a parent node\n const valPresent = rowNode.groupData[column.getId()] != null;\n this.showingValueForOpenedParent = valPresent;\n }\n addValueElement() {\n if (this.displayedGroupNode.footer) {\n this.addFooterValue();\n }\n else {\n this.addGroupValue();\n this.addChildCount();\n }\n }\n addGroupValue() {\n var _a;\n // we try and use the cellRenderer of the column used for the grouping if we can\n const paramsAdjusted = this.adjustParamsWithDetailsFromRelatedColumn();\n const innerCompDetails = this.getInnerCompDetails(paramsAdjusted);\n const { valueFormatted, value } = paramsAdjusted;\n let valueWhenNoRenderer = valueFormatted;\n if (valueWhenNoRenderer == null) {\n const isGroupColForNode = (this.displayedGroupNode.rowGroupColumn && ((_a = this.params.column) === null || _a === void 0 ? void 0 : _a.isRowGroupDisplayed(this.displayedGroupNode.rowGroupColumn.getId())));\n if (this.displayedGroupNode.key === \"\" && this.displayedGroupNode.group && isGroupColForNode) {\n const localeTextFunc = this.localeService.getLocaleTextFunc();\n valueWhenNoRenderer = localeTextFunc('blanks', '(Blanks)');\n }\n else {\n valueWhenNoRenderer = value !== null && value !== void 0 ? value : null;\n }\n }\n this.comp.setInnerRenderer(innerCompDetails, valueWhenNoRenderer);\n }\n adjustParamsWithDetailsFromRelatedColumn() {\n const relatedColumn = this.displayedGroupNode.rowGroupColumn;\n const column = this.params.column;\n if (!relatedColumn) {\n return this.params;\n }\n const notFullWidth = column != null;\n if (notFullWidth) {\n const showingThisRowGroup = column.isRowGroupDisplayed(relatedColumn.getId());\n if (!showingThisRowGroup) {\n return this.params;\n }\n }\n const params = this.params;\n const { value, node } = this.params;\n const valueFormatted = this.valueFormatterService.formatValue(relatedColumn, node, value);\n // we don't update the original params, as they could of come through React,\n // as react has RowGroupCellRenderer, which means the params could be props which\n // would be read only\n const paramsAdjusted = Object.assign(Object.assign({}, params), { valueFormatted: valueFormatted });\n return paramsAdjusted;\n }\n addFooterValue() {\n const footerValueGetter = this.params.footerValueGetter;\n let footerValue = '';\n if (footerValueGetter) {\n // params is same as we were given, except we set the value as the item to display\n const paramsClone = cloneObject(this.params);\n paramsClone.value = this.params.value;\n if (typeof footerValueGetter === 'function') {\n footerValue = footerValueGetter(paramsClone);\n }\n else if (typeof footerValueGetter === 'string') {\n footerValue = this.expressionService.evaluate(footerValueGetter, paramsClone);\n }\n else {\n console.warn('AG Grid: footerValueGetter should be either a function or a string (expression)');\n }\n }\n else {\n const localeTextFunc = this.localeService.getLocaleTextFunc();\n const footerTotalPrefix = localeTextFunc('footerTotal', 'Total');\n footerValue = footerTotalPrefix + ' ' + (this.params.value != null ? this.params.value : '');\n }\n const innerCompDetails = this.getInnerCompDetails(this.params);\n this.comp.setInnerRenderer(innerCompDetails, footerValue);\n }\n getInnerCompDetails(params) {\n // for full width rows, we don't do any of the below\n if (params.fullWidth) {\n return this.userComponentFactory.getFullWidthGroupRowInnerCellRenderer(this.gridOptionsService.get('groupRowRendererParams'), params);\n }\n // when grouping, the normal case is we use the cell renderer of the grouped column. eg if grouping by country\n // and then rating, we will use the country cell renderer for each country group row and likewise the rating\n // cell renderer for each rating group row.\n //\n // however if the user has innerCellRenderer defined, this gets preference and we don't use cell renderers\n // of the grouped columns.\n //\n // so we check and use in the following order:\n //\n // 1) thisColDef.cellRendererParams.innerRenderer of the column showing the groups (eg auto group column)\n // 2) groupedColDef.cellRenderer of the grouped column\n // 3) groupedColDef.cellRendererParams.innerRenderer\n // we check if cell renderer provided for the group cell renderer, eg colDef.cellRendererParams.innerRenderer\n const innerCompDetails = this.userComponentFactory\n .getInnerRendererDetails(params, params);\n // avoid using GroupCellRenderer again, otherwise stack overflow, as we insert same renderer again and again.\n // this covers off chance user is grouping by a column that is also configured with GroupCellRenderer\n const isGroupRowRenderer = (details) => details && details.componentClass == this.compClass;\n if (innerCompDetails && !isGroupRowRenderer(innerCompDetails)) {\n // use the renderer defined in cellRendererParams.innerRenderer\n return innerCompDetails;\n }\n const relatedColumn = this.displayedGroupNode.rowGroupColumn;\n const relatedColDef = relatedColumn ? relatedColumn.getColDef() : undefined;\n if (!relatedColDef) {\n return;\n }\n // otherwise see if we can use the cellRenderer of the column we are grouping by\n const relatedCompDetails = this.userComponentFactory\n .getCellRendererDetails(relatedColDef, params);\n if (relatedCompDetails && !isGroupRowRenderer(relatedCompDetails)) {\n // Only if the original column is using a specific renderer, it it is a using a DEFAULT one ignore it\n return relatedCompDetails;\n }\n if (isGroupRowRenderer(relatedCompDetails) &&\n relatedColDef.cellRendererParams &&\n relatedColDef.cellRendererParams.innerRenderer) {\n // edge case - this comes from a column which has been grouped dynamically, that has a renderer 'group'\n // and has an inner cell renderer\n const res = this.userComponentFactory.getInnerRendererDetails(relatedColDef.cellRendererParams, params);\n return res;\n }\n }\n addChildCount() {\n // only include the child count if it's included, eg if user doing custom aggregation,\n // then this could be left out, or set to -1, ie no child count\n if (this.params.suppressCount) {\n return;\n }\n this.addManagedListener(this.displayedGroupNode, RowNode.EVENT_ALL_CHILDREN_COUNT_CHANGED, this.updateChildCount.bind(this));\n // filtering changes the child count, so need to cater for it\n this.updateChildCount();\n }\n updateChildCount() {\n const allChildrenCount = this.displayedGroupNode.allChildrenCount;\n const showingGroupForThisNode = this.isShowRowGroupForThisRow();\n const showCount = showingGroupForThisNode && allChildrenCount != null && allChildrenCount >= 0;\n const countString = showCount ? `(${allChildrenCount})` : ``;\n this.comp.setChildCount(countString);\n }\n isShowRowGroupForThisRow() {\n if (this.gridOptionsService.get('treeData')) {\n return true;\n }\n const rowGroupColumn = this.displayedGroupNode.rowGroupColumn;\n if (!rowGroupColumn) {\n return false;\n }\n // column is null for fullWidthRows\n const column = this.params.column;\n const thisColumnIsInterested = column == null || column.isRowGroupDisplayed(rowGroupColumn.getId());\n return thisColumnIsInterested;\n }\n addExpandAndContract() {\n var _a;\n const params = this.params;\n const eExpandedIcon = createIconNoSpan('groupExpanded', this.gridOptionsService, null);\n const eContractedIcon = createIconNoSpan('groupContracted', this.gridOptionsService, null);\n if (eExpandedIcon) {\n this.eExpanded.appendChild(eExpandedIcon);\n }\n if (eContractedIcon) {\n this.eContracted.appendChild(eContractedIcon);\n }\n const eGroupCell = params.eGridCell;\n // if editing groups, then double click is to start editing\n const isDoubleClickEdit = ((_a = this.params.column) === null || _a === void 0 ? void 0 : _a.isCellEditable(params.node)) && this.gridOptionsService.get('enableGroupEdit');\n if (!isDoubleClickEdit && this.isExpandable() && !params.suppressDoubleClickExpand) {\n this.addManagedListener(eGroupCell, 'dblclick', this.onCellDblClicked.bind(this));\n }\n this.addManagedListener(this.eExpanded, 'click', this.onExpandClicked.bind(this));\n this.addManagedListener(this.eContracted, 'click', this.onExpandClicked.bind(this));\n // expand / contract as the user hits enter\n this.addManagedListener(eGroupCell, 'keydown', this.onKeyDown.bind(this));\n this.addManagedListener(params.node, RowNode.EVENT_EXPANDED_CHANGED, this.showExpandAndContractIcons.bind(this));\n this.showExpandAndContractIcons();\n // because we don't show the expand / contract when there are no children, we need to check every time\n // the number of children change.\n const expandableChangedListener = this.onRowNodeIsExpandableChanged.bind(this);\n this.addManagedListener(this.displayedGroupNode, RowNode.EVENT_ALL_CHILDREN_COUNT_CHANGED, expandableChangedListener);\n this.addManagedListener(this.displayedGroupNode, RowNode.EVENT_MASTER_CHANGED, expandableChangedListener);\n this.addManagedListener(this.displayedGroupNode, RowNode.EVENT_GROUP_CHANGED, expandableChangedListener);\n this.addManagedListener(this.displayedGroupNode, RowNode.EVENT_HAS_CHILDREN_CHANGED, expandableChangedListener);\n }\n onExpandClicked(mouseEvent) {\n if (isStopPropagationForAgGrid(mouseEvent)) {\n return;\n }\n // so if we expand a node, it does not also get selected.\n stopPropagationForAgGrid(mouseEvent);\n this.onExpandOrContract(mouseEvent);\n }\n onExpandOrContract(e) {\n // must use the displayedGroup, so if data was dragged down, we expand the parent, not this row\n const rowNode = this.displayedGroupNode;\n const nextExpandState = !rowNode.expanded;\n if (!nextExpandState && rowNode.sticky) {\n this.scrollToStickyNode(rowNode);\n }\n rowNode.setExpanded(nextExpandState, e);\n }\n scrollToStickyNode(rowNode) {\n const gridBodyCtrl = this.ctrlsService.getGridBodyCtrl();\n const scrollFeature = gridBodyCtrl.getScrollFeature();\n scrollFeature.setVerticalScrollPosition(rowNode.rowTop - rowNode.stickyRowTop);\n }\n isExpandable() {\n if (this.showingValueForOpenedParent) {\n return true;\n }\n const rowNode = this.displayedGroupNode;\n const reducedLeafNode = this.columnModel.isPivotMode() && rowNode.leafGroup;\n const expandableGroup = rowNode.isExpandable() && !rowNode.footer && !reducedLeafNode;\n if (!expandableGroup) {\n return false;\n }\n // column is null for fullWidthRows\n const column = this.params.column;\n const displayingForOneColumnOnly = column != null && typeof column.getColDef().showRowGroup === 'string';\n if (displayingForOneColumnOnly) {\n const showing = this.isShowRowGroupForThisRow();\n return showing;\n }\n return true;\n }\n showExpandAndContractIcons() {\n const { params, displayedGroupNode: displayedGroup, columnModel } = this;\n const { node } = params;\n const isExpandable = this.isExpandable();\n if (isExpandable) {\n // if expandable, show one based on expand state.\n // if we were dragged down, means our parent is always expanded\n const expanded = this.showingValueForOpenedParent ? true : node.expanded;\n this.comp.setExpandedDisplayed(expanded);\n this.comp.setContractedDisplayed(!expanded);\n }\n else {\n // it not expandable, show neither\n this.comp.setExpandedDisplayed(false);\n this.comp.setContractedDisplayed(false);\n }\n // compensation padding for leaf nodes, so there is blank space instead of the expand icon\n const pivotMode = columnModel.isPivotMode();\n const pivotModeAndLeafGroup = pivotMode && displayedGroup.leafGroup;\n const addExpandableCss = isExpandable && !pivotModeAndLeafGroup;\n const isTotalFooterNode = node.footer && node.level === -1;\n this.comp.addOrRemoveCssClass('ag-cell-expandable', addExpandableCss);\n this.comp.addOrRemoveCssClass('ag-row-group', addExpandableCss);\n if (pivotMode) {\n this.comp.addOrRemoveCssClass('ag-pivot-leaf-group', pivotModeAndLeafGroup);\n }\n else if (!isTotalFooterNode) {\n this.comp.addOrRemoveCssClass('ag-row-group-leaf-indent', !addExpandableCss);\n }\n }\n onRowNodeIsExpandableChanged() {\n // maybe if no children now, we should hide the expand / contract icons\n this.showExpandAndContractIcons();\n // if we have no children, this impacts the indent\n this.setIndent();\n this.refreshAriaExpanded();\n }\n setupIndent() {\n // only do this if an indent - as this overwrites the padding that\n // the theme set, which will make things look 'not aligned' for the\n // first group level.\n const node = this.params.node;\n const suppressPadding = this.params.suppressPadding;\n if (!suppressPadding) {\n this.addManagedListener(node, RowNode.EVENT_UI_LEVEL_CHANGED, this.setIndent.bind(this));\n this.setIndent();\n }\n }\n setIndent() {\n if (this.gridOptionsService.get('groupHideOpenParents')) {\n return;\n }\n const params = this.params;\n const rowNode = params.node;\n // if we are only showing one group column, we don't want to be indenting based on level\n const fullWithRow = !!params.colDef;\n const treeData = this.gridOptionsService.get('treeData');\n const manyDimensionThisColumn = !fullWithRow || treeData || params.colDef.showRowGroup === true;\n const paddingCount = manyDimensionThisColumn ? rowNode.uiLevel : 0;\n if (this.indentClass) {\n this.comp.addOrRemoveCssClass(this.indentClass, false);\n }\n this.indentClass = 'ag-row-group-indent-' + paddingCount;\n this.comp.addOrRemoveCssClass(this.indentClass, true);\n }\n addFullWidthRowDraggerIfNeeded() {\n if (!this.params.fullWidth || !this.params.rowDrag) {\n return;\n }\n const rowDragComp = new RowDragComp(() => this.params.value, this.params.node);\n this.createManagedBean(rowDragComp, this.context);\n this.eGui.insertAdjacentElement('afterbegin', rowDragComp.getGui());\n }\n isUserWantsSelected() {\n const paramsCheckbox = this.params.checkbox;\n // if a function, we always return true as change detection can show or hide the checkbox.\n return typeof paramsCheckbox === 'function' || paramsCheckbox === true;\n }\n addCheckboxIfNeeded() {\n const rowNode = this.displayedGroupNode;\n const checkboxNeeded = this.isUserWantsSelected() &&\n // footers cannot be selected\n !rowNode.footer &&\n // pinned rows cannot be selected\n !rowNode.rowPinned &&\n // details cannot be selected\n !rowNode.detail;\n if (checkboxNeeded) {\n const cbSelectionComponent = new CheckboxSelectionComponent();\n this.getContext().createBean(cbSelectionComponent);\n cbSelectionComponent.init({\n rowNode: this.params.node,\n column: this.params.column,\n overrides: {\n isVisible: this.params.checkbox,\n callbackParams: this.params,\n removeHidden: true,\n },\n });\n this.eCheckbox.appendChild(cbSelectionComponent.getGui());\n this.addDestroyFunc(() => this.getContext().destroyBean(cbSelectionComponent));\n }\n this.comp.setCheckboxVisible(checkboxNeeded);\n }\n onKeyDown(event) {\n const isEnterKey = event.key === KeyCode.ENTER;\n if (!isEnterKey || this.params.suppressEnterExpand) {\n return;\n }\n const cellEditable = this.params.column && this.params.column.isCellEditable(this.params.node);\n if (cellEditable) {\n return;\n }\n this.onExpandOrContract(event);\n }\n onCellDblClicked(mouseEvent) {\n if (isStopPropagationForAgGrid(mouseEvent)) {\n return;\n }\n // we want to avoid acting on double click events on the expand / contract icon,\n // as that icons already has expand / collapse functionality on it. otherwise if\n // the icon was double clicked, we would get 'click', 'click', 'dblclick' which\n // is open->close->open, however double click should be open->close only.\n const targetIsExpandIcon = isElementInEventPath(this.eExpanded, mouseEvent)\n || isElementInEventPath(this.eContracted, mouseEvent);\n if (!targetIsExpandIcon) {\n this.onExpandOrContract(mouseEvent);\n }\n }\n}\n__decorate([\n Autowired('expressionService')\n], GroupCellRendererCtrl.prototype, \"expressionService\", void 0);\n__decorate([\n Autowired('valueFormatterService')\n], GroupCellRendererCtrl.prototype, \"valueFormatterService\", void 0);\n__decorate([\n Autowired('columnModel')\n], GroupCellRendererCtrl.prototype, \"columnModel\", void 0);\n__decorate([\n Autowired('userComponentFactory')\n], GroupCellRendererCtrl.prototype, \"userComponentFactory\", void 0);\n__decorate([\n Autowired(\"ctrlsService\")\n], GroupCellRendererCtrl.prototype, \"ctrlsService\", void 0);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { setAriaRole } from \"../../utils/aria.mjs\";\nimport { setDisplayed } from \"../../utils/dom.mjs\";\nimport { Component } from \"../../widgets/component.mjs\";\nimport { RefSelector } from \"../../widgets/componentAnnotations.mjs\";\nimport { GroupCellRendererCtrl } from \"./groupCellRendererCtrl.mjs\";\nexport class GroupCellRenderer extends Component {\n constructor() {\n super(GroupCellRenderer.TEMPLATE);\n }\n init(params) {\n const compProxy = {\n setInnerRenderer: (compDetails, valueToDisplay) => this.setRenderDetails(compDetails, valueToDisplay),\n setChildCount: count => this.eChildCount.textContent = count,\n addOrRemoveCssClass: (cssClass, value) => this.addOrRemoveCssClass(cssClass, value),\n setContractedDisplayed: expanded => setDisplayed(this.eContracted, expanded),\n setExpandedDisplayed: expanded => setDisplayed(this.eExpanded, expanded),\n setCheckboxVisible: visible => this.eCheckbox.classList.toggle('ag-invisible', !visible)\n };\n const ctrl = this.createManagedBean(new GroupCellRendererCtrl());\n const fullWidth = !params.colDef;\n const eGui = this.getGui();\n ctrl.init(compProxy, eGui, this.eCheckbox, this.eExpanded, this.eContracted, this.constructor, params);\n if (fullWidth) {\n setAriaRole(eGui, ctrl.getCellAriaRole());\n }\n }\n setRenderDetails(compDetails, valueToDisplay) {\n if (compDetails) {\n const componentPromise = compDetails.newAgStackInstance();\n if (!componentPromise) {\n return;\n }\n componentPromise.then(comp => {\n if (!comp) {\n return;\n }\n const destroyComp = () => this.context.destroyBean(comp);\n if (this.isAlive()) {\n this.eValue.appendChild(comp.getGui());\n this.addDestroyFunc(destroyComp);\n }\n else {\n destroyComp();\n }\n });\n }\n else {\n this.eValue.innerText = valueToDisplay;\n }\n }\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to have public here instead of private or protected\n destroy() {\n this.getContext().destroyBean(this.innerCellRenderer);\n super.destroy();\n }\n refresh() {\n return false;\n }\n}\nGroupCellRenderer.TEMPLATE = `\n \n \n \n \n \n `;\n__decorate([\n RefSelector('eExpanded')\n], GroupCellRenderer.prototype, \"eExpanded\", void 0);\n__decorate([\n RefSelector('eContracted')\n], GroupCellRenderer.prototype, \"eContracted\", void 0);\n__decorate([\n RefSelector('eCheckbox')\n], GroupCellRenderer.prototype, \"eCheckbox\", void 0);\n__decorate([\n RefSelector('eValue')\n], GroupCellRenderer.prototype, \"eValue\", void 0);\n__decorate([\n RefSelector('eChildCount')\n], GroupCellRenderer.prototype, \"eChildCount\", void 0);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component } from \"../../widgets/component.mjs\";\nimport { RefSelector } from \"../../widgets/componentAnnotations.mjs\";\nimport { createIconNoSpan } from \"../../utils/icon.mjs\";\nexport class LoadingCellRenderer extends Component {\n constructor() {\n super(LoadingCellRenderer.TEMPLATE);\n }\n init(params) {\n params.node.failedLoad ? this.setupFailed() : this.setupLoading();\n }\n setupFailed() {\n const localeTextFunc = this.localeService.getLocaleTextFunc();\n this.eLoadingText.innerText = localeTextFunc('loadingError', 'ERR');\n }\n setupLoading() {\n const eLoadingIcon = createIconNoSpan('groupLoading', this.gridOptionsService, null);\n if (eLoadingIcon) {\n this.eLoadingIcon.appendChild(eLoadingIcon);\n }\n const localeTextFunc = this.localeService.getLocaleTextFunc();\n this.eLoadingText.innerText = localeTextFunc('loadingOoo', 'Loading');\n }\n refresh(params) {\n return false;\n }\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n destroy() {\n super.destroy();\n }\n}\nLoadingCellRenderer.TEMPLATE = `
\n \n \n
`;\n__decorate([\n RefSelector('eLoadingIcon')\n], LoadingCellRenderer.prototype, \"eLoadingIcon\", void 0);\n__decorate([\n RefSelector('eLoadingText')\n], LoadingCellRenderer.prototype, \"eLoadingText\", void 0);\n","import { Component } from \"../../widgets/component.mjs\";\nexport class LoadingOverlayComponent extends Component {\n constructor() {\n super();\n }\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n destroy() {\n super.destroy();\n }\n init(params) {\n const customTemplate = this.gridOptionsService.get('overlayLoadingTemplate');\n this.setTemplate(customTemplate !== null && customTemplate !== void 0 ? customTemplate : LoadingOverlayComponent.DEFAULT_LOADING_OVERLAY_TEMPLATE);\n if (!customTemplate) {\n const localeTextFunc = this.localeService.getLocaleTextFunc();\n // setTimeout is used because some screen readers only announce `aria-live` text when\n // there is a \"text change\", so we force a change from empty.\n setTimeout(() => {\n this.getGui().textContent = localeTextFunc('loadingOoo', 'Loading...');\n });\n }\n }\n}\nLoadingOverlayComponent.DEFAULT_LOADING_OVERLAY_TEMPLATE = ``;\n","import { Component } from \"../../widgets/component.mjs\";\nexport class NoRowsOverlayComponent extends Component {\n constructor() {\n super();\n }\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n destroy() {\n super.destroy();\n }\n init(params) {\n const customTemplate = this.gridOptionsService.get('overlayNoRowsTemplate');\n this.setTemplate(customTemplate !== null && customTemplate !== void 0 ? customTemplate : NoRowsOverlayComponent.DEFAULT_NO_ROWS_TEMPLATE);\n if (!customTemplate) {\n const localeTextFunc = this.localeService.getLocaleTextFunc();\n // setTimeout is used because some screen readers only announce `aria-live` text when\n // there is a \"text change\", so we force a change from empty.\n setTimeout(() => {\n this.getGui().textContent = localeTextFunc('noRowsToShow', 'No Rows To Show');\n });\n }\n }\n}\nNoRowsOverlayComponent.DEFAULT_NO_ROWS_TEMPLATE = ``;\n","import { PopupComponent } from '../widgets/popupComponent.mjs';\nimport { escapeString } from '../utils/string.mjs';\nexport class TooltipComponent extends PopupComponent {\n constructor() {\n super(/* html */ `
`);\n }\n // will need to type params\n init(params) {\n const { value } = params;\n this.getGui().textContent = escapeString(value, true);\n }\n}\n","import { SimpleCellEditor } from \"./simpleCellEditor.mjs\";\nimport { exists } from \"../../utils/generic.mjs\";\nimport { KeyCode } from \"../../constants/keyCode.mjs\";\nclass NumberCellEditorInput {\n getTemplate() {\n return /* html */ ``;\n }\n init(eInput, params) {\n this.eInput = eInput;\n this.params = params;\n if (params.max != null) {\n eInput.setMax(params.max);\n }\n if (params.min != null) {\n eInput.setMin(params.min);\n }\n if (params.precision != null) {\n eInput.setPrecision(params.precision);\n }\n if (params.step != null) {\n eInput.setStep(params.step);\n }\n const inputEl = eInput.getInputElement();\n if (params.preventStepping) {\n eInput.addManagedListener(inputEl, 'keydown', this.preventStepping);\n }\n else if (params.showStepperButtons) {\n inputEl.classList.add('ag-number-field-input-stepper');\n }\n }\n preventStepping(e) {\n if (e.key === KeyCode.UP || e.key === KeyCode.DOWN) {\n e.preventDefault();\n }\n }\n getValue() {\n const value = this.eInput.getValue();\n if (!exists(value) && !exists(this.params.value)) {\n return this.params.value;\n }\n let parsedValue = this.params.parseValue(value);\n if (parsedValue == null) {\n return parsedValue;\n }\n if (typeof parsedValue === 'string') {\n if (parsedValue === '') {\n return null;\n }\n parsedValue = Number(parsedValue);\n }\n return isNaN(parsedValue) ? null : parsedValue;\n }\n getStartValue() {\n return this.params.value;\n }\n}\nexport class NumberCellEditor extends SimpleCellEditor {\n constructor() {\n super(new NumberCellEditorInput());\n }\n}\n","import { serialiseDate } from \"../../utils/date.mjs\";\nimport { SimpleCellEditor } from \"./simpleCellEditor.mjs\";\nimport { exists } from \"../../utils/generic.mjs\";\nclass DateCellEditorInput {\n getTemplate() {\n return /* html */ ``;\n }\n init(eInput, params) {\n this.eInput = eInput;\n this.params = params;\n if (params.min != null) {\n eInput.setMin(params.min);\n }\n if (params.max != null) {\n eInput.setMax(params.max);\n }\n if (params.step != null) {\n eInput.setStep(params.step);\n }\n }\n getValue() {\n const value = this.eInput.getDate();\n if (!exists(value) && !exists(this.params.value)) {\n return this.params.value;\n }\n return value !== null && value !== void 0 ? value : null;\n }\n getStartValue() {\n const { value } = this.params;\n if (!(value instanceof Date)) {\n return undefined;\n }\n return serialiseDate(value, false);\n }\n}\nexport class DateCellEditor extends SimpleCellEditor {\n constructor() {\n super(new DateCellEditorInput());\n }\n}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Autowired } from \"../../context/context.mjs\";\nimport { serialiseDate } from \"../../utils/date.mjs\";\nimport { SimpleCellEditor } from \"./simpleCellEditor.mjs\";\nimport { exists } from \"../../utils/generic.mjs\";\nclass DateStringCellEditorInput {\n constructor(getDataTypeService) {\n this.getDataTypeService = getDataTypeService;\n }\n getTemplate() {\n return /* html */ ``;\n }\n init(eInput, params) {\n this.eInput = eInput;\n this.params = params;\n if (params.min != null) {\n eInput.setMin(params.min);\n }\n if (params.max != null) {\n eInput.setMax(params.max);\n }\n if (params.step != null) {\n eInput.setStep(params.step);\n }\n }\n getValue() {\n const value = this.formatDate(this.eInput.getDate());\n if (!exists(value) && !exists(this.params.value)) {\n return this.params.value;\n }\n return this.params.parseValue(value !== null && value !== void 0 ? value : '');\n }\n getStartValue() {\n var _a, _b;\n return serialiseDate((_b = this.parseDate((_a = this.params.value) !== null && _a !== void 0 ? _a : undefined)) !== null && _b !== void 0 ? _b : null, false);\n }\n parseDate(value) {\n return this.getDataTypeService().getDateParserFunction(this.params.column)(value);\n }\n formatDate(value) {\n return this.getDataTypeService().getDateFormatterFunction(this.params.column)(value);\n }\n}\nexport class DateStringCellEditor extends SimpleCellEditor {\n constructor() {\n super(new DateStringCellEditorInput(() => this.dataTypeService));\n }\n}\n__decorate([\n Autowired('dataTypeService')\n], DateStringCellEditor.prototype, \"dataTypeService\", void 0);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component } from \"../../widgets/component.mjs\";\nimport { RefSelector } from \"../../widgets/componentAnnotations.mjs\";\nimport { stopPropagationForAgGrid } from \"../../utils/event.mjs\";\nimport { Events } from \"../../events.mjs\";\nimport { KeyCode } from \"../../constants/keyCode.mjs\";\nimport { getAriaCheckboxStateName, setAriaLive } from \"../../utils/aria.mjs\";\nimport { GROUP_AUTO_COLUMN_ID } from \"../../columns/autoGroupColService.mjs\";\nexport class CheckboxCellRenderer extends Component {\n constructor() {\n super(CheckboxCellRenderer.TEMPLATE);\n }\n init(params) {\n this.params = params;\n this.updateCheckbox(params);\n const inputEl = this.eCheckbox.getInputElement();\n inputEl.setAttribute('tabindex', '-1');\n setAriaLive(inputEl, 'polite');\n this.addManagedListener(inputEl, 'click', (event) => {\n stopPropagationForAgGrid(event);\n if (this.eCheckbox.isDisabled()) {\n return;\n }\n const isSelected = this.eCheckbox.getValue();\n this.onCheckboxChanged(isSelected);\n });\n this.addManagedListener(inputEl, 'dblclick', (event) => {\n stopPropagationForAgGrid(event);\n });\n const eDocument = this.gridOptionsService.getDocument();\n this.addManagedListener(this.params.eGridCell, 'keydown', (event) => {\n if (event.key === KeyCode.SPACE && !this.eCheckbox.isDisabled()) {\n if (this.params.eGridCell === eDocument.activeElement) {\n this.eCheckbox.toggle();\n }\n const isSelected = this.eCheckbox.getValue();\n this.onCheckboxChanged(isSelected);\n event.preventDefault();\n }\n });\n }\n refresh(params) {\n this.params = params;\n this.updateCheckbox(params);\n return true;\n }\n updateCheckbox(params) {\n var _a, _b, _c;\n let isSelected;\n let displayed = true;\n if (params.node.group && params.column) {\n const colId = params.column.getColId();\n if (colId.startsWith(GROUP_AUTO_COLUMN_ID)) {\n // if we're grouping by this column then the value is a string and we need to parse it\n isSelected = params.value == null || params.value === '' ? undefined : params.value === 'true';\n }\n else if (params.node.aggData && params.node.aggData[colId] !== undefined) {\n isSelected = (_a = params.value) !== null && _a !== void 0 ? _a : undefined;\n }\n else {\n displayed = false;\n }\n }\n else {\n isSelected = (_b = params.value) !== null && _b !== void 0 ? _b : undefined;\n }\n if (!displayed) {\n this.eCheckbox.setDisplayed(false);\n return;\n }\n this.eCheckbox.setValue(isSelected);\n const disabled = params.disabled != null ? params.disabled : !((_c = params.column) === null || _c === void 0 ? void 0 : _c.isCellEditable(params.node));\n this.eCheckbox.setDisabled(disabled);\n const translate = this.localeService.getLocaleTextFunc();\n const stateName = getAriaCheckboxStateName(translate, isSelected);\n const ariaLabel = disabled\n ? stateName\n : `${translate('ariaToggleCellValue', 'Press SPACE to toggle cell value')} (${stateName})`;\n this.eCheckbox.setInputAriaLabel(ariaLabel);\n }\n onCheckboxChanged(isSelected) {\n const { column, node, rowIndex, value } = this.params;\n const eventStarted = {\n type: Events.EVENT_CELL_EDITING_STARTED,\n column: column,\n colDef: column === null || column === void 0 ? void 0 : column.getColDef(),\n data: node.data,\n node,\n rowIndex,\n rowPinned: node.rowPinned,\n value\n };\n this.eventService.dispatchEvent(eventStarted);\n const valueChanged = this.params.node.setDataValue(this.params.column, isSelected, 'edit');\n const eventStopped = {\n type: Events.EVENT_CELL_EDITING_STOPPED,\n column: column,\n colDef: column === null || column === void 0 ? void 0 : column.getColDef(),\n data: node.data,\n node,\n rowIndex,\n rowPinned: node.rowPinned,\n value,\n oldValue: value,\n newValue: isSelected,\n valueChanged\n };\n this.eventService.dispatchEvent(eventStopped);\n }\n}\nCheckboxCellRenderer.TEMPLATE = `\n
\n \n
`;\n__decorate([\n RefSelector('eCheckbox')\n], CheckboxCellRenderer.prototype, \"eCheckbox\", void 0);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { PopupComponent } from \"../../widgets/popupComponent.mjs\";\nimport { RefSelector } from \"../../widgets/componentAnnotations.mjs\";\nimport { getAriaCheckboxStateName } from \"../../utils/aria.mjs\";\nimport { Events } from \"../../eventKeys.mjs\";\nexport class CheckboxCellEditor extends PopupComponent {\n constructor() {\n super(/* html */ `\n
\n \n
`);\n }\n init(params) {\n var _a;\n this.params = params;\n const isSelected = (_a = params.value) !== null && _a !== void 0 ? _a : undefined;\n this.eCheckbox.setValue(isSelected);\n const inputEl = this.eCheckbox.getInputElement();\n inputEl.setAttribute('tabindex', '-1');\n this.setAriaLabel(isSelected);\n this.addManagedListener(this.eCheckbox, Events.EVENT_FIELD_VALUE_CHANGED, (event) => this.setAriaLabel(event.selected));\n }\n getValue() {\n return this.eCheckbox.getValue();\n }\n focusIn() {\n this.eCheckbox.getFocusableElement().focus();\n }\n afterGuiAttached() {\n if (this.params.cellStartedEdit) {\n this.focusIn();\n }\n }\n isPopup() {\n return false;\n }\n setAriaLabel(isSelected) {\n const translate = this.localeService.getLocaleTextFunc();\n const stateName = getAriaCheckboxStateName(translate, isSelected);\n const ariaLabel = translate('ariaToggleCellValue', 'Press SPACE to toggle cell value');\n this.eCheckbox.setInputAriaLabel(`${ariaLabel} (${stateName})`);\n }\n}\n__decorate([\n RefSelector('eCheckbox')\n], CheckboxCellEditor.prototype, \"eCheckbox\", void 0);\n","import { Component } from './component.mjs';\nimport { createIconNoSpan } from '../utils/icon.mjs';\nimport { isNodeOrElement, loadTemplate } from '../utils/dom.mjs';\nimport { setAriaExpanded } from '../utils/aria.mjs';\nexport class AgMenuItemRenderer extends Component {\n constructor() {\n super();\n this.setTemplate(/* html */ `
`);\n }\n init(params) {\n var _a;\n this.params = params;\n this.cssClassPrefix = (_a = this.params.cssClassPrefix) !== null && _a !== void 0 ? _a : 'ag-menu-option';\n this.addIcon();\n this.addName();\n this.addShortcut();\n this.addSubMenu();\n }\n configureDefaults() {\n return true;\n }\n addIcon() {\n if (this.params.isCompact) {\n return;\n }\n const icon = loadTemplate(/* html */ ``);\n if (this.params.checked) {\n icon.appendChild(createIconNoSpan('check', this.gridOptionsService));\n }\n else if (this.params.icon) {\n if (isNodeOrElement(this.params.icon)) {\n icon.appendChild(this.params.icon);\n }\n else if (typeof this.params.icon === 'string') {\n icon.innerHTML = this.params.icon;\n }\n else {\n console.warn('AG Grid: menu item icon must be DOM node or string');\n }\n }\n this.getGui().appendChild(icon);\n }\n addName() {\n const name = loadTemplate(/* html */ `${this.params.name || ''}`);\n this.getGui().appendChild(name);\n }\n addShortcut() {\n if (this.params.isCompact) {\n return;\n }\n const shortcut = loadTemplate(/* html */ `${this.params.shortcut || ''}`);\n this.getGui().appendChild(shortcut);\n }\n addSubMenu() {\n const pointer = loadTemplate(/* html */ ``);\n const eGui = this.getGui();\n if (this.params.subMenu) {\n const iconName = this.gridOptionsService.get('enableRtl') ? 'smallLeft' : 'smallRight';\n setAriaExpanded(eGui, false);\n pointer.appendChild(createIconNoSpan(iconName, this.gridOptionsService));\n }\n eGui.appendChild(pointer);\n }\n getClassName(suffix) {\n return `${this.cssClassPrefix}-${suffix}`;\n }\n destroy() {\n super.destroy();\n }\n}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { BeanStub } from \"../../context/beanStub.mjs\";\nimport { Autowired, Bean, PostConstruct } from \"../../context/context.mjs\";\nimport { ReadOnlyFloatingFilter } from \"../../filter/floating/provided/readOnlyFloatingFilter.mjs\";\nimport { DateFilter } from \"../../filter/provided/date/dateFilter.mjs\";\nimport { DateFloatingFilter } from \"../../filter/provided/date/dateFloatingFilter.mjs\";\nimport { DefaultDateComponent } from \"../../filter/provided/date/defaultDateComponent.mjs\";\nimport { NumberFilter } from \"../../filter/provided/number/numberFilter.mjs\";\nimport { NumberFloatingFilter } from \"../../filter/provided/number/numberFloatingFilter.mjs\";\nimport { TextFilter } from \"../../filter/provided/text/textFilter.mjs\";\nimport { TextFloatingFilter } from \"../../filter/provided/text/textFloatingFilter.mjs\";\nimport { HeaderComp } from \"../../headerRendering/cells/column/headerComp.mjs\";\nimport { SortIndicatorComp } from \"../../headerRendering/cells/column/sortIndicatorComp.mjs\";\nimport { HeaderGroupComp } from \"../../headerRendering/cells/columnGroup/headerGroupComp.mjs\";\nimport { ModuleNames } from \"../../modules/moduleNames.mjs\";\nimport { ModuleRegistry } from \"../../modules/moduleRegistry.mjs\";\nimport { LargeTextCellEditor } from \"../../rendering/cellEditors/largeTextCellEditor.mjs\";\nimport { SelectCellEditor } from \"../../rendering/cellEditors/selectCellEditor.mjs\";\nimport { TextCellEditor } from \"../../rendering/cellEditors/textCellEditor.mjs\";\nimport { AnimateShowChangeCellRenderer } from \"../../rendering/cellRenderers/animateShowChangeCellRenderer.mjs\";\nimport { AnimateSlideCellRenderer } from \"../../rendering/cellRenderers/animateSlideCellRenderer.mjs\";\nimport { GroupCellRenderer } from \"../../rendering/cellRenderers/groupCellRenderer.mjs\";\nimport { LoadingCellRenderer } from \"../../rendering/cellRenderers/loadingCellRenderer.mjs\";\nimport { LoadingOverlayComponent } from \"../../rendering/overlays/loadingOverlayComponent.mjs\";\nimport { NoRowsOverlayComponent } from \"../../rendering/overlays/noRowsOverlayComponent.mjs\";\nimport { TooltipComponent } from \"../../rendering/tooltipComponent.mjs\";\nimport { doOnce } from \"../../utils/function.mjs\";\nimport { iterateObject } from '../../utils/object.mjs';\nimport { fuzzySuggestions } from '../../utils/fuzzyMatch.mjs';\nimport { NumberCellEditor } from \"../../rendering/cellEditors/numberCellEditor.mjs\";\nimport { DateCellEditor } from \"../../rendering/cellEditors/dateCellEditor.mjs\";\nimport { DateStringCellEditor } from \"../../rendering/cellEditors/dateStringCellEditor.mjs\";\nimport { CheckboxCellRenderer } from \"../../rendering/cellRenderers/checkboxCellRenderer.mjs\";\nimport { CheckboxCellEditor } from \"../../rendering/cellEditors/checkboxCellEditor.mjs\";\nimport { AgMenuItemRenderer } from \"../../widgets/agMenuItemRenderer.mjs\";\nlet UserComponentRegistry = class UserComponentRegistry extends BeanStub {\n constructor() {\n super(...arguments);\n this.agGridDefaults = {\n //date\n agDateInput: DefaultDateComponent,\n //header\n agColumnHeader: HeaderComp,\n agColumnGroupHeader: HeaderGroupComp,\n agSortIndicator: SortIndicatorComp,\n //floating filters\n agTextColumnFloatingFilter: TextFloatingFilter,\n agNumberColumnFloatingFilter: NumberFloatingFilter,\n agDateColumnFloatingFilter: DateFloatingFilter,\n agReadOnlyFloatingFilter: ReadOnlyFloatingFilter,\n // renderers\n agAnimateShowChangeCellRenderer: AnimateShowChangeCellRenderer,\n agAnimateSlideCellRenderer: AnimateSlideCellRenderer,\n agGroupCellRenderer: GroupCellRenderer,\n agGroupRowRenderer: GroupCellRenderer,\n agLoadingCellRenderer: LoadingCellRenderer,\n agCheckboxCellRenderer: CheckboxCellRenderer,\n //editors\n agCellEditor: TextCellEditor,\n agTextCellEditor: TextCellEditor,\n agNumberCellEditor: NumberCellEditor,\n agDateCellEditor: DateCellEditor,\n agDateStringCellEditor: DateStringCellEditor,\n agSelectCellEditor: SelectCellEditor,\n agLargeTextCellEditor: LargeTextCellEditor,\n agCheckboxCellEditor: CheckboxCellEditor,\n //filter\n agTextColumnFilter: TextFilter,\n agNumberColumnFilter: NumberFilter,\n agDateColumnFilter: DateFilter,\n //overlays\n agLoadingOverlay: LoadingOverlayComponent,\n agNoRowsOverlay: NoRowsOverlayComponent,\n // tooltips\n agTooltipComponent: TooltipComponent,\n // menu item\n agMenuItem: AgMenuItemRenderer\n };\n /** Used to provide useful error messages if a user is trying to use an enterprise component without loading the module. */\n this.enterpriseAgDefaultCompsModule = {\n agSetColumnFilter: ModuleNames.SetFilterModule,\n agSetColumnFloatingFilter: ModuleNames.SetFilterModule,\n agMultiColumnFilter: ModuleNames.MultiFilterModule,\n agMultiColumnFloatingFilter: ModuleNames.MultiFilterModule,\n agGroupColumnFilter: ModuleNames.RowGroupingModule,\n agGroupColumnFloatingFilter: ModuleNames.RowGroupingModule,\n agRichSelect: ModuleNames.RichSelectModule,\n agRichSelectCellEditor: ModuleNames.RichSelectModule,\n agDetailCellRenderer: ModuleNames.MasterDetailModule,\n agSparklineCellRenderer: ModuleNames.SparklinesModule\n };\n this.jsComps = {};\n }\n init() {\n if (this.gridOptions.components != null) {\n iterateObject(this.gridOptions.components, (key, component) => this.registerJsComponent(key, component));\n }\n }\n registerDefaultComponent(name, component) {\n if (this.agGridDefaults[name]) {\n console.error(`Trying to overwrite a default component. You should call registerComponent`);\n return;\n }\n this.agGridDefaults[name] = component;\n }\n registerJsComponent(name, component) {\n this.jsComps[name] = component;\n }\n retrieve(propertyName, name) {\n const createResult = (component, componentFromFramework) => ({ componentFromFramework, component });\n // FrameworkOverrides.frameworkComponent() is used in two locations:\n // 1) for Vue, user provided components get registered via a framework specific way.\n // 2) for React, it's how the React UI provides alternative default components (eg GroupCellRenderer and DetailCellRenderer)\n const registeredViaFrameworkComp = this.getFrameworkOverrides().frameworkComponent(name, this.gridOptions.components);\n if (registeredViaFrameworkComp != null) {\n return createResult(registeredViaFrameworkComp, true);\n }\n const jsComponent = this.jsComps[name];\n if (jsComponent) {\n const isFwkComp = this.getFrameworkOverrides().isFrameworkComponent(jsComponent);\n return createResult(jsComponent, isFwkComp);\n }\n const defaultComponent = this.agGridDefaults[name];\n if (defaultComponent) {\n return createResult(defaultComponent, false);\n }\n const moduleForComponent = this.enterpriseAgDefaultCompsModule[name];\n if (moduleForComponent) {\n ModuleRegistry.__assertRegistered(moduleForComponent, `AG Grid '${propertyName}' component: ${name}`, this.context.getGridId());\n }\n else {\n doOnce(() => { this.warnAboutMissingComponent(propertyName, name); }, \"MissingComp\" + name);\n }\n return null;\n }\n warnAboutMissingComponent(propertyName, componentName) {\n const validComponents = [\n // Don't include the old names / internals in potential suggestions\n ...Object.keys(this.agGridDefaults).filter(k => !['agCellEditor', 'agGroupRowRenderer', 'agSortIndicator'].includes(k)),\n ...Object.keys(this.jsComps)\n ];\n const suggestions = fuzzySuggestions(componentName, validComponents, true, 0.8).values;\n console.warn(`AG Grid: Could not find '${componentName}' component. It was configured as \"${propertyName}: '${componentName}'\" but it wasn't found in the list of registered components.`);\n if (suggestions.length > 0) {\n console.warn(` Did you mean: [${suggestions.slice(0, 3)}]?`);\n }\n console.warn(`If using a custom component check it has been registered as described in: ${this.getFrameworkOverrides().getDocLink('components/')}`);\n }\n};\n__decorate([\n Autowired('gridOptions')\n], UserComponentRegistry.prototype, \"gridOptions\", void 0);\n__decorate([\n PostConstruct\n], UserComponentRegistry.prototype, \"init\", null);\nUserComponentRegistry = __decorate([\n Bean('userComponentRegistry')\n], UserComponentRegistry);\nexport { UserComponentRegistry };\n","export const DateComponent = {\n propertyName: 'dateComponent',\n cellRenderer: false\n};\nexport const HeaderComponent = {\n propertyName: 'headerComponent',\n cellRenderer: false\n};\nexport const HeaderGroupComponent = {\n propertyName: 'headerGroupComponent',\n cellRenderer: false\n};\nexport const CellRendererComponent = {\n propertyName: 'cellRenderer',\n cellRenderer: true\n};\nexport const CellEditorComponent = {\n propertyName: 'cellEditor',\n cellRenderer: false\n};\nexport const InnerRendererComponent = {\n propertyName: 'innerRenderer',\n cellRenderer: true\n};\nexport const LoadingOverlayComponent = {\n propertyName: 'loadingOverlayComponent',\n cellRenderer: false\n};\nexport const NoRowsOverlayComponent = {\n propertyName: 'noRowsOverlayComponent',\n cellRenderer: false\n};\nexport const TooltipComponent = {\n propertyName: 'tooltipComponent',\n cellRenderer: false\n};\nexport const FilterComponent = {\n propertyName: 'filter',\n cellRenderer: false\n};\nexport const FloatingFilterComponent = {\n propertyName: 'floatingFilterComponent',\n cellRenderer: false\n};\nexport const ToolPanelComponent = {\n propertyName: 'toolPanel',\n cellRenderer: false\n};\nexport const StatusPanelComponent = {\n propertyName: 'statusPanel',\n cellRenderer: false\n};\nexport const FullWidth = {\n propertyName: 'fullWidthCellRenderer',\n cellRenderer: true\n};\nexport const FullWidthLoading = {\n propertyName: 'loadingCellRenderer',\n cellRenderer: true\n};\nexport const FullWidthGroup = {\n propertyName: 'groupRowRenderer',\n cellRenderer: true\n};\nexport const FullWidthDetail = {\n propertyName: 'detailCellRenderer',\n cellRenderer: true\n};\nexport const MenuItemComponent = {\n propertyName: 'menuItem',\n cellRenderer: false\n};\n","export class FloatingFilterMapper {\n static getFloatingFilterType(filterType) {\n return this.filterToFloatingFilterMapping[filterType];\n }\n}\nFloatingFilterMapper.filterToFloatingFilterMapping = {\n set: 'agSetColumnFloatingFilter',\n agSetColumnFilter: 'agSetColumnFloatingFilter',\n multi: 'agMultiColumnFloatingFilter',\n agMultiColumnFilter: 'agMultiColumnFloatingFilter',\n group: 'agGroupColumnFloatingFilter',\n agGroupColumnFilter: 'agGroupColumnFloatingFilter',\n number: 'agNumberColumnFloatingFilter',\n agNumberColumnFilter: 'agNumberColumnFloatingFilter',\n date: 'agDateColumnFloatingFilter',\n agDateColumnFilter: 'agDateColumnFloatingFilter',\n text: 'agTextColumnFloatingFilter',\n agTextColumnFilter: 'agTextColumnFloatingFilter'\n};\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { BeanStub } from \"../../context/beanStub.mjs\";\nimport { Autowired, Bean, Optional } from \"../../context/context.mjs\";\nimport { AgPromise } from \"../../utils/index.mjs\";\nimport { mergeDeep } from '../../utils/object.mjs';\nimport { CellEditorComponent, CellRendererComponent, DateComponent, FilterComponent, FloatingFilterComponent, FullWidth, FullWidthDetail, FullWidthGroup, FullWidthLoading, HeaderComponent, HeaderGroupComponent, InnerRendererComponent, LoadingOverlayComponent, MenuItemComponent, NoRowsOverlayComponent, StatusPanelComponent, ToolPanelComponent, TooltipComponent } from \"./componentTypes.mjs\";\nimport { FloatingFilterMapper } from '../../filter/floating/floatingFilterMapper.mjs';\nlet UserComponentFactory = class UserComponentFactory extends BeanStub {\n getHeaderCompDetails(colDef, params) {\n return this.getCompDetails(colDef, HeaderComponent, 'agColumnHeader', params);\n }\n getHeaderGroupCompDetails(params) {\n const colGroupDef = params.columnGroup.getColGroupDef();\n return this.getCompDetails(colGroupDef, HeaderGroupComponent, 'agColumnGroupHeader', params);\n }\n // this one is unusual, as it can be LoadingCellRenderer, DetailCellRenderer, FullWidthCellRenderer or GroupRowRenderer.\n // so we have to pass the type in.\n getFullWidthCellRendererDetails(params) {\n return this.getCompDetails(this.gridOptions, FullWidth, null, params, true);\n }\n getFullWidthLoadingCellRendererDetails(params) {\n return this.getCompDetails(this.gridOptions, FullWidthLoading, 'agLoadingCellRenderer', params, true);\n }\n getFullWidthGroupCellRendererDetails(params) {\n return this.getCompDetails(this.gridOptions, FullWidthGroup, 'agGroupRowRenderer', params, true);\n }\n getFullWidthDetailCellRendererDetails(params) {\n return this.getCompDetails(this.gridOptions, FullWidthDetail, 'agDetailCellRenderer', params, true);\n }\n // CELL RENDERER\n getInnerRendererDetails(def, params) {\n return this.getCompDetails(def, InnerRendererComponent, null, params);\n }\n getFullWidthGroupRowInnerCellRenderer(def, params) {\n return this.getCompDetails(def, InnerRendererComponent, null, params);\n }\n getCellRendererDetails(def, params) {\n return this.getCompDetails(def, CellRendererComponent, null, params);\n }\n // CELL EDITOR\n getCellEditorDetails(def, params) {\n return this.getCompDetails(def, CellEditorComponent, 'agCellEditor', params, true);\n }\n // FILTER\n getFilterDetails(def, params, defaultFilter) {\n return this.getCompDetails(def, FilterComponent, defaultFilter, params, true);\n }\n getDateCompDetails(params) {\n return this.getCompDetails(this.gridOptions, DateComponent, 'agDateInput', params, true);\n }\n getLoadingOverlayCompDetails(params) {\n return this.getCompDetails(this.gridOptions, LoadingOverlayComponent, 'agLoadingOverlay', params, true);\n }\n getNoRowsOverlayCompDetails(params) {\n return this.getCompDetails(this.gridOptions, NoRowsOverlayComponent, 'agNoRowsOverlay', params, true);\n }\n getTooltipCompDetails(params) {\n return this.getCompDetails(params.colDef, TooltipComponent, 'agTooltipComponent', params, true);\n }\n getSetFilterCellRendererDetails(def, params) {\n return this.getCompDetails(def, CellRendererComponent, null, params);\n }\n getFloatingFilterCompDetails(def, params, defaultFloatingFilter) {\n return this.getCompDetails(def, FloatingFilterComponent, defaultFloatingFilter, params);\n }\n getToolPanelCompDetails(toolPanelDef, params) {\n return this.getCompDetails(toolPanelDef, ToolPanelComponent, null, params, true);\n }\n getStatusPanelCompDetails(def, params) {\n return this.getCompDetails(def, StatusPanelComponent, null, params, true);\n }\n getMenuItemCompDetails(def, params) {\n return this.getCompDetails(def, MenuItemComponent, 'agMenuItem', params, true);\n }\n getCompDetails(defObject, type, defaultName, params, mandatory = false) {\n const { propertyName, cellRenderer } = type;\n let { compName, jsComp, fwComp, paramsFromSelector, popupFromSelector, popupPositionFromSelector } = this.getCompKeys(defObject, type, params);\n const lookupFromRegistry = (key) => {\n const item = this.userComponentRegistry.retrieve(propertyName, key);\n if (item) {\n jsComp = !item.componentFromFramework ? item.component : undefined;\n fwComp = item.componentFromFramework ? item.component : undefined;\n }\n };\n // if compOption is a string, means we need to look the item up\n if (compName != null) {\n lookupFromRegistry(compName);\n }\n // if lookup brought nothing back, and we have a default, lookup the default\n if (jsComp == null && fwComp == null && defaultName != null) {\n lookupFromRegistry(defaultName);\n }\n // if we have a comp option, and it's a function, replace it with an object equivalent adaptor\n if (jsComp && cellRenderer && !this.agComponentUtils.doesImplementIComponent(jsComp)) {\n jsComp = this.agComponentUtils.adaptFunction(propertyName, jsComp);\n }\n if (!jsComp && !fwComp) {\n if (mandatory) {\n console.error(`AG Grid: Could not find component ${compName}, did you forget to configure this component?`);\n }\n return;\n }\n const paramsMerged = this.mergeParamsWithApplicationProvidedParams(defObject, type, params, paramsFromSelector);\n const componentFromFramework = jsComp == null;\n const componentClass = jsComp ? jsComp : fwComp;\n return {\n componentFromFramework,\n componentClass,\n params: paramsMerged,\n type: type,\n popupFromSelector,\n popupPositionFromSelector,\n newAgStackInstance: () => this.newAgStackInstance(componentClass, componentFromFramework, paramsMerged, type)\n };\n }\n getCompKeys(defObject, type, params) {\n const { propertyName } = type;\n let compName;\n let jsComp;\n let fwComp;\n let paramsFromSelector;\n let popupFromSelector;\n let popupPositionFromSelector;\n // there are two types of js comps, class based and func based. we can only check for\n // class based, by checking if getGui() exists. no way to differentiate js func based vs eg react func based\n // const isJsClassComp = (comp: any) => this.agComponentUtils.doesImplementIComponent(comp);\n // const fwActive = this.frameworkComponentWrapper != null;\n // pull from defObject if available\n if (defObject) {\n const defObjectAny = defObject;\n // if selector, use this\n const selectorFunc = defObjectAny[propertyName + 'Selector'];\n const selectorRes = selectorFunc ? selectorFunc(params) : null;\n const assignComp = (providedJsComp) => {\n if (typeof providedJsComp === 'string') {\n compName = providedJsComp;\n }\n else if (providedJsComp != null && providedJsComp !== true) {\n const isFwkComp = this.getFrameworkOverrides().isFrameworkComponent(providedJsComp);\n if (isFwkComp) {\n fwComp = providedJsComp;\n }\n else {\n jsComp = providedJsComp;\n }\n }\n };\n if (selectorRes) {\n assignComp(selectorRes.component);\n paramsFromSelector = selectorRes.params;\n popupFromSelector = selectorRes.popup;\n popupPositionFromSelector = selectorRes.popupPosition;\n }\n else {\n // if no selector, or result of selector is empty, take from defObject\n assignComp(defObjectAny[propertyName]);\n }\n }\n return { compName, jsComp, fwComp, paramsFromSelector, popupFromSelector, popupPositionFromSelector };\n }\n newAgStackInstance(ComponentClass, componentFromFramework, params, type) {\n const propertyName = type.propertyName;\n const jsComponent = !componentFromFramework;\n // using javascript component\n let instance;\n if (jsComponent) {\n instance = new ComponentClass();\n }\n else {\n // Using framework component\n const thisComponentConfig = this.componentMetadataProvider.retrieve(propertyName);\n instance = this.frameworkComponentWrapper.wrap(ComponentClass, thisComponentConfig.mandatoryMethodList, thisComponentConfig.optionalMethodList, type);\n }\n const deferredInit = this.initComponent(instance, params);\n if (deferredInit == null) {\n return AgPromise.resolve(instance);\n }\n return deferredInit.then(() => instance);\n }\n // used by Floating Filter\n mergeParamsWithApplicationProvidedParams(defObject, type, paramsFromGrid, paramsFromSelector = null) {\n const params = this.gridOptionsService.getGridCommonParams();\n mergeDeep(params, paramsFromGrid);\n // pull user params from either the old prop name and new prop name\n // eg either cellRendererParams and cellCompParams\n const defObjectAny = defObject;\n const userParams = defObjectAny && defObjectAny[type.propertyName + 'Params'];\n if (typeof userParams === 'function') {\n const userParamsFromFunc = userParams(paramsFromGrid);\n mergeDeep(params, userParamsFromFunc);\n }\n else if (typeof userParams === 'object') {\n mergeDeep(params, userParams);\n }\n mergeDeep(params, paramsFromSelector);\n return params;\n }\n initComponent(component, params) {\n this.context.createBean(component);\n if (component.init == null) {\n return;\n }\n return component.init(params);\n }\n getDefaultFloatingFilterType(def, getFromDefault) {\n if (def == null) {\n return null;\n }\n let defaultFloatingFilterType = null;\n let { compName, jsComp, fwComp } = this.getCompKeys(def, FilterComponent);\n if (compName) {\n // will be undefined if not in the map\n defaultFloatingFilterType = FloatingFilterMapper.getFloatingFilterType(compName);\n }\n else {\n const usingDefaultFilter = (jsComp == null && fwComp == null) && (def.filter === true);\n if (usingDefaultFilter) {\n defaultFloatingFilterType = getFromDefault();\n }\n }\n return defaultFloatingFilterType;\n }\n};\n__decorate([\n Autowired('gridOptions')\n], UserComponentFactory.prototype, \"gridOptions\", void 0);\n__decorate([\n Autowired('agComponentUtils')\n], UserComponentFactory.prototype, \"agComponentUtils\", void 0);\n__decorate([\n Autowired('componentMetadataProvider')\n], UserComponentFactory.prototype, \"componentMetadataProvider\", void 0);\n__decorate([\n Autowired('userComponentRegistry')\n], UserComponentFactory.prototype, \"userComponentRegistry\", void 0);\n__decorate([\n Optional('frameworkComponentWrapper')\n], UserComponentFactory.prototype, \"frameworkComponentWrapper\", void 0);\nUserComponentFactory = __decorate([\n Bean('userComponentFactory')\n], UserComponentFactory);\nexport { UserComponentFactory };\n","export class ColDefUtil {\n}\nColDefUtil.ColDefPropertyMap = {\n headerName: undefined,\n columnGroupShow: undefined,\n headerClass: undefined,\n toolPanelClass: undefined,\n headerValueGetter: undefined,\n pivotKeys: undefined,\n groupId: undefined,\n colId: undefined,\n sort: undefined,\n initialSort: undefined,\n field: undefined,\n type: undefined,\n cellDataType: undefined,\n tooltipComponent: undefined,\n tooltipField: undefined,\n headerTooltip: undefined,\n cellClass: undefined,\n showRowGroup: undefined,\n filter: undefined,\n initialAggFunc: undefined,\n defaultAggFunc: undefined,\n aggFunc: undefined,\n pinned: undefined,\n initialPinned: undefined,\n chartDataType: undefined,\n cellAriaRole: undefined,\n cellEditorPopupPosition: undefined,\n headerGroupComponent: undefined,\n headerGroupComponentParams: undefined,\n cellStyle: undefined,\n cellRenderer: undefined,\n cellRendererParams: undefined,\n cellEditor: undefined,\n cellEditorParams: undefined,\n filterParams: undefined,\n pivotValueColumn: undefined,\n headerComponent: undefined,\n headerComponentParams: undefined,\n floatingFilterComponent: undefined,\n floatingFilterComponentParams: undefined,\n tooltipComponentParams: undefined,\n refData: undefined,\n columnsMenuParams: undefined,\n columnChooserParams: undefined,\n children: undefined,\n sortingOrder: undefined,\n allowedAggFuncs: undefined,\n menuTabs: undefined,\n pivotTotalColumnIds: undefined,\n cellClassRules: undefined,\n icons: undefined,\n sortIndex: undefined,\n initialSortIndex: undefined,\n flex: undefined,\n initialFlex: undefined,\n width: undefined,\n initialWidth: undefined,\n minWidth: undefined,\n maxWidth: undefined,\n rowGroupIndex: undefined,\n initialRowGroupIndex: undefined,\n pivotIndex: undefined,\n initialPivotIndex: undefined,\n suppressCellFlash: undefined,\n suppressColumnsToolPanel: undefined,\n suppressFiltersToolPanel: undefined,\n openByDefault: undefined,\n marryChildren: undefined,\n suppressStickyLabel: undefined,\n hide: undefined,\n initialHide: undefined,\n rowGroup: undefined,\n initialRowGroup: undefined,\n pivot: undefined,\n initialPivot: undefined,\n checkboxSelection: undefined,\n showDisabledCheckboxes: undefined,\n headerCheckboxSelection: undefined,\n headerCheckboxSelectionFilteredOnly: undefined,\n headerCheckboxSelectionCurrentPageOnly: undefined,\n suppressMenu: undefined,\n suppressHeaderMenuButton: undefined,\n suppressMovable: undefined,\n lockPosition: undefined,\n lockVisible: undefined,\n lockPinned: undefined,\n unSortIcon: undefined,\n suppressSizeToFit: undefined,\n suppressAutoSize: undefined,\n enableRowGroup: undefined,\n enablePivot: undefined,\n enableValue: undefined,\n editable: undefined,\n suppressPaste: undefined,\n suppressNavigable: undefined,\n enableCellChangeFlash: undefined,\n rowDrag: undefined,\n dndSource: undefined,\n autoHeight: undefined,\n wrapText: undefined,\n sortable: undefined,\n resizable: undefined,\n singleClickEdit: undefined,\n floatingFilter: undefined,\n cellEditorPopup: undefined,\n suppressFillHandle: undefined,\n wrapHeaderText: undefined,\n autoHeaderHeight: undefined,\n dndSourceOnRowDrag: undefined,\n valueGetter: undefined,\n valueSetter: undefined,\n filterValueGetter: undefined,\n keyCreator: undefined,\n valueFormatter: undefined,\n valueParser: undefined,\n comparator: undefined,\n equals: undefined,\n pivotComparator: undefined,\n suppressKeyboardEvent: undefined,\n suppressHeaderKeyboardEvent: undefined,\n colSpan: undefined,\n rowSpan: undefined,\n getQuickFilterText: undefined,\n onCellValueChanged: undefined,\n onCellClicked: undefined,\n onCellDoubleClicked: undefined,\n onCellContextMenu: undefined,\n rowDragText: undefined,\n tooltipValueGetter: undefined,\n cellRendererSelector: undefined,\n cellEditorSelector: undefined,\n suppressSpanHeaderHeight: undefined,\n useValueFormatterForExport: undefined,\n useValueParserForImport: undefined,\n mainMenuItems: undefined,\n contextMenuItems: undefined,\n suppressFloatingFilterButton: undefined,\n suppressHeaderFilterButton: undefined,\n suppressHeaderContextMenu: undefined,\n};\nColDefUtil.ALL_PROPERTIES = Object.keys(ColDefUtil.ColDefPropertyMap);\n","// Excel Export\nexport var ExcelFactoryMode;\n(function (ExcelFactoryMode) {\n ExcelFactoryMode[ExcelFactoryMode[\"SINGLE_SHEET\"] = 0] = \"SINGLE_SHEET\";\n ExcelFactoryMode[ExcelFactoryMode[\"MULTI_SHEET\"] = 1] = \"MULTI_SHEET\";\n})(ExcelFactoryMode || (ExcelFactoryMode = {}));\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Bean, PreDestroy, Autowired } from \"../context/context.mjs\";\nimport { Events } from \"../events.mjs\";\nimport { BeanStub } from \"../context/beanStub.mjs\";\nimport { exists } from \"../utils/generic.mjs\";\nimport { removeFromArray } from \"../utils/array.mjs\";\nimport { areEventsNear } from \"../utils/mouse.mjs\";\nimport { isBrowserSafari } from \"../utils/browser.mjs\";\nimport { isFocusableFormField } from \"../utils/dom.mjs\";\n/** Adds drag listening onto an element. In AG Grid this is used twice, first is resizing columns,\n * second is moving the columns and column groups around (ie the 'drag' part of Drag and Drop. */\nlet DragService = class DragService extends BeanStub {\n constructor() {\n super(...arguments);\n this.dragEndFunctions = [];\n this.dragSources = [];\n }\n removeAllListeners() {\n this.dragSources.forEach(this.removeListener.bind(this));\n this.dragSources.length = 0;\n }\n removeListener(dragSourceAndListener) {\n const element = dragSourceAndListener.dragSource.eElement;\n const mouseDownListener = dragSourceAndListener.mouseDownListener;\n element.removeEventListener('mousedown', mouseDownListener);\n // remove touch listener only if it exists\n if (dragSourceAndListener.touchEnabled) {\n const touchStartListener = dragSourceAndListener.touchStartListener;\n element.removeEventListener('touchstart', touchStartListener, { passive: true });\n }\n }\n removeDragSource(params) {\n const dragSourceAndListener = this.dragSources.find(item => item.dragSource === params);\n if (!dragSourceAndListener) {\n return;\n }\n this.removeListener(dragSourceAndListener);\n removeFromArray(this.dragSources, dragSourceAndListener);\n }\n isDragging() {\n return this.dragging;\n }\n addDragSource(params) {\n const mouseListener = this.onMouseDown.bind(this, params);\n const { eElement, includeTouch, stopPropagationForTouch } = params;\n eElement.addEventListener('mousedown', mouseListener);\n let touchListener = null;\n const suppressTouch = this.gridOptionsService.get('suppressTouch');\n if (includeTouch && !suppressTouch) {\n touchListener = (touchEvent) => {\n if (isFocusableFormField(touchEvent.target)) {\n return;\n }\n if (touchEvent.cancelable) {\n touchEvent.preventDefault();\n if (stopPropagationForTouch) {\n touchEvent.stopPropagation();\n }\n }\n this.onTouchStart(params, touchEvent);\n };\n // we set passive=false, as we want to prevent default on this event\n eElement.addEventListener('touchstart', touchListener, { passive: false });\n }\n this.dragSources.push({\n dragSource: params,\n mouseDownListener: mouseListener,\n touchStartListener: touchListener,\n touchEnabled: !!includeTouch\n });\n }\n getStartTarget() {\n return this.startTarget;\n }\n // gets called whenever mouse down on any drag source\n onTouchStart(params, touchEvent) {\n this.currentDragParams = params;\n this.dragging = false;\n const touch = touchEvent.touches[0];\n this.touchLastTime = touch;\n this.touchStart = touch;\n const touchMoveEvent = (e) => this.onTouchMove(e, params.eElement);\n const touchEndEvent = (e) => this.onTouchUp(e, params.eElement);\n const documentTouchMove = (e) => { if (e.cancelable) {\n e.preventDefault();\n } };\n const target = touchEvent.target;\n const events = [\n // Prevents the page document from moving while we are dragging items around.\n // preventDefault needs to be called in the touchmove listener and never inside the\n // touchstart, because using touchstart causes the click event to be cancelled on touch devices.\n { target: this.gridOptionsService.getRootNode(), type: 'touchmove', listener: documentTouchMove, options: { passive: false } },\n { target, type: 'touchmove', listener: touchMoveEvent, options: { passive: true } },\n { target, type: 'touchend', listener: touchEndEvent, options: { passive: true } },\n { target, type: 'touchcancel', listener: touchEndEvent, options: { passive: true } }\n ];\n // temporally add these listeners, for the duration of the drag\n this.addTemporaryEvents(events);\n // see if we want to start dragging straight away\n if (params.dragStartPixels === 0) {\n this.onCommonMove(touch, this.touchStart, params.eElement);\n }\n }\n // gets called whenever mouse down on any drag source\n onMouseDown(params, mouseEvent) {\n const e = mouseEvent;\n if (params.skipMouseEvent && params.skipMouseEvent(mouseEvent)) {\n return;\n }\n // if there are two elements with parent / child relationship, and both are draggable,\n // when we drag the child, we should NOT drag the parent. an example of this is row moving\n // and range selection - row moving should get preference when use drags the rowDrag component.\n if (e._alreadyProcessedByDragService) {\n return;\n }\n e._alreadyProcessedByDragService = true;\n // only interested in left button clicks\n if (mouseEvent.button !== 0) {\n return;\n }\n if (this.shouldPreventMouseEvent(mouseEvent)) {\n mouseEvent.preventDefault();\n }\n this.currentDragParams = params;\n this.dragging = false;\n this.mouseStartEvent = mouseEvent;\n this.startTarget = mouseEvent.target;\n const mouseMoveEvent = (event) => this.onMouseMove(event, params.eElement);\n const mouseUpEvent = (event) => this.onMouseUp(event, params.eElement);\n const contextEvent = (event) => event.preventDefault();\n const target = this.gridOptionsService.getRootNode();\n const events = [\n { target, type: 'mousemove', listener: mouseMoveEvent },\n { target, type: 'mouseup', listener: mouseUpEvent },\n { target, type: 'contextmenu', listener: contextEvent }\n ];\n // temporally add these listeners, for the duration of the drag\n this.addTemporaryEvents(events);\n //see if we want to start dragging straight away\n if (params.dragStartPixels === 0) {\n this.onMouseMove(mouseEvent, params.eElement);\n }\n }\n addTemporaryEvents(events) {\n events.forEach((currentEvent) => {\n const { target, type, listener, options } = currentEvent;\n target.addEventListener(type, listener, options);\n });\n this.dragEndFunctions.push(() => {\n events.forEach((currentEvent) => {\n const { target, type, listener, options } = currentEvent;\n target.removeEventListener(type, listener, options);\n });\n });\n }\n // returns true if the event is close to the original event by X pixels either vertically or horizontally.\n // we only start dragging after X pixels so this allows us to know if we should start dragging yet.\n isEventNearStartEvent(currentEvent, startEvent) {\n // by default, we wait 4 pixels before starting the drag\n const { dragStartPixels } = this.currentDragParams;\n const requiredPixelDiff = exists(dragStartPixels) ? dragStartPixels : 4;\n return areEventsNear(currentEvent, startEvent, requiredPixelDiff);\n }\n getFirstActiveTouch(touchList) {\n for (let i = 0; i < touchList.length; i++) {\n if (touchList[i].identifier === this.touchStart.identifier) {\n return touchList[i];\n }\n }\n return null;\n }\n onCommonMove(currentEvent, startEvent, el) {\n if (!this.dragging) {\n // if mouse hasn't travelled from the start position enough, do nothing\n if (!this.dragging && this.isEventNearStartEvent(currentEvent, startEvent)) {\n return;\n }\n this.dragging = true;\n const event = {\n type: Events.EVENT_DRAG_STARTED,\n target: el\n };\n this.eventService.dispatchEvent(event);\n this.currentDragParams.onDragStart(startEvent);\n // we need ONE drag action at the startEvent, so that we are guaranteed the drop target\n // at the start gets notified. this is because the drag can start outside of the element\n // that started it, as the mouse is allowed drag away from the mouse down before it's\n // considered a drag (the isEventNearStartEvent() above). if we didn't do this, then\n // it would be possible to click a column by the edge, then drag outside of the drop zone\n // in less than 4 pixels and the drag officially starts outside of the header but the header\n // wouldn't be notified of the dragging.\n this.currentDragParams.onDragging(startEvent);\n }\n this.currentDragParams.onDragging(currentEvent);\n }\n onTouchMove(touchEvent, el) {\n const touch = this.getFirstActiveTouch(touchEvent.touches);\n if (!touch) {\n return;\n }\n // this.___statusPanel.setInfoText(Math.random() + ' onTouchMove preventDefault stopPropagation');\n this.onCommonMove(touch, this.touchStart, el);\n }\n // only gets called after a mouse down - as this is only added after mouseDown\n // and is removed when mouseUp happens\n onMouseMove(mouseEvent, el) {\n var _a;\n if (isBrowserSafari()) {\n const eDocument = this.gridOptionsService.getDocument();\n (_a = eDocument.getSelection()) === null || _a === void 0 ? void 0 : _a.removeAllRanges();\n }\n if (this.shouldPreventMouseEvent(mouseEvent)) {\n mouseEvent.preventDefault();\n }\n this.onCommonMove(mouseEvent, this.mouseStartEvent, el);\n }\n shouldPreventMouseEvent(mouseEvent) {\n const isEnableCellTextSelect = this.gridOptionsService.get('enableCellTextSelection');\n const isMouseMove = mouseEvent.type === 'mousemove';\n return (\n // when `isEnableCellTextSelect` is `true`, we need to preventDefault on mouseMove\n // to avoid the grid text being selected while dragging components.\n ((isEnableCellTextSelect && isMouseMove)) &&\n mouseEvent.cancelable &&\n this.mouseEventService.isEventFromThisGrid(mouseEvent) &&\n !this.isOverFormFieldElement(mouseEvent));\n }\n isOverFormFieldElement(mouseEvent) {\n const el = mouseEvent.target;\n const tagName = el === null || el === void 0 ? void 0 : el.tagName.toLocaleLowerCase();\n return !!(tagName === null || tagName === void 0 ? void 0 : tagName.match('^a$|textarea|input|select|button'));\n }\n onTouchUp(touchEvent, el) {\n let touch = this.getFirstActiveTouch(touchEvent.changedTouches);\n // i haven't worked this out yet, but there is no matching touch\n // when we get the touch up event. to get around this, we swap in\n // the last touch. this is a hack to 'get it working' while we\n // figure out what's going on, why we are not getting a touch in\n // current event.\n if (!touch) {\n touch = this.touchLastTime;\n }\n // if mouse was left up before we started to move, then this is a tap.\n // we check this before onUpCommon as onUpCommon resets the dragging\n // let tap = !this.dragging;\n // let tapTarget = this.currentDragParams.eElement;\n this.onUpCommon(touch, el);\n // if tap, tell user\n // console.log(`${Math.random()} tap = ${tap}`);\n // if (tap) {\n // tapTarget.click();\n // }\n }\n onMouseUp(mouseEvent, el) {\n this.onUpCommon(mouseEvent, el);\n }\n onUpCommon(eventOrTouch, el) {\n if (this.dragging) {\n this.dragging = false;\n this.currentDragParams.onDragStop(eventOrTouch);\n const event = {\n type: Events.EVENT_DRAG_STOPPED,\n target: el\n };\n this.eventService.dispatchEvent(event);\n }\n this.mouseStartEvent = null;\n this.startTarget = null;\n this.touchStart = null;\n this.touchLastTime = null;\n this.currentDragParams = null;\n this.dragEndFunctions.forEach(func => func());\n this.dragEndFunctions.length = 0;\n }\n};\n__decorate([\n Autowired('mouseEventService')\n], DragService.prototype, \"mouseEventService\", void 0);\n__decorate([\n PreDestroy\n], DragService.prototype, \"removeAllListeners\", null);\nDragService = __decorate([\n Bean('dragService')\n], DragService);\nexport { DragService };\n","export class AutoScrollService {\n constructor(params) {\n this.tickingInterval = null;\n this.onScrollCallback = null;\n this.scrollContainer = params.scrollContainer;\n this.scrollHorizontally = params.scrollAxis.indexOf('x') !== -1;\n this.scrollVertically = params.scrollAxis.indexOf('y') !== -1;\n this.scrollByTick = params.scrollByTick != null ? params.scrollByTick : 20;\n if (params.onScrollCallback) {\n this.onScrollCallback = params.onScrollCallback;\n }\n if (this.scrollVertically) {\n this.getVerticalPosition = params.getVerticalPosition;\n this.setVerticalPosition = params.setVerticalPosition;\n }\n if (this.scrollHorizontally) {\n this.getHorizontalPosition = params.getHorizontalPosition;\n this.setHorizontalPosition = params.setHorizontalPosition;\n }\n this.shouldSkipVerticalScroll = params.shouldSkipVerticalScroll || (() => false);\n this.shouldSkipHorizontalScroll = params.shouldSkipHorizontalScroll || (() => false);\n }\n check(mouseEvent, forceSkipVerticalScroll = false) {\n const skipVerticalScroll = forceSkipVerticalScroll || this.shouldSkipVerticalScroll();\n if (skipVerticalScroll && this.shouldSkipHorizontalScroll()) {\n return;\n }\n const rect = this.scrollContainer.getBoundingClientRect();\n const scrollTick = this.scrollByTick;\n this.tickLeft = mouseEvent.clientX < (rect.left + scrollTick);\n this.tickRight = mouseEvent.clientX > (rect.right - scrollTick);\n this.tickUp = mouseEvent.clientY < (rect.top + scrollTick) && !skipVerticalScroll;\n this.tickDown = mouseEvent.clientY > (rect.bottom - scrollTick) && !skipVerticalScroll;\n if (this.tickLeft || this.tickRight || this.tickUp || this.tickDown) {\n this.ensureTickingStarted();\n }\n else {\n this.ensureCleared();\n }\n }\n ensureTickingStarted() {\n if (this.tickingInterval === null) {\n this.tickingInterval = window.setInterval(this.doTick.bind(this), 100);\n this.tickCount = 0;\n }\n }\n doTick() {\n this.tickCount++;\n let tickAmount;\n tickAmount = this.tickCount > 20 ? 200 : (this.tickCount > 10 ? 80 : 40);\n if (this.scrollVertically) {\n const vScrollPosition = this.getVerticalPosition();\n if (this.tickUp) {\n this.setVerticalPosition(vScrollPosition - tickAmount);\n }\n if (this.tickDown) {\n this.setVerticalPosition(vScrollPosition + tickAmount);\n }\n }\n if (this.scrollHorizontally) {\n const hScrollPosition = this.getHorizontalPosition();\n if (this.tickLeft) {\n this.setHorizontalPosition(hScrollPosition - tickAmount);\n }\n if (this.tickRight) {\n this.setHorizontalPosition(hScrollPosition + tickAmount);\n }\n }\n if (this.onScrollCallback) {\n this.onScrollCallback();\n }\n }\n ensureCleared() {\n if (this.tickingInterval) {\n window.clearInterval(this.tickingInterval);\n this.tickingInterval = null;\n }\n }\n}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { AutoScrollService } from \"../autoScrollService.mjs\";\nimport { BeanStub } from \"../context/beanStub.mjs\";\nimport { Autowired, PostConstruct } from \"../context/context.mjs\";\nimport { radioCssClass } from \"../utils/dom.mjs\";\nimport { DragAndDropService } from \"./dragAndDropService.mjs\";\nconst LIST_ITEM_HOVERED = 'ag-list-item-hovered';\nexport class VirtualListDragFeature extends BeanStub {\n constructor(comp, virtualList, params) {\n super();\n this.comp = comp;\n this.virtualList = virtualList;\n this.params = params;\n this.currentDragValue = null;\n this.lastHoveredListItem = null;\n }\n postConstruct() {\n this.addManagedListener(this.params.eventSource, this.params.listItemDragStartEvent, this.listItemDragStart.bind(this));\n this.addManagedListener(this.params.eventSource, this.params.listItemDragEndEvent, this.listItemDragEnd.bind(this));\n this.createDropTarget();\n this.createAutoScrollService();\n }\n listItemDragStart(event) {\n this.currentDragValue = this.params.getCurrentDragValue(event);\n this.moveBlocked = this.params.isMoveBlocked(this.currentDragValue);\n }\n listItemDragEnd() {\n window.setTimeout(() => {\n this.currentDragValue = null;\n this.moveBlocked = false;\n }, 10);\n }\n createDropTarget() {\n const dropTarget = {\n isInterestedIn: (type) => type === this.params.dragSourceType,\n getIconName: () => this.moveBlocked ? DragAndDropService.ICON_PINNED : DragAndDropService.ICON_MOVE,\n getContainer: () => this.comp.getGui(),\n onDragging: (e) => this.onDragging(e),\n onDragStop: () => this.onDragStop(),\n onDragLeave: () => this.onDragLeave()\n };\n this.dragAndDropService.addDropTarget(dropTarget);\n }\n createAutoScrollService() {\n const virtualListGui = this.virtualList.getGui();\n this.autoScrollService = new AutoScrollService({\n scrollContainer: virtualListGui,\n scrollAxis: 'y',\n getVerticalPosition: () => virtualListGui.scrollTop,\n setVerticalPosition: (position) => virtualListGui.scrollTop = position\n });\n }\n onDragging(e) {\n if (!this.currentDragValue || this.moveBlocked) {\n return;\n }\n const hoveredListItem = this.getListDragItem(e);\n const comp = this.virtualList.getComponentAt(hoveredListItem.rowIndex);\n if (!comp) {\n return;\n }\n const el = comp.getGui().parentElement;\n if (this.lastHoveredListItem &&\n this.lastHoveredListItem.rowIndex === hoveredListItem.rowIndex &&\n this.lastHoveredListItem.position === hoveredListItem.position) {\n return;\n }\n this.autoScrollService.check(e.event);\n this.clearHoveredItems();\n this.lastHoveredListItem = hoveredListItem;\n radioCssClass(el, LIST_ITEM_HOVERED);\n radioCssClass(el, `ag-item-highlight-${hoveredListItem.position}`);\n }\n getListDragItem(e) {\n const virtualListGui = this.virtualList.getGui();\n const paddingTop = parseFloat(window.getComputedStyle(virtualListGui).paddingTop);\n const rowHeight = this.virtualList.getRowHeight();\n const scrollTop = this.virtualList.getScrollTop();\n const rowIndex = Math.max(0, (e.y - paddingTop + scrollTop) / rowHeight);\n const maxLen = this.params.getNumRows(this.comp) - 1;\n const normalizedRowIndex = Math.min(maxLen, rowIndex) | 0;\n return {\n rowIndex: normalizedRowIndex,\n position: (Math.round(rowIndex) > rowIndex || rowIndex > maxLen) ? 'bottom' : 'top',\n component: this.virtualList.getComponentAt(normalizedRowIndex)\n };\n }\n onDragStop() {\n if (this.moveBlocked) {\n return;\n }\n this.params.moveItem(this.currentDragValue, this.lastHoveredListItem);\n this.clearHoveredItems();\n this.autoScrollService.ensureCleared();\n }\n onDragLeave() {\n this.clearHoveredItems();\n this.autoScrollService.ensureCleared();\n }\n clearHoveredItems() {\n const virtualListGui = this.virtualList.getGui();\n virtualListGui.querySelectorAll(`.${LIST_ITEM_HOVERED}`).forEach(el => {\n [\n LIST_ITEM_HOVERED,\n 'ag-item-highlight-top',\n 'ag-item-highlight-bottom'\n ].forEach(cls => {\n el.classList.remove(cls);\n });\n });\n this.lastHoveredListItem = null;\n }\n}\n__decorate([\n Autowired('dragAndDropService')\n], VirtualListDragFeature.prototype, \"dragAndDropService\", void 0);\n__decorate([\n PostConstruct\n], VirtualListDragFeature.prototype, \"postConstruct\", null);\n","export var RowHighlightPosition;\n(function (RowHighlightPosition) {\n RowHighlightPosition[RowHighlightPosition[\"Above\"] = 0] = \"Above\";\n RowHighlightPosition[RowHighlightPosition[\"Below\"] = 1] = \"Below\";\n})(RowHighlightPosition || (RowHighlightPosition = {}));\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Autowired, Bean, Optional, PostConstruct } from \"./context/context.mjs\";\nimport { ExcelFactoryMode } from \"./interfaces/iExcelCreator.mjs\";\nimport { ModuleNames } from \"./modules/moduleNames.mjs\";\nimport { ModuleRegistry } from \"./modules/moduleRegistry.mjs\";\nimport { exists, missing } from \"./utils/generic.mjs\";\nimport { iterateObject, removeAllReferences } from \"./utils/object.mjs\";\nimport { Events } from './eventKeys.mjs';\nimport { warnOnce } from \"./utils/function.mjs\";\nexport function unwrapUserComp(comp) {\n const compAsAny = comp;\n const isProxy = compAsAny != null && compAsAny.getFrameworkComponentInstance != null;\n return isProxy ? compAsAny.getFrameworkComponentInstance() : comp;\n}\nlet GridApi = class GridApi {\n constructor() {\n this.detailGridInfoMap = {};\n this.destroyCalled = false;\n }\n init() {\n switch (this.rowModel.getType()) {\n case 'clientSide':\n this.clientSideRowModel = this.rowModel;\n break;\n case 'infinite':\n this.infiniteRowModel = this.rowModel;\n break;\n case 'serverSide':\n this.serverSideRowModel = this.rowModel;\n break;\n }\n this.ctrlsService.whenReady(() => {\n this.gridBodyCtrl = this.ctrlsService.getGridBodyCtrl();\n });\n }\n /** Used internally by grid. Not intended to be used by the client. Interface may change between releases. */\n __getAlignedGridService() {\n return this.alignedGridsService;\n }\n /** Used internally by grid. Not intended to be used by the client. Interface may change between releases. */\n __getContext() {\n return this.context;\n }\n /** Used internally by grid. Not intended to be used by the client. Interface may change between releases. */\n __getModel() {\n return this.rowModel;\n }\n /** Returns the `gridId` for the current grid as specified via the gridOptions property `gridId` or the auto assigned grid id if none was provided. */\n getGridId() {\n return this.context.getGridId();\n }\n /** Register a detail grid with the master grid when it is created. */\n addDetailGridInfo(id, gridInfo) {\n this.detailGridInfoMap[id] = gridInfo;\n }\n /** Unregister a detail grid from the master grid when it is destroyed. */\n removeDetailGridInfo(id) {\n this.detailGridInfoMap[id] = undefined;\n }\n /** Returns the `DetailGridInfo` corresponding to the supplied `detailGridId`. */\n getDetailGridInfo(id) {\n return this.detailGridInfoMap[id];\n }\n /** Iterates through each `DetailGridInfo` in the grid and calls the supplied callback on each. */\n forEachDetailGridInfo(callback) {\n let index = 0;\n iterateObject(this.detailGridInfoMap, (id, gridInfo) => {\n // check for undefined, as old references will still be lying around\n if (exists(gridInfo)) {\n callback(gridInfo, index);\n index++;\n }\n });\n }\n /** Similar to `exportDataAsCsv`, except returns the result as a string rather than download it. */\n getDataAsCsv(params) {\n if (ModuleRegistry.__assertRegistered(ModuleNames.CsvExportModule, 'api.getDataAsCsv', this.context.getGridId())) {\n return this.csvCreator.getDataAsCsv(params);\n }\n }\n /** Downloads a CSV export of the grid's data. */\n exportDataAsCsv(params) {\n if (ModuleRegistry.__assertRegistered(ModuleNames.CsvExportModule, 'api.exportDataAsCSv', this.context.getGridId())) {\n this.csvCreator.exportDataAsCsv(params);\n }\n }\n assertNotExcelMultiSheet(method, params) {\n if (!ModuleRegistry.__assertRegistered(ModuleNames.ExcelExportModule, 'api.' + method, this.context.getGridId())) {\n return false;\n }\n if (this.excelCreator.getFactoryMode() === ExcelFactoryMode.MULTI_SHEET) {\n console.warn(\"AG Grid: The Excel Exporter is currently on Multi Sheet mode. End that operation by calling 'api.getMultipleSheetAsExcel()' or 'api.exportMultipleSheetsAsExcel()'\");\n return false;\n }\n return true;\n }\n /** Similar to `exportDataAsExcel`, except instead of downloading a file, it will return a [Blob](https://developer.mozilla.org/en-US/docs/Web/API/Blob) to be processed by the user. */\n getDataAsExcel(params) {\n if (this.assertNotExcelMultiSheet('getDataAsExcel', params)) {\n return this.excelCreator.getDataAsExcel(params);\n }\n }\n /** Downloads an Excel export of the grid's data. */\n exportDataAsExcel(params) {\n if (this.assertNotExcelMultiSheet('exportDataAsExcel', params)) {\n this.excelCreator.exportDataAsExcel(params);\n }\n }\n /** This is method to be used to get the grid's data as a sheet, that will later be exported either by `getMultipleSheetsAsExcel()` or `exportMultipleSheetsAsExcel()`. */\n getSheetDataForExcel(params) {\n if (!ModuleRegistry.__assertRegistered(ModuleNames.ExcelExportModule, 'api.getSheetDataForExcel', this.context.getGridId())) {\n return;\n }\n this.excelCreator.setFactoryMode(ExcelFactoryMode.MULTI_SHEET);\n return this.excelCreator.getSheetDataForExcel(params);\n }\n /** Similar to `exportMultipleSheetsAsExcel`, except instead of downloading a file, it will return a [Blob](https://developer.mozilla.org/en-US/docs/Web/API/Blob) to be processed by the user. */\n getMultipleSheetsAsExcel(params) {\n if (ModuleRegistry.__assertRegistered(ModuleNames.ExcelExportModule, 'api.getMultipleSheetsAsExcel', this.context.getGridId())) {\n return this.excelCreator.getMultipleSheetsAsExcel(params);\n }\n }\n /** Downloads an Excel export of multiple sheets in one file. */\n exportMultipleSheetsAsExcel(params) {\n if (ModuleRegistry.__assertRegistered(ModuleNames.ExcelExportModule, 'api.exportMultipleSheetsAsExcel', this.context.getGridId())) {\n this.excelCreator.exportMultipleSheetsAsExcel(params);\n }\n }\n /**\n * Sets an ARIA property in the grid panel (element with `role=\\\"grid\\\"`), and removes an ARIA property when the value is null.\n *\n * Example: `api.setGridAriaProperty('label', 'my grid')` will set `aria-label=\\\"my grid\\\"`.\n *\n * `api.setGridAriaProperty('label', null)` will remove the `aria-label` attribute from the grid element.\n */\n setGridAriaProperty(property, value) {\n if (!property) {\n return;\n }\n const eGrid = this.ctrlsService.getGridBodyCtrl().getGui();\n const ariaProperty = `aria-${property}`;\n if (value === null) {\n eGrid.removeAttribute(ariaProperty);\n }\n else {\n eGrid.setAttribute(ariaProperty, value);\n }\n }\n logMissingRowModel(apiMethod, ...requiredRowModels) {\n console.error(`AG Grid: api.${apiMethod} can only be called when gridOptions.rowModelType is ${requiredRowModels.join(' or ')}`);\n }\n logDeprecation(version, apiMethod, replacement, message) {\n warnOnce(`Since ${version} api.${apiMethod} is deprecated. Please use ${replacement} instead. ${message}`);\n }\n /** Gets the number of top pinned rows. */\n getPinnedTopRowCount() {\n return this.pinnedRowModel.getPinnedTopRowCount();\n }\n /** Gets the number of bottom pinned rows. */\n getPinnedBottomRowCount() {\n return this.pinnedRowModel.getPinnedBottomRowCount();\n }\n /** Gets the top pinned row with the specified index. */\n getPinnedTopRow(index) {\n return this.pinnedRowModel.getPinnedTopRow(index);\n }\n /** Gets the bottom pinned row with the specified index. */\n getPinnedBottomRow(index) {\n return this.pinnedRowModel.getPinnedBottomRow(index);\n }\n expireValueCache() {\n this.valueCache.expire();\n }\n /**\n * Returns an object with two properties:\n * - `top`: The top pixel position of the current scroll in the grid\n * - `bottom`: The bottom pixel position of the current scroll in the grid\n */\n getVerticalPixelRange() {\n return this.gridBodyCtrl.getScrollFeature().getVScrollPosition();\n }\n /**\n * Returns an object with two properties:\n * - `left`: The left pixel position of the current scroll in the grid\n * - `right`: The right pixel position of the current scroll in the grid\n */\n getHorizontalPixelRange() {\n return this.gridBodyCtrl.getScrollFeature().getHScrollPosition();\n }\n /** Performs change detection on all cells, refreshing cells where required. */\n refreshCells(params = {}) {\n this.frameworkOverrides.wrapIncoming(() => this.rowRenderer.refreshCells(params));\n }\n /** Flash rows, columns or individual cells. */\n flashCells(params = {}) {\n const warning = (prop) => warnOnce(`Since v31.1 api.flashCells parameter '${prop}Delay' is deprecated. Please use '${prop}Duration' instead.`);\n if (exists(params.fadeDelay)) {\n warning('fade');\n }\n if (exists(params.flashDelay)) {\n warning('flash');\n }\n this.frameworkOverrides.wrapIncoming(() => this.rowRenderer.flashCells(params));\n }\n /** Remove row(s) from the DOM and recreate them again from scratch. */\n redrawRows(params = {}) {\n const rowNodes = params ? params.rowNodes : undefined;\n this.frameworkOverrides.wrapIncoming(() => this.rowRenderer.redrawRows(rowNodes));\n }\n /** Redraws the header. Useful if a column name changes, or something else that changes how the column header is displayed. */\n refreshHeader() {\n this.frameworkOverrides.wrapIncoming(() => this.ctrlsService.getHeaderRowContainerCtrls().forEach(c => c.refresh()));\n }\n /** Returns `true` if any filter is set. This includes quick filter, column filter, external filter or advanced filter. */\n isAnyFilterPresent() {\n return this.filterManager.isAnyFilterPresent();\n }\n /** Returns `true` if any column filter is set, otherwise `false`. */\n isColumnFilterPresent() {\n return this.filterManager.isColumnFilterPresent() || this.filterManager.isAggregateFilterPresent();\n }\n /** Returns `true` if the Quick Filter is set, otherwise `false`. */\n isQuickFilterPresent() {\n return this.filterManager.isQuickFilterPresent();\n }\n /**\n * Returns the row model inside the table.\n * From here you can see the original rows, rows after filter has been applied,\n * rows after aggregation has been applied, and the final set of 'to be displayed' rows.\n *\n * @deprecated As of v31.1, getModel() is deprecated and will not be available in future versions.\n * Please use the appropriate grid API methods instead\n */\n getModel() {\n warnOnce('Since v31.1 getModel() is deprecated. Please use the appropriate grid API methods instead.');\n return this.rowModel;\n }\n /** Expand or collapse a specific row node, optionally expanding/collapsing all of its parent nodes. */\n setRowNodeExpanded(rowNode, expanded, expandParents) {\n this.expansionService.setRowNodeExpanded(rowNode, expanded, expandParents);\n }\n /**\n * Informs the grid that row group expanded state has changed and it needs to rerender the group nodes.\n * Typically called after updating the row node expanded state explicitly, i.e `rowNode.expanded = false`,\n * across multiple groups and you want to update the grid view in a single rerender instead of on every group change.\n */\n onGroupExpandedOrCollapsed() {\n if (missing(this.clientSideRowModel)) {\n this.logMissingRowModel('onGroupExpandedOrCollapsed', 'clientSide');\n return;\n }\n this.expansionService.onGroupExpandedOrCollapsed();\n }\n /**\n * Refresh the Client-Side Row Model, executing the grouping, filtering and sorting again.\n * Optionally provide the step you wish the refresh to apply from. Defaults to `everything`.\n */\n refreshClientSideRowModel(step) {\n if (missing(this.clientSideRowModel)) {\n this.logMissingRowModel('refreshClientSideRowModel', 'clientSide');\n return;\n }\n this.clientSideRowModel.refreshModel(step);\n }\n /** Returns `true` when there are no more animation frames left to process. */\n isAnimationFrameQueueEmpty() {\n return this.animationFrameService.isQueueEmpty();\n }\n flushAllAnimationFrames() {\n this.animationFrameService.flushAllFrames();\n }\n /**\n * Returns the row node with the given ID.\n * The row node ID is the one you provide from the callback `getRowId(params)`,\n * otherwise the ID is a number (cast as string) auto-generated by the grid when\n * the row data is set.\n */\n getRowNode(id) {\n return this.rowModel.getRowNode(id);\n }\n /**\n * Gets the sizes that various UI elements will be rendered at with the current theme.\n * If you override the row or header height using `gridOptions`, the override value you provided will be returned.\n */\n getSizesForCurrentTheme() {\n return {\n rowHeight: this.gos.getRowHeightAsNumber(),\n headerHeight: this.columnModel.getHeaderHeight()\n };\n }\n /** Expand all groups. */\n expandAll() {\n if (this.clientSideRowModel || this.serverSideRowModel) {\n this.expansionService.expandAll(true);\n }\n else {\n this.logMissingRowModel('expandAll', 'clientSide', 'serverSide');\n }\n }\n /** Collapse all groups. */\n collapseAll() {\n if (this.clientSideRowModel || this.serverSideRowModel) {\n this.expansionService.expandAll(false);\n }\n else {\n this.logMissingRowModel('collapseAll', 'clientSide', 'serverSide');\n }\n }\n /**\n * Registers a callback to a virtual row.\n * A virtual row is a row that is visually rendered on the screen (rows that are not visible because of the scroll position are not rendered).\n * Unlike normal events, you do not need to unregister rendered row listeners.\n * When the rendered row is removed from the grid, all associated rendered row listeners will also be removed.\n * listen for this event if your `cellRenderer` needs to do cleanup when the row no longer exists.\n */\n addRenderedRowListener(eventName, rowIndex, callback) {\n this.rowRenderer.addRenderedRowListener(eventName, rowIndex, callback);\n }\n /** Get the current Quick Filter text from the grid, or `undefined` if none is set. */\n getQuickFilter() {\n return this.gos.get('quickFilterText');\n }\n /** Get the state of the Advanced Filter. Used for saving Advanced Filter state */\n getAdvancedFilterModel() {\n if (ModuleRegistry.__assertRegistered(ModuleNames.AdvancedFilterModule, 'api.getAdvancedFilterModel', this.context.getGridId())) {\n return this.filterManager.getAdvancedFilterModel();\n }\n return null;\n }\n /** Set the state of the Advanced Filter. Used for restoring Advanced Filter state */\n setAdvancedFilterModel(advancedFilterModel) {\n this.filterManager.setAdvancedFilterModel(advancedFilterModel);\n }\n /** Open the Advanced Filter Builder dialog (if enabled). */\n showAdvancedFilterBuilder() {\n if (ModuleRegistry.__assertRegistered(ModuleNames.AdvancedFilterModule, 'api.setAdvancedFilterModel', this.context.getGridId())) {\n this.filterManager.showAdvancedFilterBuilder('api');\n }\n }\n /**\n * Set all of the provided nodes selection state to the provided value.\n */\n setNodesSelected(params) {\n const allNodesValid = params.nodes.every(node => {\n if (node.rowPinned) {\n console.warn('AG Grid: cannot select pinned rows');\n return false;\n }\n if (node.id === undefined) {\n console.warn('AG Grid: cannot select node until id for node is known');\n return false;\n }\n return true;\n });\n if (!allNodesValid) {\n return;\n }\n const { nodes, source, newValue } = params;\n const nodesAsRowNode = nodes;\n this.selectionService.setNodesSelected({ nodes: nodesAsRowNode, source: source !== null && source !== void 0 ? source : 'api', newValue });\n }\n /**\n * Select all rows, regardless of filtering and rows that are not visible due to grouping being enabled and their groups not expanded.\n * @param source Source property that will appear in the `selectionChanged` event, defaults to `'apiSelectAll'`\n */\n selectAll(source = 'apiSelectAll') {\n this.selectionService.selectAllRowNodes({ source });\n }\n /**\n * Clear all row selections, regardless of filtering.\n * @param source Source property that will appear in the `selectionChanged` event, defaults to `'apiSelectAll'`\n */\n deselectAll(source = 'apiSelectAll') {\n this.selectionService.deselectAllRowNodes({ source });\n }\n /**\n * Select all filtered rows.\n * @param source Source property that will appear in the `selectionChanged` event, defaults to `'apiSelectAllFiltered'`\n */\n selectAllFiltered(source = 'apiSelectAllFiltered') {\n this.selectionService.selectAllRowNodes({ source, justFiltered: true });\n }\n /**\n * Clear all filtered selections.\n * @param source Source property that will appear in the `selectionChanged` event, defaults to `'apiSelectAllFiltered'`\n */\n deselectAllFiltered(source = 'apiSelectAllFiltered') {\n this.selectionService.deselectAllRowNodes({ source, justFiltered: true });\n }\n /**\n * Returns an object containing rules matching the selected rows in the SSRM.\n *\n * If `groupSelectsChildren=false` the returned object will be flat, and will conform to IServerSideSelectionState.\n * If `groupSelectsChildren=true` the returned object will be hierarchical, and will conform to IServerSideGroupSelectionState.\n */\n getServerSideSelectionState() {\n if (missing(this.serverSideRowModel)) {\n this.logMissingRowModel('getServerSideSelectionState', 'serverSide');\n return null;\n }\n return this.selectionService.getSelectionState();\n }\n /**\n * Set the rules matching the selected rows in the SSRM.\n *\n * If `groupSelectsChildren=false` the param will be flat, and should conform to IServerSideSelectionState.\n * If `groupSelectsChildren=true` the param will be hierarchical, and should conform to IServerSideGroupSelectionState.\n */\n setServerSideSelectionState(state) {\n if (missing(this.serverSideRowModel)) {\n this.logMissingRowModel('setServerSideSelectionState', 'serverSide');\n return;\n }\n this.selectionService.setSelectionState(state, 'api');\n }\n /**\n * Select all rows on the current page.\n * @param source Source property that will appear in the `selectionChanged` event, defaults to `'apiSelectAllCurrentPage'`\n */\n selectAllOnCurrentPage(source = 'apiSelectAllCurrentPage') {\n this.selectionService.selectAllRowNodes({ source, justCurrentPage: true });\n }\n /**\n * Clear all filtered on the current page.\n * @param source Source property that will appear in the `selectionChanged` event, defaults to `'apiSelectAllCurrentPage'`\n */\n deselectAllOnCurrentPage(source = 'apiSelectAllCurrentPage') {\n this.selectionService.deselectAllRowNodes({ source, justCurrentPage: true });\n }\n /** Show the 'loading' overlay. */\n showLoadingOverlay() {\n this.overlayService.showLoadingOverlay();\n }\n /** Show the 'no rows' overlay. */\n showNoRowsOverlay() {\n this.overlayService.showNoRowsOverlay();\n }\n /** Hides the overlay if showing. */\n hideOverlay() {\n this.overlayService.hideOverlay();\n }\n /**\n * Returns an unsorted list of selected nodes.\n * Getting the underlying node (rather than the data) is useful when working with tree / aggregated data,\n * as the node can be traversed.\n */\n getSelectedNodes() {\n return this.selectionService.getSelectedNodes();\n }\n /** Returns an unsorted list of selected rows (i.e. row data that you provided). */\n getSelectedRows() {\n return this.selectionService.getSelectedRows();\n }\n /**\n * Returns a list of all selected nodes at 'best cost', a feature to be used with groups / trees.\n * If a group has all its children selected, then the group appears in the result, but not the children.\n * Designed for use with `'children'` as the group selection type, where groups don't actually appear in the selection normally.\n */\n getBestCostNodeSelection() {\n if (missing(this.clientSideRowModel)) {\n this.logMissingRowModel('getBestCostNodeSelection', 'clientSide');\n return;\n }\n return this.selectionService.getBestCostNodeSelection();\n }\n /** Retrieve rendered nodes. Due to virtualisation this will contain only the current visible rows and those in the buffer. */\n getRenderedNodes() {\n return this.rowRenderer.getRenderedNodes();\n }\n /**\n * Ensures the column is visible by scrolling the table if needed.\n *\n * This will have no effect before the firstDataRendered event has fired.\n *\n * @param key - The column to ensure visible\n * @param position - Where the column will be positioned.\n * - `auto` - Scrolls the minimum amount to make sure the column is visible.\n * - `start` - Scrolls the column to the start of the viewport.\n * - `middle` - Scrolls the column to the middle of the viewport.\n * - `end` - Scrolls the column to the end of the viewport.\n */\n ensureColumnVisible(key, position = 'auto') {\n this.frameworkOverrides.wrapIncoming(() => this.gridBodyCtrl.getScrollFeature().ensureColumnVisible(key, position), 'ensureVisible');\n }\n /**\n * Vertically scrolls the grid until the provided row index is inside the visible viewport.\n * If a position is provided, the grid will attempt to scroll until the row is at the given position within the viewport.\n * This will have no effect before the firstDataRendered event has fired.\n */\n ensureIndexVisible(index, position) {\n this.frameworkOverrides.wrapIncoming(() => this.gridBodyCtrl.getScrollFeature().ensureIndexVisible(index, position), 'ensureVisible');\n }\n /**\n * Vertically scrolls the grid until the provided row (or a row matching the provided comparator) is inside the visible viewport.\n * If a position is provided, the grid will attempt to scroll until the row is at the given position within the viewport.\n * This will have no effect before the firstDataRendered event has fired.\n */\n ensureNodeVisible(nodeSelector, position = null) {\n this.frameworkOverrides.wrapIncoming(() => this.gridBodyCtrl.getScrollFeature().ensureNodeVisible(nodeSelector, position), 'ensureVisible');\n }\n /**\n * Similar to `forEachNode`, except lists all the leaf nodes.\n * This effectively goes through all the data that you provided to the grid before the grid performed any grouping.\n * If using tree data, goes through all the nodes for the data you provided, including nodes that have children,\n * but excluding groups the grid created where gaps were missing in the hierarchy.\n */\n forEachLeafNode(callback) {\n if (missing(this.clientSideRowModel)) {\n this.logMissingRowModel('forEachLeafNode', 'clientSide');\n return;\n }\n this.clientSideRowModel.forEachLeafNode(callback);\n }\n /**\n * Iterates through each node (row) in the grid and calls the callback for each node.\n * This works similar to the `forEach` method on a JavaScript array.\n * This is called for every node, ignoring any filtering or sorting applied within the grid.\n * If using the Infinite Row Model, then this gets called for each page loaded in the page cache.\n */\n forEachNode(callback, includeFooterNodes) {\n this.rowModel.forEachNode(callback, includeFooterNodes);\n }\n /** Similar to `forEachNode`, except skips any filtered out data. */\n forEachNodeAfterFilter(callback) {\n if (missing(this.clientSideRowModel)) {\n this.logMissingRowModel('forEachNodeAfterFilter', 'clientSide');\n return;\n }\n this.clientSideRowModel.forEachNodeAfterFilter(callback);\n }\n /** Similar to `forEachNodeAfterFilter`, except the callbacks are called in the order the rows are displayed in the grid. */\n forEachNodeAfterFilterAndSort(callback) {\n if (missing(this.clientSideRowModel)) {\n this.logMissingRowModel('forEachNodeAfterFilterAndSort', 'clientSide');\n return;\n }\n this.clientSideRowModel.forEachNodeAfterFilterAndSort(callback);\n }\n /**\n * @deprecated v31.1 To get/set individual filter models, use `getColumnFilterModel` or `setColumnFilterModel` instead.\n * To get hold of the filter instance, use `getColumnFilterInstance` which returns the instance asynchronously.\n */\n getFilterInstance(key, callback) {\n warnOnce(`'getFilterInstance' is deprecated. To get/set individual filter models, use 'getColumnFilterModel' or 'setColumnFilterModel' instead. To get hold of the filter instance, use 'getColumnFilterInstance' which returns the instance asynchronously.`);\n return this.filterManager.getFilterInstance(key, callback);\n }\n /**\n * Returns the filter component instance for a column.\n * For getting/setting models for individual column filters, use `getColumnFilterModel` and `setColumnFilterModel` instead of this.\n * `key` can be a column ID or a `Column` object.\n */\n getColumnFilterInstance(key) {\n return this.filterManager.getColumnFilterInstance(key);\n }\n /** Destroys a filter. Useful to force a particular filter to be created from scratch again. */\n destroyFilter(key) {\n const column = this.columnModel.getPrimaryColumn(key);\n if (column) {\n return this.filterManager.destroyFilter(column, 'api');\n }\n }\n /** Gets the status panel instance corresponding to the supplied `id`. */\n getStatusPanel(key) {\n if (!ModuleRegistry.__assertRegistered(ModuleNames.StatusBarModule, 'api.getStatusPanel', this.context.getGridId())) {\n return;\n }\n const comp = this.statusBarService.getStatusPanel(key);\n return unwrapUserComp(comp);\n }\n getColumnDef(key) {\n const column = this.columnModel.getPrimaryColumn(key);\n if (column) {\n return column.getColDef();\n }\n return null;\n }\n /**\n * Returns the current column definitions.\n */\n getColumnDefs() { return this.columnModel.getColumnDefs(); }\n /**\n * Informs the grid that a filter has changed. This is typically called after a filter change through one of the filter APIs.\n * @param source The source of the filter change event. If not specified defaults to `'api'`.\n */\n onFilterChanged(source = 'api') {\n this.filterManager.onFilterChanged({ source });\n }\n /**\n * Gets the grid to act as if the sort was changed.\n * Useful if you update some values and want to get the grid to reorder them according to the new values.\n */\n onSortChanged() {\n this.sortController.onSortChanged('api');\n }\n /**\n * Sets the state of all the column filters. Provide it with what you get from `getFilterModel()` to restore filter state.\n * If inferring cell data types, and row data is provided asynchronously and is yet to be set,\n * the filter model will be applied asynchronously after row data is added.\n * To always perform this synchronously, set `cellDataType = false` on the default column definition,\n * or provide cell data types for every column.\n */\n setFilterModel(model) {\n this.frameworkOverrides.wrapIncoming(() => this.filterManager.setFilterModel(model));\n }\n /** Gets the current state of all the column filters. Used for saving filter state. */\n getFilterModel() {\n return this.filterManager.getFilterModel();\n }\n /**\n * Gets the current filter model for the specified column.\n * Will return `null` if no active filter.\n */\n getColumnFilterModel(column) {\n return this.filterManager.getColumnFilterModel(column);\n }\n /**\n * Sets the filter model for the specified column.\n * Setting a `model` of `null` will reset the filter (make inactive).\n * Must wait on the response before calling `api.onFilterChanged()`.\n */\n setColumnFilterModel(column, model) {\n return this.filterManager.setColumnFilterModel(column, model);\n }\n /** Returns the focused cell (or the last focused cell if the grid lost focus). */\n getFocusedCell() {\n return this.focusService.getFocusedCell();\n }\n /** Clears the focused cell. */\n clearFocusedCell() {\n return this.focusService.clearFocusedCell();\n }\n /** Sets the focus to the specified cell. `rowPinned` can be either 'top', 'bottom' or null (for not pinned). */\n setFocusedCell(rowIndex, colKey, rowPinned) {\n this.focusService.setFocusedCell({ rowIndex, column: colKey, rowPinned, forceBrowserFocus: true });\n }\n /** Adds a drop zone outside of the grid where rows can be dropped. */\n addRowDropZone(params) {\n this.gridBodyCtrl.getRowDragFeature().addRowDropZone(params);\n }\n /** Removes an external drop zone added by `addRowDropZone`. */\n removeRowDropZone(params) {\n const activeDropTarget = this.dragAndDropService.findExternalZone(params);\n if (activeDropTarget) {\n this.dragAndDropService.removeDropTarget(activeDropTarget);\n }\n }\n /** Returns the `RowDropZoneParams` to be used by another grid's `addRowDropZone` method. */\n getRowDropZoneParams(events) {\n return this.gridBodyCtrl.getRowDragFeature().getRowDropZone(events);\n }\n assertSideBarLoaded(apiMethod) {\n return ModuleRegistry.__assertRegistered(ModuleNames.SideBarModule, 'api.' + apiMethod, this.context.getGridId());\n }\n /** Returns `true` if the side bar is visible. */\n isSideBarVisible() {\n return this.assertSideBarLoaded('isSideBarVisible') && this.sideBarService.getSideBarComp().isDisplayed();\n }\n /** Show/hide the entire side bar, including any visible panel and the tab buttons. */\n setSideBarVisible(show) {\n if (this.assertSideBarLoaded('setSideBarVisible')) {\n this.sideBarService.getSideBarComp().setDisplayed(show);\n }\n }\n /** Sets the side bar position relative to the grid. Possible values are `'left'` or `'right'`. */\n setSideBarPosition(position) {\n if (this.assertSideBarLoaded('setSideBarPosition')) {\n this.sideBarService.getSideBarComp().setSideBarPosition(position);\n }\n }\n /** Opens a particular tool panel. Provide the ID of the tool panel to open. */\n openToolPanel(key) {\n if (this.assertSideBarLoaded('openToolPanel')) {\n this.sideBarService.getSideBarComp().openToolPanel(key, 'api');\n }\n }\n /** Closes the currently open tool panel (if any). */\n closeToolPanel() {\n if (this.assertSideBarLoaded('closeToolPanel')) {\n this.sideBarService.getSideBarComp().close('api');\n }\n }\n /** Returns the ID of the currently shown tool panel if any, otherwise `null`. */\n getOpenedToolPanel() {\n if (this.assertSideBarLoaded('getOpenedToolPanel')) {\n return this.sideBarService.getSideBarComp().openedItem();\n }\n return null;\n }\n /** Force refresh all tool panels by calling their `refresh` method. */\n refreshToolPanel() {\n if (this.assertSideBarLoaded('refreshToolPanel')) {\n this.sideBarService.getSideBarComp().refresh();\n }\n }\n /** Returns `true` if the tool panel is showing, otherwise `false`. */\n isToolPanelShowing() {\n return this.assertSideBarLoaded('isToolPanelShowing') && this.sideBarService.getSideBarComp().isToolPanelShowing();\n }\n /** Gets the tool panel instance corresponding to the supplied `id`. */\n getToolPanelInstance(id) {\n if (this.assertSideBarLoaded('getToolPanelInstance')) {\n const comp = this.sideBarService.getSideBarComp().getToolPanelInstance(id);\n return unwrapUserComp(comp);\n }\n }\n /** Returns the current side bar configuration. If a shortcut was used, returns the detailed long form. */\n getSideBar() {\n if (this.assertSideBarLoaded('getSideBar')) {\n return this.sideBarService.getSideBarComp().getDef();\n }\n return undefined;\n }\n /** Tells the grid to recalculate the row heights. */\n resetRowHeights() {\n if (exists(this.clientSideRowModel)) {\n if (this.columnModel.isAutoRowHeightActive()) {\n console.warn('AG Grid: calling gridApi.resetRowHeights() makes no sense when using Auto Row Height.');\n return;\n }\n this.clientSideRowModel.resetRowHeights();\n }\n }\n /**\n * Sets the `rowCount` and `maxRowFound` properties.\n * The second parameter, `maxRowFound`, is optional and if left out, only `rowCount` is set.\n * Set `rowCount` to adjust the height of the vertical scroll.\n * Set `maxRowFound` to enable / disable searching for more rows.\n * Use this method if you add or remove rows into the dataset and need to reset the number of rows or instruct the grid that the entire row count is no longer known.\n */\n setRowCount(rowCount, maxRowFound) {\n if (this.serverSideRowModel) {\n if (this.columnModel.isRowGroupEmpty()) {\n this.serverSideRowModel.setRowCount(rowCount, maxRowFound);\n return;\n }\n console.error('AG Grid: setRowCount cannot be used while using row grouping.');\n return;\n }\n if (this.infiniteRowModel) {\n this.infiniteRowModel.setRowCount(rowCount, maxRowFound);\n return;\n }\n this.logMissingRowModel('setRowCount', 'infinite', 'serverSide');\n }\n /** Tells the grid a row height has changed. To be used after calling `rowNode.setRowHeight(newHeight)`. */\n onRowHeightChanged() {\n if (this.clientSideRowModel) {\n this.clientSideRowModel.onRowHeightChanged();\n }\n else if (this.serverSideRowModel) {\n this.serverSideRowModel.onRowHeightChanged();\n }\n }\n /**\n * Gets the value for a column for a particular `rowNode` (row).\n * This is useful if you want the raw value of a cell e.g. if implementing your own CSV export.\n */\n getValue(colKey, rowNode) {\n let column = this.columnModel.getPrimaryColumn(colKey);\n if (missing(column)) {\n column = this.columnModel.getGridColumn(colKey);\n }\n if (missing(column)) {\n return null;\n }\n return this.valueService.getValue(column, rowNode);\n }\n /**\n * Add an event listener for the specified `eventType`.\n * Works similar to `addEventListener` for a browser DOM element.\n * Listeners will be automatically removed when the grid is destroyed.\n */\n addEventListener(eventType, listener) {\n this.apiEventService.addEventListener(eventType, listener);\n }\n /**\n * Add an event listener for all event types coming from the grid.\n * Listeners will be automatically removed when the grid is destroyed.\n */\n addGlobalListener(listener) {\n this.apiEventService.addGlobalListener(listener);\n }\n /** Remove an event listener. */\n removeEventListener(eventType, listener) {\n this.apiEventService.removeEventListener(eventType, listener);\n }\n /** Remove a global event listener. */\n removeGlobalListener(listener) {\n this.apiEventService.removeGlobalListener(listener);\n }\n dispatchEvent(event) {\n this.eventService.dispatchEvent(event);\n }\n /** Will destroy the grid and release resources. If you are using a framework you do not need to call this, as the grid links in with the framework lifecycle. However if you are using Web Components or native JavaScript, you do need to call this, to avoid a memory leak in your application. */\n destroy() {\n // Get framework link before this is destroyed\n const preDestroyLink = `See ${this.frameworkOverrides.getDocLink('grid-lifecycle/#grid-pre-destroyed')}`;\n // this is needed as GridAPI is a bean, and GridAPI.destroy() is called as part\n // of context.destroy(). so we need to stop the infinite loop.\n if (this.destroyCalled) {\n return;\n }\n const event = {\n type: Events.EVENT_GRID_PRE_DESTROYED,\n state: this.getState()\n };\n this.dispatchEvent(event);\n // Set after pre-destroy so user can still use the api in pre-destroy event and it is not marked as destroyed yet.\n this.destroyCalled = true;\n // destroy the UI first (as they use the services)\n const gridCtrl = this.ctrlsService.getGridCtrl();\n if (gridCtrl) {\n gridCtrl.destroyGridUi();\n }\n // destroy the services\n this.context.destroy();\n // some users were raising support issues with regards memory leaks. the problem was the customers applications\n // were keeping references to the API. trying to educate them all would be difficult, easier to just remove\n // all references in the API so at least the core grid can be garbage collected.\n removeAllReferences(this, ['isDestroyed'], preDestroyLink);\n }\n /** Returns `true` if the grid has been destroyed. */\n isDestroyed() {\n return this.destroyCalled;\n }\n /** Reset the Quick Filter cache text on every rowNode. */\n resetQuickFilter() {\n this.filterManager.resetQuickFilterCache();\n }\n /** Returns the list of selected cell ranges. */\n getCellRanges() {\n if (this.rangeService) {\n return this.rangeService.getCellRanges();\n }\n ModuleRegistry.__assertRegistered(ModuleNames.RangeSelectionModule, 'api.getCellRanges', this.context.getGridId());\n return null;\n }\n /** Adds the provided cell range to the selected ranges. */\n addCellRange(params) {\n if (this.rangeService) {\n this.rangeService.addCellRange(params);\n return;\n }\n ModuleRegistry.__assertRegistered(ModuleNames.RangeSelectionModule, 'api.addCellRange', this.context.getGridId());\n }\n /** Clears the selected ranges. */\n clearRangeSelection() {\n if (this.rangeService) {\n this.rangeService.removeAllCellRanges();\n }\n ModuleRegistry.__assertRegistered(ModuleNames.RangeSelectionModule, 'gridApi.clearRangeSelection', this.context.getGridId());\n }\n /** Reverts the last cell edit. */\n undoCellEditing() {\n this.undoRedoService.undo('api');\n }\n /** Re-applies the most recently undone cell edit. */\n redoCellEditing() {\n this.undoRedoService.redo('api');\n }\n /** Returns current number of available cell edit undo operations. */\n getCurrentUndoSize() {\n return this.undoRedoService.getCurrentUndoStackSize();\n }\n /** Returns current number of available cell edit redo operations. */\n getCurrentRedoSize() {\n return this.undoRedoService.getCurrentRedoStackSize();\n }\n assertChart(methodName, func) {\n if (ModuleRegistry.__assertRegistered(ModuleNames.GridChartsModule, 'api.' + methodName, this.context.getGridId())) {\n return this.frameworkOverrides.wrapIncoming(() => func());\n }\n }\n /** Returns a list of models with information about the charts that are currently rendered from the grid. */\n getChartModels() {\n return this.assertChart('getChartModels', () => this.chartService.getChartModels());\n }\n /** Returns the `ChartRef` using the supplied `chartId`. */\n getChartRef(chartId) {\n return this.assertChart('getChartRef', () => this.chartService.getChartRef(chartId));\n }\n /** Returns a base64-encoded image data URL for the referenced chartId. */\n getChartImageDataURL(params) {\n return this.assertChart('getChartImageDataURL', () => this.chartService.getChartImageDataURL(params));\n }\n /** Starts a browser-based image download for the referenced chartId. */\n downloadChart(params) {\n return this.assertChart('downloadChart', () => this.chartService.downloadChart(params));\n }\n /** Open the Chart Tool Panel. */\n openChartToolPanel(params) {\n return this.assertChart('openChartToolPanel', () => this.chartService.openChartToolPanel(params));\n }\n /** Close the Chart Tool Panel. */\n closeChartToolPanel(params) {\n return this.assertChart('closeChartToolPanel', () => this.chartService.closeChartToolPanel(params.chartId));\n }\n /** Used to programmatically create charts from a range. */\n createRangeChart(params) {\n return this.assertChart('createRangeChart', () => this.chartService.createRangeChart(params));\n }\n /** Used to programmatically create pivot charts from a grid. */\n createPivotChart(params) {\n return this.assertChart('createPivotChart', () => this.chartService.createPivotChart(params));\n }\n /** Used to programmatically create cross filter charts from a range. */\n createCrossFilterChart(params) {\n return this.assertChart('createCrossFilterChart', () => this.chartService.createCrossFilterChart(params));\n }\n /** Used to programmatically update a chart. */\n updateChart(params) {\n return this.assertChart('updateChart', () => this.chartService.updateChart(params));\n }\n /** Restores a chart using the `ChartModel` that was previously obtained from `getChartModels()`. */\n restoreChart(chartModel, chartContainer) {\n return this.assertChart('restoreChart', () => this.chartService.restoreChart(chartModel, chartContainer));\n }\n assertClipboard(methodName, func) {\n if (ModuleRegistry.__assertRegistered(ModuleNames.ClipboardModule, 'api' + methodName, this.context.getGridId())) {\n func();\n }\n }\n /** Copies data to clipboard by following the same rules as pressing Ctrl+C. */\n copyToClipboard(params) {\n this.assertClipboard('copyToClipboard', () => this.clipboardService.copyToClipboard(params));\n }\n /** Cuts data to clipboard by following the same rules as pressing Ctrl+X. */\n cutToClipboard(params) {\n this.assertClipboard('cutToClipboard', () => this.clipboardService.cutToClipboard(params));\n }\n /** Copies the selected rows to the clipboard. */\n copySelectedRowsToClipboard(params) {\n this.assertClipboard('copySelectedRowsToClipboard', () => this.clipboardService.copySelectedRowsToClipboard(params));\n }\n /** Copies the selected ranges to the clipboard. */\n copySelectedRangeToClipboard(params) {\n this.assertClipboard('copySelectedRangeToClipboard', () => this.clipboardService.copySelectedRangeToClipboard(params));\n }\n /** Copies the selected range down, similar to `Ctrl + D` in Excel. */\n copySelectedRangeDown() {\n this.assertClipboard('copySelectedRangeDown', () => this.clipboardService.copyRangeDown());\n }\n /** Pastes the data from the Clipboard into the focused cell of the grid. If no grid cell is focused, calling this method has no effect. */\n pasteFromClipboard() {\n this.assertClipboard('pasteFromClipboard', () => this.clipboardService.pasteFromClipboard());\n }\n /** @deprecated v31.1 Use `IHeaderParams.showColumnMenu` within a header component, or `api.showColumnMenu` elsewhere. */\n showColumnMenuAfterButtonClick(colKey, buttonElement) {\n warnOnce(`'showColumnMenuAfterButtonClick' is deprecated. Use 'IHeaderParams.showColumnMenu' within a header component, or 'api.showColumnMenu' elsewhere.`);\n // use grid column so works with pivot mode\n const column = this.columnModel.getGridColumn(colKey);\n this.menuService.showColumnMenu({\n column,\n buttonElement,\n positionBy: 'button'\n });\n }\n /** @deprecated v31.1 Use `IHeaderParams.showColumnMenuAfterMouseClick` within a header component, or `api.showColumnMenu` elsewhere. */\n showColumnMenuAfterMouseClick(colKey, mouseEvent) {\n warnOnce(`'showColumnMenuAfterMouseClick' is deprecated. Use 'IHeaderParams.showColumnMenuAfterMouseClick' within a header component, or 'api.showColumnMenu' elsewhere.`);\n // use grid column so works with pivot mode\n let column = this.columnModel.getGridColumn(colKey);\n if (!column) {\n column = this.columnModel.getPrimaryColumn(colKey);\n }\n if (!column) {\n console.error(`AG Grid: column '${colKey}' not found`);\n return;\n }\n this.menuService.showColumnMenu({\n column,\n mouseEvent,\n positionBy: 'mouse'\n });\n }\n /** Show the column chooser. */\n showColumnChooser(params) {\n this.menuService.showColumnChooser({ chooserParams: params });\n }\n /** Show the filter for the provided column. */\n showColumnFilter(colKey) {\n const column = this.columnModel.getGridColumn(colKey);\n if (!column) {\n console.error(`AG Grid: column '${colKey}' not found`);\n return;\n }\n this.menuService.showFilterMenu({\n column,\n containerType: 'columnFilter',\n positionBy: 'auto'\n });\n }\n /** Show the column menu for the provided column. */\n showColumnMenu(colKey) {\n const column = this.columnModel.getGridColumn(colKey);\n if (!column) {\n console.error(`AG Grid: column '${colKey}' not found`);\n return;\n }\n this.menuService.showColumnMenu({\n column,\n positionBy: 'auto'\n });\n }\n /** Hides any visible context menu or column menu. */\n hidePopupMenu() {\n this.menuService.hidePopupMenu();\n }\n /** Hide the column chooser if visible. */\n hideColumnChooser() {\n this.menuService.hideColumnChooser();\n }\n /** Navigates the grid focus to the next cell, as if tabbing. */\n tabToNextCell(event) {\n return this.navigationService.tabToNextCell(false, event);\n }\n /** Navigates the grid focus to the previous cell, as if shift-tabbing. */\n tabToPreviousCell(event) {\n return this.navigationService.tabToNextCell(true, event);\n }\n /** Returns the list of active cell renderer instances. */\n getCellRendererInstances(params = {}) {\n const res = this.rowRenderer.getCellRendererInstances(params);\n const unwrapped = res.map(unwrapUserComp);\n return unwrapped;\n }\n /** Returns the list of active cell editor instances. Optionally provide parameters to restrict to certain columns / row nodes. */\n getCellEditorInstances(params = {}) {\n const res = this.rowRenderer.getCellEditorInstances(params);\n const unwrapped = res.map(unwrapUserComp);\n return unwrapped;\n }\n /** If the grid is editing, returns back details of the editing cell(s). */\n getEditingCells() {\n return this.rowRenderer.getEditingCells();\n }\n /** If a cell is editing, it stops the editing. Pass `true` if you want to cancel the editing (i.e. don't accept changes). */\n stopEditing(cancel = false) {\n this.rowRenderer.stopEditing(cancel);\n }\n /** Start editing the provided cell. If another cell is editing, the editing will be stopped in that other cell. */\n startEditingCell(params) {\n const column = this.columnModel.getGridColumn(params.colKey);\n if (!column) {\n console.warn(`AG Grid: no column found for ${params.colKey}`);\n return;\n }\n const cellPosition = {\n rowIndex: params.rowIndex,\n rowPinned: params.rowPinned || null,\n column: column\n };\n const notPinned = params.rowPinned == null;\n if (notPinned) {\n this.ensureIndexVisible(params.rowIndex);\n }\n this.ensureColumnVisible(params.colKey);\n const cell = this.navigationService.getCellByPosition(cellPosition);\n if (!cell) {\n return;\n }\n if (!this.focusService.isCellFocused(cellPosition)) {\n this.focusService.setFocusedCell(cellPosition);\n }\n cell.startRowOrCellEdit(params.key);\n }\n /** @deprecated v31.1 addAggFunc(key, func) is deprecated, please use addAggFuncs({ key: func }) instead. */\n addAggFunc(key, aggFunc) {\n this.logDeprecation('v31.1', 'addAggFunc(key, func)', 'addAggFuncs({ key: func })');\n if (this.aggFuncService) {\n this.aggFuncService.addAggFuncs({ key: aggFunc });\n }\n }\n /** Add aggregations function with the specified keys. */\n addAggFuncs(aggFuncs) {\n if (this.aggFuncService) {\n this.aggFuncService.addAggFuncs(aggFuncs);\n }\n }\n /** Clears all aggregation functions (including those provided by the grid). */\n clearAggFuncs() {\n if (this.aggFuncService) {\n this.aggFuncService.clear();\n }\n }\n /** Apply transactions to the server side row model. */\n applyServerSideTransaction(transaction) {\n if (!this.serverSideTransactionManager) {\n this.logMissingRowModel('applyServerSideTransaction', 'serverSide');\n return;\n }\n return this.serverSideTransactionManager.applyTransaction(transaction);\n }\n /** Batch apply transactions to the server side row model. */\n applyServerSideTransactionAsync(transaction, callback) {\n if (!this.serverSideTransactionManager) {\n this.logMissingRowModel('applyServerSideTransactionAsync', 'serverSide');\n return;\n }\n return this.serverSideTransactionManager.applyTransactionAsync(transaction, callback);\n }\n /**\n * Applies row data to a server side store.\n * New rows will overwrite rows at the same index in the same way as if provided by a datasource success callback.\n */\n applyServerSideRowData(params) {\n var _a, _b;\n const startRow = (_a = params.startRow) !== null && _a !== void 0 ? _a : 0;\n const route = (_b = params.route) !== null && _b !== void 0 ? _b : [];\n if (startRow < 0) {\n console.warn(`AG Grid: invalid value ${params.startRow} for startRow, the value should be >= 0`);\n return;\n }\n if (this.serverSideRowModel) {\n this.serverSideRowModel.applyRowData(params.successParams, startRow, route);\n }\n else {\n this.logMissingRowModel('setServerSideDatasource', 'serverSide');\n }\n }\n /** Gets all failed server side loads to retry. */\n retryServerSideLoads() {\n if (!this.serverSideRowModel) {\n this.logMissingRowModel('retryServerSideLoads', 'serverSide');\n return;\n }\n this.serverSideRowModel.retryLoads();\n }\n flushServerSideAsyncTransactions() {\n if (!this.serverSideTransactionManager) {\n this.logMissingRowModel('flushServerSideAsyncTransactions', 'serverSide');\n return;\n }\n return this.serverSideTransactionManager.flushAsyncTransactions();\n }\n /** Update row data. Pass a transaction object with lists for `add`, `remove` and `update`. */\n applyTransaction(rowDataTransaction) {\n if (!this.clientSideRowModel) {\n this.logMissingRowModel('applyTransaction', 'clientSide');\n return;\n }\n return this.frameworkOverrides.wrapIncoming(() => this.clientSideRowModel.updateRowData(rowDataTransaction));\n }\n /** Same as `applyTransaction` except executes asynchronously for efficiency. */\n applyTransactionAsync(rowDataTransaction, callback) {\n if (!this.clientSideRowModel) {\n this.logMissingRowModel('applyTransactionAsync', 'clientSide');\n return;\n }\n this.frameworkOverrides.wrapIncoming(() => this.clientSideRowModel.batchUpdateRowData(rowDataTransaction, callback));\n }\n /** Executes any remaining asynchronous grid transactions, if any are waiting to be executed. */\n flushAsyncTransactions() {\n if (!this.clientSideRowModel) {\n this.logMissingRowModel('flushAsyncTransactions', 'clientSide');\n return;\n }\n this.frameworkOverrides.wrapIncoming(() => this.clientSideRowModel.flushAsyncTransactions());\n }\n /**\n * Marks all the currently loaded blocks in the cache for reload.\n * If you have 10 blocks in the cache, all 10 will be marked for reload.\n * The old data will continue to be displayed until the new data is loaded.\n */\n refreshInfiniteCache() {\n if (this.infiniteRowModel) {\n this.infiniteRowModel.refreshCache();\n }\n else {\n this.logMissingRowModel('refreshInfiniteCache', 'infinite');\n }\n }\n /**\n * Purges the cache.\n * The grid is then told to refresh. Only the blocks required to display the current data on screen are fetched (typically no more than 2).\n * The grid will display nothing while the new blocks are loaded.\n * Use this to immediately remove the old data from the user.\n */\n purgeInfiniteCache() {\n if (this.infiniteRowModel) {\n this.infiniteRowModel.purgeCache();\n }\n else {\n this.logMissingRowModel('purgeInfiniteCache', 'infinite');\n }\n }\n /**\n * Refresh a server-side store level.\n * If you pass no parameters, then the top level store is refreshed.\n * To refresh a child level, pass in the string of keys to get to the desired level.\n * Once the store refresh is complete, the storeRefreshed event is fired.\n */\n refreshServerSide(params) {\n if (!this.serverSideRowModel) {\n this.logMissingRowModel('refreshServerSide', 'serverSide');\n return;\n }\n this.serverSideRowModel.refreshStore(params);\n }\n /** Returns info on all server side group levels. */\n getServerSideGroupLevelState() {\n if (!this.serverSideRowModel) {\n this.logMissingRowModel('getServerSideGroupLevelState', 'serverSide');\n return [];\n }\n return this.serverSideRowModel.getStoreState();\n }\n /** The row count defines how many rows the grid allows scrolling to. */\n getInfiniteRowCount() {\n if (this.infiniteRowModel) {\n return this.infiniteRowModel.getRowCount();\n }\n else {\n this.logMissingRowModel('getInfiniteRowCount', 'infinite');\n }\n }\n /** Returns `true` if grid allows for scrolling past the last row to load more rows, thus providing infinite scroll. */\n isLastRowIndexKnown() {\n if (this.infiniteRowModel) {\n return this.infiniteRowModel.isLastRowIndexKnown();\n }\n else {\n this.logMissingRowModel('isLastRowIndexKnown', 'infinite');\n }\n }\n /**\n * Returns an object representing the state of the cache. This is useful for debugging and understanding how the cache is working.\n */\n getCacheBlockState() {\n return this.rowNodeBlockLoader.getBlockState();\n }\n /** @deprecated v31.1 `getFirstDisplayedRow` is deprecated. Please use `getFirstDisplayedRowIndex` instead. */\n getFirstDisplayedRow() {\n this.logDeprecation('v31.1', 'getFirstDisplayedRow', 'getFirstDisplayedRowIndex');\n return this.getFirstDisplayedRowIndex();\n }\n /** Get the index of the first displayed row due to scrolling (includes invisible rendered rows in the buffer). */\n getFirstDisplayedRowIndex() {\n return this.rowRenderer.getFirstVirtualRenderedRow();\n }\n /** @deprecated v31.1 `getLastDisplayedRow` is deprecated. Please use `getLastDisplayedRowIndex` instead. */\n getLastDisplayedRow() {\n this.logDeprecation('v31.1', 'getLastDisplayedRow', 'getLastDisplayedRowIndex');\n return this.getLastDisplayedRowIndex();\n }\n /** Get the index of the last displayed row due to scrolling (includes invisible rendered rows in the buffer). */\n getLastDisplayedRowIndex() {\n return this.rowRenderer.getLastVirtualRenderedRow();\n }\n /** Returns the displayed `RowNode` at the given `index`. */\n getDisplayedRowAtIndex(index) {\n return this.rowModel.getRow(index);\n }\n /** Returns the total number of displayed rows. */\n getDisplayedRowCount() {\n return this.rowModel.getRowCount();\n }\n /**\n * Returns `true` when the last page is known.\n * This will always be `true` if you are using the Client-Side Row Model for pagination.\n * Returns `false` when the last page is not known; this only happens when using Infinite Row Model.\n */\n paginationIsLastPageFound() {\n return this.paginationProxy.isLastPageFound();\n }\n /** Returns how many rows are being shown per page. */\n paginationGetPageSize() {\n return this.paginationProxy.getPageSize();\n }\n /** Returns the 0-based index of the page which is showing. */\n paginationGetCurrentPage() {\n return this.paginationProxy.getCurrentPage();\n }\n /** Returns the total number of pages. Returns `null` if `paginationIsLastPageFound() === false`. */\n paginationGetTotalPages() {\n return this.paginationProxy.getTotalPages();\n }\n /** The total number of rows. Returns `null` if `paginationIsLastPageFound() === false`. */\n paginationGetRowCount() {\n return this.paginationProxy.getMasterRowCount();\n }\n /** Navigates to the next page. */\n paginationGoToNextPage() {\n this.paginationProxy.goToNextPage();\n }\n /** Navigates to the previous page. */\n paginationGoToPreviousPage() {\n this.paginationProxy.goToPreviousPage();\n }\n /** Navigates to the first page. */\n paginationGoToFirstPage() {\n this.paginationProxy.goToFirstPage();\n }\n /** Navigates to the last page. */\n paginationGoToLastPage() {\n this.paginationProxy.goToLastPage();\n }\n /** Goes to the specified page. If the page requested doesn't exist, it will go to the last page. */\n paginationGoToPage(page) {\n this.paginationProxy.goToPage(page);\n }\n // Methods migrated from old ColumnApi\n /**\n * Adjusts the size of columns to fit the available horizontal space.\n *\n * Note: it is not recommended to call this method rapidly e.g. in response\n * to window resize events or as the container size is animated. This can\n * cause the scrollbar to flicker. Use column flex for smoother results.\n *\n * If inferring cell data types with custom column types\n * and row data is provided asynchronously, the column sizing will happen asynchronously when row data is added.\n * To always perform this synchronously, set `cellDataType = false` on the default column definition.\n **/\n sizeColumnsToFit(paramsOrGridWidth) {\n if (typeof paramsOrGridWidth === 'number') {\n this.columnModel.sizeColumnsToFit(paramsOrGridWidth, 'api');\n }\n else {\n this.gridBodyCtrl.sizeColumnsToFit(paramsOrGridWidth);\n }\n }\n /** Call this if you want to open or close a column group. */\n setColumnGroupOpened(group, newValue) { this.columnModel.setColumnGroupOpened(group, newValue, 'api'); }\n /** Returns the column group with the given name. */\n getColumnGroup(name, instanceId) { return this.columnModel.getColumnGroup(name, instanceId); }\n /** Returns the provided column group with the given name. */\n getProvidedColumnGroup(name) { return this.columnModel.getProvidedColumnGroup(name); }\n /** Returns the display name for a column. Useful if you are doing your own header rendering and want the grid to work out if `headerValueGetter` is used, or if you are doing your own column management GUI, to know what to show as the column name. */\n getDisplayNameForColumn(column, location) { return this.columnModel.getDisplayNameForColumn(column, location) || ''; }\n /** Returns the display name for a column group (when grouping columns). */\n getDisplayNameForColumnGroup(columnGroup, location) { return this.columnModel.getDisplayNameForColumnGroup(columnGroup, location) || ''; }\n /** Returns the column with the given `colKey`, which can either be the `colId` (a string) or the `colDef` (an object). */\n getColumn(key) { return this.columnModel.getPrimaryColumn(key); }\n /** Returns all the columns, regardless of visible or not. */\n getColumns() { return this.columnModel.getAllPrimaryColumns(); }\n /** Applies the state of the columns from a previous state. Returns `false` if one or more columns could not be found. */\n applyColumnState(params) { return this.columnModel.applyColumnState(params, 'api'); }\n /** Gets the state of the columns. Typically used when saving column state. */\n getColumnState() { return this.columnModel.getColumnState(); }\n /** Sets the state back to match the originally provided column definitions. */\n resetColumnState() { this.columnModel.resetColumnState('api'); }\n /** Gets the state of the column groups. Typically used when saving column group state. */\n getColumnGroupState() { return this.columnModel.getColumnGroupState(); }\n /** Sets the state of the column group state from a previous state. */\n setColumnGroupState(stateItems) { this.columnModel.setColumnGroupState(stateItems, 'api'); }\n /** Sets the state back to match the originally provided column definitions. */\n resetColumnGroupState() { this.columnModel.resetColumnGroupState('api'); }\n /** Returns `true` if pinning left or right, otherwise `false`. */\n isPinning() { return this.columnModel.isPinningLeft() || this.columnModel.isPinningRight(); }\n /** Returns `true` if pinning left, otherwise `false`. */\n isPinningLeft() { return this.columnModel.isPinningLeft(); }\n /** Returns `true` if pinning right, otherwise `false`. */\n isPinningRight() { return this.columnModel.isPinningRight(); }\n /** Returns the column to the right of the provided column, taking into consideration open / closed column groups and visible columns. This is useful if you need to know what column is beside yours e.g. if implementing your own cell navigation. */\n getDisplayedColAfter(col) { return this.columnModel.getDisplayedColAfter(col); }\n /** Same as `getVisibleColAfter` except gives column to the left. */\n getDisplayedColBefore(col) { return this.columnModel.getDisplayedColBefore(col); }\n /** @deprecated v31.1 setColumnVisible(key, visible) deprecated, please use setColumnsVisible([key], visible) instead. */\n setColumnVisible(key, visible) {\n this.logDeprecation('v31.1', 'setColumnVisible(key,visible)', 'setColumnsVisible([key],visible)');\n this.columnModel.setColumnsVisible([key], visible, 'api');\n }\n /** Sets the visibility of columns. Key can be the column ID or `Column` object. */\n setColumnsVisible(keys, visible) { this.columnModel.setColumnsVisible(keys, visible, 'api'); }\n /** @deprecated v31.1 setColumnPinned(key, pinned) deprecated, please use setColumnsPinned([key], pinned) instead. */\n setColumnPinned(key, pinned) {\n this.logDeprecation('v31.1', 'setColumnPinned(key,pinned)', 'setColumnsPinned([key],pinned)');\n this.columnModel.setColumnsPinned([key], pinned, 'api');\n }\n /** Set a column's pinned / unpinned state. Key can be the column ID, field, `ColDef` object or `Column` object. */\n setColumnsPinned(keys, pinned) { this.columnModel.setColumnsPinned(keys, pinned, 'api'); }\n /**\n * Returns all the grid columns, same as `getColumns()`, except\n *\n * a) it has the order of the columns that are presented in the grid\n *\n * b) it's after the 'pivot' step, so if pivoting, has the value columns for the pivot.\n */\n getAllGridColumns() { return this.columnModel.getAllGridColumns(); }\n /** Same as `getAllDisplayedColumns` but just for the pinned left portion of the grid. */\n getDisplayedLeftColumns() { return this.columnModel.getDisplayedLeftColumns(); }\n /** Same as `getAllDisplayedColumns` but just for the center portion of the grid. */\n getDisplayedCenterColumns() { return this.columnModel.getDisplayedCenterColumns(); }\n /** Same as `getAllDisplayedColumns` but just for the pinned right portion of the grid. */\n getDisplayedRightColumns() { return this.columnModel.getDisplayedRightColumns(); }\n /** Returns all columns currently displayed (e.g. are visible and if in a group, the group is showing the columns) for the pinned left, centre and pinned right portions of the grid. */\n getAllDisplayedColumns() { return this.columnModel.getAllDisplayedColumns(); }\n /** Same as `getAllGridColumns()`, except only returns rendered columns, i.e. columns that are not within the viewport and therefore not rendered, due to column virtualisation, are not displayed. */\n getAllDisplayedVirtualColumns() { return this.columnModel.getViewportColumns(); }\n /** @deprecated v31.1 moveColumn(key, toIndex) deprecated, please use moveColumns([key], toIndex) instead. */\n moveColumn(key, toIndex) {\n this.logDeprecation('v31.1', 'moveColumn(key, toIndex)', 'moveColumns([key], toIndex)');\n this.columnModel.moveColumns([key], toIndex, 'api');\n }\n /** Moves the column at `fromIdex` to `toIndex`. The column is first removed, then added at the `toIndex` location, thus index locations will change to the right of the column after the removal. */\n moveColumnByIndex(fromIndex, toIndex) { this.columnModel.moveColumnByIndex(fromIndex, toIndex, 'api'); }\n /** Moves columns to `toIndex`. The columns are first removed, then added at the `toIndex` location, thus index locations will change to the right of the column after the removal. */\n moveColumns(columnsToMoveKeys, toIndex) { this.columnModel.moveColumns(columnsToMoveKeys, toIndex, 'api'); }\n /** Move the column to a new position in the row grouping order. */\n moveRowGroupColumn(fromIndex, toIndex) { this.columnModel.moveRowGroupColumn(fromIndex, toIndex, 'api'); }\n /** Sets the agg function for a column. `aggFunc` can be one of the built-in aggregations or a custom aggregation by name or direct function. */\n setColumnAggFunc(key, aggFunc) { this.columnModel.setColumnAggFunc(key, aggFunc, 'api'); }\n /** @deprecated v31.1 setColumnWidths(key, newWidth) deprecated, please use setColumnWidths( [{key: newWidth}] ) instead. */\n setColumnWidth(key, newWidth, finished = true, source = 'api') {\n this.logDeprecation('v31.1', 'setColumnWidth(col, width)', 'setColumnWidths([{key: col, newWidth: width}])');\n this.columnModel.setColumnWidths([{ key, newWidth }], false, finished, source);\n }\n /** Sets the column widths of the columns provided. The finished flag gets included in the resulting event and not used internally by the grid. The finished flag is intended for dragging, where a dragging action will produce many `columnWidth` events, so the consumer of events knows when it receives the last event in a stream. The finished parameter is optional, and defaults to `true`. */\n setColumnWidths(columnWidths, finished = true, source = 'api') {\n this.columnModel.setColumnWidths(columnWidths, false, finished, source);\n }\n /** Get the pivot mode. */\n isPivotMode() { return this.columnModel.isPivotMode(); }\n /** Returns the pivot result column for the given `pivotKeys` and `valueColId`. Useful to then call operations on the pivot column. */\n getPivotResultColumn(pivotKeys, valueColKey) { return this.columnModel.getSecondaryPivotColumn(pivotKeys, valueColKey); }\n /** Set the value columns to the provided list of columns. */\n setValueColumns(colKeys) { this.columnModel.setValueColumns(colKeys, 'api'); }\n /** Get a list of the existing value columns. */\n getValueColumns() { return this.columnModel.getValueColumns(); }\n /** @deprecated v31.1 removeValueColumn(colKey) deprecated, please use removeValueColumns([colKey]) instead. */\n removeValueColumn(colKey) {\n this.logDeprecation('v31.1', 'removeValueColumn(colKey)', 'removeValueColumns([colKey])');\n this.columnModel.removeValueColumns([colKey], 'api');\n }\n /** Remove the given list of columns from the existing set of value columns. */\n removeValueColumns(colKeys) { this.columnModel.removeValueColumns(colKeys, 'api'); }\n /** @deprecated v31.1 addValueColumn(colKey) deprecated, please use addValueColumns([colKey]) instead. */\n addValueColumn(colKey) {\n this.logDeprecation('v31.1', 'addValueColumn(colKey)', 'addValueColumns([colKey])');\n this.columnModel.addValueColumns([colKey], 'api');\n }\n /** Add the given list of columns to the existing set of value columns. */\n addValueColumns(colKeys) { this.columnModel.addValueColumns(colKeys, 'api'); }\n /** Set the row group columns. */\n setRowGroupColumns(colKeys) { this.columnModel.setRowGroupColumns(colKeys, 'api'); }\n /** @deprecated v31.1 removeRowGroupColumn(colKey) deprecated, please use removeRowGroupColumns([colKey]) instead. */\n removeRowGroupColumn(colKey) {\n this.logDeprecation('v31.1', 'removeRowGroupColumn(colKey)', 'removeRowGroupColumns([colKey])');\n this.columnModel.removeRowGroupColumns([colKey], 'api');\n }\n /** Remove columns from the row groups. */\n removeRowGroupColumns(colKeys) { this.columnModel.removeRowGroupColumns(colKeys, 'api'); }\n /** @deprecated v31.1 addRowGroupColumn(colKey) deprecated, please use addRowGroupColumns([colKey]) instead. */\n addRowGroupColumn(colKey) {\n this.logDeprecation('v31.1', 'addRowGroupColumn(colKey)', 'addRowGroupColumns([colKey])');\n this.columnModel.addRowGroupColumns([colKey], 'api');\n }\n /** Add columns to the row groups. */\n addRowGroupColumns(colKeys) { this.columnModel.addRowGroupColumns(colKeys, 'api'); }\n /** Get row group columns. */\n getRowGroupColumns() { return this.columnModel.getRowGroupColumns(); }\n /** Set the pivot columns. */\n setPivotColumns(colKeys) { this.columnModel.setPivotColumns(colKeys, 'api'); }\n /** @deprecated v31.1 removePivotColumn(colKey) deprecated, please use removePivotColumns([colKey]) instead. */\n removePivotColumn(colKey) {\n this.logDeprecation('v31.1', 'removePivotColumn(colKey)', 'removePivotColumns([colKey])');\n this.columnModel.removePivotColumns([colKey], 'api');\n }\n /** Remove pivot columns. */\n removePivotColumns(colKeys) { this.columnModel.removePivotColumns(colKeys, 'api'); }\n /** @deprecated v31.1 addPivotColumn(colKey) deprecated, please use addPivotColumns([colKey]) instead. */\n addPivotColumn(colKey) {\n this.logDeprecation('v31.1', 'addPivotColumn(colKey)', 'addPivotColumns([colKey])');\n this.columnModel.addPivotColumns([colKey], 'api');\n }\n /** Add pivot columns. */\n addPivotColumns(colKeys) { this.columnModel.addPivotColumns(colKeys, 'api'); }\n /** Get the pivot columns. */\n getPivotColumns() { return this.columnModel.getPivotColumns(); }\n /** Same as `getAllDisplayedColumnGroups` but just for the pinned left portion of the grid. */\n getLeftDisplayedColumnGroups() { return this.columnModel.getDisplayedTreeLeft(); }\n /** Same as `getAllDisplayedColumnGroups` but just for the center portion of the grid. */\n getCenterDisplayedColumnGroups() { return this.columnModel.getDisplayedTreeCentre(); }\n /** Same as `getAllDisplayedColumnGroups` but just for the pinned right portion of the grid. */\n getRightDisplayedColumnGroups() { return this.columnModel.getDisplayedTreeRight(); }\n /** Returns all 'root' column headers. If you are not grouping columns, these return the columns. If you are grouping, these return the top level groups - you can navigate down through each one to get the other lower level headers and finally the columns at the bottom. */\n getAllDisplayedColumnGroups() { return this.columnModel.getAllDisplayedTrees(); }\n /** @deprecated v31.1 autoSizeColumn(key) deprecated, please use autoSizeColumns([colKey]) instead. */\n autoSizeColumn(key, skipHeader) {\n this.logDeprecation('v31.1', 'autoSizeColumn(key, skipHeader)', 'autoSizeColumns([key], skipHeader)');\n return this.columnModel.autoSizeColumns({ columns: [key], skipHeader: skipHeader, source: 'api' });\n }\n /**\n * Auto-sizes columns based on their contents. If inferring cell data types with custom column types\n * and row data is provided asynchronously, the column sizing will happen asynchronously when row data is added.\n * To always perform this synchronously, set `cellDataType = false` on the default column definition.\n */\n autoSizeColumns(keys, skipHeader) {\n this.columnModel.autoSizeColumns({ columns: keys, skipHeader: skipHeader, source: 'api' });\n }\n /**\n * Calls `autoSizeColumns` on all displayed columns. If inferring cell data types with custom column types\n * and row data is provided asynchronously, the column sizing will happen asynchronously when row data is added.\n * To always perform this synchronously, set `cellDataType = false` on the default column definition.\n */\n autoSizeAllColumns(skipHeader) { this.columnModel.autoSizeAllColumns('api', skipHeader); }\n /** Set the pivot result columns. */\n setPivotResultColumns(colDefs) { this.columnModel.setSecondaryColumns(colDefs, 'api'); }\n /** Returns the grid's pivot result columns. */\n getPivotResultColumns() { return this.columnModel.getSecondaryColumns(); }\n /** Get the current state of the grid. Can be used in conjunction with the `initialState` grid option to save and restore grid state. */\n getState() {\n return this.stateService.getState();\n }\n /**\n * Returns the grid option value for a provided key.\n */\n getGridOption(key) {\n return this.gos.get(key);\n }\n /**\n * Updates a single gridOption to the new value provided. (Cannot be used on `Initial` properties.)\n * If updating multiple options, it is recommended to instead use `api.updateGridOptions()` which batches update logic.\n */\n setGridOption(key, value) {\n this.updateGridOptions({ [key]: value });\n }\n /**\n * Updates the provided subset of gridOptions with the provided values. (Cannot be used on `Initial` properties.)\n */\n updateGridOptions(options) {\n // NOTE: The TDataUpdate generic is used to ensure that the update options match the generic passed into the GridApi above as TData.\n // This is required because if we just use TData directly then Typescript will get into an infinite loop due to callbacks which recursively include the GridApi.\n this.gos.updateGridOptions({ options });\n }\n /** Used internally by grid. Not intended to be used by the client. Interface may change between releases. */\n __internalUpdateGridOptions(options) {\n this.gos.updateGridOptions({ options, source: 'gridOptionsUpdated' });\n }\n deprecatedUpdateGridOption(key, value) {\n warnOnce(`set${key.charAt(0).toUpperCase()}${key.slice(1, key.length)} is deprecated. Please use 'api.setGridOption('${key}', newValue)' or 'api.updateGridOptions({ ${key}: newValue })' instead.`);\n this.setGridOption(key, value);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * Set the top pinned rows. Call with no rows / undefined to clear top pinned rows.\n **/\n setPivotMode(pivotMode) {\n this.deprecatedUpdateGridOption('pivotMode', pivotMode);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * Set the top pinned rows. Call with no rows / undefined to clear top pinned rows.\n **/\n setPinnedTopRowData(rows) {\n this.deprecatedUpdateGridOption('pinnedTopRowData', rows);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * Set the bottom pinned rows. Call with no rows / undefined to clear bottom pinned rows.\n * */\n setPinnedBottomRowData(rows) {\n this.deprecatedUpdateGridOption('pinnedBottomRowData', rows);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * DOM element to use as the popup parent for grid popups (context menu, column menu etc).\n * */\n setPopupParent(ePopupParent) {\n this.deprecatedUpdateGridOption('popupParent', ePopupParent);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n */\n setSuppressModelUpdateAfterUpdateTransaction(value) {\n this.deprecatedUpdateGridOption('suppressModelUpdateAfterUpdateTransaction', value);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * Resets the data type definitions. This will update the columns in the grid.\n * */\n setDataTypeDefinitions(dataTypeDefinitions) {\n this.deprecatedUpdateGridOption('dataTypeDefinitions', dataTypeDefinitions);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * Set whether the grid paginates the data or not.\n * - `true` to enable pagination\n * - `false` to disable pagination\n */\n setPagination(value) {\n this.deprecatedUpdateGridOption('pagination', value);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * Sets the `paginationPageSize`, then re-paginates the grid so the changes are applied immediately.\n * */\n paginationSetPageSize(size) {\n this.deprecatedUpdateGridOption('paginationPageSize', size);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * Resets the side bar to the provided configuration. The parameter is the same as the sideBar grid property. The side bar is re-created from scratch with the new config.\n * */\n setSideBar(def) {\n this.deprecatedUpdateGridOption('sideBar', def);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n */\n setSuppressClipboardPaste(value) {\n this.deprecatedUpdateGridOption('suppressClipboardPaste', value);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n */\n setGroupRemoveSingleChildren(value) {\n this.deprecatedUpdateGridOption('groupRemoveSingleChildren', value);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n */\n setGroupRemoveLowestSingleChildren(value) {\n this.deprecatedUpdateGridOption('groupRemoveLowestSingleChildren', value);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n */\n setGroupDisplayType(value) {\n this.deprecatedUpdateGridOption('groupDisplayType', value);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * Sets the `groupIncludeFooter` property\n */\n setGroupIncludeFooter(value) {\n this.deprecatedUpdateGridOption('groupIncludeFooter', value);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * Sets the `groupIncludeTotalFooter` property\n */\n setGroupIncludeTotalFooter(value) {\n this.deprecatedUpdateGridOption('groupIncludeTotalFooter', value);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n */\n setRowClass(className) {\n this.deprecatedUpdateGridOption('rowClass', className);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * Sets the `deltaSort` property\n * */\n setDeltaSort(enable) {\n this.deprecatedUpdateGridOption('deltaSort', enable);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * Sets the `suppressRowDrag` property.\n * */\n setSuppressRowDrag(value) {\n this.deprecatedUpdateGridOption('suppressRowDrag', value);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * Sets the `suppressMoveWhenRowDragging` property.\n * */\n setSuppressMoveWhenRowDragging(value) {\n this.deprecatedUpdateGridOption('suppressMoveWhenRowDragging', value);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * Sets the `suppressRowClickSelection` property.\n * */\n setSuppressRowClickSelection(value) {\n this.deprecatedUpdateGridOption('suppressRowClickSelection', value);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * Enable/disable the Advanced Filter\n * */\n setEnableAdvancedFilter(enabled) {\n this.deprecatedUpdateGridOption('enableAdvancedFilter', enabled);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * Updates the `includeHiddenColumnsInAdvancedFilter` grid option.\n * By default hidden columns are excluded from the Advanced Filter.\n * Set to `true` to include them.\n */\n setIncludeHiddenColumnsInAdvancedFilter(value) {\n this.deprecatedUpdateGridOption('includeHiddenColumnsInAdvancedFilter', value);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * DOM element to use as the parent for the Advanced Filter, to allow it to appear outside of the grid.\n * Set to `null` to appear inside the grid.\n */\n setAdvancedFilterParent(advancedFilterParent) {\n this.deprecatedUpdateGridOption('advancedFilterParent', advancedFilterParent);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * Updates the Advanced Filter Builder parameters.\n * */\n setAdvancedFilterBuilderParams(params) {\n this.deprecatedUpdateGridOption('advancedFilterBuilderParams', params);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * Pass a Quick Filter text into the grid for filtering.\n * */\n setQuickFilter(newFilter) {\n warnOnce(`setQuickFilter is deprecated. Please use 'api.setGridOption('quickFilterText', newValue)' or 'api.updateGridOptions({ quickFilterText: newValue })' instead.`);\n this.gos.updateGridOptions({ options: { quickFilterText: newFilter } });\n }\n /**\n * @deprecated As of v30, hidden columns are excluded from the Quick Filter by default. To include hidden columns, use `setIncludeHiddenColumnsInQuickFilter` instead.\n */\n setExcludeHiddenColumnsFromQuickFilter(value) {\n this.deprecatedUpdateGridOption('includeHiddenColumnsInQuickFilter', !value);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * Updates the `includeHiddenColumnsInQuickFilter` grid option.\n * By default hidden columns are excluded from the Quick Filter.\n * Set to `true` to include them.\n */\n setIncludeHiddenColumnsInQuickFilter(value) {\n this.deprecatedUpdateGridOption('includeHiddenColumnsInQuickFilter', value);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * Updates the `quickFilterParser` grid option,\n * which changes how the Quick Filter splits the Quick Filter text into search terms.\n */\n setQuickFilterParser(quickFilterParser) {\n this.deprecatedUpdateGridOption('quickFilterParser', quickFilterParser);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * Updates the `quickFilterMatcher` grid option,\n * which changes the matching logic for whether a row passes the Quick Filter.\n */\n setQuickFilterMatcher(quickFilterMatcher) {\n this.deprecatedUpdateGridOption('quickFilterMatcher', quickFilterMatcher);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * If `true`, the horizontal scrollbar will always be present, even if not required. Otherwise, it will only be displayed when necessary.\n * */\n setAlwaysShowHorizontalScroll(show) {\n this.deprecatedUpdateGridOption('alwaysShowHorizontalScroll', show);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * If `true`, the vertical scrollbar will always be present, even if not required. Otherwise it will only be displayed when necessary.\n * */\n setAlwaysShowVerticalScroll(show) {\n this.deprecatedUpdateGridOption('alwaysShowVerticalScroll', show);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n */\n setFunctionsReadOnly(readOnly) {\n this.deprecatedUpdateGridOption('functionsReadOnly', readOnly);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * Call to set new column definitions. The grid will redraw all the column headers, and then redraw all of the rows.\n */\n setColumnDefs(colDefs, source = \"api\") {\n warnOnce(`setColumnDefs is deprecated. Please use 'api.setGridOption('columnDefs', newValue)' or 'api.updateGridOptions({ columnDefs: newValue })' instead.`);\n this.gos.updateGridOptions({\n options: { columnDefs: colDefs },\n source: source,\n });\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * Call to set new auto group column definition. The grid will recreate any auto-group columns if present.\n * */\n setAutoGroupColumnDef(colDef, source = \"api\") {\n warnOnce(`setAutoGroupColumnDef is deprecated. Please use 'api.setGridOption('autoGroupColumnDef', newValue)' or 'api.updateGridOptions({ autoGroupColumnDef: newValue })' instead.`);\n this.gos.updateGridOptions({\n options: { autoGroupColumnDef: colDef },\n source: source,\n });\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * Call to set new Default Column Definition.\n * */\n setDefaultColDef(colDef, source = \"api\") {\n warnOnce(`setDefaultColDef is deprecated. Please use 'api.setGridOption('defaultColDef', newValue)' or 'api.updateGridOptions({ defaultColDef: newValue })' instead.`);\n this.gos.updateGridOptions({\n options: { defaultColDef: colDef },\n source: source,\n });\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * Call to set new Column Types.\n * */\n setColumnTypes(columnTypes, source = \"api\") {\n warnOnce(`setColumnTypes is deprecated. Please use 'api.setGridOption('columnTypes', newValue)' or 'api.updateGridOptions({ columnTypes: newValue })' instead.`);\n this.gos.updateGridOptions({\n options: { columnTypes: columnTypes },\n source: source,\n });\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * Sets the `treeData` property.\n * */\n setTreeData(newTreeData) {\n this.deprecatedUpdateGridOption('treeData', newTreeData);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * Set new datasource for Server-Side Row Model.\n * */\n setServerSideDatasource(datasource) {\n this.deprecatedUpdateGridOption('serverSideDatasource', datasource);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n *\n * Note this purges all the cached data and reloads all the rows of the grid.\n * */\n setCacheBlockSize(blockSize) {\n this.deprecatedUpdateGridOption('cacheBlockSize', blockSize);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * Set new datasource for Infinite Row Model.\n * */\n setDatasource(datasource) {\n this.deprecatedUpdateGridOption('datasource', datasource);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * Set new datasource for Viewport Row Model.\n * */\n setViewportDatasource(viewportDatasource) {\n this.deprecatedUpdateGridOption('viewportDatasource', viewportDatasource);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * Set the row data.\n * */\n setRowData(rowData) {\n this.deprecatedUpdateGridOption('rowData', rowData);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * Sets the `enableCellTextSelection` property.\n * */\n setEnableCellTextSelection(selectable) {\n this.deprecatedUpdateGridOption('enableCellTextSelection', selectable);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * Sets the height in pixels for the row containing the column label header.\n * */\n setHeaderHeight(headerHeight) {\n this.deprecatedUpdateGridOption('headerHeight', headerHeight);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * Switch between layout options: `normal`, `autoHeight`, `print`.\n * Defaults to `normal` if no domLayout provided.\n */\n setDomLayout(domLayout) {\n this.deprecatedUpdateGridOption('domLayout', domLayout);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * Sets the preferred direction for the selection fill handle.\n * */\n setFillHandleDirection(direction) {\n this.deprecatedUpdateGridOption('fillHandleDirection', direction);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * Sets the height in pixels for the rows containing header column groups.\n * */\n setGroupHeaderHeight(headerHeight) {\n this.deprecatedUpdateGridOption('groupHeaderHeight', headerHeight);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * Sets the height in pixels for the row containing the floating filters.\n * */\n setFloatingFiltersHeight(headerHeight) {\n this.deprecatedUpdateGridOption('floatingFiltersHeight', headerHeight);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * Sets the height in pixels for the row containing the columns when in pivot mode.\n * */\n setPivotHeaderHeight(headerHeight) {\n this.deprecatedUpdateGridOption('pivotHeaderHeight', headerHeight);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * Sets the height in pixels for the row containing header column groups when in pivot mode.\n * */\n setPivotGroupHeaderHeight(headerHeight) {\n this.deprecatedUpdateGridOption('pivotGroupHeaderHeight', headerHeight);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * */\n setAnimateRows(animateRows) {\n this.deprecatedUpdateGridOption('animateRows', animateRows);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * */\n setIsExternalFilterPresent(isExternalFilterPresentFunc) {\n this.deprecatedUpdateGridOption('isExternalFilterPresent', isExternalFilterPresentFunc);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * */\n setDoesExternalFilterPass(doesExternalFilterPassFunc) {\n this.deprecatedUpdateGridOption('doesExternalFilterPass', doesExternalFilterPassFunc);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * */\n setNavigateToNextCell(navigateToNextCellFunc) {\n this.deprecatedUpdateGridOption('navigateToNextCell', navigateToNextCellFunc);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * */\n setTabToNextCell(tabToNextCellFunc) {\n this.deprecatedUpdateGridOption('tabToNextCell', tabToNextCellFunc);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * */\n setTabToNextHeader(tabToNextHeaderFunc) {\n this.deprecatedUpdateGridOption('tabToNextHeader', tabToNextHeaderFunc);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * */\n setNavigateToNextHeader(navigateToNextHeaderFunc) {\n this.deprecatedUpdateGridOption('navigateToNextHeader', navigateToNextHeaderFunc);\n }\n setRowGroupPanelShow(rowGroupPanelShow) {\n this.deprecatedUpdateGridOption('rowGroupPanelShow', rowGroupPanelShow);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * */\n setGetGroupRowAgg(getGroupRowAggFunc) {\n this.deprecatedUpdateGridOption('getGroupRowAgg', getGroupRowAggFunc);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * */\n setGetBusinessKeyForNode(getBusinessKeyForNodeFunc) {\n this.deprecatedUpdateGridOption('getBusinessKeyForNode', getBusinessKeyForNodeFunc);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * */\n setGetChildCount(getChildCountFunc) {\n this.deprecatedUpdateGridOption('getChildCount', getChildCountFunc);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * */\n setProcessRowPostCreate(processRowPostCreateFunc) {\n this.deprecatedUpdateGridOption('processRowPostCreate', processRowPostCreateFunc);\n }\n /**\n * @deprecated v31 `getRowId` is a static property and cannot be updated.\n * */\n setGetRowId(getRowIdFunc) {\n warnOnce(`getRowId is a static property and can no longer be updated.`);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * */\n setGetRowClass(rowClassFunc) {\n this.deprecatedUpdateGridOption('getRowClass', rowClassFunc);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * */\n setIsFullWidthRow(isFullWidthRowFunc) {\n this.deprecatedUpdateGridOption('isFullWidthRow', isFullWidthRowFunc);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * */\n setIsRowSelectable(isRowSelectableFunc) {\n this.deprecatedUpdateGridOption('isRowSelectable', isRowSelectableFunc);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * */\n setIsRowMaster(isRowMasterFunc) {\n this.deprecatedUpdateGridOption('isRowMaster', isRowMasterFunc);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * */\n setPostSortRows(postSortRowsFunc) {\n this.deprecatedUpdateGridOption('postSortRows', postSortRowsFunc);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * */\n setGetDocument(getDocumentFunc) {\n this.deprecatedUpdateGridOption('getDocument', getDocumentFunc);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * */\n setGetContextMenuItems(getContextMenuItemsFunc) {\n this.deprecatedUpdateGridOption('getContextMenuItems', getContextMenuItemsFunc);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * */\n setGetMainMenuItems(getMainMenuItemsFunc) {\n this.deprecatedUpdateGridOption('getMainMenuItems', getMainMenuItemsFunc);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * */\n setProcessCellForClipboard(processCellForClipboardFunc) {\n this.deprecatedUpdateGridOption('processCellForClipboard', processCellForClipboardFunc);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * */\n setSendToClipboard(sendToClipboardFunc) {\n this.deprecatedUpdateGridOption('sendToClipboard', sendToClipboardFunc);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * */\n setProcessCellFromClipboard(processCellFromClipboardFunc) {\n this.deprecatedUpdateGridOption('processCellFromClipboard', processCellFromClipboardFunc);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * */\n setProcessPivotResultColDef(processPivotResultColDefFunc) {\n this.deprecatedUpdateGridOption('processPivotResultColDef', processPivotResultColDefFunc);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * */\n setProcessPivotResultColGroupDef(processPivotResultColGroupDefFunc) {\n this.deprecatedUpdateGridOption('processPivotResultColGroupDef', processPivotResultColGroupDefFunc);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * */\n setPostProcessPopup(postProcessPopupFunc) {\n this.deprecatedUpdateGridOption('postProcessPopup', postProcessPopupFunc);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * */\n setInitialGroupOrderComparator(initialGroupOrderComparatorFunc) {\n this.deprecatedUpdateGridOption('initialGroupOrderComparator', initialGroupOrderComparatorFunc);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * */\n setGetChartToolbarItems(getChartToolbarItemsFunc) {\n this.deprecatedUpdateGridOption('getChartToolbarItems', getChartToolbarItemsFunc);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * */\n setPaginationNumberFormatter(paginationNumberFormatterFunc) {\n this.deprecatedUpdateGridOption('paginationNumberFormatter', paginationNumberFormatterFunc);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * */\n setGetServerSideGroupLevelParams(getServerSideGroupLevelParamsFunc) {\n this.deprecatedUpdateGridOption('getServerSideGroupLevelParams', getServerSideGroupLevelParamsFunc);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * */\n setIsServerSideGroupOpenByDefault(isServerSideGroupOpenByDefaultFunc) {\n this.deprecatedUpdateGridOption('isServerSideGroupOpenByDefault', isServerSideGroupOpenByDefaultFunc);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * */\n setIsApplyServerSideTransaction(isApplyServerSideTransactionFunc) {\n this.deprecatedUpdateGridOption('isApplyServerSideTransaction', isApplyServerSideTransactionFunc);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * */\n setIsServerSideGroup(isServerSideGroupFunc) {\n this.deprecatedUpdateGridOption('isServerSideGroup', isServerSideGroupFunc);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * */\n setGetServerSideGroupKey(getServerSideGroupKeyFunc) {\n this.deprecatedUpdateGridOption('getServerSideGroupKey', getServerSideGroupKeyFunc);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * */\n setGetRowStyle(rowStyleFunc) {\n this.deprecatedUpdateGridOption('getRowStyle', rowStyleFunc);\n }\n /**\n * @deprecated v31 Use `api.setGridOption` or `api.updateGridOptions` instead.\n * */\n setGetRowHeight(rowHeightFunc) {\n this.deprecatedUpdateGridOption('getRowHeight', rowHeightFunc);\n }\n};\n__decorate([\n Optional('csvCreator')\n], GridApi.prototype, \"csvCreator\", void 0);\n__decorate([\n Optional('excelCreator')\n], GridApi.prototype, \"excelCreator\", void 0);\n__decorate([\n Autowired('rowRenderer')\n], GridApi.prototype, \"rowRenderer\", void 0);\n__decorate([\n Autowired('navigationService')\n], GridApi.prototype, \"navigationService\", void 0);\n__decorate([\n Autowired('filterManager')\n], GridApi.prototype, \"filterManager\", void 0);\n__decorate([\n Autowired('columnModel')\n], GridApi.prototype, \"columnModel\", void 0);\n__decorate([\n Autowired('selectionService')\n], GridApi.prototype, \"selectionService\", void 0);\n__decorate([\n Autowired('gridOptionsService')\n], GridApi.prototype, \"gos\", void 0);\n__decorate([\n Autowired('valueService')\n], GridApi.prototype, \"valueService\", void 0);\n__decorate([\n Autowired('alignedGridsService')\n], GridApi.prototype, \"alignedGridsService\", void 0);\n__decorate([\n Autowired('eventService')\n], GridApi.prototype, \"eventService\", void 0);\n__decorate([\n Autowired('pinnedRowModel')\n], GridApi.prototype, \"pinnedRowModel\", void 0);\n__decorate([\n Autowired('context')\n], GridApi.prototype, \"context\", void 0);\n__decorate([\n Autowired('rowModel')\n], GridApi.prototype, \"rowModel\", void 0);\n__decorate([\n Autowired('sortController')\n], GridApi.prototype, \"sortController\", void 0);\n__decorate([\n Autowired('paginationProxy')\n], GridApi.prototype, \"paginationProxy\", void 0);\n__decorate([\n Autowired('focusService')\n], GridApi.prototype, \"focusService\", void 0);\n__decorate([\n Autowired('dragAndDropService')\n], GridApi.prototype, \"dragAndDropService\", void 0);\n__decorate([\n Optional('rangeService')\n], GridApi.prototype, \"rangeService\", void 0);\n__decorate([\n Optional('clipboardService')\n], GridApi.prototype, \"clipboardService\", void 0);\n__decorate([\n Optional('aggFuncService')\n], GridApi.prototype, \"aggFuncService\", void 0);\n__decorate([\n Autowired('menuService')\n], GridApi.prototype, \"menuService\", void 0);\n__decorate([\n Autowired('valueCache')\n], GridApi.prototype, \"valueCache\", void 0);\n__decorate([\n Autowired('animationFrameService')\n], GridApi.prototype, \"animationFrameService\", void 0);\n__decorate([\n Optional('statusBarService')\n], GridApi.prototype, \"statusBarService\", void 0);\n__decorate([\n Optional('chartService')\n], GridApi.prototype, \"chartService\", void 0);\n__decorate([\n Optional('undoRedoService')\n], GridApi.prototype, \"undoRedoService\", void 0);\n__decorate([\n Optional('rowNodeBlockLoader')\n], GridApi.prototype, \"rowNodeBlockLoader\", void 0);\n__decorate([\n Optional('ssrmTransactionManager')\n], GridApi.prototype, \"serverSideTransactionManager\", void 0);\n__decorate([\n Autowired('ctrlsService')\n], GridApi.prototype, \"ctrlsService\", void 0);\n__decorate([\n Autowired('overlayService')\n], GridApi.prototype, \"overlayService\", void 0);\n__decorate([\n Optional('sideBarService')\n], GridApi.prototype, \"sideBarService\", void 0);\n__decorate([\n Autowired('stateService')\n], GridApi.prototype, \"stateService\", void 0);\n__decorate([\n Autowired('expansionService')\n], GridApi.prototype, \"expansionService\", void 0);\n__decorate([\n Autowired('apiEventService')\n], GridApi.prototype, \"apiEventService\", void 0);\n__decorate([\n Autowired('frameworkOverrides')\n], GridApi.prototype, \"frameworkOverrides\", void 0);\n__decorate([\n PostConstruct\n], GridApi.prototype, \"init\", null);\nGridApi = __decorate([\n Bean('gridApi')\n], GridApi);\nexport { GridApi };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar QuickFilterService_1;\nimport { BeanStub } from \"../context/beanStub.mjs\";\nimport { Autowired, Bean, PostConstruct } from \"../context/context.mjs\";\nimport { Events } from \"../eventKeys.mjs\";\nimport { exists } from \"../utils/generic.mjs\";\nlet QuickFilterService = QuickFilterService_1 = class QuickFilterService extends BeanStub {\n constructor() {\n super(...arguments);\n this.quickFilter = null;\n this.quickFilterParts = null;\n }\n postConstruct() {\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, () => this.resetQuickFilterCache());\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, () => this.resetQuickFilterCache());\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, () => this.resetQuickFilterCache());\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_VISIBLE, () => {\n if (!this.gridOptionsService.get('includeHiddenColumnsInQuickFilter')) {\n this.resetQuickFilterCache();\n }\n });\n this.addManagedPropertyListener('quickFilterText', (e) => this.setQuickFilter(e.currentValue));\n this.addManagedPropertyListener('includeHiddenColumnsInQuickFilter', () => this.onIncludeHiddenColumnsInQuickFilterChanged());\n this.quickFilter = this.parseQuickFilter(this.gridOptionsService.get('quickFilterText'));\n this.parser = this.gridOptionsService.get('quickFilterParser');\n this.matcher = this.gridOptionsService.get('quickFilterMatcher');\n this.setQuickFilterParts();\n this.addManagedPropertyListeners(['quickFilterMatcher', 'quickFilterParser'], () => this.setQuickFilterParserAndMatcher());\n }\n isQuickFilterPresent() {\n return this.quickFilter !== null;\n }\n doesRowPassQuickFilter(node) {\n const usingCache = this.gridOptionsService.get('cacheQuickFilter');\n if (this.matcher) {\n return this.doesRowPassQuickFilterMatcher(usingCache, node);\n }\n // each part must pass, if any fails, then the whole filter fails\n return this.quickFilterParts.every(part => usingCache ? this.doesRowPassQuickFilterCache(node, part) : this.doesRowPassQuickFilterNoCache(node, part));\n }\n resetQuickFilterCache() {\n this.rowModel.forEachNode(node => node.quickFilterAggregateText = null);\n }\n setQuickFilterParts() {\n const { quickFilter, parser } = this;\n if (quickFilter) {\n this.quickFilterParts = parser ? parser(quickFilter) : quickFilter.split(' ');\n }\n else {\n this.quickFilterParts = null;\n }\n }\n parseQuickFilter(newFilter) {\n if (!exists(newFilter)) {\n return null;\n }\n if (!this.gridOptionsService.isRowModelType('clientSide')) {\n console.warn('AG Grid - Quick filtering only works with the Client-Side Row Model');\n return null;\n }\n return newFilter.toUpperCase();\n }\n setQuickFilter(newFilter) {\n if (newFilter != null && typeof newFilter !== 'string') {\n console.warn(`AG Grid - Grid option quickFilterText only supports string inputs, received: ${typeof newFilter}`);\n return;\n }\n const parsedFilter = this.parseQuickFilter(newFilter);\n if (this.quickFilter !== parsedFilter) {\n this.quickFilter = parsedFilter;\n this.setQuickFilterParts();\n this.dispatchEvent({ type: QuickFilterService_1.EVENT_QUICK_FILTER_CHANGED });\n }\n }\n setQuickFilterParserAndMatcher() {\n const parser = this.gridOptionsService.get('quickFilterParser');\n const matcher = this.gridOptionsService.get('quickFilterMatcher');\n const hasChanged = parser !== this.parser || matcher !== this.matcher;\n this.parser = parser;\n this.matcher = matcher;\n if (hasChanged) {\n this.setQuickFilterParts();\n this.dispatchEvent({ type: QuickFilterService_1.EVENT_QUICK_FILTER_CHANGED });\n }\n }\n onIncludeHiddenColumnsInQuickFilterChanged() {\n this.columnModel.refreshQuickFilterColumns();\n this.resetQuickFilterCache();\n if (this.isQuickFilterPresent()) {\n this.dispatchEvent({ type: QuickFilterService_1.EVENT_QUICK_FILTER_CHANGED });\n }\n }\n doesRowPassQuickFilterNoCache(node, filterPart) {\n const columns = this.columnModel.getAllColumnsForQuickFilter();\n return columns.some(column => {\n const part = this.getQuickFilterTextForColumn(column, node);\n return exists(part) && part.indexOf(filterPart) >= 0;\n });\n }\n doesRowPassQuickFilterCache(node, filterPart) {\n this.checkGenerateQuickFilterAggregateText(node);\n return node.quickFilterAggregateText.indexOf(filterPart) >= 0;\n }\n doesRowPassQuickFilterMatcher(usingCache, node) {\n let quickFilterAggregateText;\n if (usingCache) {\n this.checkGenerateQuickFilterAggregateText(node);\n quickFilterAggregateText = node.quickFilterAggregateText;\n }\n else {\n quickFilterAggregateText = this.getQuickFilterAggregateText(node);\n }\n const { quickFilterParts, matcher } = this;\n return matcher(quickFilterParts, quickFilterAggregateText);\n }\n checkGenerateQuickFilterAggregateText(node) {\n if (!node.quickFilterAggregateText) {\n node.quickFilterAggregateText = this.getQuickFilterAggregateText(node);\n }\n }\n getQuickFilterTextForColumn(column, node) {\n let value = this.valueService.getValue(column, node, true);\n const colDef = column.getColDef();\n if (colDef.getQuickFilterText) {\n const params = this.gridOptionsService.addGridCommonParams({\n value,\n node,\n data: node.data,\n column,\n colDef\n });\n value = colDef.getQuickFilterText(params);\n }\n return exists(value) ? value.toString().toUpperCase() : null;\n }\n getQuickFilterAggregateText(node) {\n const stringParts = [];\n const columns = this.columnModel.getAllColumnsForQuickFilter();\n columns.forEach(column => {\n const part = this.getQuickFilterTextForColumn(column, node);\n if (exists(part)) {\n stringParts.push(part);\n }\n });\n return stringParts.join(QuickFilterService_1.QUICK_FILTER_SEPARATOR);\n }\n};\nQuickFilterService.EVENT_QUICK_FILTER_CHANGED = 'quickFilterChanged';\nQuickFilterService.QUICK_FILTER_SEPARATOR = '\\n';\n__decorate([\n Autowired('valueService')\n], QuickFilterService.prototype, \"valueService\", void 0);\n__decorate([\n Autowired('columnModel')\n], QuickFilterService.prototype, \"columnModel\", void 0);\n__decorate([\n Autowired('rowModel')\n], QuickFilterService.prototype, \"rowModel\", void 0);\n__decorate([\n PostConstruct\n], QuickFilterService.prototype, \"postConstruct\", null);\nQuickFilterService = QuickFilterService_1 = __decorate([\n Bean('quickFilterService')\n], QuickFilterService);\nexport { QuickFilterService };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { AgPromise, _ } from '../utils/index.mjs';\nimport { Column } from '../entities/column.mjs';\nimport { Autowired, Bean, Optional, PostConstruct } from '../context/context.mjs';\nimport { Events } from '../events.mjs';\nimport { ModuleNames } from '../modules/moduleNames.mjs';\nimport { ModuleRegistry } from '../modules/moduleRegistry.mjs';\nimport { BeanStub } from '../context/beanStub.mjs';\nimport { convertToSet } from '../utils/set.mjs';\nimport { exists } from '../utils/generic.mjs';\nimport { mergeDeep, cloneObject } from '../utils/object.mjs';\nimport { loadTemplate } from '../utils/dom.mjs';\nimport { FilterComponent } from '../components/framework/componentTypes.mjs';\nimport { unwrapUserComp } from '../gridApi.mjs';\nimport { warnOnce } from '../utils/function.mjs';\nimport { QuickFilterService } from './quickFilterService.mjs';\nlet FilterManager = class FilterManager extends BeanStub {\n constructor() {\n super(...arguments);\n this.allColumnFilters = new Map();\n this.allColumnListeners = new Map();\n this.activeAggregateFilters = [];\n this.activeColumnFilters = [];\n // this is true when the grid is processing the filter change. this is used by the cell comps, so that they\n // don't flash when data changes due to filter changes. there is no need to flash when filter changes as the\n // user is in control, so doesn't make sense to show flashing changes. for example, go to main demo where\n // this feature is turned off (hack code to always return false for isSuppressFlashingCellsBecauseFiltering(), put in)\n // 100,000 rows and group by country. then do some filtering. all the cells flash, which is silly.\n this.processingFilterChange = false;\n // when we're waiting for cell data types to be inferred, we need to defer filter model updates\n this.filterModelUpdateQueue = [];\n this.columnFilterModelUpdateQueue = [];\n this.advancedFilterModelUpdateQueue = [];\n }\n init() {\n var _a, _b, _c;\n this.addManagedListener(this.eventService, Events.EVENT_GRID_COLUMNS_CHANGED, () => this.onColumnsChanged());\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_VALUE_CHANGED, () => this.refreshFiltersForAggregations());\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_CHANGED, () => this.refreshFiltersForAggregations());\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, () => this.refreshFiltersForAggregations());\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, () => this.updateAdvancedFilterColumns());\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_VISIBLE, () => this.updateAdvancedFilterColumns());\n this.addManagedListener(this.eventService, Events.EVENT_ROW_DATA_UPDATED, () => this.onNewRowsLoaded('rowDataUpdated'));\n this.externalFilterPresent = this.isExternalFilterPresentCallback();\n this.addManagedPropertyListeners(['isExternalFilterPresent', 'doesExternalFilterPass'], () => {\n this.onFilterChanged({ source: 'api' });\n });\n this.updateAggFiltering();\n this.addManagedPropertyListener('groupAggFiltering', () => {\n this.updateAggFiltering();\n this.onFilterChanged();\n });\n this.addManagedPropertyListener('advancedFilterModel', (event) => this.setAdvancedFilterModel(event.currentValue));\n this.addManagedListener(this.eventService, Events.EVENT_ADVANCED_FILTER_ENABLED_CHANGED, ({ enabled }) => this.onAdvancedFilterEnabledChanged(enabled));\n this.addManagedListener(this.eventService, Events.EVENT_DATA_TYPES_INFERRED, () => this.processFilterModelUpdateQueue());\n this.addManagedListener(this.quickFilterService, QuickFilterService.EVENT_QUICK_FILTER_CHANGED, () => this.onFilterChanged({ source: 'quickFilter' }));\n this.initialFilterModel = Object.assign({}, (_c = (_b = (_a = this.gridOptionsService.get('initialState')) === null || _a === void 0 ? void 0 : _a.filter) === null || _b === void 0 ? void 0 : _b.filterModel) !== null && _c !== void 0 ? _c : {});\n }\n isExternalFilterPresentCallback() {\n const isFilterPresent = this.gridOptionsService.getCallback('isExternalFilterPresent');\n if (typeof isFilterPresent === 'function') {\n return isFilterPresent({});\n }\n return false;\n }\n doesExternalFilterPass(node) {\n const doesFilterPass = this.gridOptionsService.get('doesExternalFilterPass');\n if (typeof doesFilterPass === 'function') {\n return doesFilterPass(node);\n }\n return false;\n }\n setFilterModel(model, source = 'api') {\n if (this.isAdvancedFilterEnabled()) {\n this.warnAdvancedFilters();\n return;\n }\n if (this.dataTypeService.isPendingInference()) {\n this.filterModelUpdateQueue.push({ model, source });\n return;\n }\n const allPromises = [];\n const previousModel = this.getFilterModel();\n if (model) {\n // mark the filters as we set them, so any active filters left over we stop\n const modelKeys = convertToSet(Object.keys(model));\n this.allColumnFilters.forEach((filterWrapper, colId) => {\n const newModel = model[colId];\n allPromises.push(this.setModelOnFilterWrapper(filterWrapper.filterPromise, newModel));\n modelKeys.delete(colId);\n });\n // at this point, processedFields contains data for which we don't have a filter working yet\n modelKeys.forEach(colId => {\n const column = this.columnModel.getPrimaryColumn(colId) || this.columnModel.getGridColumn(colId);\n if (!column) {\n console.warn('AG Grid: setFilterModel() - no column found for colId: ' + colId);\n return;\n }\n if (!column.isFilterAllowed()) {\n console.warn('AG Grid: setFilterModel() - unable to fully apply model, filtering disabled for colId: ' + colId);\n return;\n }\n const filterWrapper = this.getOrCreateFilterWrapper(column, 'NO_UI');\n if (!filterWrapper) {\n console.warn('AG-Grid: setFilterModel() - unable to fully apply model, unable to create filter for colId: ' + colId);\n return;\n }\n allPromises.push(this.setModelOnFilterWrapper(filterWrapper.filterPromise, model[colId]));\n });\n }\n else {\n this.allColumnFilters.forEach(filterWrapper => {\n allPromises.push(this.setModelOnFilterWrapper(filterWrapper.filterPromise, null));\n });\n }\n AgPromise.all(allPromises).then(() => {\n const currentModel = this.getFilterModel();\n const columns = [];\n this.allColumnFilters.forEach((filterWrapper, colId) => {\n const before = previousModel ? previousModel[colId] : null;\n const after = currentModel ? currentModel[colId] : null;\n if (!_.jsonEquals(before, after)) {\n columns.push(filterWrapper.column);\n }\n });\n if (columns.length > 0) {\n this.onFilterChanged({ columns, source });\n }\n });\n }\n setModelOnFilterWrapper(filterPromise, newModel) {\n return new AgPromise(resolve => {\n filterPromise.then(filter => {\n if (typeof filter.setModel !== 'function') {\n console.warn('AG Grid: filter missing setModel method, which is needed for setFilterModel');\n resolve();\n }\n (filter.setModel(newModel) || AgPromise.resolve()).then(() => resolve());\n });\n });\n }\n getFilterModel() {\n const result = {};\n this.allColumnFilters.forEach((filterWrapper, key) => {\n const model = this.getModelFromFilterWrapper(filterWrapper);\n if (exists(model)) {\n result[key] = model;\n }\n });\n return result;\n }\n getModelFromFilterWrapper(filterWrapper) {\n var _a;\n // because user can provide filters, we provide useful error checking and messages\n const filterPromise = filterWrapper.filterPromise;\n const filter = filterPromise.resolveNow(null, promiseFilter => promiseFilter);\n if (filter == null) {\n // filter still being created. returned initial state if it exists and hasn't been applied yet\n return (_a = this.initialFilterModel[filterWrapper.column.getColId()]) !== null && _a !== void 0 ? _a : null;\n }\n if (typeof filter.getModel !== 'function') {\n console.warn('AG Grid: filter API missing getModel method, which is needed for getFilterModel');\n return null;\n }\n return filter.getModel();\n }\n isColumnFilterPresent() {\n return this.activeColumnFilters.length > 0;\n }\n isAggregateFilterPresent() {\n return !!this.activeAggregateFilters.length;\n }\n isExternalFilterPresent() {\n return this.externalFilterPresent;\n }\n isChildFilterPresent() {\n return this.isColumnFilterPresent()\n || this.isQuickFilterPresent()\n || this.isExternalFilterPresent()\n || this.isAdvancedFilterPresent();\n }\n isAdvancedFilterPresent() {\n return this.isAdvancedFilterEnabled() && this.advancedFilterService.isFilterPresent();\n }\n onAdvancedFilterEnabledChanged(enabled) {\n var _a;\n if (enabled) {\n if (this.allColumnFilters.size) {\n this.allColumnFilters.forEach(filterWrapper => this.disposeFilterWrapper(filterWrapper, 'advancedFilterEnabled'));\n this.onFilterChanged({ source: 'advancedFilter' });\n }\n }\n else {\n if ((_a = this.advancedFilterService) === null || _a === void 0 ? void 0 : _a.isFilterPresent()) {\n this.advancedFilterService.setModel(null);\n this.onFilterChanged({ source: 'advancedFilter' });\n }\n }\n }\n isAdvancedFilterEnabled() {\n var _a;\n return (_a = this.advancedFilterService) === null || _a === void 0 ? void 0 : _a.isEnabled();\n }\n isAdvancedFilterHeaderActive() {\n return this.isAdvancedFilterEnabled() && this.advancedFilterService.isHeaderActive();\n }\n doAggregateFiltersPass(node, filterToSkip) {\n return this.doColumnFiltersPass(node, filterToSkip, true);\n }\n // called by:\n // 1) onFilterChanged()\n // 2) onNewRowsLoaded()\n updateActiveFilters() {\n this.activeColumnFilters.length = 0;\n this.activeAggregateFilters.length = 0;\n const isFilterActive = (filter) => {\n if (!filter) {\n return false;\n } // this never happens, including to avoid compile error\n if (!filter.isFilterActive) {\n console.warn('AG Grid: Filter is missing isFilterActive() method');\n return false;\n }\n return filter.isFilterActive();\n };\n const groupFilterEnabled = !!this.gridOptionsService.getGroupAggFiltering();\n const isAggFilter = (column) => {\n const isSecondary = !column.isPrimary();\n // the only filters that can appear on secondary columns are groupAgg filters\n if (isSecondary) {\n return true;\n }\n const isShowingPrimaryColumns = !this.columnModel.isPivotActive();\n const isValueActive = column.isValueActive();\n // primary columns are only ever groupAgg filters if a) value is active and b) showing primary columns\n if (!isValueActive || !isShowingPrimaryColumns) {\n return false;\n }\n // from here on we know: isPrimary=true, isValueActive=true, isShowingPrimaryColumns=true\n if (this.columnModel.isPivotMode()) {\n // primary column is pretending to be a pivot column, ie pivotMode=true, but we are\n // still showing primary columns\n return true;\n }\n // we are not pivoting, so we groupFilter when it's an agg column\n return groupFilterEnabled;\n };\n this.allColumnFilters.forEach(filterWrapper => {\n if (filterWrapper.filterPromise.resolveNow(false, isFilterActive)) {\n const filterComp = filterWrapper.filterPromise.resolveNow(null, filter => filter);\n if (isAggFilter(filterWrapper.column)) {\n this.activeAggregateFilters.push(filterComp);\n }\n else {\n this.activeColumnFilters.push(filterComp);\n }\n }\n });\n }\n updateFilterFlagInColumns(source, additionalEventAttributes) {\n this.allColumnFilters.forEach(filterWrapper => {\n const isFilterActive = filterWrapper.filterPromise.resolveNow(false, filter => filter.isFilterActive());\n filterWrapper.column.setFilterActive(isFilterActive, source, additionalEventAttributes);\n });\n }\n isAnyFilterPresent() {\n return this.isQuickFilterPresent() || this.isColumnFilterPresent() || this.isAggregateFilterPresent() || this.isExternalFilterPresent() || this.isAdvancedFilterPresent();\n }\n doColumnFiltersPass(node, filterToSkip, targetAggregates) {\n const { data, aggData } = node;\n const targetedFilters = targetAggregates ? this.activeAggregateFilters : this.activeColumnFilters;\n const targetedData = targetAggregates ? aggData : data;\n for (let i = 0; i < targetedFilters.length; i++) {\n const filter = targetedFilters[i];\n if (filter == null || filter === filterToSkip) {\n continue;\n }\n if (typeof filter.doesFilterPass !== 'function') {\n // because users can do custom filters, give nice error message\n throw new Error('Filter is missing method doesFilterPass');\n }\n if (!filter.doesFilterPass({ node, data: targetedData })) {\n return false;\n }\n }\n return true;\n }\n resetQuickFilterCache() {\n this.quickFilterService.resetQuickFilterCache();\n }\n refreshFiltersForAggregations() {\n const isAggFiltering = this.gridOptionsService.getGroupAggFiltering();\n if (isAggFiltering) {\n this.onFilterChanged();\n }\n }\n // sometimes (especially in React) the filter can call onFilterChanged when we are in the middle\n // of a render cycle. this would be bad, so we wait for render cycle to complete when this happens.\n // this happens in react when we change React State in the grid (eg setting RowCtrl's in RowContainer)\n // which results in React State getting applied in the main application, triggering a useEffect() to\n // be kicked off adn then the application calling the grid's API. in AG-6554, the custom filter was\n // getting it's useEffect() triggered in this way.\n callOnFilterChangedOutsideRenderCycle(params) {\n const action = () => this.onFilterChanged(params);\n if (this.rowRenderer.isRefreshInProgress()) {\n setTimeout(action, 0);\n }\n else {\n action();\n }\n }\n onFilterChanged(params = {}) {\n const { source, filterInstance, additionalEventAttributes, columns } = params;\n this.updateDependantFilters();\n this.updateActiveFilters();\n this.updateFilterFlagInColumns('filterChanged', additionalEventAttributes);\n this.externalFilterPresent = this.isExternalFilterPresentCallback();\n this.allColumnFilters.forEach(filterWrapper => {\n if (!filterWrapper.filterPromise) {\n return;\n }\n filterWrapper.filterPromise.then(filter => {\n if (filter && filter !== filterInstance && filter.onAnyFilterChanged) {\n filter.onAnyFilterChanged();\n }\n });\n });\n const filterChangedEvent = {\n source,\n type: Events.EVENT_FILTER_CHANGED,\n columns: columns || [],\n };\n if (additionalEventAttributes) {\n mergeDeep(filterChangedEvent, additionalEventAttributes);\n }\n // because internal events are not async in ag-grid, when the dispatchEvent\n // method comes back, we know all listeners have finished executing.\n this.processingFilterChange = true;\n this.eventService.dispatchEvent(filterChangedEvent);\n this.processingFilterChange = false;\n }\n isSuppressFlashingCellsBecauseFiltering() {\n var _a;\n // if user has elected to always flash cell changes, then always return false, otherwise we suppress flashing\n // changes when filtering\n const allowShowChangeAfterFilter = (_a = this.gridOptionsService.get('allowShowChangeAfterFilter')) !== null && _a !== void 0 ? _a : false;\n return !allowShowChangeAfterFilter && this.processingFilterChange;\n }\n isQuickFilterPresent() {\n return this.quickFilterService.isQuickFilterPresent();\n }\n updateAggFiltering() {\n this.aggFiltering = !!this.gridOptionsService.getGroupAggFiltering();\n }\n isAggregateQuickFilterPresent() {\n return this.isQuickFilterPresent() && (this.aggFiltering || this.columnModel.isPivotMode());\n }\n isNonAggregateQuickFilterPresent() {\n return this.isQuickFilterPresent() && !(this.aggFiltering || this.columnModel.isPivotMode());\n }\n doesRowPassOtherFilters(filterToSkip, node) {\n return this.doesRowPassFilter({ rowNode: node, filterInstanceToSkip: filterToSkip });\n }\n doesRowPassAggregateFilters(params) {\n // check quick filter\n if (this.isAggregateQuickFilterPresent() && !this.quickFilterService.doesRowPassQuickFilter(params.rowNode)) {\n return false;\n }\n if (this.isAggregateFilterPresent() && !this.doAggregateFiltersPass(params.rowNode, params.filterInstanceToSkip)) {\n return false;\n }\n // got this far, all filters pass\n return true;\n }\n doesRowPassFilter(params) {\n // the row must pass ALL of the filters, so if any of them fail,\n // we return true. that means if a row passes the quick filter,\n // but fails the column filter, it fails overall\n // first up, check quick filter\n if (this.isNonAggregateQuickFilterPresent() && !this.quickFilterService.doesRowPassQuickFilter(params.rowNode)) {\n return false;\n }\n // secondly, give the client a chance to reject this row\n if (this.isExternalFilterPresent() && !this.doesExternalFilterPass(params.rowNode)) {\n return false;\n }\n // lastly, check column filter\n if (this.isColumnFilterPresent() && !this.doColumnFiltersPass(params.rowNode, params.filterInstanceToSkip)) {\n return false;\n }\n if (this.isAdvancedFilterPresent() && !this.advancedFilterService.doesFilterPass(params.rowNode)) {\n return false;\n }\n // got this far, all filters pass\n return true;\n }\n onNewRowsLoaded(source) {\n this.allColumnFilters.forEach(filterWrapper => {\n filterWrapper.filterPromise.then(filter => {\n if (filter.onNewRowsLoaded) {\n filter.onNewRowsLoaded();\n }\n });\n });\n this.updateFilterFlagInColumns(source, { afterDataChange: true });\n this.updateActiveFilters();\n }\n createValueGetter(column) {\n return ({ node }) => this.valueService.getValue(column, node, true);\n }\n createGetValue(filterColumn) {\n return (rowNode, column) => {\n const columnToUse = column ? this.columnModel.getGridColumn(column) : filterColumn;\n return columnToUse ? this.valueService.getValue(columnToUse, rowNode, true) : undefined;\n };\n }\n getFilterComponent(column, source, createIfDoesNotExist = true) {\n var _a;\n if (createIfDoesNotExist) {\n return ((_a = this.getOrCreateFilterWrapper(column, source)) === null || _a === void 0 ? void 0 : _a.filterPromise) || null;\n }\n const filterWrapper = this.cachedFilter(column);\n return filterWrapper ? filterWrapper.filterPromise : null;\n }\n isFilterActive(column) {\n const filterWrapper = this.cachedFilter(column);\n return !!filterWrapper && filterWrapper.filterPromise.resolveNow(false, filter => filter.isFilterActive());\n }\n getOrCreateFilterWrapper(column, source) {\n if (!column.isFilterAllowed()) {\n return null;\n }\n let filterWrapper = this.cachedFilter(column);\n if (!filterWrapper) {\n filterWrapper = this.createFilterWrapper(column, source);\n this.setColumnFilterWrapper(column, filterWrapper);\n }\n else if (source !== 'NO_UI') {\n this.putIntoGui(filterWrapper, source);\n }\n return filterWrapper;\n }\n cachedFilter(column) {\n return this.allColumnFilters.get(column.getColId());\n }\n getDefaultFilter(column) {\n let defaultFilter;\n if (ModuleRegistry.__isRegistered(ModuleNames.SetFilterModule, this.context.getGridId())) {\n defaultFilter = 'agSetColumnFilter';\n }\n else {\n const cellDataType = this.dataTypeService.getBaseDataType(column);\n if (cellDataType === 'number') {\n defaultFilter = 'agNumberColumnFilter';\n }\n else if (cellDataType === 'date' || cellDataType === 'dateString') {\n defaultFilter = 'agDateColumnFilter';\n }\n else {\n defaultFilter = 'agTextColumnFilter';\n }\n }\n return defaultFilter;\n }\n getDefaultFloatingFilter(column) {\n let defaultFloatingFilterType;\n if (ModuleRegistry.__isRegistered(ModuleNames.SetFilterModule, this.context.getGridId())) {\n defaultFloatingFilterType = 'agSetColumnFloatingFilter';\n }\n else {\n const cellDataType = this.dataTypeService.getBaseDataType(column);\n if (cellDataType === 'number') {\n defaultFloatingFilterType = 'agNumberColumnFloatingFilter';\n }\n else if (cellDataType === 'date' || cellDataType === 'dateString') {\n defaultFloatingFilterType = 'agDateColumnFloatingFilter';\n }\n else {\n defaultFloatingFilterType = 'agTextColumnFloatingFilter';\n }\n }\n return defaultFloatingFilterType;\n }\n createFilterInstance(column) {\n const defaultFilter = this.getDefaultFilter(column);\n const colDef = column.getColDef();\n let filterInstance;\n const params = Object.assign(Object.assign({}, this.createFilterParams(column, colDef)), { filterModifiedCallback: () => this.filterModifiedCallbackFactory(filterInstance, column)(), filterChangedCallback: (additionalEventAttributes) => this.filterChangedCallbackFactory(filterInstance, column)(additionalEventAttributes), doesRowPassOtherFilter: node => this.doesRowPassOtherFilters(filterInstance, node) });\n const compDetails = this.userComponentFactory.getFilterDetails(colDef, params, defaultFilter);\n if (!compDetails) {\n return { filterPromise: null, compDetails: null };\n }\n return {\n filterPromise: () => {\n const filterPromise = compDetails.newAgStackInstance();\n if (filterPromise) {\n filterPromise.then(r => filterInstance = r);\n }\n return filterPromise;\n },\n compDetails\n };\n }\n createFilterParams(column, colDef) {\n const params = this.gridOptionsService.addGridCommonParams({\n column,\n colDef: cloneObject(colDef),\n rowModel: this.rowModel,\n filterChangedCallback: () => { },\n filterModifiedCallback: () => { },\n valueGetter: this.createValueGetter(column),\n getValue: this.createGetValue(column),\n doesRowPassOtherFilter: () => true,\n });\n return params;\n }\n createFilterWrapper(column, source) {\n var _a;\n const filterWrapper = {\n column: column,\n filterPromise: null,\n compiledElement: null,\n guiPromise: AgPromise.resolve(null),\n compDetails: null\n };\n const { filterPromise, compDetails } = this.createFilterInstance(column);\n filterWrapper.filterPromise = (_a = filterPromise === null || filterPromise === void 0 ? void 0 : filterPromise()) !== null && _a !== void 0 ? _a : null;\n filterWrapper.compDetails = compDetails;\n if (filterPromise) {\n this.putIntoGui(filterWrapper, source);\n }\n return filterWrapper;\n }\n putIntoGui(filterWrapper, source) {\n const eFilterGui = document.createElement('div');\n eFilterGui.className = 'ag-filter';\n filterWrapper.guiPromise = new AgPromise(resolve => {\n filterWrapper.filterPromise.then(filter => {\n let guiFromFilter = filter.getGui();\n if (!exists(guiFromFilter)) {\n console.warn(`AG Grid: getGui method from filter returned ${guiFromFilter}, it should be a DOM element or an HTML template string.`);\n }\n // for backwards compatibility with Angular 1 - we\n // used to allow providing back HTML from getGui().\n // once we move away from supporting Angular 1\n // directly, we can change this.\n if (typeof guiFromFilter === 'string') {\n guiFromFilter = loadTemplate(guiFromFilter);\n }\n eFilterGui.appendChild(guiFromFilter);\n resolve(eFilterGui);\n const event = {\n type: Events.EVENT_FILTER_OPENED,\n column: filterWrapper.column,\n source,\n eGui: eFilterGui\n };\n this.eventService.dispatchEvent(event);\n });\n });\n }\n onColumnsChanged() {\n const columns = [];\n this.allColumnFilters.forEach((wrapper, colId) => {\n let currentColumn;\n if (wrapper.column.isPrimary()) {\n currentColumn = this.columnModel.getPrimaryColumn(colId);\n }\n else {\n currentColumn = this.columnModel.getGridColumn(colId);\n }\n if (currentColumn) {\n return;\n }\n columns.push(wrapper.column);\n this.disposeFilterWrapper(wrapper, 'columnChanged');\n this.disposeColumnListener(colId);\n });\n if (columns.length > 0) {\n // When a filter changes as a side effect of a column changes,\n // we report 'api' as the source, so that the client can distinguish\n this.onFilterChanged({ columns, source: 'api' });\n }\n else {\n // onFilterChanged does this already\n this.updateDependantFilters();\n }\n }\n updateDependantFilters() {\n // Group column filters can be dependant on underlying column filters, but don't normally get created until they're used for the first time.\n // Instead, create them by default when any filter changes.\n const groupColumns = this.columnModel.getGroupAutoColumns();\n groupColumns === null || groupColumns === void 0 ? void 0 : groupColumns.forEach(groupColumn => {\n if (groupColumn.getColDef().filter === 'agGroupColumnFilter') {\n this.getOrCreateFilterWrapper(groupColumn, 'NO_UI');\n }\n });\n }\n // for group filters, can change dynamically whether they are allowed or not\n isFilterAllowed(column) {\n var _a, _b;\n if (this.isAdvancedFilterEnabled()) {\n return false;\n }\n const isFilterAllowed = column.isFilterAllowed();\n if (!isFilterAllowed) {\n return false;\n }\n const filterWrapper = this.allColumnFilters.get(column.getColId());\n return (_b = (_a = filterWrapper === null || filterWrapper === void 0 ? void 0 : filterWrapper.filterPromise) === null || _a === void 0 ? void 0 : _a.resolveNow(true, \n // defer to filter component isFilterAllowed if it exists\n filter => (typeof (filter === null || filter === void 0 ? void 0 : filter.isFilterAllowed) === 'function')\n ? filter === null || filter === void 0 ? void 0 : filter.isFilterAllowed()\n : true)) !== null && _b !== void 0 ? _b : true;\n }\n getFloatingFilterCompDetails(column, showParentFilter) {\n const parentFilterInstance = (callback) => {\n const filterComponent = this.getFilterComponent(column, 'NO_UI');\n if (filterComponent == null) {\n return;\n }\n filterComponent.then(instance => {\n callback(unwrapUserComp(instance));\n });\n };\n const colDef = column.getColDef();\n const filterParams = Object.assign(Object.assign({}, this.createFilterParams(column, colDef)), { filterChangedCallback: () => parentFilterInstance(filterInstance => this.filterChangedCallbackFactory(filterInstance, column)()) });\n const finalFilterParams = this.userComponentFactory.mergeParamsWithApplicationProvidedParams(colDef, FilterComponent, filterParams);\n let defaultFloatingFilterType = this.userComponentFactory.getDefaultFloatingFilterType(colDef, () => this.getDefaultFloatingFilter(column));\n if (defaultFloatingFilterType == null) {\n defaultFloatingFilterType = 'agReadOnlyFloatingFilter';\n }\n const params = {\n column: column,\n filterParams: finalFilterParams,\n currentParentModel: () => this.getCurrentFloatingFilterParentModel(column),\n parentFilterInstance,\n showParentFilter,\n suppressFilterButton: false // This one might be overridden from the colDef\n };\n return this.userComponentFactory.getFloatingFilterCompDetails(colDef, params, defaultFloatingFilterType);\n }\n getCurrentFloatingFilterParentModel(column) {\n const filterComponent = this.getFilterComponent(column, 'NO_UI', false);\n return filterComponent ? filterComponent.resolveNow(null, filter => filter && filter.getModel()) : null;\n }\n // destroys the filter, so it no longer takes part\n destroyFilter(column, source = 'api') {\n const colId = column.getColId();\n const filterWrapper = this.allColumnFilters.get(colId);\n this.disposeColumnListener(colId);\n delete this.initialFilterModel[colId];\n if (filterWrapper) {\n this.disposeFilterWrapper(filterWrapper, source);\n this.onFilterChanged({\n columns: [column],\n source: 'api',\n });\n }\n }\n disposeColumnListener(colId) {\n const columnListener = this.allColumnListeners.get(colId);\n if (columnListener) {\n this.allColumnListeners.delete(colId);\n columnListener();\n }\n }\n disposeFilterWrapper(filterWrapper, source) {\n filterWrapper.filterPromise.then(filter => {\n this.getContext().destroyBean(filter);\n filterWrapper.column.setFilterActive(false, 'filterDestroyed');\n this.allColumnFilters.delete(filterWrapper.column.getColId());\n const event = {\n type: Events.EVENT_FILTER_DESTROYED,\n source,\n column: filterWrapper.column,\n };\n this.eventService.dispatchEvent(event);\n });\n }\n filterModifiedCallbackFactory(filter, column) {\n return () => {\n const event = {\n type: Events.EVENT_FILTER_MODIFIED,\n column,\n filterInstance: filter,\n };\n this.eventService.dispatchEvent(event);\n };\n }\n filterChangedCallbackFactory(filter, column) {\n return (additionalEventAttributes) => {\n var _a;\n const source = (_a = additionalEventAttributes === null || additionalEventAttributes === void 0 ? void 0 : additionalEventAttributes.source) !== null && _a !== void 0 ? _a : 'api';\n const params = {\n filter,\n additionalEventAttributes,\n columns: [column],\n source,\n };\n this.callOnFilterChangedOutsideRenderCycle(params);\n };\n }\n checkDestroyFilter(colId) {\n const filterWrapper = this.allColumnFilters.get(colId);\n if (!filterWrapper) {\n return;\n }\n const column = filterWrapper.column;\n const { compDetails } = column.isFilterAllowed()\n ? this.createFilterInstance(column)\n : { compDetails: null };\n // Case when filter component changes\n if (this.areFilterCompsDifferent(filterWrapper.compDetails, compDetails)) {\n this.destroyFilter(column, 'paramsUpdated');\n return;\n }\n // Case when filter params changes\n const newFilterParams = column.getColDef().filterParams;\n // When filter wrapper does not have promise to retrieve FilterComp, destroy\n if (!filterWrapper.filterPromise) {\n this.destroyFilter(column, 'paramsUpdated');\n return;\n }\n // Otherwise - Check for refresh method before destruction\n // If refresh() method is implemented - call it and destroy filter if it returns false\n // Otherwise - do nothing ( filter will not be destroyed - we assume new params are compatible with old ones )\n filterWrapper.filterPromise.then(filter => {\n const shouldRefreshFilter = (filter === null || filter === void 0 ? void 0 : filter.refresh) ? filter.refresh(Object.assign(Object.assign(Object.assign({}, this.createFilterParams(column, column.getColDef())), { filterModifiedCallback: this.filterModifiedCallbackFactory(filter, column), filterChangedCallback: this.filterChangedCallbackFactory(filter, column), doesRowPassOtherFilter: node => this.doesRowPassOtherFilters(filter, node) }), newFilterParams)) : true;\n // framework wrapper always implements optional methods, but returns null if no underlying method\n if (shouldRefreshFilter === false) {\n this.destroyFilter(column, 'paramsUpdated');\n }\n });\n }\n setColumnFilterWrapper(column, filterWrapper) {\n const colId = column.getColId();\n this.allColumnFilters.set(colId, filterWrapper);\n this.allColumnListeners.set(colId, this.addManagedListener(column, Column.EVENT_COL_DEF_CHANGED, () => this.checkDestroyFilter(colId)));\n }\n areFilterCompsDifferent(oldCompDetails, newCompDetails) {\n if (!newCompDetails || !oldCompDetails) {\n return true;\n }\n const { componentClass: oldComponentClass } = oldCompDetails;\n const { componentClass: newComponentClass } = newCompDetails;\n const isSameComponentClass = oldComponentClass === newComponentClass ||\n // react hooks returns new wrappers, so check nested render method\n ((oldComponentClass === null || oldComponentClass === void 0 ? void 0 : oldComponentClass.render) && (newComponentClass === null || newComponentClass === void 0 ? void 0 : newComponentClass.render) &&\n oldComponentClass.render === newComponentClass.render);\n return !isSameComponentClass;\n }\n getAdvancedFilterModel() {\n return this.isAdvancedFilterEnabled() ? this.advancedFilterService.getModel() : null;\n }\n setAdvancedFilterModel(expression) {\n if (!this.isAdvancedFilterEnabled()) {\n return;\n }\n if (this.dataTypeService.isPendingInference()) {\n this.advancedFilterModelUpdateQueue.push(expression);\n return;\n }\n this.advancedFilterService.setModel(expression !== null && expression !== void 0 ? expression : null);\n this.onFilterChanged({ source: 'advancedFilter' });\n }\n showAdvancedFilterBuilder(source) {\n if (!this.isAdvancedFilterEnabled()) {\n return;\n }\n this.advancedFilterService.getCtrl().toggleFilterBuilder(source, true);\n }\n updateAdvancedFilterColumns() {\n if (!this.isAdvancedFilterEnabled()) {\n return;\n }\n if (this.advancedFilterService.updateValidity()) {\n this.onFilterChanged({ source: 'advancedFilter' });\n }\n }\n hasFloatingFilters() {\n if (this.isAdvancedFilterEnabled()) {\n return false;\n }\n const gridColumns = this.columnModel.getAllGridColumns();\n return gridColumns.some(col => col.getColDef().floatingFilter);\n }\n getFilterInstance(key, callback) {\n if (this.isAdvancedFilterEnabled()) {\n this.warnAdvancedFilters();\n return undefined;\n }\n const res = this.getFilterInstanceImpl(key, instance => {\n if (!callback) {\n return;\n }\n const unwrapped = unwrapUserComp(instance);\n callback(unwrapped);\n });\n const unwrapped = unwrapUserComp(res);\n return unwrapped;\n }\n getColumnFilterInstance(key) {\n return new Promise(resolve => {\n this.getFilterInstance(key, filter => {\n resolve(filter);\n });\n });\n }\n getFilterInstanceImpl(key, callback) {\n const column = this.columnModel.getPrimaryColumn(key);\n if (!column) {\n return undefined;\n }\n const filterPromise = this.getFilterComponent(column, 'NO_UI');\n const currentValue = filterPromise && filterPromise.resolveNow(null, filterComp => filterComp);\n if (currentValue) {\n setTimeout(callback, 0, currentValue);\n }\n else if (filterPromise) {\n filterPromise.then(comp => {\n callback(comp);\n });\n }\n return currentValue;\n }\n warnAdvancedFilters() {\n warnOnce('Column Filter API methods have been disabled as Advanced Filters are enabled.');\n }\n setupAdvancedFilterHeaderComp(eCompToInsertBefore) {\n var _a;\n (_a = this.advancedFilterService) === null || _a === void 0 ? void 0 : _a.getCtrl().setupHeaderComp(eCompToInsertBefore);\n }\n getHeaderRowCount() {\n return this.isAdvancedFilterHeaderActive() ? 1 : 0;\n }\n getHeaderHeight() {\n return this.isAdvancedFilterHeaderActive() ? this.advancedFilterService.getCtrl().getHeaderHeight() : 0;\n }\n processFilterModelUpdateQueue() {\n this.filterModelUpdateQueue.forEach(({ model, source }) => this.setFilterModel(model, source));\n this.filterModelUpdateQueue = [];\n this.columnFilterModelUpdateQueue.forEach(({ key, model, resolve }) => {\n this.setColumnFilterModel(key, model).then(() => resolve());\n });\n this.columnFilterModelUpdateQueue = [];\n this.advancedFilterModelUpdateQueue.forEach(model => this.setAdvancedFilterModel(model));\n this.advancedFilterModelUpdateQueue = [];\n }\n getColumnFilterModel(key) {\n const filterWrapper = this.getFilterWrapper(key);\n return filterWrapper ? this.getModelFromFilterWrapper(filterWrapper) : null;\n }\n setColumnFilterModel(key, model) {\n if (this.isAdvancedFilterEnabled()) {\n this.warnAdvancedFilters();\n return Promise.resolve();\n }\n if (this.dataTypeService.isPendingInference()) {\n let resolve = () => { };\n const promise = new Promise(res => {\n resolve = res;\n });\n this.columnFilterModelUpdateQueue.push({ key, model, resolve });\n return promise;\n }\n const column = this.columnModel.getPrimaryColumn(key);\n const filterWrapper = column ? this.getOrCreateFilterWrapper(column, 'NO_UI') : null;\n const convertPromise = (promise) => {\n return new Promise(resolve => {\n promise.then(result => resolve(result));\n });\n };\n return filterWrapper ? convertPromise(this.setModelOnFilterWrapper(filterWrapper.filterPromise, model)) : Promise.resolve();\n }\n getFilterWrapper(key) {\n var _a;\n const column = this.columnModel.getPrimaryColumn(key);\n return column ? (_a = this.cachedFilter(column)) !== null && _a !== void 0 ? _a : null : null;\n }\n destroy() {\n super.destroy();\n this.allColumnFilters.forEach(filterWrapper => this.disposeFilterWrapper(filterWrapper, 'gridDestroyed'));\n // don't need to destroy the listeners as they are managed listeners\n this.allColumnListeners.clear();\n }\n};\n__decorate([\n Autowired('valueService')\n], FilterManager.prototype, \"valueService\", void 0);\n__decorate([\n Autowired('columnModel')\n], FilterManager.prototype, \"columnModel\", void 0);\n__decorate([\n Autowired('rowModel')\n], FilterManager.prototype, \"rowModel\", void 0);\n__decorate([\n Autowired('userComponentFactory')\n], FilterManager.prototype, \"userComponentFactory\", void 0);\n__decorate([\n Autowired('rowRenderer')\n], FilterManager.prototype, \"rowRenderer\", void 0);\n__decorate([\n Autowired('dataTypeService')\n], FilterManager.prototype, \"dataTypeService\", void 0);\n__decorate([\n Autowired('quickFilterService')\n], FilterManager.prototype, \"quickFilterService\", void 0);\n__decorate([\n Optional('advancedFilterService')\n], FilterManager.prototype, \"advancedFilterService\", void 0);\n__decorate([\n PostConstruct\n], FilterManager.prototype, \"init\", null);\nFilterManager = __decorate([\n Bean('filterManager')\n], FilterManager);\nexport { FilterManager };\n","import { Component } from \"../../../widgets/component.mjs\";\nexport class AbstractHeaderCellComp extends Component {\n constructor(template, ctrl) {\n super(template);\n this.ctrl = ctrl;\n }\n getCtrl() {\n return this.ctrl;\n }\n}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { PostConstruct, PreDestroy } from '../../../context/context.mjs';\nimport { setDisplayed } from \"../../../utils/dom.mjs\";\nimport { RefSelector } from '../../../widgets/componentAnnotations.mjs';\nimport { AbstractHeaderCellComp } from '../abstractCell/abstractHeaderCellComp.mjs';\nexport class HeaderFilterCellComp extends AbstractHeaderCellComp {\n constructor(ctrl) {\n super(HeaderFilterCellComp.TEMPLATE, ctrl);\n }\n postConstruct() {\n const eGui = this.getGui();\n const compProxy = {\n addOrRemoveCssClass: (cssClassName, on) => this.addOrRemoveCssClass(cssClassName, on),\n addOrRemoveBodyCssClass: (cssClassName, on) => this.eFloatingFilterBody.classList.toggle(cssClassName, on),\n setButtonWrapperDisplayed: (displayed) => setDisplayed(this.eButtonWrapper, displayed),\n setCompDetails: compDetails => this.setCompDetails(compDetails),\n getFloatingFilterComp: () => this.compPromise,\n setWidth: width => eGui.style.width = width,\n setMenuIcon: eIcon => this.eButtonShowMainFilter.appendChild(eIcon)\n };\n this.ctrl.setComp(compProxy, eGui, this.eButtonShowMainFilter, this.eFloatingFilterBody);\n }\n setCompDetails(compDetails) {\n if (!compDetails) {\n this.destroyFloatingFilterComp();\n this.compPromise = null;\n return;\n }\n // because we are providing defaultFloatingFilterType, we know it will never be undefined;\n this.compPromise = compDetails.newAgStackInstance();\n this.compPromise.then(comp => this.afterCompCreated(comp));\n }\n destroyFloatingFilterComp() {\n if (this.floatingFilterComp) {\n this.eFloatingFilterBody.removeChild(this.floatingFilterComp.getGui());\n this.floatingFilterComp = this.destroyBean(this.floatingFilterComp);\n }\n }\n afterCompCreated(comp) {\n if (!comp) {\n return;\n }\n if (!this.isAlive()) {\n this.destroyBean(comp);\n return;\n }\n this.destroyFloatingFilterComp();\n this.floatingFilterComp = comp;\n this.eFloatingFilterBody.appendChild(comp.getGui());\n if (comp.afterGuiAttached) {\n comp.afterGuiAttached();\n }\n }\n}\nHeaderFilterCellComp.TEMPLATE = `
\n
\n
\n \n
\n
`;\n__decorate([\n RefSelector('eFloatingFilterBody')\n], HeaderFilterCellComp.prototype, \"eFloatingFilterBody\", void 0);\n__decorate([\n RefSelector('eButtonWrapper')\n], HeaderFilterCellComp.prototype, \"eButtonWrapper\", void 0);\n__decorate([\n RefSelector('eButtonShowMainFilter')\n], HeaderFilterCellComp.prototype, \"eButtonShowMainFilter\", void 0);\n__decorate([\n PostConstruct\n], HeaderFilterCellComp.prototype, \"postConstruct\", null);\n__decorate([\n PreDestroy\n], HeaderFilterCellComp.prototype, \"destroyFloatingFilterComp\", null);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { PostConstruct } from \"../context/context.mjs\";\nimport { BeanStub } from \"../context/beanStub.mjs\";\nimport { warnOnce } from \"../utils/function.mjs\";\nexport var LayoutCssClasses;\n(function (LayoutCssClasses) {\n LayoutCssClasses[\"AUTO_HEIGHT\"] = \"ag-layout-auto-height\";\n LayoutCssClasses[\"NORMAL\"] = \"ag-layout-normal\";\n LayoutCssClasses[\"PRINT\"] = \"ag-layout-print\";\n})(LayoutCssClasses || (LayoutCssClasses = {}));\nexport class LayoutFeature extends BeanStub {\n constructor(view) {\n super();\n this.view = view;\n }\n postConstruct() {\n this.addManagedPropertyListener('domLayout', this.updateLayoutClasses.bind(this));\n this.updateLayoutClasses();\n }\n updateLayoutClasses() {\n const domLayout = this.getDomLayout();\n const params = {\n autoHeight: domLayout === 'autoHeight',\n normal: domLayout === 'normal',\n print: domLayout === 'print'\n };\n const cssClass = params.autoHeight ? LayoutCssClasses.AUTO_HEIGHT :\n params.print ? LayoutCssClasses.PRINT : LayoutCssClasses.NORMAL;\n this.view.updateLayoutClasses(cssClass, params);\n }\n // returns either 'print', 'autoHeight' or 'normal' (normal is the default)\n getDomLayout() {\n var _a;\n const domLayout = (_a = this.gridOptionsService.get('domLayout')) !== null && _a !== void 0 ? _a : 'normal';\n const validLayouts = ['normal', 'print', 'autoHeight'];\n if (validLayouts.indexOf(domLayout) === -1) {\n warnOnce(`${domLayout} is not valid for DOM Layout, valid values are 'normal', 'autoHeight', 'print'.`);\n return 'normal';\n }\n return domLayout;\n }\n}\n__decorate([\n PostConstruct\n], LayoutFeature.prototype, \"postConstruct\", null);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Autowired, PostConstruct } from \"../context/context.mjs\";\nimport { BeanStub } from \"../context/beanStub.mjs\";\nimport { Events } from \"../eventKeys.mjs\";\nimport { debounce } from \"../utils/function.mjs\";\nimport { isIOSUserAgent } from \"../utils/browser.mjs\";\nimport { getInnerHeight, getScrollLeft, isRtlNegativeScroll, setScrollLeft } from \"../utils/dom.mjs\";\nvar ScrollDirection;\n(function (ScrollDirection) {\n ScrollDirection[ScrollDirection[\"Vertical\"] = 0] = \"Vertical\";\n ScrollDirection[ScrollDirection[\"Horizontal\"] = 1] = \"Horizontal\";\n})(ScrollDirection || (ScrollDirection = {}));\n;\nvar ScrollSource;\n(function (ScrollSource) {\n ScrollSource[ScrollSource[\"Container\"] = 0] = \"Container\";\n ScrollSource[ScrollSource[\"FakeContainer\"] = 1] = \"FakeContainer\";\n})(ScrollSource || (ScrollSource = {}));\n;\nexport class GridBodyScrollFeature extends BeanStub {\n constructor(eBodyViewport) {\n super();\n this.lastScrollSource = [null, null];\n this.scrollLeft = -1;\n this.nextScrollTop = -1;\n this.scrollTop = -1;\n // Used to provide approximate values of scrollTop and offsetHeight\n // without forcing the browser to recalculate styles.\n this.lastOffsetHeight = -1;\n this.lastScrollTop = -1;\n this.eBodyViewport = eBodyViewport;\n this.resetLastHScrollDebounced = debounce(() => this.lastScrollSource[ScrollDirection.Horizontal] = null, 500);\n this.resetLastVScrollDebounced = debounce(() => this.lastScrollSource[ScrollDirection.Vertical] = null, 500);\n }\n postConstruct() {\n this.enableRtl = this.gridOptionsService.get('enableRtl');\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, this.onDisplayedColumnsWidthChanged.bind(this));\n this.ctrlsService.whenReady(p => {\n this.centerRowContainerCtrl = p.centerRowContainerCtrl;\n this.onDisplayedColumnsWidthChanged();\n this.addScrollListener();\n });\n }\n addScrollListener() {\n const fakeHScroll = this.ctrlsService.getFakeHScrollComp();\n const fakeVScroll = this.ctrlsService.getFakeVScrollComp();\n this.addManagedListener(this.centerRowContainerCtrl.getViewportElement(), 'scroll', this.onHScroll.bind(this));\n fakeHScroll.onScrollCallback(this.onFakeHScroll.bind(this));\n const isDebounce = this.gridOptionsService.get('debounceVerticalScrollbar');\n const onVScroll = isDebounce ?\n debounce(this.onVScroll.bind(this), 100) : this.onVScroll.bind(this);\n const onFakeVScroll = isDebounce ?\n debounce(this.onFakeVScroll.bind(this), 100) : this.onFakeVScroll.bind(this);\n this.addManagedListener(this.eBodyViewport, 'scroll', onVScroll);\n fakeVScroll.onScrollCallback(onFakeVScroll);\n }\n onDisplayedColumnsWidthChanged() {\n if (this.enableRtl) {\n // because RTL is all backwards, a change in the width of the row\n // can cause a change in the scroll position, without a scroll event,\n // because the scroll position in RTL is a function that depends on\n // the width. to be convinced of this, take out this line, enable RTL,\n // scroll all the way to the left and then resize a column\n this.horizontallyScrollHeaderCenterAndFloatingCenter();\n }\n }\n horizontallyScrollHeaderCenterAndFloatingCenter(scrollLeft) {\n // when doing RTL, this method gets called once prematurely\n const notYetInitialised = this.centerRowContainerCtrl == null;\n if (notYetInitialised) {\n return;\n }\n if (scrollLeft === undefined) {\n scrollLeft = this.centerRowContainerCtrl.getCenterViewportScrollLeft();\n }\n const offset = this.enableRtl ? scrollLeft : -scrollLeft;\n const topCenterContainer = this.ctrlsService.getTopCenterRowContainerCtrl();\n const stickyTopCenterContainer = this.ctrlsService.getStickyTopCenterRowContainerCtrl();\n const bottomCenterContainer = this.ctrlsService.getBottomCenterRowContainerCtrl();\n const fakeHScroll = this.ctrlsService.getFakeHScrollComp();\n const centerHeaderContainer = this.ctrlsService.getHeaderRowContainerCtrl();\n centerHeaderContainer.setHorizontalScroll(-offset);\n bottomCenterContainer.setContainerTranslateX(offset);\n topCenterContainer.setContainerTranslateX(offset);\n stickyTopCenterContainer.setContainerTranslateX(offset);\n const centerViewport = this.centerRowContainerCtrl.getViewportElement();\n const isCenterViewportLastHorizontal = this.lastScrollSource[ScrollDirection.Horizontal] === ScrollSource.Container;\n scrollLeft = Math.abs(scrollLeft);\n if (isCenterViewportLastHorizontal) {\n fakeHScroll.setScrollPosition(scrollLeft);\n }\n else {\n setScrollLeft(centerViewport, scrollLeft, this.enableRtl);\n }\n }\n isControllingScroll(source, direction) {\n if (this.lastScrollSource[direction] == null) {\n this.lastScrollSource[direction] = source;\n return true;\n }\n return this.lastScrollSource[direction] === source;\n }\n onFakeHScroll() {\n if (!this.isControllingScroll(ScrollSource.FakeContainer, ScrollDirection.Horizontal)) {\n return;\n }\n this.onHScrollCommon(ScrollSource.FakeContainer);\n }\n onHScroll() {\n if (!this.isControllingScroll(ScrollSource.Container, ScrollDirection.Horizontal)) {\n return;\n }\n this.onHScrollCommon(ScrollSource.Container);\n }\n onHScrollCommon(source) {\n const centerContainerViewport = this.centerRowContainerCtrl.getViewportElement();\n const { scrollLeft } = centerContainerViewport;\n if (this.shouldBlockScrollUpdate(ScrollDirection.Horizontal, scrollLeft, true)) {\n return;\n }\n let newScrollLeft;\n if (source === ScrollSource.Container) {\n newScrollLeft = getScrollLeft(centerContainerViewport, this.enableRtl);\n }\n else {\n newScrollLeft = this.ctrlsService.getFakeHScrollComp().getScrollPosition();\n }\n // we do Math.round() rather than Math.floor(), to mirror how scroll values are applied.\n // eg if a scale is applied (ie user has zoomed the browser), then applying scroll=200\n // could result in 199.88, which then floor(199.88) = 199, however round(199.88) = 200.\n // initially Math.floor() was used, however this caused (almost) infinite loop with aligned grids,\n // as the scroll would move 1px at at time bouncing from one grid to the next (eg one grid would cause\n // scroll to 200px, the next to 199px, then the first back to 198px and so on).\n this.doHorizontalScroll(Math.round(newScrollLeft));\n this.resetLastHScrollDebounced();\n }\n onFakeVScroll() {\n if (!this.isControllingScroll(ScrollSource.FakeContainer, ScrollDirection.Vertical)) {\n return;\n }\n this.onVScrollCommon(ScrollSource.FakeContainer);\n }\n onVScroll() {\n if (!this.isControllingScroll(ScrollSource.Container, ScrollDirection.Vertical)) {\n return;\n }\n this.onVScrollCommon(ScrollSource.Container);\n }\n onVScrollCommon(source) {\n let scrollTop;\n if (source === ScrollSource.Container) {\n scrollTop = this.eBodyViewport.scrollTop;\n }\n else {\n scrollTop = this.ctrlsService.getFakeVScrollComp().getScrollPosition();\n }\n if (this.shouldBlockScrollUpdate(ScrollDirection.Vertical, scrollTop, true)) {\n return;\n }\n this.animationFrameService.setScrollTop(scrollTop);\n this.nextScrollTop = scrollTop;\n if (source === ScrollSource.Container) {\n this.ctrlsService.getFakeVScrollComp().setScrollPosition(scrollTop);\n }\n else {\n this.eBodyViewport.scrollTop = scrollTop;\n }\n // the `scrollGridIfNeeded` will recalculate the rows to be rendered by the grid\n // so it should only be called after `eBodyViewport` has been scrolled to the correct\n // position, otherwise the `first` and `last` row could be miscalculated.\n if (this.gridOptionsService.get('suppressAnimationFrame')) {\n this.scrollGridIfNeeded();\n }\n else {\n this.animationFrameService.schedule();\n }\n this.resetLastVScrollDebounced();\n }\n doHorizontalScroll(scrollLeft) {\n const fakeScrollLeft = this.ctrlsService.getFakeHScrollComp().getScrollPosition();\n if (this.scrollLeft === scrollLeft && scrollLeft === fakeScrollLeft) {\n return;\n }\n this.scrollLeft = scrollLeft;\n this.fireScrollEvent(ScrollDirection.Horizontal);\n this.horizontallyScrollHeaderCenterAndFloatingCenter(scrollLeft);\n this.centerRowContainerCtrl.onHorizontalViewportChanged(true);\n }\n fireScrollEvent(direction) {\n const bodyScrollEvent = {\n type: Events.EVENT_BODY_SCROLL,\n direction: direction === ScrollDirection.Horizontal ? 'horizontal' : 'vertical',\n left: this.scrollLeft,\n top: this.scrollTop\n };\n this.eventService.dispatchEvent(bodyScrollEvent);\n window.clearTimeout(this.scrollTimer);\n this.scrollTimer = undefined;\n this.scrollTimer = window.setTimeout(() => {\n const bodyScrollEndEvent = Object.assign(Object.assign({}, bodyScrollEvent), { type: Events.EVENT_BODY_SCROLL_END });\n this.eventService.dispatchEvent(bodyScrollEndEvent);\n }, 100);\n }\n shouldBlockScrollUpdate(direction, scrollTo, touchOnly = false) {\n // touch devices allow elastic scroll - which temporally scrolls the panel outside of the viewport\n // (eg user uses touch to go to the left of the grid, but drags past the left, the rows will actually\n // scroll past the left until the user releases the mouse). when this happens, we want ignore the scroll,\n // as otherwise it was causing the rows and header to flicker.\n // sometimes when scrolling, we got values that extended the maximum scroll allowed. we used to\n // ignore these scrolls. problem is the max scroll position could be skipped (eg the previous scroll event\n // could be 10px before the max position, and then current scroll event could be 20px after the max position).\n // if we just ignored the last event, we would be setting the scroll to 10px before the max position, when in\n // actual fact the user has exceeded the max scroll and thus scroll should be set to the max.\n if (touchOnly && !isIOSUserAgent()) {\n return false;\n }\n if (direction === ScrollDirection.Vertical) {\n return this.shouldBlockVerticalScroll(scrollTo);\n }\n return this.shouldBlockHorizontalScroll(scrollTo);\n }\n shouldBlockVerticalScroll(scrollTo) {\n const clientHeight = getInnerHeight(this.eBodyViewport);\n const { scrollHeight } = this.eBodyViewport;\n if (scrollTo < 0 || (scrollTo + clientHeight > scrollHeight)) {\n return true;\n }\n return false;\n }\n shouldBlockHorizontalScroll(scrollTo) {\n const clientWidth = this.centerRowContainerCtrl.getCenterWidth();\n const { scrollWidth } = this.centerRowContainerCtrl.getViewportElement();\n if (this.enableRtl && isRtlNegativeScroll()) {\n if (scrollTo > 0) {\n return true;\n }\n }\n else if (scrollTo < 0) {\n return true;\n }\n if (Math.abs(scrollTo) + clientWidth > scrollWidth) {\n return true;\n }\n return false;\n }\n redrawRowsAfterScroll() {\n this.fireScrollEvent(ScrollDirection.Vertical);\n }\n // this is to cater for AG-3274, where grid is removed from the dom and then inserted back in again.\n // (which happens with some implementations of tabbing). this can result in horizontal scroll getting\n // reset back to the left, however no scroll event is fired. so we need to get header to also scroll\n // back to the left to be kept in sync.\n // adding and removing the grid from the DOM both resets the scroll position and\n // triggers a resize event, so notify listeners if the scroll position has changed\n checkScrollLeft() {\n if (this.scrollLeft !== this.centerRowContainerCtrl.getCenterViewportScrollLeft()) {\n this.onHScrollCommon(ScrollSource.Container);\n }\n }\n scrollGridIfNeeded() {\n const frameNeeded = this.scrollTop != this.nextScrollTop;\n if (frameNeeded) {\n this.scrollTop = this.nextScrollTop;\n this.redrawRowsAfterScroll();\n }\n return frameNeeded;\n }\n // called by scrollHorizontally method and alignedGridsService\n setHorizontalScrollPosition(hScrollPosition, fromAlignedGridsService = false) {\n const minScrollLeft = 0;\n const maxScrollLeft = this.centerRowContainerCtrl.getViewportElement().scrollWidth - this.centerRowContainerCtrl.getCenterWidth();\n // if this is call is coming from the alignedGridsService, we don't need to validate the\n // scroll, because it has already been validated by the grid firing the scroll event.\n if (!fromAlignedGridsService && this.shouldBlockScrollUpdate(ScrollDirection.Horizontal, hScrollPosition)) {\n if (this.enableRtl && isRtlNegativeScroll()) {\n hScrollPosition = hScrollPosition > 0 ? 0 : maxScrollLeft;\n }\n else {\n hScrollPosition = Math.min(Math.max(hScrollPosition, minScrollLeft), maxScrollLeft);\n }\n }\n setScrollLeft(this.centerRowContainerCtrl.getViewportElement(), Math.abs(hScrollPosition), this.enableRtl);\n // we need to manually do the event handling (rather than wait for the event)\n // for the alignedGridsService, as if we don't, the aligned grid service gets\n // notified async, and then it's 'consuming' flag doesn't get used right, and\n // we can end up with an infinite loop\n this.doHorizontalScroll(hScrollPosition);\n }\n setVerticalScrollPosition(vScrollPosition) {\n this.eBodyViewport.scrollTop = vScrollPosition;\n }\n getVScrollPosition() {\n this.lastScrollTop = this.eBodyViewport.scrollTop;\n this.lastOffsetHeight = this.eBodyViewport.offsetHeight;\n const result = {\n top: this.lastScrollTop,\n bottom: this.lastScrollTop + this.lastOffsetHeight\n };\n return result;\n }\n /** Get an approximate scroll position that returns the last real value read.\n * This is useful for avoiding repeated DOM reads that force the browser to recalculate styles.\n * This can have big performance improvements but may not be 100% accurate so only use if this is acceptable.\n */\n getApproximateVScollPosition() {\n if (this.lastScrollTop >= 0 && this.lastOffsetHeight >= 0) {\n return {\n top: this.scrollTop,\n bottom: this.scrollTop + this.lastOffsetHeight\n };\n }\n return this.getVScrollPosition();\n }\n getHScrollPosition() {\n return this.centerRowContainerCtrl.getHScrollPosition();\n }\n isHorizontalScrollShowing() {\n return this.centerRowContainerCtrl.isHorizontalScrollShowing();\n }\n // called by the headerRootComp and moveColumnController\n scrollHorizontally(pixels) {\n const oldScrollPosition = this.centerRowContainerCtrl.getViewportElement().scrollLeft;\n this.setHorizontalScrollPosition(oldScrollPosition + pixels);\n return this.centerRowContainerCtrl.getViewportElement().scrollLeft - oldScrollPosition;\n }\n // gets called by rowRenderer when new data loaded, as it will want to scroll to the top\n scrollToTop() {\n this.eBodyViewport.scrollTop = 0;\n }\n // Valid values for position are bottom, middle and top\n ensureNodeVisible(comparator, position = null) {\n // look for the node index we want to display\n const rowCount = this.rowModel.getRowCount();\n let indexToSelect = -1;\n // go through all the nodes, find the one we want to show\n for (let i = 0; i < rowCount; i++) {\n const node = this.rowModel.getRow(i);\n if (typeof comparator === 'function') {\n // Have to assert type here, as type could be TData & Function\n const predicate = comparator;\n if (node && predicate(node)) {\n indexToSelect = i;\n break;\n }\n }\n else {\n // check object equality against node and data\n if (comparator === node || comparator === node.data) {\n indexToSelect = i;\n break;\n }\n }\n }\n if (indexToSelect >= 0) {\n this.ensureIndexVisible(indexToSelect, position);\n }\n }\n // Valid values for position are bottom, middle and top\n // position should be {'top','middle','bottom', or undefined/null}.\n // if undefined/null, then the grid will to the minimal amount of scrolling,\n // eg if grid needs to scroll up, it scrolls until row is on top,\n // if grid needs to scroll down, it scrolls until row is on bottom,\n // if row is already in view, grid does not scroll\n ensureIndexVisible(index, position) {\n // if for print or auto height, everything is always visible\n if (this.gridOptionsService.isDomLayout('print')) {\n return;\n }\n const rowCount = this.paginationProxy.getRowCount();\n if (typeof index !== 'number' || index < 0 || index >= rowCount) {\n console.warn('AG Grid: Invalid row index for ensureIndexVisible: ' + index);\n return;\n }\n const isPaging = this.gridOptionsService.get('pagination');\n const paginationPanelEnabled = isPaging && !this.gridOptionsService.get('suppressPaginationPanel');\n this.getFrameworkOverrides().wrapIncoming(() => {\n if (!paginationPanelEnabled) {\n this.paginationProxy.goToPageWithIndex(index);\n }\n const gridBodyCtrl = this.ctrlsService.getGridBodyCtrl();\n const stickyTopHeight = gridBodyCtrl.getStickyTopHeight();\n const rowNode = this.paginationProxy.getRow(index);\n let rowGotShiftedDuringOperation;\n do {\n const startingRowTop = rowNode.rowTop;\n const startingRowHeight = rowNode.rowHeight;\n const paginationOffset = this.paginationProxy.getPixelOffset();\n const rowTopPixel = rowNode.rowTop - paginationOffset;\n const rowBottomPixel = rowTopPixel + rowNode.rowHeight;\n const scrollPosition = this.getVScrollPosition();\n const heightOffset = this.heightScaler.getDivStretchOffset();\n const vScrollTop = scrollPosition.top + heightOffset;\n const vScrollBottom = scrollPosition.bottom + heightOffset;\n const viewportHeight = vScrollBottom - vScrollTop;\n // work out the pixels for top, middle and bottom up front,\n // make the if/else below easier to read\n const pxTop = this.heightScaler.getScrollPositionForPixel(rowTopPixel);\n const pxBottom = this.heightScaler.getScrollPositionForPixel(rowBottomPixel - viewportHeight);\n // make sure if middle, the row is not outside the top of the grid\n const pxMiddle = Math.min((pxTop + pxBottom) / 2, rowTopPixel);\n const rowAboveViewport = (vScrollTop + stickyTopHeight) > rowTopPixel;\n const rowBelowViewport = vScrollBottom < rowBottomPixel;\n let newScrollPosition = null;\n if (position === 'top') {\n newScrollPosition = pxTop;\n }\n else if (position === 'bottom') {\n newScrollPosition = pxBottom;\n }\n else if (position === 'middle') {\n newScrollPosition = pxMiddle;\n }\n else if (rowAboveViewport) {\n // if row is before, scroll up with row at top\n newScrollPosition = pxTop - stickyTopHeight;\n }\n else if (rowBelowViewport) {\n // if row is after, scroll down with row at bottom\n newScrollPosition = pxBottom;\n }\n if (newScrollPosition !== null) {\n this.setVerticalScrollPosition(newScrollPosition);\n this.rowRenderer.redraw({ afterScroll: true });\n }\n // the row can get shifted if during the rendering (during rowRenderer.redraw()),\n // the height of a row changes due to lazy calculation of row heights when using\n // colDef.autoHeight or gridOptions.getRowHeight.\n // if row was shifted, then the position we scrolled to is incorrect.\n rowGotShiftedDuringOperation = (startingRowTop !== rowNode.rowTop)\n || (startingRowHeight !== rowNode.rowHeight);\n } while (rowGotShiftedDuringOperation);\n // so when we return back to user, the cells have rendered\n this.animationFrameService.flushAllFrames();\n });\n }\n ensureColumnVisible(key, position = 'auto') {\n const column = this.columnModel.getGridColumn(key);\n if (!column) {\n return;\n }\n // calling ensureColumnVisible on a pinned column doesn't make sense\n if (column.isPinned()) {\n return;\n }\n // defensive\n if (!this.columnModel.isColumnDisplayed(column)) {\n return;\n }\n const newHorizontalScroll = this.getPositionedHorizontalScroll(column, position);\n this.getFrameworkOverrides().wrapIncoming(() => {\n if (newHorizontalScroll !== null) {\n this.centerRowContainerCtrl.setCenterViewportScrollLeft(newHorizontalScroll);\n }\n // this will happen anyway, as the move will cause a 'scroll' event on the body, however\n // it is possible that the ensureColumnVisible method is called from within AG Grid and\n // the caller will need to have the columns rendered to continue, which will be before\n // the event has been worked on (which is the case for cell navigation).\n this.centerRowContainerCtrl.onHorizontalViewportChanged();\n // so when we return back to user, the cells have rendered\n this.animationFrameService.flushAllFrames();\n });\n }\n setScrollPosition(top, left) {\n this.getFrameworkOverrides().wrapIncoming(() => {\n this.centerRowContainerCtrl.setCenterViewportScrollLeft(left);\n this.setVerticalScrollPosition(top);\n this.rowRenderer.redraw({ afterScroll: true });\n this.animationFrameService.flushAllFrames();\n });\n }\n getPositionedHorizontalScroll(column, position) {\n const { columnBeforeStart, columnAfterEnd } = this.isColumnOutsideViewport(column);\n const viewportTooSmallForColumn = this.centerRowContainerCtrl.getCenterWidth() < column.getActualWidth();\n const viewportWidth = this.centerRowContainerCtrl.getCenterWidth();\n const isRtl = this.enableRtl;\n let alignColToStart = (isRtl ? columnBeforeStart : columnAfterEnd) || viewportTooSmallForColumn;\n let alignColToEnd = isRtl ? columnAfterEnd : columnBeforeStart;\n if (position !== 'auto') {\n alignColToStart = position === 'start';\n alignColToEnd = position === 'end';\n }\n const isMiddle = position === 'middle';\n if (alignColToStart || alignColToEnd || isMiddle) {\n const { colLeft, colMiddle, colRight } = this.getColumnBounds(column);\n if (isMiddle) {\n return colMiddle - viewportWidth / 2;\n }\n if (alignColToStart) {\n return isRtl ? colRight : colLeft;\n }\n return isRtl ? (colLeft - viewportWidth) : (colRight - viewportWidth);\n }\n return null;\n }\n isColumnOutsideViewport(column) {\n const { start: viewportStart, end: viewportEnd } = this.getViewportBounds();\n const { colLeft, colRight } = this.getColumnBounds(column);\n const isRtl = this.enableRtl;\n const columnBeforeStart = isRtl ? (viewportStart > colRight) : (viewportEnd < colRight);\n const columnAfterEnd = isRtl ? (viewportEnd < colLeft) : (viewportStart > colLeft);\n return { columnBeforeStart, columnAfterEnd };\n }\n getColumnBounds(column) {\n const isRtl = this.enableRtl;\n const bodyWidth = this.columnModel.getBodyContainerWidth();\n const colWidth = column.getActualWidth();\n const colLeft = column.getLeft();\n const multiplier = isRtl ? -1 : 1;\n const colLeftPixel = isRtl ? (bodyWidth - colLeft) : colLeft;\n const colRightPixel = colLeftPixel + colWidth * multiplier;\n const colMidPixel = colLeftPixel + colWidth / 2 * multiplier;\n return { colLeft: colLeftPixel, colMiddle: colMidPixel, colRight: colRightPixel };\n }\n getViewportBounds() {\n const viewportWidth = this.centerRowContainerCtrl.getCenterWidth();\n const scrollPosition = this.centerRowContainerCtrl.getCenterViewportScrollLeft();\n const viewportStartPixel = scrollPosition;\n const viewportEndPixel = viewportWidth + scrollPosition;\n return { start: viewportStartPixel, end: viewportEndPixel, width: viewportWidth };\n }\n}\n__decorate([\n Autowired('ctrlsService')\n], GridBodyScrollFeature.prototype, \"ctrlsService\", void 0);\n__decorate([\n Autowired('animationFrameService')\n], GridBodyScrollFeature.prototype, \"animationFrameService\", void 0);\n__decorate([\n Autowired('paginationProxy')\n], GridBodyScrollFeature.prototype, \"paginationProxy\", void 0);\n__decorate([\n Autowired('rowModel')\n], GridBodyScrollFeature.prototype, \"rowModel\", void 0);\n__decorate([\n Autowired('rowContainerHeightService')\n], GridBodyScrollFeature.prototype, \"heightScaler\", void 0);\n__decorate([\n Autowired('rowRenderer')\n], GridBodyScrollFeature.prototype, \"rowRenderer\", void 0);\n__decorate([\n Autowired('columnModel')\n], GridBodyScrollFeature.prototype, \"columnModel\", void 0);\n__decorate([\n PostConstruct\n], GridBodyScrollFeature.prototype, \"postConstruct\", null);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { DragAndDropService, DragSourceType } from \"../dragAndDrop/dragAndDropService.mjs\";\nimport { Autowired, Optional, PostConstruct } from \"../context/context.mjs\";\nimport { Events } from \"../eventKeys.mjs\";\nimport { RowHighlightPosition } from \"../interfaces/iRowNode.mjs\";\nimport { last } from '../utils/array.mjs';\nimport { BeanStub } from \"../context/beanStub.mjs\";\nimport { warnOnce } from \"../utils/function.mjs\";\nimport { AutoScrollService } from \"../autoScrollService.mjs\";\nimport { VerticalDirection } from \"../constants/direction.mjs\";\nexport class RowDragFeature extends BeanStub {\n constructor(eContainer) {\n super();\n this.isMultiRowDrag = false;\n this.eContainer = eContainer;\n }\n postConstruct() {\n if (this.gridOptionsService.isRowModelType('clientSide')) {\n this.clientSideRowModel = this.rowModel;\n }\n this.ctrlsService.whenReady(() => {\n const gridBodyCon = this.ctrlsService.getGridBodyCtrl();\n this.autoScrollService = new AutoScrollService({\n scrollContainer: gridBodyCon.getBodyViewportElement(),\n scrollAxis: 'y',\n getVerticalPosition: () => gridBodyCon.getScrollFeature().getVScrollPosition().top,\n setVerticalPosition: (position) => gridBodyCon.getScrollFeature().setVerticalScrollPosition(position),\n onScrollCallback: () => { this.onDragging(this.lastDraggingEvent); }\n });\n });\n }\n getContainer() {\n return this.eContainer;\n }\n isInterestedIn(type) {\n return type === DragSourceType.RowDrag;\n }\n getIconName() {\n const managedDrag = this.gridOptionsService.get('rowDragManaged');\n if (managedDrag && this.shouldPreventRowMove()) {\n return DragAndDropService.ICON_NOT_ALLOWED;\n }\n return DragAndDropService.ICON_MOVE;\n }\n shouldPreventRowMove() {\n const rowGroupCols = this.columnModel.getRowGroupColumns();\n if (rowGroupCols.length) {\n return true;\n }\n const isFilterPresent = this.filterManager.isAnyFilterPresent();\n if (isFilterPresent) {\n return true;\n }\n const isSortActive = this.sortController.isSortActive();\n if (isSortActive) {\n return true;\n }\n return false;\n }\n getRowNodes(draggingEvent) {\n if (!this.isFromThisGrid(draggingEvent)) {\n return (draggingEvent.dragItem.rowNodes || []);\n }\n const isRowDragMultiRow = this.gridOptionsService.get('rowDragMultiRow');\n const selectedNodes = [...this.selectionService.getSelectedNodes()].sort((a, b) => {\n if (a.rowIndex == null || b.rowIndex == null) {\n return 0;\n }\n return this.getRowIndexNumber(a) - this.getRowIndexNumber(b);\n });\n const currentNode = draggingEvent.dragItem.rowNode;\n if (isRowDragMultiRow && selectedNodes.indexOf(currentNode) !== -1) {\n this.isMultiRowDrag = true;\n return selectedNodes;\n }\n this.isMultiRowDrag = false;\n return [currentNode];\n }\n onDragEnter(draggingEvent) {\n // builds a lits of all rows being dragged before firing events\n draggingEvent.dragItem.rowNodes = this.getRowNodes(draggingEvent);\n // when entering, we fire the enter event, then in onEnterOrDragging,\n // we also fire the move event. so we get both events when entering.\n this.dispatchGridEvent(Events.EVENT_ROW_DRAG_ENTER, draggingEvent);\n this.getRowNodes(draggingEvent).forEach(rowNode => {\n rowNode.setDragging(true);\n });\n this.onEnterOrDragging(draggingEvent);\n }\n onDragging(draggingEvent) {\n this.onEnterOrDragging(draggingEvent);\n }\n isFromThisGrid(draggingEvent) {\n const { dragSourceDomDataKey } = draggingEvent.dragSource;\n return dragSourceDomDataKey === this.gridOptionsService.getDomDataKey();\n }\n isDropZoneWithinThisGrid(draggingEvent) {\n const gridBodyCon = this.ctrlsService.getGridBodyCtrl();\n const gridGui = gridBodyCon.getGui();\n const { dropZoneTarget } = draggingEvent;\n return !gridGui.contains(dropZoneTarget);\n }\n onEnterOrDragging(draggingEvent) {\n // this event is fired for enter and move\n this.dispatchGridEvent(Events.EVENT_ROW_DRAG_MOVE, draggingEvent);\n this.lastDraggingEvent = draggingEvent;\n const pixel = this.mouseEventService.getNormalisedPosition(draggingEvent).y;\n const managedDrag = this.gridOptionsService.get('rowDragManaged');\n if (managedDrag) {\n this.doManagedDrag(draggingEvent, pixel);\n }\n this.autoScrollService.check(draggingEvent.event);\n }\n doManagedDrag(draggingEvent, pixel) {\n const isFromThisGrid = this.isFromThisGrid(draggingEvent);\n const managedDrag = this.gridOptionsService.get('rowDragManaged');\n const rowNodes = draggingEvent.dragItem.rowNodes;\n if (managedDrag && this.shouldPreventRowMove()) {\n return;\n }\n if (this.gridOptionsService.get('suppressMoveWhenRowDragging') || !isFromThisGrid) {\n if (!this.isDropZoneWithinThisGrid(draggingEvent)) {\n this.clientSideRowModel.highlightRowAtPixel(rowNodes[0], pixel);\n }\n }\n else {\n this.moveRows(rowNodes, pixel);\n }\n }\n getRowIndexNumber(rowNode) {\n return parseInt(last(rowNode.getRowIndexString().split('-')), 10);\n }\n moveRowAndClearHighlight(draggingEvent) {\n const lastHighlightedRowNode = this.clientSideRowModel.getLastHighlightedRowNode();\n const isBelow = lastHighlightedRowNode && lastHighlightedRowNode.highlighted === RowHighlightPosition.Below;\n const pixel = this.mouseEventService.getNormalisedPosition(draggingEvent).y;\n const rowNodes = draggingEvent.dragItem.rowNodes;\n let increment = isBelow ? 1 : 0;\n if (this.isFromThisGrid(draggingEvent)) {\n rowNodes.forEach(rowNode => {\n if (rowNode.rowTop < pixel) {\n increment -= 1;\n }\n });\n this.moveRows(rowNodes, pixel, increment);\n }\n else {\n const getRowIdFunc = this.gridOptionsService.getCallback('getRowId');\n let addIndex = this.clientSideRowModel.getRowIndexAtPixel(pixel) + 1;\n if (this.clientSideRowModel.getHighlightPosition(pixel) === RowHighlightPosition.Above) {\n addIndex--;\n }\n this.clientSideRowModel.updateRowData({\n add: rowNodes\n .map(node => node.data)\n .filter(data => !this.clientSideRowModel.getRowNode(getRowIdFunc ? getRowIdFunc({ data, level: 0 }) : data.id)),\n addIndex\n });\n }\n this.clearRowHighlight();\n }\n clearRowHighlight() {\n this.clientSideRowModel.highlightRowAtPixel(null);\n }\n moveRows(rowNodes, pixel, increment = 0) {\n const rowWasMoved = this.clientSideRowModel.ensureRowsAtPixel(rowNodes, pixel, increment);\n if (rowWasMoved) {\n this.focusService.clearFocusedCell();\n if (this.rangeService) {\n this.rangeService.removeAllCellRanges();\n }\n }\n }\n addRowDropZone(params) {\n if (!params.getContainer()) {\n warnOnce('addRowDropZone - A container target needs to be provided');\n return;\n }\n if (this.dragAndDropService.findExternalZone(params)) {\n console.warn('AG Grid: addRowDropZone - target already exists in the list of DropZones. Use `removeRowDropZone` before adding it again.');\n return;\n }\n let processedParams = {\n getContainer: params.getContainer\n };\n if (params.fromGrid) {\n params.fromGrid = undefined;\n processedParams = params;\n }\n else {\n if (params.onDragEnter) {\n processedParams.onDragEnter = (e) => {\n params.onDragEnter(this.draggingToRowDragEvent(Events.EVENT_ROW_DRAG_ENTER, e));\n };\n }\n if (params.onDragLeave) {\n processedParams.onDragLeave = (e) => {\n params.onDragLeave(this.draggingToRowDragEvent(Events.EVENT_ROW_DRAG_LEAVE, e));\n };\n }\n if (params.onDragging) {\n processedParams.onDragging = (e) => {\n params.onDragging(this.draggingToRowDragEvent(Events.EVENT_ROW_DRAG_MOVE, e));\n };\n }\n if (params.onDragStop) {\n processedParams.onDragStop = (e) => {\n params.onDragStop(this.draggingToRowDragEvent(Events.EVENT_ROW_DRAG_END, e));\n };\n }\n }\n this.dragAndDropService.addDropTarget(Object.assign({ isInterestedIn: (type) => type === DragSourceType.RowDrag, getIconName: () => DragAndDropService.ICON_MOVE, external: true }, processedParams));\n }\n getRowDropZone(events) {\n const getContainer = this.getContainer.bind(this);\n const onDragEnter = this.onDragEnter.bind(this);\n const onDragLeave = this.onDragLeave.bind(this);\n const onDragging = this.onDragging.bind(this);\n const onDragStop = this.onDragStop.bind(this);\n if (!events) {\n return { getContainer, onDragEnter, onDragLeave, onDragging, onDragStop, /* @private */ fromGrid: true };\n }\n return {\n getContainer,\n onDragEnter: events.onDragEnter\n ? ((e) => {\n onDragEnter(e);\n events.onDragEnter(this.draggingToRowDragEvent(Events.EVENT_ROW_DRAG_ENTER, e));\n })\n : onDragEnter,\n onDragLeave: events.onDragLeave\n ? ((e) => {\n onDragLeave(e);\n events.onDragLeave(this.draggingToRowDragEvent(Events.EVENT_ROW_DRAG_LEAVE, e));\n })\n : onDragLeave,\n onDragging: events.onDragging\n ? ((e) => {\n onDragging(e);\n events.onDragging(this.draggingToRowDragEvent(Events.EVENT_ROW_DRAG_MOVE, e));\n })\n : onDragging,\n onDragStop: events.onDragStop\n ? ((e) => {\n onDragStop(e);\n events.onDragStop(this.draggingToRowDragEvent(Events.EVENT_ROW_DRAG_END, e));\n })\n : onDragStop,\n fromGrid: true /* @private */\n };\n }\n draggingToRowDragEvent(type, draggingEvent) {\n const yNormalised = this.mouseEventService.getNormalisedPosition(draggingEvent).y;\n const mouseIsPastLastRow = yNormalised > this.paginationProxy.getCurrentPageHeight();\n let overIndex = -1;\n let overNode;\n if (!mouseIsPastLastRow) {\n overIndex = this.rowModel.getRowIndexAtPixel(yNormalised);\n overNode = this.rowModel.getRow(overIndex);\n }\n let vDirectionString;\n switch (draggingEvent.vDirection) {\n case VerticalDirection.Down:\n vDirectionString = 'down';\n break;\n case VerticalDirection.Up:\n vDirectionString = 'up';\n break;\n default:\n vDirectionString = null;\n break;\n }\n const event = this.gridOptionsService.addGridCommonParams({\n type: type,\n event: draggingEvent.event,\n node: draggingEvent.dragItem.rowNode,\n nodes: draggingEvent.dragItem.rowNodes,\n overIndex: overIndex,\n overNode: overNode,\n y: yNormalised,\n vDirection: vDirectionString\n });\n return event;\n }\n dispatchGridEvent(type, draggingEvent) {\n const event = this.draggingToRowDragEvent(type, draggingEvent);\n this.eventService.dispatchEvent(event);\n }\n onDragLeave(draggingEvent) {\n this.dispatchGridEvent(Events.EVENT_ROW_DRAG_LEAVE, draggingEvent);\n this.stopDragging(draggingEvent);\n if (this.gridOptionsService.get('rowDragManaged')) {\n this.clearRowHighlight();\n }\n if (this.isFromThisGrid(draggingEvent)) {\n this.isMultiRowDrag = false;\n }\n }\n onDragStop(draggingEvent) {\n this.dispatchGridEvent(Events.EVENT_ROW_DRAG_END, draggingEvent);\n this.stopDragging(draggingEvent);\n if (this.gridOptionsService.get('rowDragManaged') &&\n (this.gridOptionsService.get('suppressMoveWhenRowDragging') || !this.isFromThisGrid(draggingEvent)) &&\n !this.isDropZoneWithinThisGrid(draggingEvent)) {\n this.moveRowAndClearHighlight(draggingEvent);\n }\n }\n stopDragging(draggingEvent) {\n this.autoScrollService.ensureCleared();\n this.getRowNodes(draggingEvent).forEach(rowNode => {\n rowNode.setDragging(false);\n });\n }\n}\n__decorate([\n Autowired('dragAndDropService')\n], RowDragFeature.prototype, \"dragAndDropService\", void 0);\n__decorate([\n Autowired('rowModel')\n], RowDragFeature.prototype, \"rowModel\", void 0);\n__decorate([\n Autowired('paginationProxy')\n], RowDragFeature.prototype, \"paginationProxy\", void 0);\n__decorate([\n Autowired('columnModel')\n], RowDragFeature.prototype, \"columnModel\", void 0);\n__decorate([\n Autowired('focusService')\n], RowDragFeature.prototype, \"focusService\", void 0);\n__decorate([\n Autowired('sortController')\n], RowDragFeature.prototype, \"sortController\", void 0);\n__decorate([\n Autowired('filterManager')\n], RowDragFeature.prototype, \"filterManager\", void 0);\n__decorate([\n Autowired('selectionService')\n], RowDragFeature.prototype, \"selectionService\", void 0);\n__decorate([\n Autowired('mouseEventService')\n], RowDragFeature.prototype, \"mouseEventService\", void 0);\n__decorate([\n Autowired('ctrlsService')\n], RowDragFeature.prototype, \"ctrlsService\", void 0);\n__decorate([\n Optional('rangeService')\n], RowDragFeature.prototype, \"rangeService\", void 0);\n__decorate([\n PostConstruct\n], RowDragFeature.prototype, \"postConstruct\", null);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { BeanStub } from \"../context/beanStub.mjs\";\nimport { Autowired } from \"../context/context.mjs\";\nimport { LayoutFeature } from \"../styling/layoutFeature.mjs\";\nimport { Events } from \"../eventKeys.mjs\";\nimport { GridBodyScrollFeature } from \"./gridBodyScrollFeature.mjs\";\nimport { getInnerWidth, isElementChildOfClass, isVerticalScrollShowing } from \"../utils/dom.mjs\";\nimport { RowDragFeature } from \"./rowDragFeature.mjs\";\nimport { getTabIndex, isInvisibleScrollbar, isIOSUserAgent } from \"../utils/browser.mjs\";\nimport { TouchListener } from \"../widgets/touchListener.mjs\";\nexport var RowAnimationCssClasses;\n(function (RowAnimationCssClasses) {\n RowAnimationCssClasses[\"ANIMATION_ON\"] = \"ag-row-animation\";\n RowAnimationCssClasses[\"ANIMATION_OFF\"] = \"ag-row-no-animation\";\n})(RowAnimationCssClasses || (RowAnimationCssClasses = {}));\nexport const CSS_CLASS_FORCE_VERTICAL_SCROLL = 'ag-force-vertical-scroll';\nconst CSS_CLASS_CELL_SELECTABLE = 'ag-selectable';\nconst CSS_CLASS_COLUMN_MOVING = 'ag-column-moving';\nexport class GridBodyCtrl extends BeanStub {\n constructor() {\n super(...arguments);\n this.stickyTopHeight = 0;\n }\n getScrollFeature() {\n return this.bodyScrollFeature;\n }\n getBodyViewportElement() {\n return this.eBodyViewport;\n }\n setComp(comp, eGridBody, eBodyViewport, eTop, eBottom, eStickyTop) {\n this.comp = comp;\n this.eGridBody = eGridBody;\n this.eBodyViewport = eBodyViewport;\n this.eTop = eTop;\n this.eBottom = eBottom;\n this.eStickyTop = eStickyTop;\n this.setCellTextSelection(this.gridOptionsService.get('enableCellTextSelection'));\n this.addManagedPropertyListener('enableCellTextSelection', (props) => this.setCellTextSelection(props.currentValue));\n this.createManagedBean(new LayoutFeature(this.comp));\n this.bodyScrollFeature = this.createManagedBean(new GridBodyScrollFeature(this.eBodyViewport));\n this.addRowDragListener();\n this.setupRowAnimationCssClass();\n this.addEventListeners();\n this.addFocusListeners([eTop, eBodyViewport, eBottom, eStickyTop]);\n this.onGridColumnsChanged();\n this.addBodyViewportListener();\n this.setFloatingHeights();\n this.disableBrowserDragging();\n this.addStopEditingWhenGridLosesFocus();\n this.filterManager.setupAdvancedFilterHeaderComp(eTop);\n this.ctrlsService.registerGridBodyCtrl(this);\n }\n getComp() {\n return this.comp;\n }\n addEventListeners() {\n this.addManagedListener(this.eventService, Events.EVENT_GRID_COLUMNS_CHANGED, this.onGridColumnsChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_SCROLL_VISIBILITY_CHANGED, this.onScrollVisibilityChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_PINNED_ROW_DATA_CHANGED, this.onPinnedRowDataChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_HEADER_HEIGHT_CHANGED, this.onHeaderHeightChanged.bind(this));\n }\n addFocusListeners(elements) {\n elements.forEach(element => {\n this.addManagedListener(element, 'focusin', (e) => {\n const { target } = e;\n // element being focused is nested?\n const isFocusedElementNested = isElementChildOfClass(target, 'ag-root', element);\n element.classList.toggle('ag-has-focus', !isFocusedElementNested);\n });\n this.addManagedListener(element, 'focusout', (e) => {\n const { target, relatedTarget } = e;\n const gridContainRelatedTarget = element.contains(relatedTarget);\n const isNestedRelatedTarget = isElementChildOfClass(relatedTarget, 'ag-root', element);\n const isNestedTarget = isElementChildOfClass(target, 'ag-root', element);\n // element losing focus belongs to a nested grid,\n // it should not be handled here.\n if (isNestedTarget) {\n return;\n }\n // the grid does not contain, or the focus element is within\n // a nested grid\n if (!gridContainRelatedTarget || isNestedRelatedTarget) {\n element.classList.remove('ag-has-focus');\n }\n });\n });\n }\n // used by ColumnAnimationService\n setColumnMovingCss(moving) {\n this.comp.setColumnMovingCss(CSS_CLASS_COLUMN_MOVING, moving);\n }\n setCellTextSelection(selectable = false) {\n this.comp.setCellSelectableCss(CSS_CLASS_CELL_SELECTABLE, selectable);\n }\n onScrollVisibilityChanged() {\n const visible = this.scrollVisibleService.isVerticalScrollShowing();\n this.setVerticalScrollPaddingVisible(visible);\n this.setStickyTopWidth(visible);\n const scrollbarWidth = visible ? (this.gridOptionsService.getScrollbarWidth() || 0) : 0;\n const pad = isInvisibleScrollbar() ? 16 : 0;\n const width = `calc(100% + ${scrollbarWidth + pad}px)`;\n this.animationFrameService.requestAnimationFrame(() => this.comp.setBodyViewportWidth(width));\n }\n onGridColumnsChanged() {\n const columns = this.columnModel.getAllGridColumns();\n this.comp.setColumnCount(columns.length);\n }\n // if we do not do this, then the user can select a pic in the grid (eg an image in a custom cell renderer)\n // and then that will start the browser native drag n' drop, which messes up with our own drag and drop.\n disableBrowserDragging() {\n this.addManagedListener(this.eGridBody, 'dragstart', (event) => {\n if (event.target instanceof HTMLImageElement) {\n event.preventDefault();\n return false;\n }\n });\n }\n addStopEditingWhenGridLosesFocus() {\n if (!this.gridOptionsService.get('stopEditingWhenCellsLoseFocus')) {\n return;\n }\n const focusOutListener = (event) => {\n // this is the element the focus is moving to\n const elementWithFocus = event.relatedTarget;\n if (getTabIndex(elementWithFocus) === null) {\n this.rowRenderer.stopEditing();\n return;\n }\n let clickInsideGrid = \n // see if click came from inside the viewports\n viewports.some(viewport => viewport.contains(elementWithFocus))\n // and also that it's not from a detail grid\n && this.mouseEventService.isElementInThisGrid(elementWithFocus);\n if (!clickInsideGrid) {\n const popupService = this.popupService;\n clickInsideGrid =\n popupService.getActivePopups().some(popup => popup.contains(elementWithFocus)) ||\n popupService.isElementWithinCustomPopup(elementWithFocus);\n }\n if (!clickInsideGrid) {\n this.rowRenderer.stopEditing();\n }\n };\n const viewports = [this.eBodyViewport, this.eBottom, this.eTop, this.eStickyTop];\n viewports.forEach(viewport => this.addManagedListener(viewport, 'focusout', focusOutListener));\n }\n updateRowCount() {\n const headerCount = this.headerNavigationService.getHeaderRowCount() + this.filterManager.getHeaderRowCount();\n const rowCount = this.rowModel.isLastRowIndexKnown() ? this.rowModel.getRowCount() : -1;\n const total = rowCount === -1 ? -1 : (headerCount + rowCount);\n this.comp.setRowCount(total);\n }\n registerBodyViewportResizeListener(listener) {\n this.comp.registerBodyViewportResizeListener(listener);\n }\n setVerticalScrollPaddingVisible(visible) {\n const overflowY = visible ? 'scroll' : 'hidden';\n this.comp.setPinnedTopBottomOverflowY(overflowY);\n }\n isVerticalScrollShowing() {\n const show = this.gridOptionsService.get('alwaysShowVerticalScroll');\n const cssClass = show ? CSS_CLASS_FORCE_VERTICAL_SCROLL : null;\n const allowVerticalScroll = this.gridOptionsService.isDomLayout('normal');\n this.comp.setAlwaysVerticalScrollClass(cssClass, show);\n return show || (allowVerticalScroll && isVerticalScrollShowing(this.eBodyViewport));\n }\n setupRowAnimationCssClass() {\n const listener = () => {\n // we don't want to use row animation if scaling, as rows jump strangely as you scroll,\n // when scaling and doing row animation.\n const animateRows = this.gridOptionsService.isAnimateRows() && !this.rowContainerHeightService.isStretching();\n const animateRowsCssClass = animateRows ? RowAnimationCssClasses.ANIMATION_ON : RowAnimationCssClasses.ANIMATION_OFF;\n this.comp.setRowAnimationCssOnBodyViewport(animateRowsCssClass, animateRows);\n };\n listener();\n this.addManagedListener(this.eventService, Events.EVENT_HEIGHT_SCALE_CHANGED, listener);\n this.addManagedPropertyListener('animateRows', listener);\n }\n getGridBodyElement() {\n return this.eGridBody;\n }\n addBodyViewportListener() {\n // we want to listen for clicks directly on the eBodyViewport, so the user has a way of showing\n // the context menu if no rows or columns are displayed, or user simply clicks outside of a cell\n const listener = this.onBodyViewportContextMenu.bind(this);\n this.addManagedListener(this.eBodyViewport, 'contextmenu', listener);\n this.mockContextMenuForIPad(listener);\n this.addManagedListener(this.eBodyViewport, 'wheel', this.onBodyViewportWheel.bind(this));\n this.addManagedListener(this.eStickyTop, 'wheel', this.onStickyTopWheel.bind(this));\n // allow mouseWheel on the Full Width Container to Scroll the Viewport\n this.addFullWidthContainerWheelListener();\n }\n addFullWidthContainerWheelListener() {\n const fullWidthContainer = this.eBodyViewport.querySelector('.ag-full-width-container');\n const eCenterColsViewport = this.eBodyViewport.querySelector('.ag-center-cols-viewport');\n if (fullWidthContainer && eCenterColsViewport) {\n this.addManagedListener(fullWidthContainer, 'wheel', (e) => this.onFullWidthContainerWheel(e, eCenterColsViewport));\n }\n }\n onFullWidthContainerWheel(e, eCenterColsViewport) {\n if (!e.deltaX ||\n Math.abs(e.deltaY) > Math.abs(e.deltaX) ||\n !this.mouseEventService.isEventFromThisGrid(e)) {\n return;\n }\n e.preventDefault();\n eCenterColsViewport.scrollBy({ left: e.deltaX });\n }\n onBodyViewportContextMenu(mouseEvent, touch, touchEvent) {\n if (!mouseEvent && !touchEvent) {\n return;\n }\n if (this.gridOptionsService.get('preventDefaultOnContextMenu')) {\n const event = (mouseEvent || touchEvent);\n event.preventDefault();\n }\n const { target } = (mouseEvent || touch);\n if (target === this.eBodyViewport || target === this.ctrlsService.getCenterRowContainerCtrl().getViewportElement()) {\n // show it\n this.menuService.showContextMenu({ mouseEvent, touchEvent, value: null, anchorToElement: this.eGridBody });\n }\n }\n mockContextMenuForIPad(listener) {\n // we do NOT want this when not in iPad\n if (!isIOSUserAgent()) {\n return;\n }\n const touchListener = new TouchListener(this.eBodyViewport);\n const longTapListener = (event) => {\n listener(undefined, event.touchStart, event.touchEvent);\n };\n this.addManagedListener(touchListener, TouchListener.EVENT_LONG_TAP, longTapListener);\n this.addDestroyFunc(() => touchListener.destroy());\n }\n onBodyViewportWheel(e) {\n if (!this.gridOptionsService.get('suppressScrollWhenPopupsAreOpen')) {\n return;\n }\n if (this.popupService.hasAnchoredPopup()) {\n e.preventDefault();\n }\n }\n onStickyTopWheel(e) {\n e.preventDefault();\n if (e.offsetY) {\n this.scrollVertically(e.deltaY);\n }\n }\n getGui() {\n return this.eGridBody;\n }\n // called by rowDragFeature\n scrollVertically(pixels) {\n const oldScrollPosition = this.eBodyViewport.scrollTop;\n this.bodyScrollFeature.setVerticalScrollPosition(oldScrollPosition + pixels);\n return this.eBodyViewport.scrollTop - oldScrollPosition;\n }\n addRowDragListener() {\n this.rowDragFeature = this.createManagedBean(new RowDragFeature(this.eBodyViewport));\n this.dragAndDropService.addDropTarget(this.rowDragFeature);\n }\n getRowDragFeature() {\n return this.rowDragFeature;\n }\n onPinnedRowDataChanged() {\n this.setFloatingHeights();\n }\n setFloatingHeights() {\n const { pinnedRowModel } = this;\n let floatingTopHeight = pinnedRowModel.getPinnedTopTotalHeight();\n let floatingBottomHeight = pinnedRowModel.getPinnedBottomTotalHeight();\n this.comp.setTopHeight(floatingTopHeight);\n this.comp.setBottomHeight(floatingBottomHeight);\n this.comp.setTopDisplay(floatingTopHeight ? 'inherit' : 'none');\n this.comp.setBottomDisplay(floatingBottomHeight ? 'inherit' : 'none');\n this.setStickyTopOffsetTop();\n }\n setStickyTopHeight(height = 0) {\n // console.log('setting sticky top height ' + height);\n this.comp.setStickyTopHeight(`${height}px`);\n this.stickyTopHeight = height;\n }\n getStickyTopHeight() {\n return this.stickyTopHeight;\n }\n setStickyTopWidth(vScrollVisible) {\n if (!vScrollVisible) {\n this.comp.setStickyTopWidth('100%');\n }\n else {\n const scrollbarWidth = this.gridOptionsService.getScrollbarWidth();\n this.comp.setStickyTopWidth(`calc(100% - ${scrollbarWidth}px)`);\n }\n }\n onHeaderHeightChanged() {\n this.setStickyTopOffsetTop();\n }\n setStickyTopOffsetTop() {\n const headerCtrl = this.ctrlsService.getGridHeaderCtrl();\n const headerHeight = headerCtrl.getHeaderHeight() + this.filterManager.getHeaderHeight();\n const pinnedTopHeight = this.pinnedRowModel.getPinnedTopTotalHeight();\n let height = 0;\n if (headerHeight > 0) {\n height += headerHeight + 1;\n }\n if (pinnedTopHeight > 0) {\n height += pinnedTopHeight + 1;\n }\n this.comp.setStickyTopTop(`${height}px`);\n }\n // method will call itself if no available width. this covers if the grid\n // isn't visible, but is just about to be visible.\n sizeColumnsToFit(params, nextTimeout) {\n const removeScrollWidth = this.isVerticalScrollShowing();\n const scrollWidthToRemove = removeScrollWidth ? this.gridOptionsService.getScrollbarWidth() : 0;\n // bodyViewportWidth should be calculated from eGridBody, not eBodyViewport\n // because we change the width of the bodyViewport to hide the real browser scrollbar\n const bodyViewportWidth = getInnerWidth(this.eGridBody);\n const availableWidth = bodyViewportWidth - scrollWidthToRemove;\n if (availableWidth > 0) {\n this.columnModel.sizeColumnsToFit(availableWidth, \"sizeColumnsToFit\", false, params);\n return;\n }\n if (nextTimeout === undefined) {\n window.setTimeout(() => {\n this.sizeColumnsToFit(params, 100);\n }, 0);\n }\n else if (nextTimeout === 100) {\n window.setTimeout(() => {\n this.sizeColumnsToFit(params, 500);\n }, 100);\n }\n else if (nextTimeout === 500) {\n window.setTimeout(() => {\n this.sizeColumnsToFit(params, -1);\n }, 500);\n }\n else {\n console.warn('AG Grid: tried to call sizeColumnsToFit() but the grid is coming back with ' +\n 'zero width, maybe the grid is not visible yet on the screen?');\n }\n }\n // + rangeService\n addScrollEventListener(listener) {\n this.eBodyViewport.addEventListener('scroll', listener, { passive: true });\n }\n // + focusService\n removeScrollEventListener(listener) {\n this.eBodyViewport.removeEventListener('scroll', listener);\n }\n}\n__decorate([\n Autowired('animationFrameService')\n], GridBodyCtrl.prototype, \"animationFrameService\", void 0);\n__decorate([\n Autowired('rowContainerHeightService')\n], GridBodyCtrl.prototype, \"rowContainerHeightService\", void 0);\n__decorate([\n Autowired('ctrlsService')\n], GridBodyCtrl.prototype, \"ctrlsService\", void 0);\n__decorate([\n Autowired('columnModel')\n], GridBodyCtrl.prototype, \"columnModel\", void 0);\n__decorate([\n Autowired('scrollVisibleService')\n], GridBodyCtrl.prototype, \"scrollVisibleService\", void 0);\n__decorate([\n Autowired('menuService')\n], GridBodyCtrl.prototype, \"menuService\", void 0);\n__decorate([\n Autowired('headerNavigationService')\n], GridBodyCtrl.prototype, \"headerNavigationService\", void 0);\n__decorate([\n Autowired('dragAndDropService')\n], GridBodyCtrl.prototype, \"dragAndDropService\", void 0);\n__decorate([\n Autowired('pinnedRowModel')\n], GridBodyCtrl.prototype, \"pinnedRowModel\", void 0);\n__decorate([\n Autowired('rowRenderer')\n], GridBodyCtrl.prototype, \"rowRenderer\", void 0);\n__decorate([\n Autowired('popupService')\n], GridBodyCtrl.prototype, \"popupService\", void 0);\n__decorate([\n Autowired('mouseEventService')\n], GridBodyCtrl.prototype, \"mouseEventService\", void 0);\n__decorate([\n Autowired('rowModel')\n], GridBodyCtrl.prototype, \"rowModel\", void 0);\n__decorate([\n Autowired('filterManager')\n], GridBodyCtrl.prototype, \"filterManager\", void 0);\n","export var SelectionHandleType;\n(function (SelectionHandleType) {\n SelectionHandleType[SelectionHandleType[\"FILL\"] = 0] = \"FILL\";\n SelectionHandleType[SelectionHandleType[\"RANGE\"] = 1] = \"RANGE\";\n})(SelectionHandleType || (SelectionHandleType = {}));\nexport var CellRangeType;\n(function (CellRangeType) {\n CellRangeType[CellRangeType[\"VALUE\"] = 0] = \"VALUE\";\n CellRangeType[CellRangeType[\"DIMENSION\"] = 1] = \"DIMENSION\";\n})(CellRangeType || (CellRangeType = {}));\n","import { includes, last } from \"../../utils/array.mjs\";\nimport { CellRangeType, SelectionHandleType } from \"../../interfaces/IRangeService.mjs\";\nimport { missing } from \"../../utils/generic.mjs\";\nimport { setAriaSelected } from \"../../utils/aria.mjs\";\nconst CSS_CELL_RANGE_SELECTED = 'ag-cell-range-selected';\nconst CSS_CELL_RANGE_CHART = 'ag-cell-range-chart';\nconst CSS_CELL_RANGE_SINGLE_CELL = 'ag-cell-range-single-cell';\nconst CSS_CELL_RANGE_CHART_CATEGORY = 'ag-cell-range-chart-category';\nconst CSS_CELL_RANGE_HANDLE = 'ag-cell-range-handle';\nconst CSS_CELL_RANGE_TOP = 'ag-cell-range-top';\nconst CSS_CELL_RANGE_RIGHT = 'ag-cell-range-right';\nconst CSS_CELL_RANGE_BOTTOM = 'ag-cell-range-bottom';\nconst CSS_CELL_RANGE_LEFT = 'ag-cell-range-left';\nexport class CellRangeFeature {\n constructor(beans, ctrl) {\n this.beans = beans;\n this.cellCtrl = ctrl;\n }\n setComp(cellComp, eGui) {\n this.cellComp = cellComp;\n this.eGui = eGui;\n this.onRangeSelectionChanged();\n }\n onRangeSelectionChanged() {\n // when using reactUi, given UI is async, it's possible this method is called before the comp is registered\n if (!this.cellComp) {\n return;\n }\n this.rangeCount = this.beans.rangeService.getCellRangeCount(this.cellCtrl.getCellPosition());\n this.hasChartRange = this.getHasChartRange();\n this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_SELECTED, this.rangeCount !== 0);\n this.cellComp.addOrRemoveCssClass(`${CSS_CELL_RANGE_SELECTED}-1`, this.rangeCount === 1);\n this.cellComp.addOrRemoveCssClass(`${CSS_CELL_RANGE_SELECTED}-2`, this.rangeCount === 2);\n this.cellComp.addOrRemoveCssClass(`${CSS_CELL_RANGE_SELECTED}-3`, this.rangeCount === 3);\n this.cellComp.addOrRemoveCssClass(`${CSS_CELL_RANGE_SELECTED}-4`, this.rangeCount >= 4);\n this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_CHART, this.hasChartRange);\n setAriaSelected(this.eGui, this.rangeCount > 0 ? true : undefined);\n this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_SINGLE_CELL, this.isSingleCell());\n this.updateRangeBorders();\n this.refreshHandle();\n }\n updateRangeBorders() {\n const rangeBorders = this.getRangeBorders();\n const isSingleCell = this.isSingleCell();\n const isTop = !isSingleCell && rangeBorders.top;\n const isRight = !isSingleCell && rangeBorders.right;\n const isBottom = !isSingleCell && rangeBorders.bottom;\n const isLeft = !isSingleCell && rangeBorders.left;\n this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_TOP, isTop);\n this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_RIGHT, isRight);\n this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_BOTTOM, isBottom);\n this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_LEFT, isLeft);\n }\n isSingleCell() {\n const { rangeService } = this.beans;\n return this.rangeCount === 1 && rangeService && !rangeService.isMoreThanOneCell();\n }\n getHasChartRange() {\n const { rangeService } = this.beans;\n if (!this.rangeCount || !rangeService) {\n return false;\n }\n const cellRanges = rangeService.getCellRanges();\n return cellRanges.length > 0 && cellRanges.every(range => includes([CellRangeType.DIMENSION, CellRangeType.VALUE], range.type));\n }\n updateRangeBordersIfRangeCount() {\n // we only need to update range borders if we are in a range\n if (this.rangeCount > 0) {\n this.updateRangeBorders();\n this.refreshHandle();\n }\n }\n getRangeBorders() {\n const isRtl = this.beans.gridOptionsService.get('enableRtl');\n let top = false;\n let right = false;\n let bottom = false;\n let left = false;\n const thisCol = this.cellCtrl.getCellPosition().column;\n const { rangeService, columnModel } = this.beans;\n let leftCol;\n let rightCol;\n if (isRtl) {\n leftCol = columnModel.getDisplayedColAfter(thisCol);\n rightCol = columnModel.getDisplayedColBefore(thisCol);\n }\n else {\n leftCol = columnModel.getDisplayedColBefore(thisCol);\n rightCol = columnModel.getDisplayedColAfter(thisCol);\n }\n const ranges = rangeService.getCellRanges().filter(range => rangeService.isCellInSpecificRange(this.cellCtrl.getCellPosition(), range));\n // this means we are the first column in the grid\n if (!leftCol) {\n left = true;\n }\n // this means we are the last column in the grid\n if (!rightCol) {\n right = true;\n }\n for (let i = 0; i < ranges.length; i++) {\n if (top && right && bottom && left) {\n break;\n }\n const range = ranges[i];\n const startRow = rangeService.getRangeStartRow(range);\n const endRow = rangeService.getRangeEndRow(range);\n if (!top && this.beans.rowPositionUtils.sameRow(startRow, this.cellCtrl.getCellPosition())) {\n top = true;\n }\n if (!bottom && this.beans.rowPositionUtils.sameRow(endRow, this.cellCtrl.getCellPosition())) {\n bottom = true;\n }\n if (!left && leftCol && range.columns.indexOf(leftCol) < 0) {\n left = true;\n }\n if (!right && rightCol && range.columns.indexOf(rightCol) < 0) {\n right = true;\n }\n }\n return { top, right, bottom, left };\n }\n refreshHandle() {\n if (!this.beans.rangeService || this.beans.context.isDestroyed()) {\n return;\n }\n const shouldHaveSelectionHandle = this.shouldHaveSelectionHandle();\n if (this.selectionHandle && !shouldHaveSelectionHandle) {\n this.selectionHandle = this.beans.context.destroyBean(this.selectionHandle);\n }\n if (shouldHaveSelectionHandle) {\n this.addSelectionHandle();\n }\n this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_HANDLE, !!this.selectionHandle);\n }\n shouldHaveSelectionHandle() {\n const { gridOptionsService, rangeService } = this.beans;\n const cellRanges = rangeService.getCellRanges();\n const rangesLen = cellRanges.length;\n if (this.rangeCount < 1 || rangesLen < 1) {\n return false;\n }\n const cellRange = last(cellRanges);\n const cellPosition = this.cellCtrl.getCellPosition();\n const isFillHandleAvailable = gridOptionsService.get('enableFillHandle') && !this.cellCtrl.isSuppressFillHandle();\n const isRangeHandleAvailable = gridOptionsService.get('enableRangeHandle');\n let handleIsAvailable = rangesLen === 1 && !this.cellCtrl.isEditing() && (isFillHandleAvailable || isRangeHandleAvailable);\n if (this.hasChartRange) {\n const hasCategoryRange = cellRanges[0].type === CellRangeType.DIMENSION;\n const isCategoryCell = hasCategoryRange && rangeService.isCellInSpecificRange(cellPosition, cellRanges[0]);\n this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_CHART_CATEGORY, isCategoryCell);\n handleIsAvailable = cellRange.type === CellRangeType.VALUE;\n }\n return handleIsAvailable &&\n cellRange.endRow != null &&\n rangeService.isContiguousRange(cellRange) &&\n rangeService.isBottomRightCell(cellRange, cellPosition);\n }\n addSelectionHandle() {\n const { gridOptionsService, rangeService } = this.beans;\n const cellRangeType = last(rangeService.getCellRanges()).type;\n const selectionHandleFill = gridOptionsService.get('enableFillHandle') && missing(cellRangeType);\n const type = selectionHandleFill ? SelectionHandleType.FILL : SelectionHandleType.RANGE;\n if (this.selectionHandle && this.selectionHandle.getType() !== type) {\n this.selectionHandle = this.beans.context.destroyBean(this.selectionHandle);\n }\n if (!this.selectionHandle) {\n this.selectionHandle = this.beans.selectionHandleFactory.createSelectionHandle(type);\n }\n this.selectionHandle.refresh(this.cellCtrl);\n }\n destroy() {\n this.beans.context.destroyBean(this.selectionHandle);\n }\n}\n","import { areEqual, last } from \"../../utils/array.mjs\";\nimport { Events } from \"../../eventKeys.mjs\";\nimport { missing } from \"../../utils/generic.mjs\";\nimport { BeanStub } from \"../../context/beanStub.mjs\";\n/**\n * Takes care of:\n * #) Cell Width (including when doing cell spanning, which makes width cover many columns)\n * #) Cell Height (when doing row span, otherwise we don't touch the height as it's just row height)\n * #) Cell Left (the horizontal positioning of the cell, the vertical positioning is on the row)\n */\nexport class CellPositionFeature extends BeanStub {\n constructor(ctrl, beans) {\n super();\n this.cellCtrl = ctrl;\n this.beans = beans;\n this.column = ctrl.getColumn();\n this.rowNode = ctrl.getRowNode();\n this.setupColSpan();\n this.setupRowSpan();\n }\n setupRowSpan() {\n this.rowSpan = this.column.getRowSpan(this.rowNode);\n this.addManagedListener(this.beans.eventService, Events.EVENT_NEW_COLUMNS_LOADED, () => this.onNewColumnsLoaded());\n }\n setComp(eGui) {\n this.eGui = eGui;\n this.onLeftChanged();\n this.onWidthChanged();\n this.applyRowSpan();\n }\n onNewColumnsLoaded() {\n const rowSpan = this.column.getRowSpan(this.rowNode);\n if (this.rowSpan === rowSpan) {\n return;\n }\n this.rowSpan = rowSpan;\n this.applyRowSpan(true);\n }\n onDisplayColumnsChanged() {\n const colsSpanning = this.getColSpanningList();\n if (!areEqual(this.colsSpanning, colsSpanning)) {\n this.colsSpanning = colsSpanning;\n this.onWidthChanged();\n this.onLeftChanged(); // left changes when doing RTL\n }\n }\n setupColSpan() {\n // if no col span is active, then we don't set it up, as it would be wasteful of CPU\n if (this.column.getColDef().colSpan == null) {\n return;\n }\n this.colsSpanning = this.getColSpanningList();\n // because we are col spanning, a reorder of the cols can change what cols we are spanning over\n this.addManagedListener(this.beans.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayColumnsChanged.bind(this));\n // because we are spanning over multiple cols, we check for width any time any cols width changes.\n // this is expensive - really we should be explicitly checking only the cols we are spanning over\n // instead of every col, however it would be tricky code to track the cols we are spanning over, so\n // because hardly anyone will be using colSpan, am favouring this easier way for more maintainable code.\n this.addManagedListener(this.beans.eventService, Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, this.onWidthChanged.bind(this));\n }\n onWidthChanged() {\n if (!this.eGui) {\n return;\n }\n const width = this.getCellWidth();\n this.eGui.style.width = `${width}px`;\n }\n getCellWidth() {\n if (!this.colsSpanning) {\n return this.column.getActualWidth();\n }\n return this.colsSpanning.reduce((width, col) => width + col.getActualWidth(), 0);\n }\n getColSpanningList() {\n const colSpan = this.column.getColSpan(this.rowNode);\n const colsSpanning = [];\n // if just one col, the col span is just the column we are in\n if (colSpan === 1) {\n colsSpanning.push(this.column);\n }\n else {\n let pointer = this.column;\n const pinned = this.column.getPinned();\n for (let i = 0; pointer && i < colSpan; i++) {\n colsSpanning.push(pointer);\n pointer = this.beans.columnModel.getDisplayedColAfter(pointer);\n if (!pointer || missing(pointer)) {\n break;\n }\n // we do not allow col spanning to span outside of pinned areas\n if (pinned !== pointer.getPinned()) {\n break;\n }\n }\n }\n return colsSpanning;\n }\n onLeftChanged() {\n if (!this.eGui) {\n return;\n }\n const left = this.modifyLeftForPrintLayout(this.getCellLeft());\n this.eGui.style.left = left + 'px';\n }\n getCellLeft() {\n let mostLeftCol;\n if (this.beans.gridOptionsService.get('enableRtl') && this.colsSpanning) {\n mostLeftCol = last(this.colsSpanning);\n }\n else {\n mostLeftCol = this.column;\n }\n return mostLeftCol.getLeft();\n }\n modifyLeftForPrintLayout(leftPosition) {\n if (!this.cellCtrl.isPrintLayout() || this.column.getPinned() === 'left') {\n return leftPosition;\n }\n const leftWidth = this.beans.columnModel.getDisplayedColumnsLeftWidth();\n if (this.column.getPinned() === 'right') {\n const bodyWidth = this.beans.columnModel.getBodyContainerWidth();\n return leftWidth + bodyWidth + (leftPosition || 0);\n }\n // is in body\n return leftWidth + (leftPosition || 0);\n }\n applyRowSpan(force) {\n if (this.rowSpan === 1 && !force) {\n return;\n }\n const singleRowHeight = this.beans.gridOptionsService.getRowHeightAsNumber();\n const totalRowHeight = singleRowHeight * this.rowSpan;\n this.eGui.style.height = `${totalRowHeight}px`;\n this.eGui.style.zIndex = '1';\n }\n // overriding to make public, as we don't dispose this bean via context\n destroy() {\n super.destroy();\n }\n}\n","import { BeanStub } from \"../../context/beanStub.mjs\";\nexport class CellCustomStyleFeature extends BeanStub {\n constructor(ctrl, beans) {\n super();\n this.staticClasses = [];\n this.cellCtrl = ctrl;\n this.beans = beans;\n this.column = ctrl.getColumn();\n this.rowNode = ctrl.getRowNode();\n }\n setComp(comp) {\n this.cellComp = comp;\n this.applyUserStyles();\n this.applyCellClassRules();\n this.applyClassesFromColDef();\n }\n applyCellClassRules() {\n const colDef = this.column.getColDef();\n const { cellClassRules } = colDef;\n const cellClassParams = this.beans.gridOptionsService.addGridCommonParams({\n value: this.cellCtrl.getValue(),\n data: this.rowNode.data,\n node: this.rowNode,\n colDef: colDef,\n column: this.column,\n rowIndex: this.rowNode.rowIndex\n });\n this.beans.stylingService.processClassRules(\n // if current was previous, skip\n cellClassRules === this.cellClassRules ? undefined : this.cellClassRules, cellClassRules, cellClassParams, className => this.cellComp.addOrRemoveCssClass(className, true), className => this.cellComp.addOrRemoveCssClass(className, false));\n this.cellClassRules = cellClassRules;\n }\n applyUserStyles() {\n const colDef = this.column.getColDef();\n if (!colDef.cellStyle) {\n return;\n }\n let styles;\n if (typeof colDef.cellStyle === 'function') {\n const cellStyleParams = this.beans.gridOptionsService.addGridCommonParams({\n column: this.column,\n value: this.cellCtrl.getValue(),\n colDef: colDef,\n data: this.rowNode.data,\n node: this.rowNode,\n rowIndex: this.rowNode.rowIndex\n });\n const cellStyleFunc = colDef.cellStyle;\n styles = cellStyleFunc(cellStyleParams);\n }\n else {\n styles = colDef.cellStyle;\n }\n if (styles) {\n this.cellComp.setUserStyles(styles);\n }\n }\n applyClassesFromColDef() {\n const colDef = this.column.getColDef();\n const cellClassParams = this.beans.gridOptionsService.addGridCommonParams({\n value: this.cellCtrl.getValue(),\n data: this.rowNode.data,\n node: this.rowNode,\n column: this.column,\n colDef: colDef,\n rowIndex: this.rowNode.rowIndex\n });\n if (this.staticClasses.length) {\n this.staticClasses.forEach(className => this.cellComp.addOrRemoveCssClass(className, false));\n }\n this.staticClasses = this.beans.stylingService.getStaticCellClasses(colDef, cellClassParams);\n if (this.staticClasses.length) {\n this.staticClasses.forEach(className => this.cellComp.addOrRemoveCssClass(className, true));\n }\n }\n // overriding to make public, as we don't dispose this bean via context\n destroy() {\n super.destroy();\n }\n}\n","import { BeanStub } from \"../context/beanStub.mjs\";\nimport { CustomTooltipFeature } from \"./customTooltipFeature.mjs\";\nexport class TooltipFeature extends BeanStub {\n constructor(ctrl, beans) {\n super();\n this.ctrl = ctrl;\n this.beans = beans;\n }\n setComp(eGui) {\n this.eGui = eGui;\n this.setupTooltip();\n }\n setBrowserTooltip(tooltip) {\n const name = 'title';\n if (tooltip != null && tooltip != '') {\n this.eGui.setAttribute(name, tooltip);\n }\n else {\n this.eGui.removeAttribute(name);\n }\n }\n setupTooltip() {\n this.browserTooltips = this.beans.gridOptionsService.get('enableBrowserTooltips');\n this.updateTooltipText();\n if (this.browserTooltips) {\n this.setBrowserTooltip(this.tooltip);\n }\n else {\n this.createTooltipFeatureIfNeeded();\n }\n }\n updateTooltipText() {\n this.tooltip = this.ctrl.getTooltipValue();\n }\n createTooltipFeatureIfNeeded() {\n var _a, _b, _c, _d;\n if (this.genericTooltipFeature != null) {\n return;\n }\n const parent = {\n getTooltipParams: () => this.getTooltipParams(),\n getGui: () => this.ctrl.getGui()\n };\n this.genericTooltipFeature = this.createManagedBean(new CustomTooltipFeature(parent, (_b = (_a = this.ctrl).getTooltipShowDelayOverride) === null || _b === void 0 ? void 0 : _b.call(_a), (_d = (_c = this.ctrl).getTooltipHideDelayOverride) === null || _d === void 0 ? void 0 : _d.call(_c)), this.beans.context);\n }\n refreshToolTip() {\n this.updateTooltipText();\n if (this.browserTooltips) {\n this.setBrowserTooltip(this.tooltip);\n }\n }\n getTooltipParams() {\n const ctrl = this.ctrl;\n const column = ctrl.getColumn ? ctrl.getColumn() : undefined;\n const colDef = ctrl.getColDef ? ctrl.getColDef() : undefined;\n const rowNode = ctrl.getRowNode ? ctrl.getRowNode() : undefined;\n return {\n location: ctrl.getLocation(),\n colDef: colDef,\n column: column,\n rowIndex: ctrl.getRowIndex ? ctrl.getRowIndex() : undefined,\n node: rowNode,\n data: rowNode ? rowNode.data : undefined,\n value: this.getTooltipText(),\n valueFormatted: ctrl.getValueFormatted ? ctrl.getValueFormatted() : undefined,\n hideTooltipCallback: () => this.genericTooltipFeature.hideTooltip(true)\n };\n }\n getTooltipText() {\n return this.tooltip;\n }\n // overriding to make public, as we don't dispose this bean via context\n destroy() {\n super.destroy();\n }\n}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Autowired, Bean, Optional, PostConstruct } from \"../context/context.mjs\";\n/** Using the IoC has a slight performance consideration, which is no problem most of the\n * time, unless we are trashing objects - which is the case when scrolling and rowComp\n * and cellComp. So for performance reasons, RowComp and CellComp do not get autowired\n * with the IoC. Instead they get passed this object which is all the beans the RowComp\n * and CellComp need. Not autowiring all the cells gives performance improvement. */\nlet Beans = class Beans {\n postConstruct() {\n if (this.gridOptionsService.isRowModelType('clientSide')) {\n this.clientSideRowModel = this.rowModel;\n }\n if (this.gridOptionsService.isRowModelType('serverSide')) {\n this.serverSideRowModel = this.rowModel;\n }\n }\n};\n__decorate([\n Autowired('resizeObserverService')\n], Beans.prototype, \"resizeObserverService\", void 0);\n__decorate([\n Autowired('paginationProxy')\n], Beans.prototype, \"paginationProxy\", void 0);\n__decorate([\n Autowired('context')\n], Beans.prototype, \"context\", void 0);\n__decorate([\n Autowired('columnApi')\n], Beans.prototype, \"columnApi\", void 0);\n__decorate([\n Autowired('gridApi')\n], Beans.prototype, \"gridApi\", void 0);\n__decorate([\n Autowired('gridOptionsService')\n], Beans.prototype, \"gridOptionsService\", void 0);\n__decorate([\n Autowired('expressionService')\n], Beans.prototype, \"expressionService\", void 0);\n__decorate([\n Autowired('environment')\n], Beans.prototype, \"environment\", void 0);\n__decorate([\n Autowired('rowRenderer')\n], Beans.prototype, \"rowRenderer\", void 0);\n__decorate([\n Autowired('templateService')\n], Beans.prototype, \"templateService\", void 0);\n__decorate([\n Autowired('valueService')\n], Beans.prototype, \"valueService\", void 0);\n__decorate([\n Autowired('eventService')\n], Beans.prototype, \"eventService\", void 0);\n__decorate([\n Autowired('columnModel')\n], Beans.prototype, \"columnModel\", void 0);\n__decorate([\n Autowired('headerNavigationService')\n], Beans.prototype, \"headerNavigationService\", void 0);\n__decorate([\n Autowired('navigationService')\n], Beans.prototype, \"navigationService\", void 0);\n__decorate([\n Autowired('columnAnimationService')\n], Beans.prototype, \"columnAnimationService\", void 0);\n__decorate([\n Optional('rangeService')\n], Beans.prototype, \"rangeService\", void 0);\n__decorate([\n Autowired('focusService')\n], Beans.prototype, \"focusService\", void 0);\n__decorate([\n Autowired('popupService')\n], Beans.prototype, \"popupService\", void 0);\n__decorate([\n Autowired('valueFormatterService')\n], Beans.prototype, \"valueFormatterService\", void 0);\n__decorate([\n Autowired('stylingService')\n], Beans.prototype, \"stylingService\", void 0);\n__decorate([\n Autowired('columnHoverService')\n], Beans.prototype, \"columnHoverService\", void 0);\n__decorate([\n Autowired('userComponentFactory')\n], Beans.prototype, \"userComponentFactory\", void 0);\n__decorate([\n Autowired('userComponentRegistry')\n], Beans.prototype, \"userComponentRegistry\", void 0);\n__decorate([\n Autowired('animationFrameService')\n], Beans.prototype, \"animationFrameService\", void 0);\n__decorate([\n Autowired('dragService')\n], Beans.prototype, \"dragService\", void 0);\n__decorate([\n Autowired('dragAndDropService')\n], Beans.prototype, \"dragAndDropService\", void 0);\n__decorate([\n Autowired('sortController')\n], Beans.prototype, \"sortController\", void 0);\n__decorate([\n Autowired('filterManager')\n], Beans.prototype, \"filterManager\", void 0);\n__decorate([\n Autowired('rowContainerHeightService')\n], Beans.prototype, \"rowContainerHeightService\", void 0);\n__decorate([\n Autowired('frameworkOverrides')\n], Beans.prototype, \"frameworkOverrides\", void 0);\n__decorate([\n Autowired('cellPositionUtils')\n], Beans.prototype, \"cellPositionUtils\", void 0);\n__decorate([\n Autowired('rowPositionUtils')\n], Beans.prototype, \"rowPositionUtils\", void 0);\n__decorate([\n Autowired('selectionService')\n], Beans.prototype, \"selectionService\", void 0);\n__decorate([\n Optional('selectionHandleFactory')\n], Beans.prototype, \"selectionHandleFactory\", void 0);\n__decorate([\n Autowired('rowCssClassCalculator')\n], Beans.prototype, \"rowCssClassCalculator\", void 0);\n__decorate([\n Autowired('rowModel')\n], Beans.prototype, \"rowModel\", void 0);\n__decorate([\n Autowired('ctrlsService')\n], Beans.prototype, \"ctrlsService\", void 0);\n__decorate([\n Autowired('ctrlsFactory')\n], Beans.prototype, \"ctrlsFactory\", void 0);\n__decorate([\n Autowired('agStackComponentsRegistry')\n], Beans.prototype, \"agStackComponentsRegistry\", void 0);\n__decorate([\n Autowired('valueCache')\n], Beans.prototype, \"valueCache\", void 0);\n__decorate([\n Autowired('rowNodeEventThrottle')\n], Beans.prototype, \"rowNodeEventThrottle\", void 0);\n__decorate([\n Autowired('localeService')\n], Beans.prototype, \"localeService\", void 0);\n__decorate([\n Autowired('valueParserService')\n], Beans.prototype, \"valueParserService\", void 0);\n__decorate([\n Autowired('syncService')\n], Beans.prototype, \"syncService\", void 0);\n__decorate([\n Autowired('ariaAnnouncementService')\n], Beans.prototype, \"ariaAnnouncementService\", void 0);\n__decorate([\n PostConstruct\n], Beans.prototype, \"postConstruct\", null);\nBeans = __decorate([\n Bean('beans')\n], Beans);\nexport { Beans };\n","import { Events } from \"../../events.mjs\";\nimport { isBrowserSafari, isIOSUserAgent } from \"../../utils/browser.mjs\";\nimport { isElementChildOfClass, isFocusableFormField } from \"../../utils/dom.mjs\";\nimport { isEventSupported, isStopPropagationForAgGrid } from \"../../utils/event.mjs\";\nimport { Beans } from \"../beans.mjs\";\nexport class CellMouseListenerFeature extends Beans {\n constructor(ctrl, beans, column) {\n super();\n this.cellCtrl = ctrl;\n this.beans = beans;\n this.column = column;\n }\n onMouseEvent(eventName, mouseEvent) {\n if (isStopPropagationForAgGrid(mouseEvent)) {\n return;\n }\n switch (eventName) {\n case 'click':\n this.onCellClicked(mouseEvent);\n break;\n case 'mousedown':\n case 'touchstart':\n this.onMouseDown(mouseEvent);\n break;\n case 'dblclick':\n this.onCellDoubleClicked(mouseEvent);\n break;\n case 'mouseout':\n this.onMouseOut(mouseEvent);\n break;\n case 'mouseover':\n this.onMouseOver(mouseEvent);\n break;\n }\n }\n onCellClicked(mouseEvent) {\n // iPad doesn't have double click - so we need to mimic it to enable editing for iPad.\n if (this.isDoubleClickOnIPad()) {\n this.onCellDoubleClicked(mouseEvent);\n mouseEvent.preventDefault(); // if we don't do this, then iPad zooms in\n return;\n }\n const { eventService, rangeService, gridOptionsService } = this.beans;\n const isMultiKey = mouseEvent.ctrlKey || mouseEvent.metaKey;\n if (rangeService && isMultiKey) {\n // the mousedown event has created the range already, so we only intersect if there is more than one\n // range on this cell\n if (rangeService.getCellRangeCount(this.cellCtrl.getCellPosition()) > 1) {\n rangeService.intersectLastRange(true);\n }\n }\n const cellClickedEvent = this.cellCtrl.createEvent(mouseEvent, Events.EVENT_CELL_CLICKED);\n eventService.dispatchEvent(cellClickedEvent);\n const colDef = this.column.getColDef();\n if (colDef.onCellClicked) {\n // to make callback async, do in a timeout\n window.setTimeout(() => {\n this.beans.frameworkOverrides.wrapOutgoing(() => {\n colDef.onCellClicked(cellClickedEvent);\n });\n }, 0);\n }\n const editOnSingleClick = (gridOptionsService.get('singleClickEdit') || colDef.singleClickEdit)\n && !gridOptionsService.get('suppressClickEdit');\n // edit on single click, but not if extending a range\n if (editOnSingleClick && !(mouseEvent.shiftKey && (rangeService === null || rangeService === void 0 ? void 0 : rangeService.getCellRanges().length) != 0)) {\n this.cellCtrl.startRowOrCellEdit();\n }\n }\n // returns true if on iPad and this is second 'click' event in 200ms\n isDoubleClickOnIPad() {\n if (!isIOSUserAgent() || isEventSupported('dblclick')) {\n return false;\n }\n const nowMillis = new Date().getTime();\n const res = nowMillis - this.lastIPadMouseClickEvent < 200;\n this.lastIPadMouseClickEvent = nowMillis;\n return res;\n }\n onCellDoubleClicked(mouseEvent) {\n const colDef = this.column.getColDef();\n // always dispatch event to eventService\n const cellDoubleClickedEvent = this.cellCtrl.createEvent(mouseEvent, Events.EVENT_CELL_DOUBLE_CLICKED);\n this.beans.eventService.dispatchEvent(cellDoubleClickedEvent);\n // check if colDef also wants to handle event\n if (typeof colDef.onCellDoubleClicked === 'function') {\n // to make the callback async, do in a timeout\n window.setTimeout(() => {\n this.beans.frameworkOverrides.wrapOutgoing(() => {\n colDef.onCellDoubleClicked(cellDoubleClickedEvent);\n });\n }, 0);\n }\n const editOnDoubleClick = !this.beans.gridOptionsService.get('singleClickEdit')\n && !this.beans.gridOptionsService.get('suppressClickEdit');\n if (editOnDoubleClick) {\n this.cellCtrl.startRowOrCellEdit(null, mouseEvent);\n }\n }\n onMouseDown(mouseEvent) {\n const { ctrlKey, metaKey, shiftKey } = mouseEvent;\n const target = mouseEvent.target;\n const { cellCtrl, beans } = this;\n const { eventService, rangeService, focusService } = beans;\n // do not change the range for right-clicks inside an existing range\n if (this.isRightClickInExistingRange(mouseEvent)) {\n return;\n }\n const ranges = rangeService && rangeService.getCellRanges().length != 0;\n if (!shiftKey || !ranges) {\n // We only need to pass true to focusCell when the browser is Safari and we are trying\n // to focus the cell itself. This should never be true if the mousedown was triggered\n // due to a click on a cell editor for example.\n const forceBrowserFocus = (isBrowserSafari()) && !cellCtrl.isEditing() && !isFocusableFormField(target);\n cellCtrl.focusCell(forceBrowserFocus);\n }\n // if shift clicking, and a range exists, we keep the focus on the cell that started the\n // range as the user then changes the range selection.\n if (shiftKey && ranges && !focusService.isCellFocused(cellCtrl.getCellPosition())) {\n // this stops the cell from getting focused\n mouseEvent.preventDefault();\n const focusedCellPosition = focusService.getFocusedCell();\n if (focusedCellPosition) {\n const { column, rowIndex, rowPinned } = focusedCellPosition;\n const focusedRowCtrl = beans.rowRenderer.getRowByPosition({ rowIndex, rowPinned });\n const focusedCellCtrl = focusedRowCtrl === null || focusedRowCtrl === void 0 ? void 0 : focusedRowCtrl.getCellCtrl(column);\n // if the focused cell is editing, need to stop editing first\n if (focusedCellCtrl === null || focusedCellCtrl === void 0 ? void 0 : focusedCellCtrl.isEditing()) {\n focusedCellCtrl.stopEditing();\n }\n // focus could have been lost, so restore it to the starting cell in the range if needed\n focusService.setFocusedCell({\n column,\n rowIndex,\n rowPinned,\n forceBrowserFocus: true,\n preventScrollOnBrowserFocus: true,\n });\n }\n }\n // if we are clicking on a checkbox, we need to make sure the cell wrapping that checkbox\n // is focused but we don't want to change the range selection, so return here.\n if (this.containsWidget(target)) {\n return;\n }\n if (rangeService) {\n const thisCell = this.cellCtrl.getCellPosition();\n if (shiftKey) {\n rangeService.extendLatestRangeToCell(thisCell);\n }\n else {\n const isMultiKey = ctrlKey || metaKey;\n rangeService.setRangeToCell(thisCell, isMultiKey);\n }\n }\n eventService.dispatchEvent(this.cellCtrl.createEvent(mouseEvent, Events.EVENT_CELL_MOUSE_DOWN));\n }\n isRightClickInExistingRange(mouseEvent) {\n const { rangeService } = this.beans;\n if (rangeService) {\n const cellInRange = rangeService.isCellInAnyRange(this.cellCtrl.getCellPosition());\n const isRightClick = mouseEvent.button === 2 || (mouseEvent.ctrlKey && this.beans.gridOptionsService.get('allowContextMenuWithControlKey'));\n if (cellInRange && isRightClick) {\n return true;\n }\n }\n return false;\n }\n containsWidget(target) {\n return isElementChildOfClass(target, 'ag-selection-checkbox', 3);\n }\n onMouseOut(mouseEvent) {\n if (this.mouseStayingInsideCell(mouseEvent)) {\n return;\n }\n const cellMouseOutEvent = this.cellCtrl.createEvent(mouseEvent, Events.EVENT_CELL_MOUSE_OUT);\n this.beans.eventService.dispatchEvent(cellMouseOutEvent);\n this.beans.columnHoverService.clearMouseOver();\n }\n onMouseOver(mouseEvent) {\n if (this.mouseStayingInsideCell(mouseEvent)) {\n return;\n }\n const cellMouseOverEvent = this.cellCtrl.createEvent(mouseEvent, Events.EVENT_CELL_MOUSE_OVER);\n this.beans.eventService.dispatchEvent(cellMouseOverEvent);\n this.beans.columnHoverService.setMouseOver([this.column]);\n }\n mouseStayingInsideCell(e) {\n if (!e.target || !e.relatedTarget) {\n return false;\n }\n const eGui = this.cellCtrl.getGui();\n const cellContainsTarget = eGui.contains(e.target);\n const cellContainsRelatedTarget = eGui.contains(e.relatedTarget);\n return cellContainsTarget && cellContainsRelatedTarget;\n }\n destroy() {\n }\n}\n","import { BeanStub } from \"../../context/beanStub.mjs\";\nimport { KeyCode } from \"../../constants/keyCode.mjs\";\nimport { isDeleteKey } from \"../../utils/keyboard.mjs\";\nimport { Events } from \"../../eventKeys.mjs\";\nexport class CellKeyboardListenerFeature extends BeanStub {\n constructor(ctrl, beans, column, rowNode, rowCtrl) {\n super();\n this.cellCtrl = ctrl;\n this.beans = beans;\n this.rowNode = rowNode;\n this.rowCtrl = rowCtrl;\n }\n setComp(eGui) {\n this.eGui = eGui;\n }\n onKeyDown(event) {\n const key = event.key;\n switch (key) {\n case KeyCode.ENTER:\n this.onEnterKeyDown(event);\n break;\n case KeyCode.F2:\n this.onF2KeyDown(event);\n break;\n case KeyCode.ESCAPE:\n this.onEscapeKeyDown(event);\n break;\n case KeyCode.TAB:\n this.onTabKeyDown(event);\n break;\n case KeyCode.BACKSPACE:\n case KeyCode.DELETE:\n this.onBackspaceOrDeleteKeyDown(key, event);\n break;\n case KeyCode.DOWN:\n case KeyCode.UP:\n case KeyCode.RIGHT:\n case KeyCode.LEFT:\n this.onNavigationKeyDown(event, key);\n break;\n }\n }\n onNavigationKeyDown(event, key) {\n if (this.cellCtrl.isEditing()) {\n return;\n }\n if (event.shiftKey && this.cellCtrl.isRangeSelectionEnabled()) {\n this.onShiftRangeSelect(event);\n }\n else {\n this.beans.navigationService.navigateToNextCell(event, key, this.cellCtrl.getCellPosition(), true);\n }\n // if we don't prevent default, the grid will scroll with the navigation keys\n event.preventDefault();\n }\n onShiftRangeSelect(event) {\n if (!this.beans.rangeService) {\n return;\n }\n const endCell = this.beans.rangeService.extendLatestRangeInDirection(event);\n if (endCell) {\n this.beans.navigationService.ensureCellVisible(endCell);\n }\n }\n onTabKeyDown(event) {\n this.beans.navigationService.onTabKeyDown(this.cellCtrl, event);\n }\n onBackspaceOrDeleteKeyDown(key, event) {\n const { cellCtrl, beans, rowNode } = this;\n const { gridOptionsService, rangeService, eventService } = beans;\n if (cellCtrl.isEditing()) {\n return;\n }\n eventService.dispatchEvent({ type: Events.EVENT_KEY_SHORTCUT_CHANGED_CELL_START });\n if (isDeleteKey(key, gridOptionsService.get('enableCellEditingOnBackspace'))) {\n if (rangeService && gridOptionsService.get('enableRangeSelection')) {\n rangeService.clearCellRangeCellValues({ dispatchWrapperEvents: true, wrapperEventSource: 'deleteKey' });\n }\n else if (cellCtrl.isCellEditable()) {\n rowNode.setDataValue(cellCtrl.getColumn(), null, 'cellClear');\n }\n }\n else {\n cellCtrl.startRowOrCellEdit(key, event);\n }\n eventService.dispatchEvent({ type: Events.EVENT_KEY_SHORTCUT_CHANGED_CELL_END });\n }\n onEnterKeyDown(e) {\n if (this.cellCtrl.isEditing() || this.rowCtrl.isEditing()) {\n this.cellCtrl.stopEditingAndFocus(false, e.shiftKey);\n }\n else {\n if (this.beans.gridOptionsService.get('enterNavigatesVertically')) {\n const key = e.shiftKey ? KeyCode.UP : KeyCode.DOWN;\n this.beans.navigationService.navigateToNextCell(null, key, this.cellCtrl.getCellPosition(), false);\n }\n else {\n this.cellCtrl.startRowOrCellEdit(KeyCode.ENTER, e);\n if (this.cellCtrl.isEditing()) {\n // if we started editing, then we need to prevent default, otherwise the Enter action can get\n // applied to the cell editor. this happened, for example, with largeTextCellEditor where not\n // preventing default results in a 'new line' character getting inserted in the text area\n // when the editing was started\n e.preventDefault();\n }\n }\n }\n }\n onF2KeyDown(event) {\n if (!this.cellCtrl.isEditing()) {\n this.cellCtrl.startRowOrCellEdit(KeyCode.F2, event);\n }\n }\n onEscapeKeyDown(event) {\n if (this.cellCtrl.isEditing()) {\n this.cellCtrl.stopRowOrCellEdit(true);\n this.cellCtrl.focusCell(true);\n }\n }\n processCharacter(event) {\n // check this, in case focus is on a (for example) a text field inside the cell,\n // in which cse we should not be listening for these key pressed\n const eventTarget = event.target;\n const eventOnChildComponent = eventTarget !== this.eGui;\n if (eventOnChildComponent || this.cellCtrl.isEditing()) {\n return;\n }\n const key = event.key;\n if (key === ' ') {\n this.onSpaceKeyDown(event);\n }\n else {\n this.cellCtrl.startRowOrCellEdit(key, event);\n // if we don't prevent default, then the event also gets applied to the text field\n // (at least when doing the default editor), but we need to allow the editor to decide\n // what it wants to do. we only do this IF editing was started - otherwise it messes\n // up when the use is not doing editing, but using rendering with text fields in cellRenderer\n // (as it would block the the user from typing into text fields).\n event.preventDefault();\n }\n }\n onSpaceKeyDown(event) {\n const { gridOptionsService } = this.beans;\n if (!this.cellCtrl.isEditing() && gridOptionsService.isRowSelection()) {\n const currentSelection = this.rowNode.isSelected();\n const newSelection = !currentSelection;\n if (newSelection || !gridOptionsService.get('suppressRowDeselection')) {\n const groupSelectsFiltered = this.beans.gridOptionsService.get('groupSelectsFiltered');\n const updatedCount = this.rowNode.setSelectedParams({\n newValue: newSelection,\n rangeSelect: event.shiftKey,\n groupSelectsFiltered: groupSelectsFiltered,\n event,\n source: 'spaceKey',\n });\n if (currentSelection === undefined && updatedCount === 0) {\n this.rowNode.setSelectedParams({\n newValue: false,\n rangeSelect: event.shiftKey,\n groupSelectsFiltered: groupSelectsFiltered,\n event,\n source: 'spaceKey',\n });\n }\n }\n }\n // prevent default as space key, by default, moves browser scroll down\n event.preventDefault();\n }\n destroy() {\n super.destroy();\n }\n}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component } from \"../widgets/component.mjs\";\nimport { PostConstruct } from \"../context/context.mjs\";\nimport { createIconNoSpan } from \"../utils/icon.mjs\";\nexport class DndSourceComp extends Component {\n constructor(rowNode, column, eCell) {\n super(/* html */ `
`);\n this.rowNode = rowNode;\n this.column = column;\n this.eCell = eCell;\n }\n postConstruct() {\n const eGui = this.getGui();\n eGui.appendChild(createIconNoSpan('rowDrag', this.gridOptionsService, null));\n // we need to stop the event propagation here to avoid starting a range selection while dragging\n this.addGuiEventListener('mousedown', (e) => {\n e.stopPropagation();\n });\n this.addDragSource();\n this.checkVisibility();\n }\n addDragSource() {\n this.addGuiEventListener('dragstart', this.onDragStart.bind(this));\n }\n onDragStart(dragEvent) {\n const providedOnRowDrag = this.column.getColDef().dndSourceOnRowDrag;\n dragEvent.dataTransfer.setDragImage(this.eCell, 0, 0);\n // default behaviour is to convert data to json and set into drag component\n const defaultOnRowDrag = () => {\n try {\n const jsonData = JSON.stringify(this.rowNode.data);\n dragEvent.dataTransfer.setData('application/json', jsonData);\n dragEvent.dataTransfer.setData('text/plain', jsonData);\n }\n catch (e) {\n // if we cannot convert the data to json, then we do not set the type\n }\n };\n if (providedOnRowDrag) {\n const params = this.gridOptionsService.addGridCommonParams({\n rowNode: this.rowNode, dragEvent: dragEvent\n });\n providedOnRowDrag(params);\n }\n else {\n defaultOnRowDrag();\n }\n }\n checkVisibility() {\n const visible = this.column.isDndSource(this.rowNode);\n this.setDisplayed(visible);\n }\n}\n__decorate([\n PostConstruct\n], DndSourceComp.prototype, \"postConstruct\", null);\n","import { missing } from \"../../utils/generic.mjs\";\nconst CSS_FIRST_COLUMN = 'ag-column-first';\nconst CSS_LAST_COLUMN = 'ag-column-last';\nexport class CssClassApplier {\n static getHeaderClassesFromColDef(abstractColDef, gridOptionsService, column, columnGroup) {\n if (missing(abstractColDef)) {\n return [];\n }\n return this.getColumnClassesFromCollDef(abstractColDef.headerClass, abstractColDef, gridOptionsService, column, columnGroup);\n }\n static getToolPanelClassesFromColDef(abstractColDef, gridOptionsService, column, columnGroup) {\n if (missing(abstractColDef)) {\n return [];\n }\n return this.getColumnClassesFromCollDef(abstractColDef.toolPanelClass, abstractColDef, gridOptionsService, column, columnGroup);\n }\n static refreshFirstAndLastStyles(comp, column, columnModel) {\n comp.addOrRemoveCssClass(CSS_FIRST_COLUMN, columnModel.isColumnAtEdge(column, 'first'));\n comp.addOrRemoveCssClass(CSS_LAST_COLUMN, columnModel.isColumnAtEdge(column, 'last'));\n }\n static getClassParams(abstractColDef, gridOptionsService, column, columnGroup) {\n return gridOptionsService.addGridCommonParams({\n // bad naming, as colDef here can be a group or a column,\n // however most people won't appreciate the difference,\n // so keeping it as colDef to avoid confusion.\n colDef: abstractColDef,\n column: column,\n columnGroup: columnGroup\n });\n }\n static getColumnClassesFromCollDef(classesOrFunc, abstractColDef, gridOptionsService, column, columnGroup) {\n if (missing(classesOrFunc)) {\n return [];\n }\n let classToUse;\n if (typeof classesOrFunc === 'function') {\n const params = this.getClassParams(abstractColDef, gridOptionsService, column, columnGroup);\n classToUse = classesOrFunc(params);\n }\n else {\n classToUse = classesOrFunc;\n }\n if (typeof classToUse === 'string') {\n return [classToUse];\n }\n if (Array.isArray(classToUse)) {\n return [...classToUse];\n }\n return [];\n }\n}\n","import { Events } from \"../../events.mjs\";\nimport { CellRangeFeature } from \"./cellRangeFeature.mjs\";\nimport { exists, makeNull } from \"../../utils/generic.mjs\";\nimport { BeanStub } from \"../../context/beanStub.mjs\";\nimport { CellPositionFeature } from \"./cellPositionFeature.mjs\";\nimport { escapeString } from \"../../utils/string.mjs\";\nimport { CellCustomStyleFeature } from \"./cellCustomStyleFeature.mjs\";\nimport { TooltipFeature } from \"../../widgets/tooltipFeature.mjs\";\nimport { CellMouseListenerFeature } from \"./cellMouseListenerFeature.mjs\";\nimport { CellKeyboardListenerFeature } from \"./cellKeyboardListenerFeature.mjs\";\nimport { KeyCode } from \"../../constants/keyCode.mjs\";\nimport { CheckboxSelectionComponent } from \"../checkboxSelectionComponent.mjs\";\nimport { DndSourceComp } from \"../dndSourceComp.mjs\";\nimport { warnOnce } from \"../../utils/function.mjs\";\nimport { RowDragComp } from \"../row/rowDragComp.mjs\";\nimport { getValueUsingField } from \"../../utils/object.mjs\";\nimport { getElementSize } from \"../../utils/dom.mjs\";\nimport { setAriaColIndex } from \"../../utils/aria.mjs\";\nimport { CssClassApplier } from \"../../headerRendering/cells/cssClassApplier.mjs\";\nconst CSS_CELL = 'ag-cell';\nconst CSS_AUTO_HEIGHT = 'ag-cell-auto-height';\nconst CSS_NORMAL_HEIGHT = 'ag-cell-normal-height';\nconst CSS_CELL_FOCUS = 'ag-cell-focus';\nconst CSS_CELL_FIRST_RIGHT_PINNED = 'ag-cell-first-right-pinned';\nconst CSS_CELL_LAST_LEFT_PINNED = 'ag-cell-last-left-pinned';\nconst CSS_CELL_NOT_INLINE_EDITING = 'ag-cell-not-inline-editing';\nconst CSS_COLUMN_HOVER = 'ag-column-hover';\nconst CSS_CELL_WRAP_TEXT = 'ag-cell-wrap-text';\nlet instanceIdSequence = 0;\nexport class CellCtrl extends BeanStub {\n constructor(column, rowNode, beans, rowCtrl) {\n super();\n this.cellRangeFeature = null;\n this.cellPositionFeature = null;\n this.cellCustomStyleFeature = null;\n this.tooltipFeature = null;\n this.cellMouseListenerFeature = null;\n this.cellKeyboardListenerFeature = null;\n this.suppressRefreshCell = false;\n this.onCellCompAttachedFuncs = [];\n this.column = column;\n this.rowNode = rowNode;\n this.beans = beans;\n this.rowCtrl = rowCtrl;\n // unique id to this instance, including the column ID to help with debugging in React as it's used in 'key'\n this.instanceId = column.getId() + '-' + instanceIdSequence++;\n this.colIdSanitised = escapeString(this.column.getId());\n if (!beans.gridOptionsService.get('suppressCellFocus')) {\n this.tabIndex = -1;\n }\n this.createCellPosition();\n this.addFeatures();\n this.updateAndFormatValue(false);\n }\n shouldRestoreFocus() {\n return this.beans.focusService.shouldRestoreFocus(this.cellPosition);\n }\n addFeatures() {\n this.cellPositionFeature = new CellPositionFeature(this, this.beans);\n this.addDestroyFunc(() => { var _a; (_a = this.cellPositionFeature) === null || _a === void 0 ? void 0 : _a.destroy(); this.cellPositionFeature = null; });\n this.cellCustomStyleFeature = new CellCustomStyleFeature(this, this.beans);\n this.addDestroyFunc(() => { var _a; (_a = this.cellCustomStyleFeature) === null || _a === void 0 ? void 0 : _a.destroy(); this.cellCustomStyleFeature = null; });\n this.cellMouseListenerFeature = new CellMouseListenerFeature(this, this.beans, this.column);\n this.addDestroyFunc(() => { var _a; (_a = this.cellMouseListenerFeature) === null || _a === void 0 ? void 0 : _a.destroy(); this.cellMouseListenerFeature = null; });\n this.cellKeyboardListenerFeature = new CellKeyboardListenerFeature(this, this.beans, this.column, this.rowNode, this.rowCtrl);\n this.addDestroyFunc(() => { var _a; (_a = this.cellKeyboardListenerFeature) === null || _a === void 0 ? void 0 : _a.destroy(); this.cellKeyboardListenerFeature = null; });\n if (this.column.isTooltipEnabled()) {\n this.enableTooltipFeature();\n this.addDestroyFunc(() => { this.disableTooltipFeature(); });\n }\n const rangeSelectionEnabled = this.beans.rangeService && this.beans.gridOptionsService.get('enableRangeSelection');\n if (rangeSelectionEnabled) {\n this.cellRangeFeature = new CellRangeFeature(this.beans, this);\n this.addDestroyFunc(() => { var _a; (_a = this.cellRangeFeature) === null || _a === void 0 ? void 0 : _a.destroy(); this.cellRangeFeature = null; });\n }\n }\n enableTooltipFeature() {\n const getTooltipValue = () => {\n const colDef = this.column.getColDef();\n const data = this.rowNode.data;\n if (colDef.tooltipField && exists(data)) {\n return getValueUsingField(data, colDef.tooltipField, this.column.isTooltipFieldContainsDots());\n }\n const valueGetter = colDef.tooltipValueGetter;\n if (valueGetter) {\n return valueGetter(this.beans.gridOptionsService.addGridCommonParams({\n location: 'cell',\n colDef: this.column.getColDef(),\n column: this.column,\n rowIndex: this.cellPosition.rowIndex,\n node: this.rowNode,\n data: this.rowNode.data,\n value: this.value,\n valueFormatted: this.valueFormatted,\n }));\n }\n return null;\n };\n const tooltipCtrl = {\n getColumn: () => this.column,\n getColDef: () => this.column.getColDef(),\n getRowIndex: () => this.cellPosition.rowIndex,\n getRowNode: () => this.rowNode,\n getGui: () => this.getGui(),\n getLocation: () => 'cell',\n getTooltipValue: getTooltipValue,\n // this makes no sense, why is the cell formatted value passed to the tooltip???\n getValueFormatted: () => this.valueFormatted\n };\n this.tooltipFeature = new TooltipFeature(tooltipCtrl, this.beans);\n }\n disableTooltipFeature() {\n if (!this.tooltipFeature) {\n return;\n }\n this.tooltipFeature.destroy();\n this.tooltipFeature = null;\n }\n setComp(comp, eGui, eCellWrapper, printLayout, startEditing) {\n var _a, _b, _c, _d;\n this.cellComp = comp;\n this.eGui = eGui;\n this.printLayout = printLayout;\n this.addDomData();\n this.onCellFocused(this.focusEventToRestore);\n this.applyStaticCssClasses();\n this.setWrapText();\n this.onFirstRightPinnedChanged();\n this.onLastLeftPinnedChanged();\n this.onColumnHover();\n this.setupControlComps();\n this.setupAutoHeight(eCellWrapper);\n this.refreshFirstAndLastStyles();\n this.refreshAriaColIndex();\n (_a = this.cellPositionFeature) === null || _a === void 0 ? void 0 : _a.setComp(eGui);\n (_b = this.cellCustomStyleFeature) === null || _b === void 0 ? void 0 : _b.setComp(comp);\n (_c = this.tooltipFeature) === null || _c === void 0 ? void 0 : _c.setComp(eGui);\n (_d = this.cellKeyboardListenerFeature) === null || _d === void 0 ? void 0 : _d.setComp(this.eGui);\n if (this.cellRangeFeature) {\n this.cellRangeFeature.setComp(comp, eGui);\n }\n if (startEditing && this.isCellEditable()) {\n this.startEditing();\n }\n else {\n this.showValue();\n }\n if (this.onCellCompAttachedFuncs.length) {\n this.onCellCompAttachedFuncs.forEach(func => func());\n this.onCellCompAttachedFuncs = [];\n }\n }\n setupAutoHeight(eCellWrapper) {\n this.isAutoHeight = this.column.isAutoHeight();\n if (!this.isAutoHeight || !eCellWrapper) {\n return;\n }\n const eParentCell = eCellWrapper.parentElement;\n // taking minRowHeight from getRowHeightForNode means the getRowHeight() callback is used,\n // thus allowing different min heights for different rows.\n const minRowHeight = this.beans.gridOptionsService.getRowHeightForNode(this.rowNode).height;\n const measureHeight = (timesCalled) => {\n if (this.editing) {\n return;\n }\n // because of the retry's below, it's possible the retry's go beyond\n // the rows life.\n if (!this.isAlive()) {\n return;\n }\n const { paddingTop, paddingBottom, borderBottomWidth, borderTopWidth } = getElementSize(eParentCell);\n const extraHeight = paddingTop + paddingBottom + borderBottomWidth + borderTopWidth;\n const wrapperHeight = eCellWrapper.offsetHeight;\n const autoHeight = wrapperHeight + extraHeight;\n if (timesCalled < 5) {\n // if not in doc yet, means framework not yet inserted, so wait for next VM turn,\n // maybe it will be ready next VM turn\n const doc = this.beans.gridOptionsService.getDocument();\n const notYetInDom = !doc || !doc.contains(eCellWrapper);\n // this happens in React, where React hasn't put any content in. we say 'possibly'\n // as a) may not be React and b) the cell could be empty anyway\n const possiblyNoContentYet = autoHeight == 0;\n if (notYetInDom || possiblyNoContentYet) {\n window.setTimeout(() => measureHeight(timesCalled + 1), 0);\n return;\n }\n }\n const newHeight = Math.max(autoHeight, minRowHeight);\n this.rowNode.setRowAutoHeight(newHeight, this.column);\n };\n const listener = () => measureHeight(0);\n // do once to set size in case size doesn't change, common when cell is blank\n listener();\n const destroyResizeObserver = this.beans.resizeObserverService.observeResize(eCellWrapper, listener);\n this.addDestroyFunc(() => {\n destroyResizeObserver();\n this.rowNode.setRowAutoHeight(undefined, this.column);\n });\n }\n getCellAriaRole() {\n var _a;\n return (_a = this.column.getColDef().cellAriaRole) !== null && _a !== void 0 ? _a : 'gridcell';\n }\n getInstanceId() {\n return this.instanceId;\n }\n getIncludeSelection() {\n return this.includeSelection;\n }\n getIncludeRowDrag() {\n return this.includeRowDrag;\n }\n getIncludeDndSource() {\n return this.includeDndSource;\n }\n getColumnIdSanitised() {\n return this.colIdSanitised;\n }\n getTabIndex() {\n return this.tabIndex;\n }\n isCellRenderer() {\n const colDef = this.column.getColDef();\n return colDef.cellRenderer != null || colDef.cellRendererSelector != null;\n }\n getValueToDisplay() {\n return this.valueFormatted != null ? this.valueFormatted : this.value;\n }\n showValue(forceNewCellRendererInstance = false) {\n const valueToDisplay = this.getValueToDisplay();\n let compDetails;\n if (this.isCellRenderer()) {\n const params = this.createCellRendererParams();\n compDetails = this.beans.userComponentFactory.getCellRendererDetails(this.column.getColDef(), params);\n }\n this.cellComp.setRenderDetails(compDetails, valueToDisplay, forceNewCellRendererInstance);\n this.refreshHandle();\n }\n setupControlComps() {\n const colDef = this.column.getColDef();\n this.includeSelection = this.isIncludeControl(colDef.checkboxSelection);\n this.includeRowDrag = this.isIncludeControl(colDef.rowDrag);\n this.includeDndSource = this.isIncludeControl(colDef.dndSource);\n this.cellComp.setIncludeSelection(this.includeSelection);\n this.cellComp.setIncludeDndSource(this.includeDndSource);\n this.cellComp.setIncludeRowDrag(this.includeRowDrag);\n }\n isForceWrapper() {\n // text selection requires the value to be wrapped in another element\n const forceWrapper = this.beans.gridOptionsService.get('enableCellTextSelection') || this.column.isAutoHeight();\n return forceWrapper;\n }\n isIncludeControl(value) {\n const rowNodePinned = this.rowNode.rowPinned != null;\n const isFunc = typeof value === 'function';\n const res = rowNodePinned ? false : isFunc || value === true;\n return res;\n }\n refreshShouldDestroy() {\n const colDef = this.column.getColDef();\n const selectionChanged = this.includeSelection != this.isIncludeControl(colDef.checkboxSelection);\n const rowDragChanged = this.includeRowDrag != this.isIncludeControl(colDef.rowDrag);\n const dndSourceChanged = this.includeDndSource != this.isIncludeControl(colDef.dndSource);\n return selectionChanged || rowDragChanged || dndSourceChanged;\n }\n // either called internally if single cell editing, or called by rowRenderer if row editing\n startEditing(key = null, cellStartedEdit = false, event = null) {\n if (!this.isCellEditable() || this.editing) {\n return;\n }\n // because of async in React, the cellComp may not be set yet, if no cellComp then we are\n // yet to initialise the cell, so we re-schedule this operation for when celLComp is attached\n if (!this.cellComp) {\n this.onCellCompAttachedFuncs.push(() => { this.startEditing(key, cellStartedEdit, event); });\n return;\n }\n const editorParams = this.createCellEditorParams(key, cellStartedEdit);\n const colDef = this.column.getColDef();\n const compDetails = this.beans.userComponentFactory.getCellEditorDetails(colDef, editorParams);\n this.editCompDetails = compDetails;\n // if cellEditorSelector was used, we give preference to popup and popupPosition from the selector\n const popup = (compDetails === null || compDetails === void 0 ? void 0 : compDetails.popupFromSelector) != null ? compDetails.popupFromSelector : !!colDef.cellEditorPopup;\n const position = (compDetails === null || compDetails === void 0 ? void 0 : compDetails.popupPositionFromSelector) != null ? compDetails.popupPositionFromSelector : colDef.cellEditorPopupPosition;\n this.setEditing(true);\n this.cellComp.setEditDetails(compDetails, popup, position, this.beans.gridOptionsService.get('reactiveCustomComponents'));\n const e = this.createEvent(event, Events.EVENT_CELL_EDITING_STARTED);\n this.beans.eventService.dispatchEvent(e);\n }\n setEditing(editing) {\n if (this.editing === editing) {\n return;\n }\n this.editing = editing;\n this.refreshHandle();\n }\n // pass in 'true' to cancel the editing.\n stopRowOrCellEdit(cancel = false) {\n if (this.beans.gridOptionsService.get('editType') === 'fullRow') {\n this.rowCtrl.stopEditing(cancel);\n }\n else {\n this.stopEditing(cancel);\n }\n }\n onPopupEditorClosed() {\n if (!this.isEditing()) {\n return;\n }\n // note: this happens because of a click outside of the grid or if the popupEditor\n // is closed with `Escape` key. if another cell was clicked, then the editing will\n // have already stopped and returned on the conditional above.\n this.stopEditingAndFocus();\n }\n takeValueFromCellEditor(cancel) {\n const noValueResult = { newValueExists: false };\n if (cancel) {\n return noValueResult;\n }\n const cellEditor = this.cellComp.getCellEditor();\n if (!cellEditor) {\n return noValueResult;\n }\n const userWantsToCancel = cellEditor.isCancelAfterEnd && cellEditor.isCancelAfterEnd();\n if (userWantsToCancel) {\n return noValueResult;\n }\n const newValue = cellEditor.getValue();\n return {\n newValue: newValue,\n newValueExists: true\n };\n }\n /**\n * @returns `True` if the value changes, otherwise `False`.\n */\n saveNewValue(oldValue, newValue) {\n if (newValue === oldValue) {\n return false;\n }\n // we suppressRefreshCell because the call to rowNode.setDataValue() results in change detection\n // getting triggered, which results in all cells getting refreshed. we do not want this refresh\n // to happen on this call as we want to call it explicitly below. otherwise refresh gets called twice.\n // if we only did this refresh (and not the one below) then the cell would flash and not be forced.\n this.suppressRefreshCell = true;\n const valueChanged = this.rowNode.setDataValue(this.column, newValue, 'edit');\n this.suppressRefreshCell = false;\n return valueChanged;\n }\n /**\n * Ends the Cell Editing\n * @param cancel `True` if the edit process is being canceled.\n * @returns `True` if the value of the `GridCell` has been updated, otherwise `False`.\n */\n stopEditing(cancel = false) {\n if (!this.editing) {\n return false;\n }\n const { newValue, newValueExists } = this.takeValueFromCellEditor(cancel);\n const oldValue = this.rowNode.getValueFromValueService(this.column);\n let valueChanged = false;\n if (newValueExists) {\n valueChanged = this.saveNewValue(oldValue, newValue);\n }\n this.setEditing(false);\n this.cellComp.setEditDetails(); // passing nothing stops editing\n this.editCompDetails = undefined;\n this.updateAndFormatValue(false);\n this.refreshCell({ forceRefresh: true, suppressFlash: true });\n this.dispatchEditingStoppedEvent(oldValue, newValue, !cancel && !!valueChanged);\n return valueChanged;\n }\n dispatchEditingStoppedEvent(oldValue, newValue, valueChanged) {\n const editingStoppedEvent = Object.assign(Object.assign({}, this.createEvent(null, Events.EVENT_CELL_EDITING_STOPPED)), { oldValue,\n newValue,\n valueChanged });\n this.beans.eventService.dispatchEvent(editingStoppedEvent);\n }\n createCellEditorParams(key, cellStartedEdit) {\n return this.beans.gridOptionsService.addGridCommonParams({\n value: this.rowNode.getValueFromValueService(this.column),\n eventKey: key,\n column: this.column,\n colDef: this.column.getColDef(),\n rowIndex: this.getCellPosition().rowIndex,\n node: this.rowNode,\n data: this.rowNode.data,\n cellStartedEdit: cellStartedEdit,\n onKeyDown: this.onKeyDown.bind(this),\n stopEditing: this.stopEditingAndFocus.bind(this),\n eGridCell: this.getGui(),\n parseValue: this.parseValue.bind(this),\n formatValue: this.formatValue.bind(this)\n });\n }\n createCellRendererParams() {\n const res = this.beans.gridOptionsService.addGridCommonParams({\n value: this.value,\n valueFormatted: this.valueFormatted,\n getValue: () => this.rowNode.getValueFromValueService(this.column),\n setValue: (value) => this.beans.valueService.setValue(this.rowNode, this.column, value),\n formatValue: this.formatValue.bind(this),\n data: this.rowNode.data,\n node: this.rowNode,\n pinned: this.column.getPinned(),\n colDef: this.column.getColDef(),\n column: this.column,\n rowIndex: this.getCellPosition().rowIndex,\n refreshCell: this.refreshCell.bind(this),\n eGridCell: this.getGui(),\n eParentOfValue: this.cellComp.getParentOfValue(),\n registerRowDragger: (rowDraggerElement, dragStartPixels, value, suppressVisibilityChange) => this.registerRowDragger(rowDraggerElement, dragStartPixels, suppressVisibilityChange),\n });\n return res;\n }\n parseValue(newValue) {\n return this.beans.valueParserService.parseValue(this.column, this.rowNode, newValue, this.getValue());\n }\n setFocusOutOnEditor() {\n if (!this.editing) {\n return;\n }\n const cellEditor = this.cellComp.getCellEditor();\n if (cellEditor && cellEditor.focusOut) {\n cellEditor.focusOut();\n }\n }\n setFocusInOnEditor() {\n if (!this.editing) {\n return;\n }\n const cellEditor = this.cellComp.getCellEditor();\n if (cellEditor && cellEditor.focusIn) {\n // if the editor is present, then we just focus it\n cellEditor.focusIn();\n }\n else {\n // if the editor is not present, it means async cell editor (eg React fibre)\n // and we are trying to set focus before the cell editor is present, so we\n // focus the cell instead\n this.focusCell(true);\n }\n }\n onCellChanged(event) {\n const eventImpactsThisCell = event.column === this.column;\n if (eventImpactsThisCell) {\n this.refreshCell({});\n }\n }\n refreshOrDestroyCell(params) {\n var _a;\n if (this.refreshShouldDestroy()) {\n (_a = this.rowCtrl) === null || _a === void 0 ? void 0 : _a.refreshCell(this);\n }\n else {\n this.refreshCell(params);\n }\n }\n // + stop editing {forceRefresh: true, suppressFlash: true}\n // + event cellChanged {}\n // + cellRenderer.params.refresh() {} -> method passes 'as is' to the cellRenderer, so params could be anything\n // + rowCtrl: event dataChanged {suppressFlash: !update, newData: !update}\n // + rowCtrl: api refreshCells() {animate: true/false}\n // + rowRenderer: api softRefreshView() {}\n refreshCell(params) {\n var _a, _b, _c;\n // if we are in the middle of 'stopEditing', then we don't refresh here, as refresh gets called explicitly\n if (this.suppressRefreshCell || this.editing) {\n return;\n }\n const colDef = this.column.getColDef();\n const newData = params != null && !!params.newData;\n const suppressFlash = (params != null && !!params.suppressFlash) || !!colDef.suppressCellFlash;\n // we always refresh if cell has no value - this can happen when user provides Cell Renderer and the\n // cell renderer doesn't rely on a value, instead it could be looking directly at the data, or maybe\n // printing the current time (which would be silly)???. Generally speaking\n // non of {field, valueGetter, showRowGroup} is bad in the users application, however for this edge case, it's\n // best always refresh and take the performance hit rather than never refresh and users complaining in support\n // that cells are not updating.\n const noValueProvided = colDef.field == null && colDef.valueGetter == null && colDef.showRowGroup == null;\n const forceRefresh = (params && params.forceRefresh) || noValueProvided || newData;\n const isCellCompReady = !!this.cellComp;\n // Only worth comparing values if the cellComp is ready\n const valuesDifferent = this.updateAndFormatValue(isCellCompReady);\n const dataNeedsUpdating = forceRefresh || valuesDifferent;\n // In React, due to async, it's possible a refresh was asked for before the CellComp was created and calls setComp()\n // So we do not run the cell comp refresh logic at this point in time.\n if (!isCellCompReady) {\n return;\n }\n if (dataNeedsUpdating) {\n // if it's 'new data', then we don't refresh the cellRenderer, even if refresh method is available.\n // this is because if the whole data is new (ie we are showing stock price 'BBA' now and not 'SSD')\n // then we are not showing a movement in the stock price, rather we are showing different stock.\n this.showValue(newData);\n // we don't want to flash the cells when processing a filter change, as otherwise the UI would\n // be to busy. see comment in FilterManager with regards processingFilterChange\n const processingFilterChange = this.beans.filterManager.isSuppressFlashingCellsBecauseFiltering();\n const flashCell = !suppressFlash && !processingFilterChange &&\n (this.beans.gridOptionsService.get('enableCellChangeFlash') || colDef.enableCellChangeFlash);\n if (flashCell) {\n this.flashCell();\n }\n (_a = this.cellCustomStyleFeature) === null || _a === void 0 ? void 0 : _a.applyUserStyles();\n (_b = this.cellCustomStyleFeature) === null || _b === void 0 ? void 0 : _b.applyClassesFromColDef();\n }\n this.refreshToolTip();\n // we do cellClassRules even if the value has not changed, so that users who have rules that\n // look at other parts of the row (where the other part of the row might of changed) will work.\n (_c = this.cellCustomStyleFeature) === null || _c === void 0 ? void 0 : _c.applyCellClassRules();\n }\n // cell editors call this, when they want to stop for reasons other\n // than what we pick up on. eg selecting from a dropdown ends editing.\n stopEditingAndFocus(suppressNavigateAfterEdit = false, shiftKey = false) {\n this.stopRowOrCellEdit();\n this.focusCell(true);\n if (!suppressNavigateAfterEdit) {\n this.navigateAfterEdit(shiftKey);\n }\n }\n navigateAfterEdit(shiftKey) {\n const enterNavigatesVerticallyAfterEdit = this.beans.gridOptionsService.get('enterNavigatesVerticallyAfterEdit');\n if (enterNavigatesVerticallyAfterEdit) {\n const key = shiftKey ? KeyCode.UP : KeyCode.DOWN;\n this.beans.navigationService.navigateToNextCell(null, key, this.getCellPosition(), false);\n }\n }\n // user can also call this via API\n flashCell(delays) {\n var _a, _b;\n const flashDuration = (_a = delays === null || delays === void 0 ? void 0 : delays.flashDuration) !== null && _a !== void 0 ? _a : delays === null || delays === void 0 ? void 0 : delays.flashDelay;\n const fadeDuration = (_b = delays === null || delays === void 0 ? void 0 : delays.fadeDuration) !== null && _b !== void 0 ? _b : delays === null || delays === void 0 ? void 0 : delays.fadeDelay;\n this.animateCell('data-changed', flashDuration, fadeDuration);\n }\n animateCell(cssName, flashDuration, fadeDuration) {\n if (!this.cellComp) {\n return;\n }\n const fullName = `ag-cell-${cssName}`;\n const animationFullName = `ag-cell-${cssName}-animation`;\n const { gridOptionsService } = this.beans;\n if (!flashDuration) {\n flashDuration = gridOptionsService.get('cellFlashDuration');\n }\n if (!exists(fadeDuration)) {\n fadeDuration = gridOptionsService.get('cellFadeDuration');\n }\n // we want to highlight the cells, without any animation\n this.cellComp.addOrRemoveCssClass(fullName, true);\n this.cellComp.addOrRemoveCssClass(animationFullName, false);\n // then once that is applied, we remove the highlight with animation\n this.beans.frameworkOverrides.wrapIncoming(() => {\n window.setTimeout(() => {\n if (!this.isAlive()) {\n return;\n }\n this.cellComp.addOrRemoveCssClass(fullName, false);\n this.cellComp.addOrRemoveCssClass(animationFullName, true);\n this.eGui.style.transition = `background-color ${fadeDuration}ms`;\n window.setTimeout(() => {\n if (!this.isAlive()) {\n return;\n }\n // and then to leave things as we got them, we remove the animation\n this.cellComp.addOrRemoveCssClass(animationFullName, false);\n this.eGui.style.transition = '';\n }, fadeDuration);\n }, flashDuration);\n });\n }\n onFlashCells(event) {\n if (!this.cellComp) {\n return;\n }\n const cellId = this.beans.cellPositionUtils.createId(this.getCellPosition());\n const shouldFlash = event.cells[cellId];\n if (shouldFlash) {\n this.animateCell('highlight');\n }\n }\n isCellEditable() {\n return this.column.isCellEditable(this.rowNode);\n }\n isSuppressFillHandle() {\n return this.column.isSuppressFillHandle();\n }\n formatValue(value) {\n var _a;\n return (_a = this.callValueFormatter(value)) !== null && _a !== void 0 ? _a : value;\n }\n callValueFormatter(value) {\n return this.beans.valueFormatterService.formatValue(this.column, this.rowNode, value);\n }\n updateAndFormatValue(compareValues) {\n const oldValue = this.value;\n const oldValueFormatted = this.valueFormatted;\n this.value = this.rowNode.getValueFromValueService(this.column);\n this.valueFormatted = this.callValueFormatter(this.value);\n if (compareValues) {\n return !this.valuesAreEqual(oldValue, this.value) || this.valueFormatted != oldValueFormatted;\n }\n return true;\n }\n valuesAreEqual(val1, val2) {\n // if the user provided an equals method, use that, otherwise do simple comparison\n const colDef = this.column.getColDef();\n return colDef.equals ? colDef.equals(val1, val2) : val1 === val2;\n }\n getComp() {\n return this.cellComp;\n }\n getValue() {\n return this.value;\n }\n getValueFormatted() {\n return this.valueFormatted;\n }\n addDomData() {\n const element = this.getGui();\n this.beans.gridOptionsService.setDomData(element, CellCtrl.DOM_DATA_KEY_CELL_CTRL, this);\n this.addDestroyFunc(() => this.beans.gridOptionsService.setDomData(element, CellCtrl.DOM_DATA_KEY_CELL_CTRL, null));\n }\n createEvent(domEvent, eventType) {\n const event = this.beans.gridOptionsService.addGridCommonParams({\n type: eventType,\n node: this.rowNode,\n data: this.rowNode.data,\n value: this.value,\n column: this.column,\n colDef: this.column.getColDef(),\n rowPinned: this.rowNode.rowPinned,\n event: domEvent,\n rowIndex: this.rowNode.rowIndex\n });\n return event;\n }\n processCharacter(event) {\n var _a;\n (_a = this.cellKeyboardListenerFeature) === null || _a === void 0 ? void 0 : _a.processCharacter(event);\n }\n onKeyDown(event) {\n var _a;\n (_a = this.cellKeyboardListenerFeature) === null || _a === void 0 ? void 0 : _a.onKeyDown(event);\n }\n onMouseEvent(eventName, mouseEvent) {\n var _a;\n (_a = this.cellMouseListenerFeature) === null || _a === void 0 ? void 0 : _a.onMouseEvent(eventName, mouseEvent);\n }\n getGui() {\n return this.eGui;\n }\n refreshToolTip() {\n var _a;\n (_a = this.tooltipFeature) === null || _a === void 0 ? void 0 : _a.refreshToolTip();\n }\n getColSpanningList() {\n return this.cellPositionFeature.getColSpanningList();\n }\n onLeftChanged() {\n var _a;\n if (!this.cellComp) {\n return;\n }\n (_a = this.cellPositionFeature) === null || _a === void 0 ? void 0 : _a.onLeftChanged();\n }\n onDisplayedColumnsChanged() {\n if (!this.eGui) {\n return;\n }\n this.refreshAriaColIndex();\n this.refreshFirstAndLastStyles();\n }\n refreshFirstAndLastStyles() {\n const { cellComp, column, beans } = this;\n CssClassApplier.refreshFirstAndLastStyles(cellComp, column, beans.columnModel);\n }\n refreshAriaColIndex() {\n const colIdx = this.beans.columnModel.getAriaColumnIndex(this.column);\n setAriaColIndex(this.getGui(), colIdx); // for react, we don't use JSX, as it slowed down column moving\n }\n isSuppressNavigable() {\n return this.column.isSuppressNavigable(this.rowNode);\n }\n onWidthChanged() {\n var _a;\n return (_a = this.cellPositionFeature) === null || _a === void 0 ? void 0 : _a.onWidthChanged();\n }\n getColumn() {\n return this.column;\n }\n getRowNode() {\n return this.rowNode;\n }\n getBeans() {\n return this.beans;\n }\n isPrintLayout() {\n return this.printLayout;\n }\n appendChild(htmlElement) {\n this.eGui.appendChild(htmlElement);\n }\n refreshHandle() {\n if (this.cellRangeFeature) {\n this.cellRangeFeature.refreshHandle();\n }\n }\n getCellPosition() {\n return this.cellPosition;\n }\n isEditing() {\n return this.editing;\n }\n // called by rowRenderer when user navigates via tab key\n startRowOrCellEdit(key, event = null) {\n // because of async in React, the cellComp may not be set yet, if no cellComp then we are\n // yet to initialise the cell, so we re-schedule this operation for when celLComp is attached\n if (!this.cellComp) {\n this.onCellCompAttachedFuncs.push(() => { this.startRowOrCellEdit(key, event); });\n return;\n }\n if (this.beans.gridOptionsService.get('editType') === 'fullRow') {\n this.rowCtrl.startRowEditing(key, this);\n }\n else {\n this.startEditing(key, true, event);\n }\n }\n getRowCtrl() {\n return this.rowCtrl;\n }\n getRowPosition() {\n return {\n rowIndex: this.cellPosition.rowIndex,\n rowPinned: this.cellPosition.rowPinned\n };\n }\n updateRangeBordersIfRangeCount() {\n if (!this.cellComp) {\n return;\n }\n if (this.cellRangeFeature) {\n this.cellRangeFeature.updateRangeBordersIfRangeCount();\n }\n }\n onRangeSelectionChanged() {\n if (!this.cellComp) {\n return;\n }\n if (this.cellRangeFeature) {\n this.cellRangeFeature.onRangeSelectionChanged();\n }\n }\n isRangeSelectionEnabled() {\n return this.cellRangeFeature != null;\n }\n focusCell(forceBrowserFocus = false) {\n this.beans.focusService.setFocusedCell({\n rowIndex: this.getCellPosition().rowIndex,\n column: this.column,\n rowPinned: this.rowNode.rowPinned,\n forceBrowserFocus\n });\n }\n onRowIndexChanged() {\n // when index changes, this influences items that need the index, so we update the\n // grid cell so they are working off the new index.\n this.createCellPosition();\n // when the index of the row changes, ie means the cell may have lost or gained focus\n this.onCellFocused();\n // check range selection\n if (this.cellRangeFeature) {\n this.cellRangeFeature.onRangeSelectionChanged();\n }\n }\n onFirstRightPinnedChanged() {\n if (!this.cellComp) {\n return;\n }\n const firstRightPinned = this.column.isFirstRightPinned();\n this.cellComp.addOrRemoveCssClass(CSS_CELL_FIRST_RIGHT_PINNED, firstRightPinned);\n }\n onLastLeftPinnedChanged() {\n if (!this.cellComp) {\n return;\n }\n const lastLeftPinned = this.column.isLastLeftPinned();\n this.cellComp.addOrRemoveCssClass(CSS_CELL_LAST_LEFT_PINNED, lastLeftPinned);\n }\n onCellFocused(event) {\n if (this.beans.gridOptionsService.get('suppressCellFocus')) {\n return;\n }\n const cellFocused = this.beans.focusService.isCellFocused(this.cellPosition);\n if (!this.cellComp) {\n if (cellFocused && (event === null || event === void 0 ? void 0 : event.forceBrowserFocus)) {\n // The cell comp has not been rendered yet, but the browser focus is being forced for this cell\n // so lets save the event to apply it when setComp is called in the next turn.\n this.focusEventToRestore = event;\n }\n return;\n }\n // Clear the saved focus event\n this.focusEventToRestore = undefined;\n this.cellComp.addOrRemoveCssClass(CSS_CELL_FOCUS, cellFocused);\n // see if we need to force browser focus - this can happen if focus is programmatically set\n if (cellFocused && event && event.forceBrowserFocus) {\n const focusEl = this.cellComp.getFocusableElement();\n focusEl.focus({ preventScroll: !!event.preventScrollOnBrowserFocus });\n }\n // if another cell was focused, and we are editing, then stop editing\n const fullRowEdit = this.beans.gridOptionsService.get('editType') === 'fullRow';\n if (!cellFocused && !fullRowEdit && this.editing) {\n this.stopRowOrCellEdit();\n }\n if (cellFocused) {\n this.rowCtrl.announceDescription();\n }\n }\n createCellPosition() {\n this.cellPosition = {\n rowIndex: this.rowNode.rowIndex,\n rowPinned: makeNull(this.rowNode.rowPinned),\n column: this.column\n };\n }\n // CSS Classes that only get applied once, they never change\n applyStaticCssClasses() {\n this.cellComp.addOrRemoveCssClass(CSS_CELL, true);\n this.cellComp.addOrRemoveCssClass(CSS_CELL_NOT_INLINE_EDITING, true);\n // normal cells fill the height of the row. autoHeight cells have no height to let them\n // fit the height of content.\n const autoHeight = this.column.isAutoHeight() == true;\n this.cellComp.addOrRemoveCssClass(CSS_AUTO_HEIGHT, autoHeight);\n this.cellComp.addOrRemoveCssClass(CSS_NORMAL_HEIGHT, !autoHeight);\n }\n onColumnHover() {\n if (!this.cellComp) {\n return;\n }\n if (!this.beans.gridOptionsService.get('columnHoverHighlight')) {\n return;\n }\n const isHovered = this.beans.columnHoverService.isHovered(this.column);\n this.cellComp.addOrRemoveCssClass(CSS_COLUMN_HOVER, isHovered);\n }\n onColDefChanged() {\n var _a, _b;\n if (!this.cellComp) {\n return;\n }\n const isAutoHeight = this.column.isAutoHeight();\n if (isAutoHeight !== this.isAutoHeight) {\n // auto height uses wrappers, so need to destroy\n (_a = this.rowCtrl) === null || _a === void 0 ? void 0 : _a.refreshCell(this);\n }\n const isTooltipEnabled = this.column.isTooltipEnabled();\n if (isTooltipEnabled) {\n this.disableTooltipFeature();\n this.enableTooltipFeature();\n (_b = this.tooltipFeature) === null || _b === void 0 ? void 0 : _b.setComp(this.eGui);\n }\n else {\n this.disableTooltipFeature();\n }\n this.setWrapText();\n if (!this.editing) {\n this.refreshOrDestroyCell({ forceRefresh: true, suppressFlash: true });\n }\n else {\n const cellEditor = this.getCellEditor();\n if (cellEditor === null || cellEditor === void 0 ? void 0 : cellEditor.refresh) {\n const { eventKey, cellStartedEdit } = this.editCompDetails.params;\n const editorParams = this.createCellEditorParams(eventKey, cellStartedEdit);\n const colDef = this.column.getColDef();\n const compDetails = this.beans.userComponentFactory.getCellEditorDetails(colDef, editorParams);\n cellEditor.refresh(compDetails.params);\n }\n }\n }\n setWrapText() {\n const value = this.column.getColDef().wrapText == true;\n this.cellComp.addOrRemoveCssClass(CSS_CELL_WRAP_TEXT, value);\n }\n dispatchCellContextMenuEvent(event) {\n const colDef = this.column.getColDef();\n const cellContextMenuEvent = this.createEvent(event, Events.EVENT_CELL_CONTEXT_MENU);\n this.beans.eventService.dispatchEvent(cellContextMenuEvent);\n if (colDef.onCellContextMenu) {\n // to make the callback async, do in a timeout\n window.setTimeout(() => {\n this.beans.frameworkOverrides.wrapOutgoing(() => {\n colDef.onCellContextMenu(cellContextMenuEvent);\n });\n }, 0);\n }\n }\n getCellRenderer() {\n return this.cellComp ? this.cellComp.getCellRenderer() : null;\n }\n getCellEditor() {\n return this.cellComp ? this.cellComp.getCellEditor() : null;\n }\n destroy() {\n this.onCellCompAttachedFuncs = [];\n super.destroy();\n }\n createSelectionCheckbox() {\n const cbSelectionComponent = new CheckboxSelectionComponent();\n this.beans.context.createBean(cbSelectionComponent);\n cbSelectionComponent.init({ rowNode: this.rowNode, column: this.column });\n // put the checkbox in before the value\n return cbSelectionComponent;\n }\n createDndSource() {\n const dndSourceComp = new DndSourceComp(this.rowNode, this.column, this.eGui);\n this.beans.context.createBean(dndSourceComp);\n return dndSourceComp;\n }\n registerRowDragger(customElement, dragStartPixels, suppressVisibilityChange) {\n // if previously existed, then we are only updating\n if (this.customRowDragComp) {\n this.customRowDragComp.setDragElement(customElement, dragStartPixels);\n return;\n }\n const newComp = this.createRowDragComp(customElement, dragStartPixels, suppressVisibilityChange);\n if (newComp) {\n this.customRowDragComp = newComp;\n this.addDestroyFunc(() => { this.beans.context.destroyBean(newComp); this.customRowDragComp = null; });\n }\n }\n createRowDragComp(customElement, dragStartPixels, suppressVisibilityChange) {\n const pagination = this.beans.gridOptionsService.get('pagination');\n const rowDragManaged = this.beans.gridOptionsService.get('rowDragManaged');\n const clientSideRowModelActive = this.beans.gridOptionsService.isRowModelType('clientSide');\n if (rowDragManaged) {\n // row dragging only available in default row model\n if (!clientSideRowModelActive) {\n warnOnce('managed row dragging is only allowed in the Client Side Row Model');\n return;\n }\n if (pagination) {\n warnOnce('managed row dragging is not possible when doing pagination');\n return;\n }\n }\n // otherwise (normal case) we are creating a RowDraggingComp for the first time\n const rowDragComp = new RowDragComp(() => this.value, this.rowNode, this.column, customElement, dragStartPixels, suppressVisibilityChange);\n this.beans.context.createBean(rowDragComp);\n return rowDragComp;\n }\n}\nCellCtrl.DOM_DATA_KEY_CELL_CTRL = 'cellCtrl';\n","import { BeanStub } from \"../../context/beanStub.mjs\";\nimport { RowNode } from \"../../entities/rowNode.mjs\";\nimport { RowHighlightPosition } from \"../../interfaces/iRowNode.mjs\";\nimport { Events } from \"../../events.mjs\";\nimport { RowContainerType } from \"../../gridBodyComp/rowContainer/rowContainerCtrl.mjs\";\nimport { ModuleNames } from \"../../modules/moduleNames.mjs\";\nimport { ModuleRegistry } from \"../../modules/moduleRegistry.mjs\";\nimport { setAriaExpanded, setAriaRowIndex, setAriaSelected } from \"../../utils/aria.mjs\";\nimport { isElementChildOfClass } from \"../../utils/dom.mjs\";\nimport { isStopPropagationForAgGrid } from \"../../utils/event.mjs\";\nimport { warnOnce, executeNextVMTurn } from \"../../utils/function.mjs\";\nimport { exists, makeNull } from \"../../utils/generic.mjs\";\nimport { escapeString } from \"../../utils/string.mjs\";\nimport { CellCtrl } from \"../cell/cellCtrl.mjs\";\nimport { RowDragComp } from \"./rowDragComp.mjs\";\nvar RowType;\n(function (RowType) {\n RowType[\"Normal\"] = \"Normal\";\n RowType[\"FullWidth\"] = \"FullWidth\";\n RowType[\"FullWidthLoading\"] = \"FullWidthLoading\";\n RowType[\"FullWidthGroup\"] = \"FullWidthGroup\";\n RowType[\"FullWidthDetail\"] = \"FullWidthDetail\";\n})(RowType || (RowType = {}));\nlet instanceIdSequence = 0;\nexport class RowCtrl extends BeanStub {\n constructor(rowNode, beans, animateIn, useAnimationFrameForCreate, printLayout) {\n super();\n this.allRowGuis = [];\n this.active = true;\n this.centerCellCtrls = { list: [], map: {} };\n this.leftCellCtrls = { list: [], map: {} };\n this.rightCellCtrls = { list: [], map: {} };\n this.slideInAnimation = {\n left: false,\n center: false,\n right: false,\n fullWidth: false\n };\n this.fadeInAnimation = {\n left: false,\n center: false,\n right: false,\n fullWidth: false\n };\n this.rowDragComps = [];\n this.lastMouseDownOnDragger = false;\n this.emptyStyle = {};\n this.updateColumnListsPending = false;\n this.rowId = null;\n this.businessKeySanitised = null;\n this.beans = beans;\n this.gridOptionsService = beans.gridOptionsService;\n this.rowNode = rowNode;\n this.paginationPage = beans.paginationProxy.getCurrentPage();\n this.useAnimationFrameForCreate = useAnimationFrameForCreate;\n this.printLayout = printLayout;\n this.suppressRowTransform = this.gridOptionsService.get('suppressRowTransform');\n this.instanceId = rowNode.id + '-' + instanceIdSequence++;\n this.rowId = escapeString(rowNode.id);\n this.initRowBusinessKey();\n this.rowFocused = beans.focusService.isRowFocused(this.rowNode.rowIndex, this.rowNode.rowPinned);\n this.rowLevel = beans.rowCssClassCalculator.calculateRowLevel(this.rowNode);\n this.setRowType();\n this.setAnimateFlags(animateIn);\n this.rowStyles = this.processStylesFromGridOptions();\n // calls to `isFullWidth()` only work after `setRowType` has been called.\n if (this.isFullWidth() && !this.gridOptionsService.get('suppressCellFocus')) {\n this.tabIndex = -1;\n }\n this.addListeners();\n }\n initRowBusinessKey() {\n this.businessKeyForNodeFunc = this.gridOptionsService.get('getBusinessKeyForNode');\n this.updateRowBusinessKey();\n }\n updateRowBusinessKey() {\n if (typeof this.businessKeyForNodeFunc !== 'function') {\n return;\n }\n const businessKey = this.businessKeyForNodeFunc(this.rowNode);\n this.businessKeySanitised = escapeString(businessKey);\n }\n getRowId() {\n return this.rowId;\n }\n getRowStyles() {\n return this.rowStyles;\n }\n getTabIndex() {\n return this.tabIndex;\n }\n isSticky() {\n return this.rowNode.sticky;\n }\n getBeans() {\n return this.beans;\n }\n getInstanceId() {\n return this.instanceId;\n }\n setComp(rowComp, element, containerType) {\n const gui = { rowComp, element, containerType };\n this.allRowGuis.push(gui);\n if (containerType === RowContainerType.LEFT) {\n this.leftGui = gui;\n }\n else if (containerType === RowContainerType.RIGHT) {\n this.rightGui = gui;\n }\n else if (containerType === RowContainerType.FULL_WIDTH) {\n this.fullWidthGui = gui;\n }\n else {\n this.centerGui = gui;\n }\n this.initialiseRowComp(gui);\n // pinned rows render before the main grid body in the SSRM, only fire the event after the main body has rendered.\n if (this.rowType !== 'FullWidthLoading' && !this.rowNode.rowPinned) {\n // this is fired within setComp as we know that the component renderer is now trying to render.\n // linked with the fact the function implementation queues behind requestAnimationFrame should allow\n // us to be certain that all rendering is done by the time the event fires.\n this.beans.rowRenderer.dispatchFirstDataRenderedEvent();\n }\n }\n unsetComp(containerType) {\n this.allRowGuis = this.allRowGuis\n .filter(rowGui => rowGui.containerType !== containerType);\n switch (containerType) {\n case RowContainerType.LEFT:\n this.leftGui = undefined;\n break;\n case RowContainerType.RIGHT:\n this.rightGui = undefined;\n break;\n case RowContainerType.FULL_WIDTH:\n this.fullWidthGui = undefined;\n break;\n case RowContainerType.CENTER:\n this.centerGui = undefined;\n break;\n default:\n }\n }\n isCacheable() {\n return this.rowType === RowType.FullWidthDetail\n && this.gridOptionsService.get('keepDetailRows');\n }\n setCached(cached) {\n const displayValue = cached ? 'none' : '';\n this.allRowGuis.forEach(rg => rg.element.style.display = displayValue);\n }\n initialiseRowComp(gui) {\n const gos = this.gridOptionsService;\n this.listenOnDomOrder(gui);\n if (this.beans.columnModel.wasAutoRowHeightEverActive()) {\n this.rowNode.checkAutoHeights();\n }\n this.onRowHeightChanged(gui);\n this.updateRowIndexes(gui);\n this.setFocusedClasses(gui);\n this.setStylesFromGridOptions(false, gui); // no need to calculate styles already set in constructor\n if (gos.isRowSelection() && this.rowNode.selectable) {\n this.onRowSelected(gui);\n }\n this.updateColumnLists(!this.useAnimationFrameForCreate);\n const comp = gui.rowComp;\n const initialRowClasses = this.getInitialRowClasses(gui.containerType);\n initialRowClasses.forEach(name => comp.addOrRemoveCssClass(name, true));\n this.executeSlideAndFadeAnimations(gui);\n if (this.rowNode.group) {\n setAriaExpanded(gui.element, this.rowNode.expanded == true);\n }\n this.setRowCompRowId(comp);\n this.setRowCompRowBusinessKey(comp);\n // DOM DATA\n gos.setDomData(gui.element, RowCtrl.DOM_DATA_KEY_ROW_CTRL, this);\n this.addDestroyFunc(() => gos.setDomData(gui.element, RowCtrl.DOM_DATA_KEY_ROW_CTRL, null));\n // adding hover functionality adds listener to this row, so we\n // do it lazily in an animation frame\n if (this.useAnimationFrameForCreate) {\n this.beans.animationFrameService.createTask(this.addHoverFunctionality.bind(this, gui.element), this.rowNode.rowIndex, 'createTasksP2');\n }\n else {\n this.addHoverFunctionality(gui.element);\n }\n if (this.isFullWidth()) {\n this.setupFullWidth(gui);\n }\n if (gos.get('rowDragEntireRow')) {\n this.addRowDraggerToRow(gui);\n }\n if (this.useAnimationFrameForCreate) {\n // the height animation we only want active after the row is alive for 1 second.\n // this stops the row animation working when rows are initially created. otherwise\n // auto-height rows get inserted into the dom and resized immediately, which gives\n // very bad UX (eg 10 rows get inserted, then all 10 expand, look particularly bad\n // when scrolling). so this makes sure when rows are shown for the first time, they\n // are resized immediately without animation.\n this.beans.animationFrameService.addDestroyTask(() => {\n if (!this.isAlive()) {\n return;\n }\n gui.rowComp.addOrRemoveCssClass('ag-after-created', true);\n });\n }\n this.executeProcessRowPostCreateFunc();\n }\n setRowCompRowBusinessKey(comp) {\n if (this.businessKeySanitised == null) {\n return;\n }\n comp.setRowBusinessKey(this.businessKeySanitised);\n }\n getBusinessKey() {\n return this.businessKeySanitised;\n }\n setRowCompRowId(comp) {\n this.rowId = escapeString(this.rowNode.id);\n if (this.rowId == null) {\n return;\n }\n comp.setRowId(this.rowId);\n }\n executeSlideAndFadeAnimations(gui) {\n const { containerType } = gui;\n const shouldSlide = this.slideInAnimation[containerType];\n if (shouldSlide) {\n executeNextVMTurn(() => {\n this.onTopChanged();\n });\n this.slideInAnimation[containerType] = false;\n }\n const shouldFade = this.fadeInAnimation[containerType];\n if (shouldFade) {\n executeNextVMTurn(() => {\n gui.rowComp.addOrRemoveCssClass('ag-opacity-zero', false);\n });\n this.fadeInAnimation[containerType] = false;\n }\n }\n addRowDraggerToRow(gui) {\n if (this.gridOptionsService.get('enableRangeSelection')) {\n warnOnce('Setting `rowDragEntireRow: true` in the gridOptions doesn\\'t work with `enableRangeSelection: true`');\n return;\n }\n const translate = this.beans.localeService.getLocaleTextFunc();\n const rowDragComp = new RowDragComp(() => `1 ${translate('rowDragRow', 'row')}`, this.rowNode, undefined, gui.element, undefined, true);\n const rowDragBean = this.createBean(rowDragComp, this.beans.context);\n this.rowDragComps.push(rowDragBean);\n }\n setupFullWidth(gui) {\n const pinned = this.getPinnedForContainer(gui.containerType);\n const params = this.createFullWidthParams(gui.element, pinned);\n if (this.rowType == RowType.FullWidthDetail) {\n if (!ModuleRegistry.__assertRegistered(ModuleNames.MasterDetailModule, \"cell renderer 'agDetailCellRenderer' (for master detail)\", this.beans.context.getGridId())) {\n return;\n }\n }\n let compDetails;\n switch (this.rowType) {\n case RowType.FullWidthDetail:\n compDetails = this.beans.userComponentFactory.getFullWidthDetailCellRendererDetails(params);\n break;\n case RowType.FullWidthGroup:\n compDetails = this.beans.userComponentFactory.getFullWidthGroupCellRendererDetails(params);\n break;\n case RowType.FullWidthLoading:\n compDetails = this.beans.userComponentFactory.getFullWidthLoadingCellRendererDetails(params);\n break;\n default:\n compDetails = this.beans.userComponentFactory.getFullWidthCellRendererDetails(params);\n break;\n }\n gui.rowComp.showFullWidth(compDetails);\n }\n isPrintLayout() {\n return this.printLayout;\n }\n getFullWidthCellRenderers() {\n var _a, _b;\n if (this.gridOptionsService.get('embedFullWidthRows')) {\n return this.allRowGuis.map(gui => { var _a; return (_a = gui === null || gui === void 0 ? void 0 : gui.rowComp) === null || _a === void 0 ? void 0 : _a.getFullWidthCellRenderer(); });\n }\n return [(_b = (_a = this.fullWidthGui) === null || _a === void 0 ? void 0 : _a.rowComp) === null || _b === void 0 ? void 0 : _b.getFullWidthCellRenderer()];\n }\n // use by autoWidthCalculator, as it clones the elements\n getCellElement(column) {\n const cellCtrl = this.getCellCtrl(column);\n return cellCtrl ? cellCtrl.getGui() : null;\n }\n executeProcessRowPostCreateFunc() {\n const func = this.gridOptionsService.getCallback('processRowPostCreate');\n if (!func || !this.areAllContainersReady()) {\n return;\n }\n const params = {\n // areAllContainersReady asserts that centerGui is not null\n eRow: this.centerGui.element,\n ePinnedLeftRow: this.leftGui ? this.leftGui.element : undefined,\n ePinnedRightRow: this.rightGui ? this.rightGui.element : undefined,\n node: this.rowNode,\n rowIndex: this.rowNode.rowIndex,\n addRenderedRowListener: this.addEventListener.bind(this),\n };\n func(params);\n }\n areAllContainersReady() {\n const isLeftReady = !!this.leftGui || !this.beans.columnModel.isPinningLeft();\n const isCenterReady = !!this.centerGui;\n const isRightReady = !!this.rightGui || !this.beans.columnModel.isPinningRight();\n return isLeftReady && isCenterReady && isRightReady;\n }\n setRowType() {\n const isStub = this.rowNode.stub;\n const isFullWidthCell = this.rowNode.isFullWidthCell();\n const isDetailCell = this.gridOptionsService.get('masterDetail') && this.rowNode.detail;\n const pivotMode = this.beans.columnModel.isPivotMode();\n // we only use full width for groups, not footers. it wouldn't make sense to include footers if not looking\n // for totals. if users complain about this, then we should introduce a new property 'footerUseEntireRow'\n // so each can be set independently (as a customer complained about footers getting full width, hence\n // introducing this logic)\n const isGroupRow = !!this.rowNode.group && !this.rowNode.footer;\n const isFullWidthGroup = isGroupRow && this.gridOptionsService.isGroupUseEntireRow(pivotMode);\n if (isStub) {\n this.rowType = RowType.FullWidthLoading;\n }\n else if (isDetailCell) {\n this.rowType = RowType.FullWidthDetail;\n }\n else if (isFullWidthCell) {\n this.rowType = RowType.FullWidth;\n }\n else if (isFullWidthGroup) {\n this.rowType = RowType.FullWidthGroup;\n }\n else {\n this.rowType = RowType.Normal;\n }\n }\n updateColumnLists(suppressAnimationFrame = false, useFlushSync = false) {\n if (this.isFullWidth()) {\n return;\n }\n const noAnimation = suppressAnimationFrame\n || this.gridOptionsService.get('suppressAnimationFrame')\n || this.printLayout;\n if (noAnimation) {\n this.updateColumnListsImpl(useFlushSync);\n return;\n }\n if (this.updateColumnListsPending) {\n return;\n }\n this.beans.animationFrameService.createTask(() => {\n if (!this.active) {\n return;\n }\n this.updateColumnListsImpl(true);\n }, this.rowNode.rowIndex, 'createTasksP1');\n this.updateColumnListsPending = true;\n }\n createCellCtrls(prev, cols, pinned = null) {\n const res = {\n list: [],\n map: {}\n };\n const addCell = (colInstanceId, cellCtrl) => {\n res.list.push(cellCtrl);\n res.map[colInstanceId] = cellCtrl;\n };\n cols.forEach(col => {\n // we use instanceId's rather than colId as it's possible there is a Column with same Id,\n // but it's referring to a different column instance. Happens a lot with pivot, as pivot col id's are\n // reused eg pivot_0, pivot_1 etc\n const colInstanceId = col.getInstanceId();\n let cellCtrl = prev.map[colInstanceId];\n if (!cellCtrl) {\n cellCtrl = new CellCtrl(col, this.rowNode, this.beans, this);\n }\n addCell(colInstanceId, cellCtrl);\n });\n prev.list.forEach(prevCellCtrl => {\n const cellInResult = res.map[prevCellCtrl.getColumn().getInstanceId()] != null;\n if (cellInResult) {\n return;\n }\n const keepCell = !this.isCellEligibleToBeRemoved(prevCellCtrl, pinned);\n if (keepCell) {\n addCell(prevCellCtrl.getColumn().getInstanceId(), prevCellCtrl);\n return;\n }\n prevCellCtrl.destroy();\n });\n return res;\n }\n updateColumnListsImpl(useFlushSync) {\n this.updateColumnListsPending = false;\n this.createAllCellCtrls();\n this.setCellCtrls(useFlushSync);\n }\n setCellCtrls(useFlushSync) {\n this.allRowGuis.forEach(item => {\n const cellControls = this.getCellCtrlsForContainer(item.containerType);\n item.rowComp.setCellCtrls(cellControls, useFlushSync);\n });\n }\n getCellCtrlsForContainer(containerType) {\n switch (containerType) {\n case RowContainerType.LEFT:\n return this.leftCellCtrls.list;\n case RowContainerType.RIGHT:\n return this.rightCellCtrls.list;\n case RowContainerType.FULL_WIDTH:\n return [];\n case RowContainerType.CENTER:\n return this.centerCellCtrls.list;\n default:\n const exhaustiveCheck = containerType;\n throw new Error(`Unhandled case: ${exhaustiveCheck}`);\n }\n }\n createAllCellCtrls() {\n const columnModel = this.beans.columnModel;\n if (this.printLayout) {\n this.centerCellCtrls = this.createCellCtrls(this.centerCellCtrls, columnModel.getAllDisplayedColumns());\n this.leftCellCtrls = { list: [], map: {} };\n this.rightCellCtrls = { list: [], map: {} };\n }\n else {\n const centerCols = columnModel.getViewportCenterColumnsForRow(this.rowNode);\n this.centerCellCtrls = this.createCellCtrls(this.centerCellCtrls, centerCols);\n const leftCols = columnModel.getDisplayedLeftColumnsForRow(this.rowNode);\n this.leftCellCtrls = this.createCellCtrls(this.leftCellCtrls, leftCols, 'left');\n const rightCols = columnModel.getDisplayedRightColumnsForRow(this.rowNode);\n this.rightCellCtrls = this.createCellCtrls(this.rightCellCtrls, rightCols, 'right');\n }\n }\n isCellEligibleToBeRemoved(cellCtrl, nextContainerPinned) {\n const REMOVE_CELL = true;\n const KEEP_CELL = false;\n // always remove the cell if it's not rendered or if it's in the wrong pinned location\n const column = cellCtrl.getColumn();\n if (column.getPinned() != nextContainerPinned) {\n return REMOVE_CELL;\n }\n // we want to try and keep editing and focused cells\n const editing = cellCtrl.isEditing();\n const focused = this.beans.focusService.isCellFocused(cellCtrl.getCellPosition());\n const mightWantToKeepCell = editing || focused;\n if (mightWantToKeepCell) {\n const column = cellCtrl.getColumn();\n const displayedColumns = this.beans.columnModel.getAllDisplayedColumns();\n const cellStillDisplayed = displayedColumns.indexOf(column) >= 0;\n return cellStillDisplayed ? KEEP_CELL : REMOVE_CELL;\n }\n return REMOVE_CELL;\n }\n getDomOrder() {\n const isEnsureDomOrder = this.gridOptionsService.get('ensureDomOrder');\n return isEnsureDomOrder || this.gridOptionsService.isDomLayout('print');\n }\n listenOnDomOrder(gui) {\n const listener = () => {\n gui.rowComp.setDomOrder(this.getDomOrder());\n };\n this.addManagedPropertyListener('domLayout', listener);\n this.addManagedPropertyListener('ensureDomOrder', listener);\n }\n setAnimateFlags(animateIn) {\n if (this.isSticky() || !animateIn) {\n return;\n }\n const oldRowTopExists = exists(this.rowNode.oldRowTop);\n const pinningLeft = this.beans.columnModel.isPinningLeft();\n const pinningRight = this.beans.columnModel.isPinningRight();\n if (oldRowTopExists) {\n if (this.isFullWidth() && !this.gridOptionsService.get('embedFullWidthRows')) {\n this.slideInAnimation.fullWidth = true;\n return;\n }\n // if the row had a previous position, we slide it in\n this.slideInAnimation.center = true;\n this.slideInAnimation.left = pinningLeft;\n this.slideInAnimation.right = pinningRight;\n }\n else {\n if (this.isFullWidth() && !this.gridOptionsService.get('embedFullWidthRows')) {\n this.fadeInAnimation.fullWidth = true;\n return;\n }\n // if the row had no previous position, we fade it in\n this.fadeInAnimation.center = true;\n this.fadeInAnimation.left = pinningLeft;\n this.fadeInAnimation.right = pinningRight;\n }\n }\n isEditing() {\n return this.editingRow;\n }\n isFullWidth() {\n return this.rowType !== RowType.Normal;\n }\n getRowType() {\n return this.rowType;\n }\n refreshFullWidth() {\n // returns 'true' if refresh succeeded\n const tryRefresh = (gui, pinned) => {\n if (!gui) {\n return true;\n } // no refresh needed\n return gui.rowComp.refreshFullWidth(() => this.createFullWidthParams(gui.element, pinned));\n };\n const fullWidthSuccess = tryRefresh(this.fullWidthGui, null);\n const centerSuccess = tryRefresh(this.centerGui, null);\n const leftSuccess = tryRefresh(this.leftGui, 'left');\n const rightSuccess = tryRefresh(this.rightGui, 'right');\n const allFullWidthRowsRefreshed = fullWidthSuccess && centerSuccess && leftSuccess && rightSuccess;\n return allFullWidthRowsRefreshed;\n }\n addListeners() {\n this.addManagedListener(this.rowNode, RowNode.EVENT_HEIGHT_CHANGED, () => this.onRowHeightChanged());\n this.addManagedListener(this.rowNode, RowNode.EVENT_ROW_SELECTED, () => this.onRowSelected());\n this.addManagedListener(this.rowNode, RowNode.EVENT_ROW_INDEX_CHANGED, this.onRowIndexChanged.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_TOP_CHANGED, this.onTopChanged.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_EXPANDED_CHANGED, this.updateExpandedCss.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_HAS_CHILDREN_CHANGED, this.updateExpandedCss.bind(this));\n if (this.rowNode.detail) {\n // if the master row node has updated data, we also want to try to refresh the detail row\n this.addManagedListener(this.rowNode.parent, RowNode.EVENT_DATA_CHANGED, this.onRowNodeDataChanged.bind(this));\n }\n this.addManagedListener(this.rowNode, RowNode.EVENT_DATA_CHANGED, this.onRowNodeDataChanged.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_CELL_CHANGED, this.postProcessCss.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_HIGHLIGHT_CHANGED, this.onRowNodeHighlightChanged.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_DRAGGING_CHANGED, this.postProcessRowDragging.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_UI_LEVEL_CHANGED, this.onUiLevelChanged.bind(this));\n const eventService = this.beans.eventService;\n this.addManagedListener(eventService, Events.EVENT_PAGINATION_PIXEL_OFFSET_CHANGED, this.onPaginationPixelOffsetChanged.bind(this));\n this.addManagedListener(eventService, Events.EVENT_HEIGHT_SCALE_CHANGED, this.onTopChanged.bind(this));\n this.addManagedListener(eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayedColumnsChanged.bind(this));\n this.addManagedListener(eventService, Events.EVENT_VIRTUAL_COLUMNS_CHANGED, this.onVirtualColumnsChanged.bind(this));\n this.addManagedListener(eventService, Events.EVENT_CELL_FOCUSED, this.onCellFocusChanged.bind(this));\n this.addManagedListener(eventService, Events.EVENT_CELL_FOCUS_CLEARED, this.onCellFocusChanged.bind(this));\n this.addManagedListener(eventService, Events.EVENT_PAGINATION_CHANGED, this.onPaginationChanged.bind(this));\n this.addManagedListener(eventService, Events.EVENT_MODEL_UPDATED, this.refreshFirstAndLastRowStyles.bind(this));\n this.addManagedListener(eventService, Events.EVENT_COLUMN_MOVED, this.updateColumnLists.bind(this));\n this.addDestroyFunc(() => {\n this.destroyBeans(this.rowDragComps, this.beans.context);\n });\n this.addManagedPropertyListeners(['rowDragEntireRow'], () => {\n const useRowDragEntireRow = this.gridOptionsService.get('rowDragEntireRow');\n if (useRowDragEntireRow) {\n this.allRowGuis.forEach(gui => {\n this.addRowDraggerToRow(gui);\n });\n return;\n }\n this.destroyBeans(this.rowDragComps, this.beans.context);\n this.rowDragComps = [];\n });\n this.addListenersForCellComps();\n }\n addListenersForCellComps() {\n this.addManagedListener(this.rowNode, RowNode.EVENT_ROW_INDEX_CHANGED, () => {\n this.getAllCellCtrls().forEach(cellCtrl => cellCtrl.onRowIndexChanged());\n });\n this.addManagedListener(this.rowNode, RowNode.EVENT_CELL_CHANGED, event => {\n this.getAllCellCtrls().forEach(cellCtrl => cellCtrl.onCellChanged(event));\n });\n }\n onRowNodeDataChanged(event) {\n // if the row is rendered incorrectly, as the requirements for whether this is a FW row have changed, we force re-render this row.\n const fullWidthChanged = this.isFullWidth() !== !!this.rowNode.isFullWidthCell();\n if (fullWidthChanged) {\n this.beans.rowRenderer.redrawRow(this.rowNode);\n return;\n }\n // this bit of logic handles trying to refresh the FW row ctrl, or delegating to removing/recreating it if unsupported.\n if (this.isFullWidth()) {\n const refresh = this.refreshFullWidth();\n if (!refresh) {\n this.beans.rowRenderer.redrawRow(this.rowNode);\n }\n return;\n }\n // if this is an update, we want to refresh, as this will allow the user to put in a transition\n // into the cellRenderer refresh method. otherwise this might be completely new data, in which case\n // we will want to completely replace the cells\n this.getAllCellCtrls().forEach(cellCtrl => cellCtrl.refreshCell({\n suppressFlash: !event.update,\n newData: !event.update\n }));\n // as data has changed update the dom row id attributes\n this.allRowGuis.forEach(gui => {\n this.setRowCompRowId(gui.rowComp);\n this.updateRowBusinessKey();\n this.setRowCompRowBusinessKey(gui.rowComp);\n });\n // check for selected also, as this could be after lazy loading of the row data, in which case\n // the id might of just gotten set inside the row and the row selected state may of changed\n // as a result. this is what happens when selected rows are loaded in virtual pagination.\n // - niall note - since moving to the stub component, this may no longer be true, as replacing\n // the stub component now replaces the entire row\n this.onRowSelected();\n // as data has changed, then the style and class needs to be recomputed\n this.postProcessCss();\n }\n postProcessCss() {\n this.setStylesFromGridOptions(true);\n this.postProcessClassesFromGridOptions();\n this.postProcessRowClassRules();\n this.postProcessRowDragging();\n }\n onRowNodeHighlightChanged() {\n const highlighted = this.rowNode.highlighted;\n this.allRowGuis.forEach(gui => {\n const aboveOn = highlighted === RowHighlightPosition.Above;\n const belowOn = highlighted === RowHighlightPosition.Below;\n gui.rowComp.addOrRemoveCssClass('ag-row-highlight-above', aboveOn);\n gui.rowComp.addOrRemoveCssClass('ag-row-highlight-below', belowOn);\n });\n }\n postProcessRowDragging() {\n const dragging = this.rowNode.dragging;\n this.allRowGuis.forEach(gui => gui.rowComp.addOrRemoveCssClass('ag-row-dragging', dragging));\n }\n updateExpandedCss() {\n const expandable = this.rowNode.isExpandable();\n const expanded = this.rowNode.expanded == true;\n this.allRowGuis.forEach(gui => {\n gui.rowComp.addOrRemoveCssClass('ag-row-group', expandable);\n gui.rowComp.addOrRemoveCssClass('ag-row-group-expanded', expandable && expanded);\n gui.rowComp.addOrRemoveCssClass('ag-row-group-contracted', expandable && !expanded);\n setAriaExpanded(gui.element, expandable && expanded);\n });\n }\n onDisplayedColumnsChanged() {\n // we skip animations for onDisplayedColumnChanged, as otherwise the client could remove columns and\n // then set data, and any old valueGetter's (ie from cols that were removed) would still get called.\n this.updateColumnLists(true);\n if (this.beans.columnModel.wasAutoRowHeightEverActive()) {\n this.rowNode.checkAutoHeights();\n }\n }\n onVirtualColumnsChanged() {\n this.updateColumnLists(false, true);\n }\n getRowPosition() {\n return {\n rowPinned: makeNull(this.rowNode.rowPinned),\n rowIndex: this.rowNode.rowIndex\n };\n }\n onKeyboardNavigate(keyboardEvent) {\n const currentFullWidthComp = this.allRowGuis.find(c => c.element.contains(keyboardEvent.target));\n const currentFullWidthContainer = currentFullWidthComp ? currentFullWidthComp.element : null;\n const isFullWidthContainerFocused = currentFullWidthContainer === keyboardEvent.target;\n if (!isFullWidthContainerFocused) {\n return;\n }\n const node = this.rowNode;\n const lastFocusedCell = this.beans.focusService.getFocusedCell();\n const cellPosition = {\n rowIndex: node.rowIndex,\n rowPinned: node.rowPinned,\n column: (lastFocusedCell && lastFocusedCell.column)\n };\n this.beans.navigationService.navigateToNextCell(keyboardEvent, keyboardEvent.key, cellPosition, true);\n keyboardEvent.preventDefault();\n }\n onTabKeyDown(keyboardEvent) {\n if (keyboardEvent.defaultPrevented || isStopPropagationForAgGrid(keyboardEvent)) {\n return;\n }\n const currentFullWidthComp = this.allRowGuis.find(c => c.element.contains(keyboardEvent.target));\n const currentFullWidthContainer = currentFullWidthComp ? currentFullWidthComp.element : null;\n const isFullWidthContainerFocused = currentFullWidthContainer === keyboardEvent.target;\n let nextEl = null;\n if (!isFullWidthContainerFocused) {\n nextEl = this.beans.focusService.findNextFocusableElement(currentFullWidthContainer, false, keyboardEvent.shiftKey);\n }\n if ((this.isFullWidth() && isFullWidthContainerFocused) || !nextEl) {\n this.beans.navigationService.onTabKeyDown(this, keyboardEvent);\n }\n }\n onFullWidthRowFocused(event) {\n var _a;\n const node = this.rowNode;\n const isFocused = !event ? false : this.isFullWidth() && event.rowIndex === node.rowIndex && event.rowPinned == node.rowPinned;\n const element = this.fullWidthGui ? this.fullWidthGui.element : (_a = this.centerGui) === null || _a === void 0 ? void 0 : _a.element;\n if (!element) {\n return;\n } // can happen with react ui, comp not yet ready\n element.classList.toggle('ag-full-width-focus', isFocused);\n if (isFocused) {\n // we don't scroll normal rows into view when we focus them, so we don't want\n // to scroll Full Width rows either.\n element.focus({ preventScroll: true });\n }\n }\n refreshCell(cellCtrl) {\n this.centerCellCtrls = this.removeCellCtrl(this.centerCellCtrls, cellCtrl);\n this.leftCellCtrls = this.removeCellCtrl(this.leftCellCtrls, cellCtrl);\n this.rightCellCtrls = this.removeCellCtrl(this.rightCellCtrls, cellCtrl);\n this.updateColumnLists();\n }\n removeCellCtrl(prev, cellCtrlToRemove) {\n const res = {\n list: [],\n map: {}\n };\n prev.list.forEach(cellCtrl => {\n if (cellCtrl === cellCtrlToRemove) {\n return;\n }\n res.list.push(cellCtrl);\n res.map[cellCtrl.getInstanceId()] = cellCtrl;\n });\n return res;\n }\n onMouseEvent(eventName, mouseEvent) {\n switch (eventName) {\n case 'dblclick':\n this.onRowDblClick(mouseEvent);\n break;\n case 'click':\n this.onRowClick(mouseEvent);\n break;\n case 'touchstart':\n case 'mousedown':\n this.onRowMouseDown(mouseEvent);\n break;\n }\n }\n createRowEvent(type, domEvent) {\n return this.gridOptionsService.addGridCommonParams({\n type: type,\n node: this.rowNode,\n data: this.rowNode.data,\n rowIndex: this.rowNode.rowIndex,\n rowPinned: this.rowNode.rowPinned,\n event: domEvent\n });\n }\n createRowEventWithSource(type, domEvent) {\n const event = this.createRowEvent(type, domEvent);\n // when first developing this, we included the rowComp in the event.\n // this seems very weird. so when introducing the event types, i left the 'source'\n // out of the type, and just include the source in the two places where this event\n // was fired (rowClicked and rowDoubleClicked). it doesn't make sense for any\n // users to be using this, as the rowComp isn't an object we expose, so would be\n // very surprising if a user was using it.\n event.source = this;\n return event;\n }\n onRowDblClick(mouseEvent) {\n if (isStopPropagationForAgGrid(mouseEvent)) {\n return;\n }\n const agEvent = this.createRowEventWithSource(Events.EVENT_ROW_DOUBLE_CLICKED, mouseEvent);\n this.beans.eventService.dispatchEvent(agEvent);\n }\n onRowMouseDown(mouseEvent) {\n this.lastMouseDownOnDragger = isElementChildOfClass(mouseEvent.target, 'ag-row-drag', 3);\n if (!this.isFullWidth()) {\n return;\n }\n const node = this.rowNode;\n const columnModel = this.beans.columnModel;\n if (this.beans.rangeService) {\n this.beans.rangeService.removeAllCellRanges();\n }\n this.beans.focusService.setFocusedCell({\n rowIndex: node.rowIndex,\n column: columnModel.getAllDisplayedColumns()[0],\n rowPinned: node.rowPinned,\n forceBrowserFocus: true\n });\n }\n onRowClick(mouseEvent) {\n const stop = isStopPropagationForAgGrid(mouseEvent) || this.lastMouseDownOnDragger;\n if (stop) {\n return;\n }\n const agEvent = this.createRowEventWithSource(Events.EVENT_ROW_CLICKED, mouseEvent);\n this.beans.eventService.dispatchEvent(agEvent);\n // ctrlKey for windows, metaKey for Apple\n const isMultiKey = mouseEvent.ctrlKey || mouseEvent.metaKey;\n const isShiftKey = mouseEvent.shiftKey;\n // we do not allow selecting the group by clicking, when groupSelectChildren, as the logic to\n // handle this is broken. to observe, change the logic below and allow groups to be selected.\n // you will see the group gets selected, then all children get selected, then the grid unselects\n // the children (as the default behaviour when clicking is to unselect other rows) which results\n // in the group getting unselected (as all children are unselected). the correct thing would be\n // to change this, so that children of the selected group are not then subsequently un-selected.\n const groupSelectsChildren = this.gridOptionsService.get('groupSelectsChildren');\n if (\n // we do not allow selecting groups by clicking (as the click here expands the group), or if it's a detail row,\n // so return if it's a group row\n (groupSelectsChildren && this.rowNode.group) ||\n this.isRowSelectionBlocked() ||\n // if click selection suppressed, do nothing\n this.gridOptionsService.get('suppressRowClickSelection')) {\n return;\n }\n const multiSelectOnClick = this.gridOptionsService.get('rowMultiSelectWithClick');\n const rowDeselectionWithCtrl = !this.gridOptionsService.get('suppressRowDeselection');\n const source = 'rowClicked';\n if (this.rowNode.isSelected()) {\n if (multiSelectOnClick) {\n this.rowNode.setSelectedParams({ newValue: false, event: mouseEvent, source });\n }\n else if (isMultiKey) {\n if (rowDeselectionWithCtrl) {\n this.rowNode.setSelectedParams({ newValue: false, event: mouseEvent, source });\n }\n }\n else {\n // selected with no multi key, must make sure anything else is unselected\n this.rowNode.setSelectedParams({ newValue: true, clearSelection: !isShiftKey, rangeSelect: isShiftKey, event: mouseEvent, source });\n }\n }\n else {\n const clearSelection = multiSelectOnClick ? false : !isMultiKey;\n this.rowNode.setSelectedParams({ newValue: true, clearSelection: clearSelection, rangeSelect: isShiftKey, event: mouseEvent, source });\n }\n }\n isRowSelectionBlocked() {\n return !this.rowNode.selectable || !!this.rowNode.rowPinned || !this.gridOptionsService.isRowSelection();\n }\n setupDetailRowAutoHeight(eDetailGui) {\n if (this.rowType !== RowType.FullWidthDetail) {\n return;\n }\n if (!this.gridOptionsService.get('detailRowAutoHeight')) {\n return;\n }\n const checkRowSizeFunc = () => {\n const clientHeight = eDetailGui.clientHeight;\n // if the UI is not ready, the height can be 0, which we ignore, as otherwise a flicker will occur\n // as UI goes from the default height, to 0, then to the real height as UI becomes ready. this means\n // it's not possible for have 0 as auto-height, however this is an improbable use case, as even an\n // empty detail grid would still have some styling around it giving at least a few pixels.\n if (clientHeight != null && clientHeight > 0) {\n // we do the update in a timeout, to make sure we are not calling from inside the grid\n // doing another update\n const updateRowHeightFunc = () => {\n this.rowNode.setRowHeight(clientHeight);\n if (this.beans.clientSideRowModel) {\n this.beans.clientSideRowModel.onRowHeightChanged();\n }\n else if (this.beans.serverSideRowModel) {\n this.beans.serverSideRowModel.onRowHeightChanged();\n }\n };\n window.setTimeout(updateRowHeightFunc, 0);\n }\n };\n const resizeObserverDestroyFunc = this.beans.resizeObserverService.observeResize(eDetailGui, checkRowSizeFunc);\n this.addDestroyFunc(resizeObserverDestroyFunc);\n checkRowSizeFunc();\n }\n createFullWidthParams(eRow, pinned) {\n const params = this.gridOptionsService.addGridCommonParams({\n fullWidth: true,\n data: this.rowNode.data,\n node: this.rowNode,\n value: this.rowNode.key,\n valueFormatted: this.rowNode.key,\n rowIndex: this.rowNode.rowIndex,\n // these need to be taken out, as part of 'afterAttached' now\n eGridCell: eRow,\n eParentOfValue: eRow,\n pinned: pinned,\n addRenderedRowListener: this.addEventListener.bind(this),\n registerRowDragger: (rowDraggerElement, dragStartPixels, value, suppressVisibilityChange) => this.addFullWidthRowDragging(rowDraggerElement, dragStartPixels, value, suppressVisibilityChange)\n });\n return params;\n }\n addFullWidthRowDragging(rowDraggerElement, dragStartPixels, value = '', suppressVisibilityChange) {\n if (!this.isFullWidth()) {\n return;\n }\n const rowDragComp = new RowDragComp(() => value, this.rowNode, undefined, rowDraggerElement, dragStartPixels, suppressVisibilityChange);\n this.createManagedBean(rowDragComp, this.beans.context);\n }\n onUiLevelChanged() {\n const newLevel = this.beans.rowCssClassCalculator.calculateRowLevel(this.rowNode);\n if (this.rowLevel != newLevel) {\n const classToAdd = 'ag-row-level-' + newLevel;\n const classToRemove = 'ag-row-level-' + this.rowLevel;\n this.allRowGuis.forEach(gui => {\n gui.rowComp.addOrRemoveCssClass(classToAdd, true);\n gui.rowComp.addOrRemoveCssClass(classToRemove, false);\n });\n }\n this.rowLevel = newLevel;\n }\n isFirstRowOnPage() {\n return this.rowNode.rowIndex === this.beans.paginationProxy.getPageFirstRow();\n }\n isLastRowOnPage() {\n return this.rowNode.rowIndex === this.beans.paginationProxy.getPageLastRow();\n }\n refreshFirstAndLastRowStyles() {\n const newFirst = this.isFirstRowOnPage();\n const newLast = this.isLastRowOnPage();\n if (this.firstRowOnPage !== newFirst) {\n this.firstRowOnPage = newFirst;\n this.allRowGuis.forEach(gui => gui.rowComp.addOrRemoveCssClass('ag-row-first', newFirst));\n }\n if (this.lastRowOnPage !== newLast) {\n this.lastRowOnPage = newLast;\n this.allRowGuis.forEach(gui => gui.rowComp.addOrRemoveCssClass('ag-row-last', newLast));\n }\n }\n stopEditing(cancel = false) {\n // if we are already stopping row edit, there is\n // no need to start this process again.\n if (this.stoppingRowEdit) {\n return;\n }\n const cellControls = this.getAllCellCtrls();\n const isRowEdit = this.editingRow;\n this.stoppingRowEdit = true;\n let fireRowEditEvent = false;\n for (const ctrl of cellControls) {\n const valueChanged = ctrl.stopEditing(cancel);\n if (isRowEdit && !cancel && !fireRowEditEvent && valueChanged) {\n fireRowEditEvent = true;\n }\n }\n if (fireRowEditEvent) {\n const event = this.createRowEvent(Events.EVENT_ROW_VALUE_CHANGED);\n this.beans.eventService.dispatchEvent(event);\n }\n if (isRowEdit) {\n this.setEditingRow(false);\n }\n this.stoppingRowEdit = false;\n }\n setInlineEditingCss(editing) {\n this.allRowGuis.forEach(gui => {\n gui.rowComp.addOrRemoveCssClass(\"ag-row-inline-editing\", editing);\n gui.rowComp.addOrRemoveCssClass(\"ag-row-not-inline-editing\", !editing);\n });\n }\n setEditingRow(value) {\n this.editingRow = value;\n this.allRowGuis.forEach(gui => gui.rowComp.addOrRemoveCssClass('ag-row-editing', value));\n const event = value ?\n this.createRowEvent(Events.EVENT_ROW_EDITING_STARTED)\n : this.createRowEvent(Events.EVENT_ROW_EDITING_STOPPED);\n this.beans.eventService.dispatchEvent(event);\n }\n startRowEditing(key = null, sourceRenderedCell = null, event = null) {\n // don't do it if already editing\n if (this.editingRow) {\n return;\n }\n const atLeastOneEditing = this.getAllCellCtrls().reduce((prev, cellCtrl) => {\n const cellStartedEdit = cellCtrl === sourceRenderedCell;\n if (cellStartedEdit) {\n cellCtrl.startEditing(key, cellStartedEdit, event);\n }\n else {\n cellCtrl.startEditing(null, cellStartedEdit, event);\n }\n if (prev) {\n return true;\n }\n return cellCtrl.isEditing();\n }, false);\n if (atLeastOneEditing) {\n this.setEditingRow(true);\n }\n }\n getAllCellCtrls() {\n if (this.leftCellCtrls.list.length === 0 && this.rightCellCtrls.list.length === 0) {\n return this.centerCellCtrls.list;\n }\n const res = [...this.centerCellCtrls.list, ...this.leftCellCtrls.list, ...this.rightCellCtrls.list];\n return res;\n }\n postProcessClassesFromGridOptions() {\n const cssClasses = this.beans.rowCssClassCalculator.processClassesFromGridOptions(this.rowNode);\n if (!cssClasses || !cssClasses.length) {\n return;\n }\n cssClasses.forEach(classStr => {\n this.allRowGuis.forEach(c => c.rowComp.addOrRemoveCssClass(classStr, true));\n });\n }\n postProcessRowClassRules() {\n this.beans.rowCssClassCalculator.processRowClassRules(this.rowNode, (className) => {\n this.allRowGuis.forEach(gui => gui.rowComp.addOrRemoveCssClass(className, true));\n }, (className) => {\n this.allRowGuis.forEach(gui => gui.rowComp.addOrRemoveCssClass(className, false));\n });\n }\n setStylesFromGridOptions(updateStyles, gui) {\n if (updateStyles) {\n this.rowStyles = this.processStylesFromGridOptions();\n }\n this.forEachGui(gui, gui => gui.rowComp.setUserStyles(this.rowStyles));\n }\n getPinnedForContainer(rowContainerType) {\n const pinned = rowContainerType === RowContainerType.LEFT\n ? 'left'\n : rowContainerType === RowContainerType.RIGHT\n ? 'right'\n : null;\n return pinned;\n }\n getInitialRowClasses(rowContainerType) {\n const pinned = this.getPinnedForContainer(rowContainerType);\n const params = {\n rowNode: this.rowNode,\n rowFocused: this.rowFocused,\n fadeRowIn: this.fadeInAnimation[rowContainerType],\n rowIsEven: this.rowNode.rowIndex % 2 === 0,\n rowLevel: this.rowLevel,\n fullWidthRow: this.isFullWidth(),\n firstRowOnPage: this.isFirstRowOnPage(),\n lastRowOnPage: this.isLastRowOnPage(),\n printLayout: this.printLayout,\n expandable: this.rowNode.isExpandable(),\n pinned: pinned\n };\n return this.beans.rowCssClassCalculator.getInitialRowClasses(params);\n }\n processStylesFromGridOptions() {\n // part 1 - rowStyle\n const rowStyle = this.gridOptionsService.get('rowStyle');\n if (rowStyle && typeof rowStyle === 'function') {\n console.warn('AG Grid: rowStyle should be an object of key/value styles, not be a function, use getRowStyle() instead');\n return;\n }\n // part 1 - rowStyleFunc\n const rowStyleFunc = this.gridOptionsService.getCallback('getRowStyle');\n let rowStyleFuncResult;\n if (rowStyleFunc) {\n const params = {\n data: this.rowNode.data,\n node: this.rowNode,\n rowIndex: this.rowNode.rowIndex\n };\n rowStyleFuncResult = rowStyleFunc(params);\n }\n if (rowStyleFuncResult || rowStyle) {\n return Object.assign({}, rowStyle, rowStyleFuncResult);\n }\n // Return constant reference for React\n return this.emptyStyle;\n }\n onRowSelected(gui) {\n const eDocument = this.beans.gridOptionsService.getDocument();\n // Treat undefined as false, if we pass undefined down it gets treated as toggle class, rather than explicitly\n // setting the required value\n const selected = !!this.rowNode.isSelected();\n this.forEachGui(gui, gui => {\n gui.rowComp.addOrRemoveCssClass('ag-row-selected', selected);\n setAriaSelected(gui.element, selected);\n const hasFocus = gui.element.contains(eDocument.activeElement);\n if (hasFocus && (gui === this.centerGui || gui === this.fullWidthGui)) {\n this.announceDescription();\n }\n });\n }\n announceDescription() {\n if (this.isRowSelectionBlocked()) {\n return;\n }\n const selected = this.rowNode.isSelected();\n if (selected && this.beans.gridOptionsService.get('suppressRowDeselection')) {\n return;\n }\n const translate = this.beans.localeService.getLocaleTextFunc();\n const label = translate(selected ? 'ariaRowDeselect' : 'ariaRowSelect', `Press SPACE to ${selected ? 'deselect' : 'select'} this row.`);\n this.beans.ariaAnnouncementService.announceValue(label);\n }\n isUseAnimationFrameForCreate() {\n return this.useAnimationFrameForCreate;\n }\n addHoverFunctionality(eRow) {\n // because we use animation frames to do this, it's possible the row no longer exists\n // by the time we get to add it\n if (!this.active) {\n return;\n }\n // because mouseenter and mouseleave do not propagate, we cannot listen on the gridPanel\n // like we do for all the other mouse events.\n // because of the pinning, we cannot simply add / remove the class based on the eRow. we\n // have to check all eRow's (body & pinned). so the trick is if any of the rows gets a\n // mouse hover, it sets such in the rowNode, and then all three reflect the change as\n // all are listening for event on the row node.\n // step 1 - add listener, to set flag on row node\n this.addManagedListener(eRow, 'mouseenter', () => this.rowNode.onMouseEnter());\n this.addManagedListener(eRow, 'mouseleave', () => this.rowNode.onMouseLeave());\n // step 2 - listen for changes on row node (which any eRow can trigger)\n this.addManagedListener(this.rowNode, RowNode.EVENT_MOUSE_ENTER, () => {\n // if hover turned off, we don't add the class. we do this here so that if the application\n // toggles this property mid way, we remove the hover form the last row, but we stop\n // adding hovers from that point onwards. Also, do not highlight while dragging elements around.\n if (!this.beans.dragService.isDragging() &&\n !this.gridOptionsService.get('suppressRowHoverHighlight')) {\n eRow.classList.add('ag-row-hover');\n this.rowNode.setHovered(true);\n }\n });\n this.addManagedListener(this.rowNode, RowNode.EVENT_MOUSE_LEAVE, () => {\n eRow.classList.remove('ag-row-hover');\n this.rowNode.setHovered(false);\n });\n }\n // for animation, we don't want to animate entry or exit to a very far away pixel,\n // otherwise the row would move so fast, it would appear to disappear. so this method\n // moves the row closer to the viewport if it is far away, so the row slide in / out\n // at a speed the user can see.\n roundRowTopToBounds(rowTop) {\n const range = this.beans.ctrlsService.getGridBodyCtrl().getScrollFeature().getApproximateVScollPosition();\n const minPixel = this.applyPaginationOffset(range.top, true) - 100;\n const maxPixel = this.applyPaginationOffset(range.bottom, true) + 100;\n return Math.min(Math.max(minPixel, rowTop), maxPixel);\n }\n getFrameworkOverrides() {\n return this.beans.frameworkOverrides;\n }\n forEachGui(gui, callback) {\n if (gui) {\n callback(gui);\n }\n else {\n this.allRowGuis.forEach(callback);\n }\n }\n onRowHeightChanged(gui) {\n // check for exists first - if the user is resetting the row height, then\n // it will be null (or undefined) momentarily until the next time the flatten\n // stage is called where the row will then update again with a new height\n if (this.rowNode.rowHeight == null) {\n return;\n }\n const rowHeight = this.rowNode.rowHeight;\n const defaultRowHeight = this.beans.environment.getDefaultRowHeight();\n const isHeightFromFunc = this.gridOptionsService.isGetRowHeightFunction();\n const heightFromFunc = isHeightFromFunc ? this.gridOptionsService.getRowHeightForNode(this.rowNode).height : undefined;\n const lineHeight = heightFromFunc ? `${Math.min(defaultRowHeight, heightFromFunc) - 2}px` : undefined;\n this.forEachGui(gui, gui => {\n gui.element.style.height = `${rowHeight}px`;\n // If the row height is coming from a function, this means some rows can\n // be smaller than the theme had intended. so we set --ag-line-height on\n // the row, which is picked up by the theme CSS and is used in a calc\n // for the CSS line-height property, which makes sure the line-height is\n // not bigger than the row height, otherwise the row text would not fit.\n // We do not use rowNode.rowHeight here, as this could be the result of autoHeight,\n // and we found using the autoHeight result causes a loop, where changing the\n // line-height them impacts the cell height, resulting in a new autoHeight,\n // resulting in a new line-height and so on loop.\n // const heightFromFunc = this.gridOptionsService.getRowHeightForNode(this.rowNode).height;\n if (lineHeight) {\n gui.element.style.setProperty('--ag-line-height', lineHeight);\n }\n });\n }\n addEventListener(eventType, listener) {\n super.addEventListener(eventType, listener);\n }\n removeEventListener(eventType, listener) {\n super.removeEventListener(eventType, listener);\n }\n // note - this is NOT called by context, as we don't wire / unwire the CellComp for performance reasons.\n destroyFirstPass(suppressAnimation = false) {\n this.active = false;\n // why do we have this method? shouldn't everything below be added as a destroy func beside\n // the corresponding create logic?\n if (!suppressAnimation && this.gridOptionsService.isAnimateRows() && !this.isSticky()) {\n const rowStillVisibleJustNotInViewport = this.rowNode.rowTop != null;\n if (rowStillVisibleJustNotInViewport) {\n // if the row is not rendered, but in viewport, it means it has moved,\n // so we animate the row out. if the new location is very far away,\n // the animation will be so fast the row will look like it's just disappeared,\n // so instead we animate to a position just outside the viewport.\n const rowTop = this.roundRowTopToBounds(this.rowNode.rowTop);\n this.setRowTop(rowTop);\n }\n else {\n this.allRowGuis.forEach(gui => gui.rowComp.addOrRemoveCssClass('ag-opacity-zero', true));\n }\n }\n this.rowNode.setHovered(false);\n const event = this.createRowEvent(Events.EVENT_VIRTUAL_ROW_REMOVED);\n this.dispatchEvent(event);\n this.beans.eventService.dispatchEvent(event);\n super.destroy();\n }\n destroySecondPass() {\n this.allRowGuis.length = 0;\n // if we are editing, destroying the row will stop editing\n this.stopEditing();\n const destroyCellCtrls = (ctrls) => {\n ctrls.list.forEach(c => c.destroy());\n return { list: [], map: {} };\n };\n this.centerCellCtrls = destroyCellCtrls(this.centerCellCtrls);\n this.leftCellCtrls = destroyCellCtrls(this.leftCellCtrls);\n this.rightCellCtrls = destroyCellCtrls(this.rightCellCtrls);\n }\n setFocusedClasses(gui) {\n this.forEachGui(gui, gui => {\n gui.rowComp.addOrRemoveCssClass('ag-row-focus', this.rowFocused);\n gui.rowComp.addOrRemoveCssClass('ag-row-no-focus', !this.rowFocused);\n });\n }\n onCellFocusChanged() {\n const rowFocused = this.beans.focusService.isRowFocused(this.rowNode.rowIndex, this.rowNode.rowPinned);\n if (rowFocused !== this.rowFocused) {\n this.rowFocused = rowFocused;\n this.setFocusedClasses();\n }\n // if we are editing, then moving the focus out of a row will stop editing\n if (!rowFocused && this.editingRow) {\n this.stopEditing(false);\n }\n }\n onPaginationChanged() {\n const currentPage = this.beans.paginationProxy.getCurrentPage();\n // it is possible this row is in the new page, but the page number has changed, which means\n // it needs to reposition itself relative to the new page\n if (this.paginationPage !== currentPage) {\n this.paginationPage = currentPage;\n this.onTopChanged();\n }\n this.refreshFirstAndLastRowStyles();\n }\n onTopChanged() {\n this.setRowTop(this.rowNode.rowTop);\n }\n onPaginationPixelOffsetChanged() {\n // the pixel offset is used when calculating rowTop to set on the row DIV\n this.onTopChanged();\n }\n // applies pagination offset, eg if on second page, and page height is 500px, then removes\n // 500px from the top position, so a row with rowTop 600px is displayed at location 100px.\n // reverse will take the offset away rather than add.\n applyPaginationOffset(topPx, reverse = false) {\n if (this.rowNode.isRowPinned() || this.rowNode.sticky) {\n return topPx;\n }\n const pixelOffset = this.beans.paginationProxy.getPixelOffset();\n const multiplier = reverse ? 1 : -1;\n return topPx + (pixelOffset * multiplier);\n }\n setRowTop(pixels) {\n // print layout uses normal flow layout for row positioning\n if (this.printLayout) {\n return;\n }\n // need to make sure rowTop is not null, as this can happen if the node was once\n // visible (ie parent group was expanded) but is now not visible\n if (exists(pixels)) {\n const afterPaginationPixels = this.applyPaginationOffset(pixels);\n const skipScaling = this.rowNode.isRowPinned() || this.rowNode.sticky;\n const afterScalingPixels = skipScaling ? afterPaginationPixels : this.beans.rowContainerHeightService.getRealPixelPosition(afterPaginationPixels);\n const topPx = `${afterScalingPixels}px`;\n this.setRowTopStyle(topPx);\n }\n }\n // the top needs to be set into the DOM element when the element is created, not updated afterwards.\n // otherwise the transition would not work, as it would be transitioning from zero (the unset value).\n // for example, suppose a row that is outside the viewport, then user does a filter to remove other rows\n // and this row now appears in the viewport, and the row moves up (ie it was under the viewport and not rendered,\n // but now is in the viewport) then a new RowComp is created, however it should have it's position initialised\n // to below the viewport, so the row will appear to animate up. if we didn't set the initial position at creation\n // time, the row would animate down (ie from position zero).\n getInitialRowTop(rowContainerType) {\n return this.suppressRowTransform ? this.getInitialRowTopShared(rowContainerType) : undefined;\n }\n getInitialTransform(rowContainerType) {\n return this.suppressRowTransform ? undefined : `translateY(${this.getInitialRowTopShared(rowContainerType)})`;\n }\n getInitialRowTopShared(rowContainerType) {\n // print layout uses normal flow layout for row positioning\n if (this.printLayout) {\n return '';\n }\n let rowTop;\n if (this.isSticky()) {\n rowTop = this.rowNode.stickyRowTop;\n }\n else {\n // if sliding in, we take the old row top. otherwise we just set the current row top.\n const pixels = this.slideInAnimation[rowContainerType] ? this.roundRowTopToBounds(this.rowNode.oldRowTop) : this.rowNode.rowTop;\n const afterPaginationPixels = this.applyPaginationOffset(pixels);\n // we don't apply scaling if row is pinned\n rowTop = this.rowNode.isRowPinned() ? afterPaginationPixels : this.beans.rowContainerHeightService.getRealPixelPosition(afterPaginationPixels);\n }\n return rowTop + 'px';\n }\n setRowTopStyle(topPx) {\n this.allRowGuis.forEach(gui => this.suppressRowTransform ?\n gui.rowComp.setTop(topPx) :\n gui.rowComp.setTransform(`translateY(${topPx})`));\n }\n getRowNode() {\n return this.rowNode;\n }\n getCellCtrl(column) {\n // first up, check for cell directly linked to this column\n let res = null;\n this.getAllCellCtrls().forEach(cellCtrl => {\n if (cellCtrl.getColumn() == column) {\n res = cellCtrl;\n }\n });\n if (res != null) {\n return res;\n }\n // second up, if not found, then check for spanned cols.\n // we do this second (and not at the same time) as this is\n // more expensive, as spanning cols is a\n // infrequently used feature so we don't need to do this most\n // of the time\n this.getAllCellCtrls().forEach(cellCtrl => {\n if (cellCtrl.getColSpanningList().indexOf(column) >= 0) {\n res = cellCtrl;\n }\n });\n return res;\n }\n onRowIndexChanged() {\n // we only bother updating if the rowIndex is present. if it is not present, it means this row\n // is child of a group node, and the group node was closed, it's the only way to have no row index.\n // when this happens, row is about to be de-rendered, so we don't care, rowComp is about to die!\n if (this.rowNode.rowIndex != null) {\n this.onCellFocusChanged();\n this.updateRowIndexes();\n this.postProcessCss();\n }\n }\n getRowIndex() {\n return this.rowNode.getRowIndexString();\n }\n updateRowIndexes(gui) {\n const rowIndexStr = this.rowNode.getRowIndexString();\n const headerRowCount = this.beans.headerNavigationService.getHeaderRowCount() + this.beans.filterManager.getHeaderRowCount();\n const rowIsEven = this.rowNode.rowIndex % 2 === 0;\n const ariaRowIndex = headerRowCount + this.rowNode.rowIndex + 1;\n this.forEachGui(gui, c => {\n c.rowComp.setRowIndex(rowIndexStr);\n c.rowComp.addOrRemoveCssClass('ag-row-even', rowIsEven);\n c.rowComp.addOrRemoveCssClass('ag-row-odd', !rowIsEven);\n setAriaRowIndex(c.element, ariaRowIndex);\n });\n }\n}\nRowCtrl.DOM_DATA_KEY_ROW_CTRL = 'renderedRow';\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { BeanStub } from \"../../context/beanStub.mjs\";\nimport { getCtrlForEventTarget, isStopPropagationForAgGrid, isEventSupported } from \"../../utils/event.mjs\";\nimport { Autowired, Optional, PostConstruct } from \"../../context/context.mjs\";\nimport { RowCtrl } from \"../../rendering/row/rowCtrl.mjs\";\nimport { isIOSUserAgent } from \"../../utils/browser.mjs\";\nimport { TouchListener } from \"../../widgets/touchListener.mjs\";\nimport { isEventFromPrintableCharacter, isUserSuppressingKeyboardEvent } from \"../../utils/keyboard.mjs\";\nimport { Events } from \"../../events.mjs\";\nimport { KeyCode } from \"../../constants/keyCode.mjs\";\nimport { missingOrEmpty } from \"../../utils/generic.mjs\";\nimport { last } from \"../../utils/array.mjs\";\nimport { normaliseQwertyAzerty } from \"../../utils/keyboard.mjs\";\nimport { CellCtrl } from \"../../rendering/cell/cellCtrl.mjs\";\nexport class RowContainerEventsFeature extends BeanStub {\n constructor(element) {\n super();\n this.element = element;\n }\n postConstruct() {\n this.addKeyboardListeners();\n this.addMouseListeners();\n this.mockContextMenuForIPad();\n }\n addKeyboardListeners() {\n const eventName = 'keydown';\n const listener = this.processKeyboardEvent.bind(this, eventName);\n this.addManagedListener(this.element, eventName, listener);\n }\n addMouseListeners() {\n const mouseDownEvent = isEventSupported('touchstart') ? 'touchstart' : 'mousedown';\n const eventNames = ['dblclick', 'contextmenu', 'mouseover', 'mouseout', 'click', mouseDownEvent];\n eventNames.forEach(eventName => {\n const listener = this.processMouseEvent.bind(this, eventName);\n this.addManagedListener(this.element, eventName, listener);\n });\n }\n processMouseEvent(eventName, mouseEvent) {\n if (!this.mouseEventService.isEventFromThisGrid(mouseEvent) ||\n isStopPropagationForAgGrid(mouseEvent)) {\n return;\n }\n const rowComp = this.getRowForEvent(mouseEvent);\n const cellCtrl = this.mouseEventService.getRenderedCellForEvent(mouseEvent);\n if (eventName === \"contextmenu\") {\n this.handleContextMenuMouseEvent(mouseEvent, undefined, rowComp, cellCtrl);\n }\n else {\n if (cellCtrl) {\n cellCtrl.onMouseEvent(eventName, mouseEvent);\n }\n if (rowComp) {\n rowComp.onMouseEvent(eventName, mouseEvent);\n }\n }\n }\n mockContextMenuForIPad() {\n // we do NOT want this when not in iPad, otherwise we will be doing\n if (!isIOSUserAgent()) {\n return;\n }\n const touchListener = new TouchListener(this.element);\n const longTapListener = (event) => {\n const rowComp = this.getRowForEvent(event.touchEvent);\n const cellComp = this.mouseEventService.getRenderedCellForEvent(event.touchEvent);\n this.handleContextMenuMouseEvent(undefined, event.touchEvent, rowComp, cellComp);\n };\n this.addManagedListener(touchListener, TouchListener.EVENT_LONG_TAP, longTapListener);\n this.addDestroyFunc(() => touchListener.destroy());\n }\n getRowForEvent(event) {\n let sourceElement = event.target;\n while (sourceElement) {\n const rowCon = this.gridOptionsService.getDomData(sourceElement, RowCtrl.DOM_DATA_KEY_ROW_CTRL);\n if (rowCon) {\n return rowCon;\n }\n sourceElement = sourceElement.parentElement;\n }\n return null;\n }\n handleContextMenuMouseEvent(mouseEvent, touchEvent, rowComp, cellCtrl) {\n const rowNode = rowComp ? rowComp.getRowNode() : null;\n const column = cellCtrl ? cellCtrl.getColumn() : null;\n let value = null;\n if (column) {\n const event = mouseEvent ? mouseEvent : touchEvent;\n cellCtrl.dispatchCellContextMenuEvent(event !== null && event !== void 0 ? event : null);\n value = this.valueService.getValue(column, rowNode);\n }\n // if user clicked on a cell, anchor to that cell, otherwise anchor to the grid panel\n const gridBodyCon = this.ctrlsService.getGridBodyCtrl();\n const anchorToElement = cellCtrl ? cellCtrl.getGui() : gridBodyCon.getGridBodyElement();\n this.menuService.showContextMenu({ mouseEvent, touchEvent, rowNode, column, value, anchorToElement });\n }\n getControlsForEventTarget(target) {\n return {\n cellCtrl: getCtrlForEventTarget(this.gridOptionsService, target, CellCtrl.DOM_DATA_KEY_CELL_CTRL),\n rowCtrl: getCtrlForEventTarget(this.gridOptionsService, target, RowCtrl.DOM_DATA_KEY_ROW_CTRL)\n };\n }\n processKeyboardEvent(eventName, keyboardEvent) {\n const { cellCtrl, rowCtrl } = this.getControlsForEventTarget(keyboardEvent.target);\n if (keyboardEvent.defaultPrevented) {\n return;\n }\n if (cellCtrl) {\n this.processCellKeyboardEvent(cellCtrl, eventName, keyboardEvent);\n }\n else if (rowCtrl && rowCtrl.isFullWidth()) {\n this.processFullWidthRowKeyboardEvent(rowCtrl, eventName, keyboardEvent);\n }\n }\n processCellKeyboardEvent(cellCtrl, eventName, keyboardEvent) {\n const rowNode = cellCtrl.getRowNode();\n const column = cellCtrl.getColumn();\n const editing = cellCtrl.isEditing();\n const gridProcessingAllowed = !isUserSuppressingKeyboardEvent(this.gridOptionsService, keyboardEvent, rowNode, column, editing);\n if (gridProcessingAllowed) {\n if (eventName === 'keydown') {\n // first see if it's a scroll key, page up / down, home / end etc\n const wasScrollKey = !editing && this.navigationService.handlePageScrollingKey(keyboardEvent);\n // if not a scroll key, then we pass onto cell\n if (!wasScrollKey) {\n cellCtrl.onKeyDown(keyboardEvent);\n }\n // perform clipboard and undo / redo operations\n this.doGridOperations(keyboardEvent, cellCtrl.isEditing());\n if (isEventFromPrintableCharacter(keyboardEvent)) {\n cellCtrl.processCharacter(keyboardEvent);\n }\n }\n }\n if (eventName === 'keydown') {\n const cellKeyDownEvent = cellCtrl.createEvent(keyboardEvent, Events.EVENT_CELL_KEY_DOWN);\n this.eventService.dispatchEvent(cellKeyDownEvent);\n }\n }\n processFullWidthRowKeyboardEvent(rowComp, eventName, keyboardEvent) {\n const rowNode = rowComp.getRowNode();\n const focusedCell = this.focusService.getFocusedCell();\n const column = (focusedCell && focusedCell.column);\n const gridProcessingAllowed = !isUserSuppressingKeyboardEvent(this.gridOptionsService, keyboardEvent, rowNode, column, false);\n if (gridProcessingAllowed) {\n const key = keyboardEvent.key;\n if (eventName === 'keydown') {\n switch (key) {\n case KeyCode.PAGE_HOME:\n case KeyCode.PAGE_END:\n case KeyCode.PAGE_UP:\n case KeyCode.PAGE_DOWN:\n this.navigationService.handlePageScrollingKey(keyboardEvent, true);\n break;\n case KeyCode.UP:\n case KeyCode.DOWN:\n rowComp.onKeyboardNavigate(keyboardEvent);\n break;\n case KeyCode.TAB:\n rowComp.onTabKeyDown(keyboardEvent);\n break;\n default:\n }\n }\n }\n if (eventName === 'keydown') {\n const cellKeyDownEvent = rowComp.createRowEvent(Events.EVENT_CELL_KEY_DOWN, keyboardEvent);\n this.eventService.dispatchEvent(cellKeyDownEvent);\n }\n }\n doGridOperations(keyboardEvent, editing) {\n // check if ctrl or meta key pressed\n if (!keyboardEvent.ctrlKey && !keyboardEvent.metaKey) {\n return;\n }\n // if the cell the event came from is editing, then we do not\n // want to do the default shortcut keys, otherwise the editor\n // (eg a text field) would not be able to do the normal cut/copy/paste\n if (editing) {\n return;\n }\n // for copy / paste, we don't want to execute when the event\n // was from a child grid (happens in master detail)\n if (!this.mouseEventService.isEventFromThisGrid(keyboardEvent)) {\n return;\n }\n const keyCode = normaliseQwertyAzerty(keyboardEvent);\n if (keyCode === KeyCode.A) {\n return this.onCtrlAndA(keyboardEvent);\n }\n if (keyCode === KeyCode.C) {\n return this.onCtrlAndC(keyboardEvent);\n }\n if (keyCode === KeyCode.D) {\n return this.onCtrlAndD(keyboardEvent);\n }\n if (keyCode === KeyCode.V) {\n return this.onCtrlAndV(keyboardEvent);\n }\n if (keyCode === KeyCode.X) {\n return this.onCtrlAndX(keyboardEvent);\n }\n if (keyCode === KeyCode.Y) {\n return this.onCtrlAndY();\n }\n if (keyCode === KeyCode.Z) {\n return this.onCtrlAndZ(keyboardEvent);\n }\n }\n onCtrlAndA(event) {\n const { pinnedRowModel, paginationProxy, rangeService } = this;\n if (rangeService && paginationProxy.isRowsToRender()) {\n const [isEmptyPinnedTop, isEmptyPinnedBottom] = [\n pinnedRowModel.isEmpty('top'),\n pinnedRowModel.isEmpty('bottom')\n ];\n const floatingStart = isEmptyPinnedTop ? null : 'top';\n let floatingEnd;\n let rowEnd;\n if (isEmptyPinnedBottom) {\n floatingEnd = null;\n rowEnd = this.paginationProxy.getRowCount() - 1;\n }\n else {\n floatingEnd = 'bottom';\n rowEnd = pinnedRowModel.getPinnedBottomRowData().length - 1;\n }\n const allDisplayedColumns = this.columnModel.getAllDisplayedColumns();\n if (missingOrEmpty(allDisplayedColumns)) {\n return;\n }\n rangeService.setCellRange({\n rowStartIndex: 0,\n rowStartPinned: floatingStart,\n rowEndIndex: rowEnd,\n rowEndPinned: floatingEnd,\n columnStart: allDisplayedColumns[0],\n columnEnd: last(allDisplayedColumns)\n });\n }\n event.preventDefault();\n }\n onCtrlAndC(event) {\n if (!this.clipboardService || this.gridOptionsService.get('enableCellTextSelection')) {\n return;\n }\n const { cellCtrl, rowCtrl } = this.getControlsForEventTarget(event.target);\n if ((cellCtrl === null || cellCtrl === void 0 ? void 0 : cellCtrl.isEditing()) || (rowCtrl === null || rowCtrl === void 0 ? void 0 : rowCtrl.isEditing())) {\n return;\n }\n event.preventDefault();\n this.clipboardService.copyToClipboard();\n }\n onCtrlAndX(event) {\n if (!this.clipboardService ||\n this.gridOptionsService.get('enableCellTextSelection') ||\n this.gridOptionsService.get('suppressCutToClipboard')) {\n return;\n }\n const { cellCtrl, rowCtrl } = this.getControlsForEventTarget(event.target);\n if ((cellCtrl === null || cellCtrl === void 0 ? void 0 : cellCtrl.isEditing()) || (rowCtrl === null || rowCtrl === void 0 ? void 0 : rowCtrl.isEditing())) {\n return;\n }\n event.preventDefault();\n this.clipboardService.cutToClipboard(undefined, 'ui');\n }\n onCtrlAndV(event) {\n const { cellCtrl, rowCtrl } = this.getControlsForEventTarget(event.target);\n if ((cellCtrl === null || cellCtrl === void 0 ? void 0 : cellCtrl.isEditing()) || (rowCtrl === null || rowCtrl === void 0 ? void 0 : rowCtrl.isEditing())) {\n return;\n }\n if (this.clipboardService && !this.gridOptionsService.get('suppressClipboardPaste')) {\n this.clipboardService.pasteFromClipboard();\n }\n }\n onCtrlAndD(event) {\n if (this.clipboardService && !this.gridOptionsService.get('suppressClipboardPaste')) {\n this.clipboardService.copyRangeDown();\n }\n event.preventDefault();\n }\n onCtrlAndZ(event) {\n if (!this.gridOptionsService.get('undoRedoCellEditing')) {\n return;\n }\n event.preventDefault();\n if (event.shiftKey) {\n this.undoRedoService.redo('ui');\n }\n else {\n this.undoRedoService.undo('ui');\n }\n }\n onCtrlAndY() {\n this.undoRedoService.redo('ui');\n }\n}\n__decorate([\n Autowired('mouseEventService')\n], RowContainerEventsFeature.prototype, \"mouseEventService\", void 0);\n__decorate([\n Autowired('valueService')\n], RowContainerEventsFeature.prototype, \"valueService\", void 0);\n__decorate([\n Autowired('menuService')\n], RowContainerEventsFeature.prototype, \"menuService\", void 0);\n__decorate([\n Autowired('ctrlsService')\n], RowContainerEventsFeature.prototype, \"ctrlsService\", void 0);\n__decorate([\n Autowired('navigationService')\n], RowContainerEventsFeature.prototype, \"navigationService\", void 0);\n__decorate([\n Autowired('focusService')\n], RowContainerEventsFeature.prototype, \"focusService\", void 0);\n__decorate([\n Autowired('undoRedoService')\n], RowContainerEventsFeature.prototype, \"undoRedoService\", void 0);\n__decorate([\n Autowired('columnModel')\n], RowContainerEventsFeature.prototype, \"columnModel\", void 0);\n__decorate([\n Autowired('paginationProxy')\n], RowContainerEventsFeature.prototype, \"paginationProxy\", void 0);\n__decorate([\n Autowired('pinnedRowModel')\n], RowContainerEventsFeature.prototype, \"pinnedRowModel\", void 0);\n__decorate([\n Optional('rangeService')\n], RowContainerEventsFeature.prototype, \"rangeService\", void 0);\n__decorate([\n Optional('clipboardService')\n], RowContainerEventsFeature.prototype, \"clipboardService\", void 0);\n__decorate([\n PostConstruct\n], RowContainerEventsFeature.prototype, \"postConstruct\", null);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { BeanStub } from \"../context/beanStub.mjs\";\nimport { Autowired, PostConstruct } from \"../context/context.mjs\";\nimport { Events } from \"../events.mjs\";\nimport { getInnerHeight, getInnerWidth } from \"../utils/dom.mjs\";\n// listens to changes in the center viewport size, for column and row virtualisation,\n// and adjusts grid as necessary. there are two viewports, one for horizontal and one for\n// vertical scrolling.\nexport class ViewportSizeFeature extends BeanStub {\n constructor(centerContainerCtrl) {\n super();\n this.centerContainerCtrl = centerContainerCtrl;\n }\n postConstruct() {\n this.ctrlsService.whenReady(() => {\n this.gridBodyCtrl = this.ctrlsService.getGridBodyCtrl();\n this.listenForResize();\n });\n this.addManagedListener(this.eventService, Events.EVENT_SCROLLBAR_WIDTH_CHANGED, this.onScrollbarWidthChanged.bind(this));\n this.addManagedPropertyListeners(['alwaysShowHorizontalScroll', 'alwaysShowVerticalScroll'], () => {\n this.checkViewportAndScrolls();\n });\n }\n listenForResize() {\n const listener = () => this.onCenterViewportResized();\n // centerContainer gets horizontal resizes\n this.centerContainerCtrl.registerViewportResizeListener(listener);\n // eBodyViewport gets vertical resizes\n this.gridBodyCtrl.registerBodyViewportResizeListener(listener);\n }\n onScrollbarWidthChanged() {\n this.checkViewportAndScrolls();\n }\n onCenterViewportResized() {\n if (this.centerContainerCtrl.isViewportInTheDOMTree()) {\n this.keepPinnedColumnsNarrowerThanViewport();\n this.checkViewportAndScrolls();\n const newWidth = this.centerContainerCtrl.getCenterWidth();\n if (newWidth !== this.centerWidth) {\n this.centerWidth = newWidth;\n this.columnModel.refreshFlexedColumns({ viewportWidth: this.centerWidth, updateBodyWidths: true, fireResizedEvent: true });\n }\n }\n else {\n this.bodyHeight = 0;\n }\n }\n keepPinnedColumnsNarrowerThanViewport() {\n const eBodyViewport = this.gridBodyCtrl.getBodyViewportElement();\n const bodyWidth = getInnerWidth(eBodyViewport);\n if (bodyWidth <= 50) {\n return;\n }\n // remove 50px from the bodyWidth to give some margin\n let columnsToRemove = this.getPinnedColumnsOverflowingViewport(bodyWidth - 50);\n const processUnpinnedColumns = this.gridOptionsService.getCallback('processUnpinnedColumns');\n if (!columnsToRemove.length) {\n return;\n }\n if (processUnpinnedColumns) {\n const params = {\n columns: columnsToRemove,\n viewportWidth: bodyWidth\n };\n columnsToRemove = processUnpinnedColumns(params);\n }\n this.columnModel.setColumnsPinned(columnsToRemove, null, 'viewportSizeFeature');\n }\n getPinnedColumnsOverflowingViewport(viewportWidth) {\n const pinnedRightWidth = this.pinnedWidthService.getPinnedRightWidth();\n const pinnedLeftWidth = this.pinnedWidthService.getPinnedLeftWidth();\n const totalPinnedWidth = pinnedRightWidth + pinnedLeftWidth;\n if (totalPinnedWidth < viewportWidth) {\n return [];\n }\n const pinnedLeftColumns = [...this.columnModel.getDisplayedLeftColumns()];\n const pinnedRightColumns = [...this.columnModel.getDisplayedRightColumns()];\n let indexRight = 0;\n let indexLeft = 0;\n let totalWidthRemoved = 0;\n const columnsToRemove = [];\n let spaceNecessary = (totalPinnedWidth - totalWidthRemoved) - viewportWidth;\n while ((indexLeft < pinnedLeftColumns.length || indexRight < pinnedRightColumns.length) && spaceNecessary > 0) {\n if (indexRight < pinnedRightColumns.length) {\n const currentColumn = pinnedRightColumns[indexRight++];\n spaceNecessary -= currentColumn.getActualWidth();\n columnsToRemove.push(currentColumn);\n }\n if (indexLeft < pinnedLeftColumns.length && spaceNecessary > 0) {\n const currentColumn = pinnedLeftColumns[indexLeft++];\n spaceNecessary -= currentColumn.getActualWidth();\n columnsToRemove.push(currentColumn);\n }\n }\n return columnsToRemove;\n }\n // gets called every time the viewport size changes. we use this to check visibility of scrollbars\n // in the grid panel, and also to check size and position of viewport for row and column virtualisation.\n checkViewportAndScrolls() {\n // results in updating anything that depends on scroll showing\n this.updateScrollVisibleService();\n // fires event if height changes, used by PaginationService, HeightScalerService, RowRenderer\n this.checkBodyHeight();\n // check for virtual columns for ColumnController\n this.onHorizontalViewportChanged();\n this.gridBodyCtrl.getScrollFeature().checkScrollLeft();\n }\n getBodyHeight() {\n return this.bodyHeight;\n }\n checkBodyHeight() {\n const eBodyViewport = this.gridBodyCtrl.getBodyViewportElement();\n const bodyHeight = getInnerHeight(eBodyViewport);\n if (this.bodyHeight !== bodyHeight) {\n this.bodyHeight = bodyHeight;\n const event = {\n type: Events.EVENT_BODY_HEIGHT_CHANGED\n };\n this.eventService.dispatchEvent(event);\n }\n }\n updateScrollVisibleService() {\n // because of column animation (which takes 200ms), we have to do this twice.\n // eg if user removes cols anywhere except at the RHS, then the cols on the RHS\n // will animate to the left to fill the gap. this animation means just after\n // the cols are removed, the remaining cols are still in the original location\n // at the start of the animation, so pre animation the H scrollbar is still needed,\n // but post animation it is not.\n this.updateScrollVisibleServiceImpl();\n setTimeout(this.updateScrollVisibleServiceImpl.bind(this), 500);\n }\n updateScrollVisibleServiceImpl() {\n const params = {\n horizontalScrollShowing: this.isHorizontalScrollShowing(),\n verticalScrollShowing: this.gridBodyCtrl.isVerticalScrollShowing()\n };\n this.scrollVisibleService.setScrollsVisible(params);\n }\n isHorizontalScrollShowing() {\n return this.centerContainerCtrl.isHorizontalScrollShowing();\n }\n // this gets called whenever a change in the viewport, so we can inform column controller it has to work\n // out the virtual columns again. gets called from following locations:\n // + ensureColVisible, scroll, init, layoutChanged, displayedColumnsChanged\n onHorizontalViewportChanged() {\n const scrollWidth = this.centerContainerCtrl.getCenterWidth();\n const scrollPosition = this.centerContainerCtrl.getViewportScrollLeft();\n this.columnModel.setViewportPosition(scrollWidth, scrollPosition);\n }\n}\n__decorate([\n Autowired('ctrlsService')\n], ViewportSizeFeature.prototype, \"ctrlsService\", void 0);\n__decorate([\n Autowired('pinnedWidthService')\n], ViewportSizeFeature.prototype, \"pinnedWidthService\", void 0);\n__decorate([\n Autowired('columnModel')\n], ViewportSizeFeature.prototype, \"columnModel\", void 0);\n__decorate([\n Autowired('scrollVisibleService')\n], ViewportSizeFeature.prototype, \"scrollVisibleService\", void 0);\n__decorate([\n PostConstruct\n], ViewportSizeFeature.prototype, \"postConstruct\", null);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { BeanStub } from \"../../context/beanStub.mjs\";\nimport { Autowired, PostConstruct } from \"../../context/context.mjs\";\nimport { Events } from \"../../eventKeys.mjs\";\nimport { setDisplayed, setFixedWidth } from \"../../utils/dom.mjs\";\nexport class SetPinnedLeftWidthFeature extends BeanStub {\n constructor(element) {\n super();\n this.element = element;\n }\n postConstruct() {\n this.addManagedListener(this.eventService, Events.EVENT_LEFT_PINNED_WIDTH_CHANGED, this.onPinnedLeftWidthChanged.bind(this));\n }\n onPinnedLeftWidthChanged() {\n const leftWidth = this.pinnedWidthService.getPinnedLeftWidth();\n const displayed = leftWidth > 0;\n setDisplayed(this.element, displayed);\n setFixedWidth(this.element, leftWidth);\n }\n getWidth() {\n return this.pinnedWidthService.getPinnedLeftWidth();\n }\n}\n__decorate([\n Autowired('pinnedWidthService')\n], SetPinnedLeftWidthFeature.prototype, \"pinnedWidthService\", void 0);\n__decorate([\n PostConstruct\n], SetPinnedLeftWidthFeature.prototype, \"postConstruct\", null);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Autowired, PostConstruct } from \"../../context/context.mjs\";\nimport { Events } from \"../../eventKeys.mjs\";\nimport { setDisplayed, setFixedWidth } from \"../../utils/dom.mjs\";\nimport { BeanStub } from \"../../context/beanStub.mjs\";\nexport class SetPinnedRightWidthFeature extends BeanStub {\n constructor(element) {\n super();\n this.element = element;\n }\n postConstruct() {\n this.addManagedListener(this.eventService, Events.EVENT_RIGHT_PINNED_WIDTH_CHANGED, this.onPinnedRightWidthChanged.bind(this));\n }\n onPinnedRightWidthChanged() {\n const rightWidth = this.pinnedWidthService.getPinnedRightWidth();\n const displayed = rightWidth > 0;\n setDisplayed(this.element, displayed);\n setFixedWidth(this.element, rightWidth);\n }\n getWidth() {\n return this.pinnedWidthService.getPinnedRightWidth();\n }\n}\n__decorate([\n Autowired('pinnedWidthService')\n], SetPinnedRightWidthFeature.prototype, \"pinnedWidthService\", void 0);\n__decorate([\n PostConstruct\n], SetPinnedRightWidthFeature.prototype, \"postConstruct\", null);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { BeanStub } from \"../../context/beanStub.mjs\";\nimport { Autowired, PostConstruct } from \"../../context/context.mjs\";\nimport { Events } from \"../../eventKeys.mjs\";\nexport class SetHeightFeature extends BeanStub {\n constructor(eContainer, eViewport) {\n super();\n this.eContainer = eContainer;\n this.eViewport = eViewport;\n }\n postConstruct() {\n this.addManagedListener(this.eventService, Events.EVENT_ROW_CONTAINER_HEIGHT_CHANGED, this.onHeightChanged.bind(this));\n }\n onHeightChanged() {\n const height = this.maxDivHeightScaler.getUiContainerHeight();\n const heightString = height != null ? `${height}px` : ``;\n this.eContainer.style.height = heightString;\n if (this.eViewport) {\n this.eViewport.style.height = heightString;\n }\n }\n}\n__decorate([\n Autowired(\"rowContainerHeightService\")\n], SetHeightFeature.prototype, \"maxDivHeightScaler\", void 0);\n__decorate([\n PostConstruct\n], SetHeightFeature.prototype, \"postConstruct\", null);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { BeanStub } from \"../../context/beanStub.mjs\";\nimport { missing } from \"../../utils/generic.mjs\";\nimport { Autowired, Optional, PostConstruct } from \"../../context/context.mjs\";\nexport class DragListenerFeature extends BeanStub {\n constructor(eContainer) {\n super();\n this.eContainer = eContainer;\n }\n postConstruct() {\n if (missing(this.rangeService)) {\n return;\n }\n this.params = {\n eElement: this.eContainer,\n onDragStart: this.rangeService.onDragStart.bind(this.rangeService),\n onDragStop: this.rangeService.onDragStop.bind(this.rangeService),\n onDragging: this.rangeService.onDragging.bind(this.rangeService)\n };\n this.addManagedPropertyListener('enableRangeSelection', (props) => {\n const isEnabled = props.currentValue;\n if (isEnabled) {\n this.enableFeature();\n return;\n }\n this.disableFeature();\n });\n this.addDestroyFunc(() => this.disableFeature());\n const isRangeSelection = this.gridOptionsService.get('enableRangeSelection');\n if (isRangeSelection) {\n this.enableFeature();\n }\n }\n enableFeature() {\n this.dragService.addDragSource(this.params);\n }\n disableFeature() {\n this.dragService.removeDragSource(this.params);\n }\n}\n__decorate([\n Optional('rangeService')\n], DragListenerFeature.prototype, \"rangeService\", void 0);\n__decorate([\n Autowired('dragService')\n], DragListenerFeature.prototype, \"dragService\", void 0);\n__decorate([\n PostConstruct\n], DragListenerFeature.prototype, \"postConstruct\", null);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { BeanStub } from \"../context/beanStub.mjs\";\nimport { Autowired, PostConstruct } from \"../context/context.mjs\";\nimport { Events } from \"../eventKeys.mjs\";\nexport class CenterWidthFeature extends BeanStub {\n constructor(callback, addSpacer = false) {\n super();\n this.callback = callback;\n this.addSpacer = addSpacer;\n }\n postConstruct() {\n const listener = this.setWidth.bind(this);\n this.addManagedPropertyListener('domLayout', listener);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_CONTAINER_WIDTH_CHANGED, listener);\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, listener);\n this.addManagedListener(this.eventService, Events.EVENT_LEFT_PINNED_WIDTH_CHANGED, listener);\n if (this.addSpacer) {\n this.addManagedListener(this.eventService, Events.EVENT_RIGHT_PINNED_WIDTH_CHANGED, listener);\n this.addManagedListener(this.eventService, Events.EVENT_SCROLL_VISIBILITY_CHANGED, listener);\n this.addManagedListener(this.eventService, Events.EVENT_SCROLLBAR_WIDTH_CHANGED, listener);\n }\n this.setWidth();\n }\n setWidth() {\n const { columnModel } = this;\n const printLayout = this.gridOptionsService.isDomLayout('print');\n const centerWidth = columnModel.getBodyContainerWidth();\n const leftWidth = columnModel.getDisplayedColumnsLeftWidth();\n const rightWidth = columnModel.getDisplayedColumnsRightWidth();\n let totalWidth;\n if (printLayout) {\n totalWidth = centerWidth + leftWidth + rightWidth;\n }\n else {\n totalWidth = centerWidth;\n if (this.addSpacer) {\n const relevantWidth = this.gridOptionsService.get('enableRtl') ? leftWidth : rightWidth;\n if (relevantWidth === 0 && this.scrollVisibleService.isVerticalScrollShowing()) {\n totalWidth += this.gridOptionsService.getScrollbarWidth();\n }\n }\n }\n this.callback(totalWidth);\n }\n}\n__decorate([\n Autowired('columnModel')\n], CenterWidthFeature.prototype, \"columnModel\", void 0);\n__decorate([\n Autowired('scrollVisibleService')\n], CenterWidthFeature.prototype, \"scrollVisibleService\", void 0);\n__decorate([\n PostConstruct\n], CenterWidthFeature.prototype, \"postConstruct\", null);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { BeanStub } from \"../../context/beanStub.mjs\";\nimport { Autowired, PostConstruct } from \"../../context/context.mjs\";\nimport { Events } from \"../../eventKeys.mjs\";\nimport { RowContainerEventsFeature } from \"./rowContainerEventsFeature.mjs\";\nimport { getInnerWidth, getScrollLeft, isHorizontalScrollShowing, isInDOM, setScrollLeft } from \"../../utils/dom.mjs\";\nimport { ViewportSizeFeature } from \"../viewportSizeFeature.mjs\";\nimport { convertToMap } from \"../../utils/map.mjs\";\nimport { SetPinnedLeftWidthFeature } from \"./setPinnedLeftWidthFeature.mjs\";\nimport { SetPinnedRightWidthFeature } from \"./setPinnedRightWidthFeature.mjs\";\nimport { SetHeightFeature } from \"./setHeightFeature.mjs\";\nimport { DragListenerFeature } from \"./dragListenerFeature.mjs\";\nimport { CenterWidthFeature } from \"../centerWidthFeature.mjs\";\nexport var RowContainerName;\n(function (RowContainerName) {\n RowContainerName[\"LEFT\"] = \"left\";\n RowContainerName[\"RIGHT\"] = \"right\";\n RowContainerName[\"CENTER\"] = \"center\";\n RowContainerName[\"FULL_WIDTH\"] = \"fullWidth\";\n RowContainerName[\"TOP_LEFT\"] = \"topLeft\";\n RowContainerName[\"TOP_RIGHT\"] = \"topRight\";\n RowContainerName[\"TOP_CENTER\"] = \"topCenter\";\n RowContainerName[\"TOP_FULL_WIDTH\"] = \"topFullWidth\";\n RowContainerName[\"STICKY_TOP_LEFT\"] = \"stickyTopLeft\";\n RowContainerName[\"STICKY_TOP_RIGHT\"] = \"stickyTopRight\";\n RowContainerName[\"STICKY_TOP_CENTER\"] = \"stickyTopCenter\";\n RowContainerName[\"STICKY_TOP_FULL_WIDTH\"] = \"stickyTopFullWidth\";\n RowContainerName[\"BOTTOM_LEFT\"] = \"bottomLeft\";\n RowContainerName[\"BOTTOM_RIGHT\"] = \"bottomRight\";\n RowContainerName[\"BOTTOM_CENTER\"] = \"bottomCenter\";\n RowContainerName[\"BOTTOM_FULL_WIDTH\"] = \"bottomFullWidth\";\n})(RowContainerName || (RowContainerName = {}));\nexport var RowContainerType;\n(function (RowContainerType) {\n RowContainerType[\"LEFT\"] = \"left\";\n RowContainerType[\"RIGHT\"] = \"right\";\n RowContainerType[\"CENTER\"] = \"center\";\n RowContainerType[\"FULL_WIDTH\"] = \"fullWidth\";\n})(RowContainerType || (RowContainerType = {}));\nexport function getRowContainerTypeForName(name) {\n switch (name) {\n case RowContainerName.CENTER:\n case RowContainerName.TOP_CENTER:\n case RowContainerName.STICKY_TOP_CENTER:\n case RowContainerName.BOTTOM_CENTER:\n return RowContainerType.CENTER;\n case RowContainerName.LEFT:\n case RowContainerName.TOP_LEFT:\n case RowContainerName.STICKY_TOP_LEFT:\n case RowContainerName.BOTTOM_LEFT:\n return RowContainerType.LEFT;\n case RowContainerName.RIGHT:\n case RowContainerName.TOP_RIGHT:\n case RowContainerName.STICKY_TOP_RIGHT:\n case RowContainerName.BOTTOM_RIGHT:\n return RowContainerType.RIGHT;\n case RowContainerName.FULL_WIDTH:\n case RowContainerName.TOP_FULL_WIDTH:\n case RowContainerName.STICKY_TOP_FULL_WIDTH:\n case RowContainerName.BOTTOM_FULL_WIDTH:\n return RowContainerType.FULL_WIDTH;\n default:\n throw Error('Invalid Row Container Type');\n }\n}\nconst ContainerCssClasses = convertToMap([\n [RowContainerName.CENTER, 'ag-center-cols-container'],\n [RowContainerName.LEFT, 'ag-pinned-left-cols-container'],\n [RowContainerName.RIGHT, 'ag-pinned-right-cols-container'],\n [RowContainerName.FULL_WIDTH, 'ag-full-width-container'],\n [RowContainerName.TOP_CENTER, 'ag-floating-top-container'],\n [RowContainerName.TOP_LEFT, 'ag-pinned-left-floating-top'],\n [RowContainerName.TOP_RIGHT, 'ag-pinned-right-floating-top'],\n [RowContainerName.TOP_FULL_WIDTH, 'ag-floating-top-full-width-container'],\n [RowContainerName.STICKY_TOP_CENTER, 'ag-sticky-top-container'],\n [RowContainerName.STICKY_TOP_LEFT, 'ag-pinned-left-sticky-top'],\n [RowContainerName.STICKY_TOP_RIGHT, 'ag-pinned-right-sticky-top'],\n [RowContainerName.STICKY_TOP_FULL_WIDTH, 'ag-sticky-top-full-width-container'],\n [RowContainerName.BOTTOM_CENTER, 'ag-floating-bottom-container'],\n [RowContainerName.BOTTOM_LEFT, 'ag-pinned-left-floating-bottom'],\n [RowContainerName.BOTTOM_RIGHT, 'ag-pinned-right-floating-bottom'],\n [RowContainerName.BOTTOM_FULL_WIDTH, 'ag-floating-bottom-full-width-container'],\n]);\nconst ViewportCssClasses = convertToMap([\n [RowContainerName.CENTER, 'ag-center-cols-viewport'],\n [RowContainerName.TOP_CENTER, 'ag-floating-top-viewport'],\n [RowContainerName.STICKY_TOP_CENTER, 'ag-sticky-top-viewport'],\n [RowContainerName.BOTTOM_CENTER, 'ag-floating-bottom-viewport'],\n]);\nexport class RowContainerCtrl extends BeanStub {\n constructor(name) {\n super();\n this.visible = true;\n // Maintaining a constant reference enables optimization in React.\n this.EMPTY_CTRLS = [];\n this.name = name;\n this.isFullWithContainer =\n this.name === RowContainerName.TOP_FULL_WIDTH\n || this.name === RowContainerName.STICKY_TOP_FULL_WIDTH\n || this.name === RowContainerName.BOTTOM_FULL_WIDTH\n || this.name === RowContainerName.FULL_WIDTH;\n }\n static getRowContainerCssClasses(name) {\n const containerClass = ContainerCssClasses.get(name);\n const viewportClass = ViewportCssClasses.get(name);\n return { container: containerClass, viewport: viewportClass };\n }\n static getPinned(name) {\n switch (name) {\n case RowContainerName.BOTTOM_LEFT:\n case RowContainerName.TOP_LEFT:\n case RowContainerName.STICKY_TOP_LEFT:\n case RowContainerName.LEFT:\n return 'left';\n case RowContainerName.BOTTOM_RIGHT:\n case RowContainerName.TOP_RIGHT:\n case RowContainerName.STICKY_TOP_RIGHT:\n case RowContainerName.RIGHT:\n return 'right';\n default:\n return null;\n }\n }\n postConstruct() {\n this.enableRtl = this.gridOptionsService.get('enableRtl');\n this.forContainers([RowContainerName.CENTER], () => this.viewportSizeFeature = this.createManagedBean(new ViewportSizeFeature(this)));\n }\n registerWithCtrlsService() {\n switch (this.name) {\n case RowContainerName.CENTER:\n this.ctrlsService.registerCenterRowContainerCtrl(this);\n break;\n case RowContainerName.LEFT:\n this.ctrlsService.registerLeftRowContainerCtrl(this);\n break;\n case RowContainerName.RIGHT:\n this.ctrlsService.registerRightRowContainerCtrl(this);\n break;\n case RowContainerName.TOP_CENTER:\n this.ctrlsService.registerTopCenterRowContainerCtrl(this);\n break;\n case RowContainerName.TOP_LEFT:\n this.ctrlsService.registerTopLeftRowContainerCon(this);\n break;\n case RowContainerName.TOP_RIGHT:\n this.ctrlsService.registerTopRightRowContainerCtrl(this);\n break;\n case RowContainerName.STICKY_TOP_CENTER:\n this.ctrlsService.registerStickyTopCenterRowContainerCtrl(this);\n break;\n case RowContainerName.STICKY_TOP_LEFT:\n this.ctrlsService.registerStickyTopLeftRowContainerCon(this);\n break;\n case RowContainerName.STICKY_TOP_RIGHT:\n this.ctrlsService.registerStickyTopRightRowContainerCtrl(this);\n break;\n case RowContainerName.BOTTOM_CENTER:\n this.ctrlsService.registerBottomCenterRowContainerCtrl(this);\n break;\n case RowContainerName.BOTTOM_LEFT:\n this.ctrlsService.registerBottomLeftRowContainerCtrl(this);\n break;\n case RowContainerName.BOTTOM_RIGHT:\n this.ctrlsService.registerBottomRightRowContainerCtrl(this);\n break;\n }\n }\n forContainers(names, callback) {\n if (names.indexOf(this.name) >= 0) {\n callback();\n }\n }\n getContainerElement() {\n return this.eContainer;\n }\n getViewportSizeFeature() {\n return this.viewportSizeFeature;\n }\n setComp(view, eContainer, eViewport) {\n this.comp = view;\n this.eContainer = eContainer;\n this.eViewport = eViewport;\n this.createManagedBean(new RowContainerEventsFeature(this.eContainer));\n this.addPreventScrollWhileDragging();\n this.listenOnDomOrder();\n this.stopHScrollOnPinnedRows();\n const allTopNoFW = [RowContainerName.TOP_CENTER, RowContainerName.TOP_LEFT, RowContainerName.TOP_RIGHT];\n const allStickyTopNoFW = [RowContainerName.STICKY_TOP_CENTER, RowContainerName.STICKY_TOP_LEFT, RowContainerName.STICKY_TOP_RIGHT];\n const allBottomNoFW = [RowContainerName.BOTTOM_CENTER, RowContainerName.BOTTOM_LEFT, RowContainerName.BOTTOM_RIGHT];\n const allMiddleNoFW = [RowContainerName.CENTER, RowContainerName.LEFT, RowContainerName.RIGHT];\n const allNoFW = [...allTopNoFW, ...allBottomNoFW, ...allMiddleNoFW, ...allStickyTopNoFW];\n const allMiddle = [RowContainerName.CENTER, RowContainerName.LEFT, RowContainerName.RIGHT, RowContainerName.FULL_WIDTH];\n const allCenter = [RowContainerName.CENTER, RowContainerName.TOP_CENTER, RowContainerName.STICKY_TOP_CENTER, RowContainerName.BOTTOM_CENTER];\n const allLeft = [RowContainerName.LEFT, RowContainerName.BOTTOM_LEFT, RowContainerName.TOP_LEFT, RowContainerName.STICKY_TOP_LEFT];\n const allRight = [RowContainerName.RIGHT, RowContainerName.BOTTOM_RIGHT, RowContainerName.TOP_RIGHT, RowContainerName.STICKY_TOP_RIGHT];\n this.forContainers(allLeft, () => {\n this.pinnedWidthFeature = this.createManagedBean(new SetPinnedLeftWidthFeature(this.eContainer));\n this.addManagedListener(this.eventService, Events.EVENT_LEFT_PINNED_WIDTH_CHANGED, () => this.onPinnedWidthChanged());\n });\n this.forContainers(allRight, () => {\n this.pinnedWidthFeature = this.createManagedBean(new SetPinnedRightWidthFeature(this.eContainer));\n this.addManagedListener(this.eventService, Events.EVENT_RIGHT_PINNED_WIDTH_CHANGED, () => this.onPinnedWidthChanged());\n });\n this.forContainers(allMiddle, () => this.createManagedBean(new SetHeightFeature(this.eContainer, this.name === RowContainerName.CENTER ? eViewport : undefined)));\n this.forContainers(allNoFW, () => this.createManagedBean(new DragListenerFeature(this.eContainer)));\n this.forContainers(allCenter, () => this.createManagedBean(new CenterWidthFeature(width => this.comp.setContainerWidth(`${width}px`))));\n this.addListeners();\n this.registerWithCtrlsService();\n }\n addListeners() {\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, () => this.onDisplayedColumnsChanged());\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, () => this.onDisplayedColumnsWidthChanged());\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_ROWS_CHANGED, (params) => this.onDisplayedRowsChanged(params.afterScroll));\n this.onDisplayedColumnsChanged();\n this.onDisplayedColumnsWidthChanged();\n this.onDisplayedRowsChanged();\n }\n listenOnDomOrder() {\n // sticky section must show rows in set order\n const allStickyContainers = [RowContainerName.STICKY_TOP_CENTER, RowContainerName.STICKY_TOP_LEFT, RowContainerName.STICKY_TOP_RIGHT, RowContainerName.STICKY_TOP_FULL_WIDTH];\n const isStickContainer = allStickyContainers.indexOf(this.name) >= 0;\n if (isStickContainer) {\n this.comp.setDomOrder(true);\n return;\n }\n const listener = () => {\n const isEnsureDomOrder = this.gridOptionsService.get('ensureDomOrder');\n const isPrintLayout = this.gridOptionsService.isDomLayout('print');\n this.comp.setDomOrder(isEnsureDomOrder || isPrintLayout);\n };\n this.addManagedPropertyListener('domLayout', listener);\n listener();\n }\n // when editing a pinned row, if the cell is half outside the scrollable area, the browser can\n // scroll the column into view. we do not want this, the pinned sections should never scroll.\n // so we listen to scrolls on these containers and reset the scroll if we find one.\n stopHScrollOnPinnedRows() {\n this.forContainers([RowContainerName.TOP_CENTER, RowContainerName.STICKY_TOP_CENTER, RowContainerName.BOTTOM_CENTER], () => {\n const resetScrollLeft = () => this.eViewport.scrollLeft = 0;\n this.addManagedListener(this.eViewport, 'scroll', resetScrollLeft);\n });\n }\n onDisplayedColumnsChanged() {\n this.forContainers([RowContainerName.CENTER], () => this.onHorizontalViewportChanged());\n }\n onDisplayedColumnsWidthChanged() {\n this.forContainers([RowContainerName.CENTER], () => this.onHorizontalViewportChanged());\n }\n // this methods prevents the grid views from being scrolled while the dragService is being used\n // eg. the view should not scroll up and down while dragging rows using the rowDragComp.\n addPreventScrollWhileDragging() {\n const preventScroll = (e) => {\n if (this.dragService.isDragging()) {\n if (e.cancelable) {\n e.preventDefault();\n }\n }\n };\n this.eContainer.addEventListener('touchmove', preventScroll, { passive: false });\n this.addDestroyFunc(() => this.eContainer.removeEventListener('touchmove', preventScroll));\n }\n // this gets called whenever a change in the viewport, so we can inform column controller it has to work\n // out the virtual columns again. gets called from following locations:\n // + ensureColVisible, scroll, init, layoutChanged, displayedColumnsChanged\n onHorizontalViewportChanged(afterScroll = false) {\n const scrollWidth = this.getCenterWidth();\n const scrollPosition = this.getCenterViewportScrollLeft();\n this.columnModel.setViewportPosition(scrollWidth, scrollPosition, afterScroll);\n }\n getCenterWidth() {\n return getInnerWidth(this.eViewport);\n }\n getCenterViewportScrollLeft() {\n // we defer to a util, as how you calculated scrollLeft when doing RTL depends on the browser\n return getScrollLeft(this.eViewport, this.enableRtl);\n }\n registerViewportResizeListener(listener) {\n const unsubscribeFromResize = this.resizeObserverService.observeResize(this.eViewport, listener);\n this.addDestroyFunc(() => unsubscribeFromResize());\n }\n isViewportInTheDOMTree() {\n return isInDOM(this.eViewport);\n }\n getViewportScrollLeft() {\n return getScrollLeft(this.eViewport, this.enableRtl);\n }\n isHorizontalScrollShowing() {\n const isAlwaysShowHorizontalScroll = this.gridOptionsService.get('alwaysShowHorizontalScroll');\n return isAlwaysShowHorizontalScroll || isHorizontalScrollShowing(this.eViewport);\n }\n getViewportElement() {\n return this.eViewport;\n }\n setContainerTranslateX(amount) {\n this.eContainer.style.transform = `translateX(${amount}px)`;\n }\n getHScrollPosition() {\n const res = {\n left: this.eViewport.scrollLeft,\n right: this.eViewport.scrollLeft + this.eViewport.offsetWidth\n };\n return res;\n }\n setCenterViewportScrollLeft(value) {\n // we defer to a util, as how you calculated scrollLeft when doing RTL depends on the browser\n setScrollLeft(this.eViewport, value, this.enableRtl);\n }\n isContainerVisible() {\n const pinned = RowContainerCtrl.getPinned(this.name);\n return !pinned || (!!this.pinnedWidthFeature && this.pinnedWidthFeature.getWidth() > 0);\n }\n onPinnedWidthChanged() {\n const visible = this.isContainerVisible();\n if (this.visible != visible) {\n this.visible = visible;\n this.onDisplayedRowsChanged();\n }\n }\n onDisplayedRowsChanged(afterScroll = false) {\n if (!this.visible) {\n this.comp.setRowCtrls({ rowCtrls: this.EMPTY_CTRLS });\n return;\n }\n const printLayout = this.gridOptionsService.isDomLayout('print');\n const embedFullWidthRows = this.gridOptionsService.get('embedFullWidthRows');\n const embedFW = embedFullWidthRows || printLayout;\n // this list contains either all pinned top, center or pinned bottom rows\n // this filters out rows not for this container, eg if it's a full with row, but we are not full with container\n const rowsThisContainer = this.getRowCtrls().filter(rowCtrl => {\n // this just justifies if the ctrl is in the correct place, this will be fed with zombie rows by the\n // row renderer, so should not block them as they still need to animate - the row renderer\n // will clean these up when they finish animating\n const fullWidthRow = rowCtrl.isFullWidth();\n const match = this.isFullWithContainer ?\n !embedFW && fullWidthRow\n : embedFW || !fullWidthRow;\n return match;\n });\n this.comp.setRowCtrls({ rowCtrls: rowsThisContainer, useFlushSync: afterScroll });\n }\n getRowCtrls() {\n switch (this.name) {\n case RowContainerName.TOP_CENTER:\n case RowContainerName.TOP_LEFT:\n case RowContainerName.TOP_RIGHT:\n case RowContainerName.TOP_FULL_WIDTH:\n return this.rowRenderer.getTopRowCtrls();\n case RowContainerName.STICKY_TOP_CENTER:\n case RowContainerName.STICKY_TOP_LEFT:\n case RowContainerName.STICKY_TOP_RIGHT:\n case RowContainerName.STICKY_TOP_FULL_WIDTH:\n return this.rowRenderer.getStickyTopRowCtrls();\n case RowContainerName.BOTTOM_CENTER:\n case RowContainerName.BOTTOM_LEFT:\n case RowContainerName.BOTTOM_RIGHT:\n case RowContainerName.BOTTOM_FULL_WIDTH:\n return this.rowRenderer.getBottomRowCtrls();\n default:\n return this.rowRenderer.getCentreRowCtrls();\n }\n }\n}\n__decorate([\n Autowired('dragService')\n], RowContainerCtrl.prototype, \"dragService\", void 0);\n__decorate([\n Autowired('ctrlsService')\n], RowContainerCtrl.prototype, \"ctrlsService\", void 0);\n__decorate([\n Autowired('columnModel')\n], RowContainerCtrl.prototype, \"columnModel\", void 0);\n__decorate([\n Autowired('resizeObserverService')\n], RowContainerCtrl.prototype, \"resizeObserverService\", void 0);\n__decorate([\n Autowired('rowRenderer')\n], RowContainerCtrl.prototype, \"rowRenderer\", void 0);\n__decorate([\n PostConstruct\n], RowContainerCtrl.prototype, \"postConstruct\", null);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Autowired, Optional, PostConstruct } from '../context/context.mjs';\nimport { LayoutCssClasses } from \"../styling/layoutFeature.mjs\";\nimport { setAriaColCount, setAriaMultiSelectable, setAriaRowCount } from '../utils/aria.mjs';\nimport { Component } from '../widgets/component.mjs';\nimport { RefSelector } from '../widgets/componentAnnotations.mjs';\nimport { CSS_CLASS_FORCE_VERTICAL_SCROLL, GridBodyCtrl, RowAnimationCssClasses } from \"./gridBodyCtrl.mjs\";\nimport { RowContainerName } from \"./rowContainer/rowContainerCtrl.mjs\";\nconst GRID_BODY_TEMPLATE = /* html */ `
\n \n
\n \n \n \n \n
\n
\n
\n \n \n \n \n
\n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n \n \n
`;\nexport class GridBodyComp extends Component {\n constructor() {\n super(GRID_BODY_TEMPLATE);\n }\n init() {\n const setHeight = (height, element) => {\n const heightString = `${height}px`;\n element.style.minHeight = heightString;\n element.style.height = heightString;\n };\n const compProxy = {\n setRowAnimationCssOnBodyViewport: (cssClass, animate) => this.setRowAnimationCssOnBodyViewport(cssClass, animate),\n setColumnCount: count => setAriaColCount(this.getGui(), count),\n setRowCount: count => setAriaRowCount(this.getGui(), count),\n setTopHeight: height => setHeight(height, this.eTop),\n setBottomHeight: height => setHeight(height, this.eBottom),\n setTopDisplay: display => this.eTop.style.display = display,\n setBottomDisplay: display => this.eBottom.style.display = display,\n setStickyTopHeight: height => this.eStickyTop.style.height = height,\n setStickyTopTop: top => this.eStickyTop.style.top = top,\n setStickyTopWidth: width => this.eStickyTop.style.width = width,\n setColumnMovingCss: (cssClass, flag) => this.addOrRemoveCssClass(cssClass, flag),\n updateLayoutClasses: (cssClass, params) => {\n const classLists = [\n this.eBodyViewport.classList,\n this.eBody.classList\n ];\n classLists.forEach(classList => {\n classList.toggle(LayoutCssClasses.AUTO_HEIGHT, params.autoHeight);\n classList.toggle(LayoutCssClasses.NORMAL, params.normal);\n classList.toggle(LayoutCssClasses.PRINT, params.print);\n });\n this.addOrRemoveCssClass(LayoutCssClasses.AUTO_HEIGHT, params.autoHeight);\n this.addOrRemoveCssClass(LayoutCssClasses.NORMAL, params.normal);\n this.addOrRemoveCssClass(LayoutCssClasses.PRINT, params.print);\n },\n setAlwaysVerticalScrollClass: (cssClass, on) => this.eBodyViewport.classList.toggle(CSS_CLASS_FORCE_VERTICAL_SCROLL, on),\n registerBodyViewportResizeListener: listener => {\n const unsubscribeFromResize = this.resizeObserverService.observeResize(this.eBodyViewport, listener);\n this.addDestroyFunc(() => unsubscribeFromResize());\n },\n setPinnedTopBottomOverflowY: overflow => this.eTop.style.overflowY = this.eBottom.style.overflowY = overflow,\n setCellSelectableCss: (cssClass, selectable) => {\n [this.eTop, this.eBodyViewport, this.eBottom]\n .forEach(ct => ct.classList.toggle(cssClass, selectable));\n },\n setBodyViewportWidth: width => this.eBodyViewport.style.width = width\n };\n this.ctrl = this.createManagedBean(new GridBodyCtrl());\n this.ctrl.setComp(compProxy, this.getGui(), this.eBodyViewport, this.eTop, this.eBottom, this.eStickyTop);\n if (this.rangeService && this.gridOptionsService.get('enableRangeSelection') || this.gridOptionsService.get('rowSelection') === 'multiple') {\n setAriaMultiSelectable(this.getGui(), true);\n }\n }\n setRowAnimationCssOnBodyViewport(cssClass, animateRows) {\n const bodyViewportClassList = this.eBodyViewport.classList;\n bodyViewportClassList.toggle(RowAnimationCssClasses.ANIMATION_ON, animateRows);\n bodyViewportClassList.toggle(RowAnimationCssClasses.ANIMATION_OFF, !animateRows);\n }\n getFloatingTopBottom() {\n return [this.eTop, this.eBottom];\n }\n}\n__decorate([\n Autowired('resizeObserverService')\n], GridBodyComp.prototype, \"resizeObserverService\", void 0);\n__decorate([\n Optional('rangeService')\n], GridBodyComp.prototype, \"rangeService\", void 0);\n__decorate([\n RefSelector('eBodyViewport')\n], GridBodyComp.prototype, \"eBodyViewport\", void 0);\n__decorate([\n RefSelector('eStickyTop')\n], GridBodyComp.prototype, \"eStickyTop\", void 0);\n__decorate([\n RefSelector('eTop')\n], GridBodyComp.prototype, \"eTop\", void 0);\n__decorate([\n RefSelector('eBottom')\n], GridBodyComp.prototype, \"eBottom\", void 0);\n__decorate([\n RefSelector('gridHeader')\n], GridBodyComp.prototype, \"headerRootComp\", void 0);\n__decorate([\n RefSelector('eBody')\n], GridBodyComp.prototype, \"eBody\", void 0);\n__decorate([\n PostConstruct\n], GridBodyComp.prototype, \"init\", null);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Bean, Autowired, PostConstruct } from \"../context/context.mjs\";\nimport { BeanStub } from \"../context/beanStub.mjs\";\nimport { Events } from \"../events.mjs\";\nlet ScrollVisibleService = class ScrollVisibleService extends BeanStub {\n postConstruct() {\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayedColumnsChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, this.onDisplayedColumnsWidthChanged.bind(this));\n }\n onDisplayedColumnsChanged() {\n this.update();\n }\n onDisplayedColumnsWidthChanged() {\n this.update();\n }\n update() {\n // Because of column animation, if user removes cols anywhere except at the RHS, \n // then the cols on the RHS will animate to the left to fill the gap. This animation \n // means just after the cols are removed, the remaining cols are still in the original\n // location at the start of the animation, so pre animation the H scrollbar is still\n // needed, but post animation it is not. So if animation is active, we only update\n // after the animation has ended.\n if (this.columnAnimationService.isActive()) {\n this.columnAnimationService.executeLaterVMTurn(() => {\n this.columnAnimationService.executeLaterVMTurn(() => this.updateImpl());\n });\n }\n else {\n this.updateImpl();\n }\n }\n updateImpl() {\n const centerRowCtrl = this.ctrlsService.getCenterRowContainerCtrl();\n if (!centerRowCtrl || this.columnAnimationService.isActive()) {\n return;\n }\n const params = {\n horizontalScrollShowing: centerRowCtrl.isHorizontalScrollShowing(),\n verticalScrollShowing: this.isVerticalScrollShowing()\n };\n this.setScrollsVisible(params);\n }\n setScrollsVisible(params) {\n const atLeastOneDifferent = this.horizontalScrollShowing !== params.horizontalScrollShowing ||\n this.verticalScrollShowing !== params.verticalScrollShowing;\n if (atLeastOneDifferent) {\n this.horizontalScrollShowing = params.horizontalScrollShowing;\n this.verticalScrollShowing = params.verticalScrollShowing;\n const event = {\n type: Events.EVENT_SCROLL_VISIBILITY_CHANGED\n };\n this.eventService.dispatchEvent(event);\n }\n }\n // used by pagination service - to know page height\n isHorizontalScrollShowing() {\n return this.horizontalScrollShowing;\n }\n // used by header container\n isVerticalScrollShowing() {\n return this.verticalScrollShowing;\n }\n};\n__decorate([\n Autowired('ctrlsService')\n], ScrollVisibleService.prototype, \"ctrlsService\", void 0);\n__decorate([\n Autowired('columnAnimationService')\n], ScrollVisibleService.prototype, \"columnAnimationService\", void 0);\n__decorate([\n PostConstruct\n], ScrollVisibleService.prototype, \"postConstruct\", null);\nScrollVisibleService = __decorate([\n Bean('scrollVisibleService')\n], ScrollVisibleService);\nexport { ScrollVisibleService };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar MouseEventService_1;\nimport { Bean } from \"../context/context.mjs\";\nimport { Autowired } from \"../context/context.mjs\";\nimport { NumberSequence } from '../utils/index.mjs';\nimport { BeanStub } from \"../context/beanStub.mjs\";\nimport { getCtrlForEventTarget } from \"../utils/event.mjs\";\nimport { exists } from \"../utils/generic.mjs\";\nimport { CellCtrl } from \"../rendering/cell/cellCtrl.mjs\";\nlet MouseEventService = MouseEventService_1 = class MouseEventService extends BeanStub {\n constructor() {\n super(...arguments);\n this.gridInstanceId = MouseEventService_1.gridInstanceSequence.next();\n }\n // we put the instance id onto the main DOM element. this is used for events, when grids are inside grids,\n // so the grid can work out if the even came from this grid or a grid inside this one. see the ctrl+v logic\n // for where this is used.\n stampTopLevelGridCompWithGridInstance(eGridDiv) {\n eGridDiv[MouseEventService_1.GRID_DOM_KEY] = this.gridInstanceId;\n }\n getRenderedCellForEvent(event) {\n return getCtrlForEventTarget(this.gridOptionsService, event.target, CellCtrl.DOM_DATA_KEY_CELL_CTRL);\n }\n // walks the path of the event, and returns true if this grid is the first one that it finds. if doing\n // master / detail grids, and a child grid is found, then it returns false. this stops things like copy/paste\n // getting executed on many grids at the same time.\n isEventFromThisGrid(event) {\n const res = this.isElementInThisGrid(event.target);\n return res;\n }\n isElementInThisGrid(element) {\n let pointer = element;\n while (pointer) {\n const instanceId = pointer[MouseEventService_1.GRID_DOM_KEY];\n if (exists(instanceId)) {\n const eventFromThisGrid = instanceId === this.gridInstanceId;\n return eventFromThisGrid;\n }\n pointer = pointer.parentElement;\n }\n return false;\n }\n getCellPositionForEvent(event) {\n const cellComp = this.getRenderedCellForEvent(event);\n return cellComp ? cellComp.getCellPosition() : null;\n }\n getNormalisedPosition(event) {\n const gridPanelHasScrolls = this.gridOptionsService.isDomLayout('normal');\n const e = event;\n let x;\n let y;\n if (e.clientX != null || e.clientY != null) {\n x = e.clientX;\n y = e.clientY;\n }\n else {\n x = e.x;\n y = e.y;\n }\n if (gridPanelHasScrolls) {\n const gridBodyCon = this.ctrlsService.getGridBodyCtrl();\n const vRange = gridBodyCon.getScrollFeature().getVScrollPosition();\n const hRange = gridBodyCon.getScrollFeature().getHScrollPosition();\n x += hRange.left;\n y += vRange.top;\n }\n return { x, y };\n }\n};\nMouseEventService.gridInstanceSequence = new NumberSequence();\nMouseEventService.GRID_DOM_KEY = '__ag_grid_instance';\n__decorate([\n Autowired('ctrlsService')\n], MouseEventService.prototype, \"ctrlsService\", void 0);\nMouseEventService = MouseEventService_1 = __decorate([\n Bean('mouseEventService')\n], MouseEventService);\nexport { MouseEventService };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Autowired, Bean, Optional, PostConstruct } from \"../context/context.mjs\";\nimport { BeanStub } from \"../context/beanStub.mjs\";\nimport { exists, missing } from \"../utils/generic.mjs\";\nimport { last } from \"../utils/array.mjs\";\nimport { KeyCode } from '../constants/keyCode.mjs';\nimport { CellCtrl } from \"../rendering/cell/cellCtrl.mjs\";\nimport { RowCtrl } from \"../rendering/row/rowCtrl.mjs\";\nimport { warnOnce, throttle } from \"../utils/function.mjs\";\nimport { Events } from \"../eventKeys.mjs\";\nlet NavigationService = class NavigationService extends BeanStub {\n constructor() {\n super();\n this.onPageDown = throttle(this.onPageDown, 100);\n this.onPageUp = throttle(this.onPageUp, 100);\n }\n postConstruct() {\n this.ctrlsService.whenReady(p => {\n this.gridBodyCon = p.gridBodyCtrl;\n });\n }\n handlePageScrollingKey(event, fromFullWidth = false) {\n const key = event.key;\n const alt = event.altKey;\n const ctrl = event.ctrlKey || event.metaKey;\n const rangeServiceShouldHandleShift = !!this.rangeService && event.shiftKey;\n // home and end can be processed without knowing the currently selected cell, this can occur for full width rows.\n const currentCell = this.mouseEventService.getCellPositionForEvent(event);\n let processed = false;\n switch (key) {\n case KeyCode.PAGE_HOME:\n case KeyCode.PAGE_END:\n // handle home and end when ctrl & alt are NOT pressed\n if (!ctrl && !alt) {\n this.onHomeOrEndKey(key);\n processed = true;\n }\n break;\n case KeyCode.LEFT:\n case KeyCode.RIGHT:\n case KeyCode.UP:\n case KeyCode.DOWN:\n if (!currentCell) {\n return false;\n }\n // handle when ctrl is pressed only, if shift is pressed\n // it will be handled by the rangeService\n if (ctrl && !alt && !rangeServiceShouldHandleShift) {\n this.onCtrlUpDownLeftRight(key, currentCell);\n processed = true;\n }\n break;\n case KeyCode.PAGE_DOWN:\n case KeyCode.PAGE_UP:\n // handle page up and page down when ctrl & alt are NOT pressed\n if (!ctrl && !alt) {\n processed = this.handlePageUpDown(key, currentCell, fromFullWidth);\n }\n break;\n }\n if (processed) {\n event.preventDefault();\n }\n return processed;\n }\n handlePageUpDown(key, currentCell, fromFullWidth) {\n if (fromFullWidth) {\n currentCell = this.focusService.getFocusedCell();\n }\n if (!currentCell) {\n return false;\n }\n if (key === KeyCode.PAGE_UP) {\n this.onPageUp(currentCell);\n }\n else {\n this.onPageDown(currentCell);\n }\n return true;\n }\n navigateTo(navigateParams) {\n const { scrollIndex, scrollType, scrollColumn, focusIndex, focusColumn } = navigateParams;\n if (exists(scrollColumn) && !scrollColumn.isPinned()) {\n this.gridBodyCon.getScrollFeature().ensureColumnVisible(scrollColumn);\n }\n if (exists(scrollIndex)) {\n this.gridBodyCon.getScrollFeature().ensureIndexVisible(scrollIndex, scrollType);\n }\n // setFocusedCell relies on the browser default focus behavior to scroll the focused cell into view,\n // however, this behavior will cause the cell border to be cut off, or if we have sticky rows, the\n // cell will be completely hidden, so we call ensureIndexVisible without a position to guarantee\n // minimal scroll to get the row into view.\n if (!navigateParams.isAsync) {\n this.gridBodyCon.getScrollFeature().ensureIndexVisible(focusIndex);\n }\n // if we don't do this, the range will be left on the last cell, which will leave the last focused cell\n // highlighted.\n this.focusService.setFocusedCell({ rowIndex: focusIndex, column: focusColumn, rowPinned: null, forceBrowserFocus: true });\n if (this.rangeService) {\n const cellPosition = { rowIndex: focusIndex, rowPinned: null, column: focusColumn };\n this.rangeService.setRangeToCell(cellPosition);\n }\n }\n // this method is throttled, see the `constructor`\n onPageDown(gridCell) {\n const gridBodyCon = this.ctrlsService.getGridBodyCtrl();\n const scrollPosition = gridBodyCon.getScrollFeature().getVScrollPosition();\n const pixelsInOnePage = this.getViewportHeight();\n const pagingPixelOffset = this.paginationProxy.getPixelOffset();\n const currentPageBottomPixel = scrollPosition.top + pixelsInOnePage;\n const currentPageBottomRow = this.paginationProxy.getRowIndexAtPixel(currentPageBottomPixel + pagingPixelOffset);\n if (this.columnModel.isAutoRowHeightActive()) {\n this.navigateToNextPageWithAutoHeight(gridCell, currentPageBottomRow);\n }\n else {\n this.navigateToNextPage(gridCell, currentPageBottomRow);\n }\n }\n // this method is throttled, see the `constructor`\n onPageUp(gridCell) {\n const gridBodyCon = this.ctrlsService.getGridBodyCtrl();\n const scrollPosition = gridBodyCon.getScrollFeature().getVScrollPosition();\n const pagingPixelOffset = this.paginationProxy.getPixelOffset();\n const currentPageTopPixel = scrollPosition.top;\n const currentPageTopRow = this.paginationProxy.getRowIndexAtPixel(currentPageTopPixel + pagingPixelOffset);\n if (this.columnModel.isAutoRowHeightActive()) {\n this.navigateToNextPageWithAutoHeight(gridCell, currentPageTopRow, true);\n }\n else {\n this.navigateToNextPage(gridCell, currentPageTopRow, true);\n }\n }\n navigateToNextPage(gridCell, scrollIndex, up = false) {\n const pixelsInOnePage = this.getViewportHeight();\n const firstRow = this.paginationProxy.getPageFirstRow();\n const lastRow = this.paginationProxy.getPageLastRow();\n const pagingPixelOffset = this.paginationProxy.getPixelOffset();\n const currentRowNode = this.paginationProxy.getRow(gridCell.rowIndex);\n const rowPixelDiff = up\n ? ((currentRowNode === null || currentRowNode === void 0 ? void 0 : currentRowNode.rowHeight) - pixelsInOnePage - pagingPixelOffset)\n : (pixelsInOnePage - pagingPixelOffset);\n const nextCellPixel = (currentRowNode === null || currentRowNode === void 0 ? void 0 : currentRowNode.rowTop) + rowPixelDiff;\n let focusIndex = this.paginationProxy.getRowIndexAtPixel(nextCellPixel + pagingPixelOffset);\n if (focusIndex === gridCell.rowIndex) {\n const diff = up ? -1 : 1;\n scrollIndex = focusIndex = gridCell.rowIndex + diff;\n }\n let scrollType;\n if (up) {\n scrollType = 'bottom';\n if (focusIndex < firstRow) {\n focusIndex = firstRow;\n }\n if (scrollIndex < firstRow) {\n scrollIndex = firstRow;\n }\n }\n else {\n scrollType = 'top';\n if (focusIndex > lastRow) {\n focusIndex = lastRow;\n }\n if (scrollIndex > lastRow) {\n scrollIndex = lastRow;\n }\n }\n if (this.isRowTallerThanView(focusIndex)) {\n scrollIndex = focusIndex;\n scrollType = 'top';\n }\n this.navigateTo({\n scrollIndex,\n scrollType,\n scrollColumn: null,\n focusIndex,\n focusColumn: gridCell.column\n });\n }\n navigateToNextPageWithAutoHeight(gridCell, scrollIndex, up = false) {\n // because autoHeight will calculate the height of rows after scroll\n // first we scroll towards the required point, then we add a small\n // delay to allow the height to be recalculated, check which index\n // should be focused and then finally navigate to that index.\n // TODO: we should probably have an event fired once to scrollbar has\n // settled and all rowHeights have been calculated instead of relying\n // on a setTimeout of 50ms.\n this.navigateTo({\n scrollIndex: scrollIndex,\n scrollType: up ? 'bottom' : 'top',\n scrollColumn: null,\n focusIndex: scrollIndex,\n focusColumn: gridCell.column\n });\n setTimeout(() => {\n const focusIndex = this.getNextFocusIndexForAutoHeight(gridCell, up);\n this.navigateTo({\n scrollIndex: scrollIndex,\n scrollType: up ? 'bottom' : 'top',\n scrollColumn: null,\n focusIndex: focusIndex,\n focusColumn: gridCell.column,\n isAsync: true\n });\n }, 50);\n }\n getNextFocusIndexForAutoHeight(gridCell, up = false) {\n var _a;\n const step = up ? -1 : 1;\n const pixelsInOnePage = this.getViewportHeight();\n const lastRowIndex = this.paginationProxy.getPageLastRow();\n let pixelSum = 0;\n let currentIndex = gridCell.rowIndex;\n while (currentIndex >= 0 && currentIndex <= lastRowIndex) {\n const currentCell = this.paginationProxy.getRow(currentIndex);\n if (currentCell) {\n const currentCellHeight = (_a = currentCell.rowHeight) !== null && _a !== void 0 ? _a : 0;\n if (pixelSum + currentCellHeight > pixelsInOnePage) {\n break;\n }\n pixelSum += currentCellHeight;\n }\n currentIndex += step;\n }\n return Math.max(0, Math.min(currentIndex, lastRowIndex));\n }\n getViewportHeight() {\n const gridBodyCon = this.ctrlsService.getGridBodyCtrl();\n const scrollPosition = gridBodyCon.getScrollFeature().getVScrollPosition();\n const scrollbarWidth = this.gridOptionsService.getScrollbarWidth();\n let pixelsInOnePage = scrollPosition.bottom - scrollPosition.top;\n if (this.ctrlsService.getCenterRowContainerCtrl().isHorizontalScrollShowing()) {\n pixelsInOnePage -= scrollbarWidth;\n }\n return pixelsInOnePage;\n }\n isRowTallerThanView(rowIndex) {\n const rowNode = this.paginationProxy.getRow(rowIndex);\n if (!rowNode) {\n return false;\n }\n const rowHeight = rowNode.rowHeight;\n if (typeof rowHeight !== 'number') {\n return false;\n }\n return rowHeight > this.getViewportHeight();\n }\n onCtrlUpDownLeftRight(key, gridCell) {\n const cellToFocus = this.cellNavigationService.getNextCellToFocus(key, gridCell, true);\n const { rowIndex, column } = cellToFocus;\n this.navigateTo({\n scrollIndex: rowIndex,\n scrollType: null,\n scrollColumn: column,\n focusIndex: rowIndex,\n focusColumn: column\n });\n }\n // home brings focus to top left cell, end brings focus to bottom right, grid scrolled to bring\n // same cell into view (which means either scroll all the way up, or all the way down).\n onHomeOrEndKey(key) {\n const homeKey = key === KeyCode.PAGE_HOME;\n const allColumns = this.columnModel.getAllDisplayedColumns();\n const columnToSelect = homeKey ? allColumns[0] : last(allColumns);\n const scrollIndex = homeKey ? this.paginationProxy.getPageFirstRow() : this.paginationProxy.getPageLastRow();\n this.navigateTo({\n scrollIndex: scrollIndex,\n scrollType: null,\n scrollColumn: columnToSelect,\n focusIndex: scrollIndex,\n focusColumn: columnToSelect\n });\n }\n // result of keyboard event\n onTabKeyDown(previous, keyboardEvent) {\n const backwards = keyboardEvent.shiftKey;\n const movedToNextCell = this.tabToNextCellCommon(previous, backwards, keyboardEvent);\n if (movedToNextCell) {\n // only prevent default if we found a cell. so if user is on last cell and hits tab, then we default\n // to the normal tabbing so user can exit the grid.\n keyboardEvent.preventDefault();\n return;\n }\n // if we didn't move to next cell, then need to tab out of the cells, ie to the header (if going\n // backwards)\n if (backwards) {\n const { rowIndex, rowPinned } = previous.getRowPosition();\n const firstRow = rowPinned ? rowIndex === 0 : rowIndex === this.paginationProxy.getPageFirstRow();\n if (firstRow) {\n if (this.gridOptionsService.get('headerHeight') === 0 || this.gridOptionsService.get('suppressHeaderFocus')) {\n this.focusService.focusNextGridCoreContainer(true, true);\n }\n else {\n keyboardEvent.preventDefault();\n this.focusService.focusPreviousFromFirstCell(keyboardEvent);\n }\n }\n }\n else {\n // if the case it's a popup editor, the focus is on the editor and not the previous cell.\n // in order for the tab navigation to work, we need to focus the browser back onto the\n // previous cell.\n if (previous instanceof CellCtrl) {\n previous.focusCell(true);\n }\n if (this.focusService.focusNextGridCoreContainer(backwards)) {\n keyboardEvent.preventDefault();\n }\n }\n }\n // comes from API\n tabToNextCell(backwards, event) {\n const focusedCell = this.focusService.getFocusedCell();\n // if no focus, then cannot navigate\n if (!focusedCell) {\n return false;\n }\n let cellOrRow = this.getCellByPosition(focusedCell);\n // if cell is not rendered, means user has scrolled away from the cell\n // or that the focusedCell is a Full Width Row\n if (!cellOrRow) {\n cellOrRow = this.rowRenderer.getRowByPosition(focusedCell);\n if (!cellOrRow || !cellOrRow.isFullWidth()) {\n return false;\n }\n }\n return this.tabToNextCellCommon(cellOrRow, backwards, event);\n }\n tabToNextCellCommon(previous, backwards, event) {\n let editing = previous.isEditing();\n // if cell is not editing, there is still chance row is editing if it's Full Row Editing\n if (!editing && previous instanceof CellCtrl) {\n const cell = previous;\n const row = cell.getRowCtrl();\n if (row) {\n editing = row.isEditing();\n }\n }\n let res;\n if (editing) {\n // if we are editing, we know it's not a Full Width Row (RowComp)\n if (this.gridOptionsService.get('editType') === 'fullRow') {\n res = this.moveToNextEditingRow(previous, backwards, event);\n }\n else {\n res = this.moveToNextEditingCell(previous, backwards, event);\n }\n }\n else {\n res = this.moveToNextCellNotEditing(previous, backwards);\n }\n // if a cell wasn't found, it's possible that focus was moved to the header\n return res || !!this.focusService.getFocusedHeader();\n }\n moveToNextEditingCell(previousCell, backwards, event = null) {\n const previousPos = previousCell.getCellPosition();\n // before we stop editing, we need to focus the cell element\n // so the grid doesn't detect that focus has left the grid\n previousCell.getGui().focus();\n // need to do this before getting next cell to edit, in case the next cell\n // has editable function (eg colDef.editable=func() ) and it depends on the\n // result of this cell, so need to save updates from the first edit, in case\n // the value is referenced in the function.\n previousCell.stopEditing();\n // find the next cell to start editing\n const nextCell = this.findNextCellToFocusOn(previousPos, backwards, true);\n if (nextCell == null) {\n return false;\n }\n // only prevent default if we found a cell. so if user is on last cell and hits tab, then we default\n // to the normal tabbing so user can exit the grid.\n nextCell.startEditing(null, true, event);\n nextCell.focusCell(false);\n return true;\n }\n moveToNextEditingRow(previousCell, backwards, event = null) {\n const previousPos = previousCell.getCellPosition();\n // find the next cell to start editing\n const nextCell = this.findNextCellToFocusOn(previousPos, backwards, true);\n if (nextCell == null) {\n return false;\n }\n const nextPos = nextCell.getCellPosition();\n const previousEditable = this.isCellEditable(previousPos);\n const nextEditable = this.isCellEditable(nextPos);\n const rowsMatch = nextPos && previousPos.rowIndex === nextPos.rowIndex && previousPos.rowPinned === nextPos.rowPinned;\n if (previousEditable) {\n previousCell.setFocusOutOnEditor();\n }\n if (!rowsMatch) {\n const pRow = previousCell.getRowCtrl();\n pRow.stopEditing();\n const nRow = nextCell.getRowCtrl();\n nRow.startRowEditing(undefined, undefined, event);\n }\n if (nextEditable) {\n nextCell.setFocusInOnEditor();\n nextCell.focusCell();\n }\n else {\n nextCell.focusCell(true);\n }\n return true;\n }\n moveToNextCellNotEditing(previousCell, backwards) {\n const displayedColumns = this.columnModel.getAllDisplayedColumns();\n let cellPos;\n if (previousCell instanceof RowCtrl) {\n cellPos = Object.assign(Object.assign({}, previousCell.getRowPosition()), { column: backwards ? displayedColumns[0] : last(displayedColumns) });\n }\n else {\n cellPos = previousCell.getCellPosition();\n }\n // find the next cell to start editing\n const nextCell = this.findNextCellToFocusOn(cellPos, backwards, false);\n // only prevent default if we found a cell. so if user is on last cell and hits tab, then we default\n // to the normal tabbing so user can exit the grid.\n if (nextCell instanceof CellCtrl) {\n nextCell.focusCell(true);\n }\n else if (nextCell) {\n return this.tryToFocusFullWidthRow(nextCell.getRowPosition(), backwards);\n }\n return exists(nextCell);\n }\n // called by the cell, when tab is pressed while editing.\n // @return: RenderedCell when navigation successful, otherwise null\n findNextCellToFocusOn(previousPosition, backwards, startEditing) {\n let nextPosition = previousPosition;\n while (true) {\n if (previousPosition !== nextPosition) {\n previousPosition = nextPosition;\n }\n if (!backwards) {\n nextPosition = this.getLastCellOfColSpan(nextPosition);\n }\n nextPosition = this.cellNavigationService.getNextTabbedCell(nextPosition, backwards);\n // allow user to override what cell to go to next\n const userFunc = this.gridOptionsService.getCallback('tabToNextCell');\n if (exists(userFunc)) {\n const params = {\n backwards: backwards,\n editing: startEditing,\n previousCellPosition: previousPosition,\n nextCellPosition: nextPosition ? nextPosition : null\n };\n const userCell = userFunc(params);\n if (exists(userCell)) {\n if (userCell.floating) {\n warnOnce(`tabToNextCellFunc return type should have attributes: rowIndex, rowPinned, column. However you had 'floating', maybe you meant 'rowPinned'?`);\n userCell.rowPinned = userCell.floating;\n }\n nextPosition = {\n rowIndex: userCell.rowIndex,\n column: userCell.column,\n rowPinned: userCell.rowPinned\n };\n }\n else {\n nextPosition = null;\n }\n }\n // if no 'next cell', means we have got to last cell of grid, so nothing to move to,\n // so bottom right cell going forwards, or top left going backwards\n if (!nextPosition) {\n return null;\n }\n if (nextPosition.rowIndex < 0) {\n const headerLen = this.headerNavigationService.getHeaderRowCount();\n this.focusService.focusHeaderPosition({\n headerPosition: {\n headerRowIndex: headerLen + (nextPosition.rowIndex),\n column: nextPosition.column\n },\n fromCell: true\n });\n return null;\n }\n // if editing, but cell not editable, skip cell. we do this before we do all of\n // the 'ensure index visible' and 'flush all frames', otherwise if we are skipping\n // a bunch of cells (eg 10 rows) then all the work on ensuring cell visible is useless\n // (except for the last one) which causes grid to stall for a while.\n // note - for full row edit, we do focus non-editable cells, as the row stays in edit mode.\n const fullRowEdit = this.gridOptionsService.get('editType') === 'fullRow';\n if (startEditing && !fullRowEdit) {\n const cellIsEditable = this.isCellEditable(nextPosition);\n if (!cellIsEditable) {\n continue;\n }\n }\n this.ensureCellVisible(nextPosition);\n // we have to call this after ensureColumnVisible - otherwise it could be a virtual column\n // or row that is not currently in view, hence the renderedCell would not exist\n const nextCell = this.getCellByPosition(nextPosition);\n // if next cell is fullWidth row, then no rendered cell,\n // as fullWidth rows have no cells, so we skip it\n if (!nextCell) {\n const row = this.rowRenderer.getRowByPosition(nextPosition);\n if (!row || !row.isFullWidth() || startEditing) {\n continue;\n }\n return row;\n }\n if (nextCell.isSuppressNavigable()) {\n continue;\n }\n // by default, when we click a cell, it gets selected into a range, so to keep keyboard navigation\n // consistent, we set into range here also.\n if (this.rangeService) {\n this.rangeService.setRangeToCell(nextPosition);\n }\n // we successfully tabbed onto a grid cell, so return true\n return nextCell;\n }\n }\n isCellEditable(cell) {\n const rowNode = this.lookupRowNodeForCell(cell);\n if (rowNode) {\n return cell.column.isCellEditable(rowNode);\n }\n return false;\n }\n getCellByPosition(cellPosition) {\n const rowCtrl = this.rowRenderer.getRowByPosition(cellPosition);\n if (!rowCtrl) {\n return null;\n }\n return rowCtrl.getCellCtrl(cellPosition.column);\n }\n lookupRowNodeForCell(cell) {\n if (cell.rowPinned === 'top') {\n return this.pinnedRowModel.getPinnedTopRow(cell.rowIndex);\n }\n if (cell.rowPinned === 'bottom') {\n return this.pinnedRowModel.getPinnedBottomRow(cell.rowIndex);\n }\n return this.paginationProxy.getRow(cell.rowIndex);\n }\n // we use index for rows, but column object for columns, as the next column (by index) might not\n // be visible (header grouping) so it's not reliable, so using the column object instead.\n navigateToNextCell(event, key, currentCell, allowUserOverride) {\n // we keep searching for a next cell until we find one. this is how the group rows get skipped\n let nextCell = currentCell;\n let hitEdgeOfGrid = false;\n while (nextCell && (nextCell === currentCell || !this.isValidNavigateCell(nextCell))) {\n // if the current cell is spanning across multiple columns, we need to move\n // our current position to be the last cell on the right before finding the\n // the next target.\n if (this.gridOptionsService.get('enableRtl')) {\n if (key === KeyCode.LEFT) {\n nextCell = this.getLastCellOfColSpan(nextCell);\n }\n }\n else if (key === KeyCode.RIGHT) {\n nextCell = this.getLastCellOfColSpan(nextCell);\n }\n nextCell = this.cellNavigationService.getNextCellToFocus(key, nextCell);\n // eg if going down, and nextCell=undefined, means we are gone past the last row\n hitEdgeOfGrid = missing(nextCell);\n }\n if (hitEdgeOfGrid && event && event.key === KeyCode.UP) {\n nextCell = {\n rowIndex: -1,\n rowPinned: null,\n column: currentCell.column\n };\n }\n // allow user to override what cell to go to next. when doing normal cell navigation (with keys)\n // we allow this, however if processing 'enter after edit' we don't allow override\n if (allowUserOverride) {\n const userFunc = this.gridOptionsService.getCallback('navigateToNextCell');\n if (exists(userFunc)) {\n const params = {\n key: key,\n previousCellPosition: currentCell,\n nextCellPosition: nextCell ? nextCell : null,\n event: event\n };\n const userCell = userFunc(params);\n if (exists(userCell)) {\n if (userCell.floating) {\n warnOnce(`tabToNextCellFunc return type should have attributes: rowIndex, rowPinned, column. However you had 'floating', maybe you meant 'rowPinned'?`);\n userCell.rowPinned = userCell.floating;\n }\n nextCell = {\n rowPinned: userCell.rowPinned,\n rowIndex: userCell.rowIndex,\n column: userCell.column\n };\n }\n else {\n nextCell = null;\n }\n }\n }\n // no next cell means we have reached a grid boundary, eg left, right, top or bottom of grid\n if (!nextCell) {\n return;\n }\n if (nextCell.rowIndex < 0) {\n const headerLen = this.headerNavigationService.getHeaderRowCount();\n this.focusService.focusHeaderPosition({\n headerPosition: { headerRowIndex: headerLen + (nextCell.rowIndex), column: currentCell.column },\n event: event || undefined,\n fromCell: true\n });\n return;\n }\n // in case we have col spanning we get the cellComp and use it to get the\n // position. This was we always focus the first cell inside the spanning.\n const normalisedPosition = this.getNormalisedPosition(nextCell);\n if (normalisedPosition) {\n this.focusPosition(normalisedPosition);\n }\n else {\n this.tryToFocusFullWidthRow(nextCell);\n }\n }\n getNormalisedPosition(cellPosition) {\n // ensureCellVisible first, to make sure cell at position is rendered.\n this.ensureCellVisible(cellPosition);\n const cellCtrl = this.getCellByPosition(cellPosition);\n // not guaranteed to have a cellComp when using the SSRM as blocks are loading.\n if (!cellCtrl) {\n return null;\n }\n cellPosition = cellCtrl.getCellPosition();\n // we call this again, as nextCell can be different to it's previous value due to Column Spanning\n // (ie if cursor moving from right to left, and cell is spanning columns, then nextCell was the\n // last column in the group, however now it's the first column in the group). if we didn't do\n // ensureCellVisible again, then we could only be showing the last portion (last column) of the\n // merged cells.\n this.ensureCellVisible(cellPosition);\n return cellPosition;\n }\n tryToFocusFullWidthRow(position, backwards = false) {\n const displayedColumns = this.columnModel.getAllDisplayedColumns();\n const rowComp = this.rowRenderer.getRowByPosition(position);\n if (!rowComp || !rowComp.isFullWidth()) {\n return false;\n }\n const currentCellFocused = this.focusService.getFocusedCell();\n const cellPosition = {\n rowIndex: position.rowIndex,\n rowPinned: position.rowPinned,\n column: position.column || (backwards ? last(displayedColumns) : displayedColumns[0])\n };\n this.focusPosition(cellPosition);\n const fromBelow = currentCellFocused != null ? this.rowPositionUtils.before(cellPosition, currentCellFocused) : false;\n const focusEvent = {\n type: Events.EVENT_FULL_WIDTH_ROW_FOCUSED,\n rowIndex: cellPosition.rowIndex,\n rowPinned: cellPosition.rowPinned,\n column: cellPosition.column,\n isFullWidthCell: true,\n floating: cellPosition.rowPinned,\n fromBelow\n };\n this.eventService.dispatchEvent(focusEvent);\n return true;\n }\n focusPosition(cellPosition) {\n this.focusService.setFocusedCell({\n rowIndex: cellPosition.rowIndex,\n column: cellPosition.column,\n rowPinned: cellPosition.rowPinned,\n forceBrowserFocus: true\n });\n if (this.rangeService) {\n this.rangeService.setRangeToCell(cellPosition);\n }\n }\n isValidNavigateCell(cell) {\n const rowNode = this.rowPositionUtils.getRowNode(cell);\n // we do not allow focusing on detail rows and full width rows\n return !!rowNode;\n }\n getLastCellOfColSpan(cell) {\n const cellCtrl = this.getCellByPosition(cell);\n if (!cellCtrl) {\n return cell;\n }\n const colSpanningList = cellCtrl.getColSpanningList();\n if (colSpanningList.length === 1) {\n return cell;\n }\n return {\n rowIndex: cell.rowIndex,\n column: last(colSpanningList),\n rowPinned: cell.rowPinned\n };\n }\n ensureCellVisible(gridCell) {\n const isGroupStickyEnabled = this.gridOptionsService.isGroupRowsSticky();\n const rowNode = this.rowModel.getRow(gridCell.rowIndex);\n // sticky rows are always visible, so the grid shouldn't scroll to focus them.\n const skipScrollToRow = isGroupStickyEnabled && (rowNode === null || rowNode === void 0 ? void 0 : rowNode.sticky);\n // this scrolls the row into view\n if (!skipScrollToRow && missing(gridCell.rowPinned)) {\n this.gridBodyCon.getScrollFeature().ensureIndexVisible(gridCell.rowIndex);\n }\n if (!gridCell.column.isPinned()) {\n this.gridBodyCon.getScrollFeature().ensureColumnVisible(gridCell.column);\n }\n }\n};\n__decorate([\n Autowired('mouseEventService')\n], NavigationService.prototype, \"mouseEventService\", void 0);\n__decorate([\n Autowired('paginationProxy')\n], NavigationService.prototype, \"paginationProxy\", void 0);\n__decorate([\n Autowired('focusService')\n], NavigationService.prototype, \"focusService\", void 0);\n__decorate([\n Optional('rangeService')\n], NavigationService.prototype, \"rangeService\", void 0);\n__decorate([\n Autowired('columnModel')\n], NavigationService.prototype, \"columnModel\", void 0);\n__decorate([\n Autowired('rowModel')\n], NavigationService.prototype, \"rowModel\", void 0);\n__decorate([\n Autowired('ctrlsService')\n], NavigationService.prototype, \"ctrlsService\", void 0);\n__decorate([\n Autowired('rowRenderer')\n], NavigationService.prototype, \"rowRenderer\", void 0);\n__decorate([\n Autowired('headerNavigationService')\n], NavigationService.prototype, \"headerNavigationService\", void 0);\n__decorate([\n Autowired(\"rowPositionUtils\")\n], NavigationService.prototype, \"rowPositionUtils\", void 0);\n__decorate([\n Autowired(\"cellNavigationService\")\n], NavigationService.prototype, \"cellNavigationService\", void 0);\n__decorate([\n Autowired(\"pinnedRowModel\")\n], NavigationService.prototype, \"pinnedRowModel\", void 0);\n__decorate([\n PostConstruct\n], NavigationService.prototype, \"postConstruct\", null);\nNavigationService = __decorate([\n Bean('navigationService')\n], NavigationService);\nexport { NavigationService };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { PopupComponent } from \"../../widgets/popupComponent.mjs\";\nimport { isUserSuppressingKeyboardEvent } from \"../../utils/keyboard.mjs\";\nimport { PostConstruct } from \"../../context/context.mjs\";\nexport class PopupEditorWrapper extends PopupComponent {\n constructor(params) {\n super(/* html */ `
`);\n this.params = params;\n }\n postConstruct() {\n this.gridOptionsService.setDomData(this.getGui(), PopupEditorWrapper.DOM_KEY_POPUP_EDITOR_WRAPPER, true);\n this.addKeyDownListener();\n }\n addKeyDownListener() {\n const eGui = this.getGui();\n const params = this.params;\n const listener = (event) => {\n if (!isUserSuppressingKeyboardEvent(this.gridOptionsService, event, params.node, params.column, true)) {\n params.onKeyDown(event);\n }\n };\n this.addManagedListener(eGui, 'keydown', listener);\n }\n}\nPopupEditorWrapper.DOM_KEY_POPUP_EDITOR_WRAPPER = 'popupEditorWrapper';\n__decorate([\n PostConstruct\n], PopupEditorWrapper.prototype, \"postConstruct\", null);\n","import { Component } from \"../../widgets/component.mjs\";\nimport { PopupEditorWrapper } from \"./../cellEditors/popupEditorWrapper.mjs\";\nimport { setAriaRole } from \"../../utils/aria.mjs\";\nimport { escapeString } from \"../../utils/string.mjs\";\nimport { missing } from \"../../utils/generic.mjs\";\nimport { addStylesToElement, clearElement, removeFromParent } from \"../../utils/dom.mjs\";\nimport { browserSupportsPreventScroll } from \"../../utils/browser.mjs\";\nexport class CellComp extends Component {\n constructor(beans, cellCtrl, printLayout, eRow, editingRow) {\n super();\n // every time we go into edit mode, or back again, this gets incremented.\n // it's the components way of dealing with the async nature of framework components,\n // so if a framework component takes a while to be created, we know if the object\n // is still relevant when creating is finished. eg we could click edit / un-edit 20\n // times before the first React edit component comes back - we should discard\n // the first 19.\n this.rendererVersion = 0;\n this.editorVersion = 0;\n this.beans = beans;\n this.column = cellCtrl.getColumn();\n this.rowNode = cellCtrl.getRowNode();\n this.rowCtrl = cellCtrl.getRowCtrl();\n this.eRow = eRow;\n this.cellCtrl = cellCtrl;\n const cellDiv = document.createElement('div');\n cellDiv.setAttribute('comp-id', `${this.getCompId()}`);\n this.setTemplateFromElement(cellDiv);\n const eGui = this.getGui();\n this.forceWrapper = cellCtrl.isForceWrapper();\n this.refreshWrapper(false);\n const setAttribute = (name, value) => {\n if (value != null && value != '') {\n eGui.setAttribute(name, value);\n }\n else {\n eGui.removeAttribute(name);\n }\n };\n setAriaRole(eGui, cellCtrl.getCellAriaRole());\n setAttribute('col-id', cellCtrl.getColumnIdSanitised());\n const tabIndex = cellCtrl.getTabIndex();\n if (tabIndex !== undefined) {\n setAttribute('tabindex', tabIndex.toString());\n }\n const compProxy = {\n addOrRemoveCssClass: (cssClassName, on) => this.addOrRemoveCssClass(cssClassName, on),\n setUserStyles: (styles) => addStylesToElement(eGui, styles),\n getFocusableElement: () => this.getFocusableElement(),\n setIncludeSelection: include => this.includeSelection = include,\n setIncludeRowDrag: include => this.includeRowDrag = include,\n setIncludeDndSource: include => this.includeDndSource = include,\n setRenderDetails: (compDetails, valueToDisplay, force) => this.setRenderDetails(compDetails, valueToDisplay, force),\n setEditDetails: (compDetails, popup, position) => this.setEditDetails(compDetails, popup, position),\n getCellEditor: () => this.cellEditor || null,\n getCellRenderer: () => this.cellRenderer || null,\n getParentOfValue: () => this.getParentOfValue()\n };\n cellCtrl.setComp(compProxy, this.getGui(), this.eCellWrapper, printLayout, editingRow);\n }\n getParentOfValue() {\n if (this.eCellValue) {\n // if not editing, and using wrapper, then value goes in eCellValue\n return this.eCellValue;\n }\n if (this.eCellWrapper) {\n // if editing, and using wrapper, value (cell editor) goes in eCellWrapper\n return this.eCellWrapper;\n }\n // if editing or rendering, and not using wrapper, value (or comp) is directly inside cell\n return this.getGui();\n }\n setRenderDetails(compDetails, valueToDisplay, forceNewCellRendererInstance) {\n // this can happen if the users asks for the cell to refresh, but we are not showing the vale as we are editing\n const isInlineEditing = this.cellEditor && !this.cellEditorPopupWrapper;\n if (isInlineEditing) {\n return;\n }\n // this means firstRender will be true for one pass only, as it's initialised to undefined\n this.firstRender = this.firstRender == null;\n // if display template has changed, means any previous Cell Renderer is in the wrong location\n const controlWrapperChanged = this.refreshWrapper(false);\n this.refreshEditStyles(false);\n // all of these have dependencies on the eGui, so only do them after eGui is set\n if (compDetails) {\n const neverRefresh = forceNewCellRendererInstance || controlWrapperChanged;\n const cellRendererRefreshSuccessful = neverRefresh ? false : this.refreshCellRenderer(compDetails);\n if (!cellRendererRefreshSuccessful) {\n this.destroyRenderer();\n this.createCellRendererInstance(compDetails);\n }\n }\n else {\n this.destroyRenderer();\n this.insertValueWithoutCellRenderer(valueToDisplay);\n }\n }\n setEditDetails(compDetails, popup, position) {\n if (compDetails) {\n this.createCellEditorInstance(compDetails, popup, position);\n }\n else {\n this.destroyEditor();\n }\n }\n removeControls() {\n this.checkboxSelectionComp = this.beans.context.destroyBean(this.checkboxSelectionComp);\n this.dndSourceComp = this.beans.context.destroyBean(this.dndSourceComp);\n this.rowDraggingComp = this.beans.context.destroyBean(this.rowDraggingComp);\n }\n // returns true if wrapper was changed\n refreshWrapper(editing) {\n const providingControls = this.includeRowDrag || this.includeDndSource || this.includeSelection;\n const usingWrapper = providingControls || this.forceWrapper;\n const putWrapperIn = usingWrapper && this.eCellWrapper == null;\n if (putWrapperIn) {\n const wrapperDiv = document.createElement('div');\n wrapperDiv.setAttribute('role', 'presentation');\n wrapperDiv.setAttribute('class', 'ag-cell-wrapper');\n this.eCellWrapper = wrapperDiv;\n this.getGui().appendChild(this.eCellWrapper);\n }\n const takeWrapperOut = !usingWrapper && this.eCellWrapper != null;\n if (takeWrapperOut) {\n removeFromParent(this.eCellWrapper);\n this.eCellWrapper = undefined;\n }\n this.addOrRemoveCssClass('ag-cell-value', !usingWrapper);\n const usingCellValue = !editing && usingWrapper;\n const putCellValueIn = usingCellValue && this.eCellValue == null;\n if (putCellValueIn) {\n const cellSpan = document.createElement('span');\n cellSpan.setAttribute('role', 'presentation');\n cellSpan.setAttribute('class', 'ag-cell-value');\n this.eCellValue = cellSpan;\n this.eCellWrapper.appendChild(this.eCellValue);\n }\n const takeCellValueOut = !usingCellValue && this.eCellValue != null;\n if (takeCellValueOut) {\n removeFromParent(this.eCellValue);\n this.eCellValue = undefined;\n }\n const templateChanged = putWrapperIn || takeWrapperOut || putCellValueIn || takeCellValueOut;\n if (templateChanged) {\n this.removeControls();\n }\n if (!editing) {\n if (providingControls) {\n this.addControls();\n }\n }\n return templateChanged;\n }\n addControls() {\n if (this.includeRowDrag) {\n if (this.rowDraggingComp == null) {\n this.rowDraggingComp = this.cellCtrl.createRowDragComp();\n if (this.rowDraggingComp) {\n // put the checkbox in before the value\n this.eCellWrapper.insertBefore(this.rowDraggingComp.getGui(), this.eCellValue);\n }\n }\n }\n if (this.includeDndSource) {\n if (this.dndSourceComp == null) {\n this.dndSourceComp = this.cellCtrl.createDndSource();\n // put the checkbox in before the value\n this.eCellWrapper.insertBefore(this.dndSourceComp.getGui(), this.eCellValue);\n }\n }\n if (this.includeSelection) {\n if (this.checkboxSelectionComp == null) {\n this.checkboxSelectionComp = this.cellCtrl.createSelectionCheckbox();\n this.eCellWrapper.insertBefore(this.checkboxSelectionComp.getGui(), this.eCellValue);\n }\n }\n }\n createCellEditorInstance(compDetails, popup, position) {\n const versionCopy = this.editorVersion;\n const cellEditorPromise = compDetails.newAgStackInstance();\n if (!cellEditorPromise) {\n return;\n } // if empty, userComponentFactory already did a console message\n const { params } = compDetails;\n cellEditorPromise.then(c => this.afterCellEditorCreated(versionCopy, c, params, popup, position));\n // if we don't do this, and editor component is async, then there will be a period\n // when the component isn't present and keyboard navigation won't work - so example\n // of user hitting tab quickly (more quickly than renderers getting created) won't work\n const cellEditorAsync = missing(this.cellEditor);\n if (cellEditorAsync && params.cellStartedEdit) {\n this.cellCtrl.focusCell(true);\n }\n }\n insertValueWithoutCellRenderer(valueToDisplay) {\n const eParent = this.getParentOfValue();\n clearElement(eParent);\n const escapedValue = valueToDisplay != null ? escapeString(valueToDisplay, true) : null;\n if (escapedValue != null) {\n eParent.textContent = escapedValue;\n }\n }\n destroyEditorAndRenderer() {\n this.destroyRenderer();\n this.destroyEditor();\n }\n destroyRenderer() {\n const { context } = this.beans;\n this.cellRenderer = context.destroyBean(this.cellRenderer);\n removeFromParent(this.cellRendererGui);\n this.cellRendererGui = null;\n this.rendererVersion++;\n }\n destroyEditor() {\n const { context } = this.beans;\n if (this.hideEditorPopup) {\n this.hideEditorPopup();\n }\n this.hideEditorPopup = undefined;\n this.cellEditor = context.destroyBean(this.cellEditor);\n this.cellEditorPopupWrapper = context.destroyBean(this.cellEditorPopupWrapper);\n removeFromParent(this.cellEditorGui);\n this.cellEditorGui = null;\n this.editorVersion++;\n }\n refreshCellRenderer(compClassAndParams) {\n if (this.cellRenderer == null || this.cellRenderer.refresh == null) {\n return false;\n }\n // if different Cell Renderer configured this time (eg user is using selector, and\n // returns different component) then don't refresh, force recreate of Cell Renderer\n if (this.cellRendererClass !== compClassAndParams.componentClass) {\n return false;\n }\n // take any custom params off of the user\n const result = this.cellRenderer.refresh(compClassAndParams.params);\n // NOTE on undefined: previous version of the cellRenderer.refresh() interface\n // returned nothing, if the method existed, we assumed it refreshed. so for\n // backwards compatibility, we assume if method exists and returns nothing,\n // that it was successful.\n return result === true || result === undefined;\n }\n createCellRendererInstance(compDetails) {\n // never use task service if animation frame service is turned off.\n // and lastly we never use it if doing auto-height, as the auto-height service checks the\n // row height directly after the cell is created, it doesn't wait around for the tasks to complete \n const suppressAnimationFrame = this.beans.gridOptionsService.get('suppressAnimationFrame');\n const useTaskService = !suppressAnimationFrame;\n const displayComponentVersionCopy = this.rendererVersion;\n const { componentClass } = compDetails;\n const createCellRendererFunc = () => {\n const staleTask = this.rendererVersion !== displayComponentVersionCopy || !this.isAlive();\n if (staleTask) {\n return;\n }\n // this can return null in the event that the user has switched from a renderer component to nothing, for example\n // when using a cellRendererSelect to return a component or null depending on row data etc\n const componentPromise = compDetails.newAgStackInstance();\n const callback = this.afterCellRendererCreated.bind(this, displayComponentVersionCopy, componentClass);\n if (componentPromise) {\n componentPromise.then(callback);\n }\n };\n // we only use task service when rendering for first time, which means it is not used when doing edits.\n // if we changed this (always use task service) would make sense, however it would break tests, possibly\n // test of users.\n if (useTaskService && this.firstRender) {\n this.beans.animationFrameService.createTask(createCellRendererFunc, this.rowNode.rowIndex, 'createTasksP2');\n }\n else {\n createCellRendererFunc();\n }\n }\n getCtrl() {\n return this.cellCtrl;\n }\n getRowCtrl() {\n return this.rowCtrl;\n }\n getCellRenderer() {\n return this.cellRenderer;\n }\n getCellEditor() {\n return this.cellEditor;\n }\n afterCellRendererCreated(cellRendererVersion, cellRendererClass, cellRenderer) {\n const staleTask = !this.isAlive() || cellRendererVersion !== this.rendererVersion;\n if (staleTask) {\n this.beans.context.destroyBean(cellRenderer);\n return;\n }\n this.cellRenderer = cellRenderer;\n this.cellRendererClass = cellRendererClass;\n this.cellRendererGui = this.cellRenderer.getGui();\n if (this.cellRendererGui != null) {\n const eParent = this.getParentOfValue();\n clearElement(eParent);\n eParent.appendChild(this.cellRendererGui);\n }\n }\n afterCellEditorCreated(requestVersion, cellEditor, params, popup, position) {\n // if editingCell=false, means user cancelled the editor before component was ready.\n // if versionMismatch, then user cancelled the edit, then started the edit again, and this\n // is the first editor which is now stale.\n const staleComp = requestVersion !== this.editorVersion;\n if (staleComp) {\n this.beans.context.destroyBean(cellEditor);\n return;\n }\n const editingCancelledByUserComp = cellEditor.isCancelBeforeStart && cellEditor.isCancelBeforeStart();\n if (editingCancelledByUserComp) {\n this.beans.context.destroyBean(cellEditor);\n this.cellCtrl.stopEditing(true);\n return;\n }\n if (!cellEditor.getGui) {\n console.warn(`AG Grid: cellEditor for column ${this.column.getId()} is missing getGui() method`);\n this.beans.context.destroyBean(cellEditor);\n return;\n }\n this.cellEditor = cellEditor;\n this.cellEditorGui = cellEditor.getGui();\n const cellEditorInPopup = popup || (cellEditor.isPopup !== undefined && cellEditor.isPopup());\n if (cellEditorInPopup) {\n this.addPopupCellEditor(params, position);\n }\n else {\n this.addInCellEditor();\n }\n this.refreshEditStyles(true, cellEditorInPopup);\n if (cellEditor.afterGuiAttached) {\n cellEditor.afterGuiAttached();\n }\n }\n refreshEditStyles(editing, isPopup) {\n var _a;\n this.addOrRemoveCssClass('ag-cell-inline-editing', editing && !isPopup);\n this.addOrRemoveCssClass('ag-cell-popup-editing', editing && !!isPopup);\n this.addOrRemoveCssClass('ag-cell-not-inline-editing', !editing || !!isPopup);\n (_a = this.rowCtrl) === null || _a === void 0 ? void 0 : _a.setInlineEditingCss(editing);\n }\n addInCellEditor() {\n const eGui = this.getGui();\n // if focus is inside the cell, we move focus to the cell itself\n // before removing it's contents, otherwise errors could be thrown.\n const eDocument = this.beans.gridOptionsService.getDocument();\n if (eGui.contains(eDocument.activeElement)) {\n eGui.focus();\n }\n this.destroyRenderer();\n this.refreshWrapper(true);\n this.clearParentOfValue();\n if (this.cellEditorGui) {\n const eParent = this.getParentOfValue();\n eParent.appendChild(this.cellEditorGui);\n }\n }\n addPopupCellEditor(params, position) {\n if (this.beans.gridOptionsService.get('editType') === 'fullRow') {\n console.warn('AG Grid: popup cellEditor does not work with fullRowEdit - you cannot use them both ' +\n '- either turn off fullRowEdit, or stop using popup editors.');\n }\n const cellEditor = this.cellEditor;\n // if a popup, then we wrap in a popup editor and return the popup\n this.cellEditorPopupWrapper = this.beans.context.createBean(new PopupEditorWrapper(params));\n const ePopupGui = this.cellEditorPopupWrapper.getGui();\n if (this.cellEditorGui) {\n ePopupGui.appendChild(this.cellEditorGui);\n }\n const popupService = this.beans.popupService;\n const useModelPopup = this.beans.gridOptionsService.get('stopEditingWhenCellsLoseFocus');\n // see if position provided by colDef, if not then check old way of method on cellComp\n const positionToUse = position != null\n ? position\n : cellEditor.getPopupPosition\n ? cellEditor.getPopupPosition()\n : 'over';\n const isRtl = this.beans.gridOptionsService.get('enableRtl');\n const positionParams = {\n ePopup: ePopupGui,\n column: this.column,\n rowNode: this.rowNode,\n type: 'popupCellEditor',\n eventSource: this.getGui(),\n position: positionToUse,\n alignSide: isRtl ? 'right' : 'left',\n keepWithinBounds: true\n };\n const positionCallback = popupService.positionPopupByComponent.bind(popupService, positionParams);\n const translate = this.beans.localeService.getLocaleTextFunc();\n const addPopupRes = popupService.addPopup({\n modal: useModelPopup,\n eChild: ePopupGui,\n closeOnEsc: true,\n closedCallback: () => { this.cellCtrl.onPopupEditorClosed(); },\n anchorToElement: this.getGui(),\n positionCallback,\n ariaLabel: translate('ariaLabelCellEditor', 'Cell Editor')\n });\n if (addPopupRes) {\n this.hideEditorPopup = addPopupRes.hideFunc;\n }\n }\n detach() {\n this.eRow.removeChild(this.getGui());\n }\n // if the row is also getting destroyed, then we don't need to remove from dom,\n // as the row will also get removed, so no need to take out the cells from the row\n // if the row is going (removing is an expensive operation, so only need to remove\n // the top part)\n //\n // note - this is NOT called by context, as we don't wire / unwire the CellComp for performance reasons.\n destroy() {\n this.cellCtrl.stopEditing();\n this.destroyEditorAndRenderer();\n this.removeControls();\n super.destroy();\n }\n clearParentOfValue() {\n const eGui = this.getGui();\n // if focus is inside the cell, we move focus to the cell itself\n // before removing it's contents, otherwise errors could be thrown.\n const eDocument = this.beans.gridOptionsService.getDocument();\n if (eGui.contains(eDocument.activeElement) && browserSupportsPreventScroll()) {\n eGui.focus({ preventScroll: true });\n }\n clearElement(this.getParentOfValue());\n }\n}\n","import { Component } from \"../../widgets/component.mjs\";\nimport { addStylesToElement, setDomChildOrder } from \"../../utils/dom.mjs\";\nimport { CellComp } from \"../cell/cellComp.mjs\";\nimport { getAllValuesInObject } from \"../../utils/object.mjs\";\nimport { setAriaRole } from \"../../utils/aria.mjs\";\nexport class RowComp extends Component {\n constructor(ctrl, beans, containerType) {\n super();\n this.cellComps = {};\n this.beans = beans;\n this.rowCtrl = ctrl;\n const rowDiv = document.createElement('div');\n rowDiv.setAttribute('comp-id', `${this.getCompId()}`);\n rowDiv.setAttribute('style', this.getInitialStyle(containerType));\n this.setTemplateFromElement(rowDiv);\n const eGui = this.getGui();\n const style = eGui.style;\n this.domOrder = this.rowCtrl.getDomOrder();\n setAriaRole(eGui, 'row');\n const tabIndex = this.rowCtrl.getTabIndex();\n if (tabIndex != null) {\n eGui.setAttribute('tabindex', tabIndex.toString());\n }\n const compProxy = {\n setDomOrder: domOrder => this.domOrder = domOrder,\n setCellCtrls: cellCtrls => this.setCellCtrls(cellCtrls),\n showFullWidth: compDetails => this.showFullWidth(compDetails),\n getFullWidthCellRenderer: () => this.getFullWidthCellRenderer(),\n addOrRemoveCssClass: (name, on) => this.addOrRemoveCssClass(name, on),\n setUserStyles: (styles) => addStylesToElement(eGui, styles),\n setTop: top => style.top = top,\n setTransform: transform => style.transform = transform,\n setRowIndex: rowIndex => eGui.setAttribute('row-index', rowIndex),\n setRowId: (rowId) => eGui.setAttribute('row-id', rowId),\n setRowBusinessKey: businessKey => eGui.setAttribute('row-business-key', businessKey),\n refreshFullWidth: getUpdatedParams => this.refreshFullWidth(getUpdatedParams)\n };\n ctrl.setComp(compProxy, this.getGui(), containerType);\n this.addDestroyFunc(() => {\n ctrl.unsetComp(containerType);\n });\n }\n getInitialStyle(containerType) {\n const transform = this.rowCtrl.getInitialTransform(containerType);\n return transform ? `transform: ${transform}` : `top: ${this.rowCtrl.getInitialRowTop(containerType)}`;\n }\n showFullWidth(compDetails) {\n const callback = (cellRenderer) => {\n if (this.isAlive()) {\n const eGui = cellRenderer.getGui();\n this.getGui().appendChild(eGui);\n this.rowCtrl.setupDetailRowAutoHeight(eGui);\n this.setFullWidthRowComp(cellRenderer);\n }\n else {\n this.beans.context.destroyBean(cellRenderer);\n }\n };\n // if not in cache, create new one\n const res = compDetails.newAgStackInstance();\n if (!res) {\n return;\n }\n res.then(callback);\n }\n setCellCtrls(cellCtrls) {\n const cellsToRemove = Object.assign({}, this.cellComps);\n cellCtrls.forEach(cellCtrl => {\n const key = cellCtrl.getInstanceId();\n const existingCellComp = this.cellComps[key];\n if (existingCellComp == null) {\n this.newCellComp(cellCtrl);\n }\n else {\n cellsToRemove[key] = null;\n }\n });\n const cellCompsToRemove = getAllValuesInObject(cellsToRemove)\n .filter(cellComp => cellComp != null);\n this.destroyCells(cellCompsToRemove);\n this.ensureDomOrder(cellCtrls);\n }\n ensureDomOrder(cellCtrls) {\n if (!this.domOrder) {\n return;\n }\n const elementsInOrder = [];\n cellCtrls.forEach(cellCtrl => {\n const cellComp = this.cellComps[cellCtrl.getInstanceId()];\n if (cellComp) {\n elementsInOrder.push(cellComp.getGui());\n }\n });\n setDomChildOrder(this.getGui(), elementsInOrder);\n }\n newCellComp(cellCtrl) {\n const cellComp = new CellComp(this.beans, cellCtrl, this.rowCtrl.isPrintLayout(), this.getGui(), this.rowCtrl.isEditing());\n this.cellComps[cellCtrl.getInstanceId()] = cellComp;\n this.getGui().appendChild(cellComp.getGui());\n }\n destroy() {\n super.destroy();\n this.destroyAllCells();\n }\n destroyAllCells() {\n const cellsToDestroy = getAllValuesInObject(this.cellComps).filter(cp => cp != null);\n this.destroyCells(cellsToDestroy);\n }\n setFullWidthRowComp(fullWidthRowComponent) {\n if (this.fullWidthCellRenderer) {\n console.error('AG Grid - should not be setting fullWidthRowComponent twice');\n }\n this.fullWidthCellRenderer = fullWidthRowComponent;\n this.addDestroyFunc(() => {\n this.fullWidthCellRenderer = this.beans.context.destroyBean(this.fullWidthCellRenderer);\n });\n }\n getFullWidthCellRenderer() {\n return this.fullWidthCellRenderer;\n }\n destroyCells(cellComps) {\n cellComps.forEach(cellComp => {\n // could be old reference, ie removed cell\n if (!cellComp) {\n return;\n }\n // check cellComp belongs in this container\n const instanceId = cellComp.getCtrl().getInstanceId();\n if (this.cellComps[instanceId] !== cellComp) {\n return;\n }\n cellComp.detach();\n cellComp.destroy();\n this.cellComps[instanceId] = null;\n });\n }\n refreshFullWidth(getUpdatedParams) {\n const { fullWidthCellRenderer } = this;\n if (!fullWidthCellRenderer || !fullWidthCellRenderer.refresh) {\n return false;\n }\n const params = getUpdatedParams();\n return fullWidthCellRenderer.refresh(params);\n }\n}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component } from \"../../widgets/component.mjs\";\nimport { RefSelector } from \"../../widgets/componentAnnotations.mjs\";\nimport { Autowired, PostConstruct, PreDestroy } from \"../../context/context.mjs\";\nimport { getRowContainerTypeForName, RowContainerCtrl, RowContainerName } from \"./rowContainerCtrl.mjs\";\nimport { ensureDomOrder, insertWithDomOrder } from \"../../utils/dom.mjs\";\nimport { RowComp } from \"../../rendering/row/rowComp.mjs\";\nimport { getAllValuesInObject } from \"../../utils/object.mjs\";\nimport { setAriaRole } from \"../../utils/aria.mjs\";\nfunction templateFactory() {\n const name = Component.elementGettingCreated.getAttribute('name');\n const cssClasses = RowContainerCtrl.getRowContainerCssClasses(name);\n let res;\n const centerTemplate = name === RowContainerName.CENTER ||\n name === RowContainerName.TOP_CENTER ||\n name === RowContainerName.STICKY_TOP_CENTER ||\n name === RowContainerName.BOTTOM_CENTER;\n if (centerTemplate) {\n res = /* html */\n `
\n
\n
`;\n }\n else {\n res = /* html */\n `
`;\n }\n return res;\n}\nexport class RowContainerComp extends Component {\n constructor() {\n super(templateFactory());\n this.rowComps = {};\n this.name = Component.elementGettingCreated.getAttribute('name');\n this.type = getRowContainerTypeForName(this.name);\n }\n postConstruct() {\n const compProxy = {\n setViewportHeight: height => this.eViewport.style.height = height,\n setRowCtrls: ({ rowCtrls }) => this.setRowCtrls(rowCtrls),\n setDomOrder: domOrder => {\n this.domOrder = domOrder;\n },\n setContainerWidth: width => this.eContainer.style.width = width\n };\n const ctrl = this.createManagedBean(new RowContainerCtrl(this.name));\n ctrl.setComp(compProxy, this.eContainer, this.eViewport);\n }\n preDestroy() {\n // destroys all row comps\n this.setRowCtrls([]);\n }\n setRowCtrls(rowCtrls) {\n const oldRows = Object.assign({}, this.rowComps);\n this.rowComps = {};\n this.lastPlacedElement = null;\n const processRow = (rowCon) => {\n const instanceId = rowCon.getInstanceId();\n const existingRowComp = oldRows[instanceId];\n if (existingRowComp) {\n this.rowComps[instanceId] = existingRowComp;\n delete oldRows[instanceId];\n this.ensureDomOrder(existingRowComp.getGui());\n }\n else {\n // don't create new row comps for rows which are not displayed. still want the existing components\n // as they may be animating out.\n if (!rowCon.getRowNode().displayed) {\n return;\n }\n const rowComp = new RowComp(rowCon, this.beans, this.type);\n this.rowComps[instanceId] = rowComp;\n this.appendRow(rowComp.getGui());\n }\n };\n rowCtrls.forEach(processRow);\n getAllValuesInObject(oldRows).forEach(oldRowComp => {\n this.eContainer.removeChild(oldRowComp.getGui());\n oldRowComp.destroy();\n });\n setAriaRole(this.eContainer, \"rowgroup\");\n }\n appendRow(element) {\n if (this.domOrder) {\n insertWithDomOrder(this.eContainer, element, this.lastPlacedElement);\n }\n else {\n this.eContainer.appendChild(element);\n }\n this.lastPlacedElement = element;\n }\n ensureDomOrder(eRow) {\n if (this.domOrder) {\n ensureDomOrder(this.eContainer, eRow, this.lastPlacedElement);\n this.lastPlacedElement = eRow;\n }\n }\n}\n__decorate([\n Autowired('beans')\n], RowContainerComp.prototype, \"beans\", void 0);\n__decorate([\n RefSelector('eViewport')\n], RowContainerComp.prototype, \"eViewport\", void 0);\n__decorate([\n RefSelector('eContainer')\n], RowContainerComp.prototype, \"eContainer\", void 0);\n__decorate([\n PostConstruct\n], RowContainerComp.prototype, \"postConstruct\", null);\n__decorate([\n PreDestroy\n], RowContainerComp.prototype, \"preDestroy\", null);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { DragAndDropService } from \"../../dragAndDrop/dragAndDropService.mjs\";\nimport { Autowired } from \"../../context/context.mjs\";\nexport class BodyDropPivotTarget {\n constructor(pinned) {\n this.columnsToAggregate = [];\n this.columnsToGroup = [];\n this.columnsToPivot = [];\n this.pinned = pinned;\n }\n /** Callback for when drag enters */\n onDragEnter(draggingEvent) {\n this.clearColumnsList();\n // in pivot mode, we don't accept any drops if functions are read only\n if (this.gridOptionsService.get('functionsReadOnly')) {\n return;\n }\n const dragColumns = draggingEvent.dragItem.columns;\n if (!dragColumns) {\n return;\n }\n dragColumns.forEach(column => {\n // we don't allow adding secondary columns\n if (!column.isPrimary()) {\n return;\n }\n if (column.isAnyFunctionActive()) {\n return;\n }\n if (column.isAllowValue()) {\n this.columnsToAggregate.push(column);\n }\n else if (column.isAllowRowGroup()) {\n this.columnsToGroup.push(column);\n }\n else if (column.isAllowPivot()) {\n this.columnsToPivot.push(column);\n }\n });\n }\n getIconName() {\n const totalColumns = this.columnsToAggregate.length + this.columnsToGroup.length + this.columnsToPivot.length;\n if (totalColumns > 0) {\n return this.pinned ? DragAndDropService.ICON_PINNED : DragAndDropService.ICON_MOVE;\n }\n return null;\n }\n /** Callback for when drag leaves */\n onDragLeave(draggingEvent) {\n // if we are taking columns out of the center, then we remove them from the report\n this.clearColumnsList();\n }\n clearColumnsList() {\n this.columnsToAggregate.length = 0;\n this.columnsToGroup.length = 0;\n this.columnsToPivot.length = 0;\n }\n /** Callback for when dragging */\n onDragging(draggingEvent) {\n }\n /** Callback for when drag stops */\n onDragStop(draggingEvent) {\n if (this.columnsToAggregate.length > 0) {\n this.columnModel.addValueColumns(this.columnsToAggregate, \"toolPanelDragAndDrop\");\n }\n if (this.columnsToGroup.length > 0) {\n this.columnModel.addRowGroupColumns(this.columnsToGroup, \"toolPanelDragAndDrop\");\n }\n if (this.columnsToPivot.length > 0) {\n this.columnModel.addPivotColumns(this.columnsToPivot, \"toolPanelDragAndDrop\");\n }\n }\n}\n__decorate([\n Autowired('columnModel')\n], BodyDropPivotTarget.prototype, \"columnModel\", void 0);\n__decorate([\n Autowired('gridOptionsService')\n], BodyDropPivotTarget.prototype, \"gridOptionsService\", void 0);\n","import { HorizontalDirection } from \"../constants/direction.mjs\";\nimport { areEqual, includes, last, sortNumerically } from \"../utils/array.mjs\";\nexport class ColumnMoveHelper {\n static attemptMoveColumns(params) {\n const { isFromHeader, hDirection, xPosition, fromEnter, fakeEvent, pinned, gridOptionsService, columnModel } = params;\n const draggingLeft = hDirection === HorizontalDirection.Left;\n const draggingRight = hDirection === HorizontalDirection.Right;\n let { allMovingColumns } = params;\n if (isFromHeader) {\n // If the columns we're dragging are the only visible columns of their group, move the hidden ones too\n let newCols = [];\n allMovingColumns.forEach((col) => {\n var _a;\n let movingGroup = null;\n let parent = col.getParent();\n while (parent != null && parent.getDisplayedLeafColumns().length === 1) {\n movingGroup = parent;\n parent = parent.getParent();\n }\n if (movingGroup != null) {\n const isMarryChildren = !!((_a = movingGroup.getColGroupDef()) === null || _a === void 0 ? void 0 : _a.marryChildren);\n const columnsToMove = isMarryChildren\n // when marry children is true, we also have to move hidden\n // columns within the group, so grab them from the `providedColumnGroup`\n ? movingGroup.getProvidedColumnGroup().getLeafColumns()\n : movingGroup.getLeafColumns();\n columnsToMove.forEach((newCol) => {\n if (!newCols.includes(newCol)) {\n newCols.push(newCol);\n }\n });\n }\n else if (!newCols.includes(col)) {\n newCols.push(col);\n }\n });\n allMovingColumns = newCols;\n }\n // it is important to sort the moving columns as they are in grid columns, as the list of moving columns\n // could themselves be part of 'married children' groups, which means we need to maintain the order within\n // the moving list.\n const allMovingColumnsOrdered = allMovingColumns.slice();\n columnModel.sortColumnsLikeGridColumns(allMovingColumnsOrdered);\n const validMoves = this.calculateValidMoves({\n movingCols: allMovingColumnsOrdered,\n draggingRight,\n xPosition,\n pinned,\n gridOptionsService,\n columnModel\n });\n // if cols are not adjacent, then this returns null. when moving, we constrain the direction of the move\n // (ie left or right) to the mouse direction. however\n const oldIndex = this.calculateOldIndex(allMovingColumnsOrdered, columnModel);\n if (validMoves.length === 0) {\n return;\n }\n const firstValidMove = validMoves[0];\n // the two check below stop an error when the user grabs a group my a middle column, then\n // it is possible the mouse pointer is to the right of a column while been dragged left.\n // so we need to make sure that the mouse pointer is actually left of the left most column\n // if moving left, and right of the right most column if moving right\n // we check 'fromEnter' below so we move the column to the new spot if the mouse is coming from\n // outside the grid, eg if the column is moving from side panel, mouse is moving left, then we should\n // place the column to the RHS even if the mouse is moving left and the column is already on\n // the LHS. otherwise we stick to the rule described above.\n let constrainDirection = oldIndex !== null && !fromEnter;\n // don't consider 'fromEnter' when dragging header cells, otherwise group can jump to opposite direction of drag\n if (isFromHeader) {\n constrainDirection = oldIndex !== null;\n }\n // if the event was faked by a change in column pin state, then the original location of the column\n // is not reliable for dictating where the column may now be placed.\n if (constrainDirection && !fakeEvent) {\n // only allow left drag if this column is moving left\n if (draggingLeft && firstValidMove >= oldIndex) {\n return;\n }\n // only allow right drag if this column is moving right\n if (draggingRight && firstValidMove <= oldIndex) {\n return;\n }\n }\n // From when we find a move that passes all the rules\n // Remember what that move would look like in terms of displayed cols\n // keep going with further moves until we find a different result in displayed output\n // In this way potentialMoves contains all potential moves over 'hidden' columns\n const displayedCols = columnModel.getAllDisplayedColumns();\n let potentialMoves = [];\n let targetOrder = null;\n for (let i = 0; i < validMoves.length; i++) {\n const move = validMoves[i];\n const order = columnModel.getProposedColumnOrder(allMovingColumnsOrdered, move);\n if (!columnModel.doesOrderPassRules(order)) {\n continue;\n }\n const displayedOrder = order.filter((col) => displayedCols.includes(col));\n if (targetOrder === null) {\n targetOrder = displayedOrder;\n }\n else if (!areEqual(displayedOrder, targetOrder)) {\n break; // Stop looking for potential moves if the displayed result changes from the target\n }\n const fragCount = this.groupFragCount(order);\n potentialMoves.push({ move, fragCount });\n }\n if (potentialMoves.length === 0) {\n return;\n }\n // The best move is the move with least group fragmentation\n potentialMoves.sort((a, b) => a.fragCount - b.fragCount);\n return this.moveColumns(allMovingColumns, potentialMoves[0].move, 'uiColumnMoved', false, columnModel);\n }\n static moveColumns(columns, toIndex, source, finished, columnModel) {\n columnModel.moveColumns(columns, toIndex, source, finished);\n return finished ? null : { columns, toIndex };\n }\n // returns the index of the first column in the list ONLY if the cols are all beside\n // each other. if the cols are not beside each other, then returns null\n static calculateOldIndex(movingCols, columnModel) {\n const gridCols = columnModel.getAllGridColumns();\n const indexes = sortNumerically(movingCols.map(col => gridCols.indexOf(col)));\n const firstIndex = indexes[0];\n const lastIndex = last(indexes);\n const spread = lastIndex - firstIndex;\n const gapsExist = spread !== indexes.length - 1;\n return gapsExist ? null : firstIndex;\n }\n // A measure of how fragmented in terms of groups an order of columns is\n static groupFragCount(columns) {\n function parents(col) {\n let result = [];\n let parent = col.getOriginalParent();\n while (parent != null) {\n result.push(parent);\n parent = parent.getOriginalParent();\n }\n return result;\n }\n let count = 0;\n for (let i = 0; i < columns.length - 1; i++) {\n let a = parents(columns[i]);\n let b = parents(columns[i + 1]);\n // iterate over the longest one\n [a, b] = a.length > b.length ? [a, b] : [b, a];\n a.forEach((parent) => {\n if (b.indexOf(parent) === -1) {\n count++; // More fragmented if other column doesn't share the parent\n }\n });\n }\n return count;\n }\n static calculateValidMoves(params) {\n const { movingCols, draggingRight, xPosition, pinned, gridOptionsService, columnModel } = params;\n const isMoveBlocked = gridOptionsService.get('suppressMovableColumns') || movingCols.some(col => col.getColDef().suppressMovable);\n if (isMoveBlocked) {\n return [];\n }\n // this is the list of cols on the screen, so it's these we use when comparing the x mouse position\n const allDisplayedCols = columnModel.getDisplayedColumns(pinned);\n // but this list is the list of all cols, when we move a col it's the index within this list that gets used,\n // so the result we return has to be and index location for this list\n const allGridCols = columnModel.getAllGridColumns();\n const movingDisplayedCols = allDisplayedCols.filter(col => includes(movingCols, col));\n const otherDisplayedCols = allDisplayedCols.filter(col => !includes(movingCols, col));\n const otherGridCols = allGridCols.filter(col => !includes(movingCols, col));\n // work out how many DISPLAYED columns fit before the 'x' position. this gives us the displayIndex.\n // for example, if cols are a,b,c,d and we find a,b fit before 'x', then we want to place the moving\n // col between b and c (so that it is under the mouse position).\n let displayIndex = 0;\n let availableWidth = xPosition;\n // if we are dragging right, then the columns will be to the left of the mouse, so we also want to\n // include the width of the moving columns\n if (draggingRight) {\n let widthOfMovingDisplayedCols = 0;\n movingDisplayedCols.forEach(col => widthOfMovingDisplayedCols += col.getActualWidth());\n availableWidth -= widthOfMovingDisplayedCols;\n }\n if (availableWidth > 0) {\n // now count how many of the displayed columns will fit to the left\n for (let i = 0; i < otherDisplayedCols.length; i++) {\n const col = otherDisplayedCols[i];\n availableWidth -= col.getActualWidth();\n if (availableWidth < 0) {\n break;\n }\n displayIndex++;\n }\n // trial and error, if going right, we adjust by one, i didn't manage to quantify why, but it works\n if (draggingRight) {\n displayIndex++;\n }\n }\n // the display index is with respect to all the showing columns, however when we move, it's with\n // respect to all grid columns, so we need to translate from display index to grid index\n let firstValidMove;\n if (displayIndex > 0) {\n const leftColumn = otherDisplayedCols[displayIndex - 1];\n firstValidMove = otherGridCols.indexOf(leftColumn) + 1;\n }\n else {\n firstValidMove = otherGridCols.indexOf(otherDisplayedCols[0]);\n if (firstValidMove === -1) {\n firstValidMove = 0;\n }\n }\n const validMoves = [firstValidMove];\n const numberComparator = (a, b) => a - b;\n // add in other valid moves due to hidden columns and married children. for example, a particular\n // move might break a group that has married children (so move isn't valid), however there could\n // be hidden columns (not displayed) that we could jump over to make the move valid. because\n // they are hidden, user doesn't see any different, however it allows moves that would otherwise\n // not work. for example imagine a group with 9 columns and all columns are hidden except the\n // middle one (so 4 hidden to left, 4 hidden to right), then when moving 'firstValidMove' will\n // be relative to the not-shown column, however we need to consider the move jumping over all the\n // hidden children. if we didn't do this, then if the group just described was at the end (RHS) of the\n // grid, there would be no way to put a column after it (as the grid would only consider beside the\n // visible column, which would fail valid move rules).\n if (draggingRight) {\n // if dragging right, then we add all the additional moves to the right. so in other words\n // if the next move is not valid, find the next move to the right that is valid.\n let pointer = firstValidMove + 1;\n const lastIndex = allGridCols.length - 1;\n while (pointer <= lastIndex) {\n validMoves.push(pointer);\n pointer++;\n }\n // adding columns here means the order is now messed up\n validMoves.sort(numberComparator);\n }\n else {\n // if dragging left we do the reverse of dragging right, we add in all the valid moves to the\n // left. however we also have to consider moves to the right for all hidden columns first.\n // (this logic is hard to reason with, it was worked out with trial and error,\n // more observation rather than science).\n // add moves to the right\n let pointer = firstValidMove;\n const lastIndex = allGridCols.length - 1;\n let displacedCol = allGridCols[pointer];\n // takes into account visible=false and group=closed, ie it is not displayed\n while (pointer <= lastIndex && allDisplayedCols.indexOf(displacedCol) < 0) {\n pointer++;\n validMoves.push(pointer);\n displacedCol = allGridCols[pointer];\n }\n // add moves to the left\n pointer = firstValidMove - 1;\n const firstDisplayIndex = 0;\n while (pointer >= firstDisplayIndex) {\n validMoves.push(pointer);\n pointer--;\n }\n // adding columns here means the order is now messed up\n validMoves.sort(numberComparator).reverse();\n }\n return validMoves;\n }\n static normaliseX(x, pinned, fromKeyboard, gridOptionsService, ctrlsService) {\n const eViewport = ctrlsService.getHeaderRowContainerCtrl(pinned).getViewport();\n if (fromKeyboard) {\n x -= eViewport.getBoundingClientRect().left;\n }\n // flip the coordinate if doing RTL\n if (gridOptionsService.get('enableRtl')) {\n const clientWidth = eViewport.clientWidth;\n x = clientWidth - x;\n }\n // adjust for scroll only if centre container (the pinned containers don't scroll)\n if (pinned == null) {\n x += ctrlsService.getCenterRowContainerCtrl().getCenterViewportScrollLeft();\n }\n return x;\n }\n}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Autowired, PostConstruct } from \"../../context/context.mjs\";\nimport { DragAndDropService, DragSourceType } from \"../../dragAndDrop/dragAndDropService.mjs\";\nimport { missing, exists } from \"../../utils/generic.mjs\";\nimport { ColumnMoveHelper } from \"../columnMoveHelper.mjs\";\nimport { HorizontalDirection } from \"../../constants/direction.mjs\";\nexport class MoveColumnFeature {\n constructor(pinned, eContainer) {\n this.needToMoveLeft = false;\n this.needToMoveRight = false;\n this.lastMovedInfo = null;\n this.pinned = pinned;\n this.eContainer = eContainer;\n this.centerContainer = !exists(pinned);\n }\n init() {\n this.ctrlsService.whenReady(() => {\n this.gridBodyCon = this.ctrlsService.getGridBodyCtrl();\n });\n }\n getIconName() {\n return this.pinned ? DragAndDropService.ICON_PINNED : DragAndDropService.ICON_MOVE;\n }\n onDragEnter(draggingEvent) {\n // we do dummy drag, so make sure column appears in the right location when first placed\n const columns = draggingEvent.dragItem.columns;\n const dragCameFromToolPanel = draggingEvent.dragSource.type === DragSourceType.ToolPanel;\n if (dragCameFromToolPanel) {\n // the if statement doesn't work if drag leaves grid, then enters again\n this.setColumnsVisible(columns, true, \"uiColumnDragged\");\n }\n else {\n // restore previous state of visible columns upon re-entering. this means if the user drags\n // a group out, and then drags the group back in, only columns that were originally visible\n // will be visible again. otherwise a group with three columns (but only two visible) could\n // be dragged out, then when it's dragged in again, all three are visible. this stops that.\n const visibleState = draggingEvent.dragItem.visibleState;\n const visibleColumns = (columns || []).filter(column => visibleState[column.getId()]);\n this.setColumnsVisible(visibleColumns, true, \"uiColumnDragged\");\n }\n this.setColumnsPinned(columns, this.pinned, \"uiColumnDragged\");\n this.onDragging(draggingEvent, true, true);\n }\n onDragLeave() {\n this.ensureIntervalCleared();\n this.lastMovedInfo = null;\n }\n setColumnsVisible(columns, visible, source) {\n if (columns) {\n const allowedCols = columns.filter(c => !c.getColDef().lockVisible);\n this.columnModel.setColumnsVisible(allowedCols, visible, source);\n }\n }\n setColumnsPinned(columns, pinned, source) {\n if (columns) {\n const allowedCols = columns.filter(c => !c.getColDef().lockPinned);\n this.columnModel.setColumnsPinned(allowedCols, pinned, source);\n }\n }\n onDragStop() {\n this.onDragging(this.lastDraggingEvent, false, true, true);\n this.ensureIntervalCleared();\n this.lastMovedInfo = null;\n }\n checkCenterForScrolling(xAdjustedForScroll) {\n if (this.centerContainer) {\n // scroll if the mouse has gone outside the grid (or just outside the scrollable part if pinning)\n // putting in 50 buffer, so even if user gets to edge of grid, a scroll will happen\n const firstVisiblePixel = this.ctrlsService.getCenterRowContainerCtrl().getCenterViewportScrollLeft();\n const lastVisiblePixel = firstVisiblePixel + this.ctrlsService.getCenterRowContainerCtrl().getCenterWidth();\n if (this.gridOptionsService.get('enableRtl')) {\n this.needToMoveRight = xAdjustedForScroll < (firstVisiblePixel + 50);\n this.needToMoveLeft = xAdjustedForScroll > (lastVisiblePixel - 50);\n }\n else {\n this.needToMoveLeft = xAdjustedForScroll < (firstVisiblePixel + 50);\n this.needToMoveRight = xAdjustedForScroll > (lastVisiblePixel - 50);\n }\n if (this.needToMoveLeft || this.needToMoveRight) {\n this.ensureIntervalStarted();\n }\n else {\n this.ensureIntervalCleared();\n }\n }\n }\n onDragging(draggingEvent = this.lastDraggingEvent, fromEnter = false, fakeEvent = false, finished = false) {\n var _a;\n if (finished) {\n if (this.lastMovedInfo) {\n const { columns, toIndex } = this.lastMovedInfo;\n ColumnMoveHelper.moveColumns(columns, toIndex, 'uiColumnMoved', true, this.columnModel);\n }\n return;\n }\n this.lastDraggingEvent = draggingEvent;\n // if moving up or down (ie not left or right) then do nothing\n if (missing(draggingEvent.hDirection)) {\n return;\n }\n const mouseX = ColumnMoveHelper.normaliseX(draggingEvent.x, this.pinned, false, this.gridOptionsService, this.ctrlsService);\n // if the user is dragging into the panel, ie coming from the side panel into the main grid,\n // we don't want to scroll the grid this time, it would appear like the table is jumping\n // each time a column is dragged in.\n if (!fromEnter) {\n this.checkCenterForScrolling(mouseX);\n }\n const hDirection = this.normaliseDirection(draggingEvent.hDirection);\n const dragSourceType = draggingEvent.dragSource.type;\n const allMovingColumns = ((_a = draggingEvent.dragSource.getDragItem().columns) === null || _a === void 0 ? void 0 : _a.filter(col => {\n if (col.getColDef().lockPinned) {\n // if locked return true only if both col and container are same pin type.\n // double equals (==) here on purpose so that null==undefined is true (for not pinned options)\n return col.getPinned() == this.pinned;\n }\n // if not pin locked, then always allowed to be in this container\n return true;\n })) || [];\n const lastMovedInfo = ColumnMoveHelper.attemptMoveColumns({\n allMovingColumns,\n isFromHeader: dragSourceType === DragSourceType.HeaderCell,\n hDirection,\n xPosition: mouseX,\n pinned: this.pinned,\n fromEnter,\n fakeEvent,\n gridOptionsService: this.gridOptionsService,\n columnModel: this.columnModel\n });\n if (lastMovedInfo) {\n this.lastMovedInfo = lastMovedInfo;\n }\n }\n normaliseDirection(hDirection) {\n if (this.gridOptionsService.get('enableRtl')) {\n switch (hDirection) {\n case HorizontalDirection.Left: return HorizontalDirection.Right;\n case HorizontalDirection.Right: return HorizontalDirection.Left;\n default: console.error(`AG Grid: Unknown direction ${hDirection}`);\n }\n }\n else {\n return hDirection;\n }\n }\n ensureIntervalStarted() {\n if (!this.movingIntervalId) {\n this.intervalCount = 0;\n this.failedMoveAttempts = 0;\n this.movingIntervalId = window.setInterval(this.moveInterval.bind(this), 100);\n if (this.needToMoveLeft) {\n this.dragAndDropService.setGhostIcon(DragAndDropService.ICON_LEFT, true);\n }\n else {\n this.dragAndDropService.setGhostIcon(DragAndDropService.ICON_RIGHT, true);\n }\n }\n }\n ensureIntervalCleared() {\n if (this.movingIntervalId) {\n window.clearInterval(this.movingIntervalId);\n this.movingIntervalId = null;\n this.dragAndDropService.setGhostIcon(DragAndDropService.ICON_MOVE);\n }\n }\n moveInterval() {\n // the amounts we move get bigger at each interval, so the speed accelerates, starting a bit slow\n // and getting faster. this is to give smoother user experience. we max at 100px to limit the speed.\n let pixelsToMove;\n this.intervalCount++;\n pixelsToMove = 10 + (this.intervalCount * 5);\n if (pixelsToMove > 100) {\n pixelsToMove = 100;\n }\n let pixelsMoved = null;\n const scrollFeature = this.gridBodyCon.getScrollFeature();\n if (this.needToMoveLeft) {\n pixelsMoved = scrollFeature.scrollHorizontally(-pixelsToMove);\n }\n else if (this.needToMoveRight) {\n pixelsMoved = scrollFeature.scrollHorizontally(pixelsToMove);\n }\n if (pixelsMoved !== 0) {\n this.onDragging(this.lastDraggingEvent);\n this.failedMoveAttempts = 0;\n }\n else {\n // we count the failed move attempts. if we fail to move 7 times, then we pin the column.\n // this is how we achieve pining by dragging the column to the edge of the grid.\n this.failedMoveAttempts++;\n const columns = this.lastDraggingEvent.dragItem.columns;\n const columnsThatCanPin = columns.filter(c => !c.getColDef().lockPinned);\n if (columnsThatCanPin.length > 0) {\n this.dragAndDropService.setGhostIcon(DragAndDropService.ICON_PINNED);\n if (this.failedMoveAttempts > 7) {\n const pinType = this.needToMoveLeft ? 'left' : 'right';\n this.setColumnsPinned(columnsThatCanPin, pinType, \"uiColumnDragged\");\n this.dragAndDropService.nudge();\n }\n }\n }\n }\n}\n__decorate([\n Autowired('columnModel')\n], MoveColumnFeature.prototype, \"columnModel\", void 0);\n__decorate([\n Autowired('dragAndDropService')\n], MoveColumnFeature.prototype, \"dragAndDropService\", void 0);\n__decorate([\n Autowired('gridOptionsService')\n], MoveColumnFeature.prototype, \"gridOptionsService\", void 0);\n__decorate([\n Autowired('ctrlsService')\n], MoveColumnFeature.prototype, \"ctrlsService\", void 0);\n__decorate([\n PostConstruct\n], MoveColumnFeature.prototype, \"init\", null);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { DragSourceType } from \"../../dragAndDrop/dragAndDropService.mjs\";\nimport { Autowired, PostConstruct } from \"../../context/context.mjs\";\nimport { MoveColumnFeature } from \"./moveColumnFeature.mjs\";\nimport { BodyDropPivotTarget } from \"./bodyDropPivotTarget.mjs\";\nimport { BeanStub } from \"../../context/beanStub.mjs\";\nexport class BodyDropTarget extends BeanStub {\n constructor(pinned, eContainer) {\n super();\n this.pinned = pinned;\n this.eContainer = eContainer;\n }\n postConstruct() {\n this.ctrlsService.whenReady(p => {\n switch (this.pinned) {\n case 'left':\n this.eSecondaryContainers = [\n [p.gridBodyCtrl.getBodyViewportElement(), p.leftRowContainerCtrl.getContainerElement()],\n [p.bottomLeftRowContainerCtrl.getContainerElement()],\n [p.topLeftRowContainerCtrl.getContainerElement()]\n ];\n break;\n case 'right':\n this.eSecondaryContainers = [\n [p.gridBodyCtrl.getBodyViewportElement(), p.rightRowContainerCtrl.getContainerElement()],\n [p.bottomRightRowContainerCtrl.getContainerElement()],\n [p.topRightRowContainerCtrl.getContainerElement()]\n ];\n break;\n default:\n this.eSecondaryContainers = [\n [p.gridBodyCtrl.getBodyViewportElement(), p.centerRowContainerCtrl.getViewportElement()],\n [p.bottomCenterRowContainerCtrl.getViewportElement()],\n [p.topCenterRowContainerCtrl.getViewportElement()]\n ];\n break;\n }\n });\n }\n isInterestedIn(type) {\n return type === DragSourceType.HeaderCell ||\n (type === DragSourceType.ToolPanel && this.gridOptionsService.get('allowDragFromColumnsToolPanel'));\n }\n getSecondaryContainers() {\n return this.eSecondaryContainers;\n }\n getContainer() {\n return this.eContainer;\n }\n init() {\n this.moveColumnFeature = this.createManagedBean(new MoveColumnFeature(this.pinned, this.eContainer));\n this.bodyDropPivotTarget = this.createManagedBean(new BodyDropPivotTarget(this.pinned));\n this.dragAndDropService.addDropTarget(this);\n }\n getIconName() {\n return this.currentDropListener.getIconName();\n }\n // we want to use the bodyPivotTarget if the user is dragging columns in from the toolPanel\n // and we are in pivot mode, as it has to logic to set pivot/value/group on the columns when\n // dropped into the grid's body.\n isDropColumnInPivotMode(draggingEvent) {\n // in pivot mode, then if moving a column (ie didn't come from toolpanel) then it's\n // a standard column move, however if it came from the toolpanel, then we are introducing\n // dimensions or values to the grid\n return this.columnModel.isPivotMode() && draggingEvent.dragSource.type === DragSourceType.ToolPanel;\n }\n onDragEnter(draggingEvent) {\n // we pick the drop listener depending on whether we are in pivot mode are not. if we are\n // in pivot mode, then dropping cols changes the row group, pivot, value stats. otherwise\n // we change visibility state and position.\n this.currentDropListener = this.isDropColumnInPivotMode(draggingEvent) ? this.bodyDropPivotTarget : this.moveColumnFeature;\n this.currentDropListener.onDragEnter(draggingEvent);\n }\n onDragLeave(params) {\n this.currentDropListener.onDragLeave(params);\n }\n onDragging(params) {\n this.currentDropListener.onDragging(params);\n }\n onDragStop(params) {\n this.currentDropListener.onDragStop(params);\n }\n}\n__decorate([\n Autowired('dragAndDropService')\n], BodyDropTarget.prototype, \"dragAndDropService\", void 0);\n__decorate([\n Autowired('columnModel')\n], BodyDropTarget.prototype, \"columnModel\", void 0);\n__decorate([\n Autowired('ctrlsService')\n], BodyDropTarget.prototype, \"ctrlsService\", void 0);\n__decorate([\n PostConstruct\n], BodyDropTarget.prototype, \"postConstruct\", null);\n__decorate([\n PostConstruct\n], BodyDropTarget.prototype, \"init\", null);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { PostConstruct, PreDestroy } from \"../../../context/context.mjs\";\nimport { removeAriaSort, setAriaSort } from \"../../../utils/aria.mjs\";\nimport { RefSelector } from \"../../../widgets/componentAnnotations.mjs\";\nimport { AbstractHeaderCellComp } from \"../abstractCell/abstractHeaderCellComp.mjs\";\nexport class HeaderCellComp extends AbstractHeaderCellComp {\n constructor(ctrl) {\n super(HeaderCellComp.TEMPLATE, ctrl);\n this.headerCompVersion = 0;\n this.column = ctrl.getColumnGroupChild();\n this.pinned = ctrl.getPinned();\n }\n postConstruct() {\n const eGui = this.getGui();\n const setAttribute = (name, value) => {\n if (value != null && value != '') {\n eGui.setAttribute(name, value);\n }\n else {\n eGui.removeAttribute(name);\n }\n };\n setAttribute('col-id', this.column.getColId());\n const compProxy = {\n setWidth: width => eGui.style.width = width,\n addOrRemoveCssClass: (cssClassName, on) => this.addOrRemoveCssClass(cssClassName, on),\n setAriaSort: sort => sort ? setAriaSort(eGui, sort) : removeAriaSort(eGui),\n setUserCompDetails: compDetails => this.setUserCompDetails(compDetails),\n getUserCompInstance: () => this.headerComp\n };\n this.ctrl.setComp(compProxy, this.getGui(), this.eResize, this.eHeaderCompWrapper);\n const selectAllGui = this.ctrl.getSelectAllGui();\n this.eResize.insertAdjacentElement('afterend', selectAllGui);\n }\n destroyHeaderComp() {\n if (this.headerComp) {\n this.eHeaderCompWrapper.removeChild(this.headerCompGui);\n this.headerComp = this.destroyBean(this.headerComp);\n this.headerCompGui = undefined;\n }\n }\n setUserCompDetails(compDetails) {\n this.headerCompVersion++;\n const versionCopy = this.headerCompVersion;\n compDetails.newAgStackInstance().then(comp => this.afterCompCreated(versionCopy, comp));\n }\n afterCompCreated(version, headerComp) {\n if (version != this.headerCompVersion || !this.isAlive()) {\n this.destroyBean(headerComp);\n return;\n }\n this.destroyHeaderComp();\n this.headerComp = headerComp;\n this.headerCompGui = headerComp.getGui();\n this.eHeaderCompWrapper.appendChild(this.headerCompGui);\n this.ctrl.setDragSource(this.getGui());\n }\n}\nHeaderCellComp.TEMPLATE = `
\n
\n
\n
`;\n__decorate([\n RefSelector('eResize')\n], HeaderCellComp.prototype, \"eResize\", void 0);\n__decorate([\n RefSelector('eHeaderCompWrapper')\n], HeaderCellComp.prototype, \"eHeaderCompWrapper\", void 0);\n__decorate([\n PostConstruct\n], HeaderCellComp.prototype, \"postConstruct\", null);\n__decorate([\n PreDestroy\n], HeaderCellComp.prototype, \"destroyHeaderComp\", null);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { PostConstruct } from \"../../../context/context.mjs\";\nimport { setDisplayed } from \"../../../utils/dom.mjs\";\nimport { RefSelector } from \"../../../widgets/componentAnnotations.mjs\";\nimport { AbstractHeaderCellComp } from \"../abstractCell/abstractHeaderCellComp.mjs\";\nexport class HeaderGroupCellComp extends AbstractHeaderCellComp {\n constructor(ctrl) {\n super(HeaderGroupCellComp.TEMPLATE, ctrl);\n }\n postConstruct() {\n const eGui = this.getGui();\n const setAttribute = (key, value) => value != undefined ? eGui.setAttribute(key, value) : eGui.removeAttribute(key);\n eGui.setAttribute(\"col-id\", this.ctrl.getColId());\n const compProxy = {\n addOrRemoveCssClass: (cssClassName, on) => this.addOrRemoveCssClass(cssClassName, on),\n setResizableDisplayed: (displayed) => setDisplayed(this.eResize, displayed),\n setWidth: width => eGui.style.width = width,\n setAriaExpanded: expanded => setAttribute('aria-expanded', expanded),\n setUserCompDetails: details => this.setUserCompDetails(details),\n getUserCompInstance: () => this.headerGroupComp,\n };\n this.ctrl.setComp(compProxy, eGui, this.eResize);\n }\n setUserCompDetails(details) {\n details.newAgStackInstance().then(comp => this.afterHeaderCompCreated(comp));\n }\n afterHeaderCompCreated(headerGroupComp) {\n const destroyFunc = () => this.destroyBean(headerGroupComp);\n if (!this.isAlive()) {\n destroyFunc();\n return;\n }\n const eGui = this.getGui();\n const eHeaderGroupGui = headerGroupComp.getGui();\n eGui.appendChild(eHeaderGroupGui);\n this.addDestroyFunc(destroyFunc);\n this.headerGroupComp = headerGroupComp;\n this.ctrl.setDragSource(eGui);\n }\n}\nHeaderGroupCellComp.TEMPLATE = `
\n
\n
`;\n__decorate([\n RefSelector('eResize')\n], HeaderGroupCellComp.prototype, \"eResize\", void 0);\n__decorate([\n PostConstruct\n], HeaderGroupCellComp.prototype, \"postConstruct\", null);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { PostConstruct, PreDestroy } from '../../context/context.mjs';\nimport { setAriaRowIndex } from '../../utils/aria.mjs';\nimport { setDomChildOrder } from '../../utils/dom.mjs';\nimport { getAllValuesInObject, iterateObject } from '../../utils/object.mjs';\nimport { Component } from '../../widgets/component.mjs';\nimport { HeaderCellComp } from '../cells/column/headerCellComp.mjs';\nimport { HeaderGroupCellComp } from '../cells/columnGroup/headerGroupCellComp.mjs';\nimport { HeaderFilterCellComp } from '../cells/floatingFilter/headerFilterCellComp.mjs';\nexport var HeaderRowType;\n(function (HeaderRowType) {\n HeaderRowType[\"COLUMN_GROUP\"] = \"group\";\n HeaderRowType[\"COLUMN\"] = \"column\";\n HeaderRowType[\"FLOATING_FILTER\"] = \"filter\";\n})(HeaderRowType || (HeaderRowType = {}));\nexport class HeaderRowComp extends Component {\n constructor(ctrl) {\n super();\n this.headerComps = {};\n this.ctrl = ctrl;\n this.setTemplate(/* html */ `
`);\n }\n //noinspection JSUnusedLocalSymbols\n init() {\n setAriaRowIndex(this.getGui(), this.ctrl.getAriaRowIndex());\n const compProxy = {\n setHeight: height => this.getGui().style.height = height,\n setTop: top => this.getGui().style.top = top,\n setHeaderCtrls: (ctrls, forceOrder) => this.setHeaderCtrls(ctrls, forceOrder),\n setWidth: width => this.getGui().style.width = width,\n };\n this.ctrl.setComp(compProxy);\n }\n destroyHeaderCtrls() {\n this.setHeaderCtrls([], false);\n }\n setHeaderCtrls(ctrls, forceOrder) {\n if (!this.isAlive()) {\n return;\n }\n const oldComps = this.headerComps;\n this.headerComps = {};\n ctrls.forEach(ctrl => {\n const id = ctrl.getInstanceId();\n let comp = oldComps[id];\n delete oldComps[id];\n if (comp == null) {\n comp = this.createHeaderComp(ctrl);\n this.getGui().appendChild(comp.getGui());\n }\n this.headerComps[id] = comp;\n });\n iterateObject(oldComps, (id, comp) => {\n this.getGui().removeChild(comp.getGui());\n this.destroyBean(comp);\n });\n if (forceOrder) {\n const comps = getAllValuesInObject(this.headerComps);\n // ordering the columns by left position orders them in the order they appear on the screen\n comps.sort((a, b) => {\n const leftA = a.getCtrl().getColumnGroupChild().getLeft();\n const leftB = b.getCtrl().getColumnGroupChild().getLeft();\n return leftA - leftB;\n });\n const elementsInOrder = comps.map(c => c.getGui());\n setDomChildOrder(this.getGui(), elementsInOrder);\n }\n }\n createHeaderComp(headerCtrl) {\n let result;\n switch (this.ctrl.getType()) {\n case HeaderRowType.COLUMN_GROUP:\n result = new HeaderGroupCellComp(headerCtrl);\n break;\n case HeaderRowType.FLOATING_FILTER:\n result = new HeaderFilterCellComp(headerCtrl);\n break;\n default:\n result = new HeaderCellComp(headerCtrl);\n break;\n }\n this.createBean(result);\n result.setParentComponent(this);\n return result;\n }\n}\n__decorate([\n PostConstruct\n], HeaderRowComp.prototype, \"init\", null);\n__decorate([\n PreDestroy\n], HeaderRowComp.prototype, \"destroyHeaderCtrls\", null);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { BeanStub } from \"../../../context/beanStub.mjs\";\nimport { Autowired, PostConstruct } from \"../../../context/context.mjs\";\nimport { isUserSuppressingHeaderKeyboardEvent } from \"../../../utils/keyboard.mjs\";\nimport { KeyCode } from \"../.././../constants/keyCode.mjs\";\nimport { Column } from \"../../../entities/column.mjs\";\nimport { HorizontalDirection } from \"../../../constants/direction.mjs\";\nimport { CssClassApplier } from \"../cssClassApplier.mjs\";\nimport { setAriaColIndex } from \"../../../utils/aria.mjs\";\nimport { Events } from \"../../../eventKeys.mjs\";\nimport { getInnerWidth } from \"../../../utils/dom.mjs\";\nlet instanceIdSequence = 0;\nexport class AbstractHeaderCellCtrl extends BeanStub {\n constructor(columnGroupChild, beans, parentRowCtrl) {\n super();\n this.resizeToggleTimeout = 0;\n this.resizeMultiplier = 1;\n this.resizeFeature = null;\n this.lastFocusEvent = null;\n this.dragSource = null;\n this.columnGroupChild = columnGroupChild;\n this.parentRowCtrl = parentRowCtrl;\n this.beans = beans;\n // unique id to this instance, including the column ID to help with debugging in React as it's used in 'key'\n this.instanceId = columnGroupChild.getUniqueId() + '-' + instanceIdSequence++;\n }\n postConstruct() {\n this.addManagedPropertyListeners(['suppressHeaderFocus'], () => this.refreshTabIndex());\n }\n shouldStopEventPropagation(e) {\n const { headerRowIndex, column } = this.focusService.getFocusedHeader();\n return isUserSuppressingHeaderKeyboardEvent(this.gridOptionsService, e, headerRowIndex, column);\n }\n getWrapperHasFocus() {\n const eDocument = this.gridOptionsService.getDocument();\n const activeEl = eDocument.activeElement;\n return activeEl === this.eGui;\n }\n setGui(eGui) {\n this.eGui = eGui;\n this.addDomData();\n this.addManagedListener(this.beans.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayedColumnsChanged.bind(this));\n this.onDisplayedColumnsChanged();\n this.refreshTabIndex();\n }\n onDisplayedColumnsChanged() {\n if (!this.comp || !this.column) {\n return;\n }\n this.refreshFirstAndLastStyles();\n this.refreshAriaColIndex();\n }\n refreshFirstAndLastStyles() {\n const { comp, column, beans } = this;\n CssClassApplier.refreshFirstAndLastStyles(comp, column, beans.columnModel);\n }\n refreshAriaColIndex() {\n const { beans, column } = this;\n const colIdx = beans.columnModel.getAriaColumnIndex(column);\n setAriaColIndex(this.eGui, colIdx); // for react, we don't use JSX, as it slowed down column moving\n }\n addResizeAndMoveKeyboardListeners() {\n if (!this.resizeFeature) {\n return;\n }\n this.addManagedListener(this.eGui, 'keydown', this.onGuiKeyDown.bind(this));\n this.addManagedListener(this.eGui, 'keyup', this.onGuiKeyUp.bind(this));\n }\n refreshTabIndex() {\n const suppressHeaderFocus = this.gridOptionsService.get('suppressHeaderFocus');\n if (suppressHeaderFocus) {\n this.eGui.removeAttribute('tabindex');\n }\n else {\n this.eGui.setAttribute('tabindex', '-1');\n }\n }\n onGuiKeyDown(e) {\n var _a;\n const eDocument = this.gridOptionsService.getDocument();\n const activeEl = eDocument.activeElement;\n const isLeftOrRight = e.key === KeyCode.LEFT || e.key === KeyCode.RIGHT;\n if (this.isResizing) {\n e.preventDefault();\n e.stopImmediatePropagation();\n }\n if (\n // if elements within the header are focused, we don't process the event\n activeEl !== this.eGui ||\n // if shiftKey and altKey are not pressed, it's cell navigation so we don't process the event\n (!e.shiftKey && !e.altKey)) {\n return;\n }\n if (this.isResizing || isLeftOrRight) {\n e.preventDefault();\n e.stopImmediatePropagation();\n }\n if (!isLeftOrRight) {\n return;\n }\n const isLeft = (e.key === KeyCode.LEFT) !== this.gridOptionsService.get('enableRtl');\n const direction = HorizontalDirection[isLeft ? 'Left' : 'Right'];\n if (e.altKey) {\n this.isResizing = true;\n this.resizeMultiplier += 1;\n const diff = this.getViewportAdjustedResizeDiff(e);\n this.resizeHeader(diff, e.shiftKey);\n (_a = this.resizeFeature) === null || _a === void 0 ? void 0 : _a.toggleColumnResizing(true);\n }\n else {\n this.moveHeader(direction);\n }\n }\n getViewportAdjustedResizeDiff(e) {\n let diff = this.getResizeDiff(e);\n const pinned = this.column.getPinned();\n if (pinned) {\n const leftWidth = this.pinnedWidthService.getPinnedLeftWidth();\n const rightWidth = this.pinnedWidthService.getPinnedRightWidth();\n const bodyWidth = getInnerWidth(this.ctrlsService.getGridBodyCtrl().getBodyViewportElement()) - 50;\n if (leftWidth + rightWidth + diff > bodyWidth) {\n if (bodyWidth > leftWidth + rightWidth) {\n // allow body width to ignore resize multiplier and fill space for last tick\n diff = bodyWidth - leftWidth - rightWidth;\n }\n else {\n return 0;\n }\n }\n }\n return diff;\n }\n getResizeDiff(e) {\n let isLeft = (e.key === KeyCode.LEFT) !== this.gridOptionsService.get('enableRtl');\n const pinned = this.column.getPinned();\n const isRtl = this.gridOptionsService.get('enableRtl');\n if (pinned) {\n if (isRtl !== (pinned === 'right')) {\n isLeft = !isLeft;\n }\n }\n return (isLeft ? -1 : 1) * this.resizeMultiplier;\n }\n onGuiKeyUp() {\n if (!this.isResizing) {\n return;\n }\n if (this.resizeToggleTimeout) {\n window.clearTimeout(this.resizeToggleTimeout);\n this.resizeToggleTimeout = 0;\n }\n this.isResizing = false;\n this.resizeMultiplier = 1;\n this.resizeToggleTimeout = setTimeout(() => {\n var _a;\n (_a = this.resizeFeature) === null || _a === void 0 ? void 0 : _a.toggleColumnResizing(false);\n }, 150);\n }\n handleKeyDown(e) {\n const wrapperHasFocus = this.getWrapperHasFocus();\n switch (e.key) {\n case KeyCode.PAGE_DOWN:\n case KeyCode.PAGE_UP:\n case KeyCode.PAGE_HOME:\n case KeyCode.PAGE_END:\n if (wrapperHasFocus) {\n e.preventDefault();\n }\n }\n }\n addDomData() {\n const key = AbstractHeaderCellCtrl.DOM_DATA_KEY_HEADER_CTRL;\n this.gridOptionsService.setDomData(this.eGui, key, this);\n this.addDestroyFunc(() => this.gridOptionsService.setDomData(this.eGui, key, null));\n }\n getGui() {\n return this.eGui;\n }\n focus(event) {\n if (!this.eGui) {\n return false;\n }\n this.lastFocusEvent = event || null;\n this.eGui.focus();\n return true;\n }\n getRowIndex() {\n return this.parentRowCtrl.getRowIndex();\n }\n getParentRowCtrl() {\n return this.parentRowCtrl;\n }\n getPinned() {\n return this.parentRowCtrl.getPinned();\n }\n getInstanceId() {\n return this.instanceId;\n }\n getColumnGroupChild() {\n return this.columnGroupChild;\n }\n removeDragSource() {\n if (this.dragSource) {\n this.dragAndDropService.removeDragSource(this.dragSource);\n this.dragSource = null;\n }\n }\n handleContextMenuMouseEvent(mouseEvent, touchEvent, column) {\n const event = mouseEvent !== null && mouseEvent !== void 0 ? mouseEvent : touchEvent;\n if (this.gridOptionsService.get('preventDefaultOnContextMenu')) {\n event.preventDefault();\n }\n const columnToUse = column instanceof Column ? column : undefined;\n if (this.menuService.isHeaderContextMenuEnabled(columnToUse)) {\n this.menuService.showHeaderContextMenu(columnToUse, mouseEvent, touchEvent);\n }\n this.dispatchColumnMouseEvent(Events.EVENT_COLUMN_HEADER_CONTEXT_MENU, column);\n }\n dispatchColumnMouseEvent(eventType, column) {\n const event = {\n type: eventType,\n column,\n };\n this.eventService.dispatchEvent(event);\n }\n destroy() {\n super.destroy();\n this.removeDragSource();\n this.comp = null;\n this.column = null;\n this.resizeFeature = null;\n this.lastFocusEvent = null;\n this.columnGroupChild = null;\n this.parentRowCtrl = null;\n this.eGui = null;\n }\n}\nAbstractHeaderCellCtrl.DOM_DATA_KEY_HEADER_CTRL = 'headerCtrl';\n__decorate([\n Autowired('pinnedWidthService')\n], AbstractHeaderCellCtrl.prototype, \"pinnedWidthService\", void 0);\n__decorate([\n Autowired('focusService')\n], AbstractHeaderCellCtrl.prototype, \"focusService\", void 0);\n__decorate([\n Autowired('userComponentFactory')\n], AbstractHeaderCellCtrl.prototype, \"userComponentFactory\", void 0);\n__decorate([\n Autowired('ctrlsService')\n], AbstractHeaderCellCtrl.prototype, \"ctrlsService\", void 0);\n__decorate([\n Autowired('dragAndDropService')\n], AbstractHeaderCellCtrl.prototype, \"dragAndDropService\", void 0);\n__decorate([\n Autowired('menuService')\n], AbstractHeaderCellCtrl.prototype, \"menuService\", void 0);\n__decorate([\n PostConstruct\n], AbstractHeaderCellCtrl.prototype, \"postConstruct\", null);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Column } from \"../../entities/column.mjs\";\nimport { BeanStub } from \"../../context/beanStub.mjs\";\nimport { PostConstruct } from \"../../context/context.mjs\";\nimport { setAriaColSpan } from \"../../utils/aria.mjs\";\nimport { last } from \"../../utils/array.mjs\";\nimport { exists } from \"../../utils/generic.mjs\";\nimport { Events } from \"../../eventKeys.mjs\";\nexport class SetLeftFeature extends BeanStub {\n constructor(columnOrGroup, eCell, beans, colsSpanning) {\n super();\n this.columnOrGroup = columnOrGroup;\n this.eCell = eCell;\n this.ariaEl = this.eCell.querySelector('[role=columnheader]') || this.eCell;\n this.colsSpanning = colsSpanning;\n this.beans = beans;\n }\n setColsSpanning(colsSpanning) {\n this.colsSpanning = colsSpanning;\n this.onLeftChanged();\n }\n getColumnOrGroup() {\n if (this.beans.gridOptionsService.get('enableRtl') && this.colsSpanning) {\n return last(this.colsSpanning);\n }\n return this.columnOrGroup;\n }\n postConstruct() {\n this.addManagedListener(this.columnOrGroup, Column.EVENT_LEFT_CHANGED, this.onLeftChanged.bind(this));\n this.setLeftFirstTime();\n // when in print layout, the left position is also dependent on the width of the pinned sections.\n // so additionally update left if any column width changes.\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, this.onLeftChanged.bind(this));\n // setting left has a dependency on print layout\n this.addManagedPropertyListener('domLayout', this.onLeftChanged.bind(this));\n }\n setLeftFirstTime() {\n const suppressMoveAnimation = this.beans.gridOptionsService.get('suppressColumnMoveAnimation');\n const oldLeftExists = exists(this.columnOrGroup.getOldLeft());\n const animateColumnMove = this.beans.columnAnimationService.isActive() && oldLeftExists && !suppressMoveAnimation;\n if (animateColumnMove) {\n this.animateInLeft();\n }\n else {\n this.onLeftChanged();\n }\n }\n animateInLeft() {\n const colOrGroup = this.getColumnOrGroup();\n const left = colOrGroup.getLeft();\n const oldLeft = colOrGroup.getOldLeft();\n const oldActualLeft = this.modifyLeftForPrintLayout(colOrGroup, oldLeft);\n const actualLeft = this.modifyLeftForPrintLayout(colOrGroup, left);\n this.setLeft(oldActualLeft);\n // we must keep track of the left we want to set to, as this would otherwise lead to a race\n // condition, if the user changed the left value many times in one VM turn, then we want to make\n // make sure the actualLeft we set in the timeout below (in the next VM turn) is the correct left\n // position. eg if user changes column position twice, then setLeft() below executes twice in next\n // VM turn, but only one (the correct one) should get applied.\n this.actualLeft = actualLeft;\n this.beans.columnAnimationService.executeNextVMTurn(() => {\n // test this left value is the latest one to be applied, and if not, do nothing\n if (this.actualLeft === actualLeft) {\n this.setLeft(actualLeft);\n }\n });\n }\n onLeftChanged() {\n const colOrGroup = this.getColumnOrGroup();\n const left = colOrGroup.getLeft();\n this.actualLeft = this.modifyLeftForPrintLayout(colOrGroup, left);\n this.setLeft(this.actualLeft);\n }\n modifyLeftForPrintLayout(colOrGroup, leftPosition) {\n const printLayout = this.beans.gridOptionsService.isDomLayout('print');\n if (!printLayout) {\n return leftPosition;\n }\n if (colOrGroup.getPinned() === 'left') {\n return leftPosition;\n }\n const leftWidth = this.beans.columnModel.getDisplayedColumnsLeftWidth();\n if (colOrGroup.getPinned() === 'right') {\n const bodyWidth = this.beans.columnModel.getBodyContainerWidth();\n return leftWidth + bodyWidth + leftPosition;\n }\n // is in body\n return leftWidth + leftPosition;\n }\n setLeft(value) {\n // if the value is null, then that means the column is no longer\n // displayed. there is logic in the rendering to fade these columns\n // out, so we don't try and change their left positions.\n if (exists(value)) {\n this.eCell.style.left = `${value}px`;\n }\n let indexColumn;\n if (this.columnOrGroup instanceof Column) {\n indexColumn = this.columnOrGroup;\n }\n else {\n const columnGroup = this.columnOrGroup;\n const children = columnGroup.getLeafColumns();\n if (!children.length) {\n return;\n }\n if (children.length > 1) {\n setAriaColSpan(this.ariaEl, children.length);\n }\n indexColumn = children[0];\n }\n }\n}\n__decorate([\n PostConstruct\n], SetLeftFeature.prototype, \"postConstruct\", null);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { BeanStub } from \"../../context/beanStub.mjs\";\nimport { Autowired, PostConstruct } from \"../../context/context.mjs\";\nexport class HoverFeature extends BeanStub {\n constructor(columns, element) {\n super();\n this.columns = columns;\n this.element = element;\n }\n postConstruct() {\n if (this.gridOptionsService.get('columnHoverHighlight')) {\n this.addMouseHoverListeners();\n }\n }\n addMouseHoverListeners() {\n this.addManagedListener(this.element, 'mouseout', this.onMouseOut.bind(this));\n this.addManagedListener(this.element, 'mouseover', this.onMouseOver.bind(this));\n }\n onMouseOut() {\n this.columnHoverService.clearMouseOver();\n }\n onMouseOver() {\n this.columnHoverService.setMouseOver(this.columns);\n }\n}\n__decorate([\n Autowired('columnHoverService')\n], HoverFeature.prototype, \"columnHoverService\", void 0);\n__decorate([\n PostConstruct\n], HoverFeature.prototype, \"postConstruct\", null);\n","import { AbstractHeaderCellCtrl } from \"../abstractCell/abstractHeaderCellCtrl.mjs\";\nimport { KeyCode } from '../../../constants/keyCode.mjs';\nimport { Column } from '../../../entities/column.mjs';\nimport { Events } from '../../../events.mjs';\nimport { SetLeftFeature } from '../../../rendering/features/setLeftFeature.mjs';\nimport { isElementChildOfClass } from '../../../utils/dom.mjs';\nimport { createIconNoSpan } from '../../../utils/icon.mjs';\nimport { ManagedFocusFeature } from '../../../widgets/managedFocusFeature.mjs';\nimport { HoverFeature } from '../hoverFeature.mjs';\nimport { setAriaLabel } from \"../../../utils/aria.mjs\";\nimport { warnOnce } from \"../../../utils/function.mjs\";\nexport class HeaderFilterCellCtrl extends AbstractHeaderCellCtrl {\n constructor(column, beans, parentRowCtrl) {\n super(column, beans, parentRowCtrl);\n this.iconCreated = false;\n this.column = column;\n }\n setComp(comp, eGui, eButtonShowMainFilter, eFloatingFilterBody) {\n this.comp = comp;\n this.eButtonShowMainFilter = eButtonShowMainFilter;\n this.eFloatingFilterBody = eFloatingFilterBody;\n this.setGui(eGui);\n this.setupActive();\n this.setupWidth();\n this.setupLeft();\n this.setupHover();\n this.setupFocus();\n this.setupAria();\n this.setupFilterButton();\n this.setupUserComp();\n this.setupSyncWithFilter();\n this.setupUi();\n this.addManagedListener(this.eButtonShowMainFilter, 'click', this.showParentFilter.bind(this));\n this.setupFilterChangedListener();\n this.addManagedListener(this.column, Column.EVENT_COL_DEF_CHANGED, this.onColDefChanged.bind(this));\n }\n // empty abstract method\n resizeHeader() { }\n // empty abstract method\n moveHeader() { }\n setupActive() {\n const colDef = this.column.getColDef();\n const filterExists = !!colDef.filter;\n const floatingFilterExists = !!colDef.floatingFilter;\n this.active = filterExists && floatingFilterExists;\n }\n setupUi() {\n this.comp.setButtonWrapperDisplayed(!this.suppressFilterButton && this.active);\n this.comp.addOrRemoveBodyCssClass('ag-floating-filter-full-body', this.suppressFilterButton);\n this.comp.addOrRemoveBodyCssClass('ag-floating-filter-body', !this.suppressFilterButton);\n if (!this.active || this.iconCreated) {\n return;\n }\n const eMenuIcon = createIconNoSpan('filter', this.gridOptionsService, this.column);\n if (eMenuIcon) {\n this.iconCreated = true;\n this.eButtonShowMainFilter.appendChild(eMenuIcon);\n }\n }\n setupFocus() {\n this.createManagedBean(new ManagedFocusFeature(this.eGui, {\n shouldStopEventPropagation: this.shouldStopEventPropagation.bind(this),\n onTabKeyDown: this.onTabKeyDown.bind(this),\n handleKeyDown: this.handleKeyDown.bind(this),\n onFocusIn: this.onFocusIn.bind(this)\n }));\n }\n setupAria() {\n const localeTextFunc = this.localeService.getLocaleTextFunc();\n setAriaLabel(this.eButtonShowMainFilter, localeTextFunc('ariaFilterMenuOpen', 'Open Filter Menu'));\n }\n onTabKeyDown(e) {\n const eDocument = this.gridOptionsService.getDocument();\n const activeEl = eDocument.activeElement;\n const wrapperHasFocus = activeEl === this.eGui;\n if (wrapperHasFocus) {\n return;\n }\n const nextFocusableEl = this.focusService.findNextFocusableElement(this.eGui, null, e.shiftKey);\n if (nextFocusableEl) {\n this.beans.headerNavigationService.scrollToColumn(this.column);\n e.preventDefault();\n nextFocusableEl.focus();\n return;\n }\n const nextFocusableColumn = this.findNextColumnWithFloatingFilter(e.shiftKey);\n if (!nextFocusableColumn) {\n return;\n }\n if (this.focusService.focusHeaderPosition({\n headerPosition: {\n headerRowIndex: this.getParentRowCtrl().getRowIndex(),\n column: nextFocusableColumn\n },\n event: e\n })) {\n e.preventDefault();\n }\n }\n findNextColumnWithFloatingFilter(backwards) {\n const columnModel = this.beans.columnModel;\n let nextCol = this.column;\n do {\n nextCol = backwards\n ? columnModel.getDisplayedColBefore(nextCol)\n : columnModel.getDisplayedColAfter(nextCol);\n if (!nextCol) {\n break;\n }\n } while (!nextCol.getColDef().filter || !nextCol.getColDef().floatingFilter);\n return nextCol;\n }\n handleKeyDown(e) {\n super.handleKeyDown(e);\n const wrapperHasFocus = this.getWrapperHasFocus();\n switch (e.key) {\n case KeyCode.UP:\n case KeyCode.DOWN:\n if (!wrapperHasFocus) {\n e.preventDefault();\n }\n case KeyCode.LEFT:\n case KeyCode.RIGHT:\n if (wrapperHasFocus) {\n return;\n }\n e.stopPropagation();\n case KeyCode.ENTER:\n if (wrapperHasFocus) {\n if (this.focusService.focusInto(this.eGui)) {\n e.preventDefault();\n }\n }\n break;\n case KeyCode.ESCAPE:\n if (!wrapperHasFocus) {\n this.eGui.focus();\n }\n }\n }\n onFocusIn(e) {\n const isRelatedWithin = this.eGui.contains(e.relatedTarget);\n // when the focus is already within the component,\n // we default to the browser's behavior\n if (isRelatedWithin) {\n return;\n }\n const notFromHeaderWrapper = !!e.relatedTarget && !e.relatedTarget.classList.contains('ag-floating-filter');\n const fromWithinHeader = !!e.relatedTarget && isElementChildOfClass(e.relatedTarget, 'ag-floating-filter');\n if (notFromHeaderWrapper && fromWithinHeader && e.target === this.eGui) {\n const lastFocusEvent = this.lastFocusEvent;\n const fromTab = !!(lastFocusEvent && lastFocusEvent.key === KeyCode.TAB);\n if (lastFocusEvent && fromTab) {\n const shouldFocusLast = lastFocusEvent.shiftKey;\n this.focusService.focusInto(this.eGui, shouldFocusLast);\n }\n }\n const rowIndex = this.getRowIndex();\n this.beans.focusService.setFocusedHeader(rowIndex, this.column);\n }\n setupHover() {\n this.createManagedBean(new HoverFeature([this.column], this.eGui));\n const listener = () => {\n if (!this.gridOptionsService.get('columnHoverHighlight')) {\n return;\n }\n const hovered = this.beans.columnHoverService.isHovered(this.column);\n this.comp.addOrRemoveCssClass('ag-column-hover', hovered);\n };\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_HOVER_CHANGED, listener);\n listener();\n }\n setupLeft() {\n const setLeftFeature = new SetLeftFeature(this.column, this.eGui, this.beans);\n this.createManagedBean(setLeftFeature);\n }\n setupFilterButton() {\n this.suppressFilterButton = !this.menuService.isFloatingFilterButtonEnabled(this.column);\n this.highlightFilterButtonWhenActive = !this.menuService.isLegacyMenuEnabled();\n }\n setupUserComp() {\n if (!this.active) {\n return;\n }\n const compDetails = this.beans.filterManager.getFloatingFilterCompDetails(this.column, () => this.showParentFilter());\n if (compDetails) {\n this.setCompDetails(compDetails);\n }\n }\n setCompDetails(compDetails) {\n this.userCompDetails = compDetails;\n this.comp.setCompDetails(compDetails);\n }\n showParentFilter() {\n const eventSource = this.suppressFilterButton ? this.eFloatingFilterBody : this.eButtonShowMainFilter;\n this.menuService.showFilterMenu({\n column: this.column,\n buttonElement: eventSource,\n containerType: 'floatingFilter',\n positionBy: 'button'\n });\n }\n setupSyncWithFilter() {\n if (!this.active) {\n return;\n }\n const { filterManager } = this.beans;\n const syncWithFilter = (filterChangedEvent) => {\n const compPromise = this.comp.getFloatingFilterComp();\n if (!compPromise) {\n return;\n }\n compPromise.then(comp => {\n if (comp) {\n const parentModel = filterManager.getCurrentFloatingFilterParentModel(this.column);\n comp.onParentModelChanged(parentModel, filterChangedEvent);\n }\n });\n };\n this.destroySyncListener = this.addManagedListener(this.column, Column.EVENT_FILTER_CHANGED, syncWithFilter);\n if (filterManager.isFilterActive(this.column)) {\n syncWithFilter(null);\n }\n }\n setupWidth() {\n const listener = () => {\n const width = `${this.column.getActualWidth()}px`;\n this.comp.setWidth(width);\n };\n this.addManagedListener(this.column, Column.EVENT_WIDTH_CHANGED, listener);\n listener();\n }\n setupFilterChangedListener() {\n if (this.active) {\n this.destroyFilterChangedListener = this.addManagedListener(this.column, Column.EVENT_FILTER_CHANGED, this.updateFilterButton.bind(this));\n this.updateFilterButton();\n }\n }\n updateFilterButton() {\n if (!this.suppressFilterButton && this.comp) {\n const isFilterAllowed = this.beans.filterManager.isFilterAllowed(this.column);\n this.comp.setButtonWrapperDisplayed(isFilterAllowed);\n if (this.highlightFilterButtonWhenActive && isFilterAllowed) {\n this.eButtonShowMainFilter.classList.toggle('ag-filter-active', this.column.isFilterActive());\n }\n }\n }\n onColDefChanged() {\n var _a, _b;\n const wasActive = this.active;\n this.setupActive();\n const becomeActive = !wasActive && this.active;\n if (wasActive && !this.active) {\n (_a = this.destroySyncListener) === null || _a === void 0 ? void 0 : _a.call(this);\n (_b = this.destroyFilterChangedListener) === null || _b === void 0 ? void 0 : _b.call(this);\n }\n const newCompDetails = this.active\n ? this.beans.filterManager.getFloatingFilterCompDetails(this.column, () => this.showParentFilter())\n : null;\n const compPromise = this.comp.getFloatingFilterComp();\n if (!compPromise || !newCompDetails) {\n this.updateCompDetails(newCompDetails, becomeActive);\n }\n else {\n compPromise.then(compInstance => {\n var _a;\n if (!compInstance || this.beans.filterManager.areFilterCompsDifferent((_a = this.userCompDetails) !== null && _a !== void 0 ? _a : null, newCompDetails)) {\n this.updateCompDetails(newCompDetails, becomeActive);\n }\n else {\n this.updateFloatingFilterParams(newCompDetails);\n }\n });\n }\n }\n updateCompDetails(compDetails, becomeActive) {\n if (!this.isAlive()) {\n return;\n }\n this.setCompDetails(compDetails);\n // filter button and UI can change based on params, so always want to update\n this.setupFilterButton();\n this.setupUi();\n if (becomeActive) {\n this.setupSyncWithFilter();\n this.setupFilterChangedListener();\n }\n }\n updateFloatingFilterParams(userCompDetails) {\n var _a;\n if (!userCompDetails) {\n return;\n }\n const params = userCompDetails.params;\n (_a = this.comp.getFloatingFilterComp()) === null || _a === void 0 ? void 0 : _a.then(floatingFilter => {\n let hasRefreshed = false;\n if ((floatingFilter === null || floatingFilter === void 0 ? void 0 : floatingFilter.refresh) && typeof floatingFilter.refresh === 'function') {\n const result = floatingFilter.refresh(params);\n // framework wrapper always implements optional methods, but returns null if no underlying method\n if (result !== null) {\n hasRefreshed = true;\n }\n }\n if (!hasRefreshed && (floatingFilter === null || floatingFilter === void 0 ? void 0 : floatingFilter.onParamsUpdated) && typeof floatingFilter.onParamsUpdated === 'function') {\n const result = floatingFilter.onParamsUpdated(params);\n if (result !== null) {\n warnOnce(`Custom floating filter method 'onParamsUpdated' is deprecated. Use 'refresh' instead.`);\n }\n }\n });\n }\n destroy() {\n super.destroy();\n this.eButtonShowMainFilter = null;\n this.eFloatingFilterBody = null;\n this.userCompDetails = null;\n this.destroySyncListener = null;\n this.destroyFilterChangedListener = null;\n }\n}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { BeanStub } from \"../../../context/beanStub.mjs\";\nimport { Autowired, PostConstruct } from \"../../../context/context.mjs\";\nimport { getInnerWidth, setDisplayed } from \"../../../utils/dom.mjs\";\nimport { TouchListener } from \"../../../widgets/touchListener.mjs\";\nexport class ResizeFeature extends BeanStub {\n constructor(pinned, column, eResize, comp, ctrl) {\n super();\n this.pinned = pinned;\n this.column = column;\n this.eResize = eResize;\n this.comp = comp;\n this.ctrl = ctrl;\n }\n postConstruct() {\n const destroyResizeFuncs = [];\n let canResize;\n let canAutosize;\n const addResize = () => {\n setDisplayed(this.eResize, canResize);\n if (!canResize) {\n return;\n }\n const finishedWithResizeFunc = this.horizontalResizeService.addResizeBar({\n eResizeBar: this.eResize,\n onResizeStart: this.onResizeStart.bind(this),\n onResizing: this.onResizing.bind(this, false),\n onResizeEnd: this.onResizing.bind(this, true)\n });\n destroyResizeFuncs.push(finishedWithResizeFunc);\n if (canAutosize) {\n const skipHeaderOnAutoSize = this.gridOptionsService.get('skipHeaderOnAutoSize');\n const autoSizeColListener = () => {\n this.columnModel.autoSizeColumn(this.column, \"uiColumnResized\", skipHeaderOnAutoSize);\n };\n this.eResize.addEventListener('dblclick', autoSizeColListener);\n const touchListener = new TouchListener(this.eResize);\n touchListener.addEventListener(TouchListener.EVENT_DOUBLE_TAP, autoSizeColListener);\n destroyResizeFuncs.push(() => {\n this.eResize.removeEventListener('dblclick', autoSizeColListener);\n touchListener.removeEventListener(TouchListener.EVENT_DOUBLE_TAP, autoSizeColListener);\n touchListener.destroy();\n });\n }\n };\n const removeResize = () => {\n destroyResizeFuncs.forEach(f => f());\n destroyResizeFuncs.length = 0;\n };\n const refresh = () => {\n const resize = this.column.isResizable();\n const autoSize = !this.gridOptionsService.get('suppressAutoSize') && !this.column.getColDef().suppressAutoSize;\n const propertyChange = resize !== canResize || autoSize !== canAutosize;\n if (propertyChange) {\n canResize = resize;\n canAutosize = autoSize;\n removeResize();\n addResize();\n }\n };\n refresh();\n this.addDestroyFunc(removeResize);\n this.ctrl.addRefreshFunction(refresh);\n }\n onResizing(finished, resizeAmount) {\n const { column: key, lastResizeAmount, resizeStartWidth } = this;\n const resizeAmountNormalised = this.normaliseResizeAmount(resizeAmount);\n const newWidth = resizeStartWidth + resizeAmountNormalised;\n const columnWidths = [{ key, newWidth }];\n if (this.column.getPinned()) {\n const leftWidth = this.pinnedWidthService.getPinnedLeftWidth();\n const rightWidth = this.pinnedWidthService.getPinnedRightWidth();\n const bodyWidth = getInnerWidth(this.ctrlsService.getGridBodyCtrl().getBodyViewportElement()) - 50;\n if (leftWidth + rightWidth + (resizeAmountNormalised - lastResizeAmount) > bodyWidth) {\n return;\n }\n }\n this.lastResizeAmount = resizeAmountNormalised;\n this.columnModel.setColumnWidths(columnWidths, this.resizeWithShiftKey, finished, \"uiColumnResized\");\n if (finished) {\n this.toggleColumnResizing(false);\n }\n }\n onResizeStart(shiftKey) {\n this.resizeStartWidth = this.column.getActualWidth();\n this.lastResizeAmount = 0;\n this.resizeWithShiftKey = shiftKey;\n this.toggleColumnResizing(true);\n }\n toggleColumnResizing(resizing) {\n this.comp.addOrRemoveCssClass('ag-column-resizing', resizing);\n }\n // optionally inverts the drag, depending on pinned and RTL\n // note - this method is duplicated in RenderedHeaderGroupCell - should refactor out?\n normaliseResizeAmount(dragChange) {\n let result = dragChange;\n const notPinningLeft = this.pinned !== 'left';\n const pinningRight = this.pinned === 'right';\n if (this.gridOptionsService.get('enableRtl')) {\n // for RTL, dragging left makes the col bigger, except when pinning left\n if (notPinningLeft) {\n result *= -1;\n }\n }\n else {\n // for LTR (ie normal), dragging left makes the col smaller, except when pinning right\n if (pinningRight) {\n result *= -1;\n }\n }\n return result;\n }\n}\n__decorate([\n Autowired('horizontalResizeService')\n], ResizeFeature.prototype, \"horizontalResizeService\", void 0);\n__decorate([\n Autowired('pinnedWidthService')\n], ResizeFeature.prototype, \"pinnedWidthService\", void 0);\n__decorate([\n Autowired('ctrlsService')\n], ResizeFeature.prototype, \"ctrlsService\", void 0);\n__decorate([\n Autowired('columnModel')\n], ResizeFeature.prototype, \"columnModel\", void 0);\n__decorate([\n PostConstruct\n], ResizeFeature.prototype, \"postConstruct\", null);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { BeanStub } from \"../../../context/beanStub.mjs\";\nimport { Autowired } from \"../../../context/context.mjs\";\nimport { Events } from \"../../../events.mjs\";\nimport { setAriaHidden, setAriaRole } from \"../../../utils/aria.mjs\";\nimport { AgCheckbox } from \"../../../widgets/agCheckbox.mjs\";\nexport class SelectAllFeature extends BeanStub {\n constructor(column) {\n super();\n this.cbSelectAllVisible = false;\n this.processingEventFromCheckbox = false;\n this.column = column;\n }\n onSpaceKeyDown(e) {\n const checkbox = this.cbSelectAll;\n const eDocument = this.gridOptionsService.getDocument();\n if (checkbox.isDisplayed() && !checkbox.getGui().contains(eDocument.activeElement)) {\n e.preventDefault();\n checkbox.setValue(!checkbox.getValue());\n }\n }\n getCheckboxGui() {\n return this.cbSelectAll.getGui();\n }\n setComp(ctrl) {\n this.headerCellCtrl = ctrl;\n this.cbSelectAll = this.createManagedBean(new AgCheckbox());\n this.cbSelectAll.addCssClass('ag-header-select-all');\n setAriaRole(this.cbSelectAll.getGui(), 'presentation');\n this.showOrHideSelectAll();\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.onNewColumnsLoaded.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayedColumnsChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_SELECTION_CHANGED, this.onSelectionChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_PAGINATION_CHANGED, this.onSelectionChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_MODEL_UPDATED, this.onModelChanged.bind(this));\n this.addManagedListener(this.cbSelectAll, Events.EVENT_FIELD_VALUE_CHANGED, this.onCbSelectAll.bind(this));\n setAriaHidden(this.cbSelectAll.getGui(), true);\n this.cbSelectAll.getInputElement().setAttribute('tabindex', '-1');\n this.refreshSelectAllLabel();\n }\n onNewColumnsLoaded() {\n this.showOrHideSelectAll();\n }\n onDisplayedColumnsChanged() {\n if (!this.isAlive()) {\n return;\n }\n this.showOrHideSelectAll();\n }\n showOrHideSelectAll() {\n this.cbSelectAllVisible = this.isCheckboxSelection();\n this.cbSelectAll.setDisplayed(this.cbSelectAllVisible, { skipAriaHidden: true });\n if (this.cbSelectAllVisible) {\n // in case user is trying this feature with the wrong model type\n this.checkRightRowModelType('selectAllCheckbox');\n // in case user is trying this feature with the wrong model type\n this.checkSelectionType('selectAllCheckbox');\n // make sure checkbox is showing the right state\n this.updateStateOfCheckbox();\n }\n this.refreshSelectAllLabel();\n }\n onModelChanged() {\n if (!this.cbSelectAllVisible) {\n return;\n }\n this.updateStateOfCheckbox();\n }\n onSelectionChanged() {\n if (!this.cbSelectAllVisible) {\n return;\n }\n this.updateStateOfCheckbox();\n }\n updateStateOfCheckbox() {\n if (this.processingEventFromCheckbox) {\n return;\n }\n this.processingEventFromCheckbox = true;\n const allSelected = this.selectionService.getSelectAllState(this.isFilteredOnly(), this.isCurrentPageOnly());\n this.cbSelectAll.setValue(allSelected);\n const hasNodesToSelect = this.selectionService.hasNodesToSelect(this.isFilteredOnly(), this.isCurrentPageOnly());\n this.cbSelectAll.setDisabled(!hasNodesToSelect);\n this.refreshSelectAllLabel();\n this.processingEventFromCheckbox = false;\n }\n refreshSelectAllLabel() {\n const translate = this.localeService.getLocaleTextFunc();\n const checked = this.cbSelectAll.getValue();\n const ariaStatus = checked ? translate('ariaChecked', 'checked') : translate('ariaUnchecked', 'unchecked');\n const ariaLabel = translate('ariaRowSelectAll', 'Press Space to toggle all rows selection');\n if (!this.cbSelectAllVisible) {\n this.headerCellCtrl.setAriaDescriptionProperty('selectAll', null);\n }\n else {\n this.headerCellCtrl.setAriaDescriptionProperty('selectAll', `${ariaLabel} (${ariaStatus})`);\n }\n this.cbSelectAll.setInputAriaLabel(`${ariaLabel} (${ariaStatus})`);\n this.headerCellCtrl.announceAriaDescription();\n }\n checkSelectionType(feature) {\n const isMultiSelect = this.gridOptionsService.get('rowSelection') === 'multiple';\n if (!isMultiSelect) {\n console.warn(`AG Grid: ${feature} is only available if using 'multiple' rowSelection.`);\n return false;\n }\n return true;\n }\n checkRightRowModelType(feature) {\n const rowModelType = this.rowModel.getType();\n const rowModelMatches = rowModelType === 'clientSide' || rowModelType === 'serverSide';\n if (!rowModelMatches) {\n console.warn(`AG Grid: ${feature} is only available if using 'clientSide' or 'serverSide' rowModelType, you are using ${rowModelType}.`);\n return false;\n }\n return true;\n }\n onCbSelectAll() {\n if (this.processingEventFromCheckbox) {\n return;\n }\n if (!this.cbSelectAllVisible) {\n return;\n }\n const value = this.cbSelectAll.getValue();\n const justFiltered = this.isFilteredOnly();\n const justCurrentPage = this.isCurrentPageOnly();\n let source = 'uiSelectAll';\n if (justCurrentPage) {\n source = 'uiSelectAllCurrentPage';\n }\n else if (justFiltered) {\n source = 'uiSelectAllFiltered';\n }\n const params = {\n source,\n justFiltered,\n justCurrentPage,\n };\n if (value) {\n this.selectionService.selectAllRowNodes(params);\n }\n else {\n this.selectionService.deselectAllRowNodes(params);\n }\n }\n isCheckboxSelection() {\n let result = this.column.getColDef().headerCheckboxSelection;\n if (typeof result === 'function') {\n const func = result;\n const params = this.gridOptionsService.addGridCommonParams({\n column: this.column,\n colDef: this.column.getColDef()\n });\n result = func(params);\n }\n if (result) {\n return this.checkRightRowModelType('headerCheckboxSelection') && this.checkSelectionType('headerCheckboxSelection');\n }\n return false;\n }\n isFilteredOnly() {\n return !!this.column.getColDef().headerCheckboxSelectionFilteredOnly;\n }\n isCurrentPageOnly() {\n return !!this.column.getColDef().headerCheckboxSelectionCurrentPageOnly;\n }\n}\n__decorate([\n Autowired('rowModel')\n], SelectAllFeature.prototype, \"rowModel\", void 0);\n__decorate([\n Autowired('selectionService')\n], SelectAllFeature.prototype, \"selectionService\", void 0);\n","import { KeyCode } from '../../../constants/keyCode.mjs';\nimport { DragAndDropService, DragSourceType } from \"../../../dragAndDrop/dragAndDropService.mjs\";\nimport { Column } from \"../../../entities/column.mjs\";\nimport { Events } from \"../../../eventKeys.mjs\";\nimport { SetLeftFeature } from \"../../../rendering/features/setLeftFeature.mjs\";\nimport { getAriaSortState } from \"../../../utils/aria.mjs\";\nimport { ManagedFocusFeature } from \"../../../widgets/managedFocusFeature.mjs\";\nimport { TooltipFeature } from \"../../../widgets/tooltipFeature.mjs\";\nimport { AbstractHeaderCellCtrl } from \"../abstractCell/abstractHeaderCellCtrl.mjs\";\nimport { CssClassApplier } from \"../cssClassApplier.mjs\";\nimport { HoverFeature } from \"../hoverFeature.mjs\";\nimport { HeaderComp } from \"./headerComp.mjs\";\nimport { ResizeFeature } from \"./resizeFeature.mjs\";\nimport { SelectAllFeature } from \"./selectAllFeature.mjs\";\nimport { getElementSize } from \"../../../utils/dom.mjs\";\nimport { ColumnMoveHelper } from \"../../columnMoveHelper.mjs\";\nimport { HorizontalDirection } from \"../../../constants/direction.mjs\";\nexport class HeaderCellCtrl extends AbstractHeaderCellCtrl {\n constructor(column, beans, parentRowCtrl) {\n super(column, beans, parentRowCtrl);\n this.refreshFunctions = [];\n this.userHeaderClasses = new Set();\n this.ariaDescriptionProperties = new Map();\n this.column = column;\n }\n setComp(comp, eGui, eResize, eHeaderCompWrapper) {\n this.comp = comp;\n this.setGui(eGui);\n this.updateState();\n this.setupWidth();\n this.setupMovingCss();\n this.setupMenuClass();\n this.setupSortableClass();\n this.setupWrapTextClass();\n this.refreshSpanHeaderHeight();\n this.setupAutoHeight(eHeaderCompWrapper);\n this.addColumnHoverListener();\n this.setupFilterClass();\n this.setupClassesFromColDef();\n this.setupTooltip();\n this.addActiveHeaderMouseListeners();\n this.setupSelectAll();\n this.setupUserComp();\n this.refreshAria();\n this.resizeFeature = this.createManagedBean(new ResizeFeature(this.getPinned(), this.column, eResize, comp, this));\n this.createManagedBean(new HoverFeature([this.column], eGui));\n this.createManagedBean(new SetLeftFeature(this.column, eGui, this.beans));\n this.createManagedBean(new ManagedFocusFeature(eGui, {\n shouldStopEventPropagation: e => this.shouldStopEventPropagation(e),\n onTabKeyDown: () => null,\n handleKeyDown: this.handleKeyDown.bind(this),\n onFocusIn: this.onFocusIn.bind(this),\n onFocusOut: this.onFocusOut.bind(this)\n }));\n this.addResizeAndMoveKeyboardListeners();\n this.addManagedPropertyListeners(['suppressMovableColumns', 'suppressMenuHide', 'suppressAggFuncInHeader'], this.refresh.bind(this));\n this.addManagedListener(this.column, Column.EVENT_COL_DEF_CHANGED, this.refresh.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_VALUE_CHANGED, this.onColumnValueChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, this.onColumnRowGroupChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_CHANGED, this.onColumnPivotChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_HEADER_HEIGHT_CHANGED, this.onHeaderHeightChanged.bind(this));\n }\n resizeHeader(delta, shiftKey) {\n var _a, _b;\n if (!this.column.isResizable()) {\n return;\n }\n const actualWidth = this.column.getActualWidth();\n const minWidth = (_a = this.column.getMinWidth()) !== null && _a !== void 0 ? _a : 0;\n const maxWidth = (_b = this.column.getMaxWidth()) !== null && _b !== void 0 ? _b : Number.MAX_SAFE_INTEGER;\n const newWidth = Math.min(Math.max(actualWidth + delta, minWidth), maxWidth);\n this.beans.columnModel.setColumnWidths([{ key: this.column, newWidth }], shiftKey, true, 'uiColumnResized');\n }\n moveHeader(hDirection) {\n const { eGui, column, gridOptionsService, ctrlsService } = this;\n const pinned = this.getPinned();\n const left = eGui.getBoundingClientRect().left;\n const width = column.getActualWidth();\n const isRtl = gridOptionsService.get('enableRtl');\n const isLeft = hDirection === HorizontalDirection.Left !== isRtl;\n const xPosition = ColumnMoveHelper.normaliseX(isLeft ? (left - 20) : (left + width + 20), pinned, true, gridOptionsService, ctrlsService);\n ColumnMoveHelper.attemptMoveColumns({\n allMovingColumns: [column],\n isFromHeader: true,\n hDirection,\n xPosition,\n pinned,\n fromEnter: false,\n fakeEvent: false,\n gridOptionsService,\n columnModel: this.beans.columnModel\n });\n ctrlsService.getGridBodyCtrl().getScrollFeature().ensureColumnVisible(column, 'auto');\n }\n setupUserComp() {\n const compDetails = this.lookupUserCompDetails();\n this.setCompDetails(compDetails);\n }\n setCompDetails(compDetails) {\n this.userCompDetails = compDetails;\n this.comp.setUserCompDetails(compDetails);\n }\n lookupUserCompDetails() {\n const params = this.createParams();\n const colDef = this.column.getColDef();\n return this.userComponentFactory.getHeaderCompDetails(colDef, params);\n }\n createParams() {\n const params = this.gridOptionsService.addGridCommonParams({\n column: this.column,\n displayName: this.displayName,\n enableSorting: this.column.isSortable(),\n enableMenu: this.menuEnabled,\n enableFilterButton: this.openFilterEnabled && this.menuService.isHeaderFilterButtonEnabled(this.column),\n enableFilterIcon: !this.openFilterEnabled || this.menuService.isLegacyMenuEnabled(),\n showColumnMenu: (buttonElement) => {\n this.menuService.showColumnMenu({\n column: this.column,\n buttonElement,\n positionBy: 'button'\n });\n },\n showColumnMenuAfterMouseClick: (mouseEvent) => {\n this.menuService.showColumnMenu({\n column: this.column,\n mouseEvent,\n positionBy: 'mouse'\n });\n },\n showFilter: (buttonElement) => {\n this.menuService.showFilterMenu({\n column: this.column,\n buttonElement: buttonElement,\n containerType: 'columnFilter',\n positionBy: 'button'\n });\n },\n progressSort: (multiSort) => {\n this.beans.sortController.progressSort(this.column, !!multiSort, \"uiColumnSorted\");\n },\n setSort: (sort, multiSort) => {\n this.beans.sortController.setSortForColumn(this.column, sort, !!multiSort, \"uiColumnSorted\");\n },\n eGridHeader: this.getGui()\n });\n return params;\n }\n setupSelectAll() {\n this.selectAllFeature = this.createManagedBean(new SelectAllFeature(this.column));\n this.selectAllFeature.setComp(this);\n }\n getSelectAllGui() {\n return this.selectAllFeature.getCheckboxGui();\n }\n handleKeyDown(e) {\n super.handleKeyDown(e);\n if (e.key === KeyCode.SPACE) {\n this.selectAllFeature.onSpaceKeyDown(e);\n }\n if (e.key === KeyCode.ENTER) {\n this.onEnterKeyDown(e);\n }\n if (e.key === KeyCode.DOWN && e.altKey) {\n this.showMenuOnKeyPress(e, false);\n }\n }\n onEnterKeyDown(e) {\n if (e.ctrlKey || e.metaKey) {\n this.showMenuOnKeyPress(e, true);\n }\n else if (this.sortable) {\n const multiSort = e.shiftKey;\n this.beans.sortController.progressSort(this.column, multiSort, \"uiColumnSorted\");\n }\n }\n showMenuOnKeyPress(e, isFilterShortcut) {\n const headerComp = this.comp.getUserCompInstance();\n if (!headerComp || !(headerComp instanceof HeaderComp)) {\n return;\n }\n // the header comp knows what features are enabled, so let it handle the shortcut\n if (headerComp.onMenuKeyboardShortcut(isFilterShortcut)) {\n e.preventDefault();\n }\n }\n onFocusIn(e) {\n if (!this.getGui().contains(e.relatedTarget)) {\n const rowIndex = this.getRowIndex();\n this.focusService.setFocusedHeader(rowIndex, this.column);\n this.announceAriaDescription();\n }\n if (this.focusService.isKeyboardMode()) {\n this.setActiveHeader(true);\n }\n }\n onFocusOut(e) {\n if (this.getGui().contains(e.relatedTarget)) {\n return;\n }\n this.setActiveHeader(false);\n }\n setupTooltip() {\n const tooltipCtrl = {\n getColumn: () => this.column,\n getColDef: () => this.column.getColDef(),\n getGui: () => this.eGui,\n getLocation: () => 'header',\n getTooltipValue: () => {\n const res = this.column.getColDef().headerTooltip;\n return res;\n },\n };\n const tooltipFeature = this.createManagedBean(new TooltipFeature(tooltipCtrl, this.beans));\n tooltipFeature.setComp(this.eGui);\n this.refreshFunctions.push(() => tooltipFeature.refreshToolTip());\n }\n setupClassesFromColDef() {\n const refreshHeaderClasses = () => {\n const colDef = this.column.getColDef();\n const classes = CssClassApplier.getHeaderClassesFromColDef(colDef, this.gridOptionsService, this.column, null);\n const oldClasses = this.userHeaderClasses;\n this.userHeaderClasses = new Set(classes);\n classes.forEach(c => {\n if (oldClasses.has(c)) {\n // class already added, no need to apply it, but remove from old set\n oldClasses.delete(c);\n }\n else {\n // class new since last time, so apply it\n this.comp.addOrRemoveCssClass(c, true);\n }\n });\n // now old set only has classes that were applied last time, but not this time, so remove them\n oldClasses.forEach(c => this.comp.addOrRemoveCssClass(c, false));\n };\n this.refreshFunctions.push(refreshHeaderClasses);\n refreshHeaderClasses();\n }\n setDragSource(eSource) {\n this.dragSourceElement = eSource;\n this.removeDragSource();\n if (!eSource || !this.draggable) {\n return;\n }\n const { column, beans, displayName, dragAndDropService, gridOptionsService } = this;\n const { columnModel } = beans;\n let hideColumnOnExit = !this.gridOptionsService.get('suppressDragLeaveHidesColumns');\n const dragSource = this.dragSource = {\n type: DragSourceType.HeaderCell,\n eElement: eSource,\n getDefaultIconName: () => hideColumnOnExit ? DragAndDropService.ICON_HIDE : DragAndDropService.ICON_NOT_ALLOWED,\n getDragItem: () => this.createDragItem(column),\n dragItemName: displayName,\n onDragStarted: () => {\n hideColumnOnExit = !gridOptionsService.get('suppressDragLeaveHidesColumns');\n column.setMoving(true, \"uiColumnMoved\");\n },\n onDragStopped: () => column.setMoving(false, \"uiColumnMoved\"),\n onGridEnter: (dragItem) => {\n var _a;\n if (hideColumnOnExit) {\n const unlockedColumns = ((_a = dragItem === null || dragItem === void 0 ? void 0 : dragItem.columns) === null || _a === void 0 ? void 0 : _a.filter(col => !col.getColDef().lockVisible)) || [];\n columnModel.setColumnsVisible(unlockedColumns, true, \"uiColumnMoved\");\n }\n },\n onGridExit: (dragItem) => {\n var _a;\n if (hideColumnOnExit) {\n const unlockedColumns = ((_a = dragItem === null || dragItem === void 0 ? void 0 : dragItem.columns) === null || _a === void 0 ? void 0 : _a.filter(col => !col.getColDef().lockVisible)) || [];\n columnModel.setColumnsVisible(unlockedColumns, false, \"uiColumnMoved\");\n }\n },\n };\n dragAndDropService.addDragSource(dragSource, true);\n }\n createDragItem(column) {\n const visibleState = {};\n visibleState[column.getId()] = column.isVisible();\n return {\n columns: [column],\n visibleState: visibleState\n };\n }\n updateState() {\n this.menuEnabled = this.menuService.isColumnMenuInHeaderEnabled(this.column);\n this.openFilterEnabled = this.menuService.isFilterMenuInHeaderEnabled(this.column);\n this.sortable = this.column.isSortable();\n this.displayName = this.calculateDisplayName();\n this.draggable = this.workOutDraggable();\n }\n addRefreshFunction(func) {\n this.refreshFunctions.push(func);\n }\n refresh() {\n this.updateState();\n this.refreshHeaderComp();\n this.refreshAria();\n this.refreshFunctions.forEach(f => f());\n }\n refreshHeaderComp() {\n const newCompDetails = this.lookupUserCompDetails();\n const compInstance = this.comp.getUserCompInstance();\n // only try refresh if old comp exists adn it is the correct type\n const attemptRefresh = compInstance != null && this.userCompDetails.componentClass == newCompDetails.componentClass;\n const headerCompRefreshed = attemptRefresh ? this.attemptHeaderCompRefresh(newCompDetails.params) : false;\n if (headerCompRefreshed) {\n // we do this as a refresh happens after colDefs change, and it's possible the column has had it's\n // draggable property toggled. no need to call this if not refreshing, as setDragSource is done\n // as part of appendHeaderComp\n this.setDragSource(this.dragSourceElement);\n }\n else {\n this.setCompDetails(newCompDetails);\n }\n }\n attemptHeaderCompRefresh(params) {\n const headerComp = this.comp.getUserCompInstance();\n if (!headerComp) {\n return false;\n }\n // if no refresh method, then we want to replace the headerComp\n if (!headerComp.refresh) {\n return false;\n }\n const res = headerComp.refresh(params);\n return res;\n }\n calculateDisplayName() {\n return this.beans.columnModel.getDisplayNameForColumn(this.column, 'header', true);\n }\n checkDisplayName() {\n // display name can change if aggFunc different, eg sum(Gold) is now max(Gold)\n if (this.displayName !== this.calculateDisplayName()) {\n this.refresh();\n }\n }\n workOutDraggable() {\n const colDef = this.column.getColDef();\n const isSuppressMovableColumns = this.gridOptionsService.get('suppressMovableColumns');\n const colCanMove = !isSuppressMovableColumns && !colDef.suppressMovable && !colDef.lockPosition;\n // we should still be allowed drag the column, even if it can't be moved, if the column\n // can be dragged to a rowGroup or pivot drop zone\n return !!colCanMove || !!colDef.enableRowGroup || !!colDef.enablePivot;\n }\n onColumnRowGroupChanged() {\n this.checkDisplayName();\n }\n onColumnPivotChanged() {\n this.checkDisplayName();\n }\n onColumnValueChanged() {\n this.checkDisplayName();\n }\n setupWidth() {\n const listener = () => {\n const columnWidth = this.column.getActualWidth();\n this.comp.setWidth(`${columnWidth}px`);\n };\n this.addManagedListener(this.column, Column.EVENT_WIDTH_CHANGED, listener);\n listener();\n }\n setupMovingCss() {\n const listener = () => {\n // this is what makes the header go dark when it is been moved (gives impression to\n // user that the column was picked up).\n this.comp.addOrRemoveCssClass('ag-header-cell-moving', this.column.isMoving());\n };\n this.addManagedListener(this.column, Column.EVENT_MOVING_CHANGED, listener);\n listener();\n }\n setupMenuClass() {\n const listener = () => {\n this.comp.addOrRemoveCssClass('ag-column-menu-visible', this.column.isMenuVisible());\n };\n this.addManagedListener(this.column, Column.EVENT_MENU_VISIBLE_CHANGED, listener);\n listener();\n }\n setupSortableClass() {\n const updateSortableCssClass = () => {\n this.comp.addOrRemoveCssClass('ag-header-cell-sortable', !!this.sortable);\n };\n updateSortableCssClass();\n this.addRefreshFunction(updateSortableCssClass);\n this.addManagedListener(this.eventService, Column.EVENT_SORT_CHANGED, this.refreshAriaSort.bind(this));\n }\n setupFilterClass() {\n const listener = () => {\n const isFilterActive = this.column.isFilterActive();\n this.comp.addOrRemoveCssClass('ag-header-cell-filtered', isFilterActive);\n this.refreshAria();\n };\n this.addManagedListener(this.column, Column.EVENT_FILTER_ACTIVE_CHANGED, listener);\n listener();\n }\n setupWrapTextClass() {\n const listener = () => {\n const wrapText = !!this.column.getColDef().wrapHeaderText;\n this.comp.addOrRemoveCssClass('ag-header-cell-wrap-text', wrapText);\n };\n listener();\n this.addRefreshFunction(listener);\n }\n onDisplayedColumnsChanged() {\n super.onDisplayedColumnsChanged();\n if (!this.isAlive()) {\n return;\n }\n this.onHeaderHeightChanged();\n }\n onHeaderHeightChanged() {\n this.refreshSpanHeaderHeight();\n }\n refreshSpanHeaderHeight() {\n const { eGui, column, comp, beans } = this;\n if (!column.isSpanHeaderHeight()) {\n eGui.style.removeProperty('top');\n eGui.style.removeProperty('height');\n comp.addOrRemoveCssClass('ag-header-span-height', false);\n comp.addOrRemoveCssClass('ag-header-span-total', false);\n return;\n }\n const { numberOfParents, isSpanningTotal } = this.column.getColumnGroupPaddingInfo();\n comp.addOrRemoveCssClass('ag-header-span-height', numberOfParents > 0);\n const { columnModel } = beans;\n const headerHeight = columnModel.getColumnHeaderRowHeight();\n if (numberOfParents === 0) {\n // if spanning has stopped then need to reset these values.\n comp.addOrRemoveCssClass('ag-header-span-total', false);\n eGui.style.setProperty('top', `0px`);\n eGui.style.setProperty('height', `${headerHeight}px`);\n return;\n }\n comp.addOrRemoveCssClass('ag-header-span-total', isSpanningTotal);\n const pivotMode = columnModel.isPivotMode();\n const groupHeaderHeight = pivotMode\n ? columnModel.getPivotGroupHeaderHeight()\n : columnModel.getGroupHeaderHeight();\n const extraHeight = numberOfParents * groupHeaderHeight;\n eGui.style.setProperty('top', `${-extraHeight}px`);\n eGui.style.setProperty('height', `${headerHeight + extraHeight}px`);\n }\n setupAutoHeight(wrapperElement) {\n const { columnModel, resizeObserverService } = this.beans;\n const measureHeight = (timesCalled) => {\n if (!this.isAlive()) {\n return;\n }\n const { paddingTop, paddingBottom, borderBottomWidth, borderTopWidth } = getElementSize(this.getGui());\n const extraHeight = paddingTop + paddingBottom + borderBottomWidth + borderTopWidth;\n const wrapperHeight = wrapperElement.offsetHeight;\n const autoHeight = wrapperHeight + extraHeight;\n if (timesCalled < 5) {\n // if not in doc yet, means framework not yet inserted, so wait for next VM turn,\n // maybe it will be ready next VM turn\n const doc = this.beans.gridOptionsService.getDocument();\n const notYetInDom = !doc || !doc.contains(wrapperElement);\n // this happens in React, where React hasn't put any content in. we say 'possibly'\n // as a) may not be React and b) the cell could be empty anyway\n const possiblyNoContentYet = autoHeight == 0;\n if (notYetInDom || possiblyNoContentYet) {\n window.setTimeout(() => measureHeight(timesCalled + 1), 0);\n return;\n }\n }\n columnModel.setColumnHeaderHeight(this.column, autoHeight);\n };\n let isMeasuring = false;\n let stopResizeObserver;\n const checkMeasuring = () => {\n const newValue = this.column.isAutoHeaderHeight();\n if (newValue && !isMeasuring) {\n startMeasuring();\n }\n if (!newValue && isMeasuring) {\n stopMeasuring();\n }\n };\n const startMeasuring = () => {\n isMeasuring = true;\n measureHeight(0);\n this.comp.addOrRemoveCssClass('ag-header-cell-auto-height', true);\n stopResizeObserver = resizeObserverService.observeResize(wrapperElement, () => measureHeight(0));\n };\n const stopMeasuring = () => {\n isMeasuring = false;\n if (stopResizeObserver) {\n stopResizeObserver();\n }\n this.comp.addOrRemoveCssClass('ag-header-cell-auto-height', false);\n stopResizeObserver = undefined;\n };\n checkMeasuring();\n this.addDestroyFunc(() => stopMeasuring());\n // In theory we could rely on the resize observer for everything - but since it's debounced\n // it can be a little janky for smooth movement. in this case its better to react to our own events\n // And unfortunately we cant _just_ rely on our own events, since custom components can change whenever\n this.addManagedListener(this.column, Column.EVENT_WIDTH_CHANGED, () => isMeasuring && measureHeight(0));\n // Displaying the sort icon changes the available area for text, so sort changes can affect height\n this.addManagedListener(this.eventService, Column.EVENT_SORT_CHANGED, () => {\n // Rendering changes for sort, happen after the event... not ideal\n if (isMeasuring) {\n window.setTimeout(() => measureHeight(0));\n }\n });\n this.addRefreshFunction(checkMeasuring);\n }\n refreshAriaSort() {\n if (this.sortable) {\n const translate = this.localeService.getLocaleTextFunc();\n const sort = this.beans.sortController.getDisplaySortForColumn(this.column) || null;\n this.comp.setAriaSort(getAriaSortState(sort));\n this.setAriaDescriptionProperty('sort', translate('ariaSortableColumn', 'Press ENTER to sort'));\n }\n else {\n this.comp.setAriaSort();\n this.setAriaDescriptionProperty('sort', null);\n }\n }\n refreshAriaMenu() {\n if (this.menuEnabled) {\n const translate = this.localeService.getLocaleTextFunc();\n this.setAriaDescriptionProperty('menu', translate('ariaMenuColumn', 'Press ALT DOWN to open column menu'));\n }\n else {\n this.setAriaDescriptionProperty('menu', null);\n }\n }\n refreshAriaFilterButton() {\n if (this.openFilterEnabled && !this.menuService.isLegacyMenuEnabled()) {\n const translate = this.localeService.getLocaleTextFunc();\n this.setAriaDescriptionProperty('filterButton', translate('ariaFilterColumn', 'Press CTRL ENTER to open filter'));\n }\n else {\n this.setAriaDescriptionProperty('filterButton', null);\n }\n }\n refreshAriaFiltered() {\n const translate = this.localeService.getLocaleTextFunc();\n const isFilterActive = this.column.isFilterActive();\n if (isFilterActive) {\n this.setAriaDescriptionProperty('filter', translate('ariaColumnFiltered', 'Column Filtered'));\n }\n else {\n this.setAriaDescriptionProperty('filter', null);\n }\n }\n setAriaDescriptionProperty(property, value) {\n if (value != null) {\n this.ariaDescriptionProperties.set(property, value);\n }\n else {\n this.ariaDescriptionProperties.delete(property);\n }\n }\n announceAriaDescription() {\n const eDocument = this.beans.gridOptionsService.getDocument();\n if (!this.eGui.contains(eDocument.activeElement)) {\n return;\n }\n const ariaDescription = Array.from(this.ariaDescriptionProperties.keys())\n // always announce the filter description first\n .sort((a, b) => a === 'filter' ? -1 : (b.charCodeAt(0) - a.charCodeAt(0)))\n .map((key) => this.ariaDescriptionProperties.get(key))\n .join('. ');\n this.beans.ariaAnnouncementService.announceValue(ariaDescription);\n }\n refreshAria() {\n this.refreshAriaSort();\n this.refreshAriaMenu();\n this.refreshAriaFilterButton();\n this.refreshAriaFiltered();\n }\n addColumnHoverListener() {\n const listener = () => {\n if (!this.gridOptionsService.get('columnHoverHighlight')) {\n return;\n }\n const isHovered = this.beans.columnHoverService.isHovered(this.column);\n this.comp.addOrRemoveCssClass('ag-column-hover', isHovered);\n };\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_HOVER_CHANGED, listener);\n listener();\n }\n getColId() {\n return this.column.getColId();\n }\n addActiveHeaderMouseListeners() {\n const listener = (e) => this.handleMouseOverChange(e.type === 'mouseenter');\n const clickListener = () => this.dispatchColumnMouseEvent(Events.EVENT_COLUMN_HEADER_CLICKED, this.column);\n const contextMenuListener = (event) => this.handleContextMenuMouseEvent(event, undefined, this.column);\n this.addManagedListener(this.getGui(), 'mouseenter', listener);\n this.addManagedListener(this.getGui(), 'mouseleave', listener);\n this.addManagedListener(this.getGui(), 'click', clickListener);\n this.addManagedListener(this.getGui(), 'contextmenu', contextMenuListener);\n }\n handleMouseOverChange(isMouseOver) {\n this.setActiveHeader(isMouseOver);\n const eventType = isMouseOver ?\n Events.EVENT_COLUMN_HEADER_MOUSE_OVER :\n Events.EVENT_COLUMN_HEADER_MOUSE_LEAVE;\n const event = {\n type: eventType,\n column: this.column,\n };\n this.eventService.dispatchEvent(event);\n }\n setActiveHeader(active) {\n this.comp.addOrRemoveCssClass('ag-header-active', active);\n }\n getAnchorElementForMenu(isFilter) {\n const headerComp = this.comp.getUserCompInstance();\n if (headerComp instanceof HeaderComp) {\n return headerComp.getAnchorElementForMenu(isFilter);\n }\n return this.getGui();\n }\n destroy() {\n super.destroy();\n this.refreshFunctions = null;\n this.selectAllFeature = null;\n this.dragSourceElement = null;\n this.userCompDetails = null;\n this.userHeaderClasses = null;\n this.ariaDescriptionProperties = null;\n }\n}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { BeanStub } from \"../../../context/beanStub.mjs\";\nimport { Autowired, PostConstruct } from \"../../../context/context.mjs\";\nexport class GroupResizeFeature extends BeanStub {\n constructor(comp, eResize, pinned, columnGroup) {\n super();\n this.eResize = eResize;\n this.comp = comp;\n this.pinned = pinned;\n this.columnGroup = columnGroup;\n }\n postConstruct() {\n if (!this.columnGroup.isResizable()) {\n this.comp.setResizableDisplayed(false);\n return;\n }\n const finishedWithResizeFunc = this.horizontalResizeService.addResizeBar({\n eResizeBar: this.eResize,\n onResizeStart: this.onResizeStart.bind(this),\n onResizing: this.onResizing.bind(this, false),\n onResizeEnd: this.onResizing.bind(this, true)\n });\n this.addDestroyFunc(finishedWithResizeFunc);\n if (!this.gridOptionsService.get('suppressAutoSize')) {\n const skipHeaderOnAutoSize = this.gridOptionsService.get('skipHeaderOnAutoSize');\n this.eResize.addEventListener('dblclick', () => {\n // get list of all the column keys we are responsible for\n const keys = [];\n const leafCols = this.columnGroup.getDisplayedLeafColumns();\n leafCols.forEach((column) => {\n // not all cols in the group may be participating with auto-resize\n if (!column.getColDef().suppressAutoSize) {\n keys.push(column.getColId());\n }\n });\n if (keys.length > 0) {\n this.columnModel.autoSizeColumns({\n columns: keys,\n skipHeader: skipHeaderOnAutoSize,\n stopAtGroup: this.columnGroup,\n source: 'uiColumnResized'\n });\n }\n this.resizeLeafColumnsToFit('uiColumnResized');\n });\n }\n }\n onResizeStart(shiftKey) {\n const initialValues = this.getInitialValues(shiftKey);\n this.storeLocalValues(initialValues);\n this.toggleColumnResizing(true);\n }\n onResizing(finished, resizeAmount, source = 'uiColumnResized') {\n const resizeAmountNormalised = this.normaliseDragChange(resizeAmount);\n const width = this.resizeStartWidth + resizeAmountNormalised;\n this.resizeColumnsFromLocalValues(width, source, finished);\n }\n getInitialValues(shiftKey) {\n const columnsToResize = this.getColumnsToResize();\n const resizeStartWidth = this.getInitialSizeOfColumns(columnsToResize);\n const resizeRatios = this.getSizeRatiosOfColumns(columnsToResize, resizeStartWidth);\n const columnSizeAndRatios = {\n columnsToResize,\n resizeStartWidth,\n resizeRatios\n };\n let groupAfter = null;\n if (shiftKey) {\n groupAfter = this.columnModel.getDisplayedGroupAfter(this.columnGroup);\n }\n if (groupAfter) {\n const takeFromLeafCols = groupAfter.getDisplayedLeafColumns();\n const groupAfterColumns = columnSizeAndRatios.groupAfterColumns = takeFromLeafCols.filter(col => col.isResizable());\n const groupAfterStartWidth = columnSizeAndRatios.groupAfterStartWidth = this.getInitialSizeOfColumns(groupAfterColumns);\n columnSizeAndRatios.groupAfterRatios = this.getSizeRatiosOfColumns(groupAfterColumns, groupAfterStartWidth);\n }\n else {\n columnSizeAndRatios.groupAfterColumns = undefined;\n columnSizeAndRatios.groupAfterStartWidth = undefined;\n columnSizeAndRatios.groupAfterRatios = undefined;\n }\n return columnSizeAndRatios;\n }\n storeLocalValues(initialValues) {\n const { columnsToResize, resizeStartWidth, resizeRatios, groupAfterColumns, groupAfterStartWidth, groupAfterRatios } = initialValues;\n this.resizeCols = columnsToResize;\n this.resizeStartWidth = resizeStartWidth;\n this.resizeRatios = resizeRatios;\n this.resizeTakeFromCols = groupAfterColumns;\n this.resizeTakeFromStartWidth = groupAfterStartWidth;\n this.resizeTakeFromRatios = groupAfterRatios;\n }\n clearLocalValues() {\n this.resizeCols = undefined;\n this.resizeRatios = undefined;\n this.resizeTakeFromCols = undefined;\n this.resizeTakeFromRatios = undefined;\n }\n resizeLeafColumnsToFit(source) {\n const preferredSize = this.autoWidthCalculator.getPreferredWidthForColumnGroup(this.columnGroup);\n const initialValues = this.getInitialValues();\n if (preferredSize > initialValues.resizeStartWidth) {\n this.resizeColumns(initialValues, preferredSize, source, true);\n }\n }\n resizeColumnsFromLocalValues(totalWidth, source, finished = true) {\n var _a, _b, _c;\n if (!this.resizeCols || !this.resizeRatios) {\n return;\n }\n const initialValues = {\n columnsToResize: this.resizeCols,\n resizeStartWidth: this.resizeStartWidth,\n resizeRatios: this.resizeRatios,\n groupAfterColumns: (_a = this.resizeTakeFromCols) !== null && _a !== void 0 ? _a : undefined,\n groupAfterStartWidth: (_b = this.resizeTakeFromStartWidth) !== null && _b !== void 0 ? _b : undefined,\n groupAfterRatios: (_c = this.resizeTakeFromRatios) !== null && _c !== void 0 ? _c : undefined\n };\n this.resizeColumns(initialValues, totalWidth, source, finished);\n }\n resizeColumns(initialValues, totalWidth, source, finished = true) {\n const { columnsToResize, resizeStartWidth, resizeRatios, groupAfterColumns, groupAfterStartWidth, groupAfterRatios } = initialValues;\n const resizeSets = [];\n resizeSets.push({\n columns: columnsToResize,\n ratios: resizeRatios,\n width: totalWidth\n });\n if (groupAfterColumns) {\n const diff = totalWidth - resizeStartWidth;\n resizeSets.push({\n columns: groupAfterColumns,\n ratios: groupAfterRatios,\n width: groupAfterStartWidth - diff\n });\n }\n this.columnModel.resizeColumnSets({\n resizeSets,\n finished,\n source: source\n });\n if (finished) {\n this.toggleColumnResizing(false);\n }\n }\n toggleColumnResizing(resizing) {\n this.comp.addOrRemoveCssClass('ag-column-resizing', resizing);\n }\n getColumnsToResize() {\n const leafCols = this.columnGroup.getDisplayedLeafColumns();\n return leafCols.filter(col => col.isResizable());\n }\n getInitialSizeOfColumns(columns) {\n return columns.reduce((totalWidth, column) => totalWidth + column.getActualWidth(), 0);\n }\n getSizeRatiosOfColumns(columns, initialSizeOfColumns) {\n return columns.map(column => column.getActualWidth() / initialSizeOfColumns);\n }\n // optionally inverts the drag, depending on pinned and RTL\n // note - this method is duplicated in RenderedHeaderCell - should refactor out?\n normaliseDragChange(dragChange) {\n let result = dragChange;\n if (this.gridOptionsService.get('enableRtl')) {\n // for RTL, dragging left makes the col bigger, except when pinning left\n if (this.pinned !== 'left') {\n result *= -1;\n }\n }\n else if (this.pinned === 'right') {\n // for LTR (ie normal), dragging left makes the col smaller, except when pinning right\n result *= -1;\n }\n return result;\n }\n destroy() {\n super.destroy();\n this.clearLocalValues();\n }\n}\n__decorate([\n Autowired('horizontalResizeService')\n], GroupResizeFeature.prototype, \"horizontalResizeService\", void 0);\n__decorate([\n Autowired('autoWidthCalculator')\n], GroupResizeFeature.prototype, \"autoWidthCalculator\", void 0);\n__decorate([\n Autowired('columnModel')\n], GroupResizeFeature.prototype, \"columnModel\", void 0);\n__decorate([\n PostConstruct\n], GroupResizeFeature.prototype, \"postConstruct\", null);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { BeanStub } from \"../../../context/beanStub.mjs\";\nimport { PostConstruct } from \"../../../context/context.mjs\";\nimport { ColumnGroup } from \"../../../entities/columnGroup.mjs\";\nexport class GroupWidthFeature extends BeanStub {\n constructor(comp, columnGroup) {\n super();\n // the children can change, we keep destroy functions related to listening to the children here\n this.removeChildListenersFuncs = [];\n this.columnGroup = columnGroup;\n this.comp = comp;\n }\n postConstruct() {\n // we need to listen to changes in child columns, as they impact our width\n this.addListenersToChildrenColumns();\n // the children belonging to this group can change, so we need to add and remove listeners as they change\n this.addManagedListener(this.columnGroup, ColumnGroup.EVENT_DISPLAYED_CHILDREN_CHANGED, this.onDisplayedChildrenChanged.bind(this));\n this.onWidthChanged();\n // the child listeners are not tied to this components life-cycle, as children can get added and removed\n // to the group - hence they are on a different life-cycle. so we must make sure the existing children\n // listeners are removed when we finally get destroyed\n this.addDestroyFunc(this.removeListenersOnChildrenColumns.bind(this));\n }\n addListenersToChildrenColumns() {\n // first destroy any old listeners\n this.removeListenersOnChildrenColumns();\n // now add new listeners to the new set of children\n const widthChangedListener = this.onWidthChanged.bind(this);\n this.columnGroup.getLeafColumns().forEach(column => {\n column.addEventListener('widthChanged', widthChangedListener);\n column.addEventListener('visibleChanged', widthChangedListener);\n this.removeChildListenersFuncs.push(() => {\n column.removeEventListener('widthChanged', widthChangedListener);\n column.removeEventListener('visibleChanged', widthChangedListener);\n });\n });\n }\n removeListenersOnChildrenColumns() {\n this.removeChildListenersFuncs.forEach(func => func());\n this.removeChildListenersFuncs = [];\n }\n onDisplayedChildrenChanged() {\n this.addListenersToChildrenColumns();\n this.onWidthChanged();\n }\n onWidthChanged() {\n const columnWidth = this.columnGroup.getActualWidth();\n this.comp.setWidth(`${columnWidth}px`);\n this.comp.addOrRemoveCssClass('ag-hidden', columnWidth === 0);\n }\n}\n__decorate([\n PostConstruct\n], GroupWidthFeature.prototype, \"postConstruct\", null);\n","import { KeyCode } from '../../../constants/keyCode.mjs';\nimport { DragAndDropService, DragSourceType } from \"../../../dragAndDrop/dragAndDropService.mjs\";\nimport { Column } from \"../../../entities/column.mjs\";\nimport { Events } from \"../../../events.mjs\";\nimport { ProvidedColumnGroup } from \"../../../entities/providedColumnGroup.mjs\";\nimport { SetLeftFeature } from \"../../../rendering/features/setLeftFeature.mjs\";\nimport { last, removeFromArray } from \"../../../utils/array.mjs\";\nimport { ManagedFocusFeature } from \"../../../widgets/managedFocusFeature.mjs\";\nimport { TooltipFeature } from \"../../../widgets/tooltipFeature.mjs\";\nimport { AbstractHeaderCellCtrl } from \"../abstractCell/abstractHeaderCellCtrl.mjs\";\nimport { CssClassApplier } from \"../cssClassApplier.mjs\";\nimport { HoverFeature } from \"../hoverFeature.mjs\";\nimport { GroupResizeFeature } from \"./groupResizeFeature.mjs\";\nimport { GroupWidthFeature } from \"./groupWidthFeature.mjs\";\nimport { HorizontalDirection } from \"../../../constants/direction.mjs\";\nimport { ColumnMoveHelper } from \"../../columnMoveHelper.mjs\";\nexport class HeaderGroupCellCtrl extends AbstractHeaderCellCtrl {\n constructor(columnGroup, beans, parentRowCtrl) {\n super(columnGroup, beans, parentRowCtrl);\n this.onSuppressColMoveChange = () => {\n if (!this.isAlive() || this.isSuppressMoving()) {\n this.removeDragSource();\n }\n else {\n if (!this.dragSource) {\n const eGui = this.getGui();\n this.setDragSource(eGui);\n }\n }\n };\n this.column = columnGroup;\n }\n setComp(comp, eGui, eResize) {\n this.comp = comp;\n this.setGui(eGui);\n this.displayName = this.beans.columnModel.getDisplayNameForColumnGroup(this.column, 'header');\n this.addClasses();\n this.setupMovingCss();\n this.setupExpandable();\n this.setupTooltip();\n this.setupUserComp();\n this.addHeaderMouseListeners();\n const pinned = this.getParentRowCtrl().getPinned();\n const leafCols = this.column.getProvidedColumnGroup().getLeafColumns();\n this.createManagedBean(new HoverFeature(leafCols, eGui));\n this.createManagedBean(new SetLeftFeature(this.column, eGui, this.beans));\n this.createManagedBean(new GroupWidthFeature(comp, this.column));\n this.resizeFeature = this.createManagedBean(new GroupResizeFeature(comp, eResize, pinned, this.column));\n this.createManagedBean(new ManagedFocusFeature(eGui, {\n shouldStopEventPropagation: this.shouldStopEventPropagation.bind(this),\n onTabKeyDown: () => undefined,\n handleKeyDown: this.handleKeyDown.bind(this),\n onFocusIn: this.onFocusIn.bind(this)\n }));\n this.addManagedPropertyListener(Events.EVENT_SUPPRESS_COLUMN_MOVE_CHANGED, this.onSuppressColMoveChange);\n this.addResizeAndMoveKeyboardListeners();\n }\n resizeHeader(delta, shiftKey) {\n // check to avoid throwing when a component has not been setup yet (React 18)\n if (!this.resizeFeature) {\n return;\n }\n const initialValues = this.resizeFeature.getInitialValues(shiftKey);\n this.resizeFeature.resizeColumns(initialValues, initialValues.resizeStartWidth + delta, 'uiColumnResized', true);\n }\n moveHeader(hDirection) {\n const { beans, eGui, column, gridOptionsService, ctrlsService } = this;\n const isRtl = gridOptionsService.get('enableRtl');\n const isLeft = hDirection === HorizontalDirection.Left;\n const pinned = this.getPinned();\n const rect = eGui.getBoundingClientRect();\n const left = rect.left;\n const width = rect.width;\n const xPosition = ColumnMoveHelper.normaliseX(isLeft !== isRtl ? (left - 20) : (left + width + 20), pinned, true, gridOptionsService, ctrlsService);\n const id = column.getGroupId();\n const headerPosition = this.focusService.getFocusedHeader();\n ColumnMoveHelper.attemptMoveColumns({\n allMovingColumns: this.column.getLeafColumns(),\n isFromHeader: true,\n hDirection,\n xPosition,\n pinned,\n fromEnter: false,\n fakeEvent: false,\n gridOptionsService: gridOptionsService,\n columnModel: beans.columnModel\n });\n const displayedLeafColumns = column.getDisplayedLeafColumns();\n const targetColumn = isLeft ? displayedLeafColumns[0] : last(displayedLeafColumns);\n this.ctrlsService.getGridBodyCtrl().getScrollFeature().ensureColumnVisible(targetColumn, 'auto');\n if (!this.isAlive() && headerPosition) {\n this.restoreFocus(id, column, headerPosition);\n }\n }\n restoreFocus(groupId, previousColumnGroup, previousPosition) {\n const leafCols = previousColumnGroup.getLeafColumns();\n if (!leafCols.length) {\n return;\n }\n const parent = leafCols[0].getParent();\n if (!parent) {\n return;\n }\n const newColumnGroup = this.findGroupWidthId(parent, groupId);\n if (newColumnGroup) {\n this.focusService.focusHeaderPosition({\n headerPosition: Object.assign(Object.assign({}, previousPosition), { column: newColumnGroup })\n });\n }\n }\n findGroupWidthId(columnGroup, id) {\n while (columnGroup) {\n if (columnGroup.getGroupId() === id) {\n return columnGroup;\n }\n columnGroup = columnGroup.getParent();\n }\n return null;\n }\n resizeLeafColumnsToFit(source) {\n // check to avoid throwing when a component has not been setup yet (React 18)\n if (!this.resizeFeature) {\n return;\n }\n this.resizeFeature.resizeLeafColumnsToFit(source);\n }\n setupUserComp() {\n const params = this.gridOptionsService.addGridCommonParams({\n displayName: this.displayName,\n columnGroup: this.column,\n setExpanded: (expanded) => {\n this.beans.columnModel.setColumnGroupOpened(this.column.getProvidedColumnGroup(), expanded, \"gridInitializing\");\n }\n });\n const compDetails = this.userComponentFactory.getHeaderGroupCompDetails(params);\n this.comp.setUserCompDetails(compDetails);\n }\n addHeaderMouseListeners() {\n const listener = (e) => this.handleMouseOverChange(e.type === 'mouseenter');\n const clickListener = () => this.dispatchColumnMouseEvent(Events.EVENT_COLUMN_HEADER_CLICKED, this.column.getProvidedColumnGroup());\n const contextMenuListener = (event) => this.handleContextMenuMouseEvent(event, undefined, this.column.getProvidedColumnGroup());\n this.addManagedListener(this.getGui(), 'mouseenter', listener);\n this.addManagedListener(this.getGui(), 'mouseleave', listener);\n this.addManagedListener(this.getGui(), 'click', clickListener);\n this.addManagedListener(this.getGui(), 'contextmenu', contextMenuListener);\n }\n handleMouseOverChange(isMouseOver) {\n const eventType = isMouseOver ?\n Events.EVENT_COLUMN_HEADER_MOUSE_OVER :\n Events.EVENT_COLUMN_HEADER_MOUSE_LEAVE;\n const event = {\n type: eventType,\n column: this.column.getProvidedColumnGroup(),\n };\n this.eventService.dispatchEvent(event);\n }\n setupTooltip() {\n const colGroupDef = this.column.getColGroupDef();\n const tooltipCtrl = {\n getColumn: () => this.column,\n getGui: () => this.eGui,\n getLocation: () => 'headerGroup',\n getTooltipValue: () => colGroupDef && colGroupDef.headerTooltip\n };\n if (colGroupDef) {\n tooltipCtrl.getColDef = () => colGroupDef;\n }\n const tooltipFeature = this.createManagedBean(new TooltipFeature(tooltipCtrl, this.beans));\n tooltipFeature.setComp(this.eGui);\n }\n setupExpandable() {\n const providedColGroup = this.column.getProvidedColumnGroup();\n this.refreshExpanded();\n this.addManagedListener(providedColGroup, ProvidedColumnGroup.EVENT_EXPANDABLE_CHANGED, this.refreshExpanded.bind(this));\n this.addManagedListener(providedColGroup, ProvidedColumnGroup.EVENT_EXPANDED_CHANGED, this.refreshExpanded.bind(this));\n }\n refreshExpanded() {\n const column = this.column;\n this.expandable = column.isExpandable();\n const expanded = column.isExpanded();\n if (this.expandable) {\n this.comp.setAriaExpanded(expanded ? 'true' : 'false');\n }\n else {\n this.comp.setAriaExpanded(undefined);\n }\n }\n getColId() {\n return this.column.getUniqueId();\n }\n addClasses() {\n const colGroupDef = this.column.getColGroupDef();\n const classes = CssClassApplier.getHeaderClassesFromColDef(colGroupDef, this.gridOptionsService, null, this.column);\n // having different classes below allows the style to not have a bottom border\n // on the group header, if no group is specified\n if (this.column.isPadding()) {\n classes.push('ag-header-group-cell-no-group');\n const leafCols = this.column.getLeafColumns();\n if (leafCols.every(col => col.isSpanHeaderHeight())) {\n classes.push('ag-header-span-height');\n }\n }\n else {\n classes.push('ag-header-group-cell-with-group');\n }\n classes.forEach(c => this.comp.addOrRemoveCssClass(c, true));\n }\n setupMovingCss() {\n const providedColumnGroup = this.column.getProvidedColumnGroup();\n const leafColumns = providedColumnGroup.getLeafColumns();\n // this function adds or removes the moving css, based on if the col is moving.\n // this is what makes the header go dark when it is been moved (gives impression to\n // user that the column was picked up).\n const listener = () => this.comp.addOrRemoveCssClass('ag-header-cell-moving', this.column.isMoving());\n leafColumns.forEach(col => {\n this.addManagedListener(col, Column.EVENT_MOVING_CHANGED, listener);\n });\n listener();\n }\n onFocusIn(e) {\n if (!this.eGui.contains(e.relatedTarget)) {\n const rowIndex = this.getRowIndex();\n this.beans.focusService.setFocusedHeader(rowIndex, this.column);\n }\n }\n handleKeyDown(e) {\n super.handleKeyDown(e);\n const wrapperHasFocus = this.getWrapperHasFocus();\n if (!this.expandable || !wrapperHasFocus) {\n return;\n }\n if (e.key === KeyCode.ENTER) {\n const column = this.column;\n const newExpandedValue = !column.isExpanded();\n this.beans.columnModel.setColumnGroupOpened(column.getProvidedColumnGroup(), newExpandedValue, \"uiColumnExpanded\");\n }\n }\n // unlike columns, this will only get called once, as we don't react on props on column groups\n // (we will always destroy and recreate this comp if something changes)\n setDragSource(eHeaderGroup) {\n if (!this.isAlive() || this.isSuppressMoving()) {\n return;\n }\n this.removeDragSource();\n if (!eHeaderGroup) {\n return;\n }\n const { beans, column, displayName, gridOptionsService, dragAndDropService } = this;\n const { columnModel } = beans;\n const allLeafColumns = column.getProvidedColumnGroup().getLeafColumns();\n let hideColumnOnExit = !gridOptionsService.get('suppressDragLeaveHidesColumns');\n const dragSource = this.dragSource = {\n type: DragSourceType.HeaderCell,\n eElement: eHeaderGroup,\n getDefaultIconName: () => hideColumnOnExit ? DragAndDropService.ICON_HIDE : DragAndDropService.ICON_NOT_ALLOWED,\n dragItemName: displayName,\n // we add in the original group leaf columns, so we move both visible and non-visible items\n getDragItem: () => this.getDragItemForGroup(column),\n onDragStarted: () => {\n hideColumnOnExit = !gridOptionsService.get('suppressDragLeaveHidesColumns');\n allLeafColumns.forEach(col => col.setMoving(true, \"uiColumnDragged\"));\n },\n onDragStopped: () => allLeafColumns.forEach(col => col.setMoving(false, \"uiColumnDragged\")),\n onGridEnter: (dragItem) => {\n var _a;\n if (hideColumnOnExit) {\n const unlockedColumns = ((_a = dragItem === null || dragItem === void 0 ? void 0 : dragItem.columns) === null || _a === void 0 ? void 0 : _a.filter(col => !col.getColDef().lockVisible)) || [];\n columnModel.setColumnsVisible(unlockedColumns, true, \"uiColumnMoved\");\n }\n },\n onGridExit: (dragItem) => {\n var _a;\n if (hideColumnOnExit) {\n const unlockedColumns = ((_a = dragItem === null || dragItem === void 0 ? void 0 : dragItem.columns) === null || _a === void 0 ? void 0 : _a.filter(col => !col.getColDef().lockVisible)) || [];\n columnModel.setColumnsVisible(unlockedColumns, false, \"uiColumnMoved\");\n }\n },\n };\n dragAndDropService.addDragSource(dragSource, true);\n }\n // when moving the columns, we want to move all the columns (contained within the DragItem) in this group in one go,\n // and in the order they are currently in the screen.\n getDragItemForGroup(columnGroup) {\n const allColumnsOriginalOrder = columnGroup.getProvidedColumnGroup().getLeafColumns();\n // capture visible state, used when re-entering grid to dictate which columns should be visible\n const visibleState = {};\n allColumnsOriginalOrder.forEach(column => visibleState[column.getId()] = column.isVisible());\n const allColumnsCurrentOrder = [];\n this.beans.columnModel.getAllDisplayedColumns().forEach(column => {\n if (allColumnsOriginalOrder.indexOf(column) >= 0) {\n allColumnsCurrentOrder.push(column);\n removeFromArray(allColumnsOriginalOrder, column);\n }\n });\n // we are left with non-visible columns, stick these in at the end\n allColumnsOriginalOrder.forEach(column => allColumnsCurrentOrder.push(column));\n // create and return dragItem\n return {\n columns: allColumnsCurrentOrder,\n visibleState: visibleState\n };\n }\n isSuppressMoving() {\n // if any child is fixed, then don't allow moving\n let childSuppressesMoving = false;\n this.column.getLeafColumns().forEach((column) => {\n if (column.getColDef().suppressMovable || column.getColDef().lockPosition) {\n childSuppressesMoving = true;\n }\n });\n const result = childSuppressesMoving || this.gridOptionsService.get('suppressMovableColumns');\n return result;\n }\n}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { BeanStub } from \"../../context/beanStub.mjs\";\nimport { Autowired, PostConstruct } from \"../../context/context.mjs\";\nimport { Events } from \"../../eventKeys.mjs\";\nimport { HeaderFilterCellCtrl } from \"../cells/floatingFilter/headerFilterCellCtrl.mjs\";\nimport { HeaderCellCtrl } from \"../cells/column/headerCellCtrl.mjs\";\nimport { HeaderGroupCellCtrl } from \"../cells/columnGroup/headerGroupCellCtrl.mjs\";\nimport { HeaderRowType } from \"./headerRowComp.mjs\";\nimport { values } from \"../../utils/generic.mjs\";\nlet instanceIdSequence = 0;\nexport class HeaderRowCtrl extends BeanStub {\n constructor(rowIndex, pinned, type) {\n super();\n this.instanceId = instanceIdSequence++;\n this.rowIndex = rowIndex;\n this.pinned = pinned;\n this.type = type;\n const typeClass = type == HeaderRowType.COLUMN_GROUP ? `ag-header-row-column-group` :\n type == HeaderRowType.FLOATING_FILTER ? `ag-header-row-column-filter` : `ag-header-row-column`;\n this.headerRowClass = `ag-header-row ${typeClass}`;\n }\n postConstruct() {\n this.isPrintLayout = this.gridOptionsService.isDomLayout('print');\n this.isEnsureDomOrder = this.gridOptionsService.get('ensureDomOrder');\n }\n getInstanceId() {\n return this.instanceId;\n }\n /**\n *\n * @param comp Proxy to the actual component\n * @param initCompState Should the component be initialised with the current state of the controller. Default: true\n */\n setComp(comp, initCompState = true) {\n this.comp = comp;\n if (initCompState) {\n this.onRowHeightChanged();\n this.onVirtualColumnsChanged();\n }\n // width is managed directly regardless of framework and so is not included in initCompState\n this.setWidth();\n this.addEventListeners();\n }\n getHeaderRowClass() {\n return this.headerRowClass;\n }\n getAriaRowIndex() {\n return this.rowIndex + 1;\n }\n addEventListeners() {\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_RESIZED, this.onColumnResized.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayedColumnsChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_VIRTUAL_COLUMNS_CHANGED, (params) => this.onVirtualColumnsChanged(params.afterScroll));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_HEADER_HEIGHT_CHANGED, this.onRowHeightChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_GRID_STYLES_CHANGED, this.onRowHeightChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_ADVANCED_FILTER_ENABLED_CHANGED, this.onRowHeightChanged.bind(this));\n // when print layout changes, it changes what columns are in what section\n this.addManagedPropertyListener('domLayout', this.onDisplayedColumnsChanged.bind(this));\n this.addManagedPropertyListener('ensureDomOrder', (e) => this.isEnsureDomOrder = e.currentValue);\n this.addManagedPropertyListener('headerHeight', this.onRowHeightChanged.bind(this));\n this.addManagedPropertyListener('pivotHeaderHeight', this.onRowHeightChanged.bind(this));\n this.addManagedPropertyListener('groupHeaderHeight', this.onRowHeightChanged.bind(this));\n this.addManagedPropertyListener('pivotGroupHeaderHeight', this.onRowHeightChanged.bind(this));\n this.addManagedPropertyListener('floatingFiltersHeight', this.onRowHeightChanged.bind(this));\n }\n getHeaderCellCtrl(column) {\n if (!this.headerCellCtrls) {\n return;\n }\n return values(this.headerCellCtrls).find(cellCtrl => cellCtrl.getColumnGroupChild() === column);\n }\n onDisplayedColumnsChanged() {\n this.isPrintLayout = this.gridOptionsService.isDomLayout('print');\n this.onVirtualColumnsChanged();\n this.setWidth();\n this.onRowHeightChanged();\n }\n getType() {\n return this.type;\n }\n onColumnResized() {\n this.setWidth();\n }\n setWidth() {\n const width = this.getWidthForRow();\n this.comp.setWidth(`${width}px`);\n }\n getWidthForRow() {\n const { columnModel } = this.beans;\n if (this.isPrintLayout) {\n const pinned = this.pinned != null;\n if (pinned) {\n return 0;\n }\n return columnModel.getContainerWidth('right')\n + columnModel.getContainerWidth('left')\n + columnModel.getContainerWidth(null);\n }\n // if not printing, just return the width as normal\n return columnModel.getContainerWidth(this.pinned);\n }\n onRowHeightChanged() {\n var { topOffset, rowHeight } = this.getTopAndHeight();\n this.comp.setTop(topOffset + 'px');\n this.comp.setHeight(rowHeight + 'px');\n }\n getTopAndHeight() {\n const { columnModel, filterManager } = this.beans;\n let headerRowCount = columnModel.getHeaderRowCount();\n const sizes = [];\n let numberOfFloating = 0;\n if (filterManager.hasFloatingFilters()) {\n headerRowCount++;\n numberOfFloating = 1;\n }\n const groupHeight = columnModel.getColumnGroupHeaderRowHeight();\n const headerHeight = columnModel.getColumnHeaderRowHeight();\n const numberOfNonGroups = 1 + numberOfFloating;\n const numberOfGroups = headerRowCount - numberOfNonGroups;\n for (let i = 0; i < numberOfGroups; i++) {\n sizes.push(groupHeight);\n }\n sizes.push(headerHeight);\n for (let i = 0; i < numberOfFloating; i++) {\n sizes.push(columnModel.getFloatingFiltersHeight());\n }\n let topOffset = 0;\n for (let i = 0; i < this.rowIndex; i++) {\n topOffset += sizes[i];\n }\n const rowHeight = sizes[this.rowIndex];\n return { topOffset, rowHeight };\n }\n getPinned() {\n return this.pinned;\n }\n getRowIndex() {\n return this.rowIndex;\n }\n onVirtualColumnsChanged(afterScroll = false) {\n const ctrlsToDisplay = this.getHeaderCtrls();\n const forceOrder = this.isEnsureDomOrder || this.isPrintLayout;\n this.comp.setHeaderCtrls(ctrlsToDisplay, forceOrder, afterScroll);\n }\n getHeaderCtrls() {\n const oldCtrls = this.headerCellCtrls;\n this.headerCellCtrls = new Map();\n const columns = this.getColumnsInViewport();\n for (const child of columns) {\n this.recycleAndCreateHeaderCtrls(child, oldCtrls);\n }\n // we want to keep columns that are focused, otherwise keyboard navigation breaks\n const isFocusedAndDisplayed = (ctrl) => {\n const { focusService, columnModel } = this.beans;\n const isFocused = focusService.isHeaderWrapperFocused(ctrl);\n if (!isFocused) {\n return false;\n }\n const isDisplayed = columnModel.isDisplayed(ctrl.getColumnGroupChild());\n return isDisplayed;\n };\n if (oldCtrls) {\n for (const [id, oldCtrl] of oldCtrls) {\n const keepCtrl = isFocusedAndDisplayed(oldCtrl);\n if (keepCtrl) {\n this.headerCellCtrls.set(id, oldCtrl);\n }\n else {\n this.destroyBean(oldCtrl);\n }\n }\n }\n const ctrlsToDisplay = Array.from(this.headerCellCtrls.values());\n return ctrlsToDisplay;\n }\n recycleAndCreateHeaderCtrls(headerColumn, oldCtrls) {\n if (!this.headerCellCtrls) {\n return;\n }\n // skip groups that have no displayed children. this can happen when the group is broken,\n // and this section happens to have nothing to display for the open / closed state.\n // (a broken group is one that is split, ie columns in the group have a non-group column\n // in between them)\n if (headerColumn.isEmptyGroup()) {\n return;\n }\n const idOfChild = headerColumn.getUniqueId();\n // if we already have this cell rendered, do nothing\n let headerCtrl;\n if (oldCtrls) {\n headerCtrl = oldCtrls.get(idOfChild);\n oldCtrls.delete(idOfChild);\n }\n // it's possible there is a new Column with the same ID, but it's for a different Column.\n // this is common with pivoting, where the pivot cols change, but the id's are still pivot_0,\n // pivot_1 etc. so if new col but same ID, need to remove the old col here first as we are\n // about to replace it in the this.headerComps map.\n const forOldColumn = headerCtrl && headerCtrl.getColumnGroupChild() != headerColumn;\n if (forOldColumn) {\n this.destroyBean(headerCtrl);\n headerCtrl = undefined;\n }\n if (headerCtrl == null) {\n switch (this.type) {\n case HeaderRowType.FLOATING_FILTER:\n headerCtrl = this.createBean(new HeaderFilterCellCtrl(headerColumn, this.beans, this));\n break;\n case HeaderRowType.COLUMN_GROUP:\n headerCtrl = this.createBean(new HeaderGroupCellCtrl(headerColumn, this.beans, this));\n break;\n default:\n headerCtrl = this.createBean(new HeaderCellCtrl(headerColumn, this.beans, this));\n break;\n }\n }\n this.headerCellCtrls.set(idOfChild, headerCtrl);\n }\n getColumnsInViewport() {\n return this.isPrintLayout ? this.getColumnsInViewportPrintLayout() : this.getColumnsInViewportNormalLayout();\n }\n getColumnsInViewportPrintLayout() {\n // for print layout, we add all columns into the center\n if (this.pinned != null) {\n return [];\n }\n let viewportColumns = [];\n const actualDepth = this.getActualDepth();\n const { columnModel } = this.beans;\n ['left', null, 'right'].forEach(pinned => {\n const items = columnModel.getVirtualHeaderGroupRow(pinned, actualDepth);\n viewportColumns = viewportColumns.concat(items);\n });\n return viewportColumns;\n }\n getActualDepth() {\n return this.type == HeaderRowType.FLOATING_FILTER ? this.rowIndex - 1 : this.rowIndex;\n }\n getColumnsInViewportNormalLayout() {\n // when in normal layout, we add the columns for that container only\n return this.beans.columnModel.getVirtualHeaderGroupRow(this.pinned, this.getActualDepth());\n }\n focusHeader(column, event) {\n if (!this.headerCellCtrls) {\n return false;\n }\n const allCtrls = Array.from(this.headerCellCtrls.values());\n const ctrl = allCtrls.find(ctrl => ctrl.getColumnGroupChild() == column);\n if (!ctrl) {\n return false;\n }\n return ctrl.focus(event);\n }\n destroy() {\n if (this.headerCellCtrls) {\n this.headerCellCtrls.forEach((ctrl) => {\n this.destroyBean(ctrl);\n });\n }\n this.headerCellCtrls = undefined;\n super.destroy();\n }\n}\n__decorate([\n Autowired('beans')\n], HeaderRowCtrl.prototype, \"beans\", void 0);\n__decorate([\n PostConstruct\n], HeaderRowCtrl.prototype, \"postConstruct\", null);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { BeanStub } from \"../../context/beanStub.mjs\";\nimport { Autowired } from \"../../context/context.mjs\";\nimport { Column } from \"../../entities/column.mjs\";\nimport { Events } from \"../../eventKeys.mjs\";\nimport { CenterWidthFeature } from \"../../gridBodyComp/centerWidthFeature.mjs\";\nimport { NumberSequence } from \"../../utils/index.mjs\";\nimport { BodyDropTarget } from \"../columnDrag/bodyDropTarget.mjs\";\nimport { HeaderRowType } from \"../row/headerRowComp.mjs\";\nimport { HeaderRowCtrl } from \"../row/headerRowCtrl.mjs\";\nexport class HeaderRowContainerCtrl extends BeanStub {\n constructor(pinned) {\n super();\n this.hidden = false;\n this.includeFloatingFilter = false;\n this.groupsRowCtrls = [];\n this.pinned = pinned;\n }\n setComp(comp, eGui) {\n this.comp = comp;\n this.eViewport = eGui;\n this.setupCenterWidth();\n this.setupPinnedWidth();\n this.setupDragAndDrop(this.eViewport);\n this.addManagedListener(this.eventService, Events.EVENT_GRID_COLUMNS_CHANGED, this.onGridColumnsChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayedColumnsChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_ADVANCED_FILTER_ENABLED_CHANGED, this.onDisplayedColumnsChanged.bind(this));\n this.ctrlsService.registerHeaderContainer(this, this.pinned);\n if (this.columnModel.isReady()) {\n this.refresh();\n }\n }\n setupDragAndDrop(dropContainer) {\n const bodyDropTarget = new BodyDropTarget(this.pinned, dropContainer);\n this.createManagedBean(bodyDropTarget);\n }\n refresh(keepColumns = false) {\n const sequence = new NumberSequence();\n const focusedHeaderPosition = this.focusService.getFocusHeaderToUseAfterRefresh();\n const refreshColumnGroups = () => {\n const groupRowCount = this.columnModel.getHeaderRowCount() - 1;\n this.groupsRowCtrls = this.destroyBeans(this.groupsRowCtrls);\n for (let i = 0; i < groupRowCount; i++) {\n const ctrl = this.createBean(new HeaderRowCtrl(sequence.next(), this.pinned, HeaderRowType.COLUMN_GROUP));\n this.groupsRowCtrls.push(ctrl);\n }\n };\n const refreshColumns = () => {\n const rowIndex = sequence.next();\n const needNewInstance = !this.hidden && (this.columnsRowCtrl == null || !keepColumns || this.columnsRowCtrl.getRowIndex() !== rowIndex);\n const shouldDestroyInstance = needNewInstance || this.hidden;\n if (shouldDestroyInstance) {\n this.columnsRowCtrl = this.destroyBean(this.columnsRowCtrl);\n }\n if (needNewInstance) {\n this.columnsRowCtrl = this.createBean(new HeaderRowCtrl(rowIndex, this.pinned, HeaderRowType.COLUMN));\n }\n };\n const refreshFilters = () => {\n this.includeFloatingFilter = this.filterManager.hasFloatingFilters() && !this.hidden;\n const destroyPreviousComp = () => {\n this.filtersRowCtrl = this.destroyBean(this.filtersRowCtrl);\n };\n if (!this.includeFloatingFilter) {\n destroyPreviousComp();\n return;\n }\n const rowIndex = sequence.next();\n if (this.filtersRowCtrl) {\n const rowIndexMismatch = this.filtersRowCtrl.getRowIndex() !== rowIndex;\n if (!keepColumns || rowIndexMismatch) {\n destroyPreviousComp();\n }\n }\n if (!this.filtersRowCtrl) {\n this.filtersRowCtrl = this.createBean(new HeaderRowCtrl(rowIndex, this.pinned, HeaderRowType.FLOATING_FILTER));\n }\n };\n refreshColumnGroups();\n refreshColumns();\n refreshFilters();\n const allCtrls = this.getAllCtrls();\n this.comp.setCtrls(allCtrls);\n this.restoreFocusOnHeader(focusedHeaderPosition);\n }\n restoreFocusOnHeader(position) {\n if (position == null || position.column.getPinned() != this.pinned) {\n return;\n }\n this.focusService.focusHeaderPosition({ headerPosition: position });\n }\n getAllCtrls() {\n const res = [...this.groupsRowCtrls];\n if (this.columnsRowCtrl) {\n res.push(this.columnsRowCtrl);\n }\n if (this.filtersRowCtrl) {\n res.push(this.filtersRowCtrl);\n }\n return res;\n }\n // grid cols have changed - this also means the number of rows in the header can have\n // changed. so we remove all the old rows and insert new ones for a complete refresh\n onGridColumnsChanged() {\n this.refresh(true);\n }\n onDisplayedColumnsChanged() {\n const includeFloatingFilter = this.filterManager.hasFloatingFilters() && !this.hidden;\n if (this.includeFloatingFilter !== includeFloatingFilter) {\n this.refresh(true);\n }\n }\n setupCenterWidth() {\n if (this.pinned != null) {\n return;\n }\n this.createManagedBean(new CenterWidthFeature(width => this.comp.setCenterWidth(`${width}px`), true));\n }\n setHorizontalScroll(offset) {\n this.comp.setViewportScrollLeft(offset);\n }\n setupPinnedWidth() {\n if (this.pinned == null) {\n return;\n }\n const pinningLeft = this.pinned === 'left';\n const pinningRight = this.pinned === 'right';\n this.hidden = true;\n const listener = () => {\n const width = pinningLeft ? this.pinnedWidthService.getPinnedLeftWidth() : this.pinnedWidthService.getPinnedRightWidth();\n if (width == null) {\n return;\n } // can happen at initialisation, width not yet set\n const hidden = (width == 0);\n const hiddenChanged = this.hidden !== hidden;\n const isRtl = this.gridOptionsService.get('enableRtl');\n const scrollbarWidth = this.gridOptionsService.getScrollbarWidth();\n // if there is a scroll showing (and taking up space, so Windows, and not iOS)\n // in the body, then we add extra space to keep header aligned with the body,\n // as body width fits the cols and the scrollbar\n const addPaddingForScrollbar = this.scrollVisibleService.isVerticalScrollShowing() && ((isRtl && pinningLeft) || (!isRtl && pinningRight));\n const widthWithPadding = addPaddingForScrollbar ? width + scrollbarWidth : width;\n this.comp.setPinnedContainerWidth(`${widthWithPadding}px`);\n this.comp.setDisplayed(!hidden);\n if (hiddenChanged) {\n this.hidden = hidden;\n this.refresh();\n }\n };\n this.addManagedListener(this.eventService, Events.EVENT_LEFT_PINNED_WIDTH_CHANGED, listener);\n this.addManagedListener(this.eventService, Events.EVENT_RIGHT_PINNED_WIDTH_CHANGED, listener);\n this.addManagedListener(this.eventService, Events.EVENT_SCROLL_VISIBILITY_CHANGED, listener);\n this.addManagedListener(this.eventService, Events.EVENT_SCROLLBAR_WIDTH_CHANGED, listener);\n }\n getHeaderCtrlForColumn(column) {\n if (column instanceof Column) {\n if (!this.columnsRowCtrl) {\n return;\n }\n return this.columnsRowCtrl.getHeaderCellCtrl(column);\n }\n if (this.groupsRowCtrls.length === 0) {\n return;\n }\n for (let i = 0; i < this.groupsRowCtrls.length; i++) {\n const ctrl = this.groupsRowCtrls[i].getHeaderCellCtrl(column);\n if (ctrl) {\n return ctrl;\n }\n }\n }\n getHtmlElementForColumnHeader(column) {\n /* tslint:enable */\n const cellCtrl = this.getHeaderCtrlForColumn(column);\n if (!cellCtrl) {\n return null;\n }\n return cellCtrl.getGui();\n }\n getRowType(rowIndex) {\n const allCtrls = this.getAllCtrls();\n const ctrl = allCtrls[rowIndex];\n return ctrl ? ctrl.getType() : undefined;\n }\n focusHeader(rowIndex, column, event) {\n const allCtrls = this.getAllCtrls();\n const ctrl = allCtrls[rowIndex];\n if (!ctrl) {\n return false;\n }\n return ctrl.focusHeader(column, event);\n }\n getViewport() {\n return this.eViewport;\n }\n getRowCount() {\n return this.groupsRowCtrls.length + (this.columnsRowCtrl ? 1 : 0) + (this.filtersRowCtrl ? 1 : 0);\n }\n destroy() {\n if (this.filtersRowCtrl) {\n this.filtersRowCtrl = this.destroyBean(this.filtersRowCtrl);\n }\n if (this.columnsRowCtrl) {\n this.columnsRowCtrl = this.destroyBean(this.columnsRowCtrl);\n }\n if (this.groupsRowCtrls && this.groupsRowCtrls.length) {\n this.groupsRowCtrls = this.destroyBeans(this.groupsRowCtrls);\n }\n super.destroy();\n }\n}\n__decorate([\n Autowired('ctrlsService')\n], HeaderRowContainerCtrl.prototype, \"ctrlsService\", void 0);\n__decorate([\n Autowired('scrollVisibleService')\n], HeaderRowContainerCtrl.prototype, \"scrollVisibleService\", void 0);\n__decorate([\n Autowired('pinnedWidthService')\n], HeaderRowContainerCtrl.prototype, \"pinnedWidthService\", void 0);\n__decorate([\n Autowired('columnModel')\n], HeaderRowContainerCtrl.prototype, \"columnModel\", void 0);\n__decorate([\n Autowired('focusService')\n], HeaderRowContainerCtrl.prototype, \"focusService\", void 0);\n__decorate([\n Autowired('filterManager')\n], HeaderRowContainerCtrl.prototype, \"filterManager\", void 0);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { PostConstruct, PreDestroy } from '../../context/context.mjs';\nimport { ensureDomOrder } from '../../utils/dom.mjs';\nimport { getAllValuesInObject } from '../../utils/object.mjs';\nimport { Component } from '../../widgets/component.mjs';\nimport { RefSelector } from '../../widgets/componentAnnotations.mjs';\nimport { HeaderRowComp } from '../row/headerRowComp.mjs';\nimport { HeaderRowContainerCtrl } from './headerRowContainerCtrl.mjs';\nexport class HeaderRowContainerComp extends Component {\n constructor(pinned) {\n super();\n this.headerRowComps = {};\n this.rowCompsList = [];\n this.pinned = pinned;\n }\n init() {\n this.selectAndSetTemplate();\n const compProxy = {\n setDisplayed: displayed => this.setDisplayed(displayed),\n setCtrls: ctrls => this.setCtrls(ctrls),\n // only gets called for center section\n setCenterWidth: width => this.eCenterContainer.style.width = width,\n setViewportScrollLeft: left => this.getGui().scrollLeft = left,\n // only gets called for pinned sections\n setPinnedContainerWidth: width => {\n const eGui = this.getGui();\n eGui.style.width = width;\n eGui.style.maxWidth = width;\n eGui.style.minWidth = width;\n }\n };\n const ctrl = this.createManagedBean(new HeaderRowContainerCtrl(this.pinned));\n ctrl.setComp(compProxy, this.getGui());\n }\n selectAndSetTemplate() {\n const pinnedLeft = this.pinned == 'left';\n const pinnedRight = this.pinned == 'right';\n const template = pinnedLeft ? HeaderRowContainerComp.PINNED_LEFT_TEMPLATE :\n pinnedRight ? HeaderRowContainerComp.PINNED_RIGHT_TEMPLATE : HeaderRowContainerComp.CENTER_TEMPLATE;\n this.setTemplate(template);\n // for left and right, we add rows directly to the root element,\n // but for center container we add elements to the child container.\n this.eRowContainer = this.eCenterContainer ? this.eCenterContainer : this.getGui();\n }\n destroyRowComps() {\n this.setCtrls([]);\n }\n destroyRowComp(rowComp) {\n this.destroyBean(rowComp);\n this.eRowContainer.removeChild(rowComp.getGui());\n }\n setCtrls(ctrls) {\n const oldRowComps = this.headerRowComps;\n this.headerRowComps = {};\n this.rowCompsList = [];\n let prevGui;\n const appendEnsuringDomOrder = (rowComp) => {\n const eGui = rowComp.getGui();\n const notAlreadyIn = eGui.parentElement != this.eRowContainer;\n if (notAlreadyIn) {\n this.eRowContainer.appendChild(eGui);\n }\n if (prevGui) {\n ensureDomOrder(this.eRowContainer, eGui, prevGui);\n }\n prevGui = eGui;\n };\n ctrls.forEach(ctrl => {\n const ctrlId = ctrl.getInstanceId();\n const existingComp = oldRowComps[ctrlId];\n delete oldRowComps[ctrlId];\n const rowComp = existingComp ? existingComp : this.createBean(new HeaderRowComp(ctrl));\n this.headerRowComps[ctrlId] = rowComp;\n this.rowCompsList.push(rowComp);\n appendEnsuringDomOrder(rowComp);\n });\n getAllValuesInObject(oldRowComps).forEach(c => this.destroyRowComp(c));\n }\n}\nHeaderRowContainerComp.PINNED_LEFT_TEMPLATE = `
`;\nHeaderRowContainerComp.PINNED_RIGHT_TEMPLATE = `
`;\nHeaderRowContainerComp.CENTER_TEMPLATE = `
\n
\n
`;\n__decorate([\n RefSelector('eCenterContainer')\n], HeaderRowContainerComp.prototype, \"eCenterContainer\", void 0);\n__decorate([\n PostConstruct\n], HeaderRowContainerComp.prototype, \"init\", null);\n__decorate([\n PreDestroy\n], HeaderRowContainerComp.prototype, \"destroyRowComps\", null);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { BeanStub } from \"../../context/beanStub.mjs\";\nimport { Autowired, Bean, PostConstruct } from \"../../context/context.mjs\";\nimport { ColumnGroup } from \"../../entities/columnGroup.mjs\";\nimport { last } from \"../../utils/array.mjs\";\nexport var HeaderNavigationDirection;\n(function (HeaderNavigationDirection) {\n HeaderNavigationDirection[HeaderNavigationDirection[\"UP\"] = 0] = \"UP\";\n HeaderNavigationDirection[HeaderNavigationDirection[\"DOWN\"] = 1] = \"DOWN\";\n HeaderNavigationDirection[HeaderNavigationDirection[\"LEFT\"] = 2] = \"LEFT\";\n HeaderNavigationDirection[HeaderNavigationDirection[\"RIGHT\"] = 3] = \"RIGHT\";\n})(HeaderNavigationDirection || (HeaderNavigationDirection = {}));\nlet HeaderNavigationService = class HeaderNavigationService extends BeanStub {\n constructor() {\n super(...arguments);\n this.currentHeaderRowWithoutSpan = -1;\n }\n postConstruct() {\n this.ctrlsService.whenReady(p => {\n this.gridBodyCon = p.gridBodyCtrl;\n });\n const eDocument = this.gridOptionsService.getDocument();\n this.addManagedListener(eDocument, 'mousedown', () => this.setCurrentHeaderRowWithoutSpan(-1));\n }\n getHeaderRowCount() {\n const centerHeaderContainer = this.ctrlsService.getHeaderRowContainerCtrl();\n return centerHeaderContainer ? centerHeaderContainer.getRowCount() : 0;\n }\n /*\n * This method navigates grid header vertically\n * @return {boolean} true to preventDefault on the event that caused this navigation.\n */\n navigateVertically(direction, fromHeader, event) {\n if (!fromHeader) {\n fromHeader = this.focusService.getFocusedHeader();\n }\n if (!fromHeader) {\n return false;\n }\n const { headerRowIndex, column } = fromHeader;\n const rowLen = this.getHeaderRowCount();\n const isUp = direction === HeaderNavigationDirection.UP;\n let { headerRowIndex: nextRow, column: nextFocusColumn, headerRowIndexWithoutSpan } = isUp\n ? this.headerPositionUtils.getColumnVisibleParent(column, headerRowIndex)\n : this.headerPositionUtils.getColumnVisibleChild(column, headerRowIndex);\n let skipColumn = false;\n if (nextRow < 0) {\n nextRow = 0;\n nextFocusColumn = column;\n skipColumn = true;\n }\n if (nextRow >= rowLen) {\n nextRow = -1; // -1 indicates the focus should move to grid rows.\n this.setCurrentHeaderRowWithoutSpan(-1);\n }\n else if (headerRowIndexWithoutSpan !== undefined) {\n this.currentHeaderRowWithoutSpan = headerRowIndexWithoutSpan;\n }\n if (!skipColumn && !nextFocusColumn) {\n return false;\n }\n return this.focusService.focusHeaderPosition({\n headerPosition: { headerRowIndex: nextRow, column: nextFocusColumn },\n allowUserOverride: true,\n event\n });\n }\n setCurrentHeaderRowWithoutSpan(row) {\n this.currentHeaderRowWithoutSpan = row;\n }\n /*\n * This method navigates grid header horizontally\n * @return {boolean} true to preventDefault on the event that caused this navigation.\n */\n navigateHorizontally(direction, fromTab = false, event) {\n const focusedHeader = this.focusService.getFocusedHeader();\n const isLeft = direction === HeaderNavigationDirection.LEFT;\n const isRtl = this.gridOptionsService.get('enableRtl');\n let nextHeader;\n let normalisedDirection;\n // either navigating to the left or isRtl (cannot be both)\n if (this.currentHeaderRowWithoutSpan !== -1) {\n focusedHeader.headerRowIndex = this.currentHeaderRowWithoutSpan;\n }\n else {\n this.currentHeaderRowWithoutSpan = focusedHeader.headerRowIndex;\n }\n if (isLeft !== isRtl) {\n normalisedDirection = 'Before';\n nextHeader = this.headerPositionUtils.findHeader(focusedHeader, normalisedDirection);\n }\n else {\n normalisedDirection = 'After';\n nextHeader = this.headerPositionUtils.findHeader(focusedHeader, normalisedDirection);\n }\n if (nextHeader || !fromTab) {\n return this.focusService.focusHeaderPosition({\n headerPosition: nextHeader,\n direction: normalisedDirection,\n fromTab,\n allowUserOverride: true,\n event\n });\n }\n return this.focusNextHeaderRow(focusedHeader, normalisedDirection, event);\n }\n focusNextHeaderRow(focusedHeader, direction, event) {\n const currentIndex = focusedHeader.headerRowIndex;\n let nextPosition = null;\n let nextRowIndex;\n if (direction === 'Before') {\n if (currentIndex > 0) {\n nextRowIndex = currentIndex - 1;\n this.currentHeaderRowWithoutSpan -= 1;\n nextPosition = this.headerPositionUtils.findColAtEdgeForHeaderRow(nextRowIndex, 'end');\n }\n }\n else {\n nextRowIndex = currentIndex + 1;\n if (this.currentHeaderRowWithoutSpan < this.getHeaderRowCount()) {\n this.currentHeaderRowWithoutSpan += 1;\n }\n else {\n this.setCurrentHeaderRowWithoutSpan(-1);\n }\n nextPosition = this.headerPositionUtils.findColAtEdgeForHeaderRow(nextRowIndex, 'start');\n }\n if (!nextPosition) {\n return false;\n }\n const { column, headerRowIndex } = this.headerPositionUtils.getHeaderIndexToFocus(nextPosition.column, nextPosition === null || nextPosition === void 0 ? void 0 : nextPosition.headerRowIndex);\n return this.focusService.focusHeaderPosition({\n headerPosition: { column, headerRowIndex },\n direction,\n fromTab: true,\n allowUserOverride: true,\n event\n });\n }\n scrollToColumn(column, direction = 'After') {\n if (column.getPinned()) {\n return;\n }\n let columnToScrollTo;\n if (column instanceof ColumnGroup) {\n const columns = column.getDisplayedLeafColumns();\n columnToScrollTo = direction === 'Before' ? last(columns) : columns[0];\n }\n else {\n columnToScrollTo = column;\n }\n this.gridBodyCon.getScrollFeature().ensureColumnVisible(columnToScrollTo);\n }\n};\n__decorate([\n Autowired('focusService')\n], HeaderNavigationService.prototype, \"focusService\", void 0);\n__decorate([\n Autowired('headerPositionUtils')\n], HeaderNavigationService.prototype, \"headerPositionUtils\", void 0);\n__decorate([\n Autowired('ctrlsService')\n], HeaderNavigationService.prototype, \"ctrlsService\", void 0);\n__decorate([\n PostConstruct\n], HeaderNavigationService.prototype, \"postConstruct\", null);\nHeaderNavigationService = __decorate([\n Bean('headerNavigationService')\n], HeaderNavigationService);\nexport { HeaderNavigationService };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { KeyCode } from \"../constants/keyCode.mjs\";\nimport { BeanStub } from \"../context/beanStub.mjs\";\nimport { Autowired } from \"../context/context.mjs\";\nimport { Events } from \"../eventKeys.mjs\";\nimport { isIOSUserAgent } from \"../utils/browser.mjs\";\nimport { exists } from \"../utils/generic.mjs\";\nimport { ManagedFocusFeature } from \"../widgets/managedFocusFeature.mjs\";\nimport { TouchListener } from \"../widgets/touchListener.mjs\";\nimport { HeaderNavigationDirection } from \"./common/headerNavigationService.mjs\";\nexport class GridHeaderCtrl extends BeanStub {\n setComp(comp, eGui, eFocusableElement) {\n this.comp = comp;\n this.eGui = eGui;\n this.createManagedBean(new ManagedFocusFeature(eFocusableElement, {\n onTabKeyDown: this.onTabKeyDown.bind(this),\n handleKeyDown: this.handleKeyDown.bind(this),\n onFocusOut: this.onFocusOut.bind(this)\n }));\n // for setting ag-pivot-on / ag-pivot-off CSS classes\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, this.onPivotModeChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayedColumnsChanged.bind(this));\n this.onPivotModeChanged();\n this.setupHeaderHeight();\n const listener = this.onHeaderContextMenu.bind(this);\n this.addManagedListener(this.eGui, 'contextmenu', listener);\n this.mockContextMenuForIPad(listener);\n this.ctrlsService.registerGridHeaderCtrl(this);\n }\n setupHeaderHeight() {\n const listener = this.setHeaderHeight.bind(this);\n listener();\n this.addManagedPropertyListener('headerHeight', listener);\n this.addManagedPropertyListener('pivotHeaderHeight', listener);\n this.addManagedPropertyListener('groupHeaderHeight', listener);\n this.addManagedPropertyListener('pivotGroupHeaderHeight', listener);\n this.addManagedPropertyListener('floatingFiltersHeight', listener);\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, listener);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_HEADER_HEIGHT_CHANGED, listener);\n this.addManagedListener(this.eventService, Events.EVENT_GRID_STYLES_CHANGED, listener);\n this.addManagedListener(this.eventService, Events.EVENT_ADVANCED_FILTER_ENABLED_CHANGED, listener);\n }\n getHeaderHeight() {\n return this.headerHeight;\n }\n setHeaderHeight() {\n const { columnModel } = this;\n let numberOfFloating = 0;\n let headerRowCount = columnModel.getHeaderRowCount();\n let totalHeaderHeight;\n const hasFloatingFilters = this.filterManager.hasFloatingFilters();\n if (hasFloatingFilters) {\n headerRowCount++;\n numberOfFloating = 1;\n }\n const groupHeight = this.columnModel.getColumnGroupHeaderRowHeight();\n const headerHeight = this.columnModel.getColumnHeaderRowHeight();\n const numberOfNonGroups = 1 + numberOfFloating;\n const numberOfGroups = headerRowCount - numberOfNonGroups;\n totalHeaderHeight = numberOfFloating * columnModel.getFloatingFiltersHeight();\n totalHeaderHeight += numberOfGroups * groupHeight;\n totalHeaderHeight += headerHeight;\n if (this.headerHeight === totalHeaderHeight) {\n return;\n }\n this.headerHeight = totalHeaderHeight;\n // one extra pixel is needed here to account for the\n // height of the border\n const px = `${totalHeaderHeight + 1}px`;\n this.comp.setHeightAndMinHeight(px);\n this.eventService.dispatchEvent({\n type: Events.EVENT_HEADER_HEIGHT_CHANGED\n });\n }\n onPivotModeChanged() {\n const pivotMode = this.columnModel.isPivotMode();\n this.comp.addOrRemoveCssClass('ag-pivot-on', pivotMode);\n this.comp.addOrRemoveCssClass('ag-pivot-off', !pivotMode);\n }\n onDisplayedColumnsChanged() {\n const columns = this.columnModel.getAllDisplayedColumns();\n const shouldAllowOverflow = columns.some(col => col.isSpanHeaderHeight());\n this.comp.addOrRemoveCssClass('ag-header-allow-overflow', shouldAllowOverflow);\n }\n onTabKeyDown(e) {\n const isRtl = this.gridOptionsService.get('enableRtl');\n const direction = e.shiftKey !== isRtl\n ? HeaderNavigationDirection.LEFT\n : HeaderNavigationDirection.RIGHT;\n if (this.headerNavigationService.navigateHorizontally(direction, true, e) ||\n this.focusService.focusNextGridCoreContainer(e.shiftKey)) {\n e.preventDefault();\n }\n }\n handleKeyDown(e) {\n let direction = null;\n switch (e.key) {\n case KeyCode.LEFT:\n direction = HeaderNavigationDirection.LEFT;\n case KeyCode.RIGHT:\n if (!exists(direction)) {\n direction = HeaderNavigationDirection.RIGHT;\n }\n this.headerNavigationService.navigateHorizontally(direction, false, e);\n break;\n case KeyCode.UP:\n direction = HeaderNavigationDirection.UP;\n case KeyCode.DOWN:\n if (!exists(direction)) {\n direction = HeaderNavigationDirection.DOWN;\n }\n if (this.headerNavigationService.navigateVertically(direction, null, e)) {\n e.preventDefault();\n }\n break;\n default:\n return;\n }\n }\n onFocusOut(e) {\n const eDocument = this.gridOptionsService.getDocument();\n const { relatedTarget } = e;\n if (!relatedTarget && this.eGui.contains(eDocument.activeElement)) {\n return;\n }\n if (!this.eGui.contains(relatedTarget)) {\n this.focusService.clearFocusedHeader();\n }\n }\n onHeaderContextMenu(mouseEvent, touch, touchEvent) {\n if ((!mouseEvent && !touchEvent) || !this.menuService.isHeaderContextMenuEnabled()) {\n return;\n }\n const { target } = (mouseEvent !== null && mouseEvent !== void 0 ? mouseEvent : touch);\n if (target === this.eGui || target === this.ctrlsService.getHeaderRowContainerCtrl().getViewport()) {\n this.menuService.showHeaderContextMenu(undefined, mouseEvent, touchEvent);\n }\n }\n mockContextMenuForIPad(listener) {\n // we do NOT want this when not in iPad\n if (!isIOSUserAgent()) {\n return;\n }\n const touchListener = new TouchListener(this.eGui);\n const longTapListener = (event) => {\n listener(undefined, event.touchStart, event.touchEvent);\n };\n this.addManagedListener(touchListener, TouchListener.EVENT_LONG_TAP, longTapListener);\n this.addDestroyFunc(() => touchListener.destroy());\n }\n}\n__decorate([\n Autowired('headerNavigationService')\n], GridHeaderCtrl.prototype, \"headerNavigationService\", void 0);\n__decorate([\n Autowired('focusService')\n], GridHeaderCtrl.prototype, \"focusService\", void 0);\n__decorate([\n Autowired('columnModel')\n], GridHeaderCtrl.prototype, \"columnModel\", void 0);\n__decorate([\n Autowired('ctrlsService')\n], GridHeaderCtrl.prototype, \"ctrlsService\", void 0);\n__decorate([\n Autowired('filterManager')\n], GridHeaderCtrl.prototype, \"filterManager\", void 0);\n__decorate([\n Autowired('menuService')\n], GridHeaderCtrl.prototype, \"menuService\", void 0);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { PostConstruct } from '../context/context.mjs';\nimport { Component } from '../widgets/component.mjs';\nimport { GridHeaderCtrl } from './gridHeaderCtrl.mjs';\nimport { HeaderRowContainerComp } from './rowContainer/headerRowContainerComp.mjs';\nexport class GridHeaderComp extends Component {\n constructor() {\n super(GridHeaderComp.TEMPLATE);\n }\n postConstruct() {\n const compProxy = {\n addOrRemoveCssClass: (cssClassName, on) => this.addOrRemoveCssClass(cssClassName, on),\n setHeightAndMinHeight: height => {\n this.getGui().style.height = height;\n this.getGui().style.minHeight = height;\n }\n };\n const ctrl = this.createManagedBean(new GridHeaderCtrl());\n ctrl.setComp(compProxy, this.getGui(), this.getFocusableElement());\n const addContainer = (container) => {\n this.createManagedBean(container);\n this.appendChild(container);\n };\n addContainer(new HeaderRowContainerComp('left'));\n addContainer(new HeaderRowContainerComp(null));\n addContainer(new HeaderRowContainerComp('right'));\n }\n}\nGridHeaderComp.TEMPLATE = `
`;\n__decorate([\n PostConstruct\n], GridHeaderComp.prototype, \"postConstruct\", null);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Autowired, Bean } from \"../../context/context.mjs\";\nimport { BeanStub } from \"../../context/beanStub.mjs\";\nlet HorizontalResizeService = class HorizontalResizeService extends BeanStub {\n addResizeBar(params) {\n const dragSource = {\n dragStartPixels: params.dragStartPixels || 0,\n eElement: params.eResizeBar,\n onDragStart: this.onDragStart.bind(this, params),\n onDragStop: this.onDragStop.bind(this, params),\n onDragging: this.onDragging.bind(this, params),\n includeTouch: true,\n stopPropagationForTouch: true\n };\n this.dragService.addDragSource(dragSource);\n // we pass remove func back to the caller, so call can tell us when they\n // are finished, and then we remove the listener from the drag source\n const finishedWithResizeFunc = () => this.dragService.removeDragSource(dragSource);\n return finishedWithResizeFunc;\n }\n onDragStart(params, mouseEvent) {\n this.dragStartX = mouseEvent.clientX;\n this.setResizeIcons();\n const shiftKey = mouseEvent instanceof MouseEvent && mouseEvent.shiftKey === true;\n params.onResizeStart(shiftKey);\n }\n setResizeIcons() {\n const ctrl = this.ctrlsService.getGridCtrl();\n // change the body cursor, so when drag moves out of the drag bar, the cursor is still 'resize' (or 'move'\n ctrl.setResizeCursor(true);\n // we don't want text selection outside the grid (otherwise it looks weird as text highlights when we move)\n ctrl.disableUserSelect(true);\n }\n onDragStop(params, mouseEvent) {\n params.onResizeEnd(this.resizeAmount);\n this.resetIcons();\n }\n resetIcons() {\n const ctrl = this.ctrlsService.getGridCtrl();\n ctrl.setResizeCursor(false);\n ctrl.disableUserSelect(false);\n }\n onDragging(params, mouseEvent) {\n this.resizeAmount = mouseEvent.clientX - this.dragStartX;\n params.onResizing(this.resizeAmount);\n }\n};\n__decorate([\n Autowired('dragService')\n], HorizontalResizeService.prototype, \"dragService\", void 0);\n__decorate([\n Autowired('ctrlsService')\n], HorizontalResizeService.prototype, \"ctrlsService\", void 0);\nHorizontalResizeService = __decorate([\n Bean('horizontalResizeService')\n], HorizontalResizeService);\nexport { HorizontalResizeService };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Autowired, Bean } from '../../../context/context.mjs';\nimport { BeanStub } from \"../../../context/beanStub.mjs\";\nimport { isVisible } from '../../../utils/dom.mjs';\nimport { KeyCode } from '../../../constants/keyCode.mjs';\nimport { setAriaRole } from '../../../utils/aria.mjs';\nimport { Events } from '../../../eventKeys.mjs';\nlet StandardMenuFactory = class StandardMenuFactory extends BeanStub {\n hideActiveMenu() {\n if (this.hidePopup) {\n this.hidePopup();\n }\n }\n showMenuAfterMouseEvent(column, mouseEvent, containerType) {\n this.showPopup(column, eMenu => {\n this.popupService.positionPopupUnderMouseEvent({\n column,\n type: containerType,\n mouseEvent,\n ePopup: eMenu\n });\n }, containerType, mouseEvent.target, this.menuService.isLegacyMenuEnabled());\n }\n showMenuAfterButtonClick(column, eventSource, containerType) {\n let multiplier = -1;\n let alignSide = 'left';\n const isLegacyMenuEnabled = this.menuService.isLegacyMenuEnabled();\n if (!isLegacyMenuEnabled && this.gridOptionsService.get('enableRtl')) {\n multiplier = 1;\n alignSide = 'right';\n }\n let nudgeX = isLegacyMenuEnabled ? undefined : (4 * multiplier);\n let nudgeY = isLegacyMenuEnabled ? undefined : 4;\n this.showPopup(column, eMenu => {\n this.popupService.positionPopupByComponent({\n type: containerType,\n eventSource,\n ePopup: eMenu,\n nudgeX,\n nudgeY,\n alignSide,\n keepWithinBounds: true,\n position: 'under',\n column,\n });\n }, containerType, eventSource, isLegacyMenuEnabled);\n }\n showPopup(column, positionCallback, containerType, eventSource, isLegacyMenuEnabled) {\n const filterWrapper = column ? this.filterManager.getOrCreateFilterWrapper(column, 'COLUMN_MENU') : undefined;\n if (!filterWrapper || !column) {\n throw new Error('AG Grid - unable to show popup filter, filter instantiation failed');\n }\n const eMenu = document.createElement('div');\n setAriaRole(eMenu, 'presentation');\n eMenu.classList.add('ag-menu');\n if (!isLegacyMenuEnabled) {\n eMenu.classList.add('ag-filter-menu');\n }\n this.tabListener = this.addManagedListener(eMenu, 'keydown', (e) => this.trapFocusWithin(e, eMenu));\n filterWrapper.guiPromise.then(gui => eMenu.appendChild(gui));\n let hidePopup;\n const afterGuiDetached = () => { var _a; return (_a = filterWrapper.filterPromise) === null || _a === void 0 ? void 0 : _a.then(filter => { var _a; return (_a = filter === null || filter === void 0 ? void 0 : filter.afterGuiDetached) === null || _a === void 0 ? void 0 : _a.call(filter); }); };\n const anchorToElement = this.menuService.isColumnMenuAnchoringEnabled() ? (eventSource !== null && eventSource !== void 0 ? eventSource : this.ctrlsService.getGridBodyCtrl().getGui()) : undefined;\n const closedCallback = (e) => {\n column.setMenuVisible(false, 'contextMenu');\n const isKeyboardEvent = e instanceof KeyboardEvent;\n if (this.tabListener) {\n this.tabListener = this.tabListener();\n }\n if (isKeyboardEvent && eventSource && isVisible(eventSource)) {\n const focusableEl = this.focusService.findTabbableParent(eventSource);\n if (focusableEl) {\n focusableEl.focus();\n }\n }\n afterGuiDetached();\n this.dispatchVisibleChangedEvent(false, containerType, column);\n };\n const translate = this.localeService.getLocaleTextFunc();\n const ariaLabel = isLegacyMenuEnabled && containerType !== 'columnFilter'\n ? translate('ariaLabelColumnMenu', 'Column Menu')\n : translate('ariaLabelColumnFilter', 'Column Filter');\n const addPopupRes = this.popupService.addPopup({\n modal: true,\n eChild: eMenu,\n closeOnEsc: true,\n closedCallback,\n positionCallback: () => positionCallback(eMenu),\n anchorToElement,\n ariaLabel\n });\n if (addPopupRes) {\n this.hidePopup = hidePopup = addPopupRes.hideFunc;\n }\n filterWrapper.filterPromise.then(filter => {\n // need to make sure the filter is present before positioning, as only\n // after filter it is visible can we find out what the width of it is\n positionCallback(eMenu);\n if (filter.afterGuiAttached) {\n filter.afterGuiAttached({ container: containerType, hidePopup });\n }\n });\n column.setMenuVisible(true, 'contextMenu');\n this.dispatchVisibleChangedEvent(true, containerType, column);\n }\n trapFocusWithin(e, menu) {\n if (e.key !== KeyCode.TAB ||\n e.defaultPrevented ||\n this.focusService.findNextFocusableElement(menu, false, e.shiftKey)) {\n return;\n }\n e.preventDefault();\n this.focusService.focusInto(menu, e.shiftKey);\n }\n dispatchVisibleChangedEvent(visible, containerType, column) {\n const displayedEvent = {\n type: Events.EVENT_COLUMN_MENU_VISIBLE_CHANGED,\n visible,\n switchingTab: false,\n key: containerType,\n column: column !== null && column !== void 0 ? column : null\n };\n this.eventService.dispatchEvent(displayedEvent);\n }\n isMenuEnabled(column) {\n var _a;\n // for standard, we show menu if filter is enabled, and the menu is not suppressed by passing an empty array\n return column.isFilterAllowed() && ((_a = column.getColDef().menuTabs) !== null && _a !== void 0 ? _a : ['filterMenuTab']).includes('filterMenuTab');\n }\n showMenuAfterContextMenuEvent() {\n // not supported in standard menu\n }\n};\n__decorate([\n Autowired('filterManager')\n], StandardMenuFactory.prototype, \"filterManager\", void 0);\n__decorate([\n Autowired('popupService')\n], StandardMenuFactory.prototype, \"popupService\", void 0);\n__decorate([\n Autowired('focusService')\n], StandardMenuFactory.prototype, \"focusService\", void 0);\n__decorate([\n Autowired('ctrlsService')\n], StandardMenuFactory.prototype, \"ctrlsService\", void 0);\n__decorate([\n Autowired('menuService')\n], StandardMenuFactory.prototype, \"menuService\", void 0);\nStandardMenuFactory = __decorate([\n Bean('filterMenuFactory')\n], StandardMenuFactory);\nexport { StandardMenuFactory };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { BeanStub } from \"../context/beanStub.mjs\";\nimport { Autowired, PostConstruct } from \"../context/context.mjs\";\nimport { ManagedFocusFeature } from \"./managedFocusFeature.mjs\";\nexport var TabGuardClassNames;\n(function (TabGuardClassNames) {\n TabGuardClassNames[\"TAB_GUARD\"] = \"ag-tab-guard\";\n TabGuardClassNames[\"TAB_GUARD_TOP\"] = \"ag-tab-guard-top\";\n TabGuardClassNames[\"TAB_GUARD_BOTTOM\"] = \"ag-tab-guard-bottom\";\n})(TabGuardClassNames || (TabGuardClassNames = {}));\n;\nexport class TabGuardCtrl extends BeanStub {\n constructor(params) {\n super();\n this.skipTabGuardFocus = false;\n this.forcingFocusOut = false;\n const { comp, eTopGuard, eBottomGuard, focusTrapActive, forceFocusOutWhenTabGuardsAreEmpty, focusInnerElement, onFocusIn, onFocusOut, shouldStopEventPropagation, onTabKeyDown, handleKeyDown, eFocusableElement } = params;\n this.comp = comp;\n this.eTopGuard = eTopGuard;\n this.eBottomGuard = eBottomGuard;\n this.providedFocusInnerElement = focusInnerElement;\n this.eFocusableElement = eFocusableElement;\n this.focusTrapActive = !!focusTrapActive;\n this.forceFocusOutWhenTabGuardsAreEmpty = !!forceFocusOutWhenTabGuardsAreEmpty;\n this.providedFocusIn = onFocusIn;\n this.providedFocusOut = onFocusOut;\n this.providedShouldStopEventPropagation = shouldStopEventPropagation;\n this.providedOnTabKeyDown = onTabKeyDown;\n this.providedHandleKeyDown = handleKeyDown;\n }\n postConstruct() {\n this.createManagedBean(new ManagedFocusFeature(this.eFocusableElement, {\n shouldStopEventPropagation: () => this.shouldStopEventPropagation(),\n onTabKeyDown: e => this.onTabKeyDown(e),\n handleKeyDown: e => this.handleKeyDown(e),\n onFocusIn: e => this.onFocusIn(e),\n onFocusOut: e => this.onFocusOut(e)\n }));\n this.activateTabGuards();\n [this.eTopGuard, this.eBottomGuard].forEach(guard => this.addManagedListener(guard, 'focus', this.onFocus.bind(this)));\n }\n handleKeyDown(e) {\n if (this.providedHandleKeyDown) {\n this.providedHandleKeyDown(e);\n }\n }\n tabGuardsAreActive() {\n return !!this.eTopGuard && this.eTopGuard.hasAttribute('tabIndex');\n }\n shouldStopEventPropagation() {\n if (this.providedShouldStopEventPropagation) {\n return this.providedShouldStopEventPropagation();\n }\n return false;\n }\n activateTabGuards() {\n // Do not activate tabs while focus is being forced out\n if (this.forcingFocusOut) {\n return;\n }\n const tabIndex = this.gridOptionsService.get('tabIndex');\n this.comp.setTabIndex(tabIndex.toString());\n }\n deactivateTabGuards() {\n this.comp.setTabIndex();\n }\n onFocus(e) {\n if (this.skipTabGuardFocus) {\n this.skipTabGuardFocus = false;\n return;\n }\n // when there are no focusable items within the TabGuard, focus gets stuck\n // in the TabGuard itself and has nowhere to go, so we need to manually find\n // the closest element to focus by calling `forceFocusOutWhenTabGuardAreEmpty`.\n if (this.forceFocusOutWhenTabGuardsAreEmpty) {\n const isEmpty = this.focusService.findFocusableElements(this.eFocusableElement, '.ag-tab-guard').length === 0;\n if (isEmpty) {\n this.findNextElementOutsideAndFocus(e.target === this.eBottomGuard);\n return;\n }\n }\n const fromBottom = e.target === this.eBottomGuard;\n if (this.providedFocusInnerElement) {\n this.providedFocusInnerElement(fromBottom);\n }\n else {\n this.focusInnerElement(fromBottom);\n }\n }\n findNextElementOutsideAndFocus(up) {\n const eDocument = this.gridOptionsService.getDocument();\n const focusableEls = this.focusService.findFocusableElements(eDocument.body, null, true);\n const index = focusableEls.indexOf(up ? this.eTopGuard : this.eBottomGuard);\n if (index === -1) {\n return;\n }\n let start;\n let end;\n if (up) {\n start = 0;\n end = index;\n }\n else {\n start = index + 1;\n end = focusableEls.length;\n }\n const focusableRange = focusableEls.slice(start, end);\n const targetTabIndex = this.gridOptionsService.get('tabIndex');\n focusableRange.sort((a, b) => {\n const indexA = parseInt(a.getAttribute('tabindex') || '0');\n const indexB = parseInt(b.getAttribute('tabindex') || '0');\n if (indexB === targetTabIndex) {\n return 1;\n }\n if (indexA === targetTabIndex) {\n return -1;\n }\n if (indexA === 0) {\n return 1;\n }\n if (indexB === 0) {\n return -1;\n }\n return indexA - indexB;\n });\n focusableRange[up ? (focusableRange.length - 1) : 0].focus();\n }\n onFocusIn(e) {\n if (this.focusTrapActive) {\n return;\n }\n if (this.providedFocusIn) {\n this.providedFocusIn(e);\n }\n this.deactivateTabGuards();\n }\n onFocusOut(e) {\n if (this.focusTrapActive) {\n return;\n }\n if (this.providedFocusOut) {\n this.providedFocusOut(e);\n }\n if (!this.eFocusableElement.contains(e.relatedTarget)) {\n this.activateTabGuards();\n }\n }\n onTabKeyDown(e) {\n if (this.providedOnTabKeyDown) {\n this.providedOnTabKeyDown(e);\n return;\n }\n if (this.focusTrapActive) {\n return;\n }\n if (e.defaultPrevented) {\n return;\n }\n const tabGuardsAreActive = this.tabGuardsAreActive();\n if (tabGuardsAreActive) {\n this.deactivateTabGuards();\n }\n const nextRoot = this.getNextFocusableElement(e.shiftKey);\n if (tabGuardsAreActive) {\n // ensure the tab guards are only re-instated once the event has finished processing, to avoid the browser\n // tabbing to the tab guard from inside the component\n setTimeout(() => this.activateTabGuards(), 0);\n }\n if (!nextRoot) {\n return;\n }\n nextRoot.focus();\n e.preventDefault();\n }\n focusInnerElement(fromBottom = false) {\n const focusable = this.focusService.findFocusableElements(this.eFocusableElement);\n if (this.tabGuardsAreActive()) {\n // remove tab guards from this component from list of focusable elements\n focusable.splice(0, 1);\n focusable.splice(focusable.length - 1, 1);\n }\n if (!focusable.length) {\n return;\n }\n focusable[fromBottom ? focusable.length - 1 : 0].focus({ preventScroll: true });\n }\n getNextFocusableElement(backwards) {\n return this.focusService.findNextFocusableElement(this.eFocusableElement, false, backwards);\n }\n forceFocusOutOfContainer(up = false) {\n // avoid multiple calls to `forceFocusOutOfContainer`\n if (this.forcingFocusOut) {\n return;\n }\n const tabGuardToFocus = up ? this.eTopGuard : this.eBottomGuard;\n this.activateTabGuards();\n this.skipTabGuardFocus = true;\n this.forcingFocusOut = true;\n // this focus will set `this.skipTabGuardFocus` to false;\n tabGuardToFocus.focus();\n window.setTimeout(() => {\n this.forcingFocusOut = false;\n this.activateTabGuards();\n });\n }\n isTabGuard(element) {\n return element === this.eTopGuard || element === this.eBottomGuard;\n }\n}\n__decorate([\n Autowired('focusService')\n], TabGuardCtrl.prototype, \"focusService\", void 0);\n__decorate([\n PostConstruct\n], TabGuardCtrl.prototype, \"postConstruct\", null);\n","import { Component } from \"./component.mjs\";\nimport { isNodeOrElement, clearElement } from \"../utils/dom.mjs\";\nimport { TabGuardCtrl, TabGuardClassNames } from \"./tabGuardCtrl.mjs\";\nimport { setAriaRole } from \"../utils/aria.mjs\";\nexport class TabGuardComp extends Component {\n initialiseTabGuard(params) {\n this.eTopGuard = this.createTabGuard('top');\n this.eBottomGuard = this.createTabGuard('bottom');\n this.eFocusableElement = this.getFocusableElement();\n const tabGuards = [this.eTopGuard, this.eBottomGuard];\n const compProxy = {\n setTabIndex: tabIndex => {\n tabGuards.forEach(tabGuard => tabIndex != null ? tabGuard.setAttribute('tabindex', tabIndex) : tabGuard.removeAttribute('tabindex'));\n }\n };\n this.addTabGuards(this.eTopGuard, this.eBottomGuard);\n this.tabGuardCtrl = this.createManagedBean(new TabGuardCtrl({\n comp: compProxy,\n focusTrapActive: !!params.focusTrapActive,\n eTopGuard: this.eTopGuard,\n eBottomGuard: this.eBottomGuard,\n eFocusableElement: this.eFocusableElement,\n onFocusIn: params.onFocusIn,\n onFocusOut: params.onFocusOut,\n focusInnerElement: params.focusInnerElement,\n handleKeyDown: params.handleKeyDown,\n onTabKeyDown: params.onTabKeyDown,\n shouldStopEventPropagation: params.shouldStopEventPropagation,\n forceFocusOutWhenTabGuardsAreEmpty: params.forceFocusOutWhenTabGuardsAreEmpty\n }));\n }\n createTabGuard(side) {\n const tabGuard = document.createElement('div');\n const cls = side === 'top' ? TabGuardClassNames.TAB_GUARD_TOP : TabGuardClassNames.TAB_GUARD_BOTTOM;\n tabGuard.classList.add(TabGuardClassNames.TAB_GUARD, cls);\n setAriaRole(tabGuard, 'presentation');\n return tabGuard;\n }\n addTabGuards(topTabGuard, bottomTabGuard) {\n this.eFocusableElement.insertAdjacentElement('afterbegin', topTabGuard);\n this.eFocusableElement.insertAdjacentElement('beforeend', bottomTabGuard);\n }\n removeAllChildrenExceptTabGuards() {\n const tabGuards = [this.eTopGuard, this.eBottomGuard];\n clearElement(this.getFocusableElement());\n this.addTabGuards(...tabGuards);\n }\n forceFocusOutOfContainer(up = false) {\n this.tabGuardCtrl.forceFocusOutOfContainer(up);\n }\n appendChild(newChild, container) {\n if (!isNodeOrElement(newChild)) {\n newChild = newChild.getGui();\n }\n const { eBottomGuard: bottomTabGuard } = this;\n if (bottomTabGuard) {\n bottomTabGuard.insertAdjacentElement('beforebegin', newChild);\n }\n else {\n super.appendChild(newChild, container);\n }\n }\n}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { RefSelector } from '../widgets/componentAnnotations.mjs';\nimport { clearElement } from '../utils/dom.mjs';\nimport { setAriaLabel, setAriaRole } from '../utils/aria.mjs';\nimport { KeyCode } from '../constants/keyCode.mjs';\nimport { PostConstruct, Autowired } from '../context/context.mjs';\nimport { TabGuardComp } from '../widgets/tabGuardComp.mjs';\nexport class TabbedLayout extends TabGuardComp {\n constructor(params) {\n super(TabbedLayout.getTemplate(params.cssClass));\n this.items = [];\n this.tabbedItemScrollMap = new Map();\n this.params = params;\n if (params.items) {\n params.items.forEach(item => this.addItem(item));\n }\n }\n postConstruct() {\n this.initialiseTabGuard({\n onTabKeyDown: this.onTabKeyDown.bind(this),\n handleKeyDown: this.handleKeyDown.bind(this),\n focusInnerElement: this.focusInnerElement.bind(this),\n focusTrapActive: true\n });\n this.addDestroyFunc(() => { var _a, _b, _c; return (_c = (_b = (_a = this.activeItem) === null || _a === void 0 ? void 0 : _a.tabbedItem) === null || _b === void 0 ? void 0 : _b.afterDetachedCallback) === null || _c === void 0 ? void 0 : _c.call(_b); });\n }\n static getTemplate(cssClass) {\n return /* html */ `
\n
\n
\n
`;\n }\n handleKeyDown(e) {\n const eDocument = this.gridOptionsService.getDocument();\n switch (e.key) {\n case KeyCode.RIGHT:\n case KeyCode.LEFT:\n if (!this.eHeader.contains(eDocument.activeElement)) {\n return;\n }\n const isRightKey = e.key === KeyCode.RIGHT;\n const isRtl = this.gridOptionsService.get('enableRtl');\n const currentPosition = this.items.indexOf(this.activeItem);\n const nextPosition = isRightKey !== isRtl ? Math.min(currentPosition + 1, this.items.length - 1) : Math.max(currentPosition - 1, 0);\n if (currentPosition === nextPosition) {\n return;\n }\n e.preventDefault();\n const nextItem = this.items[nextPosition];\n this.showItemWrapper(nextItem);\n nextItem.eHeaderButton.focus();\n break;\n case KeyCode.UP:\n case KeyCode.DOWN:\n e.stopPropagation();\n break;\n }\n }\n onTabKeyDown(e) {\n if (e.defaultPrevented) {\n return;\n }\n const { focusService, eHeader, eBody, activeItem } = this;\n const eDocument = this.gridOptionsService.getDocument();\n const activeElement = eDocument.activeElement;\n const target = e.target;\n e.preventDefault();\n if (eHeader.contains(activeElement)) {\n // focus is in header, move into body of popup\n this.focusBody(e.shiftKey);\n return;\n }\n let nextEl = null;\n if (focusService.isTargetUnderManagedComponent(eBody, target)) {\n if (e.shiftKey) {\n nextEl = this.focusService.findFocusableElementBeforeTabGuard(eBody, target);\n }\n if (!nextEl) {\n nextEl = activeItem.eHeaderButton;\n }\n }\n if (!nextEl && eBody.contains(activeElement)) {\n nextEl = focusService.findNextFocusableElement(eBody, false, e.shiftKey);\n if (!nextEl) {\n this.focusHeader();\n }\n }\n if (nextEl) {\n nextEl.focus();\n }\n }\n focusInnerElement(fromBottom) {\n if (fromBottom) {\n this.focusHeader();\n }\n else {\n this.focusBody(true);\n }\n }\n focusHeader() {\n this.activeItem.eHeaderButton.focus();\n }\n focusBody(fromBottom) {\n this.focusService.focusInto(this.eBody, fromBottom);\n }\n setAfterAttachedParams(params) {\n this.afterAttachedParams = params;\n }\n showFirstItem() {\n if (this.items.length > 0) {\n this.showItemWrapper(this.items[0]);\n }\n }\n addItem(item) {\n const eHeaderButton = document.createElement('span');\n setAriaRole(eHeaderButton, 'tab');\n eHeaderButton.setAttribute('tabindex', '-1');\n eHeaderButton.appendChild(item.title);\n eHeaderButton.classList.add('ag-tab');\n this.eHeader.appendChild(eHeaderButton);\n setAriaLabel(eHeaderButton, item.titleLabel);\n const wrapper = {\n tabbedItem: item,\n eHeaderButton: eHeaderButton\n };\n this.items.push(wrapper);\n eHeaderButton.addEventListener('click', this.showItemWrapper.bind(this, wrapper));\n }\n showItem(tabbedItem) {\n const itemWrapper = this.items.find(wrapper => wrapper.tabbedItem === tabbedItem);\n if (itemWrapper) {\n this.showItemWrapper(itemWrapper);\n }\n }\n showItemWrapper(wrapper) {\n var _a, _b, _c, _d, _e, _f;\n const { tabbedItem, eHeaderButton } = wrapper;\n (_b = (_a = this.params).onItemClicked) === null || _b === void 0 ? void 0 : _b.call(_a, { item: tabbedItem });\n if (this.activeItem === wrapper) {\n (_d = (_c = this.params).onActiveItemClicked) === null || _d === void 0 ? void 0 : _d.call(_c);\n return;\n }\n if (this.lastScrollListener) {\n this.lastScrollListener = this.lastScrollListener();\n }\n clearElement(this.eBody);\n tabbedItem.bodyPromise.then((body) => {\n this.eBody.appendChild(body);\n const onlyUnmanaged = !this.focusService.isKeyboardMode();\n this.focusService.focusInto(this.eBody, false, onlyUnmanaged);\n if (tabbedItem.afterAttachedCallback) {\n tabbedItem.afterAttachedCallback(this.afterAttachedParams);\n }\n if (this.params.keepScrollPosition) {\n const scrollableContainer = (tabbedItem.getScrollableContainer && tabbedItem.getScrollableContainer()) || body;\n this.lastScrollListener = this.addManagedListener(scrollableContainer, 'scroll', () => {\n this.tabbedItemScrollMap.set(tabbedItem.name, scrollableContainer.scrollTop);\n });\n const scrollPosition = this.tabbedItemScrollMap.get(tabbedItem.name);\n if (scrollPosition !== undefined) {\n // Safari needs a small timeout or it will fire a scroll event to position 0\n setTimeout(() => {\n scrollableContainer.scrollTop = scrollPosition;\n }, 0);\n }\n }\n });\n if (this.activeItem) {\n this.activeItem.eHeaderButton.classList.remove('ag-tab-selected');\n (_f = (_e = this.activeItem.tabbedItem).afterDetachedCallback) === null || _f === void 0 ? void 0 : _f.call(_e);\n }\n eHeaderButton.classList.add('ag-tab-selected');\n this.activeItem = wrapper;\n }\n}\n__decorate([\n Autowired('focusService')\n], TabbedLayout.prototype, \"focusService\", void 0);\n__decorate([\n RefSelector('eHeader')\n], TabbedLayout.prototype, \"eHeader\", void 0);\n__decorate([\n RefSelector('eBody')\n], TabbedLayout.prototype, \"eBody\", void 0);\n__decorate([\n PostConstruct\n], TabbedLayout.prototype, \"postConstruct\", null);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Bean } from \"../context/context.mjs\";\nimport { BeanStub } from \"../context/beanStub.mjs\";\nconst DEBOUNCE_DELAY = 50;\nlet ResizeObserverService = class ResizeObserverService extends BeanStub {\n constructor() {\n super(...arguments);\n this.polyfillFunctions = [];\n }\n observeResize(element, callback) {\n const win = this.gridOptionsService.getWindow();\n const useBrowserResizeObserver = () => {\n const resizeObserver = new win.ResizeObserver(callback);\n resizeObserver.observe(element);\n return () => resizeObserver.disconnect();\n };\n const usePolyfill = () => {\n var _a, _b;\n // initialise to the current width and height, so first call will have no changes\n let widthLastTime = (_a = element === null || element === void 0 ? void 0 : element.clientWidth) !== null && _a !== void 0 ? _a : 0;\n let heightLastTime = (_b = element === null || element === void 0 ? void 0 : element.clientHeight) !== null && _b !== void 0 ? _b : 0;\n // when finished, this gets turned to false.\n let running = true;\n const periodicallyCheckWidthAndHeight = () => {\n var _a, _b;\n if (running) {\n const newWidth = (_a = element === null || element === void 0 ? void 0 : element.clientWidth) !== null && _a !== void 0 ? _a : 0;\n const newHeight = (_b = element === null || element === void 0 ? void 0 : element.clientHeight) !== null && _b !== void 0 ? _b : 0;\n const changed = newWidth !== widthLastTime || newHeight !== heightLastTime;\n if (changed) {\n widthLastTime = newWidth;\n heightLastTime = newHeight;\n callback();\n }\n this.doNextPolyfillTurn(periodicallyCheckWidthAndHeight);\n }\n };\n periodicallyCheckWidthAndHeight();\n // the callback function we return sets running to false\n return () => running = false;\n };\n const suppressResize = this.gridOptionsService.get('suppressBrowserResizeObserver');\n const resizeObserverExists = !!win.ResizeObserver;\n if (resizeObserverExists && !suppressResize) {\n return useBrowserResizeObserver();\n }\n return this.getFrameworkOverrides().wrapIncoming(() => usePolyfill(), 'resize-observer');\n }\n doNextPolyfillTurn(func) {\n this.polyfillFunctions.push(func);\n this.schedulePolyfill();\n }\n schedulePolyfill() {\n if (this.polyfillScheduled) {\n return;\n }\n const executeAllFuncs = () => {\n const funcs = this.polyfillFunctions;\n // make sure set scheduled to false and clear clear array\n // before executing the funcs, as the funcs could add more funcs\n this.polyfillScheduled = false;\n this.polyfillFunctions = [];\n funcs.forEach(f => f());\n };\n this.polyfillScheduled = true;\n window.setTimeout(executeAllFuncs, DEBOUNCE_DELAY);\n }\n};\nResizeObserverService = __decorate([\n Bean('resizeObserverService')\n], ResizeObserverService);\nexport { ResizeObserverService };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Autowired, Bean, PostConstruct } from \"../context/context.mjs\";\nimport { BeanStub } from \"../context/beanStub.mjs\";\nlet AnimationFrameService = class AnimationFrameService extends BeanStub {\n constructor() {\n super(...arguments);\n // p1 and p2 are create tasks are to do with row and cell creation.\n // for them we want to execute according to row order, so we use\n // TaskItem so we know what index the item is for.\n this.createTasksP1 = { list: [], sorted: false }; // eg drawing back-ground of rows\n this.createTasksP2 = { list: [], sorted: false }; // eg cell renderers, adding hover functionality\n // destroy tasks are to do with row removal. they are done after row creation as the user will need to see new\n // rows first (as blank is scrolled into view), when we remove the old rows (no longer in view) is not as\n // important.\n this.destroyTasks = [];\n this.ticking = false;\n // we need to know direction of scroll, to build up rows in the direction of\n // the scroll. eg if user scrolls down, we extend the rows by building down.\n this.scrollGoingDown = true;\n this.lastPage = 0;\n this.lastScrollTop = 0;\n this.taskCount = 0;\n this.cancelledTasks = new Set();\n }\n setScrollTop(scrollTop) {\n const isPaginationActive = this.gridOptionsService.get('pagination');\n this.scrollGoingDown = scrollTop >= this.lastScrollTop;\n if (isPaginationActive && scrollTop === 0) {\n const currentPage = this.paginationProxy.getCurrentPage();\n if (currentPage !== this.lastPage) {\n this.lastPage = currentPage;\n this.scrollGoingDown = true;\n }\n }\n this.lastScrollTop = scrollTop;\n }\n init() {\n this.useAnimationFrame = !this.gridOptionsService.get('suppressAnimationFrame');\n }\n isOn() {\n return this.useAnimationFrame;\n }\n // this method is for our AG Grid sanity only - if animation frames are turned off,\n // then no place in the code should be looking to add any work to be done in animation\n // frames. this stops bugs - where some code is asking for a frame to be executed\n // when it should not.\n verifyAnimationFrameOn(methodName) {\n if (this.useAnimationFrame === false) {\n console.warn(`AG Grid: AnimationFrameService.${methodName} called but animation frames are off`);\n }\n }\n createTask(task, index, list) {\n this.verifyAnimationFrameOn(list);\n const taskItem = { task, index, createOrder: ++this.taskCount };\n this.addTaskToList(this[list], taskItem);\n this.schedule();\n }\n cancelTask(task) {\n this.cancelledTasks.add(task);\n }\n addTaskToList(taskList, task) {\n taskList.list.push(task);\n taskList.sorted = false;\n }\n sortTaskList(taskList) {\n if (taskList.sorted) {\n return;\n }\n const sortDirection = this.scrollGoingDown ? 1 : -1;\n // sort first by row index (taking into account scroll direction), then by\n // order of task creation (always ascending, so cells will render left-to-right)\n taskList.list.sort((a, b) => a.index !== b.index ? sortDirection * (b.index - a.index) : b.createOrder - a.createOrder);\n taskList.sorted = true;\n }\n addDestroyTask(task) {\n this.verifyAnimationFrameOn('createTasksP3');\n this.destroyTasks.push(task);\n this.schedule();\n }\n executeFrame(millis) {\n this.verifyAnimationFrameOn('executeFrame');\n const p1TaskList = this.createTasksP1;\n const p1Tasks = p1TaskList.list;\n const p2TaskList = this.createTasksP2;\n const p2Tasks = p2TaskList.list;\n const destroyTasks = this.destroyTasks;\n const frameStart = new Date().getTime();\n let duration = (new Date().getTime()) - frameStart;\n // 16ms is 60 fps\n const noMaxMillis = millis <= 0;\n const gridBodyCon = this.ctrlsService.getGridBodyCtrl();\n while (noMaxMillis || duration < millis) {\n const gridBodyDidSomething = gridBodyCon.getScrollFeature().scrollGridIfNeeded();\n if (!gridBodyDidSomething) {\n let task;\n if (p1Tasks.length) {\n this.sortTaskList(p1TaskList);\n task = p1Tasks.pop().task;\n }\n else if (p2Tasks.length) {\n this.sortTaskList(p2TaskList);\n task = p2Tasks.pop().task;\n }\n else if (destroyTasks.length) {\n task = destroyTasks.pop();\n }\n else {\n this.cancelledTasks.clear();\n break;\n }\n if (!this.cancelledTasks.has(task)) {\n task();\n }\n }\n duration = (new Date().getTime()) - frameStart;\n }\n if (p1Tasks.length || p2Tasks.length || destroyTasks.length) {\n this.requestFrame();\n }\n else {\n this.stopTicking();\n }\n }\n stopTicking() {\n this.ticking = false;\n }\n flushAllFrames() {\n if (!this.useAnimationFrame) {\n return;\n }\n this.executeFrame(-1);\n }\n schedule() {\n if (!this.useAnimationFrame) {\n return;\n }\n if (!this.ticking) {\n this.ticking = true;\n this.requestFrame();\n }\n }\n requestFrame() {\n // check for the existence of requestAnimationFrame, and if\n // it's missing, then we polyfill it with setTimeout()\n const callback = this.executeFrame.bind(this, 60);\n this.requestAnimationFrame(callback);\n }\n requestAnimationFrame(callback) {\n const win = this.gridOptionsService.getWindow();\n if (win.requestAnimationFrame) {\n win.requestAnimationFrame(callback);\n }\n else if (win.webkitRequestAnimationFrame) {\n win.webkitRequestAnimationFrame(callback);\n }\n else {\n win.setTimeout(callback, 0);\n }\n }\n isQueueEmpty() {\n return !this.ticking;\n }\n // a debounce utility used for parts of the app involved with rendering.\n // the advantage over normal debounce is the client can call flushAllFrames()\n // to make sure all rendering is complete. we don't wait any milliseconds,\n // as this is intended to batch calls in one VM turn.\n debounce(func) {\n let pending = false;\n return () => {\n if (!this.isOn()) {\n window.setTimeout(func, 0);\n return;\n }\n if (pending) {\n return;\n }\n pending = true;\n this.addDestroyTask(() => {\n pending = false;\n func();\n });\n };\n }\n};\n__decorate([\n Autowired('ctrlsService')\n], AnimationFrameService.prototype, \"ctrlsService\", void 0);\n__decorate([\n Autowired('paginationProxy')\n], AnimationFrameService.prototype, \"paginationProxy\", void 0);\n__decorate([\n PostConstruct\n], AnimationFrameService.prototype, \"init\", null);\nAnimationFrameService = __decorate([\n Bean('animationFrameService')\n], AnimationFrameService);\nexport { AnimationFrameService };\n","export var ClientSideRowModelSteps;\n(function (ClientSideRowModelSteps) {\n ClientSideRowModelSteps[\"EVERYTHING\"] = \"group\";\n ClientSideRowModelSteps[\"FILTER\"] = \"filter\";\n ClientSideRowModelSteps[\"SORT\"] = \"sort\";\n ClientSideRowModelSteps[\"MAP\"] = \"map\";\n ClientSideRowModelSteps[\"AGGREGATE\"] = \"aggregate\";\n ClientSideRowModelSteps[\"FILTER_AGGREGATES\"] = \"filter_aggregates\";\n ClientSideRowModelSteps[\"PIVOT\"] = \"pivot\";\n ClientSideRowModelSteps[\"NOTHING\"] = \"nothing\";\n})(ClientSideRowModelSteps || (ClientSideRowModelSteps = {}));\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Autowired, Bean, PostConstruct } from \"../context/context.mjs\";\nimport { BeanStub } from \"../context/beanStub.mjs\";\nimport { ClientSideRowModelSteps } from \"../interfaces/iClientSideRowModel.mjs\";\nlet ExpansionService = class ExpansionService extends BeanStub {\n postConstruct() {\n this.isClientSideRowModel = this.rowModel.getType() === 'clientSide';\n }\n expandRows(rowIds) {\n if (!this.isClientSideRowModel) {\n return;\n }\n const rowIdSet = new Set(rowIds);\n this.rowModel.forEachNode(node => {\n if (node.id && rowIdSet.has(node.id)) {\n node.expanded = true;\n }\n });\n this.onGroupExpandedOrCollapsed();\n }\n getExpandedRows() {\n const expandedRows = [];\n this.rowModel.forEachNode(({ expanded, id }) => {\n if (expanded && id) {\n expandedRows.push(id);\n }\n });\n return expandedRows;\n }\n expandAll(value) {\n if (!this.isClientSideRowModel) {\n return;\n }\n this.rowModel.expandOrCollapseAll(value);\n }\n setRowNodeExpanded(rowNode, expanded, expandParents) {\n if (rowNode) {\n // expand all parents recursively, except root node.\n if (expandParents && rowNode.parent && rowNode.parent.level !== -1) {\n this.setRowNodeExpanded(rowNode.parent, expanded, expandParents);\n }\n rowNode.setExpanded(expanded);\n }\n }\n onGroupExpandedOrCollapsed() {\n if (!this.isClientSideRowModel) {\n return;\n }\n // we don't really want the user calling this if only one rowNode was expanded, instead they should be\n // calling rowNode.setExpanded(boolean) - this way we do a 'keepRenderedRows=false' so that the whole\n // grid gets refreshed again - otherwise the row with the rowNodes that were changed won't get updated,\n // and thus the expand icon in the group cell won't get 'opened' or 'closed'.\n this.rowModel.refreshModel({ step: ClientSideRowModelSteps.MAP });\n }\n};\n__decorate([\n Autowired('rowModel')\n], ExpansionService.prototype, \"rowModel\", void 0);\n__decorate([\n PostConstruct\n], ExpansionService.prototype, \"postConstruct\", null);\nExpansionService = __decorate([\n Bean('expansionService')\n], ExpansionService);\nexport { ExpansionService };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { BeanStub } from \"../context/beanStub.mjs\";\nimport { Autowired, Bean, Optional, PostConstruct } from \"../context/context.mjs\";\nimport { isIOSUserAgent } from \"../utils/browser.mjs\";\nimport { warnOnce } from \"../utils/function.mjs\";\nlet MenuService = class MenuService extends BeanStub {\n postConstruct() {\n var _a;\n this.activeMenuFactory = (_a = this.enterpriseMenuFactory) !== null && _a !== void 0 ? _a : this.filterMenuFactory;\n }\n showColumnMenu(params) {\n this.showColumnMenuCommon(this.activeMenuFactory, params, 'columnMenu');\n }\n showFilterMenu(params) {\n const menuFactory = this.enterpriseMenuFactory && this.isLegacyMenuEnabled()\n ? this.enterpriseMenuFactory\n : this.filterMenuFactory;\n this.showColumnMenuCommon(menuFactory, params, params.containerType, true);\n }\n showHeaderContextMenu(column, mouseEvent, touchEvent) {\n this.activeMenuFactory.showMenuAfterContextMenuEvent(column, mouseEvent, touchEvent);\n }\n showContextMenu(params) {\n var _a, _b, _c;\n const { column, anchorToElement, rowNode, value } = params;\n (_a = this.contextMenuFactory) === null || _a === void 0 ? void 0 : _a.onContextMenu((_b = params.mouseEvent) !== null && _b !== void 0 ? _b : null, (_c = params.touchEvent) !== null && _c !== void 0 ? _c : null, rowNode !== null && rowNode !== void 0 ? rowNode : null, column !== null && column !== void 0 ? column : null, value, anchorToElement);\n }\n showColumnChooser(params) {\n var _a;\n (_a = this.columnChooserFactory) === null || _a === void 0 ? void 0 : _a.showColumnChooser(params);\n }\n hidePopupMenu() {\n var _a;\n // hide the context menu if in enterprise\n (_a = this.contextMenuFactory) === null || _a === void 0 ? void 0 : _a.hideActiveMenu();\n // and hide the column menu always\n this.activeMenuFactory.hideActiveMenu();\n }\n hideColumnChooser() {\n var _a;\n (_a = this.columnChooserFactory) === null || _a === void 0 ? void 0 : _a.hideActiveColumnChooser();\n }\n isColumnMenuInHeaderEnabled(column) {\n const { suppressMenu, suppressHeaderMenuButton } = column.getColDef();\n const isSuppressMenuButton = suppressHeaderMenuButton !== null && suppressHeaderMenuButton !== void 0 ? suppressHeaderMenuButton : suppressMenu;\n return !isSuppressMenuButton && this.activeMenuFactory.isMenuEnabled(column) && (this.isLegacyMenuEnabled() || !!this.enterpriseMenuFactory);\n }\n isFilterMenuInHeaderEnabled(column) {\n return !column.getColDef().suppressHeaderFilterButton && this.filterManager.isFilterAllowed(column);\n }\n isHeaderContextMenuEnabled(column) {\n return !(column === null || column === void 0 ? void 0 : column.getColDef().suppressHeaderContextMenu) && this.getColumnMenuType() === 'new';\n }\n isHeaderMenuButtonAlwaysShowEnabled() {\n return this.isSuppressMenuHide();\n }\n isHeaderMenuButtonEnabled() {\n // we don't show the menu if on an iPad/iPhone, as the user cannot have a pointer device/\n // However if suppressMenuHide is set to true the menu will be displayed alwasys, so it's ok\n // to show it on iPad in this case (as hover isn't needed). If suppressMenuHide\n // is false (default) user will need to use longpress to display the menu.\n const menuHides = !this.isSuppressMenuHide();\n const onIpadAndMenuHides = isIOSUserAgent() && menuHides;\n return !onIpadAndMenuHides;\n }\n isHeaderFilterButtonEnabled(column) {\n return this.isFilterMenuInHeaderEnabled(column) && !this.isLegacyMenuEnabled() && !this.isFloatingFilterButtonDisplayed(column);\n }\n isFilterMenuItemEnabled(column) {\n return this.filterManager.isFilterAllowed(column) && !this.isLegacyMenuEnabled() &&\n !this.isFilterMenuInHeaderEnabled(column) && !this.isFloatingFilterButtonDisplayed(column);\n }\n isColumnMenuAnchoringEnabled() {\n return !this.isLegacyMenuEnabled();\n }\n areAdditionalColumnMenuItemsEnabled() {\n return this.getColumnMenuType() === 'new';\n }\n isLegacyMenuEnabled() {\n return this.getColumnMenuType() === 'legacy';\n }\n isFloatingFilterButtonEnabled(column) {\n var _a;\n const colDef = column.getColDef();\n const legacySuppressFilterButton = (_a = colDef.floatingFilterComponentParams) === null || _a === void 0 ? void 0 : _a.suppressFilterButton;\n if (legacySuppressFilterButton != null) {\n warnOnce(`As of v31.1, 'colDef.floatingFilterComponentParams.suppressFilterButton' is deprecated. Use 'colDef.suppressFloatingFilterButton' instead.`);\n }\n return colDef.suppressFloatingFilterButton == null ? !legacySuppressFilterButton : !colDef.suppressFloatingFilterButton;\n }\n getColumnMenuType() {\n var _a;\n return (_a = this.gridOptionsService.get('columnMenu')) !== null && _a !== void 0 ? _a : 'legacy';\n }\n isFloatingFilterButtonDisplayed(column) {\n return !!column.getColDef().floatingFilter && this.isFloatingFilterButtonEnabled(column);\n }\n isSuppressMenuHide() {\n const suppressMenuHide = this.gridOptionsService.get('suppressMenuHide');\n if (this.isLegacyMenuEnabled()) {\n return suppressMenuHide;\n }\n else {\n // default to true for new\n return this.gridOptionsService.exists('suppressMenuHide') ? suppressMenuHide : true;\n }\n }\n showColumnMenuCommon(menuFactory, params, containerType, filtersOnly) {\n const { column, positionBy } = params;\n if (positionBy === 'button') {\n const { buttonElement } = params;\n menuFactory.showMenuAfterButtonClick(column, buttonElement, containerType, filtersOnly);\n }\n else if (positionBy === 'mouse') {\n const { mouseEvent } = params;\n menuFactory.showMenuAfterMouseEvent(column, mouseEvent, containerType, filtersOnly);\n }\n else if (column) {\n // auto\n this.ctrlsService.getGridBodyCtrl().getScrollFeature().ensureColumnVisible(column, 'auto');\n // make sure we've finished scrolling into view before displaying the menu\n this.animationFrameService.requestAnimationFrame(() => {\n const headerCellCtrl = this.ctrlsService.getHeaderRowContainerCtrl(column.getPinned()).getHeaderCtrlForColumn(column);\n menuFactory.showMenuAfterButtonClick(column, headerCellCtrl.getAnchorElementForMenu(filtersOnly), containerType, true);\n });\n }\n }\n};\n__decorate([\n Optional('enterpriseMenuFactory')\n], MenuService.prototype, \"enterpriseMenuFactory\", void 0);\n__decorate([\n Autowired('filterMenuFactory')\n], MenuService.prototype, \"filterMenuFactory\", void 0);\n__decorate([\n Optional('contextMenuFactory')\n], MenuService.prototype, \"contextMenuFactory\", void 0);\n__decorate([\n Autowired('ctrlsService')\n], MenuService.prototype, \"ctrlsService\", void 0);\n__decorate([\n Autowired('animationFrameService')\n], MenuService.prototype, \"animationFrameService\", void 0);\n__decorate([\n Optional('columnChooserFactory')\n], MenuService.prototype, \"columnChooserFactory\", void 0);\n__decorate([\n Autowired('filterManager')\n], MenuService.prototype, \"filterManager\", void 0);\n__decorate([\n PostConstruct\n], MenuService.prototype, \"postConstruct\", null);\nMenuService = __decorate([\n Bean('menuService')\n], MenuService);\nexport { MenuService };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Autowired, Bean, PostConstruct } from \"../context/context.mjs\";\nimport { BeanStub } from \"../context/beanStub.mjs\";\nlet AutoWidthCalculator = class AutoWidthCalculator extends BeanStub {\n postConstruct() {\n this.ctrlsService.whenReady(p => {\n this.centerRowContainerCtrl = p.centerRowContainerCtrl;\n });\n }\n // this is the trick: we create a dummy container and clone all the cells\n // into the dummy, then check the dummy's width. then destroy the dummy\n // as we don't need it any more.\n // drawback: only the cells visible on the screen are considered\n getPreferredWidthForColumn(column, skipHeader) {\n const eHeaderCell = this.getHeaderCellForColumn(column);\n // cell isn't visible\n if (!eHeaderCell) {\n return -1;\n }\n const elements = this.rowRenderer.getAllCellsForColumn(column);\n if (!skipHeader) {\n // we only consider the lowest level cell, not the group cell. in 99% of the time, this\n // will be enough. if we consider groups, then it gets too complicated for what it's worth,\n // as the groups can span columns and this class only considers one column at a time.\n elements.push(eHeaderCell);\n }\n return this.addElementsToContainerAndGetWidth(elements);\n }\n getPreferredWidthForColumnGroup(columnGroup) {\n const eHeaderCell = this.getHeaderCellForColumn(columnGroup);\n if (!eHeaderCell) {\n return -1;\n }\n return this.addElementsToContainerAndGetWidth([eHeaderCell]);\n }\n addElementsToContainerAndGetWidth(elements) {\n // this element has to be a form, otherwise form elements within a cell\n // will be validated while being cloned. This can cause issues such as \n // radio buttons being reset and losing their values.\n const eDummyContainer = document.createElement('form');\n // position fixed, so it isn't restricted to the boundaries of the parent\n eDummyContainer.style.position = 'fixed';\n // we put the dummy into the body container, so it will inherit all the\n // css styles that the real cells are inheriting\n const eBodyContainer = this.centerRowContainerCtrl.getContainerElement();\n elements.forEach(el => this.cloneItemIntoDummy(el, eDummyContainer));\n // only append the dummyContainer to the DOM after it contains all the necessary items\n eBodyContainer.appendChild(eDummyContainer);\n // at this point, all the clones are lined up vertically with natural widths. the dummy\n // container will have a width wide enough just to fit the largest.\n const dummyContainerWidth = eDummyContainer.offsetWidth;\n // we are finished with the dummy container, so get rid of it\n eBodyContainer.removeChild(eDummyContainer);\n // we add padding as I found sometimes the gui still put '...' after some of the texts. so the\n // user can configure the grid to add a few more pixels after the calculated width\n const autoSizePadding = this.getAutoSizePadding();\n return dummyContainerWidth + autoSizePadding;\n }\n getAutoSizePadding() {\n return this.gridOptionsService.get('autoSizePadding');\n }\n getHeaderCellForColumn(column) {\n /* tslint:enable */\n let element = null;\n this.ctrlsService.getHeaderRowContainerCtrls().forEach(container => {\n const res = container.getHtmlElementForColumnHeader(column);\n if (res != null) {\n element = res;\n }\n });\n return element;\n }\n cloneItemIntoDummy(eCell, eDummyContainer) {\n // make a deep clone of the cell\n const eCellClone = eCell.cloneNode(true);\n // the original has a fixed width, we remove this to allow the natural width based on content\n eCellClone.style.width = '';\n // the original has position = absolute, we need to remove this so it's positioned normally\n eCellClone.style.position = 'static';\n eCellClone.style.left = '';\n // we put the cell into a containing div, as otherwise the cells would just line up\n // on the same line, standard flow layout, by putting them into divs, they are laid\n // out one per line\n const eCloneParent = document.createElement('div');\n const eCloneParentClassList = eCloneParent.classList;\n const isHeader = ['ag-header-cell', 'ag-header-group-cell'].some(cls => eCellClone.classList.contains(cls));\n if (isHeader) {\n eCloneParentClassList.add('ag-header', 'ag-header-row');\n eCloneParent.style.position = 'static';\n }\n else {\n eCloneParentClassList.add('ag-row');\n }\n // find parent using classes (headers have ag-header-cell, rows have ag-row), and copy classes from it.\n // if we didn't do this, things like ag-row-level-2 would be missing if present, which sets indents\n // onto group items.\n let pointer = eCell.parentElement;\n while (pointer) {\n const isRow = ['ag-header-row', 'ag-row'].some(cls => pointer.classList.contains(cls));\n if (isRow) {\n for (let i = 0; i < pointer.classList.length; i++) {\n const item = pointer.classList[i];\n // we skip ag-row-position-absolute, as this has structural CSS applied that stops the\n // element from fitting into it's parent, and we need the element to stretch the parent\n // as we are measuring the parents width\n if (item != 'ag-row-position-absolute') {\n eCloneParentClassList.add(item);\n }\n }\n break;\n }\n pointer = pointer.parentElement;\n }\n // the twig on the branch, the branch on the tree, the tree in the hole,\n // the hole in the bog, the bog in the clone, the clone in the parent,\n // the parent in the dummy, and the dummy down in the vall-e-ooo, OOOOOOOOO! Oh row the rattling bog....\n eCloneParent.appendChild(eCellClone);\n eDummyContainer.appendChild(eCloneParent);\n }\n};\n__decorate([\n Autowired('rowRenderer')\n], AutoWidthCalculator.prototype, \"rowRenderer\", void 0);\n__decorate([\n Autowired('ctrlsService')\n], AutoWidthCalculator.prototype, \"ctrlsService\", void 0);\n__decorate([\n Autowired('rowCssClassCalculator')\n], AutoWidthCalculator.prototype, \"rowCssClassCalculator\", void 0);\n__decorate([\n PostConstruct\n], AutoWidthCalculator.prototype, \"postConstruct\", null);\nAutoWidthCalculator = __decorate([\n Bean('autoWidthCalculator')\n], AutoWidthCalculator);\nexport { AutoWidthCalculator };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { BeanStub } from \"../../context/beanStub.mjs\";\nimport { Autowired, PostConstruct } from \"../../context/context.mjs\";\nimport { last } from \"../../utils/array.mjs\";\nexport class StickyRowFeature extends BeanStub {\n constructor(createRowCon, destroyRowCtrls) {\n super();\n this.createRowCon = createRowCon;\n this.destroyRowCtrls = destroyRowCtrls;\n this.stickyRowCtrls = [];\n this.containerHeight = 0;\n }\n postConstruct() {\n this.isClientSide = this.rowModel.getType() === 'clientSide';\n this.ctrlsService.whenReady(params => {\n this.gridBodyCtrl = params.gridBodyCtrl;\n });\n }\n getStickyRowCtrls() {\n return this.stickyRowCtrls;\n }\n checkStickyRows() {\n let height = 0;\n if (!this.gridOptionsService.isGroupRowsSticky()) {\n return this.refreshNodesAndContainerHeight([], height);\n }\n const stickyRows = [];\n const firstPixel = this.rowRenderer.getFirstVisibleVerticalPixel();\n const addStickyRow = (stickyRow) => {\n var _a, _b, _c;\n stickyRows.push(stickyRow);\n let lastChildBottom;\n if (this.isClientSide) {\n let lastAncestor = stickyRow;\n while (lastAncestor.isExpandable() && lastAncestor.expanded) {\n if (lastAncestor.master) {\n lastAncestor = lastAncestor.detailNode;\n }\n else if (lastAncestor.childrenAfterSort) {\n // Tree Data will have `childrenAfterSort` without any nodes, but\n // the current node will still be marked as expansible.\n if (lastAncestor.childrenAfterSort.length === 0) {\n break;\n }\n lastAncestor = last(lastAncestor.childrenAfterSort);\n }\n }\n lastChildBottom = lastAncestor.rowTop + lastAncestor.rowHeight;\n }\n // if the rowModel is `serverSide` as only `clientSide` and `serverSide` create this feature.\n else {\n if (stickyRow.master) {\n lastChildBottom = stickyRow.detailNode.rowTop + stickyRow.detailNode.rowHeight;\n }\n else {\n const storeBounds = (_a = stickyRow.childStore) === null || _a === void 0 ? void 0 : _a.getStoreBounds();\n lastChildBottom = ((_b = storeBounds === null || storeBounds === void 0 ? void 0 : storeBounds.heightPx) !== null && _b !== void 0 ? _b : 0) + ((_c = storeBounds === null || storeBounds === void 0 ? void 0 : storeBounds.topPx) !== null && _c !== void 0 ? _c : 0);\n }\n }\n const stickRowBottom = firstPixel + height + stickyRow.rowHeight;\n if (lastChildBottom < stickRowBottom) {\n stickyRow.stickyRowTop = height + (lastChildBottom - stickRowBottom);\n }\n else {\n stickyRow.stickyRowTop = height;\n }\n height = 0;\n stickyRows.forEach(rowNode => {\n const thisRowLastPx = rowNode.stickyRowTop + rowNode.rowHeight;\n if (height < thisRowLastPx) {\n height = thisRowLastPx;\n }\n });\n };\n let counter = 0;\n while (true) {\n const firstPixelAfterStickyRows = firstPixel + height;\n const firstIndex = this.rowModel.getRowIndexAtPixel(firstPixelAfterStickyRows);\n const firstRow = this.rowModel.getRow(firstIndex);\n if (firstRow == null) {\n break;\n }\n // only happens when pivoting, and we are showing root node\n if (firstRow.level < 0) {\n break;\n }\n // added logic to break out of the loop when the row calculation\n // changes while rows are becoming sticky (happens with auto height)\n if (counter++ === 100) {\n break;\n }\n const parents = [];\n let p = firstRow.parent;\n while (p.level >= 0) {\n parents.push(p);\n p = p.parent;\n }\n const firstMissingParent = parents.reverse().find(parent => stickyRows.indexOf(parent) < 0 && parent.displayed);\n if (firstMissingParent) {\n addStickyRow(firstMissingParent);\n continue;\n }\n // if first row is an open group, and practically shown, it needs\n // to be stuck\n if (firstRow.isExpandable() && firstRow.expanded && firstRow.rowTop < firstPixelAfterStickyRows) {\n addStickyRow(firstRow);\n continue;\n }\n break;\n }\n return this.refreshNodesAndContainerHeight(stickyRows, height);\n }\n refreshStickyNode(stickRowNode) {\n const allStickyNodes = [];\n for (let i = 0; i < this.stickyRowCtrls.length; i++) {\n const currentNode = this.stickyRowCtrls[i].getRowNode();\n if (currentNode !== stickRowNode) {\n allStickyNodes.push(currentNode);\n }\n }\n if (this.refreshNodesAndContainerHeight(allStickyNodes, this.containerHeight)) {\n this.checkStickyRows();\n }\n }\n refreshNodesAndContainerHeight(allStickyNodes, height) {\n let stickyRowsChanged = false;\n const removedCtrls = this.stickyRowCtrls.filter(ctrl => allStickyNodes.indexOf(ctrl.getRowNode()) === -1);\n const addedNodes = allStickyNodes.filter(rowNode => this.stickyRowCtrls.findIndex(ctrl => ctrl.getRowNode() === rowNode) === -1);\n if (removedCtrls.length || addedNodes.length) {\n stickyRowsChanged = true;\n }\n const ctrlsToDestroy = {};\n removedCtrls.forEach(removedCtrl => {\n ctrlsToDestroy[removedCtrl.getRowNode().id] = removedCtrl;\n this.stickyRowCtrls = this.stickyRowCtrls.filter(ctrl => ctrl !== removedCtrl);\n });\n for (const ctrl of Object.values(ctrlsToDestroy)) {\n ctrl.getRowNode().sticky = false;\n }\n this.destroyRowCtrls(ctrlsToDestroy, false);\n const newCtrls = addedNodes.map(rowNode => {\n rowNode.sticky = true;\n return this.createRowCon(rowNode, false, false);\n });\n this.stickyRowCtrls.push(...newCtrls);\n this.stickyRowCtrls.forEach(ctrl => ctrl.setRowTop(ctrl.getRowNode().stickyRowTop));\n this.stickyRowCtrls.sort((a, b) => b.getRowNode().rowIndex - a.getRowNode().rowIndex);\n if (this.containerHeight !== height) {\n this.containerHeight = height;\n this.gridBodyCtrl.setStickyTopHeight(height);\n stickyRowsChanged = true;\n }\n return stickyRowsChanged;\n }\n}\n__decorate([\n Autowired(\"rowModel\")\n], StickyRowFeature.prototype, \"rowModel\", void 0);\n__decorate([\n Autowired(\"rowRenderer\")\n], StickyRowFeature.prototype, \"rowRenderer\", void 0);\n__decorate([\n Autowired(\"ctrlsService\")\n], StickyRowFeature.prototype, \"ctrlsService\", void 0);\n__decorate([\n PostConstruct\n], StickyRowFeature.prototype, \"postConstruct\", null);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { RowCtrl } from \"./row/rowCtrl.mjs\";\nimport { Events } from \"../events.mjs\";\nimport { Autowired, Bean, PostConstruct } from \"../context/context.mjs\";\nimport { BeanStub } from \"../context/beanStub.mjs\";\nimport { exists } from \"../utils/generic.mjs\";\nimport { getAllValuesInObject, iterateObject } from \"../utils/object.mjs\";\nimport { createArrayOfNumbers } from \"../utils/number.mjs\";\nimport { executeInAWhile } from \"../utils/function.mjs\";\nimport { CellCtrl } from \"./cell/cellCtrl.mjs\";\nimport { removeFromArray } from \"../utils/array.mjs\";\nimport { StickyRowFeature } from \"./features/stickyRowFeature.mjs\";\nimport { browserSupportsPreventScroll } from \"../utils/browser.mjs\";\nlet RowRenderer = class RowRenderer extends BeanStub {\n constructor() {\n super(...arguments);\n this.destroyFuncsForColumnListeners = [];\n // map of row ids to row objects. keeps track of which elements\n // are rendered for which rows in the dom.\n this.rowCtrlsByRowIndex = {};\n this.zombieRowCtrls = {};\n this.allRowCtrls = [];\n this.topRowCtrls = [];\n this.bottomRowCtrls = [];\n // we only allow one refresh at a time, otherwise the internal memory structure here\n // will get messed up. this can happen if the user has a cellRenderer, and inside the\n // renderer they call an API method that results in another pass of the refresh,\n // then it will be trying to draw rows in the middle of a refresh.\n this.refreshInProgress = false;\n this.dataFirstRenderedFired = false;\n this.setupRangeSelectionListeners = () => {\n const onRangeSelectionChanged = () => {\n this.getAllCellCtrls().forEach(cellCtrl => cellCtrl.onRangeSelectionChanged());\n };\n const onColumnMovedPinnedVisible = () => {\n this.getAllCellCtrls().forEach(cellCtrl => cellCtrl.updateRangeBordersIfRangeCount());\n };\n const addRangeSelectionListeners = () => {\n this.eventService.addEventListener(Events.EVENT_RANGE_SELECTION_CHANGED, onRangeSelectionChanged);\n this.eventService.addEventListener(Events.EVENT_COLUMN_MOVED, onColumnMovedPinnedVisible);\n this.eventService.addEventListener(Events.EVENT_COLUMN_PINNED, onColumnMovedPinnedVisible);\n this.eventService.addEventListener(Events.EVENT_COLUMN_VISIBLE, onColumnMovedPinnedVisible);\n };\n const removeRangeSelectionListeners = () => {\n this.eventService.removeEventListener(Events.EVENT_RANGE_SELECTION_CHANGED, onRangeSelectionChanged);\n this.eventService.removeEventListener(Events.EVENT_COLUMN_MOVED, onColumnMovedPinnedVisible);\n this.eventService.removeEventListener(Events.EVENT_COLUMN_PINNED, onColumnMovedPinnedVisible);\n this.eventService.removeEventListener(Events.EVENT_COLUMN_VISIBLE, onColumnMovedPinnedVisible);\n };\n this.addDestroyFunc(() => removeRangeSelectionListeners());\n this.addManagedPropertyListener('enableRangeSelection', (params) => {\n const isEnabled = params.currentValue;\n if (isEnabled) {\n addRangeSelectionListeners();\n }\n else {\n removeRangeSelectionListeners();\n }\n });\n const rangeSelectionEnabled = this.gridOptionsService.get('enableRangeSelection');\n if (rangeSelectionEnabled) {\n addRangeSelectionListeners();\n }\n };\n }\n postConstruct() {\n this.ctrlsService.whenReady(() => {\n this.gridBodyCtrl = this.ctrlsService.getGridBodyCtrl();\n this.initialise();\n });\n }\n initialise() {\n this.addManagedListener(this.eventService, Events.EVENT_PAGINATION_CHANGED, this.onPageLoaded.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_PINNED_ROW_DATA_CHANGED, this.onPinnedRowDataChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayedColumnsChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_BODY_SCROLL, this.onBodyScroll.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_BODY_HEIGHT_CHANGED, this.redraw.bind(this));\n this.addManagedPropertyListeners(['domLayout', 'embedFullWidthRows'], () => this.onDomLayoutChanged());\n this.addManagedPropertyListeners(['suppressMaxRenderedRowRestriction', 'rowBuffer'], () => this.redraw());\n this.addManagedPropertyListeners([\n 'suppressCellFocus', 'getBusinessKeyForNode',\n 'fullWidthCellRenderer', 'fullWidthCellRendererParams',\n 'rowStyle', 'getRowStyle',\n 'rowClass', 'getRowClass', 'rowClassRules',\n 'groupRowRenderer', 'groupRowRendererParams',\n 'loadingCellRenderer', 'loadingCellRendererParams',\n 'detailCellRenderer', 'detailCellRendererParams',\n 'enableRangeSelection', 'enableCellTextSelection',\n ], () => this.redrawRows());\n if (this.gridOptionsService.isGroupRowsSticky()) {\n const rowModelType = this.rowModel.getType();\n if (rowModelType === 'clientSide' || rowModelType === 'serverSide') {\n this.stickyRowFeature = this.createManagedBean(new StickyRowFeature(this.createRowCon.bind(this), this.destroyRowCtrls.bind(this)));\n }\n }\n this.registerCellEventListeners();\n this.initialiseCache();\n this.printLayout = this.gridOptionsService.isDomLayout('print');\n this.embedFullWidthRows = this.printLayout || this.gridOptionsService.get('embedFullWidthRows');\n this.redrawAfterModelUpdate();\n }\n initialiseCache() {\n if (this.gridOptionsService.get('keepDetailRows')) {\n const countProp = this.getKeepDetailRowsCount();\n const count = countProp != null ? countProp : 3;\n this.cachedRowCtrls = new RowCtrlCache(count);\n }\n }\n getKeepDetailRowsCount() {\n return this.gridOptionsService.get('keepDetailRowsCount');\n }\n getStickyTopRowCtrls() {\n if (!this.stickyRowFeature) {\n return [];\n }\n return this.stickyRowFeature.getStickyRowCtrls();\n }\n updateAllRowCtrls() {\n const liveList = getAllValuesInObject(this.rowCtrlsByRowIndex);\n const zombieList = getAllValuesInObject(this.zombieRowCtrls);\n const cachedList = this.cachedRowCtrls ? this.cachedRowCtrls.getEntries() : [];\n if (zombieList.length > 0 || cachedList.length > 0) {\n // Only spread if we need to.\n this.allRowCtrls = [...liveList, ...zombieList, ...cachedList];\n }\n else {\n this.allRowCtrls = liveList;\n }\n }\n onCellFocusChanged(event) {\n this.getAllCellCtrls().forEach(cellCtrl => cellCtrl.onCellFocused(event));\n this.getFullWidthRowCtrls().forEach(rowCtrl => rowCtrl.onFullWidthRowFocused(event));\n }\n // in a clean design, each cell would register for each of these events. however when scrolling, all the cells\n // registering and de-registering for events is a performance bottleneck. so we register here once and inform\n // all active cells.\n registerCellEventListeners() {\n this.addManagedListener(this.eventService, Events.EVENT_CELL_FOCUSED, (event) => {\n this.onCellFocusChanged(event);\n });\n this.addManagedListener(this.eventService, Events.EVENT_CELL_FOCUS_CLEARED, () => {\n this.onCellFocusChanged();\n });\n this.addManagedListener(this.eventService, Events.EVENT_FLASH_CELLS, event => {\n this.getAllCellCtrls().forEach(cellCtrl => cellCtrl.onFlashCells(event));\n });\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_HOVER_CHANGED, () => {\n this.getAllCellCtrls().forEach(cellCtrl => cellCtrl.onColumnHover());\n });\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, () => {\n this.getAllCellCtrls().forEach(cellCtrl => cellCtrl.onDisplayedColumnsChanged());\n });\n // only for printLayout - because we are rendering all the cells in the same row, regardless of pinned state,\n // then changing the width of the containers will impact left position. eg the center cols all have their\n // left position adjusted by the width of the left pinned column, so if the pinned left column width changes,\n // all the center cols need to be shifted to accommodate this. when in normal layout, the pinned cols are\n // in different containers so doesn't impact.\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, () => {\n if (this.printLayout) {\n this.getAllCellCtrls().forEach(cellCtrl => cellCtrl.onLeftChanged());\n }\n });\n this.setupRangeSelectionListeners();\n // add listeners to the grid columns\n this.refreshListenersToColumnsForCellComps();\n // if the grid columns change, then refresh the listeners again\n this.addManagedListener(this.eventService, Events.EVENT_GRID_COLUMNS_CHANGED, this.refreshListenersToColumnsForCellComps.bind(this));\n this.addDestroyFunc(this.removeGridColumnListeners.bind(this));\n }\n // executes all functions in destroyFuncsForColumnListeners and then clears the list\n removeGridColumnListeners() {\n this.destroyFuncsForColumnListeners.forEach(func => func());\n this.destroyFuncsForColumnListeners.length = 0;\n }\n // this function adds listeners onto all the grid columns, which are the column that we could have cellComps for.\n // when the grid columns change, we add listeners again. in an ideal design, each CellComp would just register to\n // the column it belongs to on creation, however this was a bottleneck with the number of cells, so do it here\n // once instead.\n refreshListenersToColumnsForCellComps() {\n this.removeGridColumnListeners();\n const cols = this.columnModel.getAllGridColumns();\n cols.forEach(col => {\n const forEachCellWithThisCol = (callback) => {\n this.getAllCellCtrls().forEach(cellCtrl => {\n if (cellCtrl.getColumn() === col) {\n callback(cellCtrl);\n }\n });\n };\n const leftChangedListener = () => {\n forEachCellWithThisCol(cellCtrl => cellCtrl.onLeftChanged());\n };\n const widthChangedListener = () => {\n forEachCellWithThisCol(cellCtrl => cellCtrl.onWidthChanged());\n };\n const firstRightPinnedChangedListener = () => {\n forEachCellWithThisCol(cellCtrl => cellCtrl.onFirstRightPinnedChanged());\n };\n const lastLeftPinnedChangedListener = () => {\n forEachCellWithThisCol(cellCtrl => cellCtrl.onLastLeftPinnedChanged());\n };\n const colDefChangedListener = () => {\n forEachCellWithThisCol(cellCtrl => cellCtrl.onColDefChanged());\n };\n col.addEventListener('leftChanged', leftChangedListener);\n col.addEventListener('widthChanged', widthChangedListener);\n col.addEventListener('firstRightPinnedChanged', firstRightPinnedChangedListener);\n col.addEventListener('lastLeftPinnedChanged', lastLeftPinnedChangedListener);\n col.addEventListener('colDefChanged', colDefChangedListener);\n this.destroyFuncsForColumnListeners.push(() => {\n col.removeEventListener('leftChanged', leftChangedListener);\n col.removeEventListener('widthChanged', widthChangedListener);\n col.removeEventListener('firstRightPinnedChanged', firstRightPinnedChangedListener);\n col.removeEventListener('lastLeftPinnedChanged', lastLeftPinnedChangedListener);\n col.removeEventListener('colDefChanged', colDefChangedListener);\n });\n });\n }\n onDomLayoutChanged() {\n const printLayout = this.gridOptionsService.isDomLayout('print');\n const embedFullWidthRows = printLayout || this.gridOptionsService.get('embedFullWidthRows');\n // if moving towards or away from print layout, means we need to destroy all rows, as rows are not laid\n // out using absolute positioning when doing print layout\n const destroyRows = embedFullWidthRows !== this.embedFullWidthRows || this.printLayout !== printLayout;\n this.printLayout = printLayout;\n this.embedFullWidthRows = embedFullWidthRows;\n if (destroyRows) {\n this.redrawAfterModelUpdate({ domLayoutChanged: true });\n }\n }\n // for row models that have datasources, when we update the datasource, we need to force the rowRenderer\n // to redraw all rows. otherwise the old rows from the old datasource will stay displayed.\n datasourceChanged() {\n this.firstRenderedRow = 0;\n this.lastRenderedRow = -1;\n const rowIndexesToRemove = Object.keys(this.rowCtrlsByRowIndex);\n this.removeRowCtrls(rowIndexesToRemove);\n }\n onPageLoaded(event) {\n const params = {\n recycleRows: event.keepRenderedRows,\n animate: event.animate,\n newData: event.newData,\n newPage: event.newPage,\n // because this is a model updated event (not pinned rows), we\n // can skip updating the pinned rows. this is needed so that if user\n // is doing transaction updates, the pinned rows are not getting constantly\n // trashed - or editing cells in pinned rows are not refreshed and put into read mode\n onlyBody: true\n };\n this.redrawAfterModelUpdate(params);\n }\n getAllCellsForColumn(column) {\n const res = [];\n this.getAllRowCtrls().forEach(rowCtrl => {\n const eCell = rowCtrl.getCellElement(column);\n if (eCell) {\n res.push(eCell);\n }\n });\n return res;\n }\n refreshFloatingRowComps() {\n this.refreshFloatingRows(this.topRowCtrls, this.pinnedRowModel.getPinnedTopRowData());\n this.refreshFloatingRows(this.bottomRowCtrls, this.pinnedRowModel.getPinnedBottomRowData());\n }\n getTopRowCtrls() {\n return this.topRowCtrls;\n }\n getCentreRowCtrls() {\n return this.allRowCtrls;\n }\n getBottomRowCtrls() {\n return this.bottomRowCtrls;\n }\n refreshFloatingRows(rowComps, rowNodes) {\n rowComps.forEach((row) => {\n row.destroyFirstPass();\n row.destroySecondPass();\n });\n rowComps.length = 0;\n if (!rowNodes) {\n return;\n }\n rowNodes.forEach(rowNode => {\n const rowCtrl = new RowCtrl(rowNode, this.beans, false, false, this.printLayout);\n rowComps.push(rowCtrl);\n });\n }\n onPinnedRowDataChanged() {\n // recycling rows in order to ensure cell editing is not cancelled\n const params = {\n recycleRows: true\n };\n this.redrawAfterModelUpdate(params);\n }\n redrawRow(rowNode, suppressEvent = false) {\n var _a;\n if (rowNode.sticky) {\n this.stickyRowFeature.refreshStickyNode(rowNode);\n }\n else if ((_a = this.cachedRowCtrls) === null || _a === void 0 ? void 0 : _a.has(rowNode)) {\n // delete row from cache if it needs redrawn\n // if it's in the cache no updates need fired, as nothing\n // has been rendered\n this.cachedRowCtrls.removeRow(rowNode);\n return;\n }\n else {\n const destroyAndRecreateCtrl = (dataStruct) => {\n const ctrl = dataStruct[rowNode.rowIndex];\n if (!ctrl) {\n return;\n }\n if (ctrl.getRowNode() !== rowNode) {\n // if the node is in the wrong place, then the row model is responsible for triggering a full refresh.\n return;\n }\n ctrl.destroyFirstPass();\n ctrl.destroySecondPass();\n dataStruct[rowNode.rowIndex] = this.createRowCon(rowNode, false, false);\n };\n switch (rowNode.rowPinned) {\n case 'top':\n destroyAndRecreateCtrl(this.topRowCtrls);\n break;\n case 'bottom':\n destroyAndRecreateCtrl(this.bottomRowCtrls);\n break;\n default:\n destroyAndRecreateCtrl(this.rowCtrlsByRowIndex);\n this.updateAllRowCtrls();\n }\n }\n if (!suppressEvent) {\n this.dispatchDisplayedRowsChanged(false);\n }\n }\n redrawRows(rowNodes) {\n // if no row nodes provided, then refresh everything\n const partialRefresh = rowNodes != null;\n if (partialRefresh) {\n rowNodes === null || rowNodes === void 0 ? void 0 : rowNodes.forEach(node => this.redrawRow(node, true));\n this.dispatchDisplayedRowsChanged(false);\n return;\n }\n this.redrawAfterModelUpdate();\n }\n getCellToRestoreFocusToAfterRefresh(params) {\n const focusedCell = (params === null || params === void 0 ? void 0 : params.suppressKeepFocus) ? null : this.focusService.getFocusCellToUseAfterRefresh();\n if (focusedCell == null) {\n return null;\n }\n // if the dom is not actually focused on a cell, then we don't try to refocus. the problem this\n // solves is with editing - if the user is editing, eg focus is on a text field, and not on the\n // cell itself, then the cell can be registered as having focus, however it's the text field that\n // has the focus and not the cell div. therefore, when the refresh is finished, the grid will focus\n // the cell, and not the textfield. that means if the user is in a text field, and the grid refreshes,\n // the focus is lost from the text field. we do not want this.\n const eDocument = this.gridOptionsService.getDocument();\n const activeElement = eDocument.activeElement;\n const cellDomData = this.gridOptionsService.getDomData(activeElement, CellCtrl.DOM_DATA_KEY_CELL_CTRL);\n const rowDomData = this.gridOptionsService.getDomData(activeElement, RowCtrl.DOM_DATA_KEY_ROW_CTRL);\n const gridElementFocused = cellDomData || rowDomData;\n return gridElementFocused ? focusedCell : null;\n }\n // gets called from:\n // +) initialisation (in registerGridComp) params = null\n // +) onDomLayoutChanged, params = null\n // +) onPageLoaded, recycleRows, animate, newData, newPage from event, onlyBody=true\n // +) onPinnedRowDataChanged, recycleRows = true\n // +) redrawRows (from Grid API), recycleRows = true/false\n redrawAfterModelUpdate(params = {}) {\n this.getLockOnRefresh();\n const focusedCell = this.getCellToRestoreFocusToAfterRefresh(params);\n this.updateContainerHeights();\n this.scrollToTopIfNewData(params);\n // never recycle rows on layout change as rows could change from normal DOM layout\n // back to the grid's row positioning.\n const recycleRows = !params.domLayoutChanged && !!params.recycleRows;\n const animate = params.animate && this.gridOptionsService.isAnimateRows();\n // after modelUpdate, row indexes can change, so we clear out the rowsByIndex map,\n // however we can reuse the rows, so we keep them but index by rowNode.id\n const rowsToRecycle = recycleRows ? this.getRowsToRecycle() : null;\n if (!recycleRows) {\n this.removeAllRowComps();\n }\n this.workOutFirstAndLastRowsToRender();\n if (this.stickyRowFeature) {\n this.stickyRowFeature.checkStickyRows();\n }\n this.recycleRows(rowsToRecycle, animate);\n this.gridBodyCtrl.updateRowCount();\n if (!params.onlyBody) {\n this.refreshFloatingRowComps();\n }\n this.dispatchDisplayedRowsChanged();\n // if a cell was focused before, ensure focus now.\n if (focusedCell != null) {\n this.restoreFocusedCell(focusedCell);\n }\n this.releaseLockOnRefresh();\n }\n scrollToTopIfNewData(params) {\n const scrollToTop = params.newData || params.newPage;\n const suppressScrollToTop = this.gridOptionsService.get('suppressScrollOnNewData');\n if (scrollToTop && !suppressScrollToTop) {\n this.gridBodyCtrl.getScrollFeature().scrollToTop();\n }\n }\n updateContainerHeights() {\n // when doing print layout, we don't explicitly set height on the containers\n if (this.printLayout) {\n this.rowContainerHeightService.setModelHeight(null);\n return;\n }\n let containerHeight = this.paginationProxy.getCurrentPageHeight();\n // we need at least 1 pixel for the horizontal scroll to work. so if there are now rows,\n // we still want the scroll to be present, otherwise there would be no way to scroll the header\n // which might be needed us user wants to access columns\n // on the RHS - and if that was where the filter was that cause no rows to be presented, there\n // is no way to remove the filter.\n if (containerHeight === 0) {\n containerHeight = 1;\n }\n this.rowContainerHeightService.setModelHeight(containerHeight);\n }\n getLockOnRefresh() {\n if (this.refreshInProgress) {\n throw new Error(\"AG Grid: cannot get grid to draw rows when it is in the middle of drawing rows. \" +\n \"Your code probably called a grid API method while the grid was in the render stage. To overcome \" +\n \"this, put the API call into a timeout, e.g. instead of api.redrawRows(), \" +\n \"call setTimeout(function() { api.redrawRows(); }, 0). To see what part of your code \" +\n \"that caused the refresh check this stacktrace.\");\n }\n this.refreshInProgress = true;\n }\n releaseLockOnRefresh() {\n this.refreshInProgress = false;\n }\n isRefreshInProgress() {\n return this.refreshInProgress;\n }\n // sets the focus to the provided cell, if the cell is provided. this way, the user can call refresh without\n // worry about the focus been lost. this is important when the user is using keyboard navigation to do edits\n // and the cellEditor is calling 'refresh' to get other cells to update (as other cells might depend on the\n // edited cell).\n restoreFocusedCell(cellPosition) {\n if (cellPosition) {\n // we don't wish to dispatch an event as the rowRenderer is not capable of changing the selected cell,\n // so we mock a change event for the full width rows and cells to ensure they update to the newly selected\n // state\n this.focusService.setRestoreFocusedCell(cellPosition);\n this.onCellFocusChanged(this.beans.gridOptionsService.addGridCommonParams({\n rowIndex: cellPosition.rowIndex,\n column: cellPosition.column,\n rowPinned: cellPosition.rowPinned,\n forceBrowserFocus: true,\n preventScrollOnBrowserFocus: true,\n type: 'mock',\n }));\n }\n }\n stopEditing(cancel = false) {\n this.getAllRowCtrls().forEach(rowCtrl => {\n rowCtrl.stopEditing(cancel);\n });\n }\n getAllCellCtrls() {\n const res = [];\n const rowCtrls = this.getAllRowCtrls();\n const rowCtrlsLength = rowCtrls.length;\n for (let i = 0; i < rowCtrlsLength; i++) {\n const cellCtrls = rowCtrls[i].getAllCellCtrls();\n const cellCtrlsLength = cellCtrls.length;\n for (let j = 0; j < cellCtrlsLength; j++) {\n res.push(cellCtrls[j]);\n }\n }\n return res;\n }\n getAllRowCtrls() {\n const stickyRowCtrls = (this.stickyRowFeature && this.stickyRowFeature.getStickyRowCtrls()) || [];\n const res = [...this.topRowCtrls, ...this.bottomRowCtrls, ...stickyRowCtrls];\n for (const key of Object.keys(this.rowCtrlsByRowIndex)) {\n res.push(this.rowCtrlsByRowIndex[key]);\n }\n return res;\n }\n addRenderedRowListener(eventName, rowIndex, callback) {\n const rowComp = this.rowCtrlsByRowIndex[rowIndex];\n if (rowComp) {\n rowComp.addEventListener(eventName, callback);\n }\n }\n flashCells(params = {}) {\n this.getCellCtrls(params.rowNodes, params.columns)\n .forEach(cellCtrl => cellCtrl.flashCell(params));\n }\n refreshCells(params = {}) {\n const refreshCellParams = {\n forceRefresh: params.force,\n newData: false,\n suppressFlash: params.suppressFlash\n };\n this.getCellCtrls(params.rowNodes, params.columns)\n .forEach(cellCtrl => cellCtrl.refreshOrDestroyCell(refreshCellParams));\n if (params.rowNodes) {\n // refresh the full width rows too\n this.getRowCtrls(params.rowNodes).forEach(rowCtrl => {\n if (!rowCtrl.isFullWidth()) {\n return;\n }\n const refreshed = rowCtrl.refreshFullWidth();\n if (!refreshed) {\n this.redrawRow(rowCtrl.getRowNode(), true);\n }\n });\n this.dispatchDisplayedRowsChanged(false);\n }\n }\n getCellRendererInstances(params) {\n var _a;\n const cellRenderers = this.getCellCtrls(params.rowNodes, params.columns)\n .map(cellCtrl => cellCtrl.getCellRenderer())\n .filter(renderer => renderer != null);\n if ((_a = params.columns) === null || _a === void 0 ? void 0 : _a.length) {\n return cellRenderers;\n }\n const fullWidthRenderers = [];\n const rowIdMap = this.mapRowNodes(params.rowNodes);\n this.getAllRowCtrls().forEach(rowCtrl => {\n if (rowIdMap && !this.isRowInMap(rowCtrl.getRowNode(), rowIdMap)) {\n return;\n }\n if (!rowCtrl.isFullWidth()) {\n return;\n }\n const renderers = rowCtrl.getFullWidthCellRenderers();\n for (let i = 0; i < renderers.length; i++) {\n const renderer = renderers[i];\n if (renderer != null) {\n fullWidthRenderers.push(renderer);\n }\n }\n });\n return [...fullWidthRenderers, ...cellRenderers];\n }\n getCellEditorInstances(params) {\n const res = [];\n this.getCellCtrls(params.rowNodes, params.columns).forEach(cellCtrl => {\n const cellEditor = cellCtrl.getCellEditor();\n if (cellEditor) {\n res.push(cellEditor);\n }\n });\n return res;\n }\n getEditingCells() {\n const res = [];\n this.getAllCellCtrls().forEach(cellCtrl => {\n if (cellCtrl.isEditing()) {\n const cellPosition = cellCtrl.getCellPosition();\n res.push(cellPosition);\n }\n });\n return res;\n }\n mapRowNodes(rowNodes) {\n if (!rowNodes) {\n return;\n }\n const res = {\n top: {},\n bottom: {},\n normal: {}\n };\n rowNodes.forEach(rowNode => {\n const id = rowNode.id;\n if (rowNode.rowPinned === 'top') {\n res.top[id] = rowNode;\n }\n else if (rowNode.rowPinned === 'bottom') {\n res.bottom[id] = rowNode;\n }\n else {\n res.normal[id] = rowNode;\n }\n });\n return res;\n }\n isRowInMap(rowNode, rowIdsMap) {\n // skip this row if it is missing from the provided list\n const id = rowNode.id;\n const floating = rowNode.rowPinned;\n if (floating === 'bottom') {\n return rowIdsMap.bottom[id] != null;\n }\n if (floating === 'top') {\n return rowIdsMap.top[id] != null;\n }\n return rowIdsMap.normal[id] != null;\n }\n /**\n * @param rowNodes if provided, returns the RowCtrls for the provided rowNodes. otherwise returns all RowCtrls.\n */\n getRowCtrls(rowNodes) {\n const rowIdsMap = this.mapRowNodes(rowNodes);\n const allRowCtrls = this.getAllRowCtrls();\n if (!rowNodes || !rowIdsMap) {\n return allRowCtrls;\n }\n return allRowCtrls.filter(rowCtrl => {\n const rowNode = rowCtrl.getRowNode();\n return this.isRowInMap(rowNode, rowIdsMap);\n });\n }\n // returns CellCtrl's that match the provided rowNodes and columns. eg if one row node\n // and two columns provided, that identifies 4 cells, so 4 CellCtrl's returned.\n getCellCtrls(rowNodes, columns) {\n let colIdsMap;\n if (exists(columns)) {\n colIdsMap = {};\n columns.forEach((colKey) => {\n const column = this.columnModel.getGridColumn(colKey);\n if (exists(column)) {\n colIdsMap[column.getId()] = true;\n }\n });\n }\n const res = [];\n this.getRowCtrls(rowNodes).forEach(rowCtrl => {\n rowCtrl.getAllCellCtrls().forEach(cellCtrl => {\n const colId = cellCtrl.getColumn().getId();\n const excludeColFromRefresh = colIdsMap && !colIdsMap[colId];\n if (excludeColFromRefresh) {\n return;\n }\n res.push(cellCtrl);\n });\n });\n return res;\n }\n destroy() {\n this.removeAllRowComps();\n super.destroy();\n }\n removeAllRowComps() {\n const rowIndexesToRemove = Object.keys(this.rowCtrlsByRowIndex);\n this.removeRowCtrls(rowIndexesToRemove);\n }\n getRowsToRecycle() {\n // remove all stub nodes, they can't be reused, as no rowNode id\n const stubNodeIndexes = [];\n iterateObject(this.rowCtrlsByRowIndex, (index, rowComp) => {\n const stubNode = rowComp.getRowNode().id == null;\n if (stubNode) {\n stubNodeIndexes.push(index);\n }\n });\n this.removeRowCtrls(stubNodeIndexes);\n // then clear out rowCompsByIndex, but before that take a copy, but index by id, not rowIndex\n const ctrlsByIdMap = {};\n iterateObject(this.rowCtrlsByRowIndex, (index, rowComp) => {\n const rowNode = rowComp.getRowNode();\n ctrlsByIdMap[rowNode.id] = rowComp;\n });\n this.rowCtrlsByRowIndex = {};\n return ctrlsByIdMap;\n }\n // takes array of row indexes\n removeRowCtrls(rowsToRemove, suppressAnimation = false) {\n // if no fromIndex then set to -1, which will refresh everything\n // let realFromIndex = -1;\n rowsToRemove.forEach((indexToRemove) => {\n const rowCtrl = this.rowCtrlsByRowIndex[indexToRemove];\n if (rowCtrl) {\n rowCtrl.destroyFirstPass(suppressAnimation);\n rowCtrl.destroySecondPass();\n }\n delete this.rowCtrlsByRowIndex[indexToRemove];\n });\n }\n onBodyScroll(e) {\n if (e.direction !== 'vertical') {\n return;\n }\n this.redraw({ afterScroll: true });\n }\n // gets called when rows don't change, but viewport does, so after:\n // 1) height of grid body changes, ie number of displayed rows has changed\n // 2) grid scrolled to new position\n // 3) ensure index visible (which is a scroll)\n redraw(params = {}) {\n const { afterScroll } = params;\n let cellFocused;\n // only try to refocus cells shifting in and out of sticky container\n // if the browser supports focus ({ preventScroll })\n if (this.stickyRowFeature && browserSupportsPreventScroll()) {\n cellFocused = this.getCellToRestoreFocusToAfterRefresh() || undefined;\n }\n const oldFirstRow = this.firstRenderedRow;\n const oldLastRow = this.lastRenderedRow;\n this.workOutFirstAndLastRowsToRender();\n let hasStickyRowChanges = false;\n if (this.stickyRowFeature) {\n hasStickyRowChanges = this.stickyRowFeature.checkStickyRows();\n }\n const rangeChanged = this.firstRenderedRow !== oldFirstRow || this.lastRenderedRow !== oldLastRow;\n if (afterScroll && !hasStickyRowChanges && !rangeChanged) {\n return;\n }\n this.getLockOnRefresh();\n this.recycleRows(null, false, afterScroll);\n this.releaseLockOnRefresh();\n // AfterScroll results in flushSync in React but we need to disable flushSync for sticky row group changes to avoid flashing\n this.dispatchDisplayedRowsChanged(afterScroll && !hasStickyRowChanges);\n if (cellFocused != null) {\n const newFocusedCell = this.getCellToRestoreFocusToAfterRefresh();\n if (cellFocused != null && newFocusedCell == null) {\n this.animationFrameService.flushAllFrames();\n this.restoreFocusedCell(cellFocused);\n }\n }\n }\n removeRowCompsNotToDraw(indexesToDraw, suppressAnimation) {\n // for speedy lookup, dump into map\n const indexesToDrawMap = {};\n indexesToDraw.forEach(index => (indexesToDrawMap[index] = true));\n const existingIndexes = Object.keys(this.rowCtrlsByRowIndex);\n const indexesNotToDraw = existingIndexes.filter(index => !indexesToDrawMap[index]);\n this.removeRowCtrls(indexesNotToDraw, suppressAnimation);\n }\n calculateIndexesToDraw(rowsToRecycle) {\n // all in all indexes in the viewport\n let indexesToDraw = createArrayOfNumbers(this.firstRenderedRow, this.lastRenderedRow);\n const checkRowToDraw = (indexStr, rowComp) => {\n const index = rowComp.getRowNode().rowIndex;\n if (index == null) {\n return;\n }\n if (index < this.firstRenderedRow || index > this.lastRenderedRow) {\n if (this.doNotUnVirtualiseRow(rowComp)) {\n indexesToDraw.push(index);\n }\n }\n };\n // if we are redrawing due to scrolling change, then old rows are in this.rowCompsByIndex\n iterateObject(this.rowCtrlsByRowIndex, checkRowToDraw);\n // if we are redrawing due to model update, then old rows are in rowsToRecycle\n iterateObject(rowsToRecycle, checkRowToDraw);\n indexesToDraw.sort((a, b) => a - b);\n const ret = [];\n for (let i = 0; i < indexesToDraw.length; i++) {\n const currRow = indexesToDraw[i];\n const rowNode = this.paginationProxy.getRow(currRow);\n if (rowNode && !rowNode.sticky) {\n ret.push(currRow);\n }\n }\n return ret;\n }\n recycleRows(rowsToRecycle, animate = false, afterScroll = false) {\n // the row can already exist and be in the following:\n // rowsToRecycle -> if model change, then the index may be different, however row may\n // exist here from previous time (mapped by id).\n // this.rowCompsByIndex -> if just a scroll, then this will contain what is currently in the viewport\n // this is all the indexes we want, including those that already exist, so this method\n // will end up going through each index and drawing only if the row doesn't already exist\n const indexesToDraw = this.calculateIndexesToDraw(rowsToRecycle);\n // never animate when doing print layout - as we want to get things ready to print as quickly as possible,\n // otherwise we risk the printer printing a row that's half faded (half way through fading in)\n // Don't animate rows that have been added or removed as part of scrolling\n if (this.printLayout || afterScroll) {\n animate = false;\n }\n this.removeRowCompsNotToDraw(indexesToDraw, !animate);\n // add in new rows\n const rowCtrls = [];\n indexesToDraw.forEach(rowIndex => {\n const rowCtrl = this.createOrUpdateRowCtrl(rowIndex, rowsToRecycle, animate, afterScroll);\n if (exists(rowCtrl)) {\n rowCtrls.push(rowCtrl);\n }\n });\n if (rowsToRecycle) {\n const useAnimationFrame = afterScroll && !this.gridOptionsService.get('suppressAnimationFrame') && !this.printLayout;\n if (useAnimationFrame) {\n this.beans.animationFrameService.addDestroyTask(() => {\n this.destroyRowCtrls(rowsToRecycle, animate);\n this.updateAllRowCtrls();\n this.dispatchDisplayedRowsChanged();\n });\n }\n else {\n this.destroyRowCtrls(rowsToRecycle, animate);\n }\n }\n this.updateAllRowCtrls();\n }\n dispatchDisplayedRowsChanged(afterScroll = false) {\n const event = { type: Events.EVENT_DISPLAYED_ROWS_CHANGED, afterScroll };\n this.eventService.dispatchEvent(event);\n }\n onDisplayedColumnsChanged() {\n const pinningLeft = this.columnModel.isPinningLeft();\n const pinningRight = this.columnModel.isPinningRight();\n const atLeastOneChanged = this.pinningLeft !== pinningLeft || pinningRight !== this.pinningRight;\n if (atLeastOneChanged) {\n this.pinningLeft = pinningLeft;\n this.pinningRight = pinningRight;\n if (this.embedFullWidthRows) {\n this.redrawFullWidthEmbeddedRows();\n }\n }\n }\n // when embedding, what gets showed in each section depends on what is pinned. eg if embedding group expand / collapse,\n // then it should go into the pinned left area if pinning left, or the center area if not pinning.\n redrawFullWidthEmbeddedRows() {\n // if either of the pinned panels has shown / hidden, then need to redraw the fullWidth bits when\n // embedded, as what appears in each section depends on whether we are pinned or not\n const rowsToRemove = [];\n this.getFullWidthRowCtrls().forEach(fullWidthCtrl => {\n const rowIndex = fullWidthCtrl.getRowNode().rowIndex;\n rowsToRemove.push(rowIndex.toString());\n });\n this.refreshFloatingRowComps();\n this.removeRowCtrls(rowsToRemove);\n this.redraw({ afterScroll: true });\n }\n getFullWidthRowCtrls(rowNodes) {\n const rowNodesMap = this.mapRowNodes(rowNodes);\n return this.getAllRowCtrls().filter((rowCtrl) => {\n // include just full width\n if (!rowCtrl.isFullWidth()) {\n return false;\n }\n // if Row Nodes provided, we exclude where Row Node is missing\n const rowNode = rowCtrl.getRowNode();\n if (rowNodesMap != null && !this.isRowInMap(rowNode, rowNodesMap)) {\n return false;\n }\n return true;\n });\n }\n createOrUpdateRowCtrl(rowIndex, rowsToRecycle, animate, afterScroll) {\n let rowNode;\n let rowCtrl = this.rowCtrlsByRowIndex[rowIndex];\n // if no row comp, see if we can get it from the previous rowComps\n if (!rowCtrl) {\n rowNode = this.paginationProxy.getRow(rowIndex);\n if (exists(rowNode) && exists(rowsToRecycle) && rowsToRecycle[rowNode.id] && rowNode.alreadyRendered) {\n rowCtrl = rowsToRecycle[rowNode.id];\n rowsToRecycle[rowNode.id] = null;\n }\n }\n const creatingNewRowCtrl = !rowCtrl;\n if (creatingNewRowCtrl) {\n // create a new one\n if (!rowNode) {\n rowNode = this.paginationProxy.getRow(rowIndex);\n }\n if (exists(rowNode)) {\n rowCtrl = this.createRowCon(rowNode, animate, afterScroll);\n }\n else {\n // this should never happen - if somehow we are trying to create\n // a row for a rowNode that does not exist.\n return;\n }\n }\n if (rowNode) {\n // set node as 'alreadyRendered' to ensure we only recycle rowComps that have been rendered, this ensures\n // we don't reuse rowComps that have been removed and then re-added in the same batch transaction.\n rowNode.alreadyRendered = true;\n }\n this.rowCtrlsByRowIndex[rowIndex] = rowCtrl;\n return rowCtrl;\n }\n destroyRowCtrls(rowCtrlsMap, animate) {\n const executeInAWhileFuncs = [];\n iterateObject(rowCtrlsMap, (nodeId, rowCtrl) => {\n // if row was used, then it's null\n if (!rowCtrl) {\n return;\n }\n if (this.cachedRowCtrls && rowCtrl.isCacheable()) {\n this.cachedRowCtrls.addRow(rowCtrl);\n return;\n }\n rowCtrl.destroyFirstPass(!animate);\n if (animate) {\n this.zombieRowCtrls[rowCtrl.getInstanceId()] = rowCtrl;\n executeInAWhileFuncs.push(() => {\n rowCtrl.destroySecondPass();\n delete this.zombieRowCtrls[rowCtrl.getInstanceId()];\n });\n }\n else {\n rowCtrl.destroySecondPass();\n }\n });\n if (animate) {\n // this ensures we fire displayedRowsChanged AFTER all the 'executeInAWhileFuncs' get\n // executed, as we added it to the end of the list.\n executeInAWhileFuncs.push(() => {\n this.updateAllRowCtrls();\n this.dispatchDisplayedRowsChanged();\n });\n executeInAWhile(executeInAWhileFuncs);\n }\n }\n getRowBuffer() {\n return this.gridOptionsService.get('rowBuffer');\n }\n getRowBufferInPixels() {\n const rowsToBuffer = this.getRowBuffer();\n const defaultRowHeight = this.gridOptionsService.getRowHeightAsNumber();\n return rowsToBuffer * defaultRowHeight;\n }\n workOutFirstAndLastRowsToRender() {\n this.rowContainerHeightService.updateOffset();\n let newFirst;\n let newLast;\n if (!this.paginationProxy.isRowsToRender()) {\n newFirst = 0;\n newLast = -1; // setting to -1 means nothing in range\n }\n else if (this.printLayout) {\n this.environment.refreshRowHeightVariable();\n newFirst = this.paginationProxy.getPageFirstRow();\n newLast = this.paginationProxy.getPageLastRow();\n }\n else {\n const bufferPixels = this.getRowBufferInPixels();\n const gridBodyCtrl = this.ctrlsService.getGridBodyCtrl();\n const suppressRowVirtualisation = this.gridOptionsService.get('suppressRowVirtualisation');\n let rowHeightsChanged = false;\n let firstPixel;\n let lastPixel;\n do {\n const paginationOffset = this.paginationProxy.getPixelOffset();\n const { pageFirstPixel, pageLastPixel } = this.paginationProxy.getCurrentPagePixelRange();\n const divStretchOffset = this.rowContainerHeightService.getDivStretchOffset();\n const bodyVRange = gridBodyCtrl.getScrollFeature().getVScrollPosition();\n const bodyTopPixel = bodyVRange.top;\n const bodyBottomPixel = bodyVRange.bottom;\n if (suppressRowVirtualisation) {\n firstPixel = pageFirstPixel + divStretchOffset;\n lastPixel = pageLastPixel + divStretchOffset;\n }\n else {\n firstPixel = Math.max(bodyTopPixel + paginationOffset - bufferPixels, pageFirstPixel) + divStretchOffset;\n lastPixel = Math.min(bodyBottomPixel + paginationOffset + bufferPixels, pageLastPixel) + divStretchOffset;\n }\n this.firstVisibleVPixel = Math.max(bodyTopPixel + paginationOffset, pageFirstPixel) + divStretchOffset;\n // if the rows we are about to display get their heights changed, then that upsets the calcs from above.\n rowHeightsChanged = this.ensureAllRowsInRangeHaveHeightsCalculated(firstPixel, lastPixel);\n } while (rowHeightsChanged);\n let firstRowIndex = this.paginationProxy.getRowIndexAtPixel(firstPixel);\n let lastRowIndex = this.paginationProxy.getRowIndexAtPixel(lastPixel);\n const pageFirstRow = this.paginationProxy.getPageFirstRow();\n const pageLastRow = this.paginationProxy.getPageLastRow();\n // adjust, in case buffer extended actual size\n if (firstRowIndex < pageFirstRow) {\n firstRowIndex = pageFirstRow;\n }\n if (lastRowIndex > pageLastRow) {\n lastRowIndex = pageLastRow;\n }\n newFirst = firstRowIndex;\n newLast = lastRowIndex;\n }\n // sometimes user doesn't set CSS right and ends up with grid with no height and grid ends up\n // trying to render all the rows, eg 10,000+ rows. this will kill the browser. so instead of\n // killing the browser, we limit the number of rows. just in case some use case we didn't think\n // of, we also have a property to not do this operation.\n const rowLayoutNormal = this.gridOptionsService.isDomLayout('normal');\n const suppressRowCountRestriction = this.gridOptionsService.get('suppressMaxRenderedRowRestriction');\n const rowBufferMaxSize = Math.max(this.getRowBuffer(), 500);\n if (rowLayoutNormal && !suppressRowCountRestriction) {\n if (newLast - newFirst > rowBufferMaxSize) {\n newLast = newFirst + rowBufferMaxSize;\n }\n }\n const firstDiffers = newFirst !== this.firstRenderedRow;\n const lastDiffers = newLast !== this.lastRenderedRow;\n if (firstDiffers || lastDiffers) {\n this.firstRenderedRow = newFirst;\n this.lastRenderedRow = newLast;\n const event = {\n type: Events.EVENT_VIEWPORT_CHANGED,\n firstRow: newFirst,\n lastRow: newLast\n };\n this.eventService.dispatchEvent(event);\n }\n }\n /**\n * This event will only be fired once, and is queued until after the browser next renders.\n * This allows us to fire an event during the start of the render cycle, when we first see data being rendered\n * but not execute the event until all of the data has finished being rendered to the dom.\n */\n dispatchFirstDataRenderedEvent() {\n if (this.dataFirstRenderedFired) {\n return;\n }\n this.dataFirstRenderedFired = true;\n const event = {\n type: Events.EVENT_FIRST_DATA_RENDERED,\n firstRow: this.firstRenderedRow,\n lastRow: this.lastRenderedRow,\n };\n // See AG-7018\n window.requestAnimationFrame(() => {\n this.beans.eventService.dispatchEvent(event);\n });\n }\n ensureAllRowsInRangeHaveHeightsCalculated(topPixel, bottomPixel) {\n // ensureRowHeightsVisible only works with CSRM, as it's the only row model that allows lazy row height calcs.\n // all the other row models just hard code so the method just returns back false\n const res = this.paginationProxy.ensureRowHeightsValid(topPixel, bottomPixel, -1, -1);\n if (res) {\n this.updateContainerHeights();\n }\n return res;\n }\n getFirstVisibleVerticalPixel() {\n return this.firstVisibleVPixel;\n }\n getFirstVirtualRenderedRow() {\n return this.firstRenderedRow;\n }\n getLastVirtualRenderedRow() {\n return this.lastRenderedRow;\n }\n // check that none of the rows to remove are editing or focused as:\n // a) if editing, we want to keep them, otherwise the user will loose the context of the edit,\n // eg user starts editing, enters some text, then scrolls down and then up, next time row rendered\n // the edit is reset - so we want to keep it rendered.\n // b) if focused, we want ot keep keyboard focus, so if user ctrl+c, it goes to clipboard,\n // otherwise the user can range select and drag (with focus cell going out of the viewport)\n // and then ctrl+c, nothing will happen if cell is removed from dom.\n // c) if detail record of master detail, as users complained that the context of detail rows\n // was getting lost when detail row out of view. eg user expands to show detail row,\n // then manipulates the detail panel (eg sorts the detail grid), then context is lost\n // after detail panel is scrolled out of / into view.\n doNotUnVirtualiseRow(rowComp) {\n const REMOVE_ROW = false;\n const KEEP_ROW = true;\n const rowNode = rowComp.getRowNode();\n const rowHasFocus = this.focusService.isRowNodeFocused(rowNode);\n const rowIsEditing = rowComp.isEditing();\n const rowIsDetail = rowNode.detail;\n const mightWantToKeepRow = rowHasFocus || rowIsEditing || rowIsDetail;\n // if we deffo don't want to keep it,\n if (!mightWantToKeepRow) {\n return REMOVE_ROW;\n }\n // editing row, only remove if it is no longer rendered, eg filtered out or new data set.\n // the reason we want to keep is if user is scrolling up and down, we don't want to loose\n // the context of the editing in process.\n const rowNodePresent = this.paginationProxy.isRowPresent(rowNode);\n return rowNodePresent ? KEEP_ROW : REMOVE_ROW;\n }\n createRowCon(rowNode, animate, afterScroll) {\n const rowCtrlFromCache = this.cachedRowCtrls ? this.cachedRowCtrls.getRow(rowNode) : null;\n if (rowCtrlFromCache) {\n return rowCtrlFromCache;\n }\n // we don't use animations frames for printing, so the user can put the grid into print mode\n // and immediately print - otherwise the user would have to wait for the rows to draw in the background\n // (via the animation frames) which is awkward to do from code.\n // we only do the animation frames after scrolling, as this is where we want the smooth user experience.\n // having animation frames for other times makes the grid look 'jumpy'.\n const suppressAnimationFrame = this.gridOptionsService.get('suppressAnimationFrame');\n const useAnimationFrameForCreate = afterScroll && !suppressAnimationFrame && !this.printLayout;\n const res = new RowCtrl(rowNode, this.beans, animate, useAnimationFrameForCreate, this.printLayout);\n return res;\n }\n getRenderedNodes() {\n const renderedRows = this.rowCtrlsByRowIndex;\n return Object.keys(renderedRows).map(key => renderedRows[key].getRowNode());\n }\n getRowByPosition(rowPosition) {\n let rowCtrl;\n const { rowIndex } = rowPosition;\n switch (rowPosition.rowPinned) {\n case 'top':\n rowCtrl = this.topRowCtrls[rowIndex];\n break;\n case 'bottom':\n rowCtrl = this.bottomRowCtrls[rowIndex];\n break;\n default:\n rowCtrl = this.rowCtrlsByRowIndex[rowIndex];\n if (!rowCtrl) {\n rowCtrl = this.getStickyTopRowCtrls().find(ctrl => ctrl.getRowNode().rowIndex === rowIndex) || null;\n }\n break;\n }\n return rowCtrl;\n }\n getRowNode(gridRow) {\n switch (gridRow.rowPinned) {\n case 'top':\n return this.pinnedRowModel.getPinnedTopRowData()[gridRow.rowIndex];\n case 'bottom':\n return this.pinnedRowModel.getPinnedBottomRowData()[gridRow.rowIndex];\n default:\n return this.rowModel.getRow(gridRow.rowIndex);\n }\n }\n // returns true if any row between startIndex and endIndex is rendered. used by\n // SSRM or IRM, as they don't want to purge visible blocks from cache.\n isRangeInRenderedViewport(startIndex, endIndex) {\n // parent closed means the parent node is not expanded, thus these blocks are not visible\n const parentClosed = startIndex == null || endIndex == null;\n if (parentClosed) {\n return false;\n }\n const blockAfterViewport = startIndex > this.lastRenderedRow;\n const blockBeforeViewport = endIndex < this.firstRenderedRow;\n const blockInsideViewport = !blockBeforeViewport && !blockAfterViewport;\n return blockInsideViewport;\n }\n};\n__decorate([\n Autowired(\"animationFrameService\")\n], RowRenderer.prototype, \"animationFrameService\", void 0);\n__decorate([\n Autowired(\"paginationProxy\")\n], RowRenderer.prototype, \"paginationProxy\", void 0);\n__decorate([\n Autowired(\"columnModel\")\n], RowRenderer.prototype, \"columnModel\", void 0);\n__decorate([\n Autowired(\"pinnedRowModel\")\n], RowRenderer.prototype, \"pinnedRowModel\", void 0);\n__decorate([\n Autowired(\"rowModel\")\n], RowRenderer.prototype, \"rowModel\", void 0);\n__decorate([\n Autowired(\"focusService\")\n], RowRenderer.prototype, \"focusService\", void 0);\n__decorate([\n Autowired(\"beans\")\n], RowRenderer.prototype, \"beans\", void 0);\n__decorate([\n Autowired(\"rowContainerHeightService\")\n], RowRenderer.prototype, \"rowContainerHeightService\", void 0);\n__decorate([\n Autowired(\"ctrlsService\")\n], RowRenderer.prototype, \"ctrlsService\", void 0);\n__decorate([\n PostConstruct\n], RowRenderer.prototype, \"postConstruct\", null);\nRowRenderer = __decorate([\n Bean(\"rowRenderer\")\n], RowRenderer);\nexport { RowRenderer };\nclass RowCtrlCache {\n constructor(maxCount) {\n // map for fast access\n this.entriesMap = {};\n // list for keeping order\n this.entriesList = [];\n this.maxCount = maxCount;\n }\n addRow(rowCtrl) {\n this.entriesMap[rowCtrl.getRowNode().id] = rowCtrl;\n this.entriesList.push(rowCtrl);\n rowCtrl.setCached(true);\n if (this.entriesList.length > this.maxCount) {\n const rowCtrlToDestroy = this.entriesList[0];\n rowCtrlToDestroy.destroyFirstPass();\n rowCtrlToDestroy.destroySecondPass();\n this.removeFromCache(rowCtrlToDestroy);\n }\n }\n getRow(rowNode) {\n if (rowNode == null || rowNode.id == null) {\n return null;\n }\n const res = this.entriesMap[rowNode.id];\n if (!res) {\n return null;\n }\n this.removeFromCache(res);\n res.setCached(false);\n // this can happen if user reloads data, and a new RowNode is reusing\n // the same ID as the old one\n const rowNodeMismatch = res.getRowNode() != rowNode;\n return rowNodeMismatch ? null : res;\n }\n has(rowNode) {\n return this.entriesMap[rowNode.id] != null;\n }\n removeRow(rowNode) {\n const rowNodeId = rowNode.id;\n const ctrl = this.entriesMap[rowNodeId];\n delete this.entriesMap[rowNodeId];\n removeFromArray(this.entriesList, ctrl);\n }\n removeFromCache(rowCtrl) {\n const rowNodeId = rowCtrl.getRowNode().id;\n delete this.entriesMap[rowNodeId];\n removeFromArray(this.entriesList, rowCtrl);\n }\n getEntries() {\n return this.entriesList;\n }\n}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Bean, Autowired } from '../context/context.mjs';\nimport { BeanStub } from \"../context/beanStub.mjs\";\nlet ValueFormatterService = class ValueFormatterService extends BeanStub {\n formatValue(column, node, value, suppliedFormatter, useFormatterFromColumn = true) {\n let result = null;\n let formatter;\n const colDef = column.getColDef();\n if (suppliedFormatter) {\n // use supplied formatter if provided, e.g. set filter items can have their own value formatters\n formatter = suppliedFormatter;\n }\n else if (useFormatterFromColumn) {\n formatter = colDef.valueFormatter;\n }\n if (formatter) {\n const params = this.gridOptionsService.addGridCommonParams({\n value,\n node,\n data: node ? node.data : null,\n colDef,\n column\n });\n if (typeof formatter === 'function') {\n result = formatter(params);\n }\n else {\n result = this.expressionService.evaluate(formatter, params);\n }\n }\n else if (colDef.refData) {\n return colDef.refData[value] || '';\n }\n // if we don't do this, then arrays get displayed as 1,2,3, but we want 1, 2, 3 (i.e. with spaces)\n if (result == null && Array.isArray(value)) {\n result = value.join(', ');\n }\n return result;\n }\n};\n__decorate([\n Autowired('expressionService')\n], ValueFormatterService.prototype, \"expressionService\", void 0);\nValueFormatterService = __decorate([\n Bean('valueFormatterService')\n], ValueFormatterService);\nexport { ValueFormatterService };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { RowNode } from \"../entities/rowNode.mjs\";\nimport { Autowired, Bean, PostConstruct } from \"../context/context.mjs\";\nimport { Events } from \"../events.mjs\";\nimport { BeanStub } from \"../context/beanStub.mjs\";\nimport { missingOrEmpty } from \"../utils/generic.mjs\";\nimport { last } from \"../utils/array.mjs\";\nlet PinnedRowModel = class PinnedRowModel extends BeanStub {\n init() {\n this.setPinnedTopRowData();\n this.setPinnedBottomRowData();\n this.addManagedPropertyListener('pinnedTopRowData', () => this.setPinnedTopRowData());\n this.addManagedPropertyListener('pinnedBottomRowData', () => this.setPinnedBottomRowData());\n }\n isEmpty(floating) {\n const rows = floating === 'top' ? this.pinnedTopRows : this.pinnedBottomRows;\n return missingOrEmpty(rows);\n }\n isRowsToRender(floating) {\n return !this.isEmpty(floating);\n }\n getRowAtPixel(pixel, floating) {\n const rows = floating === 'top' ? this.pinnedTopRows : this.pinnedBottomRows;\n if (missingOrEmpty(rows)) {\n return 0; // this should never happen, just in case, 0 is graceful failure\n }\n for (let i = 0; i < rows.length; i++) {\n const rowNode = rows[i];\n const rowTopPixel = rowNode.rowTop + rowNode.rowHeight - 1;\n // only need to range check against the top pixel, as we are going through the list\n // in order, first row to hit the pixel wins\n if (rowTopPixel >= pixel) {\n return i;\n }\n }\n return rows.length - 1;\n }\n setPinnedTopRowData() {\n const rowData = this.gridOptionsService.get('pinnedTopRowData');\n this.pinnedTopRows = this.createNodesFromData(rowData, true);\n const event = {\n type: Events.EVENT_PINNED_ROW_DATA_CHANGED\n };\n this.eventService.dispatchEvent(event);\n }\n setPinnedBottomRowData() {\n const rowData = this.gridOptionsService.get('pinnedBottomRowData');\n this.pinnedBottomRows = this.createNodesFromData(rowData, false);\n const event = {\n type: Events.EVENT_PINNED_ROW_DATA_CHANGED\n };\n this.eventService.dispatchEvent(event);\n }\n createNodesFromData(allData, isTop) {\n const rowNodes = [];\n if (allData) {\n let nextRowTop = 0;\n allData.forEach((dataItem, index) => {\n const rowNode = new RowNode(this.beans);\n rowNode.data = dataItem;\n const idPrefix = isTop ? RowNode.ID_PREFIX_TOP_PINNED : RowNode.ID_PREFIX_BOTTOM_PINNED;\n rowNode.id = idPrefix + index;\n rowNode.rowPinned = isTop ? 'top' : 'bottom';\n rowNode.setRowTop(nextRowTop);\n rowNode.setRowHeight(this.gridOptionsService.getRowHeightForNode(rowNode).height);\n rowNode.setRowIndex(index);\n nextRowTop += rowNode.rowHeight;\n rowNodes.push(rowNode);\n });\n }\n return rowNodes;\n }\n getPinnedTopRowData() {\n return this.pinnedTopRows;\n }\n getPinnedBottomRowData() {\n return this.pinnedBottomRows;\n }\n getPinnedTopTotalHeight() {\n return this.getTotalHeight(this.pinnedTopRows);\n }\n getPinnedTopRowCount() {\n return this.pinnedTopRows ? this.pinnedTopRows.length : 0;\n }\n getPinnedBottomRowCount() {\n return this.pinnedBottomRows ? this.pinnedBottomRows.length : 0;\n }\n getPinnedTopRow(index) {\n return this.pinnedTopRows[index];\n }\n getPinnedBottomRow(index) {\n return this.pinnedBottomRows[index];\n }\n forEachPinnedTopRow(callback) {\n if (missingOrEmpty(this.pinnedTopRows)) {\n return;\n }\n this.pinnedTopRows.forEach(callback);\n }\n forEachPinnedBottomRow(callback) {\n if (missingOrEmpty(this.pinnedBottomRows)) {\n return;\n }\n this.pinnedBottomRows.forEach(callback);\n }\n getPinnedBottomTotalHeight() {\n return this.getTotalHeight(this.pinnedBottomRows);\n }\n getTotalHeight(rowNodes) {\n if (!rowNodes || rowNodes.length === 0) {\n return 0;\n }\n const lastNode = last(rowNodes);\n return lastNode.rowTop + lastNode.rowHeight;\n }\n};\n__decorate([\n Autowired('beans')\n], PinnedRowModel.prototype, \"beans\", void 0);\n__decorate([\n PostConstruct\n], PinnedRowModel.prototype, \"init\", null);\nPinnedRowModel = __decorate([\n Bean('pinnedRowModel')\n], PinnedRowModel);\nexport { PinnedRowModel };\n","export var ServerSideTransactionResultStatus;\n(function (ServerSideTransactionResultStatus) {\n /** Transaction was successfully applied */\n ServerSideTransactionResultStatus[\"Applied\"] = \"Applied\";\n /**\n * Store was not found, transaction not applied.\n * Either invalid route, or the parent row has not yet been expanded.\n */\n ServerSideTransactionResultStatus[\"StoreNotFound\"] = \"StoreNotFound\";\n /**\n * Store is loading, transaction not applied.\n */\n ServerSideTransactionResultStatus[\"StoreLoading\"] = \"StoreLoading\";\n /**\n * Store is loading (as max loads exceeded), transaction not applied.\n */\n ServerSideTransactionResultStatus[\"StoreWaitingToLoad\"] = \"StoreWaitingToLoad\";\n /**\n * Store load attempt failed, transaction not applied.\n */\n ServerSideTransactionResultStatus[\"StoreLoadingFailed\"] = \"StoreLoadingFailed\";\n /**\n * Store is type Partial, which doesn't accept transactions\n */\n ServerSideTransactionResultStatus[\"StoreWrongType\"] = \"StoreWrongType\";\n /**\n * Transaction was cancelled, due to grid.\n * Callback isApplyServerSideTransaction() returning false\n */\n ServerSideTransactionResultStatus[\"Cancelled\"] = \"Cancelled\";\n /**\n * Store has not started yet, transaction not applied\n */\n ServerSideTransactionResultStatus[\"StoreNotStarted\"] = \"StoreNotStarted\";\n})(ServerSideTransactionResultStatus || (ServerSideTransactionResultStatus = {}));\n","// when doing transactions, or change detection, and grouping is present\n// in the data, there is no need for the ClientSideRowModel to update each\n// group after an update, ony parts that were impacted by the change.\n// this class keeps track of all groups that were impacted by a transaction.\n// the the different CSRM operations (filter, sort etc) use the forEach method\n// to visit each group that was changed.\nexport class ChangedPath {\n constructor(keepingColumns, rootNode) {\n // whether changed path is active of not. it is active when a) doing\n // a transaction update or b) doing change detection. if we are doing\n // a CSRM refresh for other reasons (after sort or filter, or user calling\n // setRowData() without delta mode) then we are not active. we are also\n // marked as not active if secondary columns change in pivot (as this impacts\n // aggregations)\n this.active = true;\n // for each node in the change path, we also store which columns need\n // to be re-aggregated.\n this.nodeIdsToColumns = {};\n // for quick lookup, all items in the change path are mapped by nodeId\n this.mapToItems = {};\n this.keepingColumns = keepingColumns;\n this.pathRoot = {\n rowNode: rootNode,\n children: null\n };\n this.mapToItems[rootNode.id] = this.pathRoot;\n }\n // can be set inactive by:\n // a) ClientSideRowModel, if no transactions or\n // b) PivotService, if secondary columns changed\n setInactive() {\n this.active = false;\n }\n isActive() {\n return this.active;\n }\n depthFirstSearchChangedPath(pathItem, callback) {\n if (pathItem.children) {\n for (let i = 0; i < pathItem.children.length; i++) {\n this.depthFirstSearchChangedPath(pathItem.children[i], callback);\n }\n }\n callback(pathItem.rowNode);\n }\n depthFirstSearchEverything(rowNode, callback, traverseEverything) {\n if (rowNode.childrenAfterGroup) {\n for (let i = 0; i < rowNode.childrenAfterGroup.length; i++) {\n const childNode = rowNode.childrenAfterGroup[i];\n if (childNode.childrenAfterGroup) {\n this.depthFirstSearchEverything(rowNode.childrenAfterGroup[i], callback, traverseEverything);\n }\n else if (traverseEverything) {\n callback(childNode);\n }\n }\n }\n callback(rowNode);\n }\n // traverseLeafNodes -> used when NOT doing changed path, ie traversing everything. the callback\n // will be called for child nodes in addition to parent nodes.\n forEachChangedNodeDepthFirst(callback, traverseLeafNodes = false, includeUnchangedNodes = false) {\n if (this.active && !includeUnchangedNodes) {\n // if we are active, then use the change path to callback\n // only for updated groups\n this.depthFirstSearchChangedPath(this.pathRoot, callback);\n }\n else {\n // we are not active, so callback for everything, walk the entire path\n this.depthFirstSearchEverything(this.pathRoot.rowNode, callback, traverseLeafNodes);\n }\n }\n executeFromRootNode(callback) {\n callback(this.pathRoot.rowNode);\n }\n createPathItems(rowNode) {\n let pointer = rowNode;\n let newEntryCount = 0;\n while (!this.mapToItems[pointer.id]) {\n const newEntry = {\n rowNode: pointer,\n children: null\n };\n this.mapToItems[pointer.id] = newEntry;\n newEntryCount++;\n pointer = pointer.parent;\n }\n return newEntryCount;\n }\n populateColumnsMap(rowNode, columns) {\n if (!this.keepingColumns || !columns) {\n return;\n }\n let pointer = rowNode;\n while (pointer) {\n // if columns, add the columns in all the way to parent, merging\n // in any other columns that might be there already\n if (!this.nodeIdsToColumns[pointer.id]) {\n this.nodeIdsToColumns[pointer.id] = {};\n }\n columns.forEach(col => this.nodeIdsToColumns[pointer.id][col.getId()] = true);\n pointer = pointer.parent;\n }\n }\n linkPathItems(rowNode, newEntryCount) {\n let pointer = rowNode;\n for (let i = 0; i < newEntryCount; i++) {\n const thisItem = this.mapToItems[pointer.id];\n const parentItem = this.mapToItems[pointer.parent.id];\n if (!parentItem.children) {\n parentItem.children = [];\n }\n parentItem.children.push(thisItem);\n pointer = pointer.parent;\n }\n }\n // called by\n // 1) change detection (provides cols) and\n // 2) groupStage if doing transaction update (doesn't provide cols)\n addParentNode(rowNode, columns) {\n if (!rowNode || rowNode.isRowPinned()) {\n return;\n }\n // we cannot do both steps below in the same loop as\n // the second loop has a dependency on the first loop.\n // ie the hierarchy cannot be stitched up yet because\n // we don't have it built yet\n // create the new PathItem objects.\n const newEntryCount = this.createPathItems(rowNode);\n // link in the node items\n this.linkPathItems(rowNode, newEntryCount);\n // update columns\n this.populateColumnsMap(rowNode, columns);\n }\n canSkip(rowNode) {\n return this.active && !this.mapToItems[rowNode.id];\n }\n getValueColumnsForNode(rowNode, valueColumns) {\n if (!this.keepingColumns) {\n return valueColumns;\n }\n const colsForThisNode = this.nodeIdsToColumns[rowNode.id];\n const result = valueColumns.filter(col => colsForThisNode[col.getId()]);\n return result;\n }\n getNotValueColumnsForNode(rowNode, valueColumns) {\n if (!this.keepingColumns) {\n return null;\n }\n const colsForThisNode = this.nodeIdsToColumns[rowNode.id];\n const result = valueColumns.filter(col => !colsForThisNode[col.getId()]);\n return result;\n }\n}\n","import { BeanStub } from \"../context/beanStub.mjs\";\nexport class RowNodeBlock extends BeanStub {\n constructor(id) {\n super();\n this.state = RowNodeBlock.STATE_WAITING_TO_LOAD;\n this.version = 0;\n this.id = id;\n }\n getId() {\n return this.id;\n }\n load() {\n this.state = RowNodeBlock.STATE_LOADING;\n this.loadFromDatasource();\n }\n getVersion() {\n return this.version;\n }\n setStateWaitingToLoad() {\n // in case any current loads in progress, this will have their results ignored\n this.version++;\n this.state = RowNodeBlock.STATE_WAITING_TO_LOAD;\n }\n getState() {\n return this.state;\n }\n pageLoadFailed(version) {\n const requestMostRecentAndLive = this.isRequestMostRecentAndLive(version);\n if (requestMostRecentAndLive) {\n this.state = RowNodeBlock.STATE_FAILED;\n this.processServerFail();\n }\n this.dispatchLoadCompleted(false);\n }\n success(version, params) {\n this.successCommon(version, params);\n }\n pageLoaded(version, rows, lastRow) {\n this.successCommon(version, { rowData: rows, rowCount: lastRow });\n }\n isRequestMostRecentAndLive(version) {\n // thisIsMostRecentRequest - if block was refreshed, then another request\n // could of been sent after this one.\n const thisIsMostRecentRequest = version === this.version;\n // weAreNotDestroyed - if InfiniteStore is purged, then blocks are destroyed\n // and new blocks created. so data loads of old blocks are discarded.\n const weAreNotDestroyed = this.isAlive();\n return thisIsMostRecentRequest && weAreNotDestroyed;\n }\n successCommon(version, params) {\n // need to dispatch load complete before processing the data, as PaginationComp checks\n // RowNodeBlockLoader to see if it is still loading, so the RowNodeBlockLoader needs to\n // be updated first (via LoadComplete event) before PaginationComp updates (via processServerResult method)\n this.dispatchLoadCompleted();\n const requestMostRecentAndLive = this.isRequestMostRecentAndLive(version);\n if (requestMostRecentAndLive) {\n this.state = RowNodeBlock.STATE_LOADED;\n this.processServerResult(params);\n }\n }\n dispatchLoadCompleted(success = true) {\n // we fire event regardless of processing data or now, as we want\n // the concurrentLoadRequests count to be reduced in BlockLoader\n const event = {\n type: RowNodeBlock.EVENT_LOAD_COMPLETE,\n success: success,\n block: this\n };\n this.dispatchEvent(event);\n }\n}\nRowNodeBlock.EVENT_LOAD_COMPLETE = 'loadComplete';\nRowNodeBlock.STATE_WAITING_TO_LOAD = 'needsLoading';\nRowNodeBlock.STATE_LOADING = 'loading';\nRowNodeBlock.STATE_LOADED = 'loaded';\nRowNodeBlock.STATE_FAILED = 'failed';\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar RowNodeBlockLoader_1;\nimport { RowNodeBlock } from \"./rowNodeBlock.mjs\";\nimport { Autowired, Bean, PostConstruct, Qualifier } from \"../context/context.mjs\";\nimport { BeanStub } from \"../context/beanStub.mjs\";\nimport { _ } from \"../utils/index.mjs\";\nlet RowNodeBlockLoader = RowNodeBlockLoader_1 = class RowNodeBlockLoader extends BeanStub {\n constructor() {\n super(...arguments);\n this.activeBlockLoadsCount = 0;\n this.blocks = [];\n this.active = true;\n }\n postConstruct() {\n this.maxConcurrentRequests = this.getMaxConcurrentDatasourceRequests();\n const blockLoadDebounceMillis = this.gridOptionsService.get('blockLoadDebounceMillis');\n if (blockLoadDebounceMillis && blockLoadDebounceMillis > 0) {\n this.checkBlockToLoadDebounce = _.debounce(this.performCheckBlocksToLoad.bind(this), blockLoadDebounceMillis);\n }\n }\n setBeans(loggerFactory) {\n this.logger = loggerFactory.create('RowNodeBlockLoader');\n }\n getMaxConcurrentDatasourceRequests() {\n const res = this.gridOptionsService.get('maxConcurrentDatasourceRequests');\n if (res == null) {\n return 2;\n } // 2 is the default\n if (res <= 0) {\n return;\n } // negative number, eg -1, means no max restriction\n return res;\n }\n addBlock(block) {\n this.blocks.push(block);\n // note that we do not remove this listener when removing the block. this is because the\n // cache can get destroyed (and containing blocks) when a block is loading. however the loading block\n // is still counted as an active loading block and we must decrement activeBlockLoadsCount when it finishes.\n block.addEventListener(RowNodeBlock.EVENT_LOAD_COMPLETE, this.loadComplete.bind(this));\n this.checkBlockToLoad();\n }\n removeBlock(block) {\n _.removeFromArray(this.blocks, block);\n }\n destroy() {\n super.destroy();\n this.active = false;\n }\n loadComplete() {\n this.activeBlockLoadsCount--;\n this.checkBlockToLoad();\n this.dispatchEvent({ type: RowNodeBlockLoader_1.BLOCK_LOADED_EVENT });\n if (this.activeBlockLoadsCount == 0) {\n this.dispatchEvent({ type: RowNodeBlockLoader_1.BLOCK_LOADER_FINISHED_EVENT });\n }\n }\n checkBlockToLoad() {\n if (this.checkBlockToLoadDebounce) {\n this.checkBlockToLoadDebounce();\n }\n else {\n this.performCheckBlocksToLoad();\n }\n }\n performCheckBlocksToLoad() {\n if (!this.active) {\n return;\n }\n this.printCacheStatus();\n if (this.maxConcurrentRequests != null && this.activeBlockLoadsCount >= this.maxConcurrentRequests) {\n this.logger.log(`checkBlockToLoad: max loads exceeded`);\n return;\n }\n const loadAvailability = this.getAvailableLoadingCount();\n const blocksToLoad = this.blocks.filter(block => (block.getState() === RowNodeBlock.STATE_WAITING_TO_LOAD)).slice(0, loadAvailability);\n this.registerLoads(blocksToLoad.length);\n blocksToLoad.forEach(block => block.load());\n this.printCacheStatus();\n }\n getBlockState() {\n if (this.gridOptionsService.isRowModelType('serverSide')) {\n const ssrm = this.rowModel;\n return ssrm.getBlockStates();\n }\n const result = {};\n this.blocks.forEach((block) => {\n const { id, state } = block.getBlockStateJson();\n result[id] = state;\n });\n return result;\n }\n printCacheStatus() {\n if (this.logger.isLogging()) {\n this.logger.log(`printCacheStatus: activePageLoadsCount = ${this.activeBlockLoadsCount},`\n + ` blocks = ${JSON.stringify(this.getBlockState())}`);\n }\n }\n isLoading() {\n return this.activeBlockLoadsCount > 0;\n }\n registerLoads(count) {\n this.activeBlockLoadsCount += count;\n }\n getAvailableLoadingCount() {\n return this.maxConcurrentRequests !== undefined ? this.maxConcurrentRequests - this.activeBlockLoadsCount : undefined;\n }\n};\nRowNodeBlockLoader.BLOCK_LOADED_EVENT = 'blockLoaded';\nRowNodeBlockLoader.BLOCK_LOADER_FINISHED_EVENT = 'blockLoaderFinished';\n__decorate([\n Autowired('rowModel')\n], RowNodeBlockLoader.prototype, \"rowModel\", void 0);\n__decorate([\n PostConstruct\n], RowNodeBlockLoader.prototype, \"postConstruct\", null);\n__decorate([\n __param(0, Qualifier('loggerFactory'))\n], RowNodeBlockLoader.prototype, \"setBeans\", null);\nRowNodeBlockLoader = RowNodeBlockLoader_1 = __decorate([\n Bean('rowNodeBlockLoader')\n], RowNodeBlockLoader);\nexport { RowNodeBlockLoader };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { BeanStub } from \"../context/beanStub.mjs\";\nimport { Events } from \"../events.mjs\";\nimport { Autowired, Bean, PostConstruct } from \"../context/context.mjs\";\nimport { missing, exists } from \"../utils/generic.mjs\";\nlet PaginationProxy = class PaginationProxy extends BeanStub {\n constructor() {\n super(...arguments);\n this.currentPage = 0;\n this.topDisplayedRowIndex = 0;\n this.bottomDisplayedRowIndex = 0;\n this.pixelOffset = 0;\n this.masterRowCount = 0;\n }\n postConstruct() {\n this.active = this.gridOptionsService.get('pagination');\n this.pageSizeFromGridOptions = this.gridOptionsService.get('paginationPageSize');\n this.paginateChildRows = this.isPaginateChildRows();\n this.addManagedListener(this.eventService, Events.EVENT_MODEL_UPDATED, this.onModelUpdated.bind(this));\n this.addManagedPropertyListener('pagination', this.onPaginationGridOptionChanged.bind(this));\n this.addManagedPropertyListener('paginationPageSize', this.onPageSizeGridOptionChanged.bind(this));\n this.onModelUpdated();\n }\n ensureRowHeightsValid(startPixel, endPixel, startLimitIndex, endLimitIndex) {\n const res = this.rowModel.ensureRowHeightsValid(startPixel, endPixel, this.getPageFirstRow(), this.getPageLastRow());\n if (res) {\n this.calculatePages();\n }\n return res;\n }\n isPaginateChildRows() {\n const shouldPaginate = this.gridOptionsService.get('groupRemoveSingleChildren') || this.gridOptionsService.get('groupRemoveLowestSingleChildren');\n if (shouldPaginate) {\n return true;\n }\n return this.gridOptionsService.get('paginateChildRows');\n }\n onModelUpdated(modelUpdatedEvent) {\n this.calculatePages();\n const paginationChangedEvent = {\n type: Events.EVENT_PAGINATION_CHANGED,\n animate: modelUpdatedEvent ? modelUpdatedEvent.animate : false,\n newData: modelUpdatedEvent ? modelUpdatedEvent.newData : false,\n newPage: modelUpdatedEvent ? modelUpdatedEvent.newPage : false,\n newPageSize: modelUpdatedEvent ? modelUpdatedEvent.newPageSize : false,\n keepRenderedRows: modelUpdatedEvent ? modelUpdatedEvent.keepRenderedRows : false\n };\n this.eventService.dispatchEvent(paginationChangedEvent);\n }\n onPaginationGridOptionChanged() {\n this.active = this.gridOptionsService.get('pagination');\n this.calculatePages();\n const paginationChangedEvent = {\n type: Events.EVENT_PAGINATION_CHANGED,\n animate: false,\n newData: false,\n newPage: false,\n newPageSize: false,\n // important to keep rendered rows, otherwise every time grid is resized,\n // we would destroy all the rows.\n keepRenderedRows: true\n };\n this.eventService.dispatchEvent(paginationChangedEvent);\n }\n onPageSizeGridOptionChanged() {\n this.setPageSize(this.gridOptionsService.get('paginationPageSize'), 'gridOptions');\n }\n goToPage(page) {\n if (!this.active || this.currentPage === page || typeof this.currentPage !== 'number') {\n return;\n }\n this.currentPage = page;\n const event = {\n type: Events.EVENT_MODEL_UPDATED,\n animate: false,\n keepRenderedRows: false,\n newData: false,\n newPage: true,\n newPageSize: false\n };\n this.onModelUpdated(event);\n }\n getPixelOffset() {\n return this.pixelOffset;\n }\n getRow(index) {\n return this.rowModel.getRow(index);\n }\n getRowNode(id) {\n return this.rowModel.getRowNode(id);\n }\n getRowIndexAtPixel(pixel) {\n return this.rowModel.getRowIndexAtPixel(pixel);\n }\n getCurrentPageHeight() {\n if (missing(this.topRowBounds) || missing(this.bottomRowBounds)) {\n return 0;\n }\n return Math.max(this.bottomRowBounds.rowTop + this.bottomRowBounds.rowHeight - this.topRowBounds.rowTop, 0);\n }\n getCurrentPagePixelRange() {\n const pageFirstPixel = this.topRowBounds ? this.topRowBounds.rowTop : 0;\n const pageLastPixel = this.bottomRowBounds ? this.bottomRowBounds.rowTop + this.bottomRowBounds.rowHeight : 0;\n return { pageFirstPixel, pageLastPixel };\n }\n isRowPresent(rowNode) {\n if (!this.rowModel.isRowPresent(rowNode)) {\n return false;\n }\n const nodeIsInPage = rowNode.rowIndex >= this.topDisplayedRowIndex && rowNode.rowIndex <= this.bottomDisplayedRowIndex;\n return nodeIsInPage;\n }\n isEmpty() {\n return this.rowModel.isEmpty();\n }\n isRowsToRender() {\n return this.rowModel.isRowsToRender();\n }\n forEachNode(callback) {\n return this.rowModel.forEachNode(callback);\n }\n forEachNodeOnPage(callback) {\n const firstRow = this.getPageFirstRow();\n const lastRow = this.getPageLastRow();\n for (let i = firstRow; i <= lastRow; i++) {\n const node = this.getRow(i);\n if (node) {\n callback(node);\n }\n }\n }\n getType() {\n return this.rowModel.getType();\n }\n getRowBounds(index) {\n const res = this.rowModel.getRowBounds(index);\n res.rowIndex = index;\n return res;\n }\n getPageFirstRow() {\n return this.topRowBounds ? this.topRowBounds.rowIndex : -1;\n }\n getPageLastRow() {\n return this.bottomRowBounds ? this.bottomRowBounds.rowIndex : -1;\n }\n getRowCount() {\n return this.rowModel.getRowCount();\n }\n getPageForIndex(index) {\n return Math.floor(index / this.pageSize);\n }\n goToPageWithIndex(index) {\n if (!this.active) {\n return;\n }\n const pageNumber = this.getPageForIndex(index);\n this.goToPage(pageNumber);\n }\n isRowInPage(row) {\n if (!this.active) {\n return true;\n }\n const rowPage = this.getPageForIndex(row.rowIndex);\n return rowPage === this.currentPage;\n }\n isLastPageFound() {\n return this.rowModel.isLastRowIndexKnown();\n }\n getCurrentPage() {\n return this.currentPage;\n }\n goToNextPage() {\n this.goToPage(this.currentPage + 1);\n }\n goToPreviousPage() {\n this.goToPage(this.currentPage - 1);\n }\n goToFirstPage() {\n this.goToPage(0);\n }\n goToLastPage() {\n const rowCount = this.rowModel.getRowCount();\n const lastPage = Math.floor(rowCount / this.pageSize);\n this.goToPage(lastPage);\n }\n getPageSize() {\n return this.pageSize;\n }\n getTotalPages() {\n return this.totalPages;\n }\n /** This is only for state setting before data has been loaded */\n setPage(page) {\n this.currentPage = page;\n }\n get pageSize() {\n if (exists(this.pageSizeAutoCalculated)) {\n return this.pageSizeAutoCalculated;\n }\n if (exists(this.pageSizeFromPageSizeSelector)) {\n return this.pageSizeFromPageSizeSelector;\n }\n if (exists(this.pageSizeFromInitialState)) {\n return this.pageSizeFromInitialState;\n }\n if (exists(this.pageSizeFromGridOptions)) {\n return this.pageSizeFromGridOptions;\n }\n return this.defaultPageSize;\n }\n unsetAutoCalculatedPageSize() {\n if (this.pageSizeAutoCalculated === undefined) {\n return;\n }\n const oldPageSize = this.pageSizeAutoCalculated;\n this.pageSizeAutoCalculated = undefined;\n if (this.pageSize === oldPageSize) {\n return;\n }\n this.onModelUpdated({\n type: Events.EVENT_MODEL_UPDATED,\n animate: false,\n keepRenderedRows: false,\n newData: false,\n newPage: false,\n newPageSize: true,\n });\n }\n setPageSize(size, source) {\n const currentSize = this.pageSize;\n switch (source) {\n case 'autoCalculated':\n this.pageSizeAutoCalculated = size;\n break;\n case 'pageSizeSelector':\n this.pageSizeFromPageSizeSelector = size;\n if (this.currentPage !== 0) {\n this.goToFirstPage();\n }\n break;\n case 'initialState':\n this.pageSizeFromInitialState = size;\n break;\n case 'gridOptions':\n this.pageSizeFromGridOptions = size;\n this.pageSizeFromInitialState = undefined;\n this.pageSizeFromPageSizeSelector = undefined;\n if (this.currentPage !== 0) {\n this.goToFirstPage();\n }\n break;\n }\n if (currentSize !== this.pageSize) {\n const event = {\n type: Events.EVENT_MODEL_UPDATED,\n animate: false,\n keepRenderedRows: false,\n newData: false,\n newPage: false,\n newPageSize: true,\n };\n this.onModelUpdated(event);\n }\n }\n calculatePages() {\n if (this.active) {\n if (this.paginateChildRows) {\n this.calculatePagesAllRows();\n }\n else {\n this.calculatePagesMasterRowsOnly();\n }\n }\n else {\n this.calculatedPagesNotActive();\n }\n this.topRowBounds = this.rowModel.getRowBounds(this.topDisplayedRowIndex);\n if (this.topRowBounds) {\n this.topRowBounds.rowIndex = this.topDisplayedRowIndex;\n }\n this.bottomRowBounds = this.rowModel.getRowBounds(this.bottomDisplayedRowIndex);\n if (this.bottomRowBounds) {\n this.bottomRowBounds.rowIndex = this.bottomDisplayedRowIndex;\n }\n this.setPixelOffset(exists(this.topRowBounds) ? this.topRowBounds.rowTop : 0);\n }\n setPixelOffset(value) {\n if (this.pixelOffset === value) {\n return;\n }\n this.pixelOffset = value;\n this.eventService.dispatchEvent({ type: Events.EVENT_PAGINATION_PIXEL_OFFSET_CHANGED });\n }\n setZeroRows() {\n this.masterRowCount = 0;\n this.topDisplayedRowIndex = 0;\n this.bottomDisplayedRowIndex = -1;\n this.currentPage = 0;\n this.totalPages = 0;\n }\n adjustCurrentPageIfInvalid() {\n if (this.currentPage >= this.totalPages) {\n this.currentPage = this.totalPages - 1;\n }\n if (!isFinite(this.currentPage) || isNaN(this.currentPage) || this.currentPage < 0) {\n this.currentPage = 0;\n }\n }\n calculatePagesMasterRowsOnly() {\n // const csrm = this.rowModel;\n // const rootNode = csrm.getRootNode();\n // const masterRows = rootNode.childrenAfterSort;\n this.masterRowCount = this.rowModel.getTopLevelRowCount();\n // we say <=0 (rather than =0) as viewport returns -1 when no rows\n if (this.masterRowCount <= 0) {\n this.setZeroRows();\n return;\n }\n const masterLastRowIndex = this.masterRowCount - 1;\n this.totalPages = Math.floor((masterLastRowIndex) / this.pageSize) + 1;\n this.adjustCurrentPageIfInvalid();\n const masterPageStartIndex = this.pageSize * this.currentPage;\n let masterPageEndIndex = (this.pageSize * (this.currentPage + 1)) - 1;\n if (masterPageEndIndex > masterLastRowIndex) {\n masterPageEndIndex = masterLastRowIndex;\n }\n this.topDisplayedRowIndex = this.rowModel.getTopLevelRowDisplayedIndex(masterPageStartIndex);\n // masterRows[masterPageStartIndex].rowIndex;\n if (masterPageEndIndex === masterLastRowIndex) {\n // if showing the last master row, then we want to show the very last row of the model\n this.bottomDisplayedRowIndex = this.rowModel.getRowCount() - 1;\n }\n else {\n const firstIndexNotToShow = this.rowModel.getTopLevelRowDisplayedIndex(masterPageEndIndex + 1);\n //masterRows[masterPageEndIndex + 1].rowIndex;\n // this gets the index of the last child - eg current row is open, we want to display all children,\n // the index of the last child is one less than the index of the next parent row.\n this.bottomDisplayedRowIndex = firstIndexNotToShow - 1;\n }\n }\n getMasterRowCount() {\n return this.masterRowCount;\n }\n calculatePagesAllRows() {\n this.masterRowCount = this.rowModel.getRowCount();\n if (this.masterRowCount === 0) {\n this.setZeroRows();\n return;\n }\n const maxRowIndex = this.masterRowCount - 1;\n this.totalPages = Math.floor((maxRowIndex) / this.pageSize) + 1;\n this.adjustCurrentPageIfInvalid();\n this.topDisplayedRowIndex = this.pageSize * this.currentPage;\n this.bottomDisplayedRowIndex = (this.pageSize * (this.currentPage + 1)) - 1;\n if (this.bottomDisplayedRowIndex > maxRowIndex) {\n this.bottomDisplayedRowIndex = maxRowIndex;\n }\n }\n calculatedPagesNotActive() {\n this.setPageSize(this.masterRowCount, 'autoCalculated');\n this.totalPages = 1;\n this.currentPage = 0;\n this.topDisplayedRowIndex = 0;\n this.bottomDisplayedRowIndex = this.rowModel.getRowCount() - 1;\n }\n};\n__decorate([\n Autowired('rowModel')\n], PaginationProxy.prototype, \"rowModel\", void 0);\n__decorate([\n PostConstruct\n], PaginationProxy.prototype, \"postConstruct\", null);\nPaginationProxy = __decorate([\n Bean('paginationProxy')\n], PaginationProxy);\nexport { PaginationProxy };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Autowired, Bean } from \"../context/context.mjs\";\nimport { BeanStub } from \"../context/beanStub.mjs\";\nlet StylingService = class StylingService extends BeanStub {\n processAllCellClasses(colDef, params, onApplicableClass, onNotApplicableClass) {\n this.processClassRules(undefined, colDef.cellClassRules, params, onApplicableClass, onNotApplicableClass);\n this.processStaticCellClasses(colDef, params, onApplicableClass);\n }\n processClassRules(previousClassRules, classRules, params, onApplicableClass, onNotApplicableClass) {\n if (classRules == null && previousClassRules == null) {\n return;\n }\n const classesToApply = {};\n const classesToRemove = {};\n const forEachSingleClass = (className, callback) => {\n // in case className = 'my-class1 my-class2', we need to split into individual class names\n className.split(' ').forEach(singleClass => {\n if (singleClass.trim() == '')\n return;\n callback(singleClass);\n });\n };\n if (classRules) {\n const classNames = Object.keys(classRules);\n for (let i = 0; i < classNames.length; i++) {\n const className = classNames[i];\n const rule = classRules[className];\n let resultOfRule;\n if (typeof rule === 'string') {\n resultOfRule = this.expressionService.evaluate(rule, params);\n }\n else if (typeof rule === 'function') {\n resultOfRule = rule(params);\n }\n forEachSingleClass(className, singleClass => {\n resultOfRule ? classesToApply[singleClass] = true : classesToRemove[singleClass] = true;\n });\n }\n }\n if (previousClassRules && onNotApplicableClass) {\n Object.keys(previousClassRules).forEach(className => forEachSingleClass(className, singleClass => {\n if (!classesToApply[singleClass]) {\n // if we're not applying a previous class now, make sure we remove it\n classesToRemove[singleClass] = true;\n }\n }));\n }\n // we remove all classes first, then add all classes second,\n // in case a class appears in more than one rule, this means it will be added\n // if appears in at least one truthy rule\n if (onNotApplicableClass) {\n Object.keys(classesToRemove).forEach(onNotApplicableClass);\n }\n Object.keys(classesToApply).forEach(onApplicableClass);\n }\n getStaticCellClasses(colDef, params) {\n const { cellClass } = colDef;\n if (!cellClass) {\n return [];\n }\n let classOrClasses;\n if (typeof cellClass === 'function') {\n const cellClassFunc = cellClass;\n classOrClasses = cellClassFunc(params);\n }\n else {\n classOrClasses = cellClass;\n }\n if (typeof classOrClasses === 'string') {\n classOrClasses = [classOrClasses];\n }\n return classOrClasses || [];\n }\n processStaticCellClasses(colDef, params, onApplicableClass) {\n const classOrClasses = this.getStaticCellClasses(colDef, params);\n classOrClasses.forEach((cssClassItem) => {\n onApplicableClass(cssClassItem);\n });\n }\n};\n__decorate([\n Autowired('expressionService')\n], StylingService.prototype, \"expressionService\", void 0);\nStylingService = __decorate([\n Bean('stylingService')\n], StylingService);\nexport { StylingService };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Autowired, PostConstruct } from \"../context/context.mjs\";\nimport { Events } from \"../eventKeys.mjs\";\nimport { bindCellRendererToHtmlElement } from \"../utils/dom.mjs\";\nimport { Component } from \"./component.mjs\";\nimport { escapeString } from \"../utils/string.mjs\";\nimport { exists } from \"../utils/generic.mjs\";\nimport { setAriaActiveDescendant, setAriaSelected } from \"../utils/aria.mjs\";\nexport class RichSelectRow extends Component {\n constructor(params, wrapperEl) {\n super(/* html */ `
`);\n this.params = params;\n this.wrapperEl = wrapperEl;\n }\n postConstruct() {\n this.addManagedListener(this.getGui(), 'click', this.onClick.bind(this));\n }\n setState(value) {\n let formattedValue = '';\n if (this.params.valueFormatter) {\n formattedValue = this.params.valueFormatter(value);\n }\n const rendererSuccessful = this.populateWithRenderer(value, formattedValue);\n if (!rendererSuccessful) {\n this.populateWithoutRenderer(value, formattedValue);\n }\n this.value = value;\n }\n highlightString(matchString) {\n const { parsedValue } = this;\n if (this.params.cellRenderer || !exists(parsedValue)) {\n return;\n }\n let hasMatch = exists(matchString);\n if (hasMatch) {\n const index = parsedValue === null || parsedValue === void 0 ? void 0 : parsedValue.toLocaleLowerCase().indexOf(matchString.toLocaleLowerCase());\n if (index >= 0) {\n const highlightEndIndex = index + matchString.length;\n const startPart = escapeString(parsedValue.slice(0, index), true);\n const highlightedPart = escapeString(parsedValue.slice(index, highlightEndIndex), true);\n const endPart = escapeString(parsedValue.slice(highlightEndIndex));\n this.renderValueWithoutRenderer(`${startPart}${highlightedPart}${endPart}`);\n }\n else {\n hasMatch = false;\n }\n }\n if (!hasMatch) {\n this.renderValueWithoutRenderer(parsedValue);\n }\n }\n updateHighlighted(highlighted) {\n var _a;\n const eGui = this.getGui();\n const parentId = `ag-rich-select-row-${this.getCompId()}`;\n (_a = eGui.parentElement) === null || _a === void 0 ? void 0 : _a.setAttribute('id', parentId);\n if (highlighted) {\n const parentAriaEl = this.getParentComponent().getAriaElement();\n setAriaActiveDescendant(parentAriaEl, parentId);\n this.wrapperEl.setAttribute('data-active-option', parentId);\n }\n setAriaSelected(eGui.parentElement, highlighted);\n this.addOrRemoveCssClass('ag-rich-select-row-selected', highlighted);\n }\n populateWithoutRenderer(value, valueFormatted) {\n const eDocument = this.gridOptionsService.getDocument();\n const eGui = this.getGui();\n const span = eDocument.createElement('span');\n span.style.overflow = 'hidden';\n span.style.textOverflow = 'ellipsis';\n const parsedValue = escapeString(exists(valueFormatted) ? valueFormatted : value, true);\n this.parsedValue = exists(parsedValue) ? parsedValue : null;\n eGui.appendChild(span);\n this.renderValueWithoutRenderer(parsedValue);\n }\n renderValueWithoutRenderer(value) {\n const span = this.getGui().querySelector('span');\n if (!span) {\n return;\n }\n span.innerHTML = exists(value) ? value : ' ';\n }\n populateWithRenderer(value, valueFormatted) {\n // bad coder here - we are not populating all values of the cellRendererParams\n let cellRendererPromise;\n let userCompDetails;\n if (this.params.cellRenderer) {\n userCompDetails = this.userComponentFactory.getCellRendererDetails(this.params, {\n value,\n valueFormatted\n });\n }\n if (userCompDetails) {\n cellRendererPromise = userCompDetails.newAgStackInstance();\n }\n if (cellRendererPromise) {\n bindCellRendererToHtmlElement(cellRendererPromise, this.getGui());\n }\n if (cellRendererPromise) {\n cellRendererPromise.then(childComponent => {\n this.addDestroyFunc(() => {\n this.getContext().destroyBean(childComponent);\n });\n });\n return true;\n }\n return false;\n }\n onClick() {\n const parent = this.getParentComponent();\n const event = {\n type: Events.EVENT_FIELD_PICKER_VALUE_SELECTED,\n fromEnterKey: false,\n value: this.value\n };\n parent === null || parent === void 0 ? void 0 : parent.dispatchEvent(event);\n }\n}\n__decorate([\n Autowired('userComponentFactory')\n], RichSelectRow.prototype, \"userComponentFactory\", void 0);\n__decorate([\n PostConstruct\n], RichSelectRow.prototype, \"postConstruct\", null);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Autowired, PostConstruct } from '../context/context.mjs';\nimport { RefSelector } from './componentAnnotations.mjs';\nimport { getAriaPosInSet, setAriaSetSize, setAriaPosInSet, setAriaRole, setAriaLabel } from '../utils/aria.mjs';\nimport { KeyCode } from '../constants/keyCode.mjs';\nimport { waitUntil } from '../utils/function.mjs';\nimport { TabGuardComp } from './tabGuardComp.mjs';\nimport { Events } from '../eventKeys.mjs';\nimport { stopPropagationForAgGrid } from '../utils/event.mjs';\nexport class VirtualList extends TabGuardComp {\n constructor(params) {\n super(VirtualList.getTemplate((params === null || params === void 0 ? void 0 : params.cssIdentifier) || 'default'));\n this.renderedRows = new Map();\n this.rowHeight = 20;\n const { cssIdentifier = 'default', ariaRole = 'listbox', listName } = params || {};\n this.cssIdentifier = cssIdentifier;\n this.ariaRole = ariaRole;\n this.listName = listName;\n }\n postConstruct() {\n this.addScrollListener();\n this.rowHeight = this.getItemHeight();\n this.addResizeObserver();\n this.initialiseTabGuard({\n onFocusIn: (e) => this.onFocusIn(e),\n onFocusOut: (e) => this.onFocusOut(e),\n focusInnerElement: (fromBottom) => this.focusInnerElement(fromBottom),\n onTabKeyDown: e => this.onTabKeyDown(e),\n handleKeyDown: e => this.handleKeyDown(e)\n });\n this.setAriaProperties();\n this.addManagedListener(this.eventService, Events.EVENT_GRID_STYLES_CHANGED, this.onGridStylesChanged.bind(this));\n }\n onGridStylesChanged() {\n this.rowHeight = this.getItemHeight();\n this.refresh();\n }\n setAriaProperties() {\n const translate = this.localeService.getLocaleTextFunc();\n const listName = translate('ariaDefaultListName', this.listName || 'List');\n const ariaEl = this.eContainer;\n setAriaRole(ariaEl, this.ariaRole);\n setAriaLabel(ariaEl, listName);\n }\n addResizeObserver() {\n // do this in an animation frame to prevent loops\n const listener = () => this.animationFrameService.requestAnimationFrame(() => this.drawVirtualRows());\n const destroyObserver = this.resizeObserverService.observeResize(this.getGui(), listener);\n this.addDestroyFunc(destroyObserver);\n }\n focusInnerElement(fromBottom) {\n this.focusRow(fromBottom ? this.model.getRowCount() - 1 : 0);\n }\n onFocusIn(e) {\n const target = e.target;\n if (target.classList.contains('ag-virtual-list-item')) {\n this.lastFocusedRowIndex = getAriaPosInSet(target) - 1;\n }\n }\n onFocusOut(e) {\n if (!this.getFocusableElement().contains(e.relatedTarget)) {\n this.lastFocusedRowIndex = null;\n }\n }\n handleKeyDown(e) {\n switch (e.key) {\n case KeyCode.UP:\n case KeyCode.DOWN:\n if (this.navigate(e.key === KeyCode.UP)) {\n e.preventDefault();\n }\n break;\n }\n }\n onTabKeyDown(e) {\n if (this.navigate(e.shiftKey)) {\n e.preventDefault();\n }\n else {\n stopPropagationForAgGrid(e);\n this.forceFocusOutOfContainer(e.shiftKey);\n }\n }\n navigate(up) {\n if (this.lastFocusedRowIndex == null) {\n return false;\n }\n const nextRow = this.lastFocusedRowIndex + (up ? -1 : 1);\n if (nextRow < 0 || nextRow >= this.model.getRowCount()) {\n return false;\n }\n this.focusRow(nextRow);\n return true;\n }\n getLastFocusedRow() {\n return this.lastFocusedRowIndex;\n }\n focusRow(rowNumber) {\n this.ensureIndexVisible(rowNumber);\n window.setTimeout(() => {\n if (!this.isAlive()) {\n return;\n }\n const renderedRow = this.renderedRows.get(rowNumber);\n if (renderedRow) {\n renderedRow.eDiv.focus();\n }\n }, 10);\n }\n getComponentAt(rowIndex) {\n const comp = this.renderedRows.get(rowIndex);\n return comp && comp.rowComponent;\n }\n forEachRenderedRow(func) {\n this.renderedRows.forEach((value, key) => func(value.rowComponent, key));\n }\n static getTemplate(cssIdentifier) {\n return ( /* html */`
\n
\n
`);\n }\n getItemHeight() {\n return this.environment.getListItemHeight();\n }\n /**\n * Returns true if the view had to be scrolled, otherwise, false.\n */\n ensureIndexVisible(index, scrollPartialIntoView = true) {\n const lastRow = this.model.getRowCount();\n if (typeof index !== 'number' || index < 0 || index >= lastRow) {\n console.warn('AG Grid: invalid row index for ensureIndexVisible: ' + index);\n return false;\n }\n const rowTopPixel = index * this.rowHeight;\n const rowBottomPixel = rowTopPixel + this.rowHeight;\n const eGui = this.getGui();\n const viewportTopPixel = eGui.scrollTop;\n const viewportHeight = eGui.offsetHeight;\n const viewportBottomPixel = viewportTopPixel + viewportHeight;\n const diff = scrollPartialIntoView ? 0 : this.rowHeight;\n const viewportScrolledPastRow = viewportTopPixel > rowTopPixel + diff;\n const viewportScrolledBeforeRow = viewportBottomPixel < rowBottomPixel - diff;\n if (viewportScrolledPastRow) {\n // if row is before, scroll up with row at top\n eGui.scrollTop = rowTopPixel;\n return true;\n }\n if (viewportScrolledBeforeRow) {\n // if row is below, scroll down with row at bottom\n const newScrollPosition = rowBottomPixel - viewportHeight;\n eGui.scrollTop = newScrollPosition;\n return true;\n }\n return false;\n }\n setComponentCreator(componentCreator) {\n this.componentCreator = componentCreator;\n }\n setComponentUpdater(componentUpdater) {\n this.componentUpdater = componentUpdater;\n }\n getRowHeight() {\n return this.rowHeight;\n }\n getScrollTop() {\n return this.getGui().scrollTop;\n }\n setRowHeight(rowHeight) {\n this.rowHeight = rowHeight;\n this.refresh();\n }\n refresh(softRefresh) {\n if (this.model == null || !this.isAlive()) {\n return;\n }\n const rowCount = this.model.getRowCount();\n this.eContainer.style.height = `${rowCount * this.rowHeight}px`;\n // ensure height is applied before attempting to redraw rows\n waitUntil(() => this.eContainer.clientHeight >= rowCount * this.rowHeight, () => {\n if (!this.isAlive()) {\n return;\n }\n if (this.canSoftRefresh(softRefresh)) {\n this.drawVirtualRows(true);\n }\n else {\n this.clearVirtualRows();\n this.drawVirtualRows();\n }\n });\n }\n canSoftRefresh(softRefresh) {\n return !!(softRefresh && this.renderedRows.size && typeof this.model.areRowsEqual === 'function' && this.componentUpdater);\n }\n clearVirtualRows() {\n this.renderedRows.forEach((_, rowIndex) => this.removeRow(rowIndex));\n }\n drawVirtualRows(softRefresh) {\n if (!this.isAlive() || !this.model) {\n return;\n }\n const gui = this.getGui();\n const topPixel = gui.scrollTop;\n const bottomPixel = topPixel + gui.offsetHeight;\n const firstRow = Math.floor(topPixel / this.rowHeight);\n const lastRow = Math.floor(bottomPixel / this.rowHeight);\n this.ensureRowsRendered(firstRow, lastRow, softRefresh);\n }\n ensureRowsRendered(start, finish, softRefresh) {\n // remove any rows that are no longer required\n this.renderedRows.forEach((_, rowIndex) => {\n if ((rowIndex < start || rowIndex > finish) && rowIndex !== this.lastFocusedRowIndex) {\n this.removeRow(rowIndex);\n }\n });\n if (softRefresh) {\n // refresh any existing rows\n this.refreshRows();\n }\n // insert any required new rows\n for (let rowIndex = start; rowIndex <= finish; rowIndex++) {\n if (this.renderedRows.has(rowIndex)) {\n continue;\n }\n // check this row actually exists (in case overflow buffer window exceeds real data)\n if (rowIndex < this.model.getRowCount()) {\n this.insertRow(rowIndex);\n }\n }\n }\n insertRow(rowIndex) {\n const value = this.model.getRow(rowIndex);\n const eDiv = document.createElement('div');\n eDiv.classList.add('ag-virtual-list-item', `ag-${this.cssIdentifier}-virtual-list-item`);\n setAriaRole(eDiv, this.ariaRole === 'tree' ? 'treeitem' : 'option');\n setAriaSetSize(eDiv, this.model.getRowCount());\n setAriaPosInSet(eDiv, rowIndex + 1);\n eDiv.setAttribute('tabindex', '-1');\n eDiv.style.height = `${this.rowHeight}px`;\n eDiv.style.top = `${this.rowHeight * rowIndex}px`;\n const rowComponent = this.componentCreator(value, eDiv);\n rowComponent.addGuiEventListener('focusin', () => this.lastFocusedRowIndex = rowIndex);\n eDiv.appendChild(rowComponent.getGui());\n // keep the DOM order consistent with the order of the rows\n if (this.renderedRows.has(rowIndex - 1)) {\n this.renderedRows.get(rowIndex - 1).eDiv.insertAdjacentElement('afterend', eDiv);\n }\n else if (this.renderedRows.has(rowIndex + 1)) {\n this.renderedRows.get(rowIndex + 1).eDiv.insertAdjacentElement('beforebegin', eDiv);\n }\n else {\n this.eContainer.appendChild(eDiv);\n }\n this.renderedRows.set(rowIndex, { rowComponent, eDiv, value });\n }\n removeRow(rowIndex) {\n const component = this.renderedRows.get(rowIndex);\n this.eContainer.removeChild(component.eDiv);\n this.destroyBean(component.rowComponent);\n this.renderedRows.delete(rowIndex);\n }\n refreshRows() {\n const rowCount = this.model.getRowCount();\n this.renderedRows.forEach((row, rowIndex) => {\n var _a, _b;\n if (rowIndex >= rowCount) {\n this.removeRow(rowIndex);\n }\n else {\n const newValue = this.model.getRow(rowIndex);\n if ((_b = (_a = this.model).areRowsEqual) === null || _b === void 0 ? void 0 : _b.call(_a, row.value, newValue)) {\n this.componentUpdater(newValue, row.rowComponent);\n }\n else {\n // to be replaced later\n this.removeRow(rowIndex);\n }\n }\n });\n }\n addScrollListener() {\n this.addGuiEventListener('scroll', () => this.drawVirtualRows(), { passive: true });\n }\n setModel(model) {\n this.model = model;\n }\n getAriaElement() {\n return this.eContainer;\n }\n destroy() {\n if (!this.isAlive()) {\n return;\n }\n this.clearVirtualRows();\n super.destroy();\n }\n}\n__decorate([\n Autowired('resizeObserverService')\n], VirtualList.prototype, \"resizeObserverService\", void 0);\n__decorate([\n Autowired('animationFrameService')\n], VirtualList.prototype, \"animationFrameService\", void 0);\n__decorate([\n RefSelector('eContainer')\n], VirtualList.prototype, \"eContainer\", void 0);\n__decorate([\n PostConstruct\n], VirtualList.prototype, \"postConstruct\", null);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { KeyCode } from \"../constants/keyCode.mjs\";\nimport { Autowired } from \"../context/context.mjs\";\nimport { Events } from \"../eventKeys.mjs\";\nimport { setAriaActiveDescendant, setAriaControls, setAriaLabel } from \"../utils/aria.mjs\";\nimport { bindCellRendererToHtmlElement, clearElement, isVisible } from \"../utils/dom.mjs\";\nimport { stopPropagationForAgGrid } from \"../utils/event.mjs\";\nimport { debounce } from \"../utils/function.mjs\";\nimport { fuzzySuggestions } from \"../utils/fuzzyMatch.mjs\";\nimport { exists } from \"../utils/generic.mjs\";\nimport { isEventFromPrintableCharacter } from \"../utils/keyboard.mjs\";\nimport { escapeString } from \"../utils/string.mjs\";\nimport { AgPickerField } from \"./agPickerField.mjs\";\nimport { RichSelectRow } from \"./agRichSelectRow.mjs\";\nimport { RefSelector } from \"./componentAnnotations.mjs\";\nimport { VirtualList } from \"./virtualList.mjs\";\nconst TEMPLATE = /* html */ `\n
\n
\n
\n
\n \n
\n
\n
`;\nexport class AgRichSelect extends AgPickerField {\n constructor(config) {\n var _a, _b;\n super(Object.assign(Object.assign({ pickerAriaLabelKey: 'ariaLabelRichSelectField', pickerAriaLabelValue: 'Rich Select Field', pickerType: 'ag-list', className: 'ag-rich-select', pickerIcon: 'smallDown', ariaRole: 'combobox', template: (_a = config === null || config === void 0 ? void 0 : config.template) !== null && _a !== void 0 ? _a : TEMPLATE, modalPicker: false }, config), { \n // maxPickerHeight needs to be set after expanding `config`\n maxPickerHeight: (_b = config === null || config === void 0 ? void 0 : config.maxPickerHeight) !== null && _b !== void 0 ? _b : 'calc(var(--ag-row-height) * 6.5)' }));\n this.searchString = '';\n this.highlightedItem = -1;\n this.lastRowHovered = -1;\n this.searchStringCreator = null;\n const { cellRowHeight, value, valueList, searchStringCreator } = config || {};\n if (cellRowHeight != null) {\n this.cellRowHeight = cellRowHeight;\n }\n if (value !== undefined) {\n this.value = value;\n }\n if (valueList != null) {\n this.values = valueList;\n }\n if (searchStringCreator) {\n this.searchStringCreator = searchStringCreator;\n }\n }\n postConstruct() {\n super.postConstruct();\n this.createLoadingElement();\n this.createListComponent();\n const { allowTyping, placeholder } = this.config;\n if (allowTyping) {\n this.eInput\n .setAutoComplete(false)\n .setInputPlaceholder(placeholder);\n this.eDisplayField.classList.add('ag-hidden');\n }\n else {\n this.eInput.setDisplayed(false);\n }\n this.eWrapper.tabIndex = this.gridOptionsService.get('tabIndex');\n const { searchDebounceDelay = 300 } = this.config;\n this.clearSearchString = debounce(this.clearSearchString, searchDebounceDelay);\n this.renderSelectedValue();\n if (allowTyping) {\n this.eInput.onValueChange(value => this.searchTextFromString(value));\n this.addManagedListener(this.eWrapper, 'focus', this.onWrapperFocus.bind(this));\n }\n this.addManagedListener(this.eWrapper, 'focusout', this.onWrapperFocusOut.bind(this));\n }\n createLoadingElement() {\n const eDocument = this.gridOptionsService.getDocument();\n const translate = this.localeService.getLocaleTextFunc();\n const el = eDocument.createElement('div');\n el.classList.add('ag-loading-text');\n el.innerText = translate('loadingOoo', 'Loading...');\n this.eLoading = el;\n }\n createListComponent() {\n this.listComponent = this.createBean(new VirtualList({ cssIdentifier: 'rich-select' }));\n this.listComponent.setComponentCreator(this.createRowComponent.bind(this));\n const componentUpdater = (item, component) => { };\n this.listComponent.setComponentUpdater(componentUpdater);\n this.listComponent.setParentComponent(this);\n this.addManagedListener(this.listComponent, Events.EVENT_FIELD_PICKER_VALUE_SELECTED, (e) => {\n this.onListValueSelected(e.value, e.fromEnterKey);\n });\n const { cellRowHeight } = this;\n if (cellRowHeight) {\n this.listComponent.setRowHeight(cellRowHeight);\n }\n const eListGui = this.listComponent.getGui();\n const eListAriaEl = this.listComponent.getAriaElement();\n this.addManagedListener(eListGui, 'mousemove', this.onPickerMouseMove.bind(this));\n this.addManagedListener(eListGui, 'mousedown', e => e.preventDefault());\n eListGui.classList.add('ag-rich-select-list');\n const listId = `ag-rich-select-list-${this.listComponent.getCompId()}`;\n eListAriaEl.setAttribute('id', listId);\n const translate = this.localeService.getLocaleTextFunc();\n const ariaLabel = translate(this.config.pickerAriaLabelKey, this.config.pickerAriaLabelValue);\n setAriaLabel(eListAriaEl, ariaLabel);\n setAriaControls(this.eWrapper, eListAriaEl);\n }\n renderSelectedValue() {\n const { value, eDisplayField, config } = this;\n const { allowTyping, initialInputValue } = this.config;\n const valueFormatted = this.config.valueFormatter ? this.config.valueFormatter(value) : value;\n if (allowTyping) {\n this.eInput.setValue(initialInputValue !== null && initialInputValue !== void 0 ? initialInputValue : valueFormatted);\n return;\n }\n let userCompDetails;\n if (config.cellRenderer) {\n userCompDetails = this.userComponentFactory.getCellRendererDetails(this.config, {\n value,\n valueFormatted\n });\n }\n let userCompDetailsPromise;\n if (userCompDetails) {\n userCompDetailsPromise = userCompDetails.newAgStackInstance();\n }\n if (userCompDetailsPromise) {\n clearElement(eDisplayField);\n bindCellRendererToHtmlElement(userCompDetailsPromise, eDisplayField);\n userCompDetailsPromise.then(renderer => {\n this.addDestroyFunc(() => this.getContext().destroyBean(renderer));\n });\n }\n else {\n if (exists(this.value)) {\n eDisplayField.innerText = valueFormatted;\n eDisplayField.classList.remove('ag-display-as-placeholder');\n }\n else {\n const { placeholder } = config;\n if (exists(placeholder)) {\n eDisplayField.innerHTML = `${escapeString(placeholder)}`;\n eDisplayField.classList.add('ag-display-as-placeholder');\n }\n else {\n clearElement(eDisplayField);\n }\n }\n }\n }\n getCurrentValueIndex() {\n const { currentList, value } = this;\n if (value == null || !currentList) {\n return -1;\n }\n for (let i = 0; i < currentList.length; i++) {\n if (currentList[i] === value) {\n return i;\n }\n }\n return -1;\n }\n highlightFilterMatch() {\n var _a;\n (_a = this.listComponent) === null || _a === void 0 ? void 0 : _a.forEachRenderedRow((cmp, idx) => {\n cmp.highlightString(this.searchString);\n });\n }\n highlightSelectedValue(index) {\n var _a;\n if (index == null) {\n index = this.getCurrentValueIndex();\n }\n this.highlightedItem = index;\n (_a = this.listComponent) === null || _a === void 0 ? void 0 : _a.forEachRenderedRow((cmp, idx) => {\n const highlighted = index === -1 ? false : this.highlightedItem === idx;\n cmp.updateHighlighted(highlighted);\n });\n }\n setRowHeight(height) {\n if (height !== this.cellRowHeight) {\n this.cellRowHeight = height;\n }\n if (this.listComponent) {\n this.listComponent.setRowHeight(height);\n }\n }\n createPickerComponent() {\n const { values } = this;\n if (values) {\n this.setValueList({ valueList: values });\n }\n // do not create the picker every time to save state\n return this.listComponent;\n }\n setSearchStringCreator(searchStringFn) {\n this.searchStringCreator = searchStringFn;\n }\n setValueList(params) {\n const { valueList, refresh } = params;\n if (!this.listComponent) {\n return;\n }\n if (this.currentList === valueList) {\n return;\n }\n this.currentList = valueList;\n this.listComponent.setModel({\n getRowCount: () => valueList.length,\n getRow: (index) => valueList[index],\n areRowsEqual: (oldRow, newRow) => oldRow === newRow,\n });\n if (refresh) {\n // if `values` is not present, it means the valuesList was set asynchronously\n if (!this.values) {\n this.values = valueList;\n if (this.isPickerDisplayed) {\n this.showCurrentValueInPicker();\n }\n }\n else {\n this.listComponent.refresh(true);\n }\n }\n }\n showPicker() {\n super.showPicker();\n this.showCurrentValueInPicker();\n this.displayOrHidePicker();\n }\n showCurrentValueInPicker() {\n var _a, _b;\n if (!this.listComponent) {\n return;\n }\n if (!this.currentList) {\n if (this.isPickerDisplayed && this.eLoading) {\n this.listComponent.appendChild(this.eLoading);\n }\n return;\n }\n if ((_a = this.eLoading) === null || _a === void 0 ? void 0 : _a.offsetParent) {\n (_b = this.eLoading.parentElement) === null || _b === void 0 ? void 0 : _b.removeChild(this.eLoading);\n }\n const currentValueIndex = this.getCurrentValueIndex();\n if (currentValueIndex !== -1) {\n // make sure the virtual list has been sized correctly\n this.listComponent.refresh();\n this.listComponent.ensureIndexVisible(currentValueIndex);\n // this second call to refresh is necessary to force scrolled elements\n // to be rendered with the correct index info.\n this.listComponent.refresh(true);\n this.highlightSelectedValue(currentValueIndex);\n }\n else {\n this.listComponent.refresh();\n }\n }\n beforeHidePicker() {\n this.highlightedItem = -1;\n super.beforeHidePicker();\n }\n onWrapperFocus() {\n if (!this.eInput) {\n return;\n }\n const focusableEl = this.eInput.getFocusableElement();\n focusableEl.focus();\n focusableEl.select();\n }\n onWrapperFocusOut(e) {\n if (!this.eWrapper.contains(e.relatedTarget)) {\n this.hidePicker();\n }\n }\n buildSearchStringFromKeyboardEvent(searchKey) {\n let { key } = searchKey;\n if (key === KeyCode.BACKSPACE) {\n this.searchString = this.searchString.slice(0, -1);\n key = '';\n }\n else if (!isEventFromPrintableCharacter(searchKey)) {\n return;\n }\n searchKey.preventDefault();\n this.searchTextFromCharacter(key);\n }\n searchTextFromCharacter(char) {\n this.searchString += char;\n this.runSearch();\n this.clearSearchString();\n }\n searchTextFromString(str) {\n if (str == null) {\n str = '';\n }\n this.searchString = str;\n this.runSearch();\n }\n buildSearchStrings(values) {\n const { valueFormatter = (value => value) } = this.config;\n let searchStrings;\n if (typeof values[0] === 'number' || typeof values[0] === 'string') {\n searchStrings = values.map(v => valueFormatter(v));\n }\n else if (typeof values[0] === 'object' && this.searchStringCreator) {\n searchStrings = this.searchStringCreator(values);\n }\n return searchStrings;\n }\n getSuggestionsAndFilteredValues(searchValue, valueList) {\n let suggestions = [];\n let filteredValues = [];\n if (!searchValue.length) {\n return { suggestions, filteredValues };\n }\n ;\n const { searchType = 'fuzzy', filterList } = this.config;\n if (searchType === 'fuzzy') {\n const fuzzySearchResult = fuzzySuggestions(this.searchString, valueList, true);\n suggestions = fuzzySearchResult.values;\n const indices = fuzzySearchResult.indices;\n if (filterList && indices.length) {\n for (let i = 0; i < indices.length; i++) {\n filteredValues.push(this.values[indices[i]]);\n }\n }\n }\n else {\n suggestions = valueList.filter((val, idx) => {\n const currentValue = val.toLocaleLowerCase();\n const valueToMatch = this.searchString.toLocaleLowerCase();\n const isMatch = searchType === 'match' ? currentValue.startsWith(valueToMatch) : currentValue.indexOf(valueToMatch) !== -1;\n if (filterList && isMatch) {\n filteredValues.push(this.values[idx]);\n }\n return isMatch;\n });\n }\n return { suggestions, filteredValues };\n }\n filterListModel(filteredValues) {\n const { filterList } = this.config;\n if (!filterList) {\n return;\n }\n this.setValueList({ valueList: filteredValues, refresh: true });\n this.alignPickerToComponent();\n }\n runSearch() {\n var _a, _b;\n const { values } = this;\n const searchStrings = this.buildSearchStrings(values);\n if (!searchStrings) {\n this.highlightSelectedValue(-1);\n return;\n }\n const { suggestions, filteredValues } = this.getSuggestionsAndFilteredValues(this.searchString, searchStrings);\n const { filterList, highlightMatch, searchType = 'fuzzy' } = this.config;\n const filterValueLen = filteredValues.length;\n const shouldFilter = !!(filterList && this.searchString !== '');\n this.filterListModel(shouldFilter ? filteredValues : values);\n if (suggestions.length) {\n const topSuggestionIndex = shouldFilter ? 0 : searchStrings.indexOf(suggestions[0]);\n this.selectListItem(topSuggestionIndex);\n }\n else {\n this.highlightSelectedValue(-1);\n if (!shouldFilter || filterValueLen) {\n (_a = this.listComponent) === null || _a === void 0 ? void 0 : _a.ensureIndexVisible(0);\n }\n else if (shouldFilter) {\n this.getAriaElement().removeAttribute('data-active-option');\n const eListAriaEl = (_b = this.listComponent) === null || _b === void 0 ? void 0 : _b.getAriaElement();\n if (eListAriaEl) {\n setAriaActiveDescendant(eListAriaEl, null);\n }\n }\n }\n if (highlightMatch && searchType !== 'fuzzy') {\n this.highlightFilterMatch();\n }\n this.displayOrHidePicker();\n }\n displayOrHidePicker() {\n var _a;\n const eListGui = (_a = this.listComponent) === null || _a === void 0 ? void 0 : _a.getGui();\n const toggleValue = this.currentList ? this.currentList.length === 0 : false;\n eListGui === null || eListGui === void 0 ? void 0 : eListGui.classList.toggle('ag-hidden', toggleValue);\n }\n clearSearchString() {\n this.searchString = '';\n }\n selectListItem(index, preventUnnecessaryScroll) {\n if (!this.isPickerDisplayed || !this.currentList || !this.listComponent || index < 0 || index >= this.currentList.length) {\n return;\n }\n const wasScrolled = this.listComponent.ensureIndexVisible(index, !preventUnnecessaryScroll);\n if (wasScrolled && !preventUnnecessaryScroll) {\n this.listComponent.refresh(true);\n }\n this.highlightSelectedValue(index);\n }\n setValue(value, silent, fromPicker) {\n const index = this.currentList ? this.currentList.indexOf(value) : -1;\n if (index === -1) {\n return this;\n }\n this.value = value;\n if (!fromPicker) {\n this.selectListItem(index);\n }\n this.renderSelectedValue();\n return super.setValue(value, silent);\n }\n createRowComponent(value) {\n const row = new RichSelectRow(this.config, this.eWrapper);\n row.setParentComponent(this.listComponent);\n this.getContext().createBean(row);\n row.setState(value);\n const { highlightMatch, searchType = 'fuzzy' } = this.config;\n if (highlightMatch && searchType !== 'fuzzy') {\n row.highlightString(this.searchString);\n }\n return row;\n }\n getRowForMouseEvent(e) {\n const { listComponent } = this;\n if (!listComponent) {\n return -1;\n }\n const eGui = listComponent === null || listComponent === void 0 ? void 0 : listComponent.getGui();\n const rect = eGui.getBoundingClientRect();\n const scrollTop = listComponent.getScrollTop();\n const mouseY = e.clientY - rect.top + scrollTop;\n return Math.floor(mouseY / listComponent.getRowHeight());\n }\n onPickerMouseMove(e) {\n if (!this.listComponent) {\n return;\n }\n const row = this.getRowForMouseEvent(e);\n if (row !== -1 && row != this.lastRowHovered) {\n this.lastRowHovered = row;\n this.selectListItem(row, true);\n }\n }\n onNavigationKeyDown(event, key) {\n // if we don't preventDefault the page body and/or grid scroll will move.\n event.preventDefault();\n const isDown = key === KeyCode.DOWN;\n if (!this.isPickerDisplayed && isDown) {\n this.showPicker();\n return;\n }\n const oldIndex = this.highlightedItem;\n const diff = isDown ? 1 : -1;\n const newIndex = oldIndex === -1 ? 0 : oldIndex + diff;\n this.selectListItem(newIndex);\n }\n onEnterKeyDown(e) {\n if (!this.isPickerDisplayed) {\n return;\n }\n e.preventDefault();\n if (this.currentList) {\n this.onListValueSelected(this.currentList[this.highlightedItem], true);\n }\n }\n onTabKeyDown() {\n if (!this.isPickerDisplayed || !this.currentList) {\n return;\n }\n this.setValue(this.currentList[this.highlightedItem], false, true);\n }\n onListValueSelected(value, fromEnterKey) {\n this.setValue(value, false, true);\n this.dispatchPickerEvent(value, fromEnterKey);\n this.hidePicker();\n }\n dispatchPickerEvent(value, fromEnterKey) {\n const event = {\n type: Events.EVENT_FIELD_PICKER_VALUE_SELECTED,\n fromEnterKey,\n value\n };\n this.dispatchEvent(event);\n }\n getFocusableElement() {\n const { allowTyping } = this.config;\n if (allowTyping) {\n return this.eInput.getFocusableElement();\n }\n return super.getFocusableElement();\n }\n onKeyDown(event) {\n const key = event.key;\n const { allowTyping } = this.config;\n switch (key) {\n case KeyCode.LEFT:\n case KeyCode.RIGHT:\n case KeyCode.PAGE_HOME:\n case KeyCode.PAGE_END:\n if (!allowTyping) {\n event.preventDefault();\n }\n break;\n case KeyCode.PAGE_UP:\n case KeyCode.PAGE_DOWN:\n event.preventDefault();\n break;\n case KeyCode.DOWN:\n case KeyCode.UP:\n this.onNavigationKeyDown(event, key);\n break;\n case KeyCode.ESCAPE:\n if (this.isPickerDisplayed) {\n if (isVisible(this.listComponent.getGui())) {\n event.preventDefault();\n stopPropagationForAgGrid(event);\n }\n this.hidePicker();\n }\n break;\n case KeyCode.ENTER:\n this.onEnterKeyDown(event);\n break;\n case KeyCode.TAB:\n this.onTabKeyDown();\n break;\n default:\n if (!allowTyping) {\n this.buildSearchStringFromKeyboardEvent(event);\n }\n }\n }\n destroy() {\n if (this.listComponent) {\n this.destroyBean(this.listComponent);\n this.listComponent = undefined;\n }\n this.eLoading = undefined;\n super.destroy();\n }\n}\n__decorate([\n Autowired('userComponentFactory')\n], AgRichSelect.prototype, \"userComponentFactory\", void 0);\n__decorate([\n RefSelector('eInput')\n], AgRichSelect.prototype, \"eInput\", void 0);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { RefSelector } from \"./componentAnnotations.mjs\";\nimport { AgAbstractLabel } from \"./agAbstractLabel.mjs\";\nimport { PostConstruct } from \"../context/context.mjs\";\nimport { Events } from \"../eventKeys.mjs\";\nexport class AgSlider extends AgAbstractLabel {\n constructor(config) {\n super(config, AgSlider.TEMPLATE);\n this.labelAlignment = 'top';\n }\n init() {\n this.eSlider.addCssClass('ag-slider-field');\n }\n onValueChange(callbackFn) {\n const eventChanged = Events.EVENT_FIELD_VALUE_CHANGED;\n this.addManagedListener(this.eText, eventChanged, () => {\n const textValue = parseFloat(this.eText.getValue());\n this.eSlider.setValue(textValue.toString(), true);\n callbackFn(textValue || 0);\n });\n this.addManagedListener(this.eSlider, eventChanged, () => {\n const sliderValue = this.eSlider.getValue();\n this.eText.setValue(sliderValue, true);\n callbackFn(parseFloat(sliderValue));\n });\n return this;\n }\n setSliderWidth(width) {\n this.eSlider.setWidth(width);\n return this;\n }\n setTextFieldWidth(width) {\n this.eText.setWidth(width);\n return this;\n }\n setMinValue(minValue) {\n this.eSlider.setMinValue(minValue);\n this.eText.setMin(minValue);\n return this;\n }\n setMaxValue(maxValue) {\n this.eSlider.setMaxValue(maxValue);\n this.eText.setMax(maxValue);\n return this;\n }\n getValue() {\n return this.eText.getValue();\n }\n setValue(value) {\n if (this.getValue() === value) {\n return this;\n }\n this.eText.setValue(value, true);\n this.eSlider.setValue(value, true);\n this.dispatchEvent({ type: Events.EVENT_FIELD_VALUE_CHANGED });\n return this;\n }\n setStep(step) {\n this.eSlider.setStep(step);\n this.eText.setStep(step);\n return this;\n }\n}\nAgSlider.TEMPLATE = `
\n \n
\n \n \n
\n
`;\n__decorate([\n RefSelector('eLabel')\n], AgSlider.prototype, \"eLabel\", void 0);\n__decorate([\n RefSelector('eSlider')\n], AgSlider.prototype, \"eSlider\", void 0);\n__decorate([\n RefSelector('eText')\n], AgSlider.prototype, \"eText\", void 0);\n__decorate([\n PostConstruct\n], AgSlider.prototype, \"init\", null);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component } from './component.mjs';\nimport { RefSelector } from './componentAnnotations.mjs';\nimport { PostConstruct } from '../context/context.mjs';\nimport { createIcon } from '../utils/icon.mjs';\nimport { setDisplayed } from '../utils/dom.mjs';\nimport { KeyCode } from '../constants/keyCode.mjs';\nimport { setAriaExpanded } from '../utils/aria.mjs';\nexport class AgGroupComponent extends Component {\n constructor(params = {}) {\n super(AgGroupComponent.getTemplate(params));\n this.suppressEnabledCheckbox = true;\n this.suppressOpenCloseIcons = false;\n const { title, enabled, items, suppressEnabledCheckbox, suppressOpenCloseIcons } = params;\n this.title = title;\n this.cssIdentifier = params.cssIdentifier || 'default';\n this.enabled = enabled != null ? enabled : true;\n this.items = items || [];\n this.alignItems = params.alignItems || 'center';\n if (suppressEnabledCheckbox != null) {\n this.suppressEnabledCheckbox = suppressEnabledCheckbox;\n }\n if (suppressOpenCloseIcons != null) {\n this.suppressOpenCloseIcons = suppressOpenCloseIcons;\n }\n }\n static getTemplate(params) {\n const cssIdentifier = params.cssIdentifier || 'default';\n const direction = params.direction || 'vertical';\n return /* html */ `
\n
\n \n \n \n
\n
\n \n
\n
\n
`;\n }\n postConstruct() {\n if (this.items.length) {\n const initialItems = this.items;\n this.items = [];\n this.addItems(initialItems);\n }\n const localeTextFunc = this.localeService.getLocaleTextFunc();\n this.cbGroupEnabled.setLabel(localeTextFunc('enabled', 'Enabled'));\n if (this.title) {\n this.setTitle(this.title);\n }\n if (this.enabled) {\n this.setEnabled(this.enabled);\n }\n this.setAlignItems(this.alignItems);\n this.hideEnabledCheckbox(this.suppressEnabledCheckbox);\n this.hideOpenCloseIcons(this.suppressOpenCloseIcons);\n this.setupExpandContract();\n this.refreshAriaStatus();\n this.refreshChildDisplay();\n }\n setupExpandContract() {\n this.eGroupClosedIcon.appendChild(createIcon('columnSelectClosed', this.gridOptionsService, null));\n this.eGroupOpenedIcon.appendChild(createIcon('columnSelectOpen', this.gridOptionsService, null));\n this.addManagedListener(this.eTitleBar, 'click', () => this.toggleGroupExpand());\n this.addManagedListener(this.eTitleBar, 'keydown', (e) => {\n switch (e.key) {\n case KeyCode.ENTER:\n case KeyCode.SPACE:\n e.preventDefault();\n this.toggleGroupExpand();\n break;\n case KeyCode.RIGHT:\n case KeyCode.LEFT:\n e.preventDefault();\n this.toggleGroupExpand(e.key === KeyCode.RIGHT);\n break;\n }\n });\n }\n refreshAriaStatus() {\n if (!this.suppressOpenCloseIcons) {\n setAriaExpanded(this.eTitleBar, this.expanded);\n }\n }\n refreshChildDisplay() {\n const showIcon = !this.suppressOpenCloseIcons;\n setDisplayed(this.eToolbar, this.expanded && !this.suppressEnabledCheckbox);\n setDisplayed(this.eGroupOpenedIcon, showIcon && this.expanded);\n setDisplayed(this.eGroupClosedIcon, showIcon && !this.expanded);\n }\n isExpanded() {\n return this.expanded;\n }\n setAlignItems(alignment) {\n if (this.alignItems !== alignment) {\n this.removeCssClass(`ag-group-item-alignment-${this.alignItems}`);\n }\n this.alignItems = alignment;\n const newCls = `ag-group-item-alignment-${this.alignItems}`;\n this.addCssClass(newCls);\n return this;\n }\n toggleGroupExpand(expanded) {\n if (this.suppressOpenCloseIcons) {\n this.expanded = true;\n this.refreshChildDisplay();\n setDisplayed(this.eContainer, true);\n return this;\n }\n expanded = expanded != null ? expanded : !this.expanded;\n if (this.expanded === expanded) {\n return this;\n }\n this.expanded = expanded;\n this.refreshAriaStatus();\n this.refreshChildDisplay();\n setDisplayed(this.eContainer, expanded);\n this.dispatchEvent({ type: this.expanded ? AgGroupComponent.EVENT_EXPANDED : AgGroupComponent.EVENT_COLLAPSED });\n return this;\n }\n addItems(items) {\n items.forEach(item => this.addItem(item));\n }\n prependItem(item) {\n this.insertItem(item, this.eContainer.firstChild);\n }\n addItem(item) {\n this.insertItem(item, null);\n }\n insertItem(item, before) {\n const container = this.eContainer;\n const el = item instanceof Component ? item.getGui() : item;\n el.classList.add('ag-group-item', `ag-${this.cssIdentifier}-group-item`);\n container.insertBefore(el, before);\n this.items.push(el);\n }\n hideItem(hide, index) {\n const itemToHide = this.items[index];\n setDisplayed(itemToHide, !hide);\n }\n setTitle(title) {\n this.eTitle.innerText = title;\n return this;\n }\n addCssClassToTitleBar(cssClass) {\n this.eTitleBar.classList.add(cssClass);\n }\n setEnabled(enabled, skipToggle) {\n this.enabled = enabled;\n this.refreshDisabledStyles();\n this.toggleGroupExpand(enabled);\n if (!skipToggle) {\n this.cbGroupEnabled.setValue(enabled);\n }\n return this;\n }\n isEnabled() {\n return this.enabled;\n }\n onEnableChange(callbackFn) {\n this.cbGroupEnabled.onValueChange((newSelection) => {\n this.setEnabled(newSelection, true);\n callbackFn(newSelection);\n });\n return this;\n }\n hideEnabledCheckbox(hide) {\n this.suppressEnabledCheckbox = hide;\n this.refreshChildDisplay();\n this.refreshDisabledStyles();\n return this;\n }\n hideOpenCloseIcons(hide) {\n this.suppressOpenCloseIcons = hide;\n if (hide) {\n this.toggleGroupExpand(true);\n }\n return this;\n }\n refreshDisabledStyles() {\n this.addOrRemoveCssClass('ag-disabled', !this.enabled);\n if (this.suppressEnabledCheckbox && !this.enabled) {\n this.eTitleBar.classList.add('ag-disabled-group-title-bar');\n this.eTitleBar.removeAttribute('tabindex');\n }\n else {\n this.eTitleBar.classList.remove('ag-disabled-group-title-bar');\n this.eTitleBar.setAttribute('tabindex', '0');\n }\n this.eContainer.classList.toggle('ag-disabled-group-container', !this.enabled);\n }\n}\nAgGroupComponent.EVENT_EXPANDED = 'expanded';\nAgGroupComponent.EVENT_COLLAPSED = 'collapsed';\n__decorate([\n RefSelector('eTitleBar')\n], AgGroupComponent.prototype, \"eTitleBar\", void 0);\n__decorate([\n RefSelector('eGroupOpenedIcon')\n], AgGroupComponent.prototype, \"eGroupOpenedIcon\", void 0);\n__decorate([\n RefSelector('eGroupClosedIcon')\n], AgGroupComponent.prototype, \"eGroupClosedIcon\", void 0);\n__decorate([\n RefSelector('eToolbar')\n], AgGroupComponent.prototype, \"eToolbar\", void 0);\n__decorate([\n RefSelector('cbGroupEnabled')\n], AgGroupComponent.prototype, \"cbGroupEnabled\", void 0);\n__decorate([\n RefSelector('eTitle')\n], AgGroupComponent.prototype, \"eTitle\", void 0);\n__decorate([\n RefSelector('eContainer')\n], AgGroupComponent.prototype, \"eContainer\", void 0);\n__decorate([\n PostConstruct\n], AgGroupComponent.prototype, \"postConstruct\", null);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Autowired, PostConstruct } from \"../context/context.mjs\";\nimport { AgMenuItemComponent } from \"./agMenuItemComponent.mjs\";\nimport { TabGuardComp } from \"./tabGuardComp.mjs\";\nimport { KeyCode } from \"../constants/keyCode.mjs\";\nimport { loadTemplate } from \"../utils/dom.mjs\";\nimport { last } from \"../utils/array.mjs\";\nimport { AgPromise } from \"../utils/promise.mjs\";\nimport { stopPropagationForAgGrid } from \"../utils/event.mjs\";\nexport class AgMenuList extends TabGuardComp {\n constructor(level = 0, params) {\n super(/* html */ `
`);\n this.level = level;\n this.menuItems = [];\n this.params = params !== null && params !== void 0 ? params : {\n column: null,\n node: null,\n value: null\n };\n }\n postConstruct() {\n this.initialiseTabGuard({\n onTabKeyDown: e => this.onTabKeyDown(e),\n handleKeyDown: e => this.handleKeyDown(e),\n onFocusIn: e => this.handleFocusIn(e),\n onFocusOut: e => this.handleFocusOut(e),\n });\n }\n onTabKeyDown(e) {\n const parent = this.getParentComponent();\n const parentGui = parent && parent.getGui();\n const isManaged = parentGui && parentGui.classList.contains('ag-focus-managed');\n if (!isManaged) {\n e.preventDefault();\n }\n if (e.shiftKey) {\n this.closeIfIsChild(e);\n }\n }\n handleKeyDown(e) {\n switch (e.key) {\n case KeyCode.UP:\n case KeyCode.RIGHT:\n case KeyCode.DOWN:\n case KeyCode.LEFT:\n e.preventDefault();\n this.handleNavKey(e.key);\n break;\n case KeyCode.ESCAPE:\n if (this.closeIfIsChild()) {\n stopPropagationForAgGrid(e);\n }\n break;\n }\n }\n handleFocusIn(e) {\n var _a, _b;\n // if focus is coming from outside the menu list, then re-activate an item\n const oldFocusedElement = e.relatedTarget;\n if (!this.tabGuardCtrl.isTabGuard(oldFocusedElement) && (this.getGui().contains(oldFocusedElement) || ((_b = (_a = this.activeMenuItem) === null || _a === void 0 ? void 0 : _a.getSubMenuGui()) === null || _b === void 0 ? void 0 : _b.contains(oldFocusedElement)))) {\n return;\n }\n if (this.activeMenuItem) {\n this.activeMenuItem.activate();\n }\n else {\n this.activateFirstItem();\n }\n }\n handleFocusOut(e) {\n var _a;\n // if focus is going outside the menu list, deactivate the current item\n const newFocusedElement = e.relatedTarget;\n if (!this.activeMenuItem || this.getGui().contains(newFocusedElement) || ((_a = this.activeMenuItem.getSubMenuGui()) === null || _a === void 0 ? void 0 : _a.contains(newFocusedElement))) {\n return;\n }\n if (!this.activeMenuItem.isSubMenuOpening()) {\n this.activeMenuItem.deactivate();\n }\n }\n clearActiveItem() {\n if (this.activeMenuItem) {\n this.activeMenuItem.deactivate();\n this.activeMenuItem = null;\n }\n }\n addMenuItems(menuItems) {\n if (menuItems == null) {\n return;\n }\n AgPromise.all(menuItems.map(menuItemOrString => {\n if (menuItemOrString === 'separator') {\n return AgPromise.resolve({ eGui: this.createSeparator() });\n }\n else if (typeof menuItemOrString === 'string') {\n console.warn(`AG Grid: unrecognised menu item ${menuItemOrString}`);\n return AgPromise.resolve({ eGui: null });\n }\n else {\n return this.addItem(menuItemOrString);\n }\n })).then(elements => {\n elements.forEach(element => {\n if (element === null || element === void 0 ? void 0 : element.eGui) {\n this.appendChild(element.eGui);\n if (element.comp) {\n this.menuItems.push(element.comp);\n }\n }\n });\n });\n }\n addItem(menuItemDef) {\n const menuItem = this.createManagedBean(new AgMenuItemComponent());\n return menuItem.init({\n menuItemDef,\n isAnotherSubMenuOpen: () => this.menuItems.some(m => m.isSubMenuOpen()),\n level: this.level,\n contextParams: this.params\n }).then(() => {\n menuItem.setParentComponent(this);\n this.addManagedListener(menuItem, AgMenuItemComponent.EVENT_CLOSE_MENU, (event) => {\n this.dispatchEvent(event);\n });\n this.addManagedListener(menuItem, AgMenuItemComponent.EVENT_MENU_ITEM_ACTIVATED, (event) => {\n if (this.activeMenuItem && this.activeMenuItem !== event.menuItem) {\n this.activeMenuItem.deactivate();\n }\n this.activeMenuItem = event.menuItem;\n });\n return {\n comp: menuItem,\n eGui: menuItem.getGui()\n };\n });\n }\n activateFirstItem() {\n const item = this.menuItems.filter(currentItem => !currentItem.isDisabled())[0];\n if (!item) {\n return;\n }\n item.activate();\n }\n createSeparator() {\n const separatorHtml = /* html */ `\n
\n
\n
\n
\n
\n
`;\n return loadTemplate(separatorHtml);\n }\n handleNavKey(key) {\n switch (key) {\n case KeyCode.UP:\n case KeyCode.DOWN:\n const nextItem = this.findNextItem(key === KeyCode.UP);\n if (nextItem && nextItem !== this.activeMenuItem) {\n nextItem.activate();\n }\n return;\n }\n const left = this.gridOptionsService.get('enableRtl') ? KeyCode.RIGHT : KeyCode.LEFT;\n if (key === left) {\n this.closeIfIsChild();\n }\n else {\n this.openChild();\n }\n }\n closeIfIsChild(e) {\n const parentItem = this.getParentComponent();\n if (parentItem && parentItem instanceof AgMenuItemComponent) {\n if (e) {\n e.preventDefault();\n }\n parentItem.closeSubMenu();\n parentItem.getGui().focus();\n return true;\n }\n return false;\n }\n openChild() {\n if (this.activeMenuItem) {\n this.activeMenuItem.openSubMenu(true);\n }\n }\n findNextItem(up) {\n const items = this.menuItems.filter(item => !item.isDisabled());\n if (!items.length) {\n return;\n }\n if (!this.activeMenuItem) {\n return up ? last(items) : items[0];\n }\n if (up) {\n items.reverse();\n }\n let nextItem;\n let foundCurrent = false;\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n if (!foundCurrent) {\n if (item === this.activeMenuItem) {\n foundCurrent = true;\n }\n continue;\n }\n nextItem = item;\n break;\n }\n if (foundCurrent && !nextItem) {\n // start again from the beginning (/end)\n return items[0];\n }\n return nextItem || this.activeMenuItem;\n }\n destroy() {\n this.clearActiveItem();\n super.destroy();\n }\n}\n__decorate([\n Autowired('focusService')\n], AgMenuList.prototype, \"focusService\", void 0);\n__decorate([\n PostConstruct\n], AgMenuList.prototype, \"postConstruct\", null);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { PostConstruct } from '../context/context.mjs';\nimport { KeyCode } from '../constants/keyCode.mjs';\nimport { TabGuardComp } from './tabGuardComp.mjs';\nexport class AgMenuPanel extends TabGuardComp {\n constructor(wrappedComponent) {\n super();\n this.wrappedComponent = wrappedComponent;\n this.setTemplateFromElement(wrappedComponent.getGui());\n }\n postConstruct() {\n this.initialiseTabGuard({\n onTabKeyDown: e => this.onTabKeyDown(e),\n handleKeyDown: e => this.handleKeyDown(e)\n });\n }\n handleKeyDown(e) {\n if (e.key === KeyCode.ESCAPE) {\n this.closePanel();\n }\n }\n onTabKeyDown(e) {\n if (e.defaultPrevented) {\n return;\n }\n this.closePanel();\n e.preventDefault();\n }\n closePanel() {\n const menuItem = this.parentComponent;\n menuItem.closeSubMenu();\n setTimeout(() => menuItem.getGui().focus(), 0);\n }\n}\n__decorate([\n PostConstruct\n], AgMenuPanel.prototype, \"postConstruct\", null);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { AgMenuList } from './agMenuList.mjs';\nimport { AgMenuPanel } from './agMenuPanel.mjs';\nimport { KeyCode } from '../constants/keyCode.mjs';\nimport { Autowired } from '../context/context.mjs';\nimport { loadTemplate } from '../utils/dom.mjs';\nimport { setAriaDisabled, setAriaExpanded, setAriaLevel, setAriaRole } from '../utils/aria.mjs';\nimport { BeanStub } from '../context/beanStub.mjs';\nimport { TooltipFeature } from './tooltipFeature.mjs';\nexport class AgMenuItemComponent extends BeanStub {\n constructor() {\n super(...arguments);\n this.isActive = false;\n this.subMenuIsOpen = false;\n this.subMenuIsOpening = false;\n this.suppressRootStyles = true;\n this.suppressAria = true;\n this.suppressFocus = true;\n }\n init(params) {\n var _a, _b;\n const { menuItemDef, isAnotherSubMenuOpen, level, childComponent, contextParams } = params;\n this.params = params.menuItemDef;\n this.level = level;\n this.isAnotherSubMenuOpen = isAnotherSubMenuOpen;\n this.childComponent = childComponent;\n this.contextParams = contextParams;\n this.cssClassPrefix = (_b = (_a = this.params.menuItemParams) === null || _a === void 0 ? void 0 : _a.cssClassPrefix) !== null && _b !== void 0 ? _b : 'ag-menu-option';\n const compDetails = this.userComponentFactory.getMenuItemCompDetails(this.params, Object.assign(Object.assign({}, menuItemDef), { level,\n isAnotherSubMenuOpen, openSubMenu: activateFirstItem => this.openSubMenu(activateFirstItem), closeSubMenu: () => this.closeSubMenu(), closeMenu: event => this.closeMenu(event), updateTooltip: tooltip => this.updateTooltip(tooltip), onItemActivated: () => this.onItemActivated() }));\n return compDetails.newAgStackInstance().then((comp) => {\n var _a;\n this.menuItemComp = comp;\n const configureDefaults = (_a = comp.configureDefaults) === null || _a === void 0 ? void 0 : _a.call(comp);\n if (configureDefaults) {\n this.configureDefaults(configureDefaults === true ? undefined : configureDefaults);\n }\n });\n }\n addListeners(eGui, params) {\n if (!(params === null || params === void 0 ? void 0 : params.suppressClick)) {\n this.addManagedListener(eGui, 'click', e => this.onItemSelected(e));\n }\n if (!(params === null || params === void 0 ? void 0 : params.suppressKeyboardSelect)) {\n this.addManagedListener(eGui, 'keydown', (e) => {\n if (e.key === KeyCode.ENTER || e.key === KeyCode.SPACE) {\n e.preventDefault();\n this.onItemSelected(e);\n }\n });\n }\n if (!(params === null || params === void 0 ? void 0 : params.suppressMouseDown)) {\n this.addManagedListener(eGui, 'mousedown', e => {\n // Prevent event bubbling to other event handlers such as PopupService triggering\n // premature closing of any open sub-menu popup.\n e.stopPropagation();\n e.preventDefault();\n });\n }\n if (!(params === null || params === void 0 ? void 0 : params.suppressMouseOver)) {\n this.addManagedListener(eGui, 'mouseenter', () => this.onMouseEnter());\n this.addManagedListener(eGui, 'mouseleave', () => this.onMouseLeave());\n }\n }\n isDisabled() {\n return !!this.params.disabled;\n }\n openSubMenu(activateFirstItem = false) {\n var _a, _b;\n this.closeSubMenu();\n if (!this.params.subMenu) {\n return;\n }\n this.subMenuIsOpening = true;\n const ePopup = loadTemplate(/* html */ `
`);\n this.eSubMenuGui = ePopup;\n let destroySubMenu;\n let afterGuiAttached = () => {\n this.subMenuIsOpening = false;\n };\n if (this.childComponent) {\n const menuPanel = this.createBean(new AgMenuPanel(this.childComponent));\n menuPanel.setParentComponent(this);\n const subMenuGui = menuPanel.getGui();\n const mouseEvent = 'mouseenter';\n const mouseEnterListener = () => this.cancelDeactivate();\n subMenuGui.addEventListener(mouseEvent, mouseEnterListener);\n destroySubMenu = () => subMenuGui.removeEventListener(mouseEvent, mouseEnterListener);\n ePopup.appendChild(subMenuGui);\n if (this.childComponent.afterGuiAttached) {\n afterGuiAttached = () => {\n this.childComponent.afterGuiAttached();\n this.subMenuIsOpening = false;\n };\n }\n }\n else if (this.params.subMenu) {\n const childMenu = this.createBean(new AgMenuList(this.level + 1, this.contextParams));\n childMenu.setParentComponent(this);\n childMenu.addMenuItems(this.params.subMenu);\n ePopup.appendChild(childMenu.getGui());\n // bubble menu item selected events\n this.addManagedListener(childMenu, AgMenuItemComponent.EVENT_CLOSE_MENU, e => this.dispatchEvent(e));\n childMenu.addGuiEventListener('mouseenter', () => this.cancelDeactivate());\n destroySubMenu = () => this.destroyBean(childMenu);\n if (activateFirstItem) {\n afterGuiAttached = () => {\n childMenu.activateFirstItem();\n this.subMenuIsOpening = false;\n };\n }\n }\n const positionCallback = this.popupService.positionPopupForMenu.bind(this.popupService, { eventSource: this.eGui, ePopup });\n const translate = this.localeService.getLocaleTextFunc();\n const addPopupRes = this.popupService.addPopup({\n modal: true,\n eChild: ePopup,\n positionCallback: positionCallback,\n anchorToElement: this.eGui,\n ariaLabel: translate('ariaLabelSubMenu', 'SubMenu'),\n afterGuiAttached\n });\n this.subMenuIsOpen = true;\n this.setAriaExpanded(true);\n this.hideSubMenu = () => {\n var _a, _b;\n if (addPopupRes) {\n addPopupRes.hideFunc();\n }\n this.subMenuIsOpen = false;\n this.setAriaExpanded(false);\n destroySubMenu();\n (_b = (_a = this.menuItemComp).setExpanded) === null || _b === void 0 ? void 0 : _b.call(_a, false);\n this.eSubMenuGui = undefined;\n };\n (_b = (_a = this.menuItemComp).setExpanded) === null || _b === void 0 ? void 0 : _b.call(_a, true);\n }\n setAriaExpanded(expanded) {\n if (!this.suppressAria) {\n setAriaExpanded(this.eGui, expanded);\n }\n }\n closeSubMenu() {\n if (!this.hideSubMenu) {\n return;\n }\n this.hideSubMenu();\n this.hideSubMenu = null;\n this.setAriaExpanded(false);\n }\n isSubMenuOpen() {\n return this.subMenuIsOpen;\n }\n isSubMenuOpening() {\n return this.subMenuIsOpening;\n }\n activate(openSubMenu) {\n var _a, _b;\n this.cancelActivate();\n if (this.params.disabled) {\n return;\n }\n this.isActive = true;\n if (!this.suppressRootStyles) {\n this.eGui.classList.add(`${this.cssClassPrefix}-active`);\n }\n (_b = (_a = this.menuItemComp).setActive) === null || _b === void 0 ? void 0 : _b.call(_a, true);\n if (!this.suppressFocus) {\n this.eGui.focus({ preventScroll: true });\n }\n if (openSubMenu && this.params.subMenu) {\n window.setTimeout(() => {\n if (this.isAlive() && this.isActive) {\n this.openSubMenu();\n }\n }, 300);\n }\n this.onItemActivated();\n }\n deactivate() {\n var _a, _b;\n this.cancelDeactivate();\n if (!this.suppressRootStyles) {\n this.eGui.classList.remove(`${this.cssClassPrefix}-active`);\n }\n (_b = (_a = this.menuItemComp).setActive) === null || _b === void 0 ? void 0 : _b.call(_a, false);\n this.isActive = false;\n if (this.subMenuIsOpen) {\n this.hideSubMenu();\n }\n }\n getGui() {\n return this.menuItemComp.getGui();\n }\n getParentComponent() {\n return this.parentComponent;\n }\n setParentComponent(component) {\n this.parentComponent = component;\n }\n getSubMenuGui() {\n return this.eSubMenuGui;\n }\n onItemSelected(event) {\n var _a, _b;\n (_b = (_a = this.menuItemComp).select) === null || _b === void 0 ? void 0 : _b.call(_a);\n if (this.params.action) {\n this.getFrameworkOverrides().wrapOutgoing(() => this.params.action(this.gridOptionsService.addGridCommonParams(Object.assign({}, this.contextParams))));\n }\n else {\n this.openSubMenu(event && event.type === 'keydown');\n }\n if ((this.params.subMenu && !this.params.action) || this.params.suppressCloseOnSelect) {\n return;\n }\n this.closeMenu(event);\n }\n closeMenu(event) {\n const e = {\n type: AgMenuItemComponent.EVENT_CLOSE_MENU,\n event\n };\n this.dispatchEvent(e);\n }\n onItemActivated() {\n const event = {\n type: AgMenuItemComponent.EVENT_MENU_ITEM_ACTIVATED,\n menuItem: this,\n };\n this.dispatchEvent(event);\n }\n cancelActivate() {\n if (this.activateTimeoutId) {\n window.clearTimeout(this.activateTimeoutId);\n this.activateTimeoutId = 0;\n }\n }\n cancelDeactivate() {\n if (this.deactivateTimeoutId) {\n window.clearTimeout(this.deactivateTimeoutId);\n this.deactivateTimeoutId = 0;\n }\n }\n onMouseEnter() {\n this.cancelDeactivate();\n if (this.isAnotherSubMenuOpen()) {\n // wait to see if the user enters the open sub-menu\n this.activateTimeoutId = window.setTimeout(() => this.activate(true), AgMenuItemComponent.ACTIVATION_DELAY);\n }\n else {\n // activate immediately\n this.activate(true);\n }\n }\n onMouseLeave() {\n this.cancelActivate();\n if (this.isSubMenuOpen()) {\n // wait to see if the user enters the sub-menu\n this.deactivateTimeoutId = window.setTimeout(() => this.deactivate(), AgMenuItemComponent.ACTIVATION_DELAY);\n }\n else {\n // de-activate immediately\n this.deactivate();\n }\n }\n configureDefaults(params) {\n var _a, _b, _c;\n this.tooltip = this.params.tooltip;\n if (!this.menuItemComp) {\n // need to wait for init to complete\n setTimeout(() => this.configureDefaults(params));\n return;\n }\n let eGui = this.menuItemComp.getGui();\n // in some frameworks, `getGui` might be a framework element\n const rootElement = (_b = (_a = this.menuItemComp).getRootElement) === null || _b === void 0 ? void 0 : _b.call(_a);\n if (rootElement) {\n if (!(params === null || params === void 0 ? void 0 : params.suppressRootStyles)) {\n eGui.classList.add('ag-menu-option-custom');\n }\n eGui = rootElement;\n }\n this.eGui = eGui;\n this.suppressRootStyles = !!(params === null || params === void 0 ? void 0 : params.suppressRootStyles);\n if (!this.suppressRootStyles) {\n eGui.classList.add(this.cssClassPrefix);\n (_c = this.params.cssClasses) === null || _c === void 0 ? void 0 : _c.forEach(it => eGui.classList.add(it));\n if (this.params.disabled) {\n eGui.classList.add(`${this.cssClassPrefix}-disabled`);\n }\n }\n if (!(params === null || params === void 0 ? void 0 : params.suppressTooltip)) {\n this.setTooltip();\n }\n this.suppressAria = !!(params === null || params === void 0 ? void 0 : params.suppressAria);\n if (!this.suppressAria) {\n setAriaRole(eGui, 'treeitem');\n setAriaLevel(eGui, this.level + 1);\n if (this.params.disabled) {\n setAriaDisabled(eGui, true);\n }\n }\n if (!(params === null || params === void 0 ? void 0 : params.suppressTabIndex)) {\n eGui.setAttribute('tabindex', '-1');\n }\n if (!this.params.disabled) {\n this.addListeners(eGui, params);\n }\n this.suppressFocus = !!(params === null || params === void 0 ? void 0 : params.suppressFocus);\n }\n updateTooltip(tooltip) {\n this.tooltip = tooltip;\n if (!this.tooltipFeature && this.menuItemComp) {\n this.setTooltip();\n }\n }\n setTooltip() {\n if (!this.tooltip) {\n return;\n }\n this.tooltipFeature = this.createManagedBean(new TooltipFeature({\n getGui: () => this.getGui(),\n getTooltipValue: () => this.tooltip,\n getLocation: () => 'menu'\n }, this.beans));\n this.tooltipFeature.setComp(this.getGui());\n }\n}\nAgMenuItemComponent.EVENT_CLOSE_MENU = 'closeMenu';\nAgMenuItemComponent.EVENT_MENU_ITEM_ACTIVATED = 'menuItemActivated';\nAgMenuItemComponent.ACTIVATION_DELAY = 80;\n__decorate([\n Autowired('popupService')\n], AgMenuItemComponent.prototype, \"popupService\", void 0);\n__decorate([\n Autowired('userComponentFactory')\n], AgMenuItemComponent.prototype, \"userComponentFactory\", void 0);\n__decorate([\n Autowired('beans')\n], AgMenuItemComponent.prototype, \"beans\", void 0);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { RefSelector } from \"./componentAnnotations.mjs\";\nimport { PostConstruct } from \"../context/context.mjs\";\nimport { Component } from \"./component.mjs\";\nimport { getInnerHeight, getInnerWidth, isVisible, setDisplayed } from \"../utils/dom.mjs\";\nimport { createIconNoSpan } from \"../utils/icon.mjs\";\nimport { PositionableFeature } from \"../rendering/features/positionableFeature.mjs\";\nexport class AgPanel extends Component {\n constructor(config) {\n super(AgPanel.getTemplate(config));\n this.config = config;\n this.closable = true;\n }\n static getTemplate(config) {\n const cssIdentifier = config.cssIdentifier || 'default';\n return /* html */ `
\n
\n \n
\n
\n
\n
`;\n }\n postConstruct() {\n const { component, closable, hideTitleBar, title, minWidth = 250, width, minHeight = 250, height, centered, popup, x, y } = this.config;\n this.positionableFeature = new PositionableFeature(this.getGui(), {\n minWidth, width, minHeight, height, centered, x, y, popup,\n calculateTopBuffer: () => this.positionableFeature.getHeight() - this.getBodyHeight()\n });\n this.createManagedBean(this.positionableFeature);\n const eGui = this.getGui();\n if (component) {\n this.setBodyComponent(component);\n }\n if (!hideTitleBar) {\n if (title) {\n this.setTitle(title);\n }\n this.setClosable(closable != null ? closable : this.closable);\n }\n else {\n setDisplayed(this.eTitleBar, false);\n }\n this.addManagedListener(this.eTitleBar, 'mousedown', (e) => {\n const eDocument = this.gridOptionsService.getDocument();\n if (eGui.contains(e.relatedTarget) ||\n eGui.contains(eDocument.activeElement) ||\n this.eTitleBarButtons.contains(e.target)) {\n e.preventDefault();\n return;\n }\n const focusEl = this.eContentWrapper.querySelector('button, [href], input, select, textarea, [tabindex]');\n if (focusEl) {\n focusEl.focus();\n }\n });\n if (popup && this.positionableFeature.isPositioned()) {\n return;\n }\n if (this.renderComponent) {\n this.renderComponent();\n }\n this.positionableFeature.initialisePosition();\n this.eContentWrapper.style.height = '0';\n }\n renderComponent() {\n const eGui = this.getGui();\n eGui.focus();\n this.close = () => {\n eGui.parentElement.removeChild(eGui);\n this.destroy();\n };\n }\n getHeight() {\n return this.positionableFeature.getHeight();\n }\n setHeight(height) {\n this.positionableFeature.setHeight(height);\n }\n getWidth() {\n return this.positionableFeature.getWidth();\n }\n setWidth(width) {\n this.positionableFeature.setWidth(width);\n }\n setClosable(closable) {\n if (closable !== this.closable) {\n this.closable = closable;\n }\n if (closable) {\n const closeButtonComp = this.closeButtonComp = new Component(AgPanel.CLOSE_BTN_TEMPLATE);\n this.getContext().createBean(closeButtonComp);\n const eGui = closeButtonComp.getGui();\n const child = createIconNoSpan('close', this.gridOptionsService);\n child.classList.add('ag-panel-title-bar-button-icon');\n eGui.appendChild(child);\n this.addTitleBarButton(closeButtonComp);\n closeButtonComp.addManagedListener(eGui, 'click', this.onBtClose.bind(this));\n }\n else if (this.closeButtonComp) {\n const eGui = this.closeButtonComp.getGui();\n eGui.parentElement.removeChild(eGui);\n this.closeButtonComp = this.destroyBean(this.closeButtonComp);\n }\n }\n setBodyComponent(bodyComponent) {\n bodyComponent.setParentComponent(this);\n this.eContentWrapper.appendChild(bodyComponent.getGui());\n }\n addTitleBarButton(button, position) {\n const eTitleBarButtons = this.eTitleBarButtons;\n const buttons = eTitleBarButtons.children;\n const len = buttons.length;\n if (position == null) {\n position = len;\n }\n position = Math.max(0, Math.min(position, len));\n button.addCssClass('ag-panel-title-bar-button');\n const eGui = button.getGui();\n if (position === 0) {\n eTitleBarButtons.insertAdjacentElement('afterbegin', eGui);\n }\n else if (position === len) {\n eTitleBarButtons.insertAdjacentElement('beforeend', eGui);\n }\n else {\n buttons[position - 1].insertAdjacentElement('afterend', eGui);\n }\n button.setParentComponent(this);\n }\n getBodyHeight() {\n return getInnerHeight(this.eContentWrapper);\n }\n getBodyWidth() {\n return getInnerWidth(this.eContentWrapper);\n }\n setTitle(title) {\n this.eTitle.innerText = title;\n }\n // called when user hits the 'x' in the top right\n onBtClose() {\n this.close();\n }\n destroy() {\n if (this.closeButtonComp) {\n this.closeButtonComp = this.destroyBean(this.closeButtonComp);\n }\n const eGui = this.getGui();\n if (eGui && isVisible(eGui)) {\n this.close();\n }\n super.destroy();\n }\n}\nAgPanel.CLOSE_BTN_TEMPLATE = `
`;\n__decorate([\n RefSelector('eContentWrapper')\n], AgPanel.prototype, \"eContentWrapper\", void 0);\n__decorate([\n RefSelector('eTitleBar')\n], AgPanel.prototype, \"eTitleBar\", void 0);\n__decorate([\n RefSelector('eTitleBarButtons')\n], AgPanel.prototype, \"eTitleBarButtons\", void 0);\n__decorate([\n RefSelector('eTitle')\n], AgPanel.prototype, \"eTitle\", void 0);\n__decorate([\n PostConstruct\n], AgPanel.prototype, \"postConstruct\", null);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Autowired } from \"../context/context.mjs\";\nimport { AgPanel } from \"./agPanel.mjs\";\nimport { Component } from \"./component.mjs\";\nimport { setDisplayed } from \"../utils/dom.mjs\";\nimport { createIconNoSpan } from \"../utils/icon.mjs\";\nexport class AgDialog extends AgPanel {\n constructor(config) {\n super(Object.assign(Object.assign({}, config), { popup: true }));\n this.isMaximizable = false;\n this.isMaximized = false;\n this.maximizeListeners = [];\n this.resizeListenerDestroy = null;\n this.lastPosition = {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n }\n postConstruct() {\n const eGui = this.getGui();\n const { movable, resizable, maximizable } = this.config;\n this.addCssClass('ag-dialog');\n super.postConstruct();\n this.addManagedListener(eGui, 'focusin', (e) => {\n if (eGui.contains(e.relatedTarget)) {\n return;\n }\n this.popupService.bringPopupToFront(eGui);\n });\n if (movable) {\n this.setMovable(movable);\n }\n if (maximizable) {\n this.setMaximizable(maximizable);\n }\n if (resizable) {\n this.setResizable(resizable);\n }\n }\n renderComponent() {\n const eGui = this.getGui();\n const { alwaysOnTop, modal, title, afterGuiAttached } = this.config;\n const translate = this.localeService.getLocaleTextFunc();\n const addPopupRes = this.popupService.addPopup({\n modal,\n eChild: eGui,\n closeOnEsc: true,\n closedCallback: this.onClosed.bind(this),\n alwaysOnTop,\n ariaLabel: title || translate('ariaLabelDialog', 'Dialog'),\n afterGuiAttached\n });\n if (addPopupRes) {\n this.close = addPopupRes.hideFunc;\n }\n }\n onClosed(event) {\n var _a, _b;\n this.destroy();\n (_b = (_a = this.config).closedCallback) === null || _b === void 0 ? void 0 : _b.call(_a, event);\n }\n toggleMaximize() {\n const position = this.positionableFeature.getPosition();\n if (this.isMaximized) {\n const { x, y, width, height } = this.lastPosition;\n this.setWidth(width);\n this.setHeight(height);\n this.positionableFeature.offsetElement(x, y);\n }\n else {\n this.lastPosition.width = this.getWidth();\n this.lastPosition.height = this.getHeight();\n this.lastPosition.x = position.x;\n this.lastPosition.y = position.y;\n this.positionableFeature.offsetElement(0, 0);\n this.setHeight('100%');\n this.setWidth('100%');\n }\n this.isMaximized = !this.isMaximized;\n this.refreshMaximizeIcon();\n }\n refreshMaximizeIcon() {\n setDisplayed(this.maximizeIcon, !this.isMaximized);\n setDisplayed(this.minimizeIcon, this.isMaximized);\n }\n clearMaximizebleListeners() {\n if (this.maximizeListeners.length) {\n this.maximizeListeners.forEach(destroyListener => destroyListener());\n this.maximizeListeners.length = 0;\n }\n if (this.resizeListenerDestroy) {\n this.resizeListenerDestroy();\n this.resizeListenerDestroy = null;\n }\n }\n destroy() {\n this.maximizeButtonComp = this.destroyBean(this.maximizeButtonComp);\n this.clearMaximizebleListeners();\n super.destroy();\n }\n setResizable(resizable) {\n this.positionableFeature.setResizable(resizable);\n }\n setMovable(movable) {\n this.positionableFeature.setMovable(movable, this.eTitleBar);\n }\n setMaximizable(maximizable) {\n if (!maximizable) {\n this.clearMaximizebleListeners();\n if (this.maximizeButtonComp) {\n this.destroyBean(this.maximizeButtonComp);\n this.maximizeButtonComp = this.maximizeIcon = this.minimizeIcon = undefined;\n }\n return;\n }\n const eTitleBar = this.eTitleBar;\n if (!eTitleBar || maximizable === this.isMaximizable) {\n return;\n }\n const maximizeButtonComp = this.buildMaximizeAndMinimizeElements();\n this.refreshMaximizeIcon();\n maximizeButtonComp.addManagedListener(maximizeButtonComp.getGui(), 'click', this.toggleMaximize.bind(this));\n this.addTitleBarButton(maximizeButtonComp, 0);\n this.maximizeListeners.push(this.addManagedListener(eTitleBar, 'dblclick', this.toggleMaximize.bind(this)));\n this.resizeListenerDestroy = this.addManagedListener(this, 'resize', () => {\n this.isMaximized = false;\n this.refreshMaximizeIcon();\n });\n }\n buildMaximizeAndMinimizeElements() {\n const maximizeButtonComp = this.maximizeButtonComp =\n this.createBean(new Component(/* html */ `
`));\n const eGui = maximizeButtonComp.getGui();\n this.maximizeIcon = createIconNoSpan('maximize', this.gridOptionsService);\n eGui.appendChild(this.maximizeIcon);\n this.maximizeIcon.classList.add('ag-panel-title-bar-button-icon');\n this.minimizeIcon = createIconNoSpan('minimize', this.gridOptionsService);\n eGui.appendChild(this.minimizeIcon);\n this.minimizeIcon.classList.add('ag-panel-title-bar-button-icon');\n return maximizeButtonComp;\n }\n}\n__decorate([\n Autowired('popupService')\n], AgDialog.prototype, \"popupService\", void 0);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar PopupService_1;\nimport { Autowired, Bean, PostConstruct } from \"../context/context.mjs\";\nimport { Events } from '../events.mjs';\nimport { BeanStub } from \"../context/beanStub.mjs\";\nimport { getAbsoluteHeight, getAbsoluteWidth, getElementRectWithOffset } from '../utils/dom.mjs';\nimport { last } from '../utils/array.mjs';\nimport { isElementInEventPath, isStopPropagationForAgGrid } from '../utils/event.mjs';\nimport { KeyCode } from '../constants/keyCode.mjs';\nimport { AgPromise } from \"../utils/index.mjs\";\nimport { setAriaLabel, setAriaRole } from \"../utils/aria.mjs\";\nimport { exists } from \"../utils/generic.mjs\";\nvar DIRECTION;\n(function (DIRECTION) {\n DIRECTION[DIRECTION[\"vertical\"] = 0] = \"vertical\";\n DIRECTION[DIRECTION[\"horizontal\"] = 1] = \"horizontal\";\n})(DIRECTION || (DIRECTION = {}));\nlet instanceIdSeq = 0;\nlet PopupService = PopupService_1 = class PopupService extends BeanStub {\n constructor() {\n super(...arguments);\n this.popupList = [];\n }\n postConstruct() {\n this.ctrlsService.whenReady(p => {\n this.gridCtrl = p.gridCtrl;\n });\n this.addManagedListener(this.eventService, Events.EVENT_GRID_STYLES_CHANGED, this.handleThemeChange.bind(this));\n }\n getPopupParent() {\n const ePopupParent = this.gridOptionsService.get('popupParent');\n if (ePopupParent) {\n return ePopupParent;\n }\n return this.gridCtrl.getGui();\n }\n positionPopupForMenu(params) {\n const { eventSource, ePopup } = params;\n const popupIdx = this.getPopupIndex(ePopup);\n if (popupIdx !== -1) {\n const popup = this.popupList[popupIdx];\n popup.alignedToElement = eventSource;\n }\n const sourceRect = eventSource.getBoundingClientRect();\n const parentRect = this.getParentRect();\n const y = this.keepXYWithinBounds(ePopup, sourceRect.top - parentRect.top, DIRECTION.vertical);\n const minWidth = (ePopup.clientWidth > 0) ? ePopup.clientWidth : 200;\n ePopup.style.minWidth = `${minWidth}px`;\n const widthOfParent = parentRect.right - parentRect.left;\n const maxX = widthOfParent - minWidth;\n // the x position of the popup depends on RTL or LTR. for normal cases, LTR, we put the child popup\n // to the right, unless it doesn't fit and we then put it to the left. for RTL it's the other way around,\n // we try place it first to the left, and then if not to the right.\n let x;\n if (this.gridOptionsService.get('enableRtl')) {\n // for RTL, try left first\n x = xLeftPosition();\n if (x < 0) {\n x = xRightPosition();\n this.setAlignedStyles(ePopup, 'left');\n }\n if (x > maxX) {\n x = 0;\n this.setAlignedStyles(ePopup, 'right');\n }\n }\n else {\n // for LTR, try right first\n x = xRightPosition();\n if (x > maxX) {\n x = xLeftPosition();\n this.setAlignedStyles(ePopup, 'right');\n }\n if (x < 0) {\n x = 0;\n this.setAlignedStyles(ePopup, 'left');\n }\n }\n ePopup.style.left = `${x}px`;\n ePopup.style.top = `${y}px`;\n function xRightPosition() {\n return sourceRect.right - parentRect.left - 2;\n }\n function xLeftPosition() {\n return sourceRect.left - parentRect.left - minWidth;\n }\n }\n positionPopupUnderMouseEvent(params) {\n const { ePopup, nudgeX, nudgeY, skipObserver } = params;\n this.positionPopup({\n ePopup: ePopup,\n nudgeX,\n nudgeY,\n keepWithinBounds: true,\n skipObserver,\n updatePosition: () => this.calculatePointerAlign(params.mouseEvent),\n postProcessCallback: () => this.callPostProcessPopup(params.type, params.ePopup, null, params.mouseEvent, params.column, params.rowNode)\n });\n }\n calculatePointerAlign(e) {\n const parentRect = this.getParentRect();\n return {\n x: e.clientX - parentRect.left,\n y: e.clientY - parentRect.top\n };\n }\n positionPopupByComponent(params) {\n const { ePopup, nudgeX, nudgeY, keepWithinBounds, eventSource, alignSide = 'left', position = 'over', column, rowNode, type } = params;\n const sourceRect = eventSource.getBoundingClientRect();\n const parentRect = this.getParentRect();\n const popupIdx = this.getPopupIndex(ePopup);\n if (popupIdx !== -1) {\n const popup = this.popupList[popupIdx];\n popup.alignedToElement = eventSource;\n }\n const updatePosition = () => {\n let x = sourceRect.left - parentRect.left;\n if (alignSide === 'right') {\n x -= (ePopup.offsetWidth - sourceRect.width);\n }\n let y;\n if (position === 'over') {\n y = (sourceRect.top - parentRect.top);\n this.setAlignedStyles(ePopup, 'over');\n }\n else {\n this.setAlignedStyles(ePopup, 'under');\n const alignSide = this.shouldRenderUnderOrAbove(ePopup, sourceRect, parentRect, params.nudgeY || 0);\n if (alignSide === 'under') {\n y = (sourceRect.top - parentRect.top + sourceRect.height);\n }\n else {\n y = (sourceRect.top - ePopup.offsetHeight - (nudgeY || 0) * 2) - parentRect.top;\n }\n }\n return { x, y };\n };\n this.positionPopup({\n ePopup,\n nudgeX,\n nudgeY,\n keepWithinBounds,\n updatePosition,\n postProcessCallback: () => this.callPostProcessPopup(type, ePopup, eventSource, null, column, rowNode)\n });\n }\n shouldRenderUnderOrAbove(ePopup, targetCompRect, parentRect, nudgeY) {\n const spaceAvailableUnder = parentRect.bottom - targetCompRect.bottom;\n const spaceAvailableAbove = targetCompRect.top - parentRect.top;\n const spaceRequired = ePopup.offsetHeight + nudgeY;\n if (spaceAvailableUnder > spaceRequired) {\n return 'under';\n }\n if (spaceAvailableAbove > spaceRequired || spaceAvailableAbove > spaceAvailableUnder) {\n return 'above';\n }\n return 'under';\n }\n setAlignedStyles(ePopup, positioned) {\n const popupIdx = this.getPopupIndex(ePopup);\n if (popupIdx === -1) {\n return;\n }\n const popup = this.popupList[popupIdx];\n const { alignedToElement } = popup;\n if (!alignedToElement) {\n return;\n }\n const positions = ['right', 'left', 'over', 'above', 'under'];\n positions.forEach(position => {\n alignedToElement.classList.remove(`ag-has-popup-positioned-${position}`);\n ePopup.classList.remove(`ag-popup-positioned-${position}`);\n });\n if (!positioned) {\n return;\n }\n alignedToElement.classList.add(`ag-has-popup-positioned-${positioned}`);\n ePopup.classList.add(`ag-popup-positioned-${positioned}`);\n }\n callPostProcessPopup(type, ePopup, eventSource, mouseEvent, column, rowNode) {\n const callback = this.gridOptionsService.getCallback('postProcessPopup');\n if (callback) {\n const params = {\n column: column,\n rowNode: rowNode,\n ePopup: ePopup,\n type: type,\n eventSource: eventSource,\n mouseEvent: mouseEvent\n };\n callback(params);\n }\n }\n positionPopup(params) {\n const { ePopup, keepWithinBounds, nudgeX, nudgeY, skipObserver, updatePosition } = params;\n const lastSize = { width: 0, height: 0 };\n const updatePopupPosition = (fromResizeObserver = false) => {\n let { x, y } = updatePosition();\n if (fromResizeObserver &&\n ePopup.clientWidth === lastSize.width &&\n ePopup.clientHeight === lastSize.height) {\n return;\n }\n lastSize.width = ePopup.clientWidth;\n lastSize.height = ePopup.clientHeight;\n if (nudgeX) {\n x += nudgeX;\n }\n if (nudgeY) {\n y += nudgeY;\n }\n // if popup is overflowing to the bottom, move it up\n if (keepWithinBounds) {\n x = this.keepXYWithinBounds(ePopup, x, DIRECTION.horizontal);\n y = this.keepXYWithinBounds(ePopup, y, DIRECTION.vertical);\n }\n ePopup.style.left = `${x}px`;\n ePopup.style.top = `${y}px`;\n if (params.postProcessCallback) {\n params.postProcessCallback();\n }\n };\n updatePopupPosition();\n // Mouse tracking will recalculate positioning when moving, so won't need to recalculate here\n if (!skipObserver) {\n // Since rendering popup contents can be asynchronous, use a resize observer to\n // reposition the popup after initial updates to the size of the contents\n const resizeObserverDestroyFunc = this.resizeObserverService.observeResize(ePopup, () => updatePopupPosition(true));\n // Only need to reposition when first open, so can clean up after a bit of time\n setTimeout(() => resizeObserverDestroyFunc(), PopupService_1.WAIT_FOR_POPUP_CONTENT_RESIZE);\n }\n }\n getActivePopups() {\n return this.popupList.map((popup) => popup.element);\n }\n getPopupList() {\n return this.popupList;\n }\n getParentRect() {\n // subtract the popup parent borders, because popupParent.getBoundingClientRect\n // returns the rect outside the borders, but the 0,0 coordinate for absolute\n // positioning is inside the border, leading the popup to be off by the width\n // of the border\n const eDocument = this.gridOptionsService.getDocument();\n let popupParent = this.getPopupParent();\n if (popupParent === eDocument.body) {\n popupParent = eDocument.documentElement;\n }\n else if (getComputedStyle(popupParent).position === 'static') {\n popupParent = popupParent.offsetParent;\n }\n return getElementRectWithOffset(popupParent);\n }\n keepXYWithinBounds(ePopup, position, direction) {\n const isVertical = direction === DIRECTION.vertical;\n const sizeProperty = isVertical ? 'clientHeight' : 'clientWidth';\n const anchorProperty = isVertical ? 'top' : 'left';\n const offsetProperty = isVertical ? 'offsetHeight' : 'offsetWidth';\n const scrollPositionProperty = isVertical ? 'scrollTop' : 'scrollLeft';\n const eDocument = this.gridOptionsService.getDocument();\n const docElement = eDocument.documentElement;\n const popupParent = this.getPopupParent();\n const parentRect = popupParent.getBoundingClientRect();\n const documentRect = eDocument.documentElement.getBoundingClientRect();\n const isBody = popupParent === eDocument.body;\n const offsetSize = ePopup[offsetProperty];\n const getSize = isVertical ? getAbsoluteHeight : getAbsoluteWidth;\n let sizeOfParent = isBody ? (getSize(docElement) + docElement[scrollPositionProperty]) : popupParent[sizeProperty];\n if (isBody) {\n sizeOfParent -= Math.abs(documentRect[anchorProperty] - parentRect[anchorProperty]);\n }\n const max = sizeOfParent - offsetSize;\n return Math.min(Math.max(position, 0), Math.abs(max));\n }\n addPopup(params) {\n const eDocument = this.gridOptionsService.getDocument();\n const { eChild, ariaLabel, alwaysOnTop, positionCallback, anchorToElement } = params;\n if (!eDocument) {\n console.warn('AG Grid: could not find the document, document is empty');\n return { hideFunc: () => { } };\n }\n const pos = this.getPopupIndex(eChild);\n if (pos !== -1) {\n const popup = this.popupList[pos];\n return { hideFunc: popup.hideFunc };\n }\n this.initialisePopupPosition(eChild);\n const wrapperEl = this.createPopupWrapper(eChild, ariaLabel, !!alwaysOnTop);\n const removeListeners = this.addEventListenersToPopup(Object.assign(Object.assign({}, params), { wrapperEl }));\n if (positionCallback) {\n positionCallback();\n }\n this.addPopupToPopupList(eChild, wrapperEl, removeListeners, anchorToElement);\n return {\n hideFunc: removeListeners\n };\n }\n initialisePopupPosition(element) {\n const ePopupParent = this.getPopupParent();\n const ePopupParentRect = ePopupParent.getBoundingClientRect();\n if (!exists(element.style.top)) {\n element.style.top = `${ePopupParentRect.top * -1}px`;\n }\n if (!exists(element.style.left)) {\n element.style.left = `${ePopupParentRect.left * -1}px`;\n }\n }\n createPopupWrapper(element, ariaLabel, alwaysOnTop) {\n const ePopupParent = this.getPopupParent();\n // add env CSS class to child, in case user provided a popup parent, which means\n // theme class may be missing\n const eWrapper = document.createElement('div');\n const { allThemes } = this.environment.getTheme();\n if (allThemes.length) {\n eWrapper.classList.add(...allThemes);\n }\n eWrapper.classList.add('ag-popup');\n element.classList.add(this.gridOptionsService.get('enableRtl') ? 'ag-rtl' : 'ag-ltr', 'ag-popup-child');\n if (!element.hasAttribute('role')) {\n setAriaRole(element, 'dialog');\n }\n setAriaLabel(element, ariaLabel);\n eWrapper.appendChild(element);\n ePopupParent.appendChild(eWrapper);\n if (alwaysOnTop) {\n this.setAlwaysOnTop(element, true);\n }\n else {\n this.bringPopupToFront(element);\n }\n return eWrapper;\n }\n handleThemeChange() {\n const { allThemes } = this.environment.getTheme();\n for (const popup of this.popupList) {\n for (const className of Array.from(popup.wrapper.classList)) {\n if (className.startsWith(\"ag-theme-\")) {\n popup.wrapper.classList.remove(className);\n }\n }\n if (allThemes.length) {\n popup.wrapper.classList.add(...allThemes);\n }\n }\n }\n addEventListenersToPopup(params) {\n const eDocument = this.gridOptionsService.getDocument();\n const ePopupParent = this.getPopupParent();\n const { wrapperEl, eChild: popupEl, click: pointerEvent, closedCallback, afterGuiAttached, closeOnEsc, modal } = params;\n let popupHidden = false;\n const hidePopupOnKeyboardEvent = (event) => {\n if (!wrapperEl.contains(eDocument.activeElement)) {\n return;\n }\n const key = event.key;\n if (key === KeyCode.ESCAPE && !isStopPropagationForAgGrid(event)) {\n removeListeners({ keyboardEvent: event });\n }\n };\n const hidePopupOnMouseEvent = (event) => removeListeners({ mouseEvent: event });\n const hidePopupOnTouchEvent = (event) => removeListeners({ touchEvent: event });\n const removeListeners = (popupParams = {}) => {\n const { mouseEvent, touchEvent, keyboardEvent } = popupParams;\n if (\n // we don't hide popup if the event was on the child, or any\n // children of this child\n this.isEventFromCurrentPopup({ mouseEvent, touchEvent }, popupEl) ||\n // this method should only be called once. the client can have different\n // paths, each one wanting to close, so this method may be called multiple times.\n popupHidden) {\n return;\n }\n popupHidden = true;\n ePopupParent.removeChild(wrapperEl);\n eDocument.removeEventListener('keydown', hidePopupOnKeyboardEvent);\n eDocument.removeEventListener('mousedown', hidePopupOnMouseEvent);\n eDocument.removeEventListener('touchstart', hidePopupOnTouchEvent);\n eDocument.removeEventListener('contextmenu', hidePopupOnMouseEvent);\n this.eventService.removeEventListener(Events.EVENT_DRAG_STARTED, hidePopupOnMouseEvent);\n if (closedCallback) {\n closedCallback(mouseEvent || touchEvent || keyboardEvent);\n }\n this.removePopupFromPopupList(popupEl);\n };\n if (afterGuiAttached) {\n afterGuiAttached({ hidePopup: removeListeners });\n }\n // if we add these listeners now, then the current mouse\n // click will be included, which we don't want\n window.setTimeout(() => {\n if (closeOnEsc) {\n eDocument.addEventListener('keydown', hidePopupOnKeyboardEvent);\n }\n if (modal) {\n eDocument.addEventListener('mousedown', hidePopupOnMouseEvent);\n this.eventService.addEventListener(Events.EVENT_DRAG_STARTED, hidePopupOnMouseEvent);\n eDocument.addEventListener('touchstart', hidePopupOnTouchEvent);\n eDocument.addEventListener('contextmenu', hidePopupOnMouseEvent);\n }\n }, 0);\n return removeListeners;\n }\n addPopupToPopupList(element, wrapperEl, removeListeners, anchorToElement) {\n this.popupList.push({\n element: element,\n wrapper: wrapperEl,\n hideFunc: removeListeners,\n instanceId: instanceIdSeq++,\n isAnchored: !!anchorToElement\n });\n if (anchorToElement) {\n this.setPopupPositionRelatedToElement(element, anchorToElement);\n }\n }\n getPopupIndex(el) {\n return this.popupList.findIndex(p => p.element === el);\n }\n setPopupPositionRelatedToElement(popupEl, relativeElement) {\n const popupIndex = this.getPopupIndex(popupEl);\n if (popupIndex === -1) {\n return;\n }\n const popup = this.popupList[popupIndex];\n if (popup.stopAnchoringPromise) {\n popup.stopAnchoringPromise.then(destroyFunc => destroyFunc && destroyFunc());\n }\n popup.stopAnchoringPromise = undefined;\n popup.isAnchored = false;\n if (!relativeElement) {\n return;\n }\n // keeps popup positioned under created, eg if context menu, if user scrolls\n // using touchpad and the cell moves, it moves the popup to keep it with the cell.\n const destroyPositionTracker = this.keepPopupPositionedRelativeTo({\n element: relativeElement,\n ePopup: popupEl,\n hidePopup: popup.hideFunc\n });\n popup.stopAnchoringPromise = destroyPositionTracker;\n popup.isAnchored = true;\n return destroyPositionTracker;\n }\n removePopupFromPopupList(element) {\n this.setAlignedStyles(element, null);\n this.setPopupPositionRelatedToElement(element, null);\n this.popupList = this.popupList.filter(p => p.element !== element);\n }\n keepPopupPositionedRelativeTo(params) {\n const eParent = this.getPopupParent();\n const parentRect = eParent.getBoundingClientRect();\n const { element, ePopup } = params;\n const sourceRect = element.getBoundingClientRect();\n const initialDiffTop = parentRect.top - sourceRect.top;\n const initialDiffLeft = parentRect.left - sourceRect.left;\n let lastDiffTop = initialDiffTop;\n let lastDiffLeft = initialDiffLeft;\n const topPx = ePopup.style.top;\n const top = parseInt(topPx.substring(0, topPx.length - 1), 10);\n const leftPx = ePopup.style.left;\n const left = parseInt(leftPx.substring(0, leftPx.length - 1), 10);\n return new AgPromise(resolve => {\n this.getFrameworkOverrides().setInterval(() => {\n const pRect = eParent.getBoundingClientRect();\n const sRect = element.getBoundingClientRect();\n const elementNotInDom = sRect.top == 0 && sRect.left == 0 && sRect.height == 0 && sRect.width == 0;\n if (elementNotInDom) {\n params.hidePopup();\n return;\n }\n const currentDiffTop = pRect.top - sRect.top;\n if (currentDiffTop != lastDiffTop) {\n const newTop = this.keepXYWithinBounds(ePopup, top + initialDiffTop - currentDiffTop, DIRECTION.vertical);\n ePopup.style.top = `${newTop}px`;\n }\n lastDiffTop = currentDiffTop;\n const currentDiffLeft = pRect.left - sRect.left;\n if (currentDiffLeft != lastDiffLeft) {\n const newLeft = this.keepXYWithinBounds(ePopup, left + initialDiffLeft - currentDiffLeft, DIRECTION.horizontal);\n ePopup.style.left = `${newLeft}px`;\n }\n lastDiffLeft = currentDiffLeft;\n }, 200).then(intervalId => {\n const result = () => {\n if (intervalId != null) {\n window.clearInterval(intervalId);\n }\n };\n resolve(result);\n });\n });\n }\n hasAnchoredPopup() {\n return this.popupList.some(popup => popup.isAnchored);\n }\n isEventFromCurrentPopup(params, target) {\n const { mouseEvent, touchEvent } = params;\n const event = mouseEvent ? mouseEvent : touchEvent;\n if (!event) {\n return false;\n }\n const indexOfThisChild = this.getPopupIndex(target);\n if (indexOfThisChild === -1) {\n return false;\n }\n for (let i = indexOfThisChild; i < this.popupList.length; i++) {\n const popup = this.popupList[i];\n if (isElementInEventPath(popup.element, event)) {\n return true;\n }\n }\n // if the user did not write their own Custom Element to be rendered as popup\n // and this component has an additional popup element, they should have the\n // `ag-custom-component-popup` class to be detected as part of the Custom Component\n return this.isElementWithinCustomPopup(event.target);\n }\n isElementWithinCustomPopup(el) {\n const eDocument = this.gridOptionsService.getDocument();\n while (el && el !== eDocument.body) {\n if (el.classList.contains('ag-custom-component-popup') || el.parentElement === null) {\n return true;\n }\n el = el.parentElement;\n }\n return false;\n }\n getWrapper(ePopup) {\n while (!ePopup.classList.contains('ag-popup') && ePopup.parentElement) {\n ePopup = ePopup.parentElement;\n }\n return ePopup.classList.contains('ag-popup') ? ePopup : null;\n }\n setAlwaysOnTop(ePopup, alwaysOnTop) {\n const eWrapper = this.getWrapper(ePopup);\n if (!eWrapper) {\n return;\n }\n eWrapper.classList.toggle('ag-always-on-top', !!alwaysOnTop);\n if (alwaysOnTop) {\n this.bringPopupToFront(eWrapper);\n }\n }\n bringPopupToFront(ePopup) {\n const parent = this.getPopupParent();\n const popupList = Array.prototype.slice.call(parent.querySelectorAll('.ag-popup'));\n const popupLen = popupList.length;\n const alwaysOnTopList = Array.prototype.slice.call(parent.querySelectorAll('.ag-popup.ag-always-on-top'));\n const onTopLength = alwaysOnTopList.length;\n const eWrapper = this.getWrapper(ePopup);\n if (!eWrapper || popupLen <= 1 || !parent.contains(ePopup)) {\n return;\n }\n const pos = popupList.indexOf(eWrapper);\n const innerEls = eWrapper.querySelectorAll('div');\n const innerElsScrollMap = [];\n innerEls.forEach(el => {\n if (el.scrollTop !== 0) {\n innerElsScrollMap.push([el, el.scrollTop]);\n }\n });\n if (onTopLength) {\n const isPopupAlwaysOnTop = eWrapper.classList.contains('ag-always-on-top');\n if (isPopupAlwaysOnTop) {\n if (pos !== popupLen - 1) {\n last(alwaysOnTopList).insertAdjacentElement('afterend', eWrapper);\n }\n }\n else if (pos !== popupLen - onTopLength - 1) {\n alwaysOnTopList[0].insertAdjacentElement('beforebegin', eWrapper);\n }\n }\n else if (pos !== popupLen - 1) {\n last(popupList).insertAdjacentElement('afterend', eWrapper);\n }\n while (innerElsScrollMap.length) {\n const currentEl = innerElsScrollMap.pop();\n currentEl[0].scrollTop = currentEl[1];\n }\n const params = {\n type: 'popupToFront',\n eWrapper\n };\n this.eventService.dispatchEvent(params);\n }\n};\nPopupService.WAIT_FOR_POPUP_CONTENT_RESIZE = 200;\n__decorate([\n Autowired('focusService')\n], PopupService.prototype, \"focusService\", void 0);\n__decorate([\n Autowired('ctrlsService')\n], PopupService.prototype, \"ctrlsService\", void 0);\n__decorate([\n Autowired('resizeObserverService')\n], PopupService.prototype, \"resizeObserverService\", void 0);\n__decorate([\n PostConstruct\n], PopupService.prototype, \"postConstruct\", null);\nPopupService = PopupService_1 = __decorate([\n Bean('popupService')\n], PopupService);\nexport { PopupService };\n","import { escapeString } from \"../utils/string.mjs\";\nimport { exists } from \"../utils/generic.mjs\";\nimport { Component } from \"./component.mjs\";\nexport class AgAutocompleteRow extends Component {\n constructor() {\n super(/* html */ `\n
\n
\n
`);\n this.hasHighlighting = false;\n }\n setState(value, selected) {\n this.value = value;\n this.render();\n this.updateSelected(selected);\n }\n updateSelected(selected) {\n this.addOrRemoveCssClass('ag-autocomplete-row-selected', selected);\n }\n setSearchString(searchString) {\n var _a;\n let keepHighlighting = false;\n if (exists(searchString)) {\n const index = (_a = this.value) === null || _a === void 0 ? void 0 : _a.toLocaleLowerCase().indexOf(searchString.toLocaleLowerCase());\n if (index >= 0) {\n keepHighlighting = true;\n this.hasHighlighting = true;\n const highlightEndIndex = index + searchString.length;\n const startPart = escapeString(this.value.slice(0, index));\n const highlightedPart = escapeString(this.value.slice(index, highlightEndIndex));\n const endPart = escapeString(this.value.slice(highlightEndIndex));\n this.getGui().lastElementChild.innerHTML = `${startPart}${highlightedPart}${endPart}`;\n }\n }\n if (!keepHighlighting && this.hasHighlighting) {\n this.hasHighlighting = false;\n this.render();\n }\n }\n render() {\n var _a;\n // putting in blank if missing, so at least the user can click on it\n this.getGui().lastElementChild.innerHTML = (_a = escapeString(this.value)) !== null && _a !== void 0 ? _a : ' ';\n }\n}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { RefSelector } from \"./componentAnnotations.mjs\";\nimport { VirtualList } from \"./virtualList.mjs\";\nimport { KeyCode } from \"../constants/keyCode.mjs\";\nimport { AgAutocompleteRow } from \"./agAutocompleteRow.mjs\";\nimport { fuzzySuggestions } from \"../utils/fuzzyMatch.mjs\";\nimport { PopupComponent } from \"./popupComponent.mjs\";\nimport { PostConstruct } from \"../context/context.mjs\";\nimport { exists } from \"../utils/generic.mjs\";\nexport class AgAutocompleteList extends PopupComponent {\n constructor(params) {\n super(AgAutocompleteList.TEMPLATE);\n this.params = params;\n this.searchString = '';\n }\n destroy() {\n super.destroy();\n }\n init() {\n this.autocompleteEntries = this.params.autocompleteEntries;\n this.virtualList = this.createManagedBean(new VirtualList({ cssIdentifier: 'autocomplete' }));\n this.virtualList.setComponentCreator(this.createRowComponent.bind(this));\n this.eList.appendChild(this.virtualList.getGui());\n this.virtualList.setModel({\n getRowCount: () => this.autocompleteEntries.length,\n getRow: (index) => this.autocompleteEntries[index]\n });\n const virtualListGui = this.virtualList.getGui();\n this.addManagedListener(virtualListGui, 'click', () => this.params.onConfirmed());\n this.addManagedListener(virtualListGui, 'mousemove', this.onMouseMove.bind(this));\n this.addManagedListener(virtualListGui, 'mousedown', (e) => e.preventDefault());\n this.setSelectedValue(0);\n }\n onNavigationKeyDown(event, key) {\n // if we don't preventDefault the page body and/or grid scroll will move.\n event.preventDefault();\n const oldIndex = this.autocompleteEntries.indexOf(this.selectedValue);\n const newIndex = key === KeyCode.UP ? oldIndex - 1 : oldIndex + 1;\n this.checkSetSelectedValue(newIndex);\n }\n setSearch(searchString) {\n this.searchString = searchString;\n if (exists(searchString)) {\n this.runSearch();\n }\n else {\n // reset\n this.autocompleteEntries = this.params.autocompleteEntries;\n this.virtualList.refresh();\n this.checkSetSelectedValue(0);\n }\n this.updateSearchInList();\n }\n runContainsSearch(searchString, searchStrings) {\n let topMatch;\n let topMatchStartsWithSearchString = false;\n const lowerCaseSearchString = searchString.toLocaleLowerCase();\n const allMatches = searchStrings.filter(string => {\n const lowerCaseString = string.toLocaleLowerCase();\n const index = lowerCaseString.indexOf(lowerCaseSearchString);\n const startsWithSearchString = index === 0;\n const isMatch = index >= 0;\n // top match is shortest value that starts with the search string, otherwise shortest value that includes the search string\n if (isMatch && (!topMatch ||\n (!topMatchStartsWithSearchString && startsWithSearchString) ||\n (topMatchStartsWithSearchString === startsWithSearchString && string.length < topMatch.length))) {\n topMatch = string;\n topMatchStartsWithSearchString = startsWithSearchString;\n }\n return isMatch;\n });\n if (!topMatch && allMatches.length) {\n topMatch = allMatches[0];\n }\n return { topMatch, allMatches };\n }\n runSearch() {\n var _a, _b;\n const { autocompleteEntries } = this.params;\n const searchStrings = autocompleteEntries.map(v => { var _a; return (_a = v.displayValue) !== null && _a !== void 0 ? _a : v.key; });\n let matchingStrings;\n let topSuggestion;\n if (this.params.useFuzzySearch) {\n matchingStrings = fuzzySuggestions(this.searchString, searchStrings, true).values;\n topSuggestion = matchingStrings.length ? matchingStrings[0] : undefined;\n }\n else {\n const containsMatches = this.runContainsSearch(this.searchString, searchStrings);\n matchingStrings = containsMatches.allMatches;\n topSuggestion = containsMatches.topMatch;\n }\n let filteredEntries = autocompleteEntries.filter(({ key, displayValue }) => matchingStrings.includes(displayValue !== null && displayValue !== void 0 ? displayValue : key));\n if (!filteredEntries.length && this.selectedValue && ((_b = (_a = this.params) === null || _a === void 0 ? void 0 : _a.forceLastSelection) === null || _b === void 0 ? void 0 : _b.call(_a, this.selectedValue, this.searchString))) {\n filteredEntries = [this.selectedValue];\n }\n this.autocompleteEntries = filteredEntries;\n this.virtualList.refresh();\n if (!topSuggestion) {\n return;\n }\n const topSuggestionIndex = matchingStrings.indexOf(topSuggestion);\n this.checkSetSelectedValue(topSuggestionIndex);\n }\n updateSearchInList() {\n this.virtualList.forEachRenderedRow((row) => row.setSearchString(this.searchString));\n }\n checkSetSelectedValue(index) {\n if (index >= 0 && index < this.autocompleteEntries.length) {\n this.setSelectedValue(index);\n }\n }\n setSelectedValue(index) {\n const value = this.autocompleteEntries[index];\n if (this.selectedValue === value) {\n return;\n }\n this.selectedValue = value;\n this.virtualList.ensureIndexVisible(index);\n this.virtualList.forEachRenderedRow((cmp, idx) => {\n cmp.updateSelected(index === idx);\n });\n }\n createRowComponent(value) {\n var _a;\n const row = new AgAutocompleteRow();\n this.getContext().createBean(row);\n row.setState((_a = value.displayValue) !== null && _a !== void 0 ? _a : value.key, value === this.selectedValue);\n return row;\n }\n onMouseMove(mouseEvent) {\n const rect = this.virtualList.getGui().getBoundingClientRect();\n const scrollTop = this.virtualList.getScrollTop();\n const mouseY = mouseEvent.clientY - rect.top + scrollTop;\n const row = Math.floor(mouseY / this.virtualList.getRowHeight());\n this.checkSetSelectedValue(row);\n }\n afterGuiAttached() {\n this.virtualList.refresh();\n }\n getSelectedValue() {\n var _a;\n if (!this.autocompleteEntries.length) {\n return null;\n }\n ;\n return (_a = this.selectedValue) !== null && _a !== void 0 ? _a : null;\n }\n}\nAgAutocompleteList.TEMPLATE = `
\n
\n
`;\n__decorate([\n RefSelector('eList')\n], AgAutocompleteList.prototype, \"eList\", void 0);\n__decorate([\n PostConstruct\n], AgAutocompleteList.prototype, \"init\", null);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component } from \"./component.mjs\";\nimport { RefSelector } from \"./componentAnnotations.mjs\";\nimport { Autowired, PostConstruct } from \"../context/context.mjs\";\nimport { AgAutocompleteList } from \"./agAutocompleteList.mjs\";\nimport { KeyCode } from \"../constants/keyCode.mjs\";\nimport { makeNull } from \"../utils/generic.mjs\";\nexport class AgAutocomplete extends Component {\n constructor() {\n super(/* html */ `\n
\n \n
`);\n this.isListOpen = false;\n this.lastPosition = 0;\n this.valid = true;\n }\n postConstruct() {\n this.eAutocompleteInput.onValueChange(value => this.onValueChanged(value));\n this.eAutocompleteInput.getInputElement().setAttribute('autocomplete', 'off');\n this.addGuiEventListener('keydown', this.onKeyDown.bind(this));\n this.addGuiEventListener('click', this.updatePositionAndList.bind(this));\n this.addDestroyFunc(() => {\n this.destroyBean(this.autocompleteList);\n });\n this.addGuiEventListener('focusout', () => this.onFocusOut());\n }\n onValueChanged(value) {\n const parsedValue = makeNull(value);\n this.updateValue(parsedValue);\n this.updateAutocompleteList(parsedValue);\n }\n updateValue(value) {\n this.updateLastPosition();\n this.dispatchEvent({\n type: AgAutocomplete.EVENT_VALUE_CHANGED,\n value\n });\n this.validate(value);\n }\n updateAutocompleteList(value) {\n var _a, _b, _c, _d;\n const autocompleteListParams = (_b = (_a = this.listGenerator) === null || _a === void 0 ? void 0 : _a.call(this, value, this.lastPosition)) !== null && _b !== void 0 ? _b : { enabled: false };\n if (!autocompleteListParams.type || autocompleteListParams.type !== ((_c = this.autocompleteListParams) === null || _c === void 0 ? void 0 : _c.type)) {\n if (this.isListOpen) {\n this.closeList();\n }\n }\n this.autocompleteListParams = autocompleteListParams;\n if ((_d = this.autocompleteListParams) === null || _d === void 0 ? void 0 : _d.enabled) {\n if (!this.isListOpen) {\n this.openList();\n }\n const { searchString } = this.autocompleteListParams;\n this.autocompleteList.setSearch(searchString !== null && searchString !== void 0 ? searchString : '');\n }\n else {\n if (this.isListOpen) {\n this.closeList();\n }\n }\n }\n onKeyDown(event) {\n const key = event.key;\n this.updateLastPosition();\n switch (key) {\n case KeyCode.ENTER:\n this.onEnterKeyDown(event);\n break;\n case KeyCode.TAB:\n this.onTabKeyDown(event);\n break;\n case KeyCode.DOWN:\n case KeyCode.UP:\n this.onUpDownKeyDown(event, key);\n break;\n case KeyCode.LEFT:\n case KeyCode.RIGHT:\n case KeyCode.PAGE_HOME:\n case KeyCode.PAGE_END:\n // input position is updated after this is called, so do async\n setTimeout(() => {\n this.updatePositionAndList();\n });\n break;\n case KeyCode.ESCAPE:\n this.onEscapeKeyDown(event);\n break;\n case KeyCode.SPACE:\n if (event.ctrlKey && !this.isListOpen) {\n event.preventDefault();\n this.forceOpenList();\n }\n break;\n }\n }\n confirmSelection() {\n var _a;\n const selectedValue = (_a = this.autocompleteList) === null || _a === void 0 ? void 0 : _a.getSelectedValue();\n if (selectedValue) {\n this.closeList();\n this.dispatchEvent({\n type: AgAutocomplete.EVENT_OPTION_SELECTED,\n value: this.getValue(),\n position: this.lastPosition,\n updateEntry: selectedValue,\n autocompleteType: this.autocompleteListParams.type\n });\n }\n }\n onTabKeyDown(event) {\n if (this.isListOpen) {\n event.preventDefault();\n event.stopPropagation();\n this.confirmSelection();\n }\n }\n onEnterKeyDown(event) {\n event.preventDefault();\n if (this.isListOpen) {\n this.confirmSelection();\n }\n else {\n this.onCompleted();\n }\n }\n onUpDownKeyDown(event, key) {\n var _a;\n event.preventDefault();\n if (!this.isListOpen) {\n this.forceOpenList();\n }\n else {\n (_a = this.autocompleteList) === null || _a === void 0 ? void 0 : _a.onNavigationKeyDown(event, key);\n }\n }\n onEscapeKeyDown(event) {\n if (this.isListOpen) {\n event.preventDefault();\n event.stopPropagation();\n this.closeList();\n this.setCaret(this.lastPosition, true);\n }\n }\n onFocusOut() {\n if (this.isListOpen) {\n this.closeList();\n }\n }\n updatePositionAndList() {\n var _a;\n this.updateLastPosition();\n this.updateAutocompleteList((_a = this.eAutocompleteInput.getValue()) !== null && _a !== void 0 ? _a : null);\n }\n setCaret(position, setFocus) {\n const eDocument = this.gridOptionsService.getDocument();\n if (setFocus && eDocument.activeElement === eDocument.body) {\n // clicking on the list loses focus, so restore\n this.eAutocompleteInput.getFocusableElement().focus();\n }\n const eInput = this.eAutocompleteInput.getInputElement();\n eInput.setSelectionRange(position, position);\n if (position === eInput.value.length) {\n // ensure the caret is visible\n eInput.scrollLeft = eInput.scrollWidth;\n }\n }\n forceOpenList() {\n this.onValueChanged(this.eAutocompleteInput.getValue());\n }\n updateLastPosition() {\n var _a;\n this.lastPosition = (_a = this.eAutocompleteInput.getInputElement().selectionStart) !== null && _a !== void 0 ? _a : 0;\n }\n validate(value) {\n var _a;\n if (!this.validator) {\n return;\n }\n this.validationMessage = this.validator(value);\n this.eAutocompleteInput.getInputElement().setCustomValidity((_a = this.validationMessage) !== null && _a !== void 0 ? _a : '');\n this.valid = !this.validationMessage;\n this.dispatchEvent({\n type: AgAutocomplete.EVENT_VALID_CHANGED,\n isValid: this.valid,\n validationMessage: this.validationMessage\n });\n }\n openList() {\n this.isListOpen = true;\n // this is unmanaged as it gets destroyed/created each time it is opened\n this.autocompleteList = this.createBean(new AgAutocompleteList({\n autocompleteEntries: this.autocompleteListParams.entries,\n onConfirmed: () => this.confirmSelection(),\n forceLastSelection: this.forceLastSelection\n }));\n const ePopupGui = this.autocompleteList.getGui();\n const positionParams = {\n ePopup: ePopupGui,\n type: 'autocomplete',\n eventSource: this.getGui(),\n position: 'under',\n alignSide: this.gridOptionsService.get('enableRtl') ? 'right' : 'left',\n keepWithinBounds: true\n };\n const addPopupRes = this.popupService.addPopup({\n eChild: ePopupGui,\n anchorToElement: this.getGui(),\n positionCallback: () => this.popupService.positionPopupByComponent(positionParams),\n ariaLabel: this.listAriaLabel\n });\n this.hidePopup = addPopupRes.hideFunc;\n this.autocompleteList.afterGuiAttached();\n }\n closeList() {\n this.isListOpen = false;\n this.hidePopup();\n this.destroyBean(this.autocompleteList);\n this.autocompleteList = null;\n }\n onCompleted() {\n if (this.isListOpen) {\n this.closeList();\n }\n this.dispatchEvent({\n type: AgAutocomplete.EVENT_VALUE_CONFIRMED,\n value: this.getValue(),\n isValid: this.isValid()\n });\n }\n getValue() {\n return makeNull(this.eAutocompleteInput.getValue());\n }\n setInputPlaceholder(placeholder) {\n this.eAutocompleteInput.setInputPlaceholder(placeholder);\n return this;\n }\n setInputAriaLabel(label) {\n this.eAutocompleteInput.setInputAriaLabel(label);\n return this;\n }\n setListAriaLabel(label) {\n this.listAriaLabel = label;\n return this;\n }\n setListGenerator(listGenerator) {\n this.listGenerator = listGenerator;\n return this;\n }\n setValidator(validator) {\n this.validator = validator;\n return this;\n }\n isValid() {\n return this.valid;\n }\n setValue(params) {\n const { value, position, silent, updateListOnlyIfOpen, restoreFocus } = params;\n this.eAutocompleteInput.setValue(value, true);\n this.setCaret(position !== null && position !== void 0 ? position : this.lastPosition, restoreFocus);\n if (!silent) {\n this.updateValue(value);\n }\n if (!updateListOnlyIfOpen || this.isListOpen) {\n this.updateAutocompleteList(value);\n }\n }\n setForceLastSelection(forceLastSelection) {\n this.forceLastSelection = forceLastSelection;\n return this;\n }\n setInputDisabled(disabled) {\n this.eAutocompleteInput.setDisabled(disabled);\n return this;\n }\n}\nAgAutocomplete.EVENT_VALUE_CHANGED = 'eventValueChanged';\nAgAutocomplete.EVENT_VALUE_CONFIRMED = 'eventValueConfirmed';\nAgAutocomplete.EVENT_OPTION_SELECTED = 'eventOptionSelected';\nAgAutocomplete.EVENT_VALID_CHANGED = 'eventValidChanged';\n__decorate([\n Autowired('popupService')\n], AgAutocomplete.prototype, \"popupService\", void 0);\n__decorate([\n RefSelector('eAutocompleteInput')\n], AgAutocomplete.prototype, \"eAutocompleteInput\", void 0);\n__decorate([\n PostConstruct\n], AgAutocomplete.prototype, \"postConstruct\", null);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Autowired, Bean } from \"./context/context.mjs\";\nimport { BeanStub } from \"./context/beanStub.mjs\";\nimport { missing } from \"./utils/generic.mjs\";\nimport { last } from \"./utils/array.mjs\";\nimport { KeyCode } from './constants/keyCode.mjs';\nlet CellNavigationService = class CellNavigationService extends BeanStub {\n // returns null if no cell to focus on, ie at the end of the grid\n getNextCellToFocus(key, focusedCell, ctrlPressed = false) {\n if (ctrlPressed) {\n return this.getNextCellToFocusWithCtrlPressed(key, focusedCell);\n }\n return this.getNextCellToFocusWithoutCtrlPressed(key, focusedCell);\n }\n getNextCellToFocusWithCtrlPressed(key, focusedCell) {\n const upKey = key === KeyCode.UP;\n const downKey = key === KeyCode.DOWN;\n const leftKey = key === KeyCode.LEFT;\n let column;\n let rowIndex;\n if (upKey || downKey) {\n rowIndex = upKey ? this.paginationProxy.getPageFirstRow() : this.paginationProxy.getPageLastRow();\n column = focusedCell.column;\n }\n else {\n const allColumns = this.columnModel.getAllDisplayedColumns();\n const isRtl = this.gridOptionsService.get('enableRtl');\n rowIndex = focusedCell.rowIndex;\n column = leftKey !== isRtl ? allColumns[0] : last(allColumns);\n }\n return {\n rowIndex,\n rowPinned: null,\n column\n };\n }\n getNextCellToFocusWithoutCtrlPressed(key, focusedCell) {\n // starting with the provided cell, we keep moving until we find a cell we can\n // focus on.\n let pointer = focusedCell;\n let finished = false;\n // finished will be true when either:\n // a) cell found that we can focus on\n // b) run out of cells (ie the method returns null)\n while (!finished) {\n switch (key) {\n case KeyCode.UP:\n pointer = this.getCellAbove(pointer);\n break;\n case KeyCode.DOWN:\n pointer = this.getCellBelow(pointer);\n break;\n case KeyCode.RIGHT:\n if (this.gridOptionsService.get('enableRtl')) {\n pointer = this.getCellToLeft(pointer);\n }\n else {\n pointer = this.getCellToRight(pointer);\n }\n break;\n case KeyCode.LEFT:\n if (this.gridOptionsService.get('enableRtl')) {\n pointer = this.getCellToRight(pointer);\n }\n else {\n pointer = this.getCellToLeft(pointer);\n }\n break;\n default:\n pointer = null;\n console.warn('AG Grid: unknown key for navigation ' + key);\n break;\n }\n if (pointer) {\n finished = this.isCellGoodToFocusOn(pointer);\n }\n else {\n finished = true;\n }\n }\n return pointer;\n }\n isCellGoodToFocusOn(gridCell) {\n const column = gridCell.column;\n let rowNode;\n switch (gridCell.rowPinned) {\n case 'top':\n rowNode = this.pinnedRowModel.getPinnedTopRow(gridCell.rowIndex);\n break;\n case 'bottom':\n rowNode = this.pinnedRowModel.getPinnedBottomRow(gridCell.rowIndex);\n break;\n default:\n rowNode = this.rowModel.getRow(gridCell.rowIndex);\n break;\n }\n if (!rowNode) {\n return false;\n }\n const suppressNavigable = column.isSuppressNavigable(rowNode);\n return !suppressNavigable;\n }\n getCellToLeft(lastCell) {\n if (!lastCell) {\n return null;\n }\n const colToLeft = this.columnModel.getDisplayedColBefore(lastCell.column);\n if (!colToLeft) {\n return null;\n }\n return {\n rowIndex: lastCell.rowIndex,\n column: colToLeft,\n rowPinned: lastCell.rowPinned\n };\n }\n getCellToRight(lastCell) {\n if (!lastCell) {\n return null;\n }\n const colToRight = this.columnModel.getDisplayedColAfter(lastCell.column);\n // if already on right, do nothing\n if (!colToRight) {\n return null;\n }\n return {\n rowIndex: lastCell.rowIndex,\n column: colToRight,\n rowPinned: lastCell.rowPinned\n };\n }\n getRowBelow(rowPosition) {\n // if already on top row, do nothing\n const index = rowPosition.rowIndex;\n const pinned = rowPosition.rowPinned;\n if (this.isLastRowInContainer(rowPosition)) {\n switch (pinned) {\n case 'bottom':\n // never any rows after pinned bottom\n return null;\n case 'top':\n // if on last row of pinned top, then next row is main body (if rows exist),\n // otherwise it's the pinned bottom\n if (this.rowModel.isRowsToRender()) {\n return { rowIndex: this.paginationProxy.getPageFirstRow(), rowPinned: null };\n }\n if (this.pinnedRowModel.isRowsToRender('bottom')) {\n return { rowIndex: 0, rowPinned: 'bottom' };\n }\n return null;\n default:\n // if in the main body, then try pinned bottom, otherwise return nothing\n if (this.pinnedRowModel.isRowsToRender('bottom')) {\n return { rowIndex: 0, rowPinned: 'bottom' };\n }\n return null;\n }\n }\n const rowNode = this.rowModel.getRow(rowPosition.rowIndex);\n const nextStickyPosition = this.getNextStickyPosition(rowNode);\n if (nextStickyPosition) {\n return nextStickyPosition;\n }\n return { rowIndex: index + 1, rowPinned: pinned };\n }\n getNextStickyPosition(rowNode, up) {\n if (!this.gridOptionsService.isGroupRowsSticky() || !rowNode || !rowNode.sticky) {\n return;\n }\n const stickyRowCtrls = [...this.rowRenderer.getStickyTopRowCtrls()].sort((a, b) => a.getRowNode().rowIndex - b.getRowNode().rowIndex);\n const diff = up ? -1 : 1;\n const idx = stickyRowCtrls.findIndex(ctrl => ctrl.getRowNode().rowIndex === rowNode.rowIndex);\n const nextCtrl = stickyRowCtrls[idx + diff];\n if (nextCtrl) {\n return { rowIndex: nextCtrl.getRowNode().rowIndex, rowPinned: null };\n }\n }\n getCellBelow(lastCell) {\n if (!lastCell) {\n return null;\n }\n const rowBelow = this.getRowBelow(lastCell);\n if (rowBelow) {\n return {\n rowIndex: rowBelow.rowIndex,\n column: lastCell.column,\n rowPinned: rowBelow.rowPinned\n };\n }\n return null;\n }\n isLastRowInContainer(rowPosition) {\n const pinned = rowPosition.rowPinned;\n const index = rowPosition.rowIndex;\n if (pinned === 'top') {\n const lastTopIndex = this.pinnedRowModel.getPinnedTopRowData().length - 1;\n return lastTopIndex <= index;\n }\n if (pinned === 'bottom') {\n const lastBottomIndex = this.pinnedRowModel.getPinnedBottomRowData().length - 1;\n return lastBottomIndex <= index;\n }\n const lastBodyIndex = this.paginationProxy.getPageLastRow();\n return lastBodyIndex <= index;\n }\n getRowAbove(rowPosition) {\n // if already on top row, do nothing\n const index = rowPosition.rowIndex;\n const pinned = rowPosition.rowPinned;\n const isFirstRow = pinned ? index === 0 : index === this.paginationProxy.getPageFirstRow();\n // if already on top row, do nothing\n if (isFirstRow) {\n if (pinned === 'top') {\n return null;\n }\n if (!pinned) {\n if (this.pinnedRowModel.isRowsToRender('top')) {\n return this.getLastFloatingTopRow();\n }\n return null;\n }\n // last floating bottom\n if (this.rowModel.isRowsToRender()) {\n return this.getLastBodyCell();\n }\n if (this.pinnedRowModel.isRowsToRender('top')) {\n return this.getLastFloatingTopRow();\n }\n return null;\n }\n const rowNode = this.rowModel.getRow(rowPosition.rowIndex);\n const nextStickyPosition = this.getNextStickyPosition(rowNode, true);\n if (nextStickyPosition) {\n return nextStickyPosition;\n }\n return { rowIndex: index - 1, rowPinned: pinned };\n }\n getCellAbove(lastCell) {\n if (!lastCell) {\n return null;\n }\n const rowAbove = this.getRowAbove({ rowIndex: lastCell.rowIndex, rowPinned: lastCell.rowPinned });\n if (rowAbove) {\n return {\n rowIndex: rowAbove.rowIndex,\n column: lastCell.column,\n rowPinned: rowAbove.rowPinned\n };\n }\n return null;\n }\n getLastBodyCell() {\n const lastBodyRow = this.paginationProxy.getPageLastRow();\n return { rowIndex: lastBodyRow, rowPinned: null };\n }\n getLastFloatingTopRow() {\n const lastFloatingRow = this.pinnedRowModel.getPinnedTopRowData().length - 1;\n return { rowIndex: lastFloatingRow, rowPinned: 'top' };\n }\n getNextTabbedCell(gridCell, backwards) {\n if (backwards) {\n return this.getNextTabbedCellBackwards(gridCell);\n }\n return this.getNextTabbedCellForwards(gridCell);\n }\n getNextTabbedCellForwards(gridCell) {\n const displayedColumns = this.columnModel.getAllDisplayedColumns();\n let newRowIndex = gridCell.rowIndex;\n let newFloating = gridCell.rowPinned;\n // move along to the next cell\n let newColumn = this.columnModel.getDisplayedColAfter(gridCell.column);\n // check if end of the row, and if so, go forward a row\n if (!newColumn) {\n newColumn = displayedColumns[0];\n const rowBelow = this.getRowBelow(gridCell);\n if (missing(rowBelow)) {\n return null;\n }\n // If we are tabbing and there is a paging panel present, tabbing should go\n // to the paging panel instead of loading the next page.\n if (!rowBelow.rowPinned && !this.paginationProxy.isRowInPage(rowBelow)) {\n return null;\n }\n newRowIndex = rowBelow ? rowBelow.rowIndex : null;\n newFloating = rowBelow ? rowBelow.rowPinned : null;\n }\n return { rowIndex: newRowIndex, column: newColumn, rowPinned: newFloating };\n }\n getNextTabbedCellBackwards(gridCell) {\n const displayedColumns = this.columnModel.getAllDisplayedColumns();\n let newRowIndex = gridCell.rowIndex;\n let newFloating = gridCell.rowPinned;\n // move along to the next cell\n let newColumn = this.columnModel.getDisplayedColBefore(gridCell.column);\n // check if end of the row, and if so, go forward a row\n if (!newColumn) {\n newColumn = last(displayedColumns);\n const rowAbove = this.getRowAbove({ rowIndex: gridCell.rowIndex, rowPinned: gridCell.rowPinned });\n if (missing(rowAbove)) {\n return null;\n }\n // If we are tabbing and there is a paging panel present, tabbing should go\n // to the paging panel instead of loading the next page.\n if (!rowAbove.rowPinned && !this.paginationProxy.isRowInPage(rowAbove)) {\n return null;\n }\n newRowIndex = rowAbove ? rowAbove.rowIndex : null;\n newFloating = rowAbove ? rowAbove.rowPinned : null;\n }\n return { rowIndex: newRowIndex, column: newColumn, rowPinned: newFloating };\n }\n};\n__decorate([\n Autowired('columnModel')\n], CellNavigationService.prototype, \"columnModel\", void 0);\n__decorate([\n Autowired('rowModel')\n], CellNavigationService.prototype, \"rowModel\", void 0);\n__decorate([\n Autowired('rowRenderer')\n], CellNavigationService.prototype, \"rowRenderer\", void 0);\n__decorate([\n Autowired('pinnedRowModel')\n], CellNavigationService.prototype, \"pinnedRowModel\", void 0);\n__decorate([\n Autowired('paginationProxy')\n], CellNavigationService.prototype, \"paginationProxy\", void 0);\nCellNavigationService = __decorate([\n Bean('cellNavigationService')\n], CellNavigationService);\nexport { CellNavigationService };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { Events } from \"./events.mjs\";\nimport { Bean } from \"./context/context.mjs\";\nimport { Qualifier } from \"./context/context.mjs\";\nimport { Autowired } from \"./context/context.mjs\";\nimport { PostConstruct } from \"./context/context.mjs\";\nimport { BeanStub } from \"./context/beanStub.mjs\";\nimport { GridApi } from \"./gridApi.mjs\";\nimport { errorOnce } from \"./utils/function.mjs\";\nlet AlignedGridsService = class AlignedGridsService extends BeanStub {\n constructor() {\n super(...arguments);\n // flag to mark if we are consuming. to avoid cyclic events (ie other grid firing back to master\n // while processing a master event) we mark this if consuming an event, and if we are, then\n // we don't fire back any events.\n this.consuming = false;\n }\n setBeans(loggerFactory) {\n this.logger = loggerFactory.create('AlignedGridsService');\n }\n getAlignedGridApis() {\n var _a;\n let alignedGrids = (_a = this.gridOptionsService.get('alignedGrids')) !== null && _a !== void 0 ? _a : [];\n const isCallbackConfig = typeof alignedGrids === 'function';\n if (typeof alignedGrids === 'function') {\n alignedGrids = alignedGrids();\n }\n const seeUrl = () => `See ${this.getFrameworkOverrides().getDocLink('aligned-grids')}`;\n const apis = alignedGrids.map((alignedGrid) => {\n var _a;\n if (!alignedGrid) {\n errorOnce(`alignedGrids contains an undefined option.`);\n if (!isCallbackConfig) {\n errorOnce(`You may want to configure via a callback to avoid setup race conditions:\n \"alignedGrids: () => [linkedGrid]\"`);\n }\n errorOnce(seeUrl());\n return;\n }\n if (alignedGrid instanceof GridApi) {\n return alignedGrid;\n }\n // Extract the GridApi from a ref or component\n const refOrComp = alignedGrid;\n if ('current' in refOrComp) {\n return (_a = refOrComp.current) === null || _a === void 0 ? void 0 : _a.api;\n }\n else {\n if (!refOrComp.api) {\n errorOnce(`alignedGrids - No api found on the linked grid. If you are passing gridOptions to alignedGrids since v31 this is no longer valid. ${seeUrl()}`);\n }\n return refOrComp.api;\n }\n }).filter(api => !!api && !api.isDestroyed());\n return apis;\n }\n init() {\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_MOVED, this.fireColumnEvent.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_VISIBLE, this.fireColumnEvent.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PINNED, this.fireColumnEvent.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_GROUP_OPENED, this.fireColumnEvent.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_RESIZED, this.fireColumnEvent.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_BODY_SCROLL, this.fireScrollEvent.bind(this));\n }\n // common logic across all the fire methods\n fireEvent(callback) {\n // if we are already consuming, then we are acting on an event from a master,\n // so we don't cause a cyclic firing of events\n if (this.consuming) {\n return;\n }\n // iterate through the aligned grids, and pass each aligned grid service to the callback\n this.getAlignedGridApis().forEach((api) => {\n const alignedGridService = api.__getAlignedGridService();\n callback(alignedGridService);\n });\n }\n // common logic across all consume methods. very little common logic, however extracting\n // guarantees consistency across the methods.\n onEvent(callback) {\n this.consuming = true;\n callback();\n this.consuming = false;\n }\n fireColumnEvent(event) {\n this.fireEvent(alignedGridsService => {\n alignedGridsService.onColumnEvent(event);\n });\n }\n fireScrollEvent(event) {\n if (event.direction !== 'horizontal') {\n return;\n }\n this.fireEvent(alignedGridsService => {\n alignedGridsService.onScrollEvent(event);\n });\n }\n onScrollEvent(event) {\n this.onEvent(() => {\n const gridBodyCon = this.ctrlsService.getGridBodyCtrl();\n gridBodyCon.getScrollFeature().setHorizontalScrollPosition(event.left, true);\n });\n }\n getMasterColumns(event) {\n const result = [];\n if (event.columns) {\n event.columns.forEach((column) => {\n result.push(column);\n });\n }\n else if (event.column) {\n result.push(event.column);\n }\n return result;\n }\n getColumnIds(event) {\n const result = [];\n if (event.columns) {\n event.columns.forEach(column => {\n result.push(column.getColId());\n });\n }\n else if (event.column) {\n result.push(event.column.getColId());\n }\n return result;\n }\n onColumnEvent(event) {\n this.onEvent(() => {\n switch (event.type) {\n case Events.EVENT_COLUMN_MOVED:\n case Events.EVENT_COLUMN_VISIBLE:\n case Events.EVENT_COLUMN_PINNED:\n case Events.EVENT_COLUMN_RESIZED:\n const colEvent = event;\n this.processColumnEvent(colEvent);\n break;\n case Events.EVENT_COLUMN_GROUP_OPENED:\n const groupOpenedEvent = event;\n this.processGroupOpenedEvent(groupOpenedEvent);\n break;\n case Events.EVENT_COLUMN_PIVOT_CHANGED:\n // we cannot support pivoting with aligned grids as the columns will be out of sync as the\n // grids will have columns created based on the row data of the grid.\n console.warn('AG Grid: pivoting is not supported with aligned grids. ' +\n 'You can only use one of these features at a time in a grid.');\n break;\n }\n });\n }\n processGroupOpenedEvent(groupOpenedEvent) {\n groupOpenedEvent.columnGroups.forEach(masterGroup => {\n // likewise for column group\n let otherColumnGroup = null;\n if (masterGroup) {\n const groupId = masterGroup.getGroupId();\n otherColumnGroup = this.columnModel.getProvidedColumnGroup(groupId);\n }\n if (masterGroup && !otherColumnGroup) {\n return;\n }\n this.logger.log('onColumnEvent-> processing ' + groupOpenedEvent + ' expanded = ' + masterGroup.isExpanded());\n this.columnModel.setColumnGroupOpened(otherColumnGroup, masterGroup.isExpanded(), \"alignedGridChanged\");\n });\n }\n processColumnEvent(colEvent) {\n var _a;\n // the column in the event is from the master grid. need to\n // look up the equivalent from this (other) grid\n const masterColumn = colEvent.column;\n let otherColumn = null;\n if (masterColumn) {\n otherColumn = this.columnModel.getPrimaryColumn(masterColumn.getColId());\n }\n // if event was with respect to a master column, that is not present in this\n // grid, then we ignore the event\n if (masterColumn && !otherColumn) {\n return;\n }\n // in time, all the methods below should use the column ids, it's a more generic way\n // of handling columns, and also allows for single or multi column events\n const masterColumns = this.getMasterColumns(colEvent);\n switch (colEvent.type) {\n case Events.EVENT_COLUMN_MOVED:\n // when the user moves columns via applyColumnState, we can't depend on moving specific columns\n // to an index, as there maybe be many indexes columns moved to (as wasn't result of a mouse drag).\n // so only way to be sure is match the order of all columns using Column State.\n {\n const movedEvent = colEvent;\n const srcColState = colEvent.api.getColumnState();\n const destColState = srcColState.map(s => ({ colId: s.colId }));\n this.columnModel.applyColumnState({ state: destColState, applyOrder: true }, \"alignedGridChanged\");\n this.logger.log(`onColumnEvent-> processing ${colEvent.type} toIndex = ${movedEvent.toIndex}`);\n }\n break;\n case Events.EVENT_COLUMN_VISIBLE:\n // when the user changes visibility via applyColumnState, we can't depend on visibility flag in event\n // as there maybe be mix of true/false (as wasn't result of a mouse click to set visiblity).\n // so only way to be sure is match the visibility of all columns using Column State.\n {\n const visibleEvent = colEvent;\n const srcColState = colEvent.api.getColumnState();\n const destColState = srcColState.map(s => ({ colId: s.colId, hide: s.hide }));\n this.columnModel.applyColumnState({ state: destColState }, \"alignedGridChanged\");\n this.logger.log(`onColumnEvent-> processing ${colEvent.type} visible = ${visibleEvent.visible}`);\n }\n break;\n case Events.EVENT_COLUMN_PINNED:\n {\n const pinnedEvent = colEvent;\n const srcColState = colEvent.api.getColumnState();\n const destColState = srcColState.map(s => ({ colId: s.colId, pinned: s.pinned }));\n this.columnModel.applyColumnState({ state: destColState }, \"alignedGridChanged\");\n this.logger.log(`onColumnEvent-> processing ${colEvent.type} pinned = ${pinnedEvent.pinned}`);\n }\n break;\n case Events.EVENT_COLUMN_RESIZED:\n const resizedEvent = colEvent;\n const columnWidths = {};\n masterColumns.forEach((column) => {\n this.logger.log(`onColumnEvent-> processing ${colEvent.type} actualWidth = ${column.getActualWidth()}`);\n columnWidths[column.getId()] = { key: column.getColId(), newWidth: column.getActualWidth() };\n });\n // don't set flex columns width\n (_a = resizedEvent.flexColumns) === null || _a === void 0 ? void 0 : _a.forEach(col => {\n if (columnWidths[col.getId()]) {\n delete columnWidths[col.getId()];\n }\n });\n this.columnModel.setColumnWidths(Object.values(columnWidths), false, resizedEvent.finished, \"alignedGridChanged\");\n break;\n }\n const gridBodyCon = this.ctrlsService.getGridBodyCtrl();\n const isVerticalScrollShowing = gridBodyCon.isVerticalScrollShowing();\n this.getAlignedGridApis().forEach((api) => {\n api.setGridOption('alwaysShowVerticalScroll', isVerticalScrollShowing);\n });\n }\n};\n__decorate([\n Autowired('columnModel')\n], AlignedGridsService.prototype, \"columnModel\", void 0);\n__decorate([\n Autowired('ctrlsService')\n], AlignedGridsService.prototype, \"ctrlsService\", void 0);\n__decorate([\n __param(0, Qualifier('loggerFactory'))\n], AlignedGridsService.prototype, \"setBeans\", null);\n__decorate([\n PostConstruct\n], AlignedGridsService.prototype, \"init\", null);\nAlignedGridsService = __decorate([\n Bean('alignedGridsService')\n], AlignedGridsService);\nexport { AlignedGridsService };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Bean } from \"./context/context.mjs\";\nimport { BeanStub } from \"./context/beanStub.mjs\";\nimport { Events } from \"./events.mjs\";\nimport { Autowired } from \"./context/context.mjs\";\nimport { PostConstruct } from \"./context/context.mjs\";\nimport { ChangedPath } from \"./utils/changedPath.mjs\";\nimport { exists, missing } from \"./utils/generic.mjs\";\nimport { last } from \"./utils/array.mjs\";\nlet SelectionService = class SelectionService extends BeanStub {\n constructor() {\n super(...arguments);\n this.selectedNodes = new Map();\n this.lastRowNode = null;\n }\n init() {\n this.rowSelection = this.gridOptionsService.get('rowSelection');\n this.groupSelectsChildren = this.gridOptionsService.get('groupSelectsChildren');\n this.addManagedPropertyListeners(['groupSelectsChildren', 'rowSelection'], () => {\n this.groupSelectsChildren = this.gridOptionsService.get('groupSelectsChildren');\n this.rowSelection = this.gridOptionsService.get('rowSelection');\n this.deselectAllRowNodes({ source: 'api' });\n });\n this.addManagedListener(this.eventService, Events.EVENT_ROW_SELECTED, this.onRowSelected.bind(this));\n }\n destroy() {\n super.destroy();\n this.resetNodes();\n this.lastRowNode = null;\n }\n isMultiselect() {\n return this.rowSelection === 'multiple';\n }\n setNodesSelected(params) {\n var _a;\n const { newValue, clearSelection, suppressFinishActions, rangeSelect, nodes, event, source = 'api', } = params;\n if (nodes.length === 0)\n return 0;\n if (nodes.length > 1 && !this.isMultiselect()) {\n console.warn(`AG Grid: cannot multi select while rowSelection='single'`);\n return 0;\n }\n // groupSelectsFiltered only makes sense when group selects children\n const groupSelectsFiltered = this.groupSelectsChildren && (params.groupSelectsFiltered === true);\n // if node is a footer, we don't do selection, just pass the info\n // to the sibling (the parent of the group)\n const filteredNodes = nodes.map(node => node.footer ? node.sibling : node);\n if (rangeSelect) {\n if (nodes.length > 1) {\n console.warn('AG Grid: cannot range select while selecting multiple rows');\n return 0;\n }\n let toNode = null;\n if (source === 'checkboxSelected' && newValue === false && this.lastRowNode) {\n if (this.lastRowNode.id) {\n toNode = this.lastRowNode;\n }\n else {\n this.lastRowNode = null;\n }\n }\n if (toNode == null) {\n toNode = this.getLastSelectedNode();\n }\n if (toNode) {\n // if node is a footer, we don't do selection, just pass the info\n // to the sibling (the parent of the group)\n const fromNode = filteredNodes[0];\n const newRowClicked = fromNode !== toNode;\n if (newRowClicked && this.isMultiselect()) {\n return this.selectRange(fromNode, toNode, newValue, source);\n }\n }\n }\n // when deselecting nodes, we want to use the last deselected node\n // as starting point for deselection\n this.lastRowNode = newValue ? null : filteredNodes[0];\n let updatedCount = 0;\n for (let i = 0; i < filteredNodes.length; i++) {\n const node = filteredNodes[i];\n // when groupSelectsFiltered, then this node may end up intermediate despite\n // trying to set it to true / false. this group will be calculated further on\n // down when we call calculatedSelectedForAllGroupNodes(). we need to skip it\n // here, otherwise the updatedCount would include it.\n const skipThisNode = groupSelectsFiltered && node.group;\n if (!skipThisNode) {\n const thisNodeWasSelected = node.selectThisNode(newValue, event, source);\n if (thisNodeWasSelected) {\n updatedCount++;\n }\n }\n if (this.groupSelectsChildren && ((_a = node.childrenAfterGroup) === null || _a === void 0 ? void 0 : _a.length)) {\n updatedCount += this.selectChildren(node, newValue, groupSelectsFiltered, source);\n }\n }\n // clear other nodes if not doing multi select\n if (!suppressFinishActions) {\n const clearOtherNodes = newValue && (clearSelection || !this.isMultiselect());\n if (clearOtherNodes) {\n updatedCount += this.clearOtherNodes(filteredNodes[0], source);\n }\n // only if we selected something, then update groups and fire events\n if (updatedCount > 0) {\n this.updateGroupsFromChildrenSelections(source);\n // this is the very end of the 'action node', so we are finished all the updates,\n // include any parent / child changes that this method caused\n const event = {\n type: Events.EVENT_SELECTION_CHANGED,\n source\n };\n this.eventService.dispatchEvent(event);\n }\n }\n return updatedCount;\n }\n // selects all rows between this node and the last selected node (or the top if this is the first selection).\n // not to be mixed up with 'cell range selection' where you drag the mouse, this is row range selection, by\n // holding down 'shift'.\n selectRange(fromNode, toNode, value = true, source) {\n const nodesToSelect = this.rowModel.getNodesInRangeForSelection(fromNode, toNode);\n let updatedCount = 0;\n nodesToSelect.forEach(rowNode => {\n if (rowNode.group && this.groupSelectsChildren) {\n return;\n }\n const nodeWasSelected = rowNode.selectThisNode(value, undefined, source);\n if (nodeWasSelected) {\n updatedCount++;\n }\n });\n this.updateGroupsFromChildrenSelections(source);\n const event = {\n type: Events.EVENT_SELECTION_CHANGED,\n source\n };\n this.eventService.dispatchEvent(event);\n return updatedCount;\n }\n selectChildren(node, newValue, groupSelectsFiltered, source) {\n const children = groupSelectsFiltered ? node.childrenAfterAggFilter : node.childrenAfterGroup;\n if (missing(children)) {\n return 0;\n }\n return this.setNodesSelected({\n newValue: newValue,\n clearSelection: false,\n suppressFinishActions: true,\n groupSelectsFiltered,\n source,\n nodes: children,\n });\n }\n getLastSelectedNode() {\n const selectedKeys = Array.from(this.selectedNodes.keys());\n if (selectedKeys.length == 0) {\n return null;\n }\n const node = this.selectedNodes.get(last(selectedKeys));\n if (node) {\n return node;\n }\n return null;\n }\n getSelectedNodes() {\n const selectedNodes = [];\n this.selectedNodes.forEach((rowNode) => {\n if (rowNode) {\n selectedNodes.push(rowNode);\n }\n });\n return selectedNodes;\n }\n getSelectedRows() {\n const selectedRows = [];\n this.selectedNodes.forEach((rowNode) => {\n if (rowNode && rowNode.data) {\n selectedRows.push(rowNode.data);\n }\n });\n return selectedRows;\n }\n getSelectionCount() {\n return this.selectedNodes.size;\n }\n /**\n * This method is used by the CSRM to remove groups which are being disposed of,\n * events do not need fired in this case\n */\n filterFromSelection(predicate) {\n const newSelectedNodes = new Map();\n this.selectedNodes.forEach((rowNode, key) => {\n const passesPredicate = rowNode && predicate(rowNode);\n if (passesPredicate) {\n newSelectedNodes.set(key, rowNode);\n }\n });\n this.selectedNodes = newSelectedNodes;\n }\n // should only be called if groupSelectsChildren=true\n updateGroupsFromChildrenSelections(source, changedPath) {\n // we only do this when group selection state depends on selected children\n if (!this.groupSelectsChildren) {\n return false;\n }\n // also only do it if CSRM (code should never allow this anyway)\n if (this.rowModel.getType() !== 'clientSide') {\n return false;\n }\n const clientSideRowModel = this.rowModel;\n const rootNode = clientSideRowModel.getRootNode();\n if (!changedPath) {\n changedPath = new ChangedPath(true, rootNode);\n changedPath.setInactive();\n }\n let selectionChanged = false;\n changedPath.forEachChangedNodeDepthFirst(rowNode => {\n if (rowNode !== rootNode) {\n const selected = rowNode.calculateSelectedFromChildren();\n selectionChanged = rowNode.selectThisNode(selected === null ? false : selected, undefined, source) || selectionChanged;\n }\n });\n return selectionChanged;\n }\n clearOtherNodes(rowNodeToKeepSelected, source) {\n const groupsToRefresh = new Map();\n let updatedCount = 0;\n this.selectedNodes.forEach((otherRowNode) => {\n if (otherRowNode && otherRowNode.id !== rowNodeToKeepSelected.id) {\n const rowNode = this.selectedNodes.get(otherRowNode.id);\n updatedCount += rowNode.setSelectedParams({\n newValue: false,\n clearSelection: false,\n suppressFinishActions: true,\n source,\n });\n if (this.groupSelectsChildren && otherRowNode.parent) {\n groupsToRefresh.set(otherRowNode.parent.id, otherRowNode.parent);\n }\n }\n });\n groupsToRefresh.forEach((group) => {\n const selected = group.calculateSelectedFromChildren();\n group.selectThisNode(selected === null ? false : selected, undefined, source);\n });\n return updatedCount;\n }\n onRowSelected(event) {\n const rowNode = event.node;\n // we do not store the group rows when the groups select children\n if (this.groupSelectsChildren && rowNode.group) {\n return;\n }\n if (rowNode.isSelected()) {\n this.selectedNodes.set(rowNode.id, rowNode);\n }\n else {\n this.selectedNodes.delete(rowNode.id);\n }\n }\n syncInRowNode(rowNode, oldNode) {\n this.syncInOldRowNode(rowNode, oldNode);\n this.syncInNewRowNode(rowNode);\n }\n // if the id has changed for the node, then this means the rowNode\n // is getting used for a different data item, which breaks\n // our selectedNodes, as the node now is mapped by the old id\n // which is inconsistent. so to keep the old node as selected,\n // we swap in the clone (with the old id and old data). this means\n // the oldNode is effectively a daemon we keep a reference to,\n // so if client calls api.getSelectedNodes(), it gets the daemon\n // in the result. when the client un-selects, the reference to the\n // daemon is removed. the daemon, because it's an oldNode, is not\n // used by the grid for rendering, it's a copy of what the node used\n // to be like before the id was changed.\n syncInOldRowNode(rowNode, oldNode) {\n const oldNodeHasDifferentId = exists(oldNode) && (rowNode.id !== oldNode.id);\n if (oldNodeHasDifferentId && oldNode) {\n const id = oldNode.id;\n const oldNodeSelected = this.selectedNodes.get(id) == rowNode;\n if (oldNodeSelected) {\n this.selectedNodes.set(oldNode.id, oldNode);\n }\n }\n }\n syncInNewRowNode(rowNode) {\n if (this.selectedNodes.has(rowNode.id)) {\n rowNode.setSelectedInitialValue(true);\n this.selectedNodes.set(rowNode.id, rowNode);\n }\n else {\n rowNode.setSelectedInitialValue(false);\n }\n }\n reset(source) {\n const selectionCount = this.getSelectionCount();\n this.resetNodes();\n if (selectionCount) {\n const event = {\n type: Events.EVENT_SELECTION_CHANGED,\n source\n };\n this.eventService.dispatchEvent(event);\n }\n }\n resetNodes() {\n var _a;\n (_a = this.selectedNodes) === null || _a === void 0 ? void 0 : _a.clear();\n }\n // returns a list of all nodes at 'best cost' - a feature to be used\n // with groups / trees. if a group has all it's children selected,\n // then the group appears in the result, but not the children.\n // Designed for use with 'children' as the group selection type,\n // where groups don't actually appear in the selection normally.\n getBestCostNodeSelection() {\n if (this.rowModel.getType() !== 'clientSide') {\n // Error logged as part of gridApi as that is only call point for this method.\n return;\n }\n const clientSideRowModel = this.rowModel;\n const topLevelNodes = clientSideRowModel.getTopLevelNodes();\n if (topLevelNodes === null) {\n return;\n }\n const result = [];\n // recursive function, to find the selected nodes\n function traverse(nodes) {\n for (let i = 0, l = nodes.length; i < l; i++) {\n const node = nodes[i];\n if (node.isSelected()) {\n result.push(node);\n }\n else {\n // if not selected, then if it's a group, and the group\n // has children, continue to search for selections\n const maybeGroup = node;\n if (maybeGroup.group && maybeGroup.children) {\n traverse(maybeGroup.children);\n }\n }\n }\n }\n traverse(topLevelNodes);\n return result;\n }\n isEmpty() {\n let count = 0;\n this.selectedNodes.forEach((rowNode) => {\n if (rowNode) {\n count++;\n }\n });\n return count === 0;\n }\n deselectAllRowNodes(params) {\n const callback = (rowNode) => rowNode.selectThisNode(false, undefined, source);\n const rowModelClientSide = this.rowModel.getType() === 'clientSide';\n const { source, justFiltered, justCurrentPage } = params;\n if (justCurrentPage || justFiltered) {\n if (!rowModelClientSide) {\n console.error(\"AG Grid: selecting just filtered only works when gridOptions.rowModelType='clientSide'\");\n return;\n }\n this.getNodesToSelect(justFiltered, justCurrentPage).forEach(callback);\n }\n else {\n this.selectedNodes.forEach((rowNode) => {\n // remember the reference can be to null, as we never 'delete' from the map\n if (rowNode) {\n callback(rowNode);\n }\n });\n // this clears down the map (whereas above only sets the items in map to 'undefined')\n this.reset(source);\n }\n // the above does not clean up the parent rows if they are selected\n if (rowModelClientSide && this.groupSelectsChildren) {\n this.updateGroupsFromChildrenSelections(source);\n }\n const event = {\n type: Events.EVENT_SELECTION_CHANGED,\n source\n };\n this.eventService.dispatchEvent(event);\n }\n getSelectedCounts(justFiltered, justCurrentPage) {\n let selectedCount = 0;\n let notSelectedCount = 0;\n const callback = (node) => {\n if (this.groupSelectsChildren && node.group) {\n return;\n }\n if (node.isSelected()) {\n selectedCount++;\n }\n else if (!node.selectable) {\n // don't count non-selectable nodes!\n }\n else {\n notSelectedCount++;\n }\n };\n this.getNodesToSelect(justFiltered, justCurrentPage).forEach(callback);\n return { selectedCount, notSelectedCount };\n }\n getSelectAllState(justFiltered, justCurrentPage) {\n const { selectedCount, notSelectedCount } = this.getSelectedCounts(justFiltered, justCurrentPage);\n // if no rows, always have it unselected\n if (selectedCount === 0 && notSelectedCount === 0) {\n return false;\n }\n // if mix of selected and unselected, this is indeterminate\n if (selectedCount > 0 && notSelectedCount > 0) {\n return null;\n }\n // only selected\n return selectedCount > 0;\n }\n hasNodesToSelect(justFiltered = false, justCurrentPage = false) {\n return this.getNodesToSelect(justFiltered, justCurrentPage).filter(node => node.selectable).length > 0;\n }\n /**\n * @param justFiltered whether to just include nodes which have passed the filter\n * @param justCurrentPage whether to just include nodes on the current page\n * @returns all nodes including unselectable nodes which are the target of this selection attempt\n */\n getNodesToSelect(justFiltered = false, justCurrentPage = false) {\n if (this.rowModel.getType() !== 'clientSide') {\n throw new Error(`selectAll only available when rowModelType='clientSide', ie not ${this.rowModel.getType()}`);\n }\n const nodes = [];\n if (justCurrentPage) {\n this.paginationProxy.forEachNodeOnPage((node) => {\n if (!node.group) {\n nodes.push(node);\n return;\n }\n if (!node.expanded) {\n // even with groupSelectsChildren, do this recursively as only the filtered children\n // are considered as the current page\n const recursivelyAddChildren = (child) => {\n var _a;\n nodes.push(child);\n if ((_a = child.childrenAfterFilter) === null || _a === void 0 ? void 0 : _a.length) {\n child.childrenAfterFilter.forEach(recursivelyAddChildren);\n }\n };\n recursivelyAddChildren(node);\n return;\n }\n // if the group node is expanded, the pagination proxy will include the visible nodes to select\n if (!this.groupSelectsChildren) {\n nodes.push(node);\n }\n });\n return nodes;\n }\n const clientSideRowModel = this.rowModel;\n if (justFiltered) {\n clientSideRowModel.forEachNodeAfterFilter(node => {\n nodes.push(node);\n });\n return nodes;\n }\n clientSideRowModel.forEachNode(node => {\n nodes.push(node);\n });\n return nodes;\n }\n selectAllRowNodes(params) {\n if (this.rowModel.getType() !== 'clientSide') {\n throw new Error(`selectAll only available when rowModelType='clientSide', ie not ${this.rowModel.getType()}`);\n }\n const { source, justFiltered, justCurrentPage } = params;\n const callback = (rowNode) => rowNode.selectThisNode(true, undefined, source);\n this.getNodesToSelect(justFiltered, justCurrentPage).forEach(callback);\n // the above does not clean up the parent rows if they are selected\n if (this.rowModel.getType() === 'clientSide' && this.groupSelectsChildren) {\n this.updateGroupsFromChildrenSelections(source);\n }\n const event = {\n type: Events.EVENT_SELECTION_CHANGED,\n source\n };\n this.eventService.dispatchEvent(event);\n }\n getSelectionState() {\n const selectedIds = [];\n this.selectedNodes.forEach((node) => {\n if (node === null || node === void 0 ? void 0 : node.id) {\n selectedIds.push(node.id);\n }\n });\n return selectedIds.length ? selectedIds : null;\n }\n setSelectionState(state, source) {\n if (!Array.isArray(state)) {\n return;\n }\n const rowIds = new Set(state);\n const nodes = [];\n this.rowModel.forEachNode(node => {\n if (rowIds.has(node.id)) {\n nodes.push(node);\n }\n });\n this.setNodesSelected({\n newValue: true,\n nodes,\n source\n });\n }\n};\n__decorate([\n Autowired('rowModel')\n], SelectionService.prototype, \"rowModel\", void 0);\n__decorate([\n Autowired('paginationProxy')\n], SelectionService.prototype, \"paginationProxy\", void 0);\n__decorate([\n PostConstruct\n], SelectionService.prototype, \"init\", null);\nSelectionService = __decorate([\n Bean('selectionService')\n], SelectionService);\nexport { SelectionService };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Autowired, Bean } from \"../context/context.mjs\";\nimport { warnOnce } from \"../utils/function.mjs\";\n/** @deprecated Use methods via the grid api instead. */\nlet ColumnApi = class ColumnApi {\n constructor(gridAp) {\n this.viaApi = (funcName, ...args) => {\n warnOnce(`Since v31, 'columnApi.${funcName}' is deprecated and moved to 'api.${funcName}'.`);\n return this.api[funcName](...args);\n };\n this.api = gridAp;\n }\n /** @deprecated v31 use `api.sizeColumnsToFit()` instead. */\n sizeColumnsToFit(gridWidth) { this.viaApi('sizeColumnsToFit', gridWidth); }\n /** @deprecated v31 use `api.setColumnGroupOpened() instead. */\n setColumnGroupOpened(group, newValue) { this.viaApi('setColumnGroupOpened', group, newValue); }\n /** @deprecated v31 use `api.getColumnGroup() instead. */\n getColumnGroup(name, instanceId) { return this.viaApi('getColumnGroup', name, instanceId); }\n /** @deprecated v31 use `api.getProvidedColumnGroup() instead. */\n getProvidedColumnGroup(name) { return this.viaApi('getProvidedColumnGroup', name); }\n /** @deprecated v31 use `api.getDisplayNameForColumn() instead. */\n getDisplayNameForColumn(column, location) { return this.viaApi('getDisplayNameForColumn', column, location); }\n /** @deprecated v31 use `api.getDisplayNameForColumnGroup() instead. */\n getDisplayNameForColumnGroup(columnGroup, location) { return this.viaApi('getDisplayNameForColumnGroup', columnGroup, location); }\n /** @deprecated v31 use `api.getColumn() instead. */\n getColumn(key) { return this.viaApi('getColumn', key); }\n /** @deprecated v31 use `api.getColumns() instead. */\n getColumns() { return this.viaApi('getColumns'); }\n /** @deprecated v31 use `api.applyColumnState() instead. */\n applyColumnState(params) { return this.viaApi('applyColumnState', params); }\n /** @deprecated v31 use `api.getColumnState() instead. */\n getColumnState() { return this.viaApi('getColumnState'); }\n /** @deprecated v31 use `api.resetColumnState() instead. */\n resetColumnState() { this.viaApi('resetColumnState'); }\n /** @deprecated v31 use `api.getColumnGroupState() instead. */\n getColumnGroupState() { return this.viaApi('getColumnGroupState'); }\n /** @deprecated v31 use `api.setColumnGroupState() instead. */\n setColumnGroupState(stateItems) { this.viaApi('setColumnGroupState', stateItems); }\n /** @deprecated v31 use `api.resetColumnGroupState() instead. */\n resetColumnGroupState() { this.viaApi('resetColumnGroupState'); }\n /** @deprecated v31 use `api.isPinning() instead. */\n isPinning() { return this.viaApi('isPinning'); }\n /** @deprecated v31 use `api.isPinningLeft() instead. */\n isPinningLeft() { return this.viaApi('isPinningLeft'); }\n /** @deprecated v31 use `api.isPinningRight() instead. */\n isPinningRight() { return this.viaApi('isPinningRight'); }\n /** @deprecated v31 use `api.getDisplayedColAfter() instead. */\n getDisplayedColAfter(col) { return this.viaApi('getDisplayedColAfter', col); }\n /** @deprecated v31 use `api.getDisplayedColBefore() instead. */\n getDisplayedColBefore(col) { return this.viaApi('getDisplayedColBefore', col); }\n /** @deprecated v31 use `api.setColumnVisible() instead. */\n setColumnVisible(key, visible) { this.viaApi('setColumnVisible', key, visible); }\n /** @deprecated v31 use `api.setColumnsVisible() instead. */\n setColumnsVisible(keys, visible) { this.viaApi('setColumnsVisible', keys, visible); }\n /** @deprecated v31 use `api.setColumnPinned() instead. */\n setColumnPinned(key, pinned) { this.viaApi('setColumnPinned', key, pinned); }\n /** @deprecated v31 use `api.setColumnsPinned() instead. */\n setColumnsPinned(keys, pinned) { this.viaApi('setColumnsPinned', keys, pinned); }\n /** @deprecated v31 use `api.getAllGridColumns() instead. */\n getAllGridColumns() { return this.viaApi('getAllGridColumns'); }\n /** @deprecated v31 use `api.getDisplayedLeftColumns() instead. */\n getDisplayedLeftColumns() { return this.viaApi('getDisplayedLeftColumns'); }\n /** @deprecated v31 use `api.getDisplayedCenterColumns() instead. */\n getDisplayedCenterColumns() { return this.viaApi('getDisplayedCenterColumns'); }\n /** @deprecated v31 use `api.getDisplayedRightColumns() instead. */\n getDisplayedRightColumns() { return this.viaApi('getDisplayedRightColumns'); }\n /** @deprecated v31 use `api.getAllDisplayedColumns() instead. */\n getAllDisplayedColumns() { return this.viaApi('getAllDisplayedColumns'); }\n /** @deprecated v31 use `api.getAllDisplayedVirtualColumns() instead. */\n getAllDisplayedVirtualColumns() { return this.viaApi('getAllDisplayedVirtualColumns'); }\n /** @deprecated v31 use `api.moveColumn() instead. */\n moveColumn(key, toIndex) { this.viaApi('moveColumn', key, toIndex); }\n /** @deprecated v31 use `api.moveColumnByIndex() instead. */\n moveColumnByIndex(fromIndex, toIndex) { this.viaApi('moveColumnByIndex', fromIndex, toIndex); }\n /** @deprecated v31 use `api.moveColumns() instead. */\n moveColumns(columnsToMoveKeys, toIndex) { this.viaApi('moveColumns', columnsToMoveKeys, toIndex); }\n /** @deprecated v31 use `api.moveRowGroupColumn() instead. */\n moveRowGroupColumn(fromIndex, toIndex) { this.viaApi('moveRowGroupColumn', fromIndex, toIndex); }\n /** @deprecated v31 use `api.setColumnAggFunc() instead. */\n setColumnAggFunc(key, aggFunc) { this.viaApi('setColumnAggFunc', key, aggFunc); }\n /** @deprecated v31 use `api.setColumnWidth() instead. */\n setColumnWidth(key, newWidth, finished = true, source) {\n this.viaApi('setColumnWidth', key, newWidth, finished, source);\n }\n /** @deprecated v31 use `api.setColumnWidths() instead. */\n setColumnWidths(columnWidths, finished = true, source) {\n this.viaApi('setColumnWidths', columnWidths, finished, source);\n }\n /** @deprecated v31 use `api.setPivotMode() instead. */\n setPivotMode(pivotMode) { this.viaApi('setPivotMode', pivotMode); }\n /** @deprecated v31 use `api.isPivotMode() instead. */\n isPivotMode() { return this.viaApi('isPivotMode'); }\n /** @deprecated v31 use `api.getPivotResultColumn() instead. */\n getPivotResultColumn(pivotKeys, valueColKey) { return this.viaApi('getPivotResultColumn', pivotKeys, valueColKey); }\n /** @deprecated v31 use `api.setValueColumns() instead. */\n setValueColumns(colKeys) { this.viaApi('setValueColumns', colKeys); }\n /** @deprecated v31 use `api.getValueColumns() instead. */\n getValueColumns() { return this.viaApi('getValueColumns'); }\n /** @deprecated v31 use `api.removeValueColumn() instead. */\n removeValueColumn(colKey) { this.viaApi('removeValueColumn', colKey); }\n /** @deprecated v31 use `api.removeValueColumns() instead. */\n removeValueColumns(colKeys) { this.viaApi('removeValueColumns', colKeys); }\n /** @deprecated v31 use `api.addValueColumn() instead. */\n addValueColumn(colKey) { this.viaApi('addValueColumn', colKey); }\n /** @deprecated v31 use `api.addValueColumns() instead. */\n addValueColumns(colKeys) { this.viaApi('addValueColumns', colKeys); }\n /** @deprecated v31 use `api.setRowGroupColumns() instead. */\n setRowGroupColumns(colKeys) { this.viaApi('setRowGroupColumns', colKeys); }\n /** @deprecated v31 use `api.removeRowGroupColumn() instead. */\n removeRowGroupColumn(colKey) { this.viaApi('removeRowGroupColumn', colKey); }\n /** @deprecated v31 use `api.removeRowGroupColumns() instead. */\n removeRowGroupColumns(colKeys) { this.viaApi('removeRowGroupColumns', colKeys); }\n /** @deprecated v31 use `api.addRowGroupColumn() instead. */\n addRowGroupColumn(colKey) { this.viaApi('addRowGroupColumn', colKey); }\n /** @deprecated v31 use `api.addRowGroupColumns() instead. */\n addRowGroupColumns(colKeys) { this.viaApi('addRowGroupColumns', colKeys); }\n /** @deprecated v31 use `api.getRowGroupColumns() instead. */\n getRowGroupColumns() { return this.viaApi('getRowGroupColumns'); }\n /** @deprecated v31 use `api.setPivotColumns() instead. */\n setPivotColumns(colKeys) { this.viaApi('setPivotColumns', colKeys); }\n /** @deprecated v31 use `api.removePivotColumn() instead. */\n removePivotColumn(colKey) { this.viaApi('removePivotColumn', colKey); }\n /** @deprecated v31 use `api.removePivotColumns() instead. */\n removePivotColumns(colKeys) { this.viaApi('removePivotColumns', colKeys); }\n /** @deprecated v31 use `api.addPivotColumn() instead. */\n addPivotColumn(colKey) { this.viaApi('addPivotColumn', colKey); }\n /** @deprecated v31 use `api.addPivotColumns() instead. */\n addPivotColumns(colKeys) { this.viaApi('addPivotColumns', colKeys); }\n /** @deprecated v31 use `api.getPivotColumns() instead. */\n getPivotColumns() { return this.viaApi('getPivotColumns'); }\n /** @deprecated v31 use `api.getLeftDisplayedColumnGroups() instead. */\n getLeftDisplayedColumnGroups() { return this.viaApi('getLeftDisplayedColumnGroups'); }\n /** @deprecated v31 use `api.getCenterDisplayedColumnGroups() instead. */\n getCenterDisplayedColumnGroups() { return this.viaApi('getCenterDisplayedColumnGroups'); }\n /** @deprecated v31 use `api.getRightDisplayedColumnGroups() instead. */\n getRightDisplayedColumnGroups() { return this.viaApi('getRightDisplayedColumnGroups'); }\n /** @deprecated v31 use `api.getAllDisplayedColumnGroups() instead. */\n getAllDisplayedColumnGroups() { return this.viaApi('getAllDisplayedColumnGroups'); }\n /** @deprecated v31 use `api.autoSizeColumn() instead. */\n autoSizeColumn(key, skipHeader) { return this.viaApi('autoSizeColumn', key, skipHeader); }\n /** @deprecated v31 use `api.autoSizeColumns() instead. */\n autoSizeColumns(keys, skipHeader) {\n this.viaApi('autoSizeColumns', keys, skipHeader);\n }\n /** @deprecated v31 use `api.autoSizeAllColumns() instead. */\n autoSizeAllColumns(skipHeader) { this.viaApi('autoSizeAllColumns', skipHeader); }\n /** @deprecated v31 use `api.setPivotResultColumns() instead. */\n setPivotResultColumns(colDefs) { this.viaApi('setPivotResultColumns', colDefs); }\n /** @deprecated v31 use `api.getPivotResultColumns() instead. */\n getPivotResultColumns() { return this.viaApi('getPivotResultColumns'); }\n};\n__decorate([\n Autowired('gridApi')\n], ColumnApi.prototype, \"api\", void 0);\nColumnApi = __decorate([\n Bean('columnApi')\n], ColumnApi);\nexport { ColumnApi };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Autowired, Bean, PostConstruct } from \"../context/context.mjs\";\nimport { Events } from \"../events.mjs\";\nimport { BeanStub } from \"../context/beanStub.mjs\";\nimport { getValueUsingField } from \"../utils/object.mjs\";\nimport { missing, exists } from \"../utils/generic.mjs\";\nimport { warnOnce } from \"../utils/function.mjs\";\nlet ValueService = class ValueService extends BeanStub {\n constructor() {\n super(...arguments);\n this.initialised = false;\n this.isSsrm = false;\n }\n init() {\n this.isSsrm = this.gridOptionsService.isRowModelType('serverSide');\n this.cellExpressions = this.gridOptionsService.get('enableCellExpressions');\n this.isTreeData = this.gridOptionsService.get('treeData');\n this.initialised = true;\n // We listen to our own event and use it to call the columnSpecific callback,\n // this way the handler calls are correctly interleaved with other global events\n const listener = (event) => this.callColumnCellValueChangedHandler(event);\n const async = this.gridOptionsService.useAsyncEvents();\n this.eventService.addEventListener(Events.EVENT_CELL_VALUE_CHANGED, listener, async);\n this.addDestroyFunc(() => this.eventService.removeEventListener(Events.EVENT_CELL_VALUE_CHANGED, listener, async));\n this.addManagedPropertyListener('treeData', (propChange) => this.isTreeData = propChange.currentValue);\n }\n getValue(column, rowNode, forFilter = false, ignoreAggData = false) {\n // hack - the grid is getting refreshed before this bean gets initialised, race condition.\n // really should have a way so they get initialised in the right order???\n if (!this.initialised) {\n this.init();\n }\n if (!rowNode) {\n return;\n }\n // pull these out to make code below easier to read\n const colDef = column.getColDef();\n const field = colDef.field;\n const colId = column.getColId();\n const data = rowNode.data;\n let result;\n // if there is a value getter, this gets precedence over a field\n const groupDataExists = rowNode.groupData && rowNode.groupData[colId] !== undefined;\n const aggDataExists = !ignoreAggData && rowNode.aggData && rowNode.aggData[colId] !== undefined;\n // SSRM agg data comes from the data attribute, so ignore that instead\n const ignoreSsrmAggData = this.isSsrm && ignoreAggData && !!column.getColDef().aggFunc;\n const ssrmFooterGroupCol = this.isSsrm && rowNode.footer && rowNode.field && (column.getColDef().showRowGroup === true || column.getColDef().showRowGroup === rowNode.field);\n if (forFilter && colDef.filterValueGetter) {\n result = this.executeFilterValueGetter(colDef.filterValueGetter, data, column, rowNode);\n }\n else if (this.isTreeData && aggDataExists) {\n result = rowNode.aggData[colId];\n }\n else if (this.isTreeData && colDef.valueGetter) {\n result = this.executeValueGetter(colDef.valueGetter, data, column, rowNode);\n }\n else if (this.isTreeData && (field && data)) {\n result = getValueUsingField(data, field, column.isFieldContainsDots());\n }\n else if (groupDataExists) {\n result = rowNode.groupData[colId];\n }\n else if (aggDataExists) {\n result = rowNode.aggData[colId];\n }\n else if (colDef.valueGetter) {\n result = this.executeValueGetter(colDef.valueGetter, data, column, rowNode);\n }\n else if (ssrmFooterGroupCol) {\n // this is for group footers in SSRM, as the SSRM row won't have groupData, need to extract\n // the group value from the data using the row field\n result = getValueUsingField(data, rowNode.field, column.isFieldContainsDots());\n }\n else if (field && data && !ignoreSsrmAggData) {\n result = getValueUsingField(data, field, column.isFieldContainsDots());\n }\n // the result could be an expression itself, if we are allowing cell values to be expressions\n if (this.cellExpressions && (typeof result === 'string') && result.indexOf('=') === 0) {\n const cellValueGetter = result.substring(1);\n result = this.executeValueGetter(cellValueGetter, data, column, rowNode);\n }\n if (result == null) {\n const openedGroup = this.getOpenedGroup(rowNode, column);\n if (openedGroup != null) {\n return openedGroup;\n }\n }\n return result;\n }\n getOpenedGroup(rowNode, column) {\n if (!this.gridOptionsService.get('showOpenedGroup')) {\n return;\n }\n const colDef = column.getColDef();\n if (!colDef.showRowGroup) {\n return;\n }\n const showRowGroup = column.getColDef().showRowGroup;\n let pointer = rowNode.parent;\n while (pointer != null) {\n if (pointer.rowGroupColumn && (showRowGroup === true || showRowGroup === pointer.rowGroupColumn.getColId())) {\n return pointer.key;\n }\n pointer = pointer.parent;\n }\n return undefined;\n }\n /**\n * Sets the value of a GridCell\n * @param rowNode The `RowNode` to be updated\n * @param colKey The `Column` to be updated\n * @param newValue The new value to be set\n * @param eventSource The event source\n * @returns `True` if the value has been updated, otherwise`False`.\n */\n setValue(rowNode, colKey, newValue, eventSource) {\n const column = this.columnModel.getPrimaryColumn(colKey);\n if (!rowNode || !column) {\n return false;\n }\n // this will only happen if user is trying to paste into a group row, which doesn't make sense\n // the user should not be trying to paste into group rows\n if (missing(rowNode.data)) {\n rowNode.data = {};\n }\n const { field, valueSetter } = column.getColDef();\n if (missing(field) && missing(valueSetter)) {\n console.warn(`AG Grid: you need either field or valueSetter set on colDef for editing to work`);\n return false;\n }\n if (!this.dataTypeService.checkType(column, newValue)) {\n console.warn(`AG Grid: Data type of the new value does not match the cell data type of the column`);\n return false;\n }\n const params = this.gridOptionsService.addGridCommonParams({\n node: rowNode,\n data: rowNode.data,\n oldValue: this.getValue(column, rowNode),\n newValue: newValue,\n colDef: column.getColDef(),\n column: column\n });\n params.newValue = newValue;\n let valueWasDifferent;\n if (exists(valueSetter)) {\n if (typeof valueSetter === 'function') {\n valueWasDifferent = valueSetter(params);\n }\n else {\n valueWasDifferent = this.expressionService.evaluate(valueSetter, params);\n }\n }\n else {\n valueWasDifferent = this.setValueUsingField(rowNode.data, field, newValue, column.isFieldContainsDots());\n }\n // in case user forgot to return something (possible if they are not using TypeScript\n // and just forgot we default the return value to true, so we always refresh.\n if (valueWasDifferent === undefined) {\n valueWasDifferent = true;\n }\n // if no change to the value, then no need to do the updating, or notifying via events.\n // otherwise the user could be tabbing around the grid, and cellValueChange would get called\n // all the time.\n if (!valueWasDifferent) {\n return false;\n }\n // reset quick filter on this row\n rowNode.resetQuickFilterAggregateText();\n this.valueCache.onDataChanged();\n params.newValue = this.getValue(column, rowNode);\n const event = {\n type: Events.EVENT_CELL_VALUE_CHANGED,\n event: null,\n rowIndex: rowNode.rowIndex,\n rowPinned: rowNode.rowPinned,\n column: params.column,\n api: params.api,\n columnApi: params.columnApi,\n colDef: params.colDef,\n context: params.context,\n data: rowNode.data,\n node: rowNode,\n oldValue: params.oldValue,\n newValue: params.newValue,\n value: params.newValue,\n source: eventSource\n };\n this.eventService.dispatchEvent(event);\n return true;\n }\n callColumnCellValueChangedHandler(event) {\n const onCellValueChanged = event.colDef.onCellValueChanged;\n if (typeof onCellValueChanged === 'function') {\n this.getFrameworkOverrides().wrapOutgoing(() => {\n onCellValueChanged({\n node: event.node,\n data: event.data,\n oldValue: event.oldValue,\n newValue: event.newValue,\n colDef: event.colDef,\n column: event.column,\n api: event.api,\n columnApi: event.columnApi,\n context: event.context\n });\n });\n }\n }\n setValueUsingField(data, field, newValue, isFieldContainsDots) {\n if (!field) {\n return false;\n }\n // if no '.', then it's not a deep value\n let valuesAreSame = false;\n if (!isFieldContainsDots) {\n valuesAreSame = data[field] === newValue;\n if (!valuesAreSame) {\n data[field] = newValue;\n }\n }\n else {\n // otherwise it is a deep value, so need to dig for it\n const fieldPieces = field.split('.');\n let currentObject = data;\n while (fieldPieces.length > 0 && currentObject) {\n const fieldPiece = fieldPieces.shift();\n if (fieldPieces.length === 0) {\n valuesAreSame = currentObject[fieldPiece] === newValue;\n if (!valuesAreSame) {\n currentObject[fieldPiece] = newValue;\n }\n }\n else {\n currentObject = currentObject[fieldPiece];\n }\n }\n }\n return !valuesAreSame;\n }\n executeFilterValueGetter(valueGetter, data, column, rowNode) {\n const params = this.gridOptionsService.addGridCommonParams({\n data: data,\n node: rowNode,\n column: column,\n colDef: column.getColDef(),\n getValue: this.getValueCallback.bind(this, rowNode)\n });\n if (typeof valueGetter === 'function') {\n return valueGetter(params);\n }\n return this.expressionService.evaluate(valueGetter, params);\n }\n executeValueGetter(valueGetter, data, column, rowNode) {\n const colId = column.getColId();\n // if inside the same turn, just return back the value we got last time\n const valueFromCache = this.valueCache.getValue(rowNode, colId);\n if (valueFromCache !== undefined) {\n return valueFromCache;\n }\n const params = this.gridOptionsService.addGridCommonParams({\n data: data,\n node: rowNode,\n column: column,\n colDef: column.getColDef(),\n getValue: this.getValueCallback.bind(this, rowNode)\n });\n let result;\n if (typeof valueGetter === 'function') {\n result = valueGetter(params);\n }\n else {\n result = this.expressionService.evaluate(valueGetter, params);\n }\n // if a turn is active, store the value in case the grid asks for it again\n this.valueCache.setValue(rowNode, colId, result);\n return result;\n }\n getValueCallback(node, field) {\n const otherColumn = this.columnModel.getPrimaryColumn(field);\n if (otherColumn) {\n return this.getValue(otherColumn, node);\n }\n return null;\n }\n // used by row grouping and pivot, to get key for a row. col can be a pivot col or a row grouping col\n getKeyForNode(col, rowNode) {\n const value = this.getValue(col, rowNode);\n const keyCreator = col.getColDef().keyCreator;\n let result = value;\n if (keyCreator) {\n const keyParams = this.gridOptionsService.addGridCommonParams({\n value: value,\n colDef: col.getColDef(),\n column: col,\n node: rowNode,\n data: rowNode.data\n });\n result = keyCreator(keyParams);\n }\n // if already a string, or missing, just return it\n if (typeof result === 'string' || result == null) {\n return result;\n }\n result = String(result);\n if (result === '[object Object]') {\n warnOnce('a column you are grouping or pivoting by has objects as values. If you want to group by complex objects then either a) use a colDef.keyCreator (se AG Grid docs) or b) to toString() on the object to return a key');\n }\n return result;\n }\n};\n__decorate([\n Autowired('expressionService')\n], ValueService.prototype, \"expressionService\", void 0);\n__decorate([\n Autowired('columnModel')\n], ValueService.prototype, \"columnModel\", void 0);\n__decorate([\n Autowired('valueCache')\n], ValueService.prototype, \"valueCache\", void 0);\n__decorate([\n Autowired('dataTypeService')\n], ValueService.prototype, \"dataTypeService\", void 0);\n__decorate([\n PostConstruct\n], ValueService.prototype, \"init\", null);\nValueService = __decorate([\n Bean('valueService')\n], ValueService);\nexport { ValueService };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { Bean } from \"../context/context.mjs\";\nimport { Qualifier } from \"../context/context.mjs\";\nimport { BeanStub } from \"../context/beanStub.mjs\";\nlet ExpressionService = class ExpressionService extends BeanStub {\n constructor() {\n super(...arguments);\n this.expressionToFunctionCache = {};\n }\n setBeans(loggerFactory) {\n this.logger = loggerFactory.create('ExpressionService');\n }\n evaluate(expression, params) {\n if (typeof expression === 'string') {\n // valueGetter is an expression, so execute the expression\n return this.evaluateExpression(expression, params);\n }\n else {\n console.error('AG Grid: value should be either a string or a function', expression);\n }\n }\n evaluateExpression(expression, params) {\n try {\n const javaScriptFunction = this.createExpressionFunction(expression);\n // the params don't have all these values, rather we add every possible\n // value a params can have, which makes whatever is in the params available.\n const result = javaScriptFunction(params.value, params.context, params.oldValue, params.newValue, params.value, params.node, params.data, params.colDef, params.rowIndex, params.api, params.columnApi, params.getValue, params.column, params.columnGroup);\n return result;\n }\n catch (e) {\n // the expression failed, which can happen, as it's the client that\n // provides the expression. so print a nice message\n // tslint:disable-next-line\n console.log('Processing of the expression failed');\n // tslint:disable-next-line\n console.log('Expression = ' + expression);\n // tslint:disable-next-line\n console.log('Params =', params);\n // tslint:disable-next-line\n console.log('Exception = ' + e);\n return null;\n }\n }\n createExpressionFunction(expression) {\n // check cache first\n if (this.expressionToFunctionCache[expression]) {\n return this.expressionToFunctionCache[expression];\n }\n // if not found in cache, return the function\n const functionBody = this.createFunctionBody(expression);\n const theFunction = new Function('x, ctx, oldValue, newValue, value, node, data, colDef, rowIndex, api, columnApi, getValue, column, columnGroup', functionBody);\n // store in cache\n this.expressionToFunctionCache[expression] = theFunction;\n return theFunction;\n }\n createFunctionBody(expression) {\n // if the expression has the 'return' word in it, then use as is,\n // if not, then wrap it with return and ';' to make a function\n if (expression.indexOf('return') >= 0) {\n return expression;\n }\n else {\n return 'return ' + expression + ';';\n }\n }\n};\n__decorate([\n __param(0, Qualifier('loggerFactory'))\n], ExpressionService.prototype, \"setBeans\", null);\nExpressionService = __decorate([\n Bean('expressionService')\n], ExpressionService);\nexport { ExpressionService };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Bean } from \"./context/context.mjs\";\nimport { BeanStub } from \"./context/beanStub.mjs\";\nlet TemplateService = class TemplateService extends BeanStub {\n constructor() {\n super(...arguments);\n this.templateCache = {};\n this.waitingCallbacks = {};\n }\n // returns the template if it is loaded, or null if it is not loaded\n // but will call the callback when it is loaded\n getTemplate(url, callback) {\n const templateFromCache = this.templateCache[url];\n if (templateFromCache) {\n return templateFromCache;\n }\n let callbackList = this.waitingCallbacks[url];\n const that = this;\n if (!callbackList) {\n // first time this was called, so need a new list for callbacks\n callbackList = [];\n this.waitingCallbacks[url] = callbackList;\n // and also need to do the http request\n const client = new XMLHttpRequest();\n client.onload = function () {\n that.handleHttpResult(this, url);\n };\n client.open(\"GET\", url);\n client.send();\n }\n // add this callback\n if (callback) {\n callbackList.push(callback);\n }\n // caller needs to wait for template to load, so return null\n return null;\n }\n handleHttpResult(httpResult, url) {\n if (httpResult.status !== 200 || httpResult.response === null) {\n console.warn(`AG Grid: Unable to get template error ${httpResult.status} - ${url}`);\n return;\n }\n // response success, so process it\n // in IE9 the response is in - responseText\n this.templateCache[url] = httpResult.response || httpResult.responseText;\n // inform all listeners that this is now in the cache\n const callbacks = this.waitingCallbacks[url];\n for (let i = 0; i < callbacks.length; i++) {\n const callback = callbacks[i];\n // we could pass the callback the response, however we know the client of this code\n // is the cell renderer, and it passes the 'cellRefresh' method in as the callback\n // which doesn't take any parameters.\n callback();\n }\n }\n};\nTemplateService = __decorate([\n Bean('templateService')\n], TemplateService);\nexport { TemplateService };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { Bean } from \"./context/context.mjs\";\nimport { Qualifier } from \"./context/context.mjs\";\nimport { BeanStub } from \"./context/beanStub.mjs\";\nlet LoggerFactory = class LoggerFactory extends BeanStub {\n setBeans(gridOptionsService) {\n this.logging = gridOptionsService.get('debug');\n }\n create(name) {\n return new Logger(name, this.isLogging.bind(this));\n }\n isLogging() {\n return this.logging;\n }\n};\n__decorate([\n __param(0, Qualifier('gridOptionsService'))\n], LoggerFactory.prototype, \"setBeans\", null);\nLoggerFactory = __decorate([\n Bean('loggerFactory')\n], LoggerFactory);\nexport { LoggerFactory };\nexport class Logger {\n constructor(name, isLoggingFunc) {\n this.name = name;\n this.isLoggingFunc = isLoggingFunc;\n }\n isLogging() {\n return this.isLoggingFunc();\n }\n log(message) {\n if (this.isLoggingFunc()) {\n // tslint:disable-next-line\n console.log('AG Grid.' + this.name + ': ' + message);\n }\n }\n}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Autowired } from \"../context/context.mjs\";\nimport { BeanStub } from \"../context/beanStub.mjs\";\nimport { ModuleRegistry } from \"../modules/moduleRegistry.mjs\";\nimport { ModuleNames } from \"../modules/moduleNames.mjs\";\nimport { LayoutFeature } from \"../styling/layoutFeature.mjs\";\nimport { Events } from \"../eventKeys.mjs\";\nimport { last } from \"../utils/array.mjs\";\nimport { DragAndDropService, DragSourceType } from \"../dragAndDrop/dragAndDropService.mjs\";\nexport class GridCtrl extends BeanStub {\n setComp(view, eGridDiv, eGui) {\n this.view = view;\n this.eGridHostDiv = eGridDiv;\n this.eGui = eGui;\n this.eGui.setAttribute('grid-id', this.context.getGridId());\n // this drop target is just used to see if the drop event is inside the grid\n this.dragAndDropService.addDropTarget({\n getContainer: () => this.eGui,\n isInterestedIn: (type) => type === DragSourceType.HeaderCell || type === DragSourceType.ToolPanel,\n getIconName: () => DragAndDropService.ICON_NOT_ALLOWED,\n });\n this.mouseEventService.stampTopLevelGridCompWithGridInstance(eGridDiv);\n this.createManagedBean(new LayoutFeature(this.view));\n this.addRtlSupport();\n const unsubscribeFromResize = this.resizeObserverService.observeResize(this.eGridHostDiv, this.onGridSizeChanged.bind(this));\n this.addDestroyFunc(() => unsubscribeFromResize());\n this.ctrlsService.registerGridCtrl(this);\n }\n isDetailGrid() {\n var _a;\n const el = this.focusService.findTabbableParent(this.getGui());\n return ((_a = el === null || el === void 0 ? void 0 : el.getAttribute('row-id')) === null || _a === void 0 ? void 0 : _a.startsWith('detail')) || false;\n }\n showDropZones() {\n return ModuleRegistry.__isRegistered(ModuleNames.RowGroupingModule, this.context.getGridId());\n }\n showSideBar() {\n return ModuleRegistry.__isRegistered(ModuleNames.SideBarModule, this.context.getGridId());\n }\n showStatusBar() {\n return ModuleRegistry.__isRegistered(ModuleNames.StatusBarModule, this.context.getGridId());\n }\n showWatermark() {\n return ModuleRegistry.__isRegistered(ModuleNames.EnterpriseCoreModule, this.context.getGridId());\n }\n onGridSizeChanged() {\n const event = {\n type: Events.EVENT_GRID_SIZE_CHANGED,\n clientWidth: this.eGridHostDiv.clientWidth,\n clientHeight: this.eGridHostDiv.clientHeight\n };\n this.eventService.dispatchEvent(event);\n }\n addRtlSupport() {\n const cssClass = this.gridOptionsService.get('enableRtl') ? 'ag-rtl' : 'ag-ltr';\n this.view.setRtlClass(cssClass);\n }\n destroyGridUi() {\n this.view.destroyGridUi();\n }\n getGui() {\n return this.eGui;\n }\n setResizeCursor(on) {\n this.view.setCursor(on ? 'ew-resize' : null);\n }\n disableUserSelect(on) {\n this.view.setUserSelect(on ? 'none' : null);\n }\n focusNextInnerContainer(backwards) {\n const eDocument = this.gridOptionsService.getDocument();\n const focusableContainers = this.view.getFocusableContainers();\n const idxWithFocus = focusableContainers.findIndex(container => container.contains(eDocument.activeElement));\n const nextIdx = idxWithFocus + (backwards ? -1 : 1);\n if (nextIdx <= 0 || nextIdx >= focusableContainers.length) {\n return false;\n }\n return this.focusService.focusInto(focusableContainers[nextIdx]);\n }\n focusInnerElement(fromBottom) {\n const focusableContainers = this.view.getFocusableContainers();\n const allColumns = this.columnModel.getAllDisplayedColumns();\n if (fromBottom) {\n if (focusableContainers.length > 1) {\n return this.focusService.focusInto(last(focusableContainers), true);\n }\n const lastColumn = last(allColumns);\n if (this.focusService.focusGridView(lastColumn, true)) {\n return true;\n }\n }\n if (this.gridOptionsService.get('headerHeight') === 0 || this.gridOptionsService.get('suppressHeaderFocus')) {\n if (this.focusService.focusGridView(allColumns[0])) {\n return true;\n }\n for (let i = 1; i < focusableContainers.length; i++) {\n if (this.focusService.focusInto(focusableContainers[i])) {\n return true;\n }\n }\n return false;\n }\n return this.focusService.focusFirstHeader();\n }\n forceFocusOutOfContainer(up = false) {\n this.view.forceFocusOutOfContainer(up);\n }\n}\n__decorate([\n Autowired('focusService')\n], GridCtrl.prototype, \"focusService\", void 0);\n__decorate([\n Autowired('resizeObserverService')\n], GridCtrl.prototype, \"resizeObserverService\", void 0);\n__decorate([\n Autowired('columnModel')\n], GridCtrl.prototype, \"columnModel\", void 0);\n__decorate([\n Autowired('ctrlsService')\n], GridCtrl.prototype, \"ctrlsService\", void 0);\n__decorate([\n Autowired('mouseEventService')\n], GridCtrl.prototype, \"mouseEventService\", void 0);\n__decorate([\n Autowired('dragAndDropService')\n], GridCtrl.prototype, \"dragAndDropService\", void 0);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Autowired, PostConstruct } from \"../context/context.mjs\";\nimport { RefSelector } from \"../widgets/componentAnnotations.mjs\";\nimport { isVisible } from \"../utils/dom.mjs\";\nimport { GridCtrl } from \"./gridCtrl.mjs\";\nimport { LayoutCssClasses } from \"../styling/layoutFeature.mjs\";\nimport { TabGuardComp } from \"../widgets/tabGuardComp.mjs\";\nexport class GridComp extends TabGuardComp {\n constructor(eGridDiv) {\n super();\n this.eGridDiv = eGridDiv;\n }\n postConstruct() {\n this.logger = this.loggerFactory.create('GridComp');\n const compProxy = {\n destroyGridUi: () => this.destroyBean(this),\n setRtlClass: (cssClass) => this.addCssClass(cssClass),\n forceFocusOutOfContainer: this.forceFocusOutOfContainer.bind(this),\n updateLayoutClasses: this.updateLayoutClasses.bind(this),\n getFocusableContainers: this.getFocusableContainers.bind(this),\n setUserSelect: value => {\n this.getGui().style.userSelect = value != null ? value : '';\n this.getGui().style.webkitUserSelect = value != null ? value : '';\n },\n setCursor: value => {\n this.getGui().style.cursor = value != null ? value : '';\n }\n };\n this.ctrl = this.createManagedBean(new GridCtrl());\n const template = this.createTemplate();\n this.setTemplate(template);\n this.ctrl.setComp(compProxy, this.eGridDiv, this.getGui());\n this.insertGridIntoDom();\n this.initialiseTabGuard({\n // we want to override the default behaviour to do nothing for onTabKeyDown\n onTabKeyDown: () => undefined,\n focusInnerElement: fromBottom => this.ctrl.focusInnerElement(fromBottom),\n forceFocusOutWhenTabGuardsAreEmpty: true\n });\n }\n insertGridIntoDom() {\n const eGui = this.getGui();\n this.eGridDiv.appendChild(eGui);\n this.addDestroyFunc(() => {\n this.eGridDiv.removeChild(eGui);\n this.logger.log('Grid removed from DOM');\n });\n }\n updateLayoutClasses(cssClass, params) {\n const eRootWrapperBodyClassList = this.eRootWrapperBody.classList;\n eRootWrapperBodyClassList.toggle(LayoutCssClasses.AUTO_HEIGHT, params.autoHeight);\n eRootWrapperBodyClassList.toggle(LayoutCssClasses.NORMAL, params.normal);\n eRootWrapperBodyClassList.toggle(LayoutCssClasses.PRINT, params.print);\n this.addOrRemoveCssClass(LayoutCssClasses.AUTO_HEIGHT, params.autoHeight);\n this.addOrRemoveCssClass(LayoutCssClasses.NORMAL, params.normal);\n this.addOrRemoveCssClass(LayoutCssClasses.PRINT, params.print);\n }\n createTemplate() {\n const dropZones = this.ctrl.showDropZones() ? '' : '';\n const sideBar = this.ctrl.showSideBar() ? '' : '';\n const statusBar = this.ctrl.showStatusBar() ? '' : '';\n const watermark = this.ctrl.showWatermark() ? '' : '';\n const template = /* html */ `
\n ${dropZones}\n
\n \n ${sideBar}\n
\n ${statusBar}\n \n ${watermark}\n
`;\n return template;\n }\n getFocusableElement() {\n return this.eRootWrapperBody;\n }\n getFocusableContainers() {\n const focusableContainers = [\n this.gridBodyComp.getGui()\n ];\n if (this.sideBarComp) {\n focusableContainers.push(this.sideBarComp.getGui());\n }\n return focusableContainers.filter(el => isVisible(el));\n }\n}\n__decorate([\n Autowired('loggerFactory')\n], GridComp.prototype, \"loggerFactory\", void 0);\n__decorate([\n RefSelector('gridBody')\n], GridComp.prototype, \"gridBodyComp\", void 0);\n__decorate([\n RefSelector('sideBar')\n], GridComp.prototype, \"sideBarComp\", void 0);\n__decorate([\n RefSelector('rootWrapperBody')\n], GridComp.prototype, \"eRootWrapperBody\", void 0);\n__decorate([\n PostConstruct\n], GridComp.prototype, \"postConstruct\", null);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SortController_1;\nimport { Autowired, Bean } from \"./context/context.mjs\";\nimport { BeanStub } from \"./context/beanStub.mjs\";\nimport { Events } from \"./events.mjs\";\nlet SortController = SortController_1 = class SortController extends BeanStub {\n progressSort(column, multiSort, source) {\n const nextDirection = this.getNextSortDirection(column);\n this.setSortForColumn(column, nextDirection, multiSort, source);\n }\n setSortForColumn(column, sort, multiSort, source) {\n // auto correct - if sort not legal value, then set it to 'no sort' (which is null)\n if (sort !== 'asc' && sort !== 'desc') {\n sort = null;\n }\n const isColumnsSortingCoupledToGroup = this.gridOptionsService.isColumnsSortingCoupledToGroup();\n let columnsToUpdate = [column];\n if (isColumnsSortingCoupledToGroup) {\n if (column.getColDef().showRowGroup) {\n const rowGroupColumns = this.columnModel.getSourceColumnsForGroupColumn(column);\n const sortableRowGroupColumns = rowGroupColumns === null || rowGroupColumns === void 0 ? void 0 : rowGroupColumns.filter(col => col.isSortable());\n if (sortableRowGroupColumns) {\n columnsToUpdate = [column, ...sortableRowGroupColumns];\n }\n }\n }\n columnsToUpdate.forEach(col => col.setSort(sort, source));\n const doingMultiSort = (multiSort || this.gridOptionsService.get('alwaysMultiSort')) && !this.gridOptionsService.get('suppressMultiSort');\n // clear sort on all columns except those changed, and update the icons\n const updatedColumns = [];\n if (!doingMultiSort) {\n const clearedColumns = this.clearSortBarTheseColumns(columnsToUpdate, source);\n updatedColumns.push(...clearedColumns);\n }\n // sortIndex used for knowing order of cols when multi-col sort\n this.updateSortIndex(column);\n updatedColumns.push(...columnsToUpdate);\n this.dispatchSortChangedEvents(source, updatedColumns);\n }\n updateSortIndex(lastColToChange) {\n const isCoupled = this.gridOptionsService.isColumnsSortingCoupledToGroup();\n const groupParent = this.columnModel.getGroupDisplayColumnForGroup(lastColToChange.getId());\n const lastSortIndexCol = isCoupled ? groupParent || lastColToChange : lastColToChange;\n const allSortedCols = this.getColumnsWithSortingOrdered();\n // reset sort index on everything\n this.columnModel.getPrimaryAndSecondaryAndAutoColumns().forEach(col => col.setSortIndex(null));\n const allSortedColsWithoutChangesOrGroups = allSortedCols.filter(col => {\n if (isCoupled && col.getColDef().showRowGroup) {\n return false;\n }\n return col !== lastSortIndexCol;\n });\n const sortedColsWithIndices = !!lastSortIndexCol.getSort() ? [...allSortedColsWithoutChangesOrGroups, lastSortIndexCol] : allSortedColsWithoutChangesOrGroups;\n sortedColsWithIndices.forEach((col, idx) => {\n col.setSortIndex(idx);\n });\n }\n // gets called by API, so if data changes, use can call this, which will end up\n // working out the sort order again of the rows.\n onSortChanged(source, columns) {\n this.dispatchSortChangedEvents(source, columns);\n }\n isSortActive() {\n // pull out all the columns that have sorting set\n const allCols = this.columnModel.getPrimaryAndSecondaryAndAutoColumns();\n const sortedCols = allCols.filter(column => !!column.getSort());\n return sortedCols && sortedCols.length > 0;\n }\n dispatchSortChangedEvents(source, columns) {\n const event = {\n type: Events.EVENT_SORT_CHANGED,\n source\n };\n if (columns) {\n event.columns = columns;\n }\n this.eventService.dispatchEvent(event);\n }\n clearSortBarTheseColumns(columnsToSkip, source) {\n const clearedColumns = [];\n this.columnModel.getPrimaryAndSecondaryAndAutoColumns().forEach((columnToClear) => {\n // Do not clear if either holding shift, or if column in question was clicked\n if (!columnsToSkip.includes(columnToClear)) {\n // add to list of cleared cols when sort direction is set\n if (!!columnToClear.getSort()) {\n clearedColumns.push(columnToClear);\n }\n // setting to 'undefined' as null means 'none' rather than cleared, otherwise issue will arise\n // if sort order is: ['desc', null , 'asc'], as it will start at null rather than 'desc'.\n columnToClear.setSort(undefined, source);\n }\n });\n return clearedColumns;\n }\n getNextSortDirection(column) {\n let sortingOrder;\n if (column.getColDef().sortingOrder) {\n sortingOrder = column.getColDef().sortingOrder;\n }\n else if (this.gridOptionsService.get('sortingOrder')) {\n sortingOrder = this.gridOptionsService.get('sortingOrder');\n }\n else {\n sortingOrder = SortController_1.DEFAULT_SORTING_ORDER;\n }\n if (!Array.isArray(sortingOrder) || sortingOrder.length <= 0) {\n console.warn(`AG Grid: sortingOrder must be an array with at least one element, currently it\\'s ${sortingOrder}`);\n return null;\n }\n const currentIndex = sortingOrder.indexOf(column.getSort());\n const notInArray = currentIndex < 0;\n const lastItemInArray = currentIndex == sortingOrder.length - 1;\n let result;\n if (notInArray || lastItemInArray) {\n result = sortingOrder[0];\n }\n else {\n result = sortingOrder[currentIndex + 1];\n }\n // verify the sort type exists, as the user could provide the sortingOrder, need to make sure it's valid\n if (SortController_1.DEFAULT_SORTING_ORDER.indexOf(result) < 0) {\n console.warn('AG Grid: invalid sort type ' + result);\n return null;\n }\n return result;\n }\n /**\n * @returns a map of sort indexes for every sorted column, if groups sort primaries then they will have equivalent indices\n */\n getIndexedSortMap() {\n // pull out all the columns that have sorting set\n let allSortedCols = this.columnModel.getPrimaryAndSecondaryAndAutoColumns()\n .filter(col => !!col.getSort());\n if (this.columnModel.isPivotMode()) {\n const isSortingLinked = this.gridOptionsService.isColumnsSortingCoupledToGroup();\n allSortedCols = allSortedCols.filter(col => {\n const isAggregated = !!col.getAggFunc();\n const isSecondary = !col.isPrimary();\n const isGroup = isSortingLinked ? this.columnModel.getGroupDisplayColumnForGroup(col.getId()) : col.getColDef().showRowGroup;\n return isAggregated || isSecondary || isGroup;\n });\n }\n const sortedRowGroupCols = this.columnModel.getRowGroupColumns()\n .filter(col => !!col.getSort());\n const isSortLinked = this.gridOptionsService.isColumnsSortingCoupledToGroup() && !!sortedRowGroupCols.length;\n if (isSortLinked) {\n allSortedCols = [\n ...new Set(\n // if linked sorting, replace all columns with the display group column for index purposes, and ensure uniqueness\n allSortedCols.map(col => { var _a; return (_a = this.columnModel.getGroupDisplayColumnForGroup(col.getId())) !== null && _a !== void 0 ? _a : col; }))\n ];\n }\n // when both cols are missing sortIndex, we use the position of the col in all cols list.\n // this means if colDefs only have sort, but no sortIndex, we deterministically pick which\n // cols is sorted by first.\n const allColsIndexes = {};\n allSortedCols.forEach((col, index) => allColsIndexes[col.getId()] = index);\n // put the columns in order of which one got sorted first\n allSortedCols.sort((a, b) => {\n const iA = a.getSortIndex();\n const iB = b.getSortIndex();\n if (iA != null && iB != null) {\n return iA - iB; // both present, normal comparison\n }\n else if (iA == null && iB == null) {\n // both missing, compare using column positions\n const posA = allColsIndexes[a.getId()];\n const posB = allColsIndexes[b.getId()];\n return posA > posB ? 1 : -1;\n }\n else if (iB == null) {\n return -1; // iB missing\n }\n else {\n return 1; // iA missing\n }\n });\n const indexMap = new Map();\n allSortedCols.forEach((col, idx) => indexMap.set(col, idx));\n // add the row group cols back\n if (isSortLinked) {\n sortedRowGroupCols.forEach(col => {\n const groupDisplayCol = this.columnModel.getGroupDisplayColumnForGroup(col.getId());\n indexMap.set(col, indexMap.get(groupDisplayCol));\n });\n }\n return indexMap;\n }\n getColumnsWithSortingOrdered() {\n // pull out all the columns that have sorting set\n return [...this.getIndexedSortMap().entries()]\n .sort(([col1, idx1], [col2, idx2]) => idx1 - idx2)\n .map(([col]) => col);\n }\n // used by server side row models, to sent sort to server\n getSortModel() {\n return this.getColumnsWithSortingOrdered()\n .filter(column => column.getSort())\n .map(column => ({\n sort: column.getSort(),\n colId: column.getId()\n }));\n }\n getSortOptions() {\n return this.getColumnsWithSortingOrdered()\n .filter(column => column.getSort())\n .map(column => ({\n sort: column.getSort(),\n column\n }));\n }\n canColumnDisplayMixedSort(column) {\n const isColumnSortCouplingActive = this.gridOptionsService.isColumnsSortingCoupledToGroup();\n const isGroupDisplayColumn = !!column.getColDef().showRowGroup;\n return isColumnSortCouplingActive && isGroupDisplayColumn;\n }\n getDisplaySortForColumn(column) {\n const linkedColumns = this.columnModel.getSourceColumnsForGroupColumn(column);\n if (!this.canColumnDisplayMixedSort(column) || !(linkedColumns === null || linkedColumns === void 0 ? void 0 : linkedColumns.length)) {\n return column.getSort();\n }\n // if column has unique data, its sorting is independent - but can still be mixed\n const columnHasUniqueData = column.getColDef().field != null || !!column.getColDef().valueGetter;\n const sortableColumns = columnHasUniqueData ? [column, ...linkedColumns] : linkedColumns;\n const firstSort = sortableColumns[0].getSort();\n // the == is intentional, as null and undefined both represent no sort, which means they are equivalent\n const allMatch = sortableColumns.every(col => col.getSort() == firstSort);\n if (!allMatch) {\n return 'mixed';\n }\n return firstSort;\n }\n getDisplaySortIndexForColumn(column) {\n return this.getIndexedSortMap().get(column);\n }\n};\nSortController.DEFAULT_SORTING_ORDER = ['asc', 'desc', null];\n__decorate([\n Autowired('columnModel')\n], SortController.prototype, \"columnModel\", void 0);\nSortController = SortController_1 = __decorate([\n Bean('sortController')\n], SortController);\nexport { SortController };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar FocusService_1;\nimport { Autowired, Bean, Optional, PostConstruct } from \"./context/context.mjs\";\nimport { BeanStub } from \"./context/beanStub.mjs\";\nimport { Events } from \"./events.mjs\";\nimport { ManagedFocusFeature } from \"./widgets/managedFocusFeature.mjs\";\nimport { getTabIndex } from './utils/browser.mjs';\nimport { makeNull } from './utils/generic.mjs';\nimport { RowCtrl } from \"./rendering/row/rowCtrl.mjs\";\nimport { AbstractHeaderCellCtrl } from \"./headerRendering/cells/abstractCell/abstractHeaderCellCtrl.mjs\";\nimport { last } from \"./utils/array.mjs\";\nimport { FOCUSABLE_EXCLUDE, FOCUSABLE_SELECTOR, isVisible } from \"./utils/dom.mjs\";\nimport { TabGuardClassNames } from \"./widgets/tabGuardCtrl.mjs\";\nlet FocusService = FocusService_1 = class FocusService extends BeanStub {\n static addKeyboardModeEvents(doc) {\n if (this.instanceCount > 0) {\n return;\n }\n doc.addEventListener('keydown', FocusService_1.toggleKeyboardMode);\n doc.addEventListener('mousedown', FocusService_1.toggleKeyboardMode);\n }\n static removeKeyboardModeEvents(doc) {\n if (this.instanceCount > 0)\n return;\n doc.addEventListener('keydown', FocusService_1.toggleKeyboardMode);\n doc.addEventListener('mousedown', FocusService_1.toggleKeyboardMode);\n }\n static toggleKeyboardMode(event) {\n const isKeyboardActive = FocusService_1.keyboardModeActive;\n const isKeyboardEvent = event.type === 'keydown';\n if (isKeyboardEvent) {\n // the following keys should not toggle keyboard mode.\n if (event.ctrlKey || event.metaKey || event.altKey) {\n return;\n }\n }\n if (isKeyboardActive === isKeyboardEvent) {\n return;\n }\n FocusService_1.keyboardModeActive = isKeyboardEvent;\n }\n static unregisterGridCompController(doc) {\n FocusService_1.removeKeyboardModeEvents(doc);\n }\n init() {\n const clearFocusedCellListener = this.clearFocusedCell.bind(this);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, clearFocusedCellListener);\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.onColumnEverythingChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_GROUP_OPENED, clearFocusedCellListener);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, clearFocusedCellListener);\n this.registerKeyboardFocusEvents();\n this.ctrlsService.whenReady(p => {\n this.gridCtrl = p.gridCtrl;\n });\n }\n registerKeyboardFocusEvents() {\n const eDocument = this.gridOptionsService.getDocument();\n FocusService_1.addKeyboardModeEvents(eDocument);\n FocusService_1.instanceCount++;\n this.addDestroyFunc(() => {\n FocusService_1.instanceCount--;\n FocusService_1.unregisterGridCompController(eDocument);\n });\n }\n onColumnEverythingChanged() {\n // if the columns change, check and see if this column still exists. if it does, then\n // we can keep the focused cell. if it doesn't, then we need to drop the focused cell.\n if (!this.focusedCellPosition) {\n return;\n }\n const col = this.focusedCellPosition.column;\n const colFromColumnModel = this.columnModel.getGridColumn(col.getId());\n if (col !== colFromColumnModel) {\n this.clearFocusedCell();\n }\n }\n isKeyboardMode() {\n return FocusService_1.keyboardModeActive;\n }\n // we check if the browser is focusing something, and if it is, and\n // it's the cell we think is focused, then return the cell. so this\n // methods returns the cell if a) we think it has focus and b) the\n // browser thinks it has focus. this then returns nothing if we\n // first focus a cell, then second click outside the grid, as then the\n // grid cell will still be focused as far as the grid is concerned,\n // however the browser focus will have moved somewhere else.\n getFocusCellToUseAfterRefresh() {\n const eDocument = this.gridOptionsService.getDocument();\n if (this.gridOptionsService.get('suppressFocusAfterRefresh') || !this.focusedCellPosition) {\n return null;\n }\n // we check that the browser is actually focusing on the grid, if it is not, then\n // we have nothing to worry about. we check for ROW data, as this covers both focused Rows (for Full Width Rows)\n // and Cells (covers cells as cells live in rows)\n if (this.isDomDataMissingInHierarchy(eDocument.activeElement, RowCtrl.DOM_DATA_KEY_ROW_CTRL)) {\n return null;\n }\n return this.focusedCellPosition;\n }\n getFocusHeaderToUseAfterRefresh() {\n const eDocument = this.gridOptionsService.getDocument();\n if (this.gridOptionsService.get('suppressFocusAfterRefresh') || !this.focusedHeaderPosition) {\n return null;\n }\n // we check that the browser is actually focusing on the grid, if it is not, then\n // we have nothing to worry about\n if (this.isDomDataMissingInHierarchy(eDocument.activeElement, AbstractHeaderCellCtrl.DOM_DATA_KEY_HEADER_CTRL)) {\n return null;\n }\n return this.focusedHeaderPosition;\n }\n isDomDataMissingInHierarchy(eBrowserCell, key) {\n let ePointer = eBrowserCell;\n while (ePointer) {\n const data = this.gridOptionsService.getDomData(ePointer, key);\n if (data) {\n return false;\n }\n ePointer = ePointer.parentNode;\n }\n return true;\n }\n getFocusedCell() {\n return this.focusedCellPosition;\n }\n shouldRestoreFocus(cell) {\n if (this.isCellRestoreFocused(cell)) {\n setTimeout(() => {\n // Clear the restore focused cell position after the timeout to avoid\n // the cell being focused again and stealing focus from another part of the app.\n this.restoredFocusedCellPosition = null;\n }, 0);\n return true;\n }\n return false;\n }\n isCellRestoreFocused(cellPosition) {\n if (this.restoredFocusedCellPosition == null) {\n return false;\n }\n return this.cellPositionUtils.equals(cellPosition, this.restoredFocusedCellPosition);\n }\n setRestoreFocusedCell(cellPosition) {\n if (this.getFrameworkOverrides().renderingEngine === 'react') {\n // The restoredFocusedCellPosition is used in the React Rendering engine as we have to be able\n // to support restoring focus after an async rendering.\n this.restoredFocusedCellPosition = cellPosition;\n }\n }\n getFocusEventParams() {\n const { rowIndex, rowPinned, column } = this.focusedCellPosition;\n const params = {\n rowIndex: rowIndex,\n rowPinned: rowPinned,\n column: column,\n isFullWidthCell: false\n };\n const rowCtrl = this.rowRenderer.getRowByPosition({ rowIndex, rowPinned });\n if (rowCtrl) {\n params.isFullWidthCell = rowCtrl.isFullWidth();\n }\n return params;\n }\n clearFocusedCell() {\n this.restoredFocusedCellPosition = null;\n if (this.focusedCellPosition == null) {\n return;\n }\n const event = Object.assign({ type: Events.EVENT_CELL_FOCUS_CLEARED }, this.getFocusEventParams());\n this.focusedCellPosition = null;\n this.eventService.dispatchEvent(event);\n }\n setFocusedCell(params) {\n const { column, rowIndex, rowPinned, forceBrowserFocus = false, preventScrollOnBrowserFocus = false } = params;\n const gridColumn = this.columnModel.getGridColumn(column);\n // if column doesn't exist, then blank the focused cell and return. this can happen when user sets new columns,\n // and the focused cell is in a column that no longer exists. after columns change, the grid refreshes and tries\n // to re-focus the focused cell.\n if (!gridColumn) {\n this.focusedCellPosition = null;\n return;\n }\n this.focusedCellPosition = gridColumn ? {\n rowIndex: rowIndex,\n rowPinned: makeNull(rowPinned),\n column: gridColumn\n } : null;\n const event = Object.assign(Object.assign({ type: Events.EVENT_CELL_FOCUSED }, this.getFocusEventParams()), { forceBrowserFocus,\n preventScrollOnBrowserFocus, floating: null });\n this.eventService.dispatchEvent(event);\n }\n isCellFocused(cellPosition) {\n if (this.focusedCellPosition == null) {\n return false;\n }\n return this.cellPositionUtils.equals(cellPosition, this.focusedCellPosition);\n }\n isRowNodeFocused(rowNode) {\n return this.isRowFocused(rowNode.rowIndex, rowNode.rowPinned);\n }\n isHeaderWrapperFocused(headerCtrl) {\n if (this.focusedHeaderPosition == null) {\n return false;\n }\n const column = headerCtrl.getColumnGroupChild();\n const headerRowIndex = headerCtrl.getRowIndex();\n const pinned = headerCtrl.getPinned();\n const { column: focusedColumn, headerRowIndex: focusedHeaderRowIndex } = this.focusedHeaderPosition;\n return column === focusedColumn &&\n headerRowIndex === focusedHeaderRowIndex &&\n pinned == focusedColumn.getPinned();\n }\n clearFocusedHeader() {\n this.focusedHeaderPosition = null;\n }\n getFocusedHeader() {\n return this.focusedHeaderPosition;\n }\n setFocusedHeader(headerRowIndex, column) {\n this.focusedHeaderPosition = { headerRowIndex, column };\n }\n focusHeaderPosition(params) {\n if (this.gridOptionsService.get('suppressHeaderFocus')) {\n return false;\n }\n const { direction, fromTab, allowUserOverride, event, fromCell, rowWithoutSpanValue } = params;\n let { headerPosition } = params;\n if (fromCell && this.filterManager.isAdvancedFilterHeaderActive()) {\n return this.focusAdvancedFilter(headerPosition);\n }\n if (allowUserOverride) {\n const currentPosition = this.getFocusedHeader();\n const headerRowCount = this.headerNavigationService.getHeaderRowCount();\n if (fromTab) {\n const userFunc = this.gridOptionsService.getCallback('tabToNextHeader');\n if (userFunc) {\n const params = {\n backwards: direction === 'Before',\n previousHeaderPosition: currentPosition,\n nextHeaderPosition: headerPosition,\n headerRowCount,\n };\n headerPosition = userFunc(params);\n }\n }\n else {\n const userFunc = this.gridOptionsService.getCallback('navigateToNextHeader');\n if (userFunc && event) {\n const params = {\n key: event.key,\n previousHeaderPosition: currentPosition,\n nextHeaderPosition: headerPosition,\n headerRowCount,\n event,\n };\n headerPosition = userFunc(params);\n }\n }\n }\n if (!headerPosition) {\n return false;\n }\n if (headerPosition.headerRowIndex === -1) {\n if (this.filterManager.isAdvancedFilterHeaderActive()) {\n return this.focusAdvancedFilter(headerPosition);\n }\n return this.focusGridView(headerPosition.column);\n }\n this.headerNavigationService.scrollToColumn(headerPosition.column, direction);\n const headerRowContainerCtrl = this.ctrlsService.getHeaderRowContainerCtrl(headerPosition.column.getPinned());\n // this will automatically call the setFocusedHeader method above\n const focusSuccess = headerRowContainerCtrl.focusHeader(headerPosition.headerRowIndex, headerPosition.column, event);\n if (focusSuccess && (rowWithoutSpanValue != null || fromCell)) {\n this.headerNavigationService.setCurrentHeaderRowWithoutSpan(rowWithoutSpanValue !== null && rowWithoutSpanValue !== void 0 ? rowWithoutSpanValue : -1);\n }\n return focusSuccess;\n }\n focusFirstHeader() {\n let firstColumn = this.columnModel.getAllDisplayedColumns()[0];\n if (!firstColumn) {\n return false;\n }\n if (firstColumn.getParent()) {\n firstColumn = this.columnModel.getColumnGroupAtLevel(firstColumn, 0);\n }\n const headerPosition = this.headerPositionUtils.getHeaderIndexToFocus(firstColumn, 0);\n return this.focusHeaderPosition({\n headerPosition,\n rowWithoutSpanValue: 0\n });\n }\n focusLastHeader(event) {\n const headerRowIndex = this.headerNavigationService.getHeaderRowCount() - 1;\n const column = last(this.columnModel.getAllDisplayedColumns());\n return this.focusHeaderPosition({\n headerPosition: { headerRowIndex, column },\n rowWithoutSpanValue: -1,\n event\n });\n }\n focusPreviousFromFirstCell(event) {\n if (this.filterManager.isAdvancedFilterHeaderActive()) {\n return this.focusAdvancedFilter(null);\n }\n return this.focusLastHeader(event);\n }\n isAnyCellFocused() {\n return !!this.focusedCellPosition;\n }\n isRowFocused(rowIndex, floating) {\n if (this.focusedCellPosition == null) {\n return false;\n }\n return this.focusedCellPosition.rowIndex === rowIndex && this.focusedCellPosition.rowPinned === makeNull(floating);\n }\n findFocusableElements(rootNode, exclude, onlyUnmanaged = false) {\n const focusableString = FOCUSABLE_SELECTOR;\n let excludeString = FOCUSABLE_EXCLUDE;\n if (exclude) {\n excludeString += ', ' + exclude;\n }\n if (onlyUnmanaged) {\n excludeString += ', [tabindex=\"-1\"]';\n }\n const nodes = Array.prototype.slice.apply(rootNode.querySelectorAll(focusableString)).filter((node) => {\n return isVisible(node);\n });\n const excludeNodes = Array.prototype.slice.apply(rootNode.querySelectorAll(excludeString));\n if (!excludeNodes.length) {\n return nodes;\n }\n const diff = (a, b) => a.filter(element => b.indexOf(element) === -1);\n return diff(nodes, excludeNodes);\n }\n focusInto(rootNode, up = false, onlyUnmanaged = false) {\n const focusableElements = this.findFocusableElements(rootNode, null, onlyUnmanaged);\n const toFocus = up ? last(focusableElements) : focusableElements[0];\n if (toFocus) {\n toFocus.focus({ preventScroll: true });\n return true;\n }\n return false;\n }\n findFocusableElementBeforeTabGuard(rootNode, referenceElement) {\n if (!referenceElement) {\n return null;\n }\n const focusableElements = this.findFocusableElements(rootNode);\n const referenceIndex = focusableElements.indexOf(referenceElement);\n if (referenceIndex === -1) {\n return null;\n }\n let lastTabGuardIndex = -1;\n for (let i = referenceIndex - 1; i >= 0; i--) {\n if (focusableElements[i].classList.contains(TabGuardClassNames.TAB_GUARD_TOP)) {\n lastTabGuardIndex = i;\n break;\n }\n }\n if (lastTabGuardIndex <= 0) {\n return null;\n }\n return focusableElements[lastTabGuardIndex - 1];\n }\n findNextFocusableElement(rootNode = this.eGridDiv, onlyManaged, backwards) {\n const focusable = this.findFocusableElements(rootNode, onlyManaged ? ':not([tabindex=\"-1\"])' : null);\n const eDocument = this.gridOptionsService.getDocument();\n const activeEl = eDocument.activeElement;\n let currentIndex;\n if (onlyManaged) {\n currentIndex = focusable.findIndex(el => el.contains(activeEl));\n }\n else {\n currentIndex = focusable.indexOf(activeEl);\n }\n const nextIndex = currentIndex + (backwards ? -1 : 1);\n if (nextIndex < 0 || nextIndex >= focusable.length) {\n return null;\n }\n return focusable[nextIndex];\n }\n isTargetUnderManagedComponent(rootNode, target) {\n if (!target) {\n return false;\n }\n const managedContainers = rootNode.querySelectorAll(`.${ManagedFocusFeature.FOCUS_MANAGED_CLASS}`);\n if (!managedContainers.length) {\n return false;\n }\n for (let i = 0; i < managedContainers.length; i++) {\n if (managedContainers[i].contains(target)) {\n return true;\n }\n }\n return false;\n }\n findTabbableParent(node, limit = 5) {\n let counter = 0;\n while (node && getTabIndex(node) === null && ++counter <= limit) {\n node = node.parentElement;\n }\n if (getTabIndex(node) === null) {\n return null;\n }\n return node;\n }\n focusGridView(column, backwards) {\n // if suppressCellFocus is `true`, it means the user does not want to\n // navigate between the cells using tab. Instead, we put focus on either\n // the header or after the grid, depending on whether tab or shift-tab was pressed.\n if (this.gridOptionsService.get('suppressCellFocus')) {\n if (backwards) {\n if (!this.gridOptionsService.get('suppressHeaderFocus')) {\n return this.focusLastHeader();\n }\n return this.focusNextGridCoreContainer(true, true);\n }\n return this.focusNextGridCoreContainer(false);\n }\n const nextRow = backwards\n ? this.rowPositionUtils.getLastRow()\n : this.rowPositionUtils.getFirstRow();\n if (!nextRow) {\n return false;\n }\n const { rowIndex, rowPinned } = nextRow;\n const focusedHeader = this.getFocusedHeader();\n if (!column && focusedHeader) {\n column = focusedHeader.column;\n }\n if (rowIndex == null || !column) {\n return false;\n }\n this.navigationService.ensureCellVisible({ rowIndex, column, rowPinned });\n this.setFocusedCell({\n rowIndex,\n column,\n rowPinned: makeNull(rowPinned),\n forceBrowserFocus: true\n });\n if (this.rangeService) {\n const cellPosition = { rowIndex, rowPinned, column };\n this.rangeService.setRangeToCell(cellPosition);\n }\n return true;\n }\n focusNextGridCoreContainer(backwards, forceOut = false) {\n if (!forceOut && this.gridCtrl.focusNextInnerContainer(backwards)) {\n return true;\n }\n if (forceOut || (!backwards && !this.gridCtrl.isDetailGrid())) {\n this.gridCtrl.forceFocusOutOfContainer(backwards);\n }\n return false;\n }\n focusAdvancedFilter(position) {\n this.advancedFilterFocusColumn = position === null || position === void 0 ? void 0 : position.column;\n return this.advancedFilterService.getCtrl().focusHeaderComp();\n }\n focusNextFromAdvancedFilter(backwards, forceFirstColumn) {\n var _a, _b;\n const column = (_a = (forceFirstColumn ? undefined : this.advancedFilterFocusColumn)) !== null && _a !== void 0 ? _a : (_b = this.columnModel.getAllDisplayedColumns()) === null || _b === void 0 ? void 0 : _b[0];\n if (backwards) {\n return this.focusHeaderPosition({\n headerPosition: {\n column: column,\n headerRowIndex: this.headerNavigationService.getHeaderRowCount() - 1\n }\n });\n }\n else {\n return this.focusGridView(column);\n }\n }\n clearAdvancedFilterColumn() {\n this.advancedFilterFocusColumn = undefined;\n }\n};\nFocusService.keyboardModeActive = false;\nFocusService.instanceCount = 0;\n__decorate([\n Autowired('eGridDiv')\n], FocusService.prototype, \"eGridDiv\", void 0);\n__decorate([\n Autowired('columnModel')\n], FocusService.prototype, \"columnModel\", void 0);\n__decorate([\n Autowired('headerNavigationService')\n], FocusService.prototype, \"headerNavigationService\", void 0);\n__decorate([\n Autowired('headerPositionUtils')\n], FocusService.prototype, \"headerPositionUtils\", void 0);\n__decorate([\n Autowired('rowRenderer')\n], FocusService.prototype, \"rowRenderer\", void 0);\n__decorate([\n Autowired('rowPositionUtils')\n], FocusService.prototype, \"rowPositionUtils\", void 0);\n__decorate([\n Autowired('cellPositionUtils')\n], FocusService.prototype, \"cellPositionUtils\", void 0);\n__decorate([\n Optional('rangeService')\n], FocusService.prototype, \"rangeService\", void 0);\n__decorate([\n Autowired('navigationService')\n], FocusService.prototype, \"navigationService\", void 0);\n__decorate([\n Autowired('ctrlsService')\n], FocusService.prototype, \"ctrlsService\", void 0);\n__decorate([\n Autowired('filterManager')\n], FocusService.prototype, \"filterManager\", void 0);\n__decorate([\n Optional('advancedFilterService')\n], FocusService.prototype, \"advancedFilterService\", void 0);\n__decorate([\n PostConstruct\n], FocusService.prototype, \"init\", null);\nFocusService = FocusService_1 = __decorate([\n Bean('focusService')\n], FocusService);\nexport { FocusService };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { BeanStub } from \"../context/beanStub.mjs\";\nimport { Bean } from \"../context/context.mjs\";\nimport { Events } from \"../events.mjs\";\nlet ColumnHoverService = class ColumnHoverService extends BeanStub {\n setMouseOver(columns) {\n this.selectedColumns = columns;\n const event = {\n type: Events.EVENT_COLUMN_HOVER_CHANGED\n };\n this.eventService.dispatchEvent(event);\n }\n clearMouseOver() {\n this.selectedColumns = null;\n const event = {\n type: Events.EVENT_COLUMN_HOVER_CHANGED\n };\n this.eventService.dispatchEvent(event);\n }\n isHovered(column) {\n return !!this.selectedColumns && this.selectedColumns.indexOf(column) >= 0;\n }\n};\nColumnHoverService = __decorate([\n Bean('columnHoverService')\n], ColumnHoverService);\nexport { ColumnHoverService };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Autowired, Bean, PostConstruct } from \"../context/context.mjs\";\nimport { BeanStub } from \"../context/beanStub.mjs\";\nlet ColumnAnimationService = class ColumnAnimationService extends BeanStub {\n constructor() {\n super(...arguments);\n this.executeNextFuncs = [];\n this.executeLaterFuncs = [];\n this.active = false;\n this.suppressAnimation = false;\n this.animationThreadCount = 0;\n }\n postConstruct() {\n this.ctrlsService.whenReady(p => this.gridBodyCtrl = p.gridBodyCtrl);\n }\n isActive() {\n return this.active && !this.suppressAnimation;\n }\n setSuppressAnimation(suppress) {\n this.suppressAnimation = suppress;\n }\n start() {\n if (this.active) {\n return;\n }\n if (this.gridOptionsService.get('suppressColumnMoveAnimation')) {\n return;\n }\n // if doing RTL, we don't animate open / close as due to how the pixels are inverted,\n // the animation moves all the row the the right rather than to the left (ie it's the static\n // columns that actually get their coordinates updated)\n if (this.gridOptionsService.get('enableRtl')) {\n return;\n }\n this.ensureAnimationCssClassPresent();\n this.active = true;\n }\n finish() {\n if (!this.active) {\n return;\n }\n this.flush(() => { this.active = false; });\n }\n executeNextVMTurn(func) {\n if (this.active) {\n this.executeNextFuncs.push(func);\n }\n else {\n func();\n }\n }\n executeLaterVMTurn(func) {\n if (this.active) {\n this.executeLaterFuncs.push(func);\n }\n else {\n func();\n }\n }\n ensureAnimationCssClassPresent() {\n // up the count, so we can tell if someone else has updated the count\n // by the time the 'wait' func executes\n this.animationThreadCount++;\n const animationThreadCountCopy = this.animationThreadCount;\n this.gridBodyCtrl.setColumnMovingCss(true);\n this.executeLaterFuncs.push(() => {\n // only remove the class if this thread was the last one to update it\n if (this.animationThreadCount === animationThreadCountCopy) {\n this.gridBodyCtrl.setColumnMovingCss(false);\n }\n });\n }\n flush(callback) {\n if (this.executeNextFuncs.length === 0 && this.executeLaterFuncs.length === 0) {\n callback();\n return;\n }\n const runFuncs = (queue) => {\n while (queue.length) {\n const func = queue.pop();\n if (func) {\n func();\n }\n }\n };\n this.getFrameworkOverrides().wrapIncoming(() => {\n window.setTimeout(() => runFuncs(this.executeNextFuncs), 0);\n window.setTimeout(() => {\n runFuncs(this.executeLaterFuncs);\n callback();\n }, 200);\n });\n }\n};\n__decorate([\n Autowired('ctrlsService')\n], ColumnAnimationService.prototype, \"ctrlsService\", void 0);\n__decorate([\n PostConstruct\n], ColumnAnimationService.prototype, \"postConstruct\", null);\nColumnAnimationService = __decorate([\n Bean('columnAnimationService')\n], ColumnAnimationService);\nexport { ColumnAnimationService };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { BeanStub } from \"../context/beanStub.mjs\";\nimport { Events } from \"../events.mjs\";\nimport { Autowired, Bean, PostConstruct } from \"../context/context.mjs\";\nimport { debounce } from \"../utils/function.mjs\";\nlet PaginationAutoPageSizeService = class PaginationAutoPageSizeService extends BeanStub {\n postConstruct() {\n this.ctrlsService.whenReady(p => {\n this.centerRowContainerCon = p.centerRowContainerCtrl;\n this.addManagedListener(this.eventService, Events.EVENT_BODY_HEIGHT_CHANGED, this.checkPageSize.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_SCROLL_VISIBILITY_CHANGED, this.checkPageSize.bind(this));\n this.addManagedPropertyListener('paginationAutoPageSize', this.onPaginationAutoSizeChanged.bind(this));\n this.checkPageSize();\n });\n }\n notActive() {\n return !this.gridOptionsService.get('paginationAutoPageSize') || this.centerRowContainerCon == null;\n }\n onPaginationAutoSizeChanged() {\n if (this.notActive()) {\n this.paginationProxy.unsetAutoCalculatedPageSize();\n }\n else {\n this.checkPageSize();\n }\n }\n checkPageSize() {\n if (this.notActive()) {\n return;\n }\n const bodyHeight = this.centerRowContainerCon.getViewportSizeFeature().getBodyHeight();\n if (bodyHeight > 0) {\n const update = () => {\n const rowHeight = this.gridOptionsService.getRowHeightAsNumber();\n const newPageSize = Math.floor(bodyHeight / rowHeight);\n this.paginationProxy.setPageSize(newPageSize, 'autoCalculated');\n };\n if (!this.isBodyRendered) {\n update();\n this.isBodyRendered = true;\n }\n else {\n debounce(() => update(), 50)();\n }\n }\n else {\n this.isBodyRendered = false;\n }\n }\n};\n__decorate([\n Autowired('ctrlsService')\n], PaginationAutoPageSizeService.prototype, \"ctrlsService\", void 0);\n__decorate([\n Autowired('paginationProxy')\n], PaginationAutoPageSizeService.prototype, \"paginationProxy\", void 0);\n__decorate([\n PostConstruct\n], PaginationAutoPageSizeService.prototype, \"postConstruct\", null);\nPaginationAutoPageSizeService = __decorate([\n Bean('paginationAutoPageSizeService')\n], PaginationAutoPageSizeService);\nexport { PaginationAutoPageSizeService };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Bean, PostConstruct } from \"../context/context.mjs\";\nimport { BeanStub } from \"../context/beanStub.mjs\";\nlet ValueCache = class ValueCache extends BeanStub {\n constructor() {\n super(...arguments);\n this.cacheVersion = 0;\n }\n init() {\n this.active = this.gridOptionsService.get('valueCache');\n this.neverExpires = this.gridOptionsService.get('valueCacheNeverExpires');\n }\n onDataChanged() {\n if (this.neverExpires) {\n return;\n }\n this.expire();\n }\n expire() {\n this.cacheVersion++;\n }\n setValue(rowNode, colId, value) {\n if (this.active) {\n if (rowNode.__cacheVersion !== this.cacheVersion) {\n rowNode.__cacheVersion = this.cacheVersion;\n rowNode.__cacheData = {};\n }\n rowNode.__cacheData[colId] = value;\n }\n }\n getValue(rowNode, colId) {\n if (!this.active || rowNode.__cacheVersion !== this.cacheVersion) {\n return undefined;\n }\n return rowNode.__cacheData[colId];\n }\n};\n__decorate([\n PostConstruct\n], ValueCache.prototype, \"init\", null);\nValueCache = __decorate([\n Bean('valueCache')\n], ValueCache);\nexport { ValueCache };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { BeanStub } from \"../context/beanStub.mjs\";\nimport { Autowired, Bean, PostConstruct } from \"../context/context.mjs\";\nimport { ChangedPath } from \"../utils/changedPath.mjs\";\nimport { Events } from \"../events.mjs\";\n// Matches value in clipboard module\nconst SOURCE_PASTE = 'paste';\nlet ChangeDetectionService = class ChangeDetectionService extends BeanStub {\n init() {\n if (this.rowModel.getType() === 'clientSide') {\n this.clientSideRowModel = this.rowModel;\n }\n this.addManagedListener(this.eventService, Events.EVENT_CELL_VALUE_CHANGED, this.onCellValueChanged.bind(this));\n }\n onCellValueChanged(event) {\n // Clipboard service manages its own change detection, so no need to do it here.\n // The clipboard manages its own as otherwise this would happen once for every cell\n // that got updated as part of a paste operation, so e.g. if 100 cells in a paste operation,\n // this doChangeDetection would get called 100 times (once for each cell), instead clipboard\n // service executes the logic we have here once (in essence batching up all cell changes\n // into one change detection).\n if (event.source === SOURCE_PASTE) {\n return;\n }\n this.doChangeDetection(event.node, event.column);\n }\n doChangeDetection(rowNode, column) {\n if (this.gridOptionsService.get('suppressChangeDetection')) {\n return;\n }\n const nodesToRefresh = [rowNode];\n // step 1 of change detection is to update the aggregated values\n if (this.clientSideRowModel && !rowNode.isRowPinned()) {\n const onlyChangedColumns = this.gridOptionsService.get('aggregateOnlyChangedColumns');\n const changedPath = new ChangedPath(onlyChangedColumns, this.clientSideRowModel.getRootNode());\n changedPath.addParentNode(rowNode.parent, [column]);\n this.clientSideRowModel.doAggregate(changedPath);\n // add all nodes impacted by aggregation, as they need refreshed also.\n changedPath.forEachChangedNodeDepthFirst(rowNode => {\n nodesToRefresh.push(rowNode);\n });\n }\n // step 2 of change detection is to refresh the cells\n this.rowRenderer.refreshCells({ rowNodes: nodesToRefresh });\n }\n};\n__decorate([\n Autowired('rowModel')\n], ChangeDetectionService.prototype, \"rowModel\", void 0);\n__decorate([\n Autowired('rowRenderer')\n], ChangeDetectionService.prototype, \"rowRenderer\", void 0);\n__decorate([\n PostConstruct\n], ChangeDetectionService.prototype, \"init\", null);\nChangeDetectionService = __decorate([\n Bean('changeDetectionService')\n], ChangeDetectionService);\nexport { ChangeDetectionService };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Autowired, Bean } from \"../../context/context.mjs\";\nimport { BeanStub } from \"../../context/beanStub.mjs\";\nimport { loadTemplate } from \"../../utils/dom.mjs\";\nlet AgComponentUtils = class AgComponentUtils extends BeanStub {\n adaptFunction(propertyName, jsCompFunc) {\n const metadata = this.componentMetadataProvider.retrieve(propertyName);\n if (metadata && metadata.functionAdapter) {\n return metadata.functionAdapter(jsCompFunc);\n }\n return null;\n }\n adaptCellRendererFunction(callback) {\n class Adapter {\n refresh(params) {\n return false;\n }\n getGui() {\n return this.eGui;\n }\n init(params) {\n const callbackResult = callback(params);\n const type = typeof callbackResult;\n if (type === 'string' || type === 'number' || type === 'boolean') {\n this.eGui = loadTemplate('' + callbackResult + '');\n return;\n }\n if (callbackResult == null) {\n this.eGui = loadTemplate('');\n return;\n }\n this.eGui = callbackResult;\n }\n }\n return Adapter;\n }\n doesImplementIComponent(candidate) {\n if (!candidate) {\n return false;\n }\n return candidate.prototype && 'getGui' in candidate.prototype;\n }\n};\n__decorate([\n Autowired(\"componentMetadataProvider\")\n], AgComponentUtils.prototype, \"componentMetadataProvider\", void 0);\nAgComponentUtils = __decorate([\n Bean(\"agComponentUtils\")\n], AgComponentUtils);\nexport { AgComponentUtils };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Autowired, Bean, PostConstruct } from \"../../context/context.mjs\";\nimport { BeanStub } from \"../../context/beanStub.mjs\";\nlet ComponentMetadataProvider = class ComponentMetadataProvider extends BeanStub {\n postConstruct() {\n this.componentMetaData = {\n dateComponent: {\n mandatoryMethodList: ['getDate', 'setDate'],\n optionalMethodList: ['afterGuiAttached', 'setInputPlaceholder', 'setInputAriaLabel', 'setDisabled', 'onParamsUpdated', 'refresh']\n },\n detailCellRenderer: {\n mandatoryMethodList: [],\n optionalMethodList: ['refresh'],\n functionAdapter: this.agComponentUtils.adaptCellRendererFunction.bind(this.agComponentUtils)\n },\n headerComponent: {\n mandatoryMethodList: [],\n optionalMethodList: ['refresh']\n },\n headerGroupComponent: {\n mandatoryMethodList: [],\n optionalMethodList: []\n },\n loadingCellRenderer: {\n mandatoryMethodList: [],\n optionalMethodList: []\n },\n loadingOverlayComponent: {\n mandatoryMethodList: [],\n optionalMethodList: ['refresh']\n },\n noRowsOverlayComponent: {\n mandatoryMethodList: [],\n optionalMethodList: ['refresh']\n },\n floatingFilterComponent: {\n mandatoryMethodList: ['onParentModelChanged'],\n optionalMethodList: ['afterGuiAttached', 'onParamsUpdated', 'refresh']\n },\n cellRenderer: {\n mandatoryMethodList: [],\n optionalMethodList: ['refresh', 'afterGuiAttached'],\n functionAdapter: this.agComponentUtils.adaptCellRendererFunction.bind(this.agComponentUtils)\n },\n cellEditor: {\n mandatoryMethodList: ['getValue'],\n optionalMethodList: ['isPopup', 'isCancelBeforeStart', 'isCancelAfterEnd', 'getPopupPosition', 'focusIn', 'focusOut', 'afterGuiAttached', 'refresh']\n },\n innerRenderer: {\n mandatoryMethodList: [],\n optionalMethodList: ['afterGuiAttached'],\n functionAdapter: this.agComponentUtils.adaptCellRendererFunction.bind(this.agComponentUtils)\n },\n fullWidthCellRenderer: {\n mandatoryMethodList: [],\n optionalMethodList: ['refresh', 'afterGuiAttached'],\n functionAdapter: this.agComponentUtils.adaptCellRendererFunction.bind(this.agComponentUtils)\n },\n groupRowRenderer: {\n mandatoryMethodList: [],\n optionalMethodList: ['afterGuiAttached'],\n functionAdapter: this.agComponentUtils.adaptCellRendererFunction.bind(this.agComponentUtils)\n },\n filter: {\n mandatoryMethodList: ['isFilterActive', 'doesFilterPass', 'getModel', 'setModel'],\n optionalMethodList: ['afterGuiAttached', 'afterGuiDetached', 'onNewRowsLoaded', 'getModelAsString', 'onFloatingFilterChanged', 'onAnyFilterChanged', 'refresh']\n },\n statusPanel: {\n mandatoryMethodList: [],\n optionalMethodList: ['refresh'],\n },\n toolPanel: {\n mandatoryMethodList: [],\n optionalMethodList: ['refresh', 'getState']\n },\n tooltipComponent: {\n mandatoryMethodList: [],\n optionalMethodList: []\n },\n menuItem: {\n mandatoryMethodList: [],\n optionalMethodList: ['setActive', 'select', 'setExpanded', 'configureDefaults']\n },\n };\n }\n retrieve(name) {\n return this.componentMetaData[name];\n }\n};\n__decorate([\n Autowired(\"agComponentUtils\")\n], ComponentMetadataProvider.prototype, \"agComponentUtils\", void 0);\n__decorate([\n PostConstruct\n], ComponentMetadataProvider.prototype, \"postConstruct\", null);\nComponentMetadataProvider = __decorate([\n Bean(\"componentMetadataProvider\")\n], ComponentMetadataProvider);\nexport { ComponentMetadataProvider };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Bean, Autowired, PostConstruct } from './context/context.mjs';\nimport { BeanStub } from \"./context/beanStub.mjs\";\nimport { exists } from './utils/generic.mjs';\nimport { Events } from './eventKeys.mjs';\nconst DEFAULT_ROW_HEIGHT = 25;\nconst MIN_COL_WIDTH = 10;\nconst MAT_GRID_SIZE = 8;\nconst BASE_GRID_SIZE = 4;\nconst BALHAM_GRID_SIZE = 4;\nconst ALPINE_GRID_SIZE = 6;\nconst QUARTZ_ICON_SIZE = 16;\nconst QUARTZ_FONT_SIZE = 14;\nconst QUARTZ_GRID_SIZE = 8;\nconst HARD_CODED_SIZES = {\n // this item is required for custom themes\n 'ag-theme-custom': {\n headerHeight: 25,\n headerCellMinWidth: 24,\n listItemHeight: BASE_GRID_SIZE * 5,\n rowHeight: 25,\n chartMenuPanelWidth: 220\n },\n 'ag-theme-material': {\n headerHeight: MAT_GRID_SIZE * 7,\n headerCellMinWidth: 48,\n listItemHeight: MAT_GRID_SIZE * 4,\n rowHeight: MAT_GRID_SIZE * 6,\n chartMenuPanelWidth: 240\n },\n 'ag-theme-balham': {\n headerHeight: BALHAM_GRID_SIZE * 8,\n headerCellMinWidth: 24,\n listItemHeight: BALHAM_GRID_SIZE * 6,\n rowHeight: BALHAM_GRID_SIZE * 7,\n chartMenuPanelWidth: 220\n },\n 'ag-theme-alpine': {\n headerHeight: ALPINE_GRID_SIZE * 8,\n headerCellMinWidth: 36,\n listItemHeight: ALPINE_GRID_SIZE * 4,\n rowHeight: ALPINE_GRID_SIZE * 7,\n chartMenuPanelWidth: 240\n },\n 'ag-theme-quartz': {\n headerHeight: QUARTZ_FONT_SIZE + QUARTZ_GRID_SIZE * 4.25,\n headerCellMinWidth: 36,\n listItemHeight: QUARTZ_ICON_SIZE + QUARTZ_GRID_SIZE,\n rowHeight: QUARTZ_FONT_SIZE + QUARTZ_GRID_SIZE * 3.5,\n chartMenuPanelWidth: 260\n }\n};\n/**\n * this object contains a list of Sass variables and an array\n * of CSS styles required to get the correct value.\n * eg. $virtual-item-height requires a structure, so we can get its height.\n *
\n *
\n *
\n *
\n *
\n */\nconst SASS_PROPERTY_BUILDER = {\n headerHeight: ['ag-header-row'],\n headerCellMinWidth: ['ag-header-cell'],\n listItemHeight: ['ag-virtual-list-item'],\n rowHeight: ['ag-row'],\n chartMenuPanelWidth: ['ag-chart-docked-container']\n};\nlet Environment = class Environment extends BeanStub {\n constructor() {\n super(...arguments);\n this.calculatedSizes = {};\n }\n postConstruct() {\n var _a;\n const el = (_a = this.getTheme().el) !== null && _a !== void 0 ? _a : this.eGridDiv;\n this.addManagedPropertyListener('rowHeight', () => this.refreshRowHeightVariable());\n this.mutationObserver = new MutationObserver(() => {\n this.calculatedSizes = {};\n this.fireGridStylesChangedEvent();\n });\n this.mutationObserver.observe(el || this.eGridDiv, {\n attributes: true,\n attributeFilter: ['class']\n });\n }\n fireGridStylesChangedEvent() {\n const event = {\n type: Events.EVENT_GRID_STYLES_CHANGED\n };\n this.eventService.dispatchEvent(event);\n }\n getSassVariable(key) {\n const { themeFamily, el } = this.getTheme();\n if (!themeFamily || themeFamily.indexOf('ag-theme') !== 0) {\n return;\n }\n if (!this.calculatedSizes) {\n this.calculatedSizes = {};\n }\n if (!this.calculatedSizes[themeFamily]) {\n this.calculatedSizes[themeFamily] = {};\n }\n const size = this.calculatedSizes[themeFamily][key];\n if (size != null) {\n return size;\n }\n this.calculatedSizes[themeFamily][key] = this.calculateValueForSassProperty(key, themeFamily, el);\n return this.calculatedSizes[themeFamily][key];\n }\n calculateValueForSassProperty(property, theme, themeElement) {\n const useTheme = 'ag-theme-' + (theme.match('material') ? 'material' : theme.match('balham') ? 'balham' : theme.match('alpine') ? 'alpine' : 'custom');\n const defaultValue = HARD_CODED_SIZES[useTheme][property];\n const eDocument = this.gridOptionsService.getDocument();\n if (!themeElement) {\n themeElement = this.eGridDiv;\n }\n if (!SASS_PROPERTY_BUILDER[property]) {\n return defaultValue;\n }\n const classList = SASS_PROPERTY_BUILDER[property];\n const div = eDocument.createElement('div');\n // this will apply SASS variables that were manually added to the current theme\n const classesFromThemeElement = Array.from(themeElement.classList);\n div.classList.add(theme, ...classesFromThemeElement);\n div.style.position = 'absolute';\n const el = classList.reduce((prevEl, currentClass) => {\n const currentDiv = eDocument.createElement('div');\n currentDiv.style.position = 'static';\n currentDiv.classList.add(currentClass);\n prevEl.appendChild(currentDiv);\n return currentDiv;\n }, div);\n let calculatedValue = 0;\n if (eDocument.body) {\n eDocument.body.appendChild(div);\n const sizeName = property.toLowerCase().indexOf('height') !== -1 ? 'height' : 'width';\n calculatedValue = parseInt(window.getComputedStyle(el)[sizeName], 10);\n eDocument.body.removeChild(div);\n }\n return calculatedValue || defaultValue;\n }\n isThemeDark() {\n const { theme } = this.getTheme();\n return !!theme && theme.indexOf('dark') >= 0;\n }\n chartMenuPanelWidth() {\n return this.getSassVariable('chartMenuPanelWidth');\n }\n getTheme() {\n const reg = /\\bag-(material|(?:theme-([\\w\\-]*)))\\b/g;\n let el = this.eGridDiv;\n let themeMatch = null;\n let allThemes = [];\n while (el) {\n themeMatch = reg.exec(el.className);\n if (!themeMatch) {\n el = el.parentElement || undefined;\n }\n else {\n const matched = el.className.match(reg);\n if (matched) {\n allThemes = matched;\n }\n break;\n }\n }\n if (!themeMatch) {\n return { allThemes };\n }\n const theme = themeMatch[0];\n return { theme, el, themeFamily: theme.replace(/-dark$/, ''), allThemes };\n }\n getFromTheme(defaultValue, sassVariableName) {\n var _a;\n return (_a = this.getSassVariable(sassVariableName)) !== null && _a !== void 0 ? _a : defaultValue;\n }\n getDefaultRowHeight() {\n return this.getFromTheme(DEFAULT_ROW_HEIGHT, 'rowHeight');\n }\n getListItemHeight() {\n return this.getFromTheme(20, 'listItemHeight');\n }\n refreshRowHeightVariable() {\n const oldRowHeight = this.eGridDiv.style.getPropertyValue('--ag-line-height').trim();\n const height = this.gridOptionsService.get('rowHeight');\n if (height == null || isNaN(height) || !isFinite(height)) {\n if (oldRowHeight !== null) {\n this.eGridDiv.style.setProperty('--ag-line-height', null);\n }\n return -1;\n }\n const newRowHeight = `${height}px`;\n if (oldRowHeight != newRowHeight) {\n this.eGridDiv.style.setProperty('--ag-line-height', newRowHeight);\n return height;\n }\n return oldRowHeight != '' ? parseFloat(oldRowHeight) : -1;\n }\n getMinColWidth() {\n const measuredMin = this.getFromTheme(null, 'headerCellMinWidth');\n return exists(measuredMin) ? Math.max(measuredMin, MIN_COL_WIDTH) : MIN_COL_WIDTH;\n }\n destroy() {\n this.calculatedSizes = null;\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n }\n super.destroy();\n }\n};\n__decorate([\n Autowired('eGridDiv')\n], Environment.prototype, \"eGridDiv\", void 0);\n__decorate([\n PostConstruct\n], Environment.prototype, \"postConstruct\", null);\nEnvironment = __decorate([\n Bean('environment')\n], Environment);\nexport { Environment };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { BeanStub } from \"../context/beanStub.mjs\";\nimport { Autowired, Bean, PostConstruct, Qualifier } from \"../context/context.mjs\";\nimport { Events } from \"../eventKeys.mjs\";\nimport { getMaxDivHeight } from \"../utils/browser.mjs\";\n/**\n * This class solves the 'max height' problem, where the user might want to show more data than\n * the max div height actually allows.\n */\nlet RowContainerHeightService = class RowContainerHeightService extends BeanStub {\n constructor() {\n super(...arguments);\n // the scrollY position\n this.scrollY = 0;\n // how tall the body is\n this.uiBodyHeight = 0;\n }\n agWire(loggerFactory) {\n this.logger = loggerFactory.create(\"RowContainerHeightService\");\n }\n postConstruct() {\n this.addManagedListener(this.eventService, Events.EVENT_BODY_HEIGHT_CHANGED, this.updateOffset.bind(this));\n this.maxDivHeight = getMaxDivHeight();\n this.logger.log('maxDivHeight = ' + this.maxDivHeight);\n }\n isStretching() {\n return this.stretching;\n }\n getDivStretchOffset() {\n return this.divStretchOffset;\n }\n updateOffset() {\n if (!this.stretching) {\n return;\n }\n const gridBodyCon = this.ctrlsService.getGridBodyCtrl();\n const newScrollY = gridBodyCon.getScrollFeature().getVScrollPosition().top;\n const newBodyHeight = this.getUiBodyHeight();\n const atLeastOneChanged = newScrollY !== this.scrollY || newBodyHeight !== this.uiBodyHeight;\n if (atLeastOneChanged) {\n this.scrollY = newScrollY;\n this.uiBodyHeight = newBodyHeight;\n this.calculateOffset();\n }\n }\n calculateOffset() {\n this.setUiContainerHeight(this.maxDivHeight);\n this.pixelsToShave = this.modelHeight - this.uiContainerHeight;\n this.maxScrollY = this.uiContainerHeight - this.uiBodyHeight;\n const scrollPercent = this.scrollY / this.maxScrollY;\n const divStretchOffset = scrollPercent * this.pixelsToShave;\n this.logger.log(`Div Stretch Offset = ${divStretchOffset} (${this.pixelsToShave} * ${scrollPercent})`);\n this.setDivStretchOffset(divStretchOffset);\n }\n setUiContainerHeight(height) {\n if (height !== this.uiContainerHeight) {\n this.uiContainerHeight = height;\n this.eventService.dispatchEvent({ type: Events.EVENT_ROW_CONTAINER_HEIGHT_CHANGED });\n }\n }\n clearOffset() {\n this.setUiContainerHeight(this.modelHeight);\n this.pixelsToShave = 0;\n this.setDivStretchOffset(0);\n }\n setDivStretchOffset(newOffset) {\n // because we are talking pixels, no point in confusing things with half numbers\n const newOffsetFloor = typeof newOffset === 'number' ? Math.floor(newOffset) : null;\n if (this.divStretchOffset === newOffsetFloor) {\n return;\n }\n this.divStretchOffset = newOffsetFloor;\n this.eventService.dispatchEvent({ type: Events.EVENT_HEIGHT_SCALE_CHANGED });\n }\n setModelHeight(modelHeight) {\n this.modelHeight = modelHeight;\n this.stretching = modelHeight != null // null happens when in print layout\n && this.maxDivHeight > 0\n && modelHeight > this.maxDivHeight;\n if (this.stretching) {\n this.calculateOffset();\n }\n else {\n this.clearOffset();\n }\n }\n getUiContainerHeight() {\n return this.uiContainerHeight;\n }\n getRealPixelPosition(modelPixel) {\n return modelPixel - this.divStretchOffset;\n }\n getUiBodyHeight() {\n const gridBodyCon = this.ctrlsService.getGridBodyCtrl();\n const pos = gridBodyCon.getScrollFeature().getVScrollPosition();\n return pos.bottom - pos.top;\n }\n getScrollPositionForPixel(rowTop) {\n if (this.pixelsToShave <= 0) {\n return rowTop;\n }\n const modelMaxScroll = this.modelHeight - this.getUiBodyHeight();\n const scrollPercent = rowTop / modelMaxScroll;\n const scrollPixel = this.maxScrollY * scrollPercent;\n return scrollPixel;\n }\n};\n__decorate([\n Autowired('ctrlsService')\n], RowContainerHeightService.prototype, \"ctrlsService\", void 0);\n__decorate([\n __param(0, Qualifier(\"loggerFactory\"))\n], RowContainerHeightService.prototype, \"agWire\", null);\n__decorate([\n PostConstruct\n], RowContainerHeightService.prototype, \"postConstruct\", null);\nRowContainerHeightService = __decorate([\n Bean('rowContainerHeightService')\n], RowContainerHeightService);\nexport { RowContainerHeightService };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Autowired, Bean, PostConstruct } from \"../context/context.mjs\";\nimport { BeanStub } from \"../context/beanStub.mjs\";\nimport { SelectionService } from \"../selectionService.mjs\";\nimport { ChangedPath } from \"../utils/changedPath.mjs\";\nlet SelectableService = class SelectableService extends BeanStub {\n init() {\n this.addManagedPropertyListener('isRowSelectable', () => this.updateSelectable());\n }\n /**\n * Used by CSRM only, to update selectable state after group state changes.\n */\n updateSelectableAfterGrouping() {\n this.updateSelectable(true);\n }\n updateSelectable(skipLeafNodes = false) {\n const isRowSelecting = !!this.gridOptionsService.get('rowSelection');\n const isRowSelectable = this.gridOptionsService.get('isRowSelectable');\n if (!isRowSelecting || !isRowSelectable) {\n return;\n }\n const isGroupSelectsChildren = this.gridOptionsService.get('groupSelectsChildren');\n const isCsrmGroupSelectsChildren = this.rowModel.getType() === 'clientSide' && isGroupSelectsChildren;\n const nodesToDeselect = [];\n const nodeCallback = (node) => {\n if (skipLeafNodes && !node.group) {\n return;\n }\n // Only in the CSRM, we allow group node selection if a child has a selectable=true when using groupSelectsChildren\n if (isCsrmGroupSelectsChildren && node.group) {\n const hasSelectableChild = node.childrenAfterGroup.some(rowNode => rowNode.selectable === true);\n node.setRowSelectable(hasSelectableChild, true);\n return;\n }\n const rowSelectable = isRowSelectable ? isRowSelectable(node) : true;\n node.setRowSelectable(rowSelectable, true);\n if (!rowSelectable && node.isSelected()) {\n nodesToDeselect.push(node);\n }\n };\n // Needs to be depth first in this case, so that parents can be updated based on child.\n if (isCsrmGroupSelectsChildren) {\n const csrm = this.rowModel;\n const changedPath = new ChangedPath(false, csrm.getRootNode());\n changedPath.forEachChangedNodeDepthFirst(nodeCallback, true, true);\n }\n else {\n // Normal case, update all rows\n this.rowModel.forEachNode(nodeCallback);\n }\n if (nodesToDeselect.length) {\n this.selectionService.setNodesSelected({ nodes: nodesToDeselect, newValue: false, source: 'selectableChanged' });\n }\n // if csrm and group selects children, update the groups after deselecting leaf nodes.\n if (isCsrmGroupSelectsChildren && this.selectionService instanceof SelectionService) {\n this.selectionService.updateGroupsFromChildrenSelections('selectableChanged');\n }\n }\n};\n__decorate([\n Autowired('rowModel')\n], SelectableService.prototype, \"rowModel\", void 0);\n__decorate([\n Autowired('selectionService')\n], SelectableService.prototype, \"selectionService\", void 0);\n__decorate([\n PostConstruct\n], SelectableService.prototype, \"init\", null);\nSelectableService = __decorate([\n Bean('selectableService')\n], SelectableService);\nexport { SelectableService };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component } from \"../widgets/component.mjs\";\nimport { Autowired, PostConstruct } from \"../context/context.mjs\";\nimport { RefSelector } from \"../widgets/componentAnnotations.mjs\";\nimport { Events } from \"../events.mjs\";\nimport { createIconNoSpan } from \"../utils/icon.mjs\";\nimport { formatNumberCommas } from \"../utils/number.mjs\";\nimport { setAriaDisabled } from \"../utils/aria.mjs\";\nimport { KeyCode } from '../constants/keyCode.mjs';\nexport class PaginationComp extends Component {\n constructor() {\n super();\n this.previousAndFirstButtonsDisabled = false;\n this.nextButtonDisabled = false;\n this.lastButtonDisabled = false;\n this.areListenersSetup = false;\n }\n postConstruct() {\n const isRtl = this.gridOptionsService.get('enableRtl');\n this.setTemplate(this.getTemplate());\n const { btFirst, btPrevious, btNext, btLast, pageSizeComp } = this;\n this.activateTabIndex([btFirst, btPrevious, btNext, btLast]);\n btFirst.insertAdjacentElement('afterbegin', createIconNoSpan(isRtl ? 'last' : 'first', this.gridOptionsService));\n btPrevious.insertAdjacentElement('afterbegin', createIconNoSpan(isRtl ? 'next' : 'previous', this.gridOptionsService));\n btNext.insertAdjacentElement('afterbegin', createIconNoSpan(isRtl ? 'previous' : 'next', this.gridOptionsService));\n btLast.insertAdjacentElement('afterbegin', createIconNoSpan(isRtl ? 'first' : 'last', this.gridOptionsService));\n this.addManagedPropertyListener('pagination', this.onPaginationChanged.bind(this));\n this.addManagedPropertyListener('suppressPaginationPanel', this.onPaginationChanged.bind(this));\n this.addManagedPropertyListeners(['paginationPageSizeSelector', 'paginationAutoPageSize', 'suppressPaginationPanel'], () => this.onPageSizeRelatedOptionsChange());\n this.pageSizeComp.toggleSelectDisplay(this.pageSizeComp.shouldShowPageSizeSelector());\n this.onPaginationChanged();\n }\n onPaginationChanged() {\n const isPaging = this.gridOptionsService.get('pagination');\n const paginationPanelEnabled = isPaging && !this.gridOptionsService.get('suppressPaginationPanel');\n this.setDisplayed(paginationPanelEnabled);\n if (!paginationPanelEnabled) {\n return;\n }\n this.setupListeners();\n this.enableOrDisableButtons();\n this.updateRowLabels();\n this.setCurrentPageLabel();\n this.setTotalLabels();\n this.onPageSizeRelatedOptionsChange();\n }\n onPageSizeRelatedOptionsChange() {\n this.pageSizeComp.toggleSelectDisplay(this.pageSizeComp.shouldShowPageSizeSelector());\n }\n setupListeners() {\n if (!this.areListenersSetup) {\n this.addManagedListener(this.eventService, Events.EVENT_PAGINATION_CHANGED, this.onPaginationChanged.bind(this));\n [\n { el: this.btFirst, fn: this.onBtFirst.bind(this) },\n { el: this.btPrevious, fn: this.onBtPrevious.bind(this) },\n { el: this.btNext, fn: this.onBtNext.bind(this) },\n { el: this.btLast, fn: this.onBtLast.bind(this) }\n ].forEach(item => {\n const { el, fn } = item;\n this.addManagedListener(el, 'click', fn);\n this.addManagedListener(el, 'keydown', (e) => {\n if (e.key === KeyCode.ENTER || e.key === KeyCode.SPACE) {\n e.preventDefault();\n fn();\n }\n });\n });\n this.areListenersSetup = true;\n }\n }\n onBtFirst() {\n if (!this.previousAndFirstButtonsDisabled) {\n this.paginationProxy.goToFirstPage();\n }\n }\n setCurrentPageLabel() {\n const pagesExist = this.paginationProxy.getTotalPages() > 0;\n const currentPage = this.paginationProxy.getCurrentPage();\n const toDisplay = pagesExist ? currentPage + 1 : 0;\n this.lbCurrent.textContent = this.formatNumber(toDisplay);\n }\n formatNumber(value) {\n const userFunc = this.gridOptionsService.getCallback('paginationNumberFormatter');\n if (userFunc) {\n const params = { value: value };\n return userFunc(params);\n }\n const localeTextFunc = this.localeService.getLocaleTextFunc();\n const thousandSeparator = localeTextFunc('thousandSeparator', ',');\n const decimalSeparator = localeTextFunc('decimalSeparator', '.');\n return formatNumberCommas(value, thousandSeparator, decimalSeparator);\n }\n getTemplate() {\n const localeTextFunc = this.localeService.getLocaleTextFunc();\n const strPage = localeTextFunc('page', 'Page');\n const strTo = localeTextFunc('to', 'to');\n const strOf = localeTextFunc('of', 'of');\n const strFirst = localeTextFunc('firstPage', 'First Page');\n const strPrevious = localeTextFunc('previousPage', 'Previous Page');\n const strNext = localeTextFunc('nextPage', 'Next Page');\n const strLast = localeTextFunc('lastPage', 'Last Page');\n const compId = this.getCompId();\n return /* html */ `
\n \n \n \n ${strTo}\n \n ${strOf}\n \n \n \n
\n
\n \n ${strPage}\n \n ${strOf}\n \n \n
\n
\n
\n
`;\n }\n onBtNext() {\n if (!this.nextButtonDisabled) {\n this.paginationProxy.goToNextPage();\n }\n }\n onBtPrevious() {\n if (!this.previousAndFirstButtonsDisabled) {\n this.paginationProxy.goToPreviousPage();\n }\n }\n onBtLast() {\n if (!this.lastButtonDisabled) {\n this.paginationProxy.goToLastPage();\n }\n }\n enableOrDisableButtons() {\n const currentPage = this.paginationProxy.getCurrentPage();\n const maxRowFound = this.paginationProxy.isLastPageFound();\n const totalPages = this.paginationProxy.getTotalPages();\n this.previousAndFirstButtonsDisabled = currentPage === 0;\n this.toggleButtonDisabled(this.btFirst, this.previousAndFirstButtonsDisabled);\n this.toggleButtonDisabled(this.btPrevious, this.previousAndFirstButtonsDisabled);\n const zeroPagesToDisplay = this.isZeroPagesToDisplay();\n const onLastPage = currentPage === (totalPages - 1);\n this.nextButtonDisabled = onLastPage || zeroPagesToDisplay;\n this.lastButtonDisabled = !maxRowFound || zeroPagesToDisplay || currentPage === (totalPages - 1);\n this.toggleButtonDisabled(this.btNext, this.nextButtonDisabled);\n this.toggleButtonDisabled(this.btLast, this.lastButtonDisabled);\n }\n toggleButtonDisabled(button, disabled) {\n setAriaDisabled(button, disabled);\n button.classList.toggle('ag-disabled', disabled);\n }\n updateRowLabels() {\n const currentPage = this.paginationProxy.getCurrentPage();\n const pageSize = this.paginationProxy.getPageSize();\n const maxRowFound = this.paginationProxy.isLastPageFound();\n const rowCount = this.paginationProxy.isLastPageFound() ?\n this.paginationProxy.getMasterRowCount() : null;\n let startRow;\n let endRow;\n if (this.isZeroPagesToDisplay()) {\n startRow = endRow = 0;\n }\n else {\n startRow = (pageSize * currentPage) + 1;\n endRow = startRow + pageSize - 1;\n if (maxRowFound && endRow > rowCount) {\n endRow = rowCount;\n }\n }\n this.lbFirstRowOnPage.textContent = this.formatNumber(startRow);\n if (this.rowNodeBlockLoader.isLoading()) {\n const translate = this.localeService.getLocaleTextFunc();\n this.lbLastRowOnPage.innerHTML = translate('pageLastRowUnknown', '?');\n }\n else {\n this.lbLastRowOnPage.textContent = this.formatNumber(endRow);\n }\n }\n isZeroPagesToDisplay() {\n const maxRowFound = this.paginationProxy.isLastPageFound();\n const totalPages = this.paginationProxy.getTotalPages();\n return maxRowFound && totalPages === 0;\n }\n setTotalLabels() {\n const lastPageFound = this.paginationProxy.isLastPageFound();\n const totalPages = this.paginationProxy.getTotalPages();\n const rowCount = lastPageFound ? this.paginationProxy.getMasterRowCount() : null;\n // When `pivotMode=true` and no grouping or value columns exist, a single 'hidden' group row (root node) is in\n // the grid and the pagination totals will correctly display total = 1. However this is confusing to users as\n // they can't see it. To address this UX issue we simply set the totals to zero in the pagination panel.\n if (rowCount === 1) {\n const firstRow = this.paginationProxy.getRow(0);\n // a group node with no group or agg data will not be visible to users\n const hiddenGroupRow = firstRow && firstRow.group && !(firstRow.groupData || firstRow.aggData);\n if (hiddenGroupRow) {\n this.setTotalLabelsToZero();\n return;\n }\n }\n if (lastPageFound) {\n this.lbTotal.textContent = this.formatNumber(totalPages);\n this.lbRecordCount.textContent = this.formatNumber(rowCount);\n }\n else {\n const moreText = this.localeService.getLocaleTextFunc()('more', 'more');\n this.lbTotal.innerHTML = moreText;\n this.lbRecordCount.innerHTML = moreText;\n }\n }\n setTotalLabelsToZero() {\n this.lbFirstRowOnPage.textContent = this.formatNumber(0);\n this.lbCurrent.textContent = this.formatNumber(0);\n this.lbLastRowOnPage.textContent = this.formatNumber(0);\n this.lbTotal.textContent = this.formatNumber(0);\n this.lbRecordCount.textContent = this.formatNumber(0);\n }\n}\n__decorate([\n Autowired('paginationProxy')\n], PaginationComp.prototype, \"paginationProxy\", void 0);\n__decorate([\n Autowired('rowNodeBlockLoader')\n], PaginationComp.prototype, \"rowNodeBlockLoader\", void 0);\n__decorate([\n RefSelector('btFirst')\n], PaginationComp.prototype, \"btFirst\", void 0);\n__decorate([\n RefSelector('btPrevious')\n], PaginationComp.prototype, \"btPrevious\", void 0);\n__decorate([\n RefSelector('btNext')\n], PaginationComp.prototype, \"btNext\", void 0);\n__decorate([\n RefSelector('btLast')\n], PaginationComp.prototype, \"btLast\", void 0);\n__decorate([\n RefSelector('lbRecordCount')\n], PaginationComp.prototype, \"lbRecordCount\", void 0);\n__decorate([\n RefSelector('lbFirstRowOnPage')\n], PaginationComp.prototype, \"lbFirstRowOnPage\", void 0);\n__decorate([\n RefSelector('lbLastRowOnPage')\n], PaginationComp.prototype, \"lbLastRowOnPage\", void 0);\n__decorate([\n RefSelector('lbCurrent')\n], PaginationComp.prototype, \"lbCurrent\", void 0);\n__decorate([\n RefSelector('lbTotal')\n], PaginationComp.prototype, \"lbTotal\", void 0);\n__decorate([\n RefSelector('pageSizeComp')\n], PaginationComp.prototype, \"pageSizeComp\", void 0);\n__decorate([\n PostConstruct\n], PaginationComp.prototype, \"postConstruct\", null);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Autowired, PostConstruct } from '../../context/context.mjs';\nimport { Component } from '../../widgets/component.mjs';\nimport { RefSelector } from '../../widgets/componentAnnotations.mjs';\nimport { clearElement } from '../../utils/dom.mjs';\nimport { LayoutCssClasses, LayoutFeature } from \"../../styling/layoutFeature.mjs\";\nexport class OverlayWrapperComponent extends Component {\n constructor() {\n super(OverlayWrapperComponent.TEMPLATE);\n this.inProgress = false;\n this.destroyRequested = false;\n }\n updateLayoutClasses(cssClass, params) {\n const overlayWrapperClassList = this.eOverlayWrapper.classList;\n overlayWrapperClassList.toggle(LayoutCssClasses.AUTO_HEIGHT, params.autoHeight);\n overlayWrapperClassList.toggle(LayoutCssClasses.NORMAL, params.normal);\n overlayWrapperClassList.toggle(LayoutCssClasses.PRINT, params.print);\n }\n postConstruct() {\n this.createManagedBean(new LayoutFeature(this));\n this.setDisplayed(false, { skipAriaHidden: true });\n this.overlayService.registerOverlayWrapperComp(this);\n }\n setWrapperTypeClass(overlayWrapperCssClass) {\n const overlayWrapperClassList = this.eOverlayWrapper.classList;\n if (this.activeOverlayWrapperCssClass) {\n overlayWrapperClassList.toggle(this.activeOverlayWrapperCssClass, false);\n }\n this.activeOverlayWrapperCssClass = overlayWrapperCssClass;\n overlayWrapperClassList.toggle(overlayWrapperCssClass, true);\n }\n showOverlay(overlayComp, overlayWrapperCssClass, updateListenerDestroyFunc) {\n if (this.inProgress) {\n return;\n }\n this.setWrapperTypeClass(overlayWrapperCssClass);\n this.destroyActiveOverlay();\n this.inProgress = true;\n if (overlayComp) {\n overlayComp.then(comp => {\n this.inProgress = false;\n this.eOverlayWrapper.appendChild(comp.getGui());\n this.activeOverlay = comp;\n this.updateListenerDestroyFunc = updateListenerDestroyFunc;\n if (this.destroyRequested) {\n this.destroyRequested = false;\n this.destroyActiveOverlay();\n }\n });\n }\n this.setDisplayed(true, { skipAriaHidden: true });\n }\n destroyActiveOverlay() {\n var _a;\n if (this.inProgress) {\n this.destroyRequested = true;\n return;\n }\n if (!this.activeOverlay) {\n return;\n }\n this.activeOverlay = this.getContext().destroyBean(this.activeOverlay);\n (_a = this.updateListenerDestroyFunc) === null || _a === void 0 ? void 0 : _a.call(this);\n clearElement(this.eOverlayWrapper);\n }\n hideOverlay() {\n this.destroyActiveOverlay();\n this.setDisplayed(false, { skipAriaHidden: true });\n }\n destroy() {\n this.destroyActiveOverlay();\n super.destroy();\n }\n}\n// wrapping in outer div, and wrapper, is needed to center the loading icon\nOverlayWrapperComponent.TEMPLATE = `\n
\n
\n
\n
\n
`;\n__decorate([\n Autowired('overlayService')\n], OverlayWrapperComponent.prototype, \"overlayService\", void 0);\n__decorate([\n RefSelector('eOverlayWrapper')\n], OverlayWrapperComponent.prototype, \"eOverlayWrapper\", void 0);\n__decorate([\n PostConstruct\n], OverlayWrapperComponent.prototype, \"postConstruct\", null);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Autowired, Bean } from \"../context/context.mjs\";\nimport { BeanStub } from \"../context/beanStub.mjs\";\nimport { exists } from \"../utils/generic.mjs\";\nlet RowPositionUtils = class RowPositionUtils extends BeanStub {\n getFirstRow() {\n let rowIndex = 0;\n let rowPinned;\n if (this.pinnedRowModel.getPinnedTopRowCount()) {\n rowPinned = 'top';\n }\n else if (this.rowModel.getRowCount()) {\n rowPinned = null;\n rowIndex = this.paginationProxy.getPageFirstRow();\n }\n else if (this.pinnedRowModel.getPinnedBottomRowCount()) {\n rowPinned = 'bottom';\n }\n return rowPinned === undefined ? null : { rowIndex, rowPinned };\n }\n getLastRow() {\n let rowIndex;\n let rowPinned = null;\n const pinnedBottomCount = this.pinnedRowModel.getPinnedBottomRowCount();\n const pinnedTopCount = this.pinnedRowModel.getPinnedTopRowCount();\n if (pinnedBottomCount) {\n rowPinned = 'bottom';\n rowIndex = pinnedBottomCount - 1;\n }\n else if (this.rowModel.getRowCount()) {\n rowPinned = null;\n rowIndex = this.paginationProxy.getPageLastRow();\n }\n else if (pinnedTopCount) {\n rowPinned = 'top';\n rowIndex = pinnedTopCount - 1;\n }\n return rowIndex === undefined ? null : { rowIndex, rowPinned };\n }\n getRowNode(gridRow) {\n switch (gridRow.rowPinned) {\n case 'top':\n return this.pinnedRowModel.getPinnedTopRowData()[gridRow.rowIndex];\n case 'bottom':\n return this.pinnedRowModel.getPinnedBottomRowData()[gridRow.rowIndex];\n default:\n return this.rowModel.getRow(gridRow.rowIndex);\n }\n }\n sameRow(rowA, rowB) {\n // if both missing\n if (!rowA && !rowB) {\n return true;\n }\n // if only one missing\n if ((rowA && !rowB) || (!rowA && rowB)) {\n return false;\n }\n // otherwise compare (use == to compare rowPinned because it can be null or undefined)\n return rowA.rowIndex === rowB.rowIndex && rowA.rowPinned == rowB.rowPinned;\n }\n // tests if this row selection is before the other row selection\n before(rowA, rowB) {\n switch (rowA.rowPinned) {\n case 'top':\n // we we are floating top, and other isn't, then we are always before\n if (rowB.rowPinned !== 'top') {\n return true;\n }\n break;\n case 'bottom':\n // if we are floating bottom, and the other isn't, then we are never before\n if (rowB.rowPinned !== 'bottom') {\n return false;\n }\n break;\n default:\n // if we are not floating, but the other one is floating...\n if (exists(rowB.rowPinned)) {\n return rowB.rowPinned !== 'top';\n }\n break;\n }\n return rowA.rowIndex < rowB.rowIndex;\n }\n rowMax(rows) {\n let max;\n rows.forEach((row) => {\n if (max === undefined || this.before(max, row)) {\n max = row;\n }\n });\n return max;\n }\n rowMin(rows) {\n let min;\n rows.forEach((row) => {\n if (min === undefined || this.before(row, min)) {\n min = row;\n }\n });\n return min;\n }\n};\n__decorate([\n Autowired('rowModel')\n], RowPositionUtils.prototype, \"rowModel\", void 0);\n__decorate([\n Autowired('pinnedRowModel')\n], RowPositionUtils.prototype, \"pinnedRowModel\", void 0);\n__decorate([\n Autowired('paginationProxy')\n], RowPositionUtils.prototype, \"paginationProxy\", void 0);\nRowPositionUtils = __decorate([\n Bean('rowPositionUtils')\n], RowPositionUtils);\nexport { RowPositionUtils };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Bean } from \"../context/context.mjs\";\nimport { BeanStub } from \"../context/beanStub.mjs\";\nlet CellPositionUtils = class CellPositionUtils extends BeanStub {\n createId(cellPosition) {\n const { rowIndex, rowPinned, column } = cellPosition;\n return this.createIdFromValues({ rowIndex, column, rowPinned });\n }\n createIdFromValues(cellPosition) {\n const { rowIndex, rowPinned, column } = cellPosition;\n return `${rowIndex}.${rowPinned == null ? 'null' : rowPinned}.${column.getId()}`;\n }\n equals(cellA, cellB) {\n const colsMatch = cellA.column === cellB.column;\n const floatingMatch = cellA.rowPinned === cellB.rowPinned;\n const indexMatch = cellA.rowIndex === cellB.rowIndex;\n return colsMatch && floatingMatch && indexMatch;\n }\n};\nCellPositionUtils = __decorate([\n Bean('cellPositionUtils')\n], CellPositionUtils);\nexport { CellPositionUtils };\n","export class UndoRedoAction {\n constructor(cellValueChanges) {\n this.cellValueChanges = cellValueChanges;\n }\n}\nexport class RangeUndoRedoAction extends UndoRedoAction {\n constructor(cellValueChanges, initialRange, finalRange, ranges) {\n super(cellValueChanges);\n this.initialRange = initialRange;\n this.finalRange = finalRange;\n this.ranges = ranges;\n }\n}\nexport class UndoRedoStack {\n constructor(maxStackSize) {\n this.actionStack = [];\n this.maxStackSize = maxStackSize ? maxStackSize : UndoRedoStack.DEFAULT_STACK_SIZE;\n this.actionStack = new Array(this.maxStackSize);\n }\n pop() {\n return this.actionStack.pop();\n }\n push(item) {\n const shouldAddActions = item.cellValueChanges && item.cellValueChanges.length > 0;\n if (!shouldAddActions) {\n return;\n }\n if (this.actionStack.length === this.maxStackSize) {\n this.actionStack.shift();\n }\n this.actionStack.push(item);\n }\n clear() {\n this.actionStack = [];\n }\n getCurrentStackSize() {\n return this.actionStack.length;\n }\n}\nUndoRedoStack.DEFAULT_STACK_SIZE = 10;\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Autowired, Bean, Optional, PostConstruct } from \"../context/context.mjs\";\nimport { Events } from \"../eventKeys.mjs\";\nimport { RangeUndoRedoAction, UndoRedoAction, UndoRedoStack } from \"./undoRedoStack.mjs\";\nimport { BeanStub } from \"../context/beanStub.mjs\";\nlet UndoRedoService = class UndoRedoService extends BeanStub {\n constructor() {\n super(...arguments);\n this.cellValueChanges = [];\n this.activeCellEdit = null;\n this.activeRowEdit = null;\n this.isPasting = false;\n this.isRangeInAction = false;\n this.onCellValueChanged = (event) => {\n const eventCell = { column: event.column, rowIndex: event.rowIndex, rowPinned: event.rowPinned };\n const isCellEditing = this.activeCellEdit !== null && this.cellPositionUtils.equals(this.activeCellEdit, eventCell);\n const isRowEditing = this.activeRowEdit !== null && this.rowPositionUtils.sameRow(this.activeRowEdit, eventCell);\n const shouldCaptureAction = isCellEditing || isRowEditing || this.isPasting || this.isRangeInAction;\n if (!shouldCaptureAction) {\n return;\n }\n const { rowPinned, rowIndex, column, oldValue, value } = event;\n const cellValueChange = {\n rowPinned,\n rowIndex: rowIndex,\n columnId: column.getColId(),\n newValue: value,\n oldValue\n };\n this.cellValueChanges.push(cellValueChange);\n };\n this.clearStacks = () => {\n this.undoStack.clear();\n this.redoStack.clear();\n };\n }\n init() {\n if (!this.gridOptionsService.get('undoRedoCellEditing')) {\n return;\n }\n const undoRedoLimit = this.gridOptionsService.get('undoRedoCellEditingLimit');\n if (undoRedoLimit <= 0) {\n return;\n }\n this.undoStack = new UndoRedoStack(undoRedoLimit);\n this.redoStack = new UndoRedoStack(undoRedoLimit);\n this.addRowEditingListeners();\n this.addCellEditingListeners();\n this.addPasteListeners();\n this.addFillListeners();\n this.addCellKeyListeners();\n this.addManagedListener(this.eventService, Events.EVENT_CELL_VALUE_CHANGED, this.onCellValueChanged);\n // undo / redo is restricted to actual editing so we clear the stacks when other operations are\n // performed that change the order of the row / cols.\n this.addManagedListener(this.eventService, Events.EVENT_MODEL_UPDATED, e => {\n if (!e.keepUndoRedoStack) {\n this.clearStacks();\n }\n });\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, this.clearStacks);\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.clearStacks);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_GROUP_OPENED, this.clearStacks);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, this.clearStacks);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_MOVED, this.clearStacks);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PINNED, this.clearStacks);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_VISIBLE, this.clearStacks);\n this.addManagedListener(this.eventService, Events.EVENT_ROW_DRAG_END, this.clearStacks);\n this.ctrlsService.whenReady(() => {\n this.gridBodyCtrl = this.ctrlsService.getGridBodyCtrl();\n });\n }\n getCurrentUndoStackSize() {\n return this.undoStack ? this.undoStack.getCurrentStackSize() : 0;\n }\n getCurrentRedoStackSize() {\n return this.redoStack ? this.redoStack.getCurrentStackSize() : 0;\n }\n undo(source) {\n const startEvent = {\n type: Events.EVENT_UNDO_STARTED,\n source\n };\n this.eventService.dispatchEvent(startEvent);\n const operationPerformed = this.undoRedo(this.undoStack, this.redoStack, 'initialRange', 'oldValue', 'undo');\n const endEvent = {\n type: Events.EVENT_UNDO_ENDED,\n source,\n operationPerformed\n };\n this.eventService.dispatchEvent(endEvent);\n }\n redo(source) {\n const startEvent = {\n type: Events.EVENT_REDO_STARTED,\n source\n };\n this.eventService.dispatchEvent(startEvent);\n const operationPerformed = this.undoRedo(this.redoStack, this.undoStack, 'finalRange', 'newValue', 'redo');\n const endEvent = {\n type: Events.EVENT_REDO_ENDED,\n source,\n operationPerformed\n };\n this.eventService.dispatchEvent(endEvent);\n }\n undoRedo(undoRedoStack, opposingUndoRedoStack, rangeProperty, cellValueChangeProperty, source) {\n if (!undoRedoStack) {\n return false;\n }\n const undoRedoAction = undoRedoStack.pop();\n if (!undoRedoAction || !undoRedoAction.cellValueChanges) {\n return false;\n }\n this.processAction(undoRedoAction, (cellValueChange) => cellValueChange[cellValueChangeProperty], source);\n if (undoRedoAction instanceof RangeUndoRedoAction) {\n this.processRange(undoRedoAction.ranges || [undoRedoAction[rangeProperty]]);\n }\n else {\n this.processCell(undoRedoAction.cellValueChanges);\n }\n opposingUndoRedoStack.push(undoRedoAction);\n return true;\n }\n processAction(action, valueExtractor, source) {\n action.cellValueChanges.forEach(cellValueChange => {\n const { rowIndex, rowPinned, columnId } = cellValueChange;\n const rowPosition = { rowIndex, rowPinned };\n const currentRow = this.getRowNode(rowPosition);\n // checks if the row has been filtered out\n if (!currentRow.displayed) {\n return;\n }\n currentRow.setDataValue(columnId, valueExtractor(cellValueChange), source);\n });\n }\n processRange(ranges) {\n let lastFocusedCell;\n this.rangeService.removeAllCellRanges(true);\n ranges.forEach((range, idx) => {\n if (!range) {\n return;\n }\n const startRow = range.startRow;\n const endRow = range.endRow;\n if (idx === ranges.length - 1) {\n lastFocusedCell = {\n rowPinned: startRow.rowPinned,\n rowIndex: startRow.rowIndex,\n columnId: range.startColumn.getColId()\n };\n this.setLastFocusedCell(lastFocusedCell);\n }\n const cellRangeParams = {\n rowStartIndex: startRow.rowIndex,\n rowStartPinned: startRow.rowPinned,\n rowEndIndex: endRow.rowIndex,\n rowEndPinned: endRow.rowPinned,\n columnStart: range.startColumn,\n columns: range.columns\n };\n this.rangeService.addCellRange(cellRangeParams);\n });\n }\n processCell(cellValueChanges) {\n const cellValueChange = cellValueChanges[0];\n const { rowIndex, rowPinned } = cellValueChange;\n const rowPosition = { rowIndex, rowPinned };\n const row = this.getRowNode(rowPosition);\n const lastFocusedCell = {\n rowPinned: cellValueChange.rowPinned,\n rowIndex: row.rowIndex,\n columnId: cellValueChange.columnId\n };\n // when single cells are being processed, they should be considered\n // as ranges when the rangeService is present (singleCellRanges).\n // otherwise focus will be restore but the range will not.\n this.setLastFocusedCell(lastFocusedCell, !!this.rangeService);\n }\n setLastFocusedCell(lastFocusedCell, setRangeToCell) {\n const { rowIndex, columnId, rowPinned } = lastFocusedCell;\n const scrollFeature = this.gridBodyCtrl.getScrollFeature();\n const column = this.columnModel.getGridColumn(columnId);\n if (!column) {\n return;\n }\n scrollFeature.ensureIndexVisible(rowIndex);\n scrollFeature.ensureColumnVisible(column);\n const cellPosition = { rowIndex, column, rowPinned };\n this.focusService.setFocusedCell(Object.assign(Object.assign({}, cellPosition), { forceBrowserFocus: true }));\n if (setRangeToCell) {\n this.rangeService.setRangeToCell(cellPosition);\n }\n }\n addRowEditingListeners() {\n this.addManagedListener(this.eventService, Events.EVENT_ROW_EDITING_STARTED, (e) => {\n this.activeRowEdit = { rowIndex: e.rowIndex, rowPinned: e.rowPinned };\n });\n this.addManagedListener(this.eventService, Events.EVENT_ROW_EDITING_STOPPED, () => {\n const action = new UndoRedoAction(this.cellValueChanges);\n this.pushActionsToUndoStack(action);\n this.activeRowEdit = null;\n });\n }\n addCellEditingListeners() {\n this.addManagedListener(this.eventService, Events.EVENT_CELL_EDITING_STARTED, (e) => {\n this.activeCellEdit = { column: e.column, rowIndex: e.rowIndex, rowPinned: e.rowPinned };\n });\n this.addManagedListener(this.eventService, Events.EVENT_CELL_EDITING_STOPPED, (e) => {\n this.activeCellEdit = null;\n const shouldPushAction = e.valueChanged && !this.activeRowEdit && !this.isPasting && !this.isRangeInAction;\n if (shouldPushAction) {\n const action = new UndoRedoAction(this.cellValueChanges);\n this.pushActionsToUndoStack(action);\n }\n });\n }\n addPasteListeners() {\n this.addManagedListener(this.eventService, Events.EVENT_PASTE_START, () => {\n this.isPasting = true;\n });\n this.addManagedListener(this.eventService, Events.EVENT_PASTE_END, () => {\n const action = new UndoRedoAction(this.cellValueChanges);\n this.pushActionsToUndoStack(action);\n this.isPasting = false;\n });\n }\n addFillListeners() {\n this.addManagedListener(this.eventService, Events.EVENT_FILL_START, () => {\n this.isRangeInAction = true;\n });\n this.addManagedListener(this.eventService, Events.EVENT_FILL_END, (event) => {\n const action = new RangeUndoRedoAction(this.cellValueChanges, event.initialRange, event.finalRange);\n this.pushActionsToUndoStack(action);\n this.isRangeInAction = false;\n });\n }\n addCellKeyListeners() {\n this.addManagedListener(this.eventService, Events.EVENT_KEY_SHORTCUT_CHANGED_CELL_START, () => {\n this.isRangeInAction = true;\n });\n this.addManagedListener(this.eventService, Events.EVENT_KEY_SHORTCUT_CHANGED_CELL_END, () => {\n let action;\n if (this.rangeService && this.gridOptionsService.get('enableRangeSelection')) {\n action = new RangeUndoRedoAction(this.cellValueChanges, undefined, undefined, [...this.rangeService.getCellRanges()]);\n }\n else {\n action = new UndoRedoAction(this.cellValueChanges);\n }\n this.pushActionsToUndoStack(action);\n this.isRangeInAction = false;\n });\n }\n pushActionsToUndoStack(action) {\n this.undoStack.push(action);\n this.cellValueChanges = [];\n this.redoStack.clear();\n }\n getRowNode(gridRow) {\n switch (gridRow.rowPinned) {\n case 'top':\n return this.pinnedRowModel.getPinnedTopRowData()[gridRow.rowIndex];\n case 'bottom':\n return this.pinnedRowModel.getPinnedBottomRowData()[gridRow.rowIndex];\n default:\n return this.rowModel.getRow(gridRow.rowIndex);\n }\n }\n};\n__decorate([\n Autowired('focusService')\n], UndoRedoService.prototype, \"focusService\", void 0);\n__decorate([\n Autowired('ctrlsService')\n], UndoRedoService.prototype, \"ctrlsService\", void 0);\n__decorate([\n Autowired('rowModel')\n], UndoRedoService.prototype, \"rowModel\", void 0);\n__decorate([\n Autowired('pinnedRowModel')\n], UndoRedoService.prototype, \"pinnedRowModel\", void 0);\n__decorate([\n Autowired('cellPositionUtils')\n], UndoRedoService.prototype, \"cellPositionUtils\", void 0);\n__decorate([\n Autowired('rowPositionUtils')\n], UndoRedoService.prototype, \"rowPositionUtils\", void 0);\n__decorate([\n Autowired('columnModel')\n], UndoRedoService.prototype, \"columnModel\", void 0);\n__decorate([\n Optional('rangeService')\n], UndoRedoService.prototype, \"rangeService\", void 0);\n__decorate([\n PostConstruct\n], UndoRedoService.prototype, \"init\", null);\nUndoRedoService = __decorate([\n Bean('undoRedoService')\n], UndoRedoService);\nexport { UndoRedoService };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Autowired, Bean } from \"../../context/context.mjs\";\nimport { BeanStub } from \"../../context/beanStub.mjs\";\nimport { ColumnGroup } from \"../../entities/columnGroup.mjs\";\nimport { HeaderRowType } from \"../row/headerRowComp.mjs\";\nimport { last } from \"../../utils/array.mjs\";\nlet HeaderPositionUtils = class HeaderPositionUtils extends BeanStub {\n findHeader(focusedHeader, direction) {\n let nextColumn;\n let getGroupMethod;\n let getColMethod;\n if (focusedHeader.column instanceof ColumnGroup) {\n getGroupMethod = `getDisplayedGroup${direction}`;\n nextColumn = this.columnModel[getGroupMethod](focusedHeader.column);\n }\n else {\n getColMethod = `getDisplayedCol${direction}`;\n nextColumn = this.columnModel[getColMethod](focusedHeader.column);\n }\n if (!nextColumn) {\n return;\n }\n let { headerRowIndex } = focusedHeader;\n if (this.getHeaderRowType(headerRowIndex) !== HeaderRowType.FLOATING_FILTER) {\n const columnsInPath = [nextColumn];\n while (nextColumn.getParent()) {\n nextColumn = nextColumn.getParent();\n columnsInPath.push(nextColumn);\n }\n nextColumn = columnsInPath[columnsInPath.length - 1 - headerRowIndex];\n }\n const { column, headerRowIndex: indexToFocus } = this.getHeaderIndexToFocus(nextColumn, headerRowIndex);\n return {\n column,\n headerRowIndex: indexToFocus\n };\n }\n getHeaderIndexToFocus(column, currentIndex) {\n let nextColumn;\n if (column instanceof ColumnGroup && this.isAnyChildSpanningHeaderHeight(column) && column.isPadding()) {\n const targetColumn = column;\n nextColumn = targetColumn.getLeafColumns()[0];\n let col = nextColumn;\n while (col !== targetColumn) {\n currentIndex++;\n col = col.getParent();\n }\n }\n return {\n column: nextColumn || column,\n headerRowIndex: currentIndex\n };\n }\n isAnyChildSpanningHeaderHeight(columnGroup) {\n if (!columnGroup) {\n return false;\n }\n return columnGroup.getLeafColumns().some(col => col.isSpanHeaderHeight());\n }\n getColumnVisibleParent(currentColumn, currentIndex) {\n const currentRowType = this.getHeaderRowType(currentIndex);\n const isFloatingFilter = currentRowType === HeaderRowType.FLOATING_FILTER;\n const isColumn = currentRowType === HeaderRowType.COLUMN;\n let nextFocusColumn = isFloatingFilter ? currentColumn : currentColumn.getParent();\n let nextRow = currentIndex - 1;\n let headerRowIndexWithoutSpan = nextRow;\n if (isColumn && this.isAnyChildSpanningHeaderHeight(currentColumn.getParent())) {\n while (nextFocusColumn && nextFocusColumn.isPadding()) {\n nextFocusColumn = nextFocusColumn.getParent();\n nextRow--;\n }\n headerRowIndexWithoutSpan = nextRow;\n if (nextRow < 0) {\n nextFocusColumn = currentColumn;\n nextRow = currentIndex;\n headerRowIndexWithoutSpan = undefined;\n }\n }\n return { column: nextFocusColumn, headerRowIndex: nextRow, headerRowIndexWithoutSpan };\n }\n getColumnVisibleChild(column, currentIndex, direction = 'After') {\n const currentRowType = this.getHeaderRowType(currentIndex);\n let nextFocusColumn = column;\n let nextRow = currentIndex + 1;\n let headerRowIndexWithoutSpan = nextRow;\n if (currentRowType === HeaderRowType.COLUMN_GROUP) {\n const leafColumns = column.getDisplayedLeafColumns();\n const leafColumn = direction === 'After' ? leafColumns[0] : last(leafColumns);\n const columnsInTheWay = [];\n let currentColumn = leafColumn;\n while (currentColumn.getParent() !== column) {\n currentColumn = currentColumn.getParent();\n columnsInTheWay.push(currentColumn);\n }\n nextFocusColumn = leafColumn;\n if (leafColumn.isSpanHeaderHeight()) {\n for (let i = columnsInTheWay.length - 1; i >= 0; i--) {\n const colToFocus = columnsInTheWay[i];\n if (!colToFocus.isPadding()) {\n nextFocusColumn = colToFocus;\n break;\n }\n nextRow++;\n }\n }\n else {\n nextFocusColumn = last(columnsInTheWay);\n if (!nextFocusColumn) {\n nextFocusColumn = leafColumn;\n }\n }\n }\n return { column: nextFocusColumn, headerRowIndex: nextRow, headerRowIndexWithoutSpan };\n }\n getHeaderRowType(rowIndex) {\n const centerHeaderContainer = this.ctrlsService.getHeaderRowContainerCtrl();\n if (centerHeaderContainer) {\n return centerHeaderContainer.getRowType(rowIndex);\n }\n }\n findColAtEdgeForHeaderRow(level, position) {\n const displayedColumns = this.columnModel.getAllDisplayedColumns();\n const column = displayedColumns[position === 'start' ? 0 : displayedColumns.length - 1];\n if (!column) {\n return;\n }\n const childContainer = this.ctrlsService.getHeaderRowContainerCtrl(column.getPinned());\n const type = childContainer.getRowType(level);\n if (type == HeaderRowType.COLUMN_GROUP) {\n const columnGroup = this.columnModel.getColumnGroupAtLevel(column, level);\n return {\n headerRowIndex: level,\n column: columnGroup\n };\n }\n return {\n // if type==null, means the header level didn't exist\n headerRowIndex: type == null ? -1 : level,\n column\n };\n }\n};\n__decorate([\n Autowired('columnModel')\n], HeaderPositionUtils.prototype, \"columnModel\", void 0);\n__decorate([\n Autowired('ctrlsService')\n], HeaderPositionUtils.prototype, \"ctrlsService\", void 0);\nHeaderPositionUtils = __decorate([\n Bean('headerPositionUtils')\n], HeaderPositionUtils);\nexport { HeaderPositionUtils };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Bean } from \"../context/context.mjs\";\nimport { deepCloneDefinition } from \"../utils/object.mjs\";\nlet ColumnDefFactory = class ColumnDefFactory {\n buildColumnDefs(cols, rowGroupColumns, pivotColumns) {\n const res = [];\n const colGroupDefs = {};\n cols.forEach(col => {\n const colDef = this.createDefFromColumn(col, rowGroupColumns, pivotColumns);\n let addToResult = true;\n let childDef = colDef;\n let pointer = col.getOriginalParent();\n let lastPointer = null;\n while (pointer) {\n let parentDef = null;\n // we don't include padding groups, as the column groups provided\n // by application didn't have these. the whole point of padding groups\n // is to balance the column tree that the user provided.\n if (pointer.isPadding()) {\n pointer = pointer.getOriginalParent();\n continue;\n }\n // if colDef for this group already exists, use it\n const existingParentDef = colGroupDefs[pointer.getGroupId()];\n if (existingParentDef) {\n existingParentDef.children.push(childDef);\n // if we added to result, it would be the second time we did it\n addToResult = false;\n // we don't want to continue up the tree, as it has already been\n // done for this group\n break;\n }\n parentDef = this.createDefFromGroup(pointer);\n if (parentDef) {\n parentDef.children = [childDef];\n colGroupDefs[parentDef.groupId] = parentDef;\n childDef = parentDef;\n pointer = pointer.getOriginalParent();\n }\n if (pointer != null && lastPointer === pointer) {\n addToResult = false;\n break;\n }\n // Ensure we don't get stuck in an infinite loop\n lastPointer = pointer;\n }\n if (addToResult) {\n res.push(childDef);\n }\n });\n return res;\n }\n createDefFromGroup(group) {\n const defCloned = deepCloneDefinition(group.getColGroupDef(), ['children']);\n if (defCloned) {\n defCloned.groupId = group.getGroupId();\n }\n return defCloned;\n }\n createDefFromColumn(col, rowGroupColumns, pivotColumns) {\n const colDefCloned = deepCloneDefinition(col.getColDef());\n colDefCloned.colId = col.getColId();\n colDefCloned.width = col.getActualWidth();\n colDefCloned.rowGroup = col.isRowGroupActive();\n colDefCloned.rowGroupIndex = col.isRowGroupActive() ? rowGroupColumns.indexOf(col) : null;\n colDefCloned.pivot = col.isPivotActive();\n colDefCloned.pivotIndex = col.isPivotActive() ? pivotColumns.indexOf(col) : null;\n colDefCloned.aggFunc = col.isValueActive() ? col.getAggFunc() : null;\n colDefCloned.hide = col.isVisible() ? undefined : true;\n colDefCloned.pinned = col.isPinned() ? col.getPinned() : null;\n colDefCloned.sort = col.getSort() ? col.getSort() : null;\n colDefCloned.sortIndex = col.getSortIndex() != null ? col.getSortIndex() : null;\n return colDefCloned;\n }\n};\nColumnDefFactory = __decorate([\n Bean('columnDefFactory')\n], ColumnDefFactory);\nexport { ColumnDefFactory };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { exists } from \"../../utils/generic.mjs\";\nimport { pushAll } from \"../../utils/array.mjs\";\nimport { Autowired, Bean } from \"../../context/context.mjs\";\nlet RowCssClassCalculator = class RowCssClassCalculator {\n getInitialRowClasses(params) {\n const classes = [];\n if (exists(params.extraCssClass)) {\n classes.push(params.extraCssClass);\n }\n classes.push('ag-row');\n classes.push(params.rowFocused ? 'ag-row-focus' : 'ag-row-no-focus');\n if (params.fadeRowIn) {\n classes.push('ag-opacity-zero');\n }\n classes.push(params.rowIsEven ? 'ag-row-even' : 'ag-row-odd');\n if (params.rowNode.isRowPinned()) {\n classes.push('ag-row-pinned');\n }\n if (params.rowNode.isSelected()) {\n classes.push('ag-row-selected');\n }\n if (params.rowNode.footer) {\n classes.push('ag-row-footer');\n }\n classes.push('ag-row-level-' + params.rowLevel);\n if (params.rowNode.stub) {\n classes.push('ag-row-loading');\n }\n if (params.fullWidthRow) {\n classes.push('ag-full-width-row');\n }\n if (params.expandable) {\n classes.push('ag-row-group');\n classes.push(params.rowNode.expanded ? 'ag-row-group-expanded' : 'ag-row-group-contracted');\n }\n if (params.rowNode.dragging) {\n classes.push('ag-row-dragging');\n }\n pushAll(classes, this.processClassesFromGridOptions(params.rowNode));\n pushAll(classes, this.preProcessRowClassRules(params.rowNode));\n // we use absolute position unless we are doing print layout\n classes.push(params.printLayout ? 'ag-row-position-relative' : 'ag-row-position-absolute');\n if (params.firstRowOnPage) {\n classes.push('ag-row-first');\n }\n if (params.lastRowOnPage) {\n classes.push('ag-row-last');\n }\n if (params.fullWidthRow) {\n if (params.pinned === 'left') {\n classes.push('ag-cell-last-left-pinned');\n }\n if (params.pinned === 'right') {\n classes.push('ag-cell-first-right-pinned');\n }\n }\n return classes;\n }\n processClassesFromGridOptions(rowNode) {\n const res = [];\n const process = (rowCls) => {\n if (typeof rowCls === 'string') {\n res.push(rowCls);\n }\n else if (Array.isArray(rowCls)) {\n rowCls.forEach(e => res.push(e));\n }\n };\n // part 1 - rowClass\n const rowClass = this.gridOptionsService.get('rowClass');\n if (rowClass) {\n if (typeof rowClass === 'function') {\n console.warn('AG Grid: rowClass should not be a function, please use getRowClass instead');\n return [];\n }\n process(rowClass);\n }\n // part 2 - rowClassFunc\n const rowClassFunc = this.gridOptionsService.getCallback('getRowClass');\n if (rowClassFunc) {\n const params = {\n data: rowNode.data,\n node: rowNode,\n rowIndex: rowNode.rowIndex\n };\n const rowClassFuncResult = rowClassFunc(params);\n process(rowClassFuncResult);\n }\n return res;\n }\n preProcessRowClassRules(rowNode) {\n const res = [];\n this.processRowClassRules(rowNode, (className) => {\n res.push(className);\n }, (className) => {\n // not catered for, if creating, no need\n // to remove class as it was never there\n });\n return res;\n }\n processRowClassRules(rowNode, onApplicableClass, onNotApplicableClass) {\n const rowClassParams = this.gridOptionsService.addGridCommonParams({\n data: rowNode.data,\n node: rowNode,\n rowIndex: rowNode.rowIndex\n });\n this.stylingService.processClassRules(undefined, this.gridOptionsService.get('rowClassRules'), rowClassParams, onApplicableClass, onNotApplicableClass);\n }\n calculateRowLevel(rowNode) {\n if (rowNode.group) {\n return rowNode.level;\n }\n // if a leaf, and a parent exists, put a level of the parent, else put level of 0 for top level item\n return rowNode.parent ? (rowNode.parent.level + 1) : 0;\n }\n};\n__decorate([\n Autowired('stylingService')\n], RowCssClassCalculator.prototype, \"stylingService\", void 0);\n__decorate([\n Autowired('gridOptionsService')\n], RowCssClassCalculator.prototype, \"gridOptionsService\", void 0);\nRowCssClassCalculator = __decorate([\n Bean('rowCssClassCalculator')\n], RowCssClassCalculator);\nexport { RowCssClassCalculator };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Autowired, Bean, PostConstruct } from \"../context/context.mjs\";\nimport { _ } from \"../utils/index.mjs\";\nimport { BeanStub } from \"../context/beanStub.mjs\";\n// this logic is used by both SSRM and CSRM\nlet RowNodeSorter = class RowNodeSorter extends BeanStub {\n init() {\n this.isAccentedSort = this.gridOptionsService.get('accentedSort');\n this.primaryColumnsSortGroups = this.gridOptionsService.isColumnsSortingCoupledToGroup();\n this.addManagedPropertyListener('accentedSort', (propChange) => this.isAccentedSort = propChange.currentValue);\n this.addManagedPropertyListener('autoGroupColumnDef', () => this.primaryColumnsSortGroups = this.gridOptionsService.isColumnsSortingCoupledToGroup());\n }\n doFullSort(rowNodes, sortOptions) {\n const mapper = (rowNode, pos) => ({ currentPos: pos, rowNode: rowNode });\n const sortedRowNodes = rowNodes.map(mapper);\n sortedRowNodes.sort(this.compareRowNodes.bind(this, sortOptions));\n return sortedRowNodes.map(item => item.rowNode);\n }\n compareRowNodes(sortOptions, sortedNodeA, sortedNodeB) {\n const nodeA = sortedNodeA.rowNode;\n const nodeB = sortedNodeB.rowNode;\n // Iterate columns, return the first that doesn't match\n for (let i = 0, len = sortOptions.length; i < len; i++) {\n const sortOption = sortOptions[i];\n const isDescending = sortOption.sort === 'desc';\n const valueA = this.getValue(nodeA, sortOption.column);\n const valueB = this.getValue(nodeB, sortOption.column);\n let comparatorResult;\n const providedComparator = this.getComparator(sortOption, nodeA);\n if (providedComparator) {\n //if comparator provided, use it\n comparatorResult = providedComparator(valueA, valueB, nodeA, nodeB, isDescending);\n }\n else {\n //otherwise do our own comparison\n comparatorResult = _.defaultComparator(valueA, valueB, this.isAccentedSort);\n }\n // user provided comparators can return 'NaN' if they don't correctly handle 'undefined' values, this\n // typically occurs when the comparator is used on a group row\n const validResult = !isNaN(comparatorResult);\n if (validResult && comparatorResult !== 0) {\n return sortOption.sort === 'asc' ? comparatorResult : comparatorResult * -1;\n }\n }\n // All matched, we make is so that the original sort order is kept:\n return sortedNodeA.currentPos - sortedNodeB.currentPos;\n }\n getComparator(sortOption, rowNode) {\n const column = sortOption.column;\n // comparator on col get preference over everything else\n const comparatorOnCol = column.getColDef().comparator;\n if (comparatorOnCol != null) {\n return comparatorOnCol;\n }\n if (!column.getColDef().showRowGroup) {\n return;\n }\n // if a 'field' is supplied on the autoGroupColumnDef we need to use the associated column comparator\n const groupLeafField = !rowNode.group && column.getColDef().field;\n if (!groupLeafField) {\n return;\n }\n const primaryColumn = this.columnModel.getPrimaryColumn(groupLeafField);\n if (!primaryColumn) {\n return;\n }\n return primaryColumn.getColDef().comparator;\n }\n getValue(node, column) {\n var _a, _b;\n if (!this.primaryColumnsSortGroups) {\n return this.valueService.getValue(column, node, false, false);\n }\n const isNodeGroupedAtLevel = node.rowGroupColumn === column;\n if (isNodeGroupedAtLevel) {\n const isGroupRows = this.gridOptionsService.isGroupUseEntireRow(this.columnModel.isPivotActive());\n // because they're group rows, no display cols exist, so groupData never populated.\n // instead delegate to getting value from leaf child.\n if (isGroupRows) {\n const leafChild = (_a = node.allLeafChildren) === null || _a === void 0 ? void 0 : _a[0];\n if (leafChild) {\n return this.valueService.getValue(column, leafChild, false, false);\n }\n return undefined;\n }\n const displayCol = this.columnModel.getGroupDisplayColumnForGroup(column.getId());\n if (!displayCol) {\n return undefined;\n }\n return (_b = node.groupData) === null || _b === void 0 ? void 0 : _b[displayCol.getId()];\n }\n if (node.group && column.getColDef().showRowGroup) {\n return undefined;\n }\n return this.valueService.getValue(column, node, false, false);\n }\n};\n__decorate([\n Autowired('valueService')\n], RowNodeSorter.prototype, \"valueService\", void 0);\n__decorate([\n Autowired('columnModel')\n], RowNodeSorter.prototype, \"columnModel\", void 0);\n__decorate([\n PostConstruct\n], RowNodeSorter.prototype, \"init\", null);\nRowNodeSorter = __decorate([\n Bean('rowNodeSorter')\n], RowNodeSorter);\nexport { RowNodeSorter };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar CtrlsService_1;\nimport { Bean } from \"./context/context.mjs\";\nimport { BeanStub } from \"./context/beanStub.mjs\";\nlet CtrlsService = CtrlsService_1 = class CtrlsService extends BeanStub {\n constructor() {\n super(...arguments);\n this.ready = false;\n this.readyCallbacks = [];\n }\n checkReady() {\n this.ready =\n this.gridCtrl != null\n && this.gridBodyCtrl != null\n && this.centerRowContainerCtrl != null\n && this.leftRowContainerCtrl != null\n && this.rightRowContainerCtrl != null\n && this.bottomCenterRowContainerCtrl != null\n && this.bottomLeftRowContainerCtrl != null\n && this.bottomRightRowContainerCtrl != null\n && this.topCenterRowContainerCtrl != null\n && this.topLeftRowContainerCtrl != null\n && this.topRightRowContainerCtrl != null\n && this.stickyTopCenterRowContainerCtrl != null\n && this.stickyTopLeftRowContainerCtrl != null\n && this.stickyTopRightRowContainerCtrl != null\n && this.centerHeaderRowContainerCtrl != null\n && this.leftHeaderRowContainerCtrl != null\n && this.rightHeaderRowContainerCtrl != null\n && this.fakeHScrollComp != null\n && this.fakeVScrollComp != null\n && this.gridHeaderCtrl != null;\n if (this.ready) {\n const p = this.createReadyParams();\n this.readyCallbacks.forEach(c => c(p));\n this.readyCallbacks.length = 0;\n }\n }\n whenReady(callback) {\n if (this.ready) {\n callback(this.createReadyParams());\n }\n else {\n this.readyCallbacks.push(callback);\n }\n }\n createReadyParams() {\n return {\n centerRowContainerCtrl: this.centerRowContainerCtrl,\n leftRowContainerCtrl: this.leftRowContainerCtrl,\n rightRowContainerCtrl: this.rightRowContainerCtrl,\n bottomCenterRowContainerCtrl: this.bottomCenterRowContainerCtrl,\n bottomLeftRowContainerCtrl: this.bottomLeftRowContainerCtrl,\n bottomRightRowContainerCtrl: this.bottomRightRowContainerCtrl,\n topCenterRowContainerCtrl: this.topCenterRowContainerCtrl,\n topLeftRowContainerCtrl: this.topLeftRowContainerCtrl,\n topRightRowContainerCtrl: this.topRightRowContainerCtrl,\n stickyTopCenterRowContainerCtrl: this.stickyTopCenterRowContainerCtrl,\n stickyTopLeftRowContainerCtrl: this.stickyTopLeftRowContainerCtrl,\n stickyTopRightRowContainerCtrl: this.stickyTopRightRowContainerCtrl,\n centerHeaderRowContainerCtrl: this.centerHeaderRowContainerCtrl,\n leftHeaderRowContainerCtrl: this.leftHeaderRowContainerCtrl,\n rightHeaderRowContainerCtrl: this.rightHeaderRowContainerCtrl,\n fakeHScrollComp: this.fakeHScrollComp,\n fakeVScrollComp: this.fakeVScrollComp,\n gridBodyCtrl: this.gridBodyCtrl,\n gridCtrl: this.gridCtrl,\n gridHeaderCtrl: this.gridHeaderCtrl,\n };\n }\n registerFakeHScrollComp(comp) {\n this.fakeHScrollComp = comp;\n this.checkReady();\n }\n registerFakeVScrollComp(comp) {\n this.fakeVScrollComp = comp;\n this.checkReady();\n }\n registerGridHeaderCtrl(gridHeaderCtrl) {\n this.gridHeaderCtrl = gridHeaderCtrl;\n this.checkReady();\n }\n registerCenterRowContainerCtrl(ctrl) {\n this.centerRowContainerCtrl = ctrl;\n this.checkReady();\n }\n registerLeftRowContainerCtrl(ctrl) {\n this.leftRowContainerCtrl = ctrl;\n this.checkReady();\n }\n registerRightRowContainerCtrl(ctrl) {\n this.rightRowContainerCtrl = ctrl;\n this.checkReady();\n }\n registerTopCenterRowContainerCtrl(ctrl) {\n this.topCenterRowContainerCtrl = ctrl;\n this.checkReady();\n }\n registerTopLeftRowContainerCon(ctrl) {\n this.topLeftRowContainerCtrl = ctrl;\n this.checkReady();\n }\n registerTopRightRowContainerCtrl(ctrl) {\n this.topRightRowContainerCtrl = ctrl;\n this.checkReady();\n }\n registerStickyTopCenterRowContainerCtrl(ctrl) {\n this.stickyTopCenterRowContainerCtrl = ctrl;\n this.checkReady();\n }\n registerStickyTopLeftRowContainerCon(ctrl) {\n this.stickyTopLeftRowContainerCtrl = ctrl;\n this.checkReady();\n }\n registerStickyTopRightRowContainerCtrl(ctrl) {\n this.stickyTopRightRowContainerCtrl = ctrl;\n this.checkReady();\n }\n registerBottomCenterRowContainerCtrl(ctrl) {\n this.bottomCenterRowContainerCtrl = ctrl;\n this.checkReady();\n }\n registerBottomLeftRowContainerCtrl(ctrl) {\n this.bottomLeftRowContainerCtrl = ctrl;\n this.checkReady();\n }\n registerBottomRightRowContainerCtrl(ctrl) {\n this.bottomRightRowContainerCtrl = ctrl;\n this.checkReady();\n }\n registerHeaderContainer(ctrl, pinned) {\n switch (pinned) {\n case 'left':\n this.leftHeaderRowContainerCtrl = ctrl;\n break;\n case 'right':\n this.rightHeaderRowContainerCtrl = ctrl;\n break;\n default:\n this.centerHeaderRowContainerCtrl = ctrl;\n break;\n }\n this.checkReady();\n }\n registerGridBodyCtrl(ctrl) {\n this.gridBodyCtrl = ctrl;\n this.checkReady();\n }\n registerGridCtrl(ctrl) {\n this.gridCtrl = ctrl;\n this.checkReady();\n }\n getFakeHScrollComp() {\n return this.fakeHScrollComp;\n }\n getFakeVScrollComp() {\n return this.fakeVScrollComp;\n }\n getGridHeaderCtrl() {\n return this.gridHeaderCtrl;\n }\n getGridCtrl() {\n return this.gridCtrl;\n }\n getCenterRowContainerCtrl() {\n return this.centerRowContainerCtrl;\n }\n getTopCenterRowContainerCtrl() {\n return this.topCenterRowContainerCtrl;\n }\n getBottomCenterRowContainerCtrl() {\n return this.bottomCenterRowContainerCtrl;\n }\n getStickyTopCenterRowContainerCtrl() {\n return this.stickyTopCenterRowContainerCtrl;\n }\n getGridBodyCtrl() {\n return this.gridBodyCtrl;\n }\n getHeaderRowContainerCtrls() {\n return [this.leftHeaderRowContainerCtrl, this.rightHeaderRowContainerCtrl, this.centerHeaderRowContainerCtrl];\n }\n getHeaderRowContainerCtrl(pinned) {\n switch (pinned) {\n case 'left': return this.leftHeaderRowContainerCtrl;\n case 'right': return this.rightHeaderRowContainerCtrl;\n default: return this.centerHeaderRowContainerCtrl;\n }\n }\n};\nCtrlsService.NAME = 'ctrlsService';\nCtrlsService = CtrlsService_1 = __decorate([\n Bean(CtrlsService_1.NAME)\n], CtrlsService);\nexport { CtrlsService };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { BeanStub } from \"./context/beanStub.mjs\";\nimport { Bean } from \"./context/context.mjs\";\nlet CtrlsFactory = class CtrlsFactory extends BeanStub {\n constructor() {\n super(...arguments);\n this.registry = {};\n }\n register(meta) {\n this.registry[meta.controllerName] = meta.controllerClass;\n }\n getInstance(name) {\n const ControllerClass = this.registry[name];\n if (ControllerClass == null) {\n return undefined;\n }\n return new ControllerClass();\n }\n};\nCtrlsFactory = __decorate([\n Bean('ctrlsFactory')\n], CtrlsFactory);\nexport { CtrlsFactory };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Autowired } from \"../context/context.mjs\";\nimport { Events } from \"../eventKeys.mjs\";\nimport { isInvisibleScrollbar, isIOSUserAgent, isMacOsUserAgent } from \"../utils/browser.mjs\";\nimport { isVisible } from \"../utils/dom.mjs\";\nimport { waitUntil } from \"../utils/function.mjs\";\nimport { Component } from \"../widgets/component.mjs\";\nimport { RefSelector } from \"../widgets/componentAnnotations.mjs\";\nexport class AbstractFakeScrollComp extends Component {\n constructor(template, direction) {\n super(template);\n this.direction = direction;\n this.hideTimeout = null;\n }\n postConstruct() {\n this.addManagedListener(this.eventService, Events.EVENT_SCROLL_VISIBILITY_CHANGED, this.onScrollVisibilityChanged.bind(this));\n this.onScrollVisibilityChanged();\n this.addOrRemoveCssClass('ag-apple-scrollbar', isMacOsUserAgent() || isIOSUserAgent());\n }\n initialiseInvisibleScrollbar() {\n if (this.invisibleScrollbar !== undefined) {\n return;\n }\n this.invisibleScrollbar = isInvisibleScrollbar();\n if (this.invisibleScrollbar) {\n this.hideAndShowInvisibleScrollAsNeeded();\n this.addActiveListenerToggles();\n }\n }\n addActiveListenerToggles() {\n const activateEvents = ['mouseenter', 'mousedown', 'touchstart'];\n const deactivateEvents = ['mouseleave', 'touchend'];\n const eGui = this.getGui();\n activateEvents.forEach(eventName => this.addManagedListener(eGui, eventName, () => this.addOrRemoveCssClass('ag-scrollbar-active', true)));\n deactivateEvents.forEach(eventName => this.addManagedListener(eGui, eventName, () => this.addOrRemoveCssClass('ag-scrollbar-active', false)));\n }\n onScrollVisibilityChanged() {\n // initialiseInvisibleScrollbar should only be called once, but the reason\n // this can't be inside `setComp` or `PostConstruct` is the DOM might not\n // be ready, so we call it until eventually, it gets calculated.\n if (this.invisibleScrollbar === undefined) {\n this.initialiseInvisibleScrollbar();\n }\n this.animationFrameService.requestAnimationFrame(() => this.setScrollVisible());\n }\n hideAndShowInvisibleScrollAsNeeded() {\n this.addManagedListener(this.eventService, Events.EVENT_BODY_SCROLL, (params) => {\n if (params.direction === this.direction) {\n if (this.hideTimeout !== null) {\n window.clearTimeout(this.hideTimeout);\n this.hideTimeout = null;\n }\n this.addOrRemoveCssClass('ag-scrollbar-scrolling', true);\n }\n });\n this.addManagedListener(this.eventService, Events.EVENT_BODY_SCROLL_END, () => {\n this.hideTimeout = window.setTimeout(() => {\n this.addOrRemoveCssClass('ag-scrollbar-scrolling', false);\n this.hideTimeout = null;\n }, 400);\n });\n }\n attemptSettingScrollPosition(value) {\n const viewport = this.getViewport();\n waitUntil(() => isVisible(viewport), () => this.setScrollPosition(value), 100);\n }\n getViewport() {\n return this.eViewport;\n }\n getContainer() {\n return this.eContainer;\n }\n onScrollCallback(fn) {\n this.addManagedListener(this.getViewport(), 'scroll', fn);\n }\n}\n__decorate([\n RefSelector('eViewport')\n], AbstractFakeScrollComp.prototype, \"eViewport\", void 0);\n__decorate([\n RefSelector('eContainer')\n], AbstractFakeScrollComp.prototype, \"eContainer\", void 0);\n__decorate([\n Autowired('scrollVisibleService')\n], AbstractFakeScrollComp.prototype, \"scrollVisibleService\", void 0);\n__decorate([\n Autowired('ctrlsService')\n], AbstractFakeScrollComp.prototype, \"ctrlsService\", void 0);\n__decorate([\n Autowired('animationFrameService')\n], AbstractFakeScrollComp.prototype, \"animationFrameService\", void 0);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Autowired, PostConstruct } from \"../context/context.mjs\";\nimport { AbstractFakeScrollComp } from \"./abstractFakeScrollComp.mjs\";\nimport { getScrollLeft, isVisible, setFixedHeight, setFixedWidth, setScrollLeft } from \"../utils/dom.mjs\";\nimport { Events } from \"../eventKeys.mjs\";\nimport { RefSelector } from \"../widgets/componentAnnotations.mjs\";\nimport { CenterWidthFeature } from \"./centerWidthFeature.mjs\";\nexport class FakeHScrollComp extends AbstractFakeScrollComp {\n constructor() {\n super(FakeHScrollComp.TEMPLATE, 'horizontal');\n }\n postConstruct() {\n super.postConstruct();\n // When doing printing, this changes whether cols are pinned or not\n const spacerWidthsListener = this.setFakeHScrollSpacerWidths.bind(this);\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, spacerWidthsListener);\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, spacerWidthsListener);\n this.addManagedListener(this.eventService, Events.EVENT_PINNED_ROW_DATA_CHANGED, this.onPinnedRowDataChanged.bind(this));\n this.addManagedPropertyListener('domLayout', spacerWidthsListener);\n this.ctrlsService.registerFakeHScrollComp(this);\n this.createManagedBean(new CenterWidthFeature(width => this.eContainer.style.width = `${width}px`));\n this.addManagedPropertyListeners(['suppressHorizontalScroll'], this.onScrollVisibilityChanged.bind(this));\n }\n initialiseInvisibleScrollbar() {\n if (this.invisibleScrollbar !== undefined) {\n return;\n }\n this.enableRtl = this.gridOptionsService.get('enableRtl');\n super.initialiseInvisibleScrollbar();\n if (this.invisibleScrollbar) {\n this.refreshCompBottom();\n }\n }\n onPinnedRowDataChanged() {\n this.refreshCompBottom();\n }\n refreshCompBottom() {\n if (!this.invisibleScrollbar) {\n return;\n }\n const bottomPinnedHeight = this.pinnedRowModel.getPinnedBottomTotalHeight();\n this.getGui().style.bottom = `${bottomPinnedHeight}px`;\n }\n onScrollVisibilityChanged() {\n super.onScrollVisibilityChanged();\n this.setFakeHScrollSpacerWidths();\n }\n setFakeHScrollSpacerWidths() {\n const vScrollShowing = this.scrollVisibleService.isVerticalScrollShowing();\n // we pad the right based on a) if cols are pinned to the right and\n // b) if v scroll is showing on the right (normal position of scroll)\n let rightSpacing = this.columnModel.getDisplayedColumnsRightWidth();\n const scrollOnRight = !this.enableRtl && vScrollShowing;\n const scrollbarWidth = this.gridOptionsService.getScrollbarWidth();\n if (scrollOnRight) {\n rightSpacing += scrollbarWidth;\n }\n setFixedWidth(this.eRightSpacer, rightSpacing);\n this.eRightSpacer.classList.toggle('ag-scroller-corner', rightSpacing <= scrollbarWidth);\n // we pad the left based on a) if cols are pinned to the left and\n // b) if v scroll is showing on the left (happens in LTR layout only)\n let leftSpacing = this.columnModel.getDisplayedColumnsLeftWidth();\n const scrollOnLeft = this.enableRtl && vScrollShowing;\n if (scrollOnLeft) {\n leftSpacing += scrollbarWidth;\n }\n setFixedWidth(this.eLeftSpacer, leftSpacing);\n this.eLeftSpacer.classList.toggle('ag-scroller-corner', leftSpacing <= scrollbarWidth);\n }\n setScrollVisible() {\n const hScrollShowing = this.scrollVisibleService.isHorizontalScrollShowing();\n const invisibleScrollbar = this.invisibleScrollbar;\n const isSuppressHorizontalScroll = this.gridOptionsService.get('suppressHorizontalScroll');\n const scrollbarWidth = hScrollShowing ? (this.gridOptionsService.getScrollbarWidth() || 0) : 0;\n const adjustedScrollbarWidth = (scrollbarWidth === 0 && invisibleScrollbar) ? 16 : scrollbarWidth;\n const scrollContainerSize = !isSuppressHorizontalScroll ? adjustedScrollbarWidth : 0;\n this.addOrRemoveCssClass('ag-scrollbar-invisible', invisibleScrollbar);\n setFixedHeight(this.getGui(), scrollContainerSize);\n setFixedHeight(this.eViewport, scrollContainerSize);\n setFixedHeight(this.eContainer, scrollContainerSize);\n this.setDisplayed(hScrollShowing, { skipAriaHidden: true });\n }\n getScrollPosition() {\n return getScrollLeft(this.getViewport(), this.enableRtl);\n }\n setScrollPosition(value) {\n if (!isVisible(this.getViewport())) {\n this.attemptSettingScrollPosition(value);\n }\n setScrollLeft(this.getViewport(), value, this.enableRtl);\n }\n}\nFakeHScrollComp.TEMPLATE = `
\n
\n
\n
\n
\n
\n
`;\n__decorate([\n RefSelector('eLeftSpacer')\n], FakeHScrollComp.prototype, \"eLeftSpacer\", void 0);\n__decorate([\n RefSelector('eRightSpacer')\n], FakeHScrollComp.prototype, \"eRightSpacer\", void 0);\n__decorate([\n Autowired('columnModel')\n], FakeHScrollComp.prototype, \"columnModel\", void 0);\n__decorate([\n Autowired('pinnedRowModel')\n], FakeHScrollComp.prototype, \"pinnedRowModel\", void 0);\n__decorate([\n PostConstruct\n], FakeHScrollComp.prototype, \"postConstruct\", null);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { BeanStub } from \"../context/beanStub.mjs\";\nimport { Autowired, Bean, PostConstruct } from \"../context/context.mjs\";\nimport { Events } from \"../eventKeys.mjs\";\nlet PinnedWidthService = class PinnedWidthService extends BeanStub {\n postConstruct() {\n const listener = this.checkContainerWidths.bind(this);\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, listener);\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, listener);\n this.addManagedPropertyListener('domLayout', listener);\n }\n checkContainerWidths() {\n const printLayout = this.gridOptionsService.isDomLayout('print');\n const newLeftWidth = printLayout ? 0 : this.columnModel.getDisplayedColumnsLeftWidth();\n const newRightWidth = printLayout ? 0 : this.columnModel.getDisplayedColumnsRightWidth();\n if (newLeftWidth != this.leftWidth) {\n this.leftWidth = newLeftWidth;\n this.eventService.dispatchEvent({ type: Events.EVENT_LEFT_PINNED_WIDTH_CHANGED });\n }\n if (newRightWidth != this.rightWidth) {\n this.rightWidth = newRightWidth;\n this.eventService.dispatchEvent({ type: Events.EVENT_RIGHT_PINNED_WIDTH_CHANGED });\n }\n }\n getPinnedRightWidth() {\n return this.rightWidth;\n }\n getPinnedLeftWidth() {\n return this.leftWidth;\n }\n};\n__decorate([\n Autowired('columnModel')\n], PinnedWidthService.prototype, \"columnModel\", void 0);\n__decorate([\n PostConstruct\n], PinnedWidthService.prototype, \"postConstruct\", null);\nPinnedWidthService = __decorate([\n Bean('pinnedWidthService')\n], PinnedWidthService);\nexport { PinnedWidthService };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { BeanStub } from \"../context/beanStub.mjs\";\nimport { Autowired, Bean, PostConstruct } from \"../context/context.mjs\";\nlet RowNodeEventThrottle = class RowNodeEventThrottle extends BeanStub {\n constructor() {\n super(...arguments);\n this.events = [];\n }\n postConstruct() {\n if (this.rowModel.getType() == 'clientSide') {\n this.clientSideRowModel = this.rowModel;\n }\n }\n // because the user can call rowNode.setExpanded() many times in one VM turn,\n // we throttle the calls to ClientSideRowModel using animationFrameService. this means for 100\n // row nodes getting expanded, we only update the CSRM once, and then we fire all events after\n // CSRM has updated.\n //\n // if we did not do this, then the user could call setExpanded on 100+ rows, causing the grid\n // to re-render 100+ times, which would be a performance lag.\n //\n // we use animationFrameService\n // rather than _.debounce() so this will get done if anyone flushes the animationFrameService\n // (eg user calls api.ensureRowVisible(), which in turn flushes ).\n dispatchExpanded(event) {\n // if not using CSRM, we don't debounce. otherwise this breaks the SSRM.\n if (this.clientSideRowModel == null) {\n this.eventService.dispatchEvent(event);\n return;\n }\n this.events.push(event);\n const func = () => {\n if (this.clientSideRowModel) {\n this.clientSideRowModel.onRowGroupOpened();\n }\n this.events.forEach(e => this.eventService.dispatchEvent(e));\n this.events = [];\n };\n if (this.dispatchExpandedDebounced == null) {\n this.dispatchExpandedDebounced = this.animationFrameService.debounce(func);\n }\n this.dispatchExpandedDebounced();\n }\n};\n__decorate([\n Autowired('animationFrameService')\n], RowNodeEventThrottle.prototype, \"animationFrameService\", void 0);\n__decorate([\n Autowired('rowModel')\n], RowNodeEventThrottle.prototype, \"rowModel\", void 0);\n__decorate([\n PostConstruct\n], RowNodeEventThrottle.prototype, \"postConstruct\", null);\nRowNodeEventThrottle = __decorate([\n Bean('rowNodeEventThrottle')\n], RowNodeEventThrottle);\nexport { RowNodeEventThrottle };\n","import { ModuleNames } from '../../modules/moduleNames.mjs';\nimport { ColDefUtil } from '../../components/colDefUtil.mjs';\nconst COLUMN_DEFINITION_DEPRECATIONS = {\n columnsMenuParams: { version: '31.1', message: 'Use `columnChooserParams` instead.' },\n suppressMenu: { version: '31.1', message: 'Use `suppressHeaderMenuButton` instead.' },\n};\nconst CSRM_REQUIRES_ROW_GROUP_MODULE = (_options, gridOptions) => {\n var _a;\n if (((_a = gridOptions.rowModelType) !== null && _a !== void 0 ? _a : 'clientSide') === 'clientSide') {\n return { module: ModuleNames.RowGroupingModule };\n }\n return null;\n};\nconst COLUMN_DEFINITION_VALIDATIONS = {\n // supported on all row models, but need module for client side.\n enableRowGroup: CSRM_REQUIRES_ROW_GROUP_MODULE,\n rowGroup: CSRM_REQUIRES_ROW_GROUP_MODULE,\n rowGroupIndex: CSRM_REQUIRES_ROW_GROUP_MODULE,\n enablePivot: CSRM_REQUIRES_ROW_GROUP_MODULE,\n enableValue: CSRM_REQUIRES_ROW_GROUP_MODULE,\n pivot: CSRM_REQUIRES_ROW_GROUP_MODULE,\n pivotIndex: CSRM_REQUIRES_ROW_GROUP_MODULE,\n aggFunc: CSRM_REQUIRES_ROW_GROUP_MODULE,\n cellEditor: (options) => {\n if (options.cellEditor === 'agRichSelect' || options.cellEditor === 'agRichSelectCellEditor') {\n return { module: ModuleNames.RichSelectModule };\n }\n return null;\n },\n menuTabs: (options) => {\n var _a;\n const enterpriseMenuTabs = ['columnsMenuTab', 'generalMenuTab'];\n if ((_a = options.menuTabs) === null || _a === void 0 ? void 0 : _a.some(tab => enterpriseMenuTabs.includes(tab))) {\n return {\n module: ModuleNames.MenuModule,\n };\n }\n return null;\n },\n columnsMenuParams: {\n module: [ModuleNames.MenuModule, ModuleNames.ColumnsToolPanelModule],\n },\n columnChooserParams: {\n module: [ModuleNames.MenuModule, ModuleNames.ColumnsToolPanelModule],\n },\n headerCheckboxSelection: {\n supportedRowModels: ['clientSide', 'serverSide'],\n dependencies: (_options, { rowSelection }) => (rowSelection === 'multiple' ? null : 'headerCheckboxSelection is only supported with rowSelection=multiple')\n },\n headerCheckboxSelectionFilteredOnly: {\n supportedRowModels: ['clientSide'],\n dependencies: (_options, { rowSelection }) => (rowSelection === 'multiple' ? null : 'headerCheckboxSelectionFilteredOnly is only supported with rowSelection=multiple'),\n },\n headerCheckboxSelectionCurrentPageOnly: {\n supportedRowModels: ['clientSide'],\n dependencies: (_options, { rowSelection }) => (rowSelection === 'multiple' ? null : 'headerCheckboxSelectionCurrentPageOnly is only supported with rowSelection=multiple'),\n },\n children: () => COL_DEF_VALIDATORS,\n};\nexport const COL_DEF_VALIDATORS = {\n objectName: 'colDef',\n allProperties: ColDefUtil.ALL_PROPERTIES,\n docsUrl: 'column-properties/',\n deprecations: COLUMN_DEFINITION_DEPRECATIONS,\n validations: COLUMN_DEFINITION_VALIDATIONS,\n};\n","import { ModuleNames } from '../../modules/moduleNames.mjs';\nimport { COL_DEF_VALIDATORS } from \"./colDefValidations.mjs\";\nimport { PropertyKeys } from \"../../propertyKeys.mjs\";\nimport { ComponentUtil } from \"../../components/componentUtil.mjs\";\n/**\n * Deprecations have been kept separately for ease of removing them in the future.\n *\n * If the property was simply renamed, use the `renamed` property. The value will be implicitly copied to the new property.\n */\nconst GRID_OPTION_DEPRECATIONS = {\n enableChartToolPanelsButton: { version: '29', message: 'The Chart Tool Panels button is now enabled by default. To hide the Chart Tool Panels button and display the hamburger button instead, set suppressChartToolPanelsButton=true.' },\n functionsPassive: { version: '29.2' },\n onColumnRowGroupChangeRequest: { version: '29.2' },\n onColumnPivotChangeRequest: { version: '29.2' },\n onColumnValueChangeRequest: { version: '29.2' },\n onColumnAggFuncChangeRequest: { version: '29.2' },\n serverSideFilterAllLevels: { version: '30', message: 'All server-side group levels are now filtered by default. This can be toggled using `serverSideOnlyRefreshFilteredGroups`.' },\n suppressAggAtRootLevel: { version: '30', message: 'The root level aggregation is now suppressed by default. This can be toggled using `alwaysAggregateAtRootLevel`.' },\n excludeHiddenColumnsFromQuickFilter: { version: '30', message: 'Hidden columns are now excluded from the Quick Filter by default. This can be toggled using `includeHiddenColumnsInQuickFilter`.' },\n enterMovesDown: { version: '30', renamed: 'enterNavigatesVertically' },\n enterMovesDownAfterEdit: { version: '30', renamed: 'enterNavigatesVerticallyAfterEdit' },\n suppressParentsInRowNodes: { version: '30.2', message: 'Using suppressParentsInRowNodes is no longer recommended. To serialize nodes it is now recommended to instead remove the parent node reference before serialization.' },\n advancedFilterModel: { version: '31', message: 'Use `initialState.filter.advancedFilterModel` instead.' },\n suppressAsyncEvents: { version: '31', message: 'Events should be handled asynchronously.' },\n cellFadeDelay: { version: '31.1', renamed: 'cellFadeDuration' },\n cellFlashDelay: { version: '31.1', renamed: 'cellFlashDuration' },\n suppressServerSideInfiniteScroll: { version: '31.1' },\n serverSideSortOnServer: { version: '31.1' },\n serverSideFilterOnServer: { version: '31.1' },\n};\n// Leave untyped. so it can be inferred.\nexport const GRID_OPTION_DEFAULTS = {\n suppressContextMenu: false,\n preventDefaultOnContextMenu: false,\n allowContextMenuWithControlKey: false,\n suppressMenuHide: false,\n enableBrowserTooltips: false,\n tooltipTrigger: 'hover',\n tooltipShowDelay: 2000,\n tooltipHideDelay: 10000,\n tooltipMouseTrack: false,\n tooltipInteraction: false,\n copyHeadersToClipboard: false,\n copyGroupHeadersToClipboard: false,\n clipboardDelimiter: '\\t',\n suppressCopyRowsToClipboard: false,\n suppressCopySingleCellRanges: false,\n suppressLastEmptyLineOnPaste: false,\n suppressClipboardPaste: false,\n suppressClipboardApi: false,\n suppressCutToClipboard: false,\n maintainColumnOrder: false,\n suppressFieldDotNotation: false,\n allowDragFromColumnsToolPanel: false,\n suppressMovableColumns: false,\n suppressColumnMoveAnimation: false,\n suppressDragLeaveHidesColumns: false,\n suppressRowGroupHidesColumns: false,\n suppressAutoSize: false,\n autoSizePadding: 20,\n skipHeaderOnAutoSize: false,\n singleClickEdit: false,\n suppressClickEdit: false,\n readOnlyEdit: false,\n stopEditingWhenCellsLoseFocus: false,\n enterNavigatesVertically: false,\n enterNavigatesVerticallyAfterEdit: false,\n enableCellEditingOnBackspace: false,\n undoRedoCellEditing: false,\n undoRedoCellEditingLimit: 10,\n suppressCsvExport: false,\n suppressExcelExport: false,\n cacheQuickFilter: false,\n includeHiddenColumnsInQuickFilter: false,\n excludeChildrenWhenTreeDataFiltering: false,\n enableAdvancedFilter: false,\n includeHiddenColumnsInAdvancedFilter: false,\n enableCharts: false,\n suppressChartToolPanelsButton: false,\n masterDetail: false,\n keepDetailRows: false,\n keepDetailRowsCount: 10,\n detailRowAutoHeight: false,\n tabIndex: 0,\n rowBuffer: 10,\n valueCache: false,\n valueCacheNeverExpires: false,\n enableCellExpressions: false,\n suppressTouch: false,\n suppressFocusAfterRefresh: false,\n suppressAsyncEvents: false,\n suppressBrowserResizeObserver: false,\n suppressPropertyNamesCheck: false,\n suppressChangeDetection: false,\n debug: false,\n suppressLoadingOverlay: false,\n suppressNoRowsOverlay: false,\n pagination: false,\n paginationPageSize: 100,\n paginationPageSizeSelector: true,\n paginationAutoPageSize: false,\n paginateChildRows: false,\n suppressPaginationPanel: false,\n pivotMode: false,\n pivotPanelShow: 'never',\n pivotDefaultExpanded: 0,\n pivotSuppressAutoColumn: false,\n suppressExpandablePivotGroups: false,\n functionsReadOnly: false,\n suppressAggFuncInHeader: false,\n alwaysAggregateAtRootLevel: false,\n aggregateOnlyChangedColumns: false,\n suppressAggFilteredOnly: false,\n removePivotHeaderRowWhenSingleValueColumn: false,\n animateRows: true,\n enableCellChangeFlash: false,\n cellFlashDelay: 500,\n cellFlashDuration: 500,\n cellFadeDelay: 1000,\n cellFadeDuration: 1000,\n allowShowChangeAfterFilter: false,\n domLayout: 'normal',\n ensureDomOrder: false,\n enableRtl: false,\n suppressColumnVirtualisation: false,\n suppressMaxRenderedRowRestriction: false,\n suppressRowVirtualisation: false,\n rowDragManaged: false,\n suppressRowDrag: false,\n suppressMoveWhenRowDragging: false,\n rowDragEntireRow: false,\n rowDragMultiRow: false,\n embedFullWidthRows: false,\n groupDisplayType: 'singleColumn',\n groupDefaultExpanded: 0,\n groupMaintainOrder: false,\n groupSelectsChildren: false,\n groupIncludeTotalFooter: false,\n groupSuppressBlankHeader: false,\n groupSelectsFiltered: false,\n showOpenedGroup: false,\n groupRemoveSingleChildren: false,\n groupRemoveLowestSingleChildren: false,\n groupHideOpenParents: false,\n groupAllowUnbalanced: false,\n rowGroupPanelShow: 'never',\n suppressMakeColumnVisibleAfterUnGroup: false,\n treeData: false,\n rowGroupPanelSuppressSort: false,\n suppressGroupRowsSticky: false,\n rowModelType: 'clientSide',\n asyncTransactionWaitMillis: 50,\n suppressModelUpdateAfterUpdateTransaction: false,\n cacheOverflowSize: 1,\n infiniteInitialRowCount: 1,\n serverSideInitialRowCount: 1,\n suppressServerSideInfiniteScroll: false,\n cacheBlockSize: 100,\n maxBlocksInCache: -1,\n maxConcurrentDatasourceRequests: 2,\n blockLoadDebounceMillis: 0,\n purgeClosedRowNodes: false,\n serverSideSortAllLevels: false,\n serverSideOnlyRefreshFilteredGroups: false,\n serverSideSortOnServer: false,\n serverSideFilterOnServer: false,\n serverSidePivotResultFieldSeparator: '_',\n viewportRowModelPageSize: 5,\n viewportRowModelBufferSize: 5,\n alwaysShowHorizontalScroll: false,\n alwaysShowVerticalScroll: false,\n debounceVerticalScrollbar: false,\n suppressHorizontalScroll: false,\n suppressScrollOnNewData: false,\n suppressScrollWhenPopupsAreOpen: false,\n suppressAnimationFrame: false,\n suppressMiddleClickScrolls: false,\n suppressPreventDefaultOnMouseWheel: false,\n rowMultiSelectWithClick: false,\n suppressRowDeselection: false,\n suppressRowClickSelection: false,\n suppressCellFocus: false,\n suppressHeaderFocus: false,\n suppressMultiRangeSelection: false,\n enableCellTextSelection: false,\n enableRangeSelection: false,\n enableRangeHandle: false,\n enableFillHandle: false,\n fillHandleDirection: 'xy',\n suppressClearOnFillReduction: false,\n accentedSort: false,\n unSortIcon: false,\n suppressMultiSort: false,\n alwaysMultiSort: false,\n suppressMaintainUnsortedOrder: false,\n suppressRowHoverHighlight: false,\n suppressRowTransform: false,\n columnHoverHighlight: false,\n deltaSort: false,\n enableGroupEdit: false,\n suppressGroupMaintainValueType: false,\n functionsPassive: false,\n groupLockGroupColumns: 0,\n serverSideEnableClientSideSort: false,\n};\n/**\n * Used simply to type check the default grid options.\n * Done here to allow inference of the above type, for gridOptionsService.get to infer where defaults exist.\n */\nconst GRID_OPTIONS_DEFAULT_ASSERTION = GRID_OPTION_DEFAULTS;\n/**\n * Validation rules for gridOptions\n */\nconst GRID_OPTION_VALIDATIONS = {\n sideBar: { module: ModuleNames.SideBarModule },\n statusBar: { module: ModuleNames.StatusBarModule },\n enableCharts: { module: ModuleNames.GridChartsModule },\n getMainMenuItems: { module: ModuleNames.MenuModule },\n getContextMenuItems: { module: ModuleNames.MenuModule },\n allowContextMenuWithControlKey: { module: ModuleNames.MenuModule },\n enableAdvancedFilter: { module: ModuleNames.AdvancedFilterModule },\n treeData: {\n supportedRowModels: ['clientSide', 'serverSide'],\n module: ModuleNames.RowGroupingModule,\n dependencies: (options) => {\n var _a;\n const rowModel = (_a = options.rowModelType) !== null && _a !== void 0 ? _a : 'clientSide';\n switch (rowModel) {\n case 'clientSide':\n const csrmWarning = `treeData requires 'getDataPath' in the ${rowModel} row model.`;\n return options.getDataPath ? null : csrmWarning;\n case 'serverSide':\n const ssrmWarning = `treeData requires 'isServerSideGroup' and 'getServerSideGroupKey' in the ${rowModel} row model.`;\n return options.isServerSideGroup && options.getServerSideGroupKey ? null : ssrmWarning;\n }\n return null;\n },\n },\n masterDetail: { module: ModuleNames.MasterDetailModule },\n enableRangeSelection: { module: ModuleNames.RangeSelectionModule },\n enableRangeHandle: {\n dependencies: {\n enableRangeSelection: [true],\n }\n },\n enableFillHandle: {\n dependencies: {\n enableRangeSelection: [true],\n }\n },\n groupDefaultExpanded: {\n supportedRowModels: ['clientSide'],\n },\n groupIncludeFooter: {\n supportedRowModels: ['clientSide', 'serverSide'],\n dependencies: (options) => {\n var _a;\n const rowModel = (_a = options.rowModelType) !== null && _a !== void 0 ? _a : 'clientSide';\n switch (rowModel) {\n case 'clientSide':\n return null;\n case 'serverSide':\n const warning = 'groupIncludeFooter is not supported alongside suppressServerSideInfiniteScroll';\n return options.suppressServerSideInfiniteScroll ? warning : null;\n }\n return null;\n },\n },\n groupIncludeTotalFooter: {\n supportedRowModels: ['clientSide'],\n },\n groupRemoveSingleChildren: {\n dependencies: {\n groupHideOpenParents: [undefined, false],\n groupRemoveLowestSingleChildren: [undefined, false],\n }\n },\n groupRemoveLowestSingleChildren: {\n dependencies: {\n groupHideOpenParents: [undefined, false],\n groupRemoveSingleChildren: [undefined, false],\n }\n },\n groupSelectsChildren: {\n dependencies: {\n rowSelection: ['multiple'],\n }\n },\n suppressParentsInRowNodes: {\n dependencies: {\n groupSelectsChildren: [undefined, false],\n },\n },\n viewportDatasource: {\n supportedRowModels: ['viewport'],\n module: ModuleNames.ViewportRowModelModule,\n },\n serverSideDatasource: {\n supportedRowModels: ['serverSide'],\n module: ModuleNames.ServerSideRowModelModule,\n },\n cacheBlockSize: {\n supportedRowModels: ['serverSide', 'infinite'],\n },\n datasource: {\n supportedRowModels: ['infinite'],\n module: ModuleNames.InfiniteRowModelModule,\n },\n rowData: {\n supportedRowModels: ['clientSide'],\n module: ModuleNames.ClientSideRowModelModule,\n },\n columnDefs: () => COL_DEF_VALIDATORS,\n defaultColDef: () => COL_DEF_VALIDATORS,\n defaultColGroupDef: () => COL_DEF_VALIDATORS,\n autoGroupColumnDef: () => COL_DEF_VALIDATORS,\n};\nexport const GRID_OPTIONS_VALIDATORS = {\n objectName: 'gridOptions',\n allProperties: [\n ...PropertyKeys.ALL_PROPERTIES,\n ...ComponentUtil.EVENT_CALLBACKS,\n ],\n propertyExceptions: ['api', 'columnApi'],\n docsUrl: 'grid-options/',\n deprecations: GRID_OPTION_DEPRECATIONS,\n validations: GRID_OPTION_VALIDATIONS,\n};\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar GridOptionsService_1;\nimport { ColumnApi } from \"./columns/columnApi.mjs\";\nimport { ComponentUtil } from \"./components/componentUtil.mjs\";\nimport { Autowired, Bean, PostConstruct, PreDestroy } from \"./context/context.mjs\";\nimport { Events } from \"./events.mjs\";\nimport { EventService } from \"./eventService.mjs\";\nimport { INITIAL_GRID_OPTION_KEYS, PropertyKeys } from \"./propertyKeys.mjs\";\nimport { warnOnce } from \"./utils/function.mjs\";\nimport { exists, missing } from \"./utils/generic.mjs\";\nimport { getScrollbarWidth } from './utils/browser.mjs';\nimport { GRID_OPTION_DEFAULTS } from \"./validation/rules/gridOptionsValidations.mjs\";\nlet GridOptionsService = GridOptionsService_1 = class GridOptionsService {\n constructor() {\n this.destroyed = false;\n this.domDataKey = '__AG_' + Math.random().toString();\n this.propertyEventService = new EventService();\n // responsible for calling the onXXX functions on gridOptions\n // It forces events defined in GridOptionsService.alwaysSyncGlobalEvents to be fired synchronously.\n // This is required for events such as GridPreDestroyed.\n // Other events can be fired asynchronously or synchronously depending on config.\n this.globalEventHandlerFactory = (restrictToSyncOnly) => {\n return (eventName, event) => {\n // prevent events from being fired _after_ the grid has been destroyed\n if (this.destroyed) {\n return;\n }\n const alwaysSync = GridOptionsService_1.alwaysSyncGlobalEvents.has(eventName);\n if ((alwaysSync && !restrictToSyncOnly) || (!alwaysSync && restrictToSyncOnly)) {\n return;\n }\n const eventHandlerName = ComponentUtil.getCallbackForEvent(eventName);\n const eventHandler = this.gridOptions[eventHandlerName];\n if (typeof eventHandler === 'function') {\n this.frameworkOverrides.wrapOutgoing(() => {\n eventHandler(event);\n });\n }\n };\n };\n }\n // This is quicker then having code call gridOptionsService.get('context')\n get context() {\n return this.gridOptions['context'];\n }\n init() {\n this.columnApi = new ColumnApi(this.api);\n const async = !this.get('suppressAsyncEvents');\n this.eventService.addGlobalListener(this.globalEventHandlerFactory().bind(this), async);\n this.eventService.addGlobalListener(this.globalEventHandlerFactory(true).bind(this), false);\n // Ensure the propertyEventService has framework overrides set so that it can fire events outside of angular\n this.propertyEventService.setFrameworkOverrides(this.frameworkOverrides);\n // sets an initial calculation for the scrollbar width\n this.getScrollbarWidth();\n }\n destroy() {\n this.destroyed = true;\n this.columnApi = undefined;\n }\n /**\n * Get the raw value of the GridOptions property provided.\n * @param property\n */\n get(property) {\n var _a;\n return (_a = this.gridOptions[property]) !== null && _a !== void 0 ? _a : GRID_OPTION_DEFAULTS[property];\n }\n /**\n * Get the GridOption callback but wrapped so that the common params of api,columnApi and context are automatically applied to the params.\n * @param property GridOption callback properties based on the fact that this property has a callback with params extending AgGridCommon\n */\n getCallback(property) {\n return this.mergeGridCommonParams(this.gridOptions[property]);\n }\n /**\n * Returns `true` if a value has been specified for this GridOption.\n * @param property GridOption property\n */\n exists(property) {\n return exists(this.gridOptions[property]);\n }\n /**\n * Wrap the user callback and attach the api, columnApi and context to the params object on the way through.\n * @param callback User provided callback\n * @returns Wrapped callback where the params object not require api, columnApi and context\n */\n mergeGridCommonParams(callback) {\n if (callback) {\n const wrapped = (callbackParams) => {\n const mergedParams = callbackParams;\n mergedParams.api = this.api;\n mergedParams.columnApi = this.columnApi;\n mergedParams.context = this.context;\n return callback(mergedParams);\n };\n return wrapped;\n }\n return callback;\n }\n static toBoolean(value) {\n if (typeof value === 'boolean') {\n return value;\n }\n if (typeof value === 'string') {\n // for boolean, compare to empty String to allow attributes appearing with\n // no value to be treated as 'true'\n return value.toUpperCase() === 'TRUE' || value == '';\n }\n return false;\n }\n static toNumber(value) {\n if (typeof value === 'number') {\n return value;\n }\n if (typeof value === 'string') {\n const parsed = parseInt(value);\n if (isNaN(parsed)) {\n return undefined;\n }\n return parsed;\n }\n return undefined;\n }\n static toConstrainedNum(min, max) {\n return (value) => {\n const num = GridOptionsService_1.toNumber(value);\n if (num == null || num < min || num > max) {\n return undefined; // return undefined if outside bounds, this will then be coerced to the default value.\n }\n return num;\n };\n }\n static getCoercedValue(key, value) {\n const coerceFunc = GridOptionsService_1.PROPERTY_COERCIONS.get(key);\n if (!coerceFunc) {\n return value;\n }\n return coerceFunc(value);\n }\n static getCoercedGridOptions(gridOptions) {\n const newGo = {};\n Object.entries(gridOptions).forEach(([key, value]) => {\n const coercedValue = GridOptionsService_1.getCoercedValue(key, value);\n newGo[key] = coercedValue;\n });\n return newGo;\n }\n updateGridOptions({ options, source = 'api' }) {\n const changeSet = { id: GridOptionsService_1.changeSetId++, properties: [] };\n // all events are fired after grid options has finished updating.\n const events = [];\n Object.entries(options).forEach(([key, value]) => {\n if (source === 'api' && INITIAL_GRID_OPTION_KEYS[key]) {\n warnOnce(`${key} is an initial property and cannot be updated.`);\n }\n const coercedValue = GridOptionsService_1.getCoercedValue(key, value);\n const shouldForce = (typeof coercedValue) === 'object' && source === 'api'; // force objects as they could have been mutated.\n const previousValue = this.gridOptions[key];\n if (shouldForce || previousValue !== coercedValue) {\n this.gridOptions[key] = coercedValue;\n const event = {\n type: key,\n currentValue: coercedValue,\n previousValue,\n changeSet,\n source\n };\n events.push(event);\n }\n });\n this.validationService.processGridOptions(this.gridOptions);\n // changeSet should just include the properties that have changed.\n changeSet.properties = events.map(event => event.type);\n events.forEach(event => {\n if (this.gridOptions.debug) {\n console.log(`AG Grid: Updated property ${event.type} from `, event.previousValue, ' to ', event.currentValue);\n }\n this.propertyEventService.dispatchEvent(event);\n });\n }\n addEventListener(key, listener) {\n this.propertyEventService.addEventListener(key, listener);\n }\n removeEventListener(key, listener) {\n this.propertyEventService.removeEventListener(key, listener);\n }\n // *************** Helper methods ************************** //\n // Methods to share common GridOptions related logic that goes above accessing a single property\n // the user might be using some non-standard scrollbar, eg a scrollbar that has zero\n // width and overlays (like the Safari scrollbar, but presented in Chrome). so we\n // allow the user to provide the scroll width before we work it out.\n getScrollbarWidth() {\n if (this.scrollbarWidth == null) {\n const useGridOptions = typeof this.gridOptions.scrollbarWidth === 'number' && this.gridOptions.scrollbarWidth >= 0;\n const scrollbarWidth = useGridOptions ? this.gridOptions.scrollbarWidth : getScrollbarWidth();\n if (scrollbarWidth != null) {\n this.scrollbarWidth = scrollbarWidth;\n this.eventService.dispatchEvent({\n type: Events.EVENT_SCROLLBAR_WIDTH_CHANGED\n });\n }\n }\n return this.scrollbarWidth;\n }\n isRowModelType(rowModelType) {\n return this.gridOptions.rowModelType === rowModelType ||\n (rowModelType === 'clientSide' && missing(this.gridOptions.rowModelType));\n }\n isDomLayout(domLayout) {\n var _a;\n const gridLayout = (_a = this.gridOptions.domLayout) !== null && _a !== void 0 ? _a : 'normal';\n return gridLayout === domLayout;\n }\n isRowSelection() {\n return this.gridOptions.rowSelection === 'single' || this.gridOptions.rowSelection === 'multiple';\n }\n useAsyncEvents() {\n return !this.get('suppressAsyncEvents');\n }\n isGetRowHeightFunction() {\n return typeof this.gridOptions.getRowHeight === 'function';\n }\n getRowHeightForNode(rowNode, allowEstimate = false, defaultRowHeight) {\n if (defaultRowHeight == null) {\n defaultRowHeight = this.environment.getDefaultRowHeight();\n }\n // check the function first, in case use set both function and\n // number, when using virtual pagination then function can be\n // used for pinned rows and the number for the body rows.\n if (this.isGetRowHeightFunction()) {\n if (allowEstimate) {\n return { height: defaultRowHeight, estimated: true };\n }\n const params = {\n node: rowNode,\n data: rowNode.data\n };\n const height = this.getCallback('getRowHeight')(params);\n if (this.isNumeric(height)) {\n if (height === 0) {\n warnOnce('The return of `getRowHeight` cannot be zero. If the intention is to hide rows, use a filter instead.');\n }\n return { height: Math.max(1, height), estimated: false };\n }\n }\n if (rowNode.detail && this.get('masterDetail')) {\n return this.getMasterDetailRowHeight();\n }\n const rowHeight = this.gridOptions.rowHeight && this.isNumeric(this.gridOptions.rowHeight) ? this.gridOptions.rowHeight : defaultRowHeight;\n return { height: rowHeight, estimated: false };\n }\n getMasterDetailRowHeight() {\n // if autoHeight, we want the height to grow to the new height starting at 1, as otherwise a flicker would happen,\n // as the detail goes to the default (eg 200px) and then immediately shrink up/down to the new measured height\n // (due to auto height) which looks bad, especially if doing row animation.\n if (this.get('detailRowAutoHeight')) {\n return { height: 1, estimated: false };\n }\n if (this.isNumeric(this.gridOptions.detailRowHeight)) {\n return { height: this.gridOptions.detailRowHeight, estimated: false };\n }\n return { height: 300, estimated: false };\n }\n // we don't allow dynamic row height for virtual paging\n getRowHeightAsNumber() {\n if (!this.gridOptions.rowHeight || missing(this.gridOptions.rowHeight)) {\n return this.environment.getDefaultRowHeight();\n }\n const rowHeight = this.environment.refreshRowHeightVariable();\n if (rowHeight !== -1) {\n return rowHeight;\n }\n console.warn('AG Grid row height must be a number if not using standard row model');\n return this.environment.getDefaultRowHeight();\n }\n isNumeric(value) {\n return !isNaN(value) && typeof value === 'number' && isFinite(value);\n }\n getDomDataKey() {\n return this.domDataKey;\n }\n // returns the dom data, or undefined if not found\n getDomData(element, key) {\n const domData = element[this.getDomDataKey()];\n return domData ? domData[key] : undefined;\n }\n setDomData(element, key, value) {\n const domDataKey = this.getDomDataKey();\n let domData = element[domDataKey];\n if (missing(domData)) {\n domData = {};\n element[domDataKey] = domData;\n }\n domData[key] = value;\n }\n getDocument() {\n // if user is providing document, we use the users one,\n // otherwise we use the document on the global namespace.\n let result = null;\n if (this.gridOptions.getDocument && exists(this.gridOptions.getDocument)) {\n result = this.gridOptions.getDocument();\n }\n else if (this.eGridDiv) {\n result = this.eGridDiv.ownerDocument;\n }\n if (result && exists(result)) {\n return result;\n }\n return document;\n }\n getWindow() {\n const eDocument = this.getDocument();\n return eDocument.defaultView || window;\n }\n getRootNode() {\n return this.eGridDiv.getRootNode();\n }\n getAsyncTransactionWaitMillis() {\n return exists(this.gridOptions.asyncTransactionWaitMillis) ? this.gridOptions.asyncTransactionWaitMillis : 50;\n }\n isAnimateRows() {\n // never allow animating if enforcing the row order\n if (this.get('ensureDomOrder')) {\n return false;\n }\n return this.get('animateRows');\n }\n isGroupRowsSticky() {\n if (this.get('suppressGroupRowsSticky') ||\n this.get('paginateChildRows') ||\n this.get('groupHideOpenParents') ||\n this.isDomLayout('print')) {\n return false;\n }\n return true;\n }\n isColumnsSortingCoupledToGroup() {\n const autoGroupColumnDef = this.gridOptions.autoGroupColumnDef;\n return !(autoGroupColumnDef === null || autoGroupColumnDef === void 0 ? void 0 : autoGroupColumnDef.comparator) && !this.get('treeData');\n }\n getGroupAggFiltering() {\n const userValue = this.gridOptions.groupAggFiltering;\n if (typeof userValue === 'function') {\n return this.getCallback('groupAggFiltering');\n }\n if (userValue === true) {\n return () => true;\n }\n return undefined;\n }\n isGroupIncludeFooterTrueOrCallback() {\n const userValue = this.gridOptions.groupIncludeFooter;\n return userValue === true || typeof userValue === 'function';\n }\n getGroupIncludeFooter() {\n const userValue = this.gridOptions.groupIncludeFooter;\n if (typeof userValue === 'function') {\n return this.getCallback('groupIncludeFooter');\n }\n if (userValue === true) {\n return () => true;\n }\n return () => false;\n }\n isGroupMultiAutoColumn() {\n if (this.gridOptions.groupDisplayType) {\n return this.gridOptions.groupDisplayType === 'multipleColumns';\n }\n // if we are doing hideOpenParents we also show multiple columns, otherwise hideOpenParents would not work\n return this.get('groupHideOpenParents');\n }\n isGroupUseEntireRow(pivotMode) {\n // we never allow groupDisplayType = 'groupRows' if in pivot mode, otherwise we won't see the pivot values.\n if (pivotMode) {\n return false;\n }\n return this.gridOptions.groupDisplayType === 'groupRows';\n }\n getGridCommonParams() {\n return {\n api: this.api,\n columnApi: this.columnApi,\n context: this.context\n };\n }\n addGridCommonParams(params) {\n const updatedParams = params;\n updatedParams.api = this.api;\n updatedParams.columnApi = this.columnApi;\n updatedParams.context = this.context;\n return updatedParams;\n }\n};\nGridOptionsService.alwaysSyncGlobalEvents = new Set([Events.EVENT_GRID_PRE_DESTROYED]);\n/**\n * Handles value coercion including validation of ranges etc. If value is invalid, undefined is set, allowing default to be used.\n */\nGridOptionsService.PROPERTY_COERCIONS = new Map([\n ...PropertyKeys.BOOLEAN_PROPERTIES.map(key => [key, GridOptionsService_1.toBoolean]),\n ...PropertyKeys.NUMBER_PROPERTIES.map(key => [key, GridOptionsService_1.toNumber]),\n ['groupAggFiltering', (val) => typeof val === 'function' ? val : GridOptionsService_1.toBoolean(val)],\n ['pageSize', GridOptionsService_1.toConstrainedNum(1, Number.MAX_VALUE)],\n ['autoSizePadding', GridOptionsService_1.toConstrainedNum(0, Number.MAX_VALUE)],\n ['keepDetailRowsCount', GridOptionsService_1.toConstrainedNum(1, Number.MAX_VALUE)],\n ['rowBuffer', GridOptionsService_1.toConstrainedNum(0, Number.MAX_VALUE)],\n ['infiniteInitialRowCount', GridOptionsService_1.toConstrainedNum(1, Number.MAX_VALUE)],\n ['cacheOverflowSize', GridOptionsService_1.toConstrainedNum(1, Number.MAX_VALUE)],\n ['cacheBlockSize', GridOptionsService_1.toConstrainedNum(1, Number.MAX_VALUE)],\n ['serverSideInitialRowCount', GridOptionsService_1.toConstrainedNum(1, Number.MAX_VALUE)],\n ['viewportRowModelPageSize', GridOptionsService_1.toConstrainedNum(1, Number.MAX_VALUE)],\n ['viewportRowModelBufferSize', GridOptionsService_1.toConstrainedNum(0, Number.MAX_VALUE)],\n]);\nGridOptionsService.changeSetId = 0;\n__decorate([\n Autowired('gridOptions')\n], GridOptionsService.prototype, \"gridOptions\", void 0);\n__decorate([\n Autowired('eventService')\n], GridOptionsService.prototype, \"eventService\", void 0);\n__decorate([\n Autowired('environment')\n], GridOptionsService.prototype, \"environment\", void 0);\n__decorate([\n Autowired('frameworkOverrides')\n], GridOptionsService.prototype, \"frameworkOverrides\", void 0);\n__decorate([\n Autowired('eGridDiv')\n], GridOptionsService.prototype, \"eGridDiv\", void 0);\n__decorate([\n Autowired('validationService')\n], GridOptionsService.prototype, \"validationService\", void 0);\n__decorate([\n Autowired('gridApi')\n], GridOptionsService.prototype, \"api\", void 0);\n__decorate([\n PostConstruct\n], GridOptionsService.prototype, \"init\", null);\n__decorate([\n PreDestroy\n], GridOptionsService.prototype, \"destroy\", null);\nGridOptionsService = GridOptionsService_1 = __decorate([\n Bean('gridOptionsService')\n], GridOptionsService);\nexport { GridOptionsService };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Bean } from \"./context/context.mjs\";\nimport { BeanStub } from \"./context/beanStub.mjs\";\nlet LocaleService = class LocaleService extends BeanStub {\n getLocaleTextFunc() {\n const getLocaleText = this.gridOptionsService.getCallback('getLocaleText');\n if (getLocaleText) {\n //key: string, defaultValue: string, variableValues?: string[]\n return (key, defaultValue, variableValues) => {\n const params = {\n key,\n defaultValue,\n variableValues\n };\n return getLocaleText(params);\n };\n }\n const localeText = this.gridOptionsService.get('localeText');\n return (key, defaultValue, variableValues) => {\n let localisedText = localeText && localeText[key];\n if (localisedText && variableValues && variableValues.length) {\n let found = 0;\n while (true) {\n if (found >= variableValues.length) {\n break;\n }\n const idx = localisedText.indexOf('${variable}');\n if (idx === -1) {\n break;\n }\n localisedText = localisedText.replace('${variable}', variableValues[found++]);\n }\n }\n return localisedText !== null && localisedText !== void 0 ? localisedText : defaultValue;\n };\n }\n};\nLocaleService = __decorate([\n Bean('localeService')\n], LocaleService);\nexport { LocaleService };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { PostConstruct } from \"../context/context.mjs\";\nimport { AbstractFakeScrollComp } from \"./abstractFakeScrollComp.mjs\";\nimport { isVisible, setFixedWidth } from \"../utils/dom.mjs\";\nimport { SetHeightFeature } from \"./rowContainer/setHeightFeature.mjs\";\nimport { Events } from \"../eventKeys.mjs\";\nexport class FakeVScrollComp extends AbstractFakeScrollComp {\n constructor() {\n super(FakeVScrollComp.TEMPLATE, 'vertical');\n }\n postConstruct() {\n super.postConstruct();\n this.createManagedBean(new SetHeightFeature(this.eContainer));\n this.ctrlsService.registerFakeVScrollComp(this);\n this.addManagedListener(this.eventService, Events.EVENT_ROW_CONTAINER_HEIGHT_CHANGED, this.onRowContainerHeightChanged.bind(this));\n }\n setScrollVisible() {\n const vScrollShowing = this.scrollVisibleService.isVerticalScrollShowing();\n const invisibleScrollbar = this.invisibleScrollbar;\n const scrollbarWidth = vScrollShowing ? (this.gridOptionsService.getScrollbarWidth() || 0) : 0;\n const adjustedScrollbarWidth = (scrollbarWidth === 0 && invisibleScrollbar) ? 16 : scrollbarWidth;\n this.addOrRemoveCssClass('ag-scrollbar-invisible', invisibleScrollbar);\n setFixedWidth(this.getGui(), adjustedScrollbarWidth);\n setFixedWidth(this.eViewport, adjustedScrollbarWidth);\n setFixedWidth(this.eContainer, adjustedScrollbarWidth);\n this.setDisplayed(vScrollShowing, { skipAriaHidden: true });\n }\n onRowContainerHeightChanged() {\n const { ctrlsService } = this;\n const gridBodyCtrl = ctrlsService.getGridBodyCtrl();\n const gridBodyViewportEl = gridBodyCtrl.getBodyViewportElement();\n const eViewportScrollTop = this.getScrollPosition();\n const gridBodyViewportScrollTop = gridBodyViewportEl.scrollTop;\n if (eViewportScrollTop != gridBodyViewportScrollTop) {\n this.setScrollPosition(gridBodyViewportScrollTop, true);\n }\n }\n getScrollPosition() {\n return this.getViewport().scrollTop;\n }\n setScrollPosition(value, force) {\n if (!force && !isVisible(this.getViewport())) {\n this.attemptSettingScrollPosition(value);\n }\n this.getViewport().scrollTop = value;\n }\n}\nFakeVScrollComp.TEMPLATE = `
\n
\n
\n
\n
`;\n__decorate([\n PostConstruct\n], FakeVScrollComp.prototype, \"postConstruct\", null);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Autowired, Bean, PostConstruct } from '../context/context.mjs';\nimport { BeanStub } from '../context/beanStub.mjs';\nimport { Events } from '../eventKeys.mjs';\nimport { convertSourceType } from './columnModel.mjs';\nimport { getValueUsingField } from '../utils/object.mjs';\nimport { ModuleRegistry } from '../modules/moduleRegistry.mjs';\nimport { ModuleNames } from '../modules/moduleNames.mjs';\nimport { Column } from '../entities/column.mjs';\nimport { warnOnce } from '../utils/function.mjs';\nimport { KeyCode } from '../constants/keyCode.mjs';\nimport { exists, toStringOrNull } from '../utils/generic.mjs';\nimport { parseDateTimeFromString, serialiseDate } from '../utils/date.mjs';\nconst MONTH_LOCALE_TEXT = {\n january: 'January',\n february: 'February',\n march: 'March',\n april: 'April',\n may: 'May',\n june: 'June',\n july: 'July',\n august: 'August',\n september: 'September',\n october: 'October',\n november: 'November',\n december: 'December'\n};\nconst MONTH_KEYS = ['january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december'];\nlet DataTypeService = class DataTypeService extends BeanStub {\n constructor() {\n super(...arguments);\n this.dataTypeDefinitions = {};\n this.isWaitingForRowData = false;\n this.isColumnTypeOverrideInDataTypeDefinitions = false;\n // keep track of any column state updates whilst waiting for data types to be inferred\n this.columnStateUpdatesPendingInference = {};\n this.columnStateUpdateListenerDestroyFuncs = [];\n }\n init() {\n this.groupHideOpenParents = this.gridOptionsService.get('groupHideOpenParents');\n this.addManagedPropertyListener('groupHideOpenParents', () => {\n this.groupHideOpenParents = this.gridOptionsService.get('groupHideOpenParents');\n });\n this.processDataTypeDefinitions();\n this.addManagedPropertyListener('dataTypeDefinitions', (event) => {\n this.processDataTypeDefinitions();\n this.columnModel.recreateColumnDefs(convertSourceType(event.source));\n });\n }\n processDataTypeDefinitions() {\n var _a;\n const defaultDataTypes = this.getDefaultDataTypes();\n this.dataTypeDefinitions = {};\n Object.entries(defaultDataTypes).forEach(([cellDataType, dataTypeDefinition]) => {\n this.dataTypeDefinitions[cellDataType] = Object.assign(Object.assign({}, dataTypeDefinition), { groupSafeValueFormatter: this.createGroupSafeValueFormatter(dataTypeDefinition) });\n });\n const dataTypeDefinitions = (_a = this.gridOptionsService.get('dataTypeDefinitions')) !== null && _a !== void 0 ? _a : {};\n this.dataTypeMatchers = {};\n Object.entries(dataTypeDefinitions).forEach(([cellDataType, dataTypeDefinition]) => {\n const mergedDataTypeDefinition = this.processDataTypeDefinition(dataTypeDefinition, dataTypeDefinitions, [cellDataType], defaultDataTypes);\n if (mergedDataTypeDefinition) {\n this.dataTypeDefinitions[cellDataType] = mergedDataTypeDefinition;\n if (dataTypeDefinition.dataTypeMatcher) {\n this.dataTypeMatchers[cellDataType] = dataTypeDefinition.dataTypeMatcher;\n }\n }\n });\n this.checkObjectValueHandlers(defaultDataTypes);\n ['dateString', 'text', 'number', 'boolean', 'date'].forEach((cellDataType) => {\n const overriddenDataTypeMatcher = this.dataTypeMatchers[cellDataType];\n if (overriddenDataTypeMatcher) {\n // remove to maintain correct ordering\n delete this.dataTypeMatchers[cellDataType];\n }\n this.dataTypeMatchers[cellDataType] = overriddenDataTypeMatcher !== null && overriddenDataTypeMatcher !== void 0 ? overriddenDataTypeMatcher : defaultDataTypes[cellDataType].dataTypeMatcher;\n });\n }\n mergeDataTypeDefinitions(parentDataTypeDefinition, childDataTypeDefinition) {\n const mergedDataTypeDefinition = Object.assign(Object.assign({}, parentDataTypeDefinition), childDataTypeDefinition);\n if (parentDataTypeDefinition.columnTypes &&\n childDataTypeDefinition.columnTypes &&\n childDataTypeDefinition.appendColumnTypes) {\n mergedDataTypeDefinition.columnTypes = [\n ...this.convertColumnTypes(parentDataTypeDefinition.columnTypes),\n ...this.convertColumnTypes(childDataTypeDefinition.columnTypes),\n ];\n }\n return mergedDataTypeDefinition;\n }\n processDataTypeDefinition(dataTypeDefinition, dataTypeDefinitions, alreadyProcessedDataTypes, defaultDataTypes) {\n let mergedDataTypeDefinition;\n const extendsCellDataType = dataTypeDefinition.extendsDataType;\n if (dataTypeDefinition.columnTypes) {\n this.isColumnTypeOverrideInDataTypeDefinitions = true;\n }\n if (dataTypeDefinition.extendsDataType === dataTypeDefinition.baseDataType) {\n let baseDataTypeDefinition = defaultDataTypes[extendsCellDataType];\n const overriddenBaseDataTypeDefinition = dataTypeDefinitions[extendsCellDataType];\n if (baseDataTypeDefinition && overriddenBaseDataTypeDefinition) {\n // only if it's valid do we override with a provided one\n baseDataTypeDefinition = overriddenBaseDataTypeDefinition;\n }\n if (!this.validateDataTypeDefinition(dataTypeDefinition, baseDataTypeDefinition, extendsCellDataType)) {\n return undefined;\n }\n mergedDataTypeDefinition = this.mergeDataTypeDefinitions(baseDataTypeDefinition, dataTypeDefinition);\n }\n else {\n if (alreadyProcessedDataTypes.includes(extendsCellDataType)) {\n warnOnce('Data type definition hierarchies (via the \"extendsDataType\" property) cannot contain circular references.');\n return undefined;\n }\n const extendedDataTypeDefinition = dataTypeDefinitions[extendsCellDataType];\n if (!this.validateDataTypeDefinition(dataTypeDefinition, extendedDataTypeDefinition, extendsCellDataType)) {\n return undefined;\n }\n const mergedExtendedDataTypeDefinition = this.processDataTypeDefinition(extendedDataTypeDefinition, dataTypeDefinitions, [...alreadyProcessedDataTypes, extendsCellDataType], defaultDataTypes);\n if (!mergedExtendedDataTypeDefinition) {\n return undefined;\n }\n mergedDataTypeDefinition = this.mergeDataTypeDefinitions(mergedExtendedDataTypeDefinition, dataTypeDefinition);\n }\n return Object.assign(Object.assign({}, mergedDataTypeDefinition), { groupSafeValueFormatter: this.createGroupSafeValueFormatter(mergedDataTypeDefinition) });\n }\n validateDataTypeDefinition(dataTypeDefinition, parentDataTypeDefinition, parentCellDataType) {\n if (!parentDataTypeDefinition) {\n warnOnce(`The data type definition ${parentCellDataType} does not exist.`);\n return false;\n }\n if (parentDataTypeDefinition.baseDataType !== dataTypeDefinition.baseDataType) {\n warnOnce('The \"baseDataType\" property of a data type definition must match that of its parent.');\n return false;\n }\n return true;\n }\n createGroupSafeValueFormatter(dataTypeDefinition) {\n if (!dataTypeDefinition.valueFormatter) {\n return undefined;\n }\n return (params) => {\n var _a, _b;\n if ((_a = params.node) === null || _a === void 0 ? void 0 : _a.group) {\n const aggFunc = params.column.getAggFunc();\n if (aggFunc) {\n // the resulting type of these will be the same, so we call valueFormatter anyway\n if (aggFunc === 'first' || aggFunc === 'last') {\n return dataTypeDefinition.valueFormatter(params);\n }\n if (dataTypeDefinition.baseDataType === 'number' && aggFunc !== 'count') {\n if (typeof params.value === 'number') {\n return dataTypeDefinition.valueFormatter(params);\n }\n if (typeof params.value === 'object') {\n if (!params.value) {\n return undefined;\n }\n if ('toNumber' in params.value) {\n return dataTypeDefinition.valueFormatter(Object.assign(Object.assign({}, params), { value: params.value.toNumber() }));\n }\n if ('value' in params.value) {\n return dataTypeDefinition.valueFormatter(Object.assign(Object.assign({}, params), { value: params.value.value }));\n }\n }\n }\n }\n // we don't want to double format the value\n // as this is already formatted by using the valueFormatter as the keyCreator\n if (!this.gridOptionsService.get('suppressGroupMaintainValueType')) {\n return undefined;\n }\n }\n else if (this.groupHideOpenParents && params.column.isRowGroupActive()) {\n // `groupHideOpenParents` passes leaf values in the group column, so need to format still.\n // If it's not a string, we know it hasn't been formatted. Otherwise check the data type matcher.\n if (typeof params.value !== 'string' || ((_b = dataTypeDefinition.dataTypeMatcher) === null || _b === void 0 ? void 0 : _b.call(dataTypeDefinition, params.value))) {\n return dataTypeDefinition.valueFormatter(params);\n }\n // we don't want to double format the value\n // as this is already formatted by using the valueFormatter as the keyCreator\n if (!this.gridOptionsService.get('suppressGroupMaintainValueType')) {\n return undefined;\n }\n }\n return dataTypeDefinition.valueFormatter(params);\n };\n }\n updateColDefAndGetDataTypeDefinitionColumnType(colDef, userColDef, colId) {\n let { cellDataType } = userColDef;\n const { field } = userColDef;\n if (cellDataType === undefined) {\n cellDataType = colDef.cellDataType;\n }\n if ((cellDataType == null || cellDataType === true)) {\n cellDataType = this.canInferCellDataType(colDef, userColDef) ? this.inferCellDataType(field, colId) : false;\n }\n if (!cellDataType) {\n colDef.cellDataType = false;\n return undefined;\n }\n const dataTypeDefinition = this.dataTypeDefinitions[cellDataType];\n if (!dataTypeDefinition) {\n warnOnce(`Missing data type definition - \"${cellDataType}\"`);\n return undefined;\n }\n colDef.cellDataType = cellDataType;\n if (dataTypeDefinition.groupSafeValueFormatter) {\n colDef.valueFormatter = dataTypeDefinition.groupSafeValueFormatter;\n }\n if (dataTypeDefinition.valueParser) {\n colDef.valueParser = dataTypeDefinition.valueParser;\n }\n if (!dataTypeDefinition.suppressDefaultProperties) {\n this.setColDefPropertiesForBaseDataType(colDef, dataTypeDefinition, colId);\n }\n return dataTypeDefinition.columnTypes;\n }\n updateColDefAndGetColumnType(colDef, userColDef, colId) {\n var _a, _b;\n const dataTypeDefinitionColumnType = this.updateColDefAndGetDataTypeDefinitionColumnType(colDef, userColDef, colId);\n const columnTypes = (_b = (_a = userColDef.type) !== null && _a !== void 0 ? _a : dataTypeDefinitionColumnType) !== null && _b !== void 0 ? _b : colDef.type;\n colDef.type = columnTypes;\n return columnTypes ? this.convertColumnTypes(columnTypes) : undefined;\n }\n addColumnListeners(column) {\n if (!this.isWaitingForRowData) {\n return;\n }\n const columnStateUpdates = this.columnStateUpdatesPendingInference[column.getColId()];\n if (!columnStateUpdates) {\n return;\n }\n const columnListener = (event) => {\n columnStateUpdates.add(event.key);\n };\n column.addEventListener(Column.EVENT_STATE_UPDATED, columnListener);\n this.columnStateUpdateListenerDestroyFuncs.push(() => column.removeEventListener(Column.EVENT_STATE_UPDATED, columnListener));\n }\n canInferCellDataType(colDef, userColDef) {\n var _a;\n if (this.rowModel.getType() !== 'clientSide') {\n return false;\n }\n const propsToCheckForInference = { cellRenderer: true, valueGetter: true, valueParser: true, refData: true };\n if (this.doColDefPropsPreventInference(userColDef, propsToCheckForInference)) {\n return false;\n }\n const columnTypes = userColDef.type === null ? colDef.type : userColDef.type;\n if (columnTypes) {\n const columnTypeDefs = (_a = this.gridOptionsService.get('columnTypes')) !== null && _a !== void 0 ? _a : {};\n const hasPropsPreventingInference = this.convertColumnTypes(columnTypes).some(columnType => {\n const columnTypeDef = columnTypeDefs[columnType.trim()];\n return columnTypeDef && this.doColDefPropsPreventInference(columnTypeDef, propsToCheckForInference);\n });\n if (hasPropsPreventingInference) {\n return false;\n }\n }\n return !this.doColDefPropsPreventInference(colDef, propsToCheckForInference);\n }\n doColDefPropsPreventInference(colDef, propsToCheckForInference) {\n return [\n ['cellRenderer', 'agSparklineCellRenderer'], ['valueGetter', undefined], ['valueParser', undefined], ['refData', undefined]\n ].some(([prop, comparisonValue]) => this.doesColDefPropPreventInference(colDef, propsToCheckForInference, prop, comparisonValue));\n }\n doesColDefPropPreventInference(colDef, checkProps, prop, comparisonValue) {\n if (!checkProps[prop]) {\n return false;\n }\n const value = colDef[prop];\n if (value === null) {\n checkProps[prop] = false;\n return false;\n }\n else {\n return comparisonValue === undefined ? !!value : value === comparisonValue;\n }\n }\n inferCellDataType(field, colId) {\n var _a;\n if (!field) {\n return undefined;\n }\n let value;\n const initialData = this.getInitialData();\n if (initialData) {\n const fieldContainsDots = field.indexOf('.') >= 0 && !this.gridOptionsService.get('suppressFieldDotNotation');\n value = getValueUsingField(initialData, field, fieldContainsDots);\n }\n else {\n this.initWaitForRowData(colId);\n }\n if (value == null) {\n return undefined;\n }\n const [cellDataType] = (_a = Object.entries(this.dataTypeMatchers).find(([_cellDataType, dataTypeMatcher]) => dataTypeMatcher(value))) !== null && _a !== void 0 ? _a : ['object'];\n return cellDataType;\n }\n getInitialData() {\n const rowData = this.gridOptionsService.get('rowData');\n if (rowData === null || rowData === void 0 ? void 0 : rowData.length) {\n return rowData[0];\n }\n else if (this.initialData) {\n return this.initialData;\n }\n else {\n const rowNodes = this.rowModel\n .getRootNode()\n .allLeafChildren;\n if (rowNodes === null || rowNodes === void 0 ? void 0 : rowNodes.length) {\n return rowNodes[0].data;\n }\n }\n return null;\n }\n initWaitForRowData(colId) {\n this.columnStateUpdatesPendingInference[colId] = new Set();\n if (this.isWaitingForRowData) {\n return;\n }\n this.isWaitingForRowData = true;\n const columnTypeOverridesExist = this.isColumnTypeOverrideInDataTypeDefinitions;\n if (columnTypeOverridesExist) {\n this.columnModel.queueResizeOperations();\n }\n const destroyFunc = this.addManagedListener(this.eventService, Events.EVENT_ROW_DATA_UPDATE_STARTED, (event) => {\n const { firstRowData } = event;\n if (!firstRowData) {\n return;\n }\n destroyFunc === null || destroyFunc === void 0 ? void 0 : destroyFunc();\n this.isWaitingForRowData = false;\n this.processColumnsPendingInference(firstRowData, columnTypeOverridesExist);\n this.columnStateUpdatesPendingInference = {};\n if (columnTypeOverridesExist) {\n this.columnModel.processResizeOperations();\n }\n const dataTypesInferredEvent = {\n type: Events.EVENT_DATA_TYPES_INFERRED\n };\n this.eventService.dispatchEvent(dataTypesInferredEvent);\n });\n }\n isPendingInference() {\n return this.isWaitingForRowData;\n }\n processColumnsPendingInference(firstRowData, columnTypeOverridesExist) {\n this.initialData = firstRowData;\n const state = [];\n this.columnStateUpdateListenerDestroyFuncs.forEach(destroyFunc => destroyFunc());\n this.columnStateUpdateListenerDestroyFuncs = [];\n const newRowGroupColumnStateWithoutIndex = {};\n const newPivotColumnStateWithoutIndex = {};\n Object.entries(this.columnStateUpdatesPendingInference).forEach(([colId, columnStateUpdates]) => {\n const column = this.columnModel.getGridColumn(colId);\n if (!column) {\n return;\n }\n const oldColDef = column.getColDef();\n if (!this.columnModel.resetColumnDefIntoColumn(column, 'cellDataTypeInferred')) {\n return;\n }\n const newColDef = column.getColDef();\n if (columnTypeOverridesExist && newColDef.type && newColDef.type !== oldColDef.type) {\n const updatedColumnState = this.getUpdatedColumnState(column, columnStateUpdates);\n if (updatedColumnState.rowGroup && updatedColumnState.rowGroupIndex == null) {\n newRowGroupColumnStateWithoutIndex[colId] = updatedColumnState;\n }\n if (updatedColumnState.pivot && updatedColumnState.pivotIndex == null) {\n newPivotColumnStateWithoutIndex[colId] = updatedColumnState;\n }\n state.push(updatedColumnState);\n }\n });\n if (columnTypeOverridesExist) {\n state.push(...this.columnModel.generateColumnStateForRowGroupAndPivotIndexes(newRowGroupColumnStateWithoutIndex, newPivotColumnStateWithoutIndex));\n }\n if (state.length) {\n this.columnModel.applyColumnState({ state }, 'cellDataTypeInferred');\n }\n this.initialData = null;\n }\n getUpdatedColumnState(column, columnStateUpdates) {\n const columnState = this.columnModel.getColumnStateFromColDef(column);\n columnStateUpdates.forEach(key => {\n // if the column state has been updated, don't update again\n delete columnState[key];\n if (key === 'rowGroup') {\n delete columnState.rowGroupIndex;\n }\n else if (key === 'pivot') {\n delete columnState.pivotIndex;\n }\n });\n return columnState;\n }\n checkObjectValueHandlers(defaultDataTypes) {\n const resolvedObjectDataTypeDefinition = this.dataTypeDefinitions.object;\n const defaultObjectDataTypeDefinition = defaultDataTypes.object;\n this.hasObjectValueParser = resolvedObjectDataTypeDefinition.valueParser !== defaultObjectDataTypeDefinition.valueParser;\n this.hasObjectValueFormatter = resolvedObjectDataTypeDefinition.valueFormatter !== defaultObjectDataTypeDefinition.valueFormatter;\n }\n convertColumnTypes(type) {\n let typeKeys = [];\n if (type instanceof Array) {\n const invalidArray = type.some((a) => typeof a !== 'string');\n if (invalidArray) {\n console.warn(\"if colDef.type is supplied an array it should be of type 'string[]'\");\n }\n else {\n typeKeys = type;\n }\n }\n else if (typeof type === 'string') {\n typeKeys = type.split(',');\n }\n else {\n console.warn(\"colDef.type should be of type 'string' | 'string[]'\");\n }\n return typeKeys;\n }\n getDateStringTypeDefinition(column) {\n var _a;\n if (!column) {\n return this.dataTypeDefinitions.dateString;\n }\n return ((_a = this.getDataTypeDefinition(column)) !== null && _a !== void 0 ? _a : this.dataTypeDefinitions.dateString);\n }\n getDateParserFunction(column) {\n return this.getDateStringTypeDefinition(column).dateParser;\n }\n getDateFormatterFunction(column) {\n return this.getDateStringTypeDefinition(column).dateFormatter;\n }\n getDataTypeDefinition(column) {\n const colDef = column.getColDef();\n if (!colDef.cellDataType) {\n return undefined;\n }\n return this.dataTypeDefinitions[colDef.cellDataType];\n }\n getBaseDataType(column) {\n var _a;\n return (_a = this.getDataTypeDefinition(column)) === null || _a === void 0 ? void 0 : _a.baseDataType;\n }\n checkType(column, value) {\n var _a;\n if (value == null) {\n return true;\n }\n const dataTypeMatcher = (_a = this.getDataTypeDefinition(column)) === null || _a === void 0 ? void 0 : _a.dataTypeMatcher;\n if (!dataTypeMatcher) {\n return true;\n }\n return dataTypeMatcher(value);\n }\n validateColDef(colDef) {\n if (colDef.cellDataType === 'object') {\n if (colDef.valueFormatter === this.dataTypeDefinitions.object.groupSafeValueFormatter && !this.hasObjectValueFormatter) {\n warnOnce('Cell data type is \"object\" but no value formatter has been provided. Please either provide an object data type definition with a value formatter, or set \"colDef.valueFormatter\"');\n }\n if (colDef.editable && colDef.valueParser === this.dataTypeDefinitions.object.valueParser && !this.hasObjectValueParser) {\n warnOnce('Cell data type is \"object\" but no value parser has been provided. Please either provide an object data type definition with a value parser, or set \"colDef.valueParser\"');\n }\n }\n }\n setColDefPropertiesForBaseDataType(colDef, dataTypeDefinition, colId) {\n const formatValue = (column, node, value) => {\n let valueFormatter = column.getColDef().valueFormatter;\n if (valueFormatter === dataTypeDefinition.groupSafeValueFormatter) {\n valueFormatter = dataTypeDefinition.valueFormatter;\n }\n return this.valueFormatterService.formatValue(column, node, value, valueFormatter);\n };\n const usingSetFilter = ModuleRegistry.__isRegistered(ModuleNames.SetFilterModule, this.context.getGridId());\n const translate = this.localeService.getLocaleTextFunc();\n const mergeFilterParams = (params) => {\n const { filterParams } = colDef;\n colDef.filterParams = typeof filterParams === 'object' ? Object.assign(Object.assign({}, filterParams), params) : params;\n };\n switch (dataTypeDefinition.baseDataType) {\n case 'number': {\n colDef.cellEditor = 'agNumberCellEditor';\n if (usingSetFilter) {\n mergeFilterParams({\n comparator: (a, b) => {\n const valA = a == null ? 0 : parseInt(a);\n const valB = b == null ? 0 : parseInt(b);\n if (valA === valB)\n return 0;\n return valA > valB ? 1 : -1;\n },\n });\n }\n break;\n }\n case 'boolean': {\n colDef.cellEditor = 'agCheckboxCellEditor';\n colDef.cellRenderer = 'agCheckboxCellRenderer';\n colDef.suppressKeyboardEvent = (params) => !!params.colDef.editable && params.event.key === KeyCode.SPACE;\n if (usingSetFilter) {\n mergeFilterParams({\n valueFormatter: (params) => {\n if (!exists(params.value)) {\n return translate('blanks', '(Blanks)');\n }\n return translate(String(params.value), params.value ? 'True' : 'False');\n }\n });\n }\n else {\n mergeFilterParams({\n maxNumConditions: 1,\n debounceMs: 0,\n filterOptions: [\n 'empty',\n {\n displayKey: 'true',\n displayName: 'True',\n predicate: (_filterValues, cellValue) => cellValue,\n numberOfInputs: 0,\n },\n {\n displayKey: 'false',\n displayName: 'False',\n predicate: (_filterValues, cellValue) => cellValue === false,\n numberOfInputs: 0,\n },\n ]\n });\n }\n break;\n }\n case 'date': {\n colDef.cellEditor = 'agDateCellEditor';\n colDef.keyCreator = (params) => formatValue(params.column, params.node, params.value);\n if (usingSetFilter) {\n mergeFilterParams({\n valueFormatter: (params) => {\n const valueFormatted = formatValue(params.column, params.node, params.value);\n return exists(valueFormatted) ? valueFormatted : translate('blanks', '(Blanks)');\n },\n treeList: true,\n treeListFormatter: (pathKey, level) => {\n if (level === 1 && pathKey != null) {\n const monthKey = MONTH_KEYS[Number(pathKey) - 1];\n return translate(monthKey, MONTH_LOCALE_TEXT[monthKey]);\n }\n return pathKey !== null && pathKey !== void 0 ? pathKey : translate('blanks', '(Blanks)');\n }\n });\n }\n break;\n }\n case 'dateString': {\n colDef.cellEditor = 'agDateStringCellEditor';\n colDef.keyCreator = (params) => formatValue(params.column, params.node, params.value);\n const convertToDate = dataTypeDefinition.dateParser;\n if (usingSetFilter) {\n mergeFilterParams({\n valueFormatter: (params) => {\n const valueFormatted = formatValue(params.column, params.node, params.value);\n return exists(valueFormatted) ? valueFormatted : translate('blanks', '(Blanks)');\n },\n treeList: true,\n treeListPathGetter: (value) => {\n const date = convertToDate(value !== null && value !== void 0 ? value : undefined);\n return date ? [String(date.getFullYear()), String(date.getMonth() + 1), String(date.getDate())] : null;\n },\n treeListFormatter: (pathKey, level) => {\n if (level === 1 && pathKey != null) {\n const monthKey = MONTH_KEYS[Number(pathKey) - 1];\n return translate(monthKey, MONTH_LOCALE_TEXT[monthKey]);\n }\n return pathKey !== null && pathKey !== void 0 ? pathKey : translate('blanks', '(Blanks)');\n }\n });\n }\n else {\n mergeFilterParams({\n comparator: (filterDate, cellValue) => {\n const cellAsDate = convertToDate(cellValue);\n if (cellValue == null || cellAsDate < filterDate) {\n return -1;\n }\n if (cellAsDate > filterDate) {\n return 1;\n }\n return 0;\n }\n });\n }\n break;\n }\n case 'object': {\n colDef.cellEditorParams = {\n useFormatter: true,\n };\n colDef.comparator = (a, b) => {\n const column = this.columnModel.getPrimaryColumn(colId);\n const colDef = column === null || column === void 0 ? void 0 : column.getColDef();\n if (!column || !colDef) {\n return 0;\n }\n const valA = a == null ? '' : formatValue(column, null, a);\n const valB = b == null ? '' : formatValue(column, null, b);\n if (valA === valB)\n return 0;\n return valA > valB ? 1 : -1;\n };\n colDef.keyCreator = (params) => formatValue(params.column, params.node, params.value);\n if (usingSetFilter) {\n mergeFilterParams({\n valueFormatter: (params) => {\n const valueFormatted = formatValue(params.column, params.node, params.value);\n return exists(valueFormatted) ? valueFormatted : translate('blanks', '(Blanks)');\n }\n });\n }\n else {\n colDef.filterValueGetter = (params) => formatValue(params.column, params.node, this.valueService.getValue(params.column, params.node));\n }\n break;\n }\n }\n }\n getDefaultDataTypes() {\n const defaultDateFormatMatcher = (value) => !!value.match('^\\\\d{4}-\\\\d{2}-\\\\d{2}$');\n const translate = this.localeService.getLocaleTextFunc();\n return {\n number: {\n baseDataType: 'number',\n // can be empty space with legacy copy\n valueParser: (params) => {\n var _a, _b;\n return ((_b = (_a = params.newValue) === null || _a === void 0 ? void 0 : _a.trim) === null || _b === void 0 ? void 0 : _b.call(_a)) === ''\n ? null\n : Number(params.newValue);\n },\n valueFormatter: (params) => {\n if (params.value == null) {\n return '';\n }\n if (typeof params.value !== 'number' || isNaN(params.value)) {\n return translate('invalidNumber', 'Invalid Number');\n }\n return String(params.value);\n },\n dataTypeMatcher: (value) => typeof value === 'number',\n },\n text: {\n baseDataType: 'text',\n valueParser: (params) => params.newValue === '' ? null : toStringOrNull(params.newValue),\n dataTypeMatcher: (value) => typeof value === 'string',\n },\n boolean: {\n baseDataType: 'boolean',\n valueParser: (params) => {\n var _a, _b;\n if (params.newValue == null) {\n return params.newValue;\n }\n // can be empty space with legacy copy\n return ((_b = (_a = params.newValue) === null || _a === void 0 ? void 0 : _a.trim) === null || _b === void 0 ? void 0 : _b.call(_a)) === ''\n ? null\n : String(params.newValue).toLowerCase() === 'true';\n },\n valueFormatter: (params) => params.value == null ? '' : String(params.value),\n dataTypeMatcher: (value) => typeof value === 'boolean',\n },\n date: {\n baseDataType: 'date',\n valueParser: (params) => parseDateTimeFromString(params.newValue == null ? null : String(params.newValue)),\n valueFormatter: (params) => {\n var _a;\n if (params.value == null) {\n return '';\n }\n if (!(params.value instanceof Date) || isNaN(params.value.getTime())) {\n return translate('invalidDate', 'Invalid Date');\n }\n return (_a = serialiseDate(params.value, false)) !== null && _a !== void 0 ? _a : '';\n },\n dataTypeMatcher: (value) => value instanceof Date,\n },\n dateString: {\n baseDataType: 'dateString',\n dateParser: (value) => { var _a; return (_a = parseDateTimeFromString(value)) !== null && _a !== void 0 ? _a : undefined; },\n dateFormatter: (value) => { var _a; return (_a = serialiseDate(value !== null && value !== void 0 ? value : null, false)) !== null && _a !== void 0 ? _a : undefined; },\n valueParser: (params) => defaultDateFormatMatcher(String(params.newValue)) ? params.newValue : null,\n valueFormatter: (params) => defaultDateFormatMatcher(String(params.value)) ? params.value : '',\n dataTypeMatcher: (value) => typeof value === 'string' && defaultDateFormatMatcher(value),\n },\n object: {\n baseDataType: 'object',\n valueParser: () => null,\n valueFormatter: (params) => { var _a; return (_a = toStringOrNull(params.value)) !== null && _a !== void 0 ? _a : ''; },\n }\n };\n }\n};\n__decorate([\n Autowired('rowModel')\n], DataTypeService.prototype, \"rowModel\", void 0);\n__decorate([\n Autowired('columnModel')\n], DataTypeService.prototype, \"columnModel\", void 0);\n__decorate([\n Autowired('columnUtils')\n], DataTypeService.prototype, \"columnUtils\", void 0);\n__decorate([\n Autowired('valueService')\n], DataTypeService.prototype, \"valueService\", void 0);\n__decorate([\n Autowired('valueFormatterService')\n], DataTypeService.prototype, \"valueFormatterService\", void 0);\n__decorate([\n PostConstruct\n], DataTypeService.prototype, \"init\", null);\nDataTypeService = __decorate([\n Bean('dataTypeService')\n], DataTypeService);\nexport { DataTypeService };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Bean, Autowired } from '../context/context.mjs';\nimport { BeanStub } from '../context/beanStub.mjs';\nimport { exists } from '../utils/generic.mjs';\nlet ValueParserService = class ValueParserService extends BeanStub {\n parseValue(column, rowNode, newValue, oldValue) {\n const colDef = column.getColDef();\n const params = this.gridOptionsService.addGridCommonParams({\n node: rowNode,\n data: rowNode === null || rowNode === void 0 ? void 0 : rowNode.data,\n oldValue,\n newValue,\n colDef,\n column\n });\n const valueParser = colDef.valueParser;\n if (exists(valueParser)) {\n if (typeof valueParser === 'function') {\n return valueParser(params);\n }\n return this.expressionService.evaluate(valueParser, params);\n }\n return newValue;\n }\n};\n__decorate([\n Autowired('expressionService')\n], ValueParserService.prototype, \"expressionService\", void 0);\nValueParserService = __decorate([\n Bean('valueParserService')\n], ValueParserService);\nexport { ValueParserService };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { BeanStub } from \"./context/beanStub.mjs\";\nimport { Autowired, Bean, PostConstruct } from \"./context/context.mjs\";\nimport { Logger } from \"./logger.mjs\";\nimport { convertSourceType } from \"./columns/columnModel.mjs\";\nimport { ModuleNames } from \"./modules/moduleNames.mjs\";\nimport { ModuleRegistry } from \"./modules/moduleRegistry.mjs\";\nimport { Events } from \"./eventKeys.mjs\";\nlet SyncService = class SyncService extends BeanStub {\n constructor() {\n super(...arguments);\n this.waitingForColumns = false;\n }\n postConstruct() {\n this.addManagedPropertyListener('columnDefs', (event) => this.setColumnDefs(event));\n }\n start() {\n // we wait until the UI has finished initialising before setting in columns and rows\n this.ctrlsService.whenReady(() => {\n const columnDefs = this.gridOptionsService.get('columnDefs');\n if (columnDefs) {\n this.setColumnsAndData(columnDefs);\n }\n else {\n this.waitingForColumns = true;\n }\n this.gridReady();\n });\n }\n setColumnsAndData(columnDefs) {\n this.columnModel.setColumnDefs(columnDefs !== null && columnDefs !== void 0 ? columnDefs : [], \"gridInitializing\");\n this.rowModel.start();\n }\n gridReady() {\n this.dispatchGridReadyEvent();\n const isEnterprise = ModuleRegistry.__isRegistered(ModuleNames.EnterpriseCoreModule, this.context.getGridId());\n const logger = new Logger('AG Grid', () => this.gridOptionsService.get('debug'));\n logger.log(`initialised successfully, enterprise = ${isEnterprise}`);\n }\n dispatchGridReadyEvent() {\n const readyEvent = {\n type: Events.EVENT_GRID_READY,\n };\n this.eventService.dispatchEvent(readyEvent);\n }\n setColumnDefs(event) {\n const columnDefs = this.gridOptionsService.get('columnDefs');\n if (!columnDefs) {\n return;\n }\n if (this.waitingForColumns) {\n this.waitingForColumns = false;\n this.setColumnsAndData(columnDefs);\n return;\n }\n this.columnModel.setColumnDefs(columnDefs, convertSourceType(event.source));\n }\n};\n__decorate([\n Autowired('ctrlsService')\n], SyncService.prototype, \"ctrlsService\", void 0);\n__decorate([\n Autowired('columnModel')\n], SyncService.prototype, \"columnModel\", void 0);\n__decorate([\n Autowired('rowModel')\n], SyncService.prototype, \"rowModel\", void 0);\n__decorate([\n PostConstruct\n], SyncService.prototype, \"postConstruct\", null);\nSyncService = __decorate([\n Bean('syncService')\n], SyncService);\nexport { SyncService };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { BeanStub } from \"../../context/beanStub.mjs\";\nimport { Autowired, Bean, PostConstruct } from \"../../context/context.mjs\";\nimport { Events } from \"../../eventKeys.mjs\";\nlet OverlayService = class OverlayService extends BeanStub {\n constructor() {\n super(...arguments);\n this.manuallyDisplayed = false;\n }\n postConstruct() {\n this.addManagedListener(this.eventService, Events.EVENT_ROW_DATA_UPDATED, () => this.onRowDataUpdated());\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, () => this.onNewColumnsLoaded());\n }\n registerOverlayWrapperComp(overlayWrapperComp) {\n this.overlayWrapperComp = overlayWrapperComp;\n if (!this.gridOptionsService.get('columnDefs') ||\n (this.gridOptionsService.isRowModelType('clientSide') && !this.gridOptionsService.get('rowData'))) {\n this.showLoadingOverlay();\n }\n }\n showLoadingOverlay() {\n if (this.gridOptionsService.get('suppressLoadingOverlay')) {\n return;\n }\n const params = {};\n const compDetails = this.userComponentFactory.getLoadingOverlayCompDetails(params);\n this.showOverlay(compDetails, 'ag-overlay-loading-wrapper', 'loadingOverlayComponentParams');\n }\n showNoRowsOverlay() {\n if (this.gridOptionsService.get('suppressNoRowsOverlay')) {\n return;\n }\n const params = {};\n const compDetails = this.userComponentFactory.getNoRowsOverlayCompDetails(params);\n this.showOverlay(compDetails, 'ag-overlay-no-rows-wrapper', 'noRowsOverlayComponentParams');\n }\n showOverlay(compDetails, wrapperCssClass, gridOption) {\n const promise = compDetails.newAgStackInstance();\n const listenerDestroyFunc = this.addManagedPropertyListener(gridOption, ({ currentValue }) => {\n promise.then(comp => {\n if (comp.refresh) {\n comp.refresh(this.gridOptionsService.addGridCommonParams(Object.assign({}, (currentValue !== null && currentValue !== void 0 ? currentValue : {}))));\n }\n });\n });\n this.manuallyDisplayed = this.columnModel.isReady() && !this.paginationProxy.isEmpty();\n this.overlayWrapperComp.showOverlay(promise, wrapperCssClass, listenerDestroyFunc);\n }\n hideOverlay() {\n this.manuallyDisplayed = false;\n this.overlayWrapperComp.hideOverlay();\n }\n showOrHideOverlay() {\n const isEmpty = this.paginationProxy.isEmpty();\n const isSuppressNoRowsOverlay = this.gridOptionsService.get('suppressNoRowsOverlay');\n if (isEmpty && !isSuppressNoRowsOverlay) {\n this.showNoRowsOverlay();\n }\n else {\n this.hideOverlay();\n }\n }\n onRowDataUpdated() {\n this.showOrHideOverlay();\n }\n onNewColumnsLoaded() {\n // hide overlay if columns and rows exist, this can happen if columns are loaded after data.\n // this problem exists before of the race condition between the services (column controller in this case)\n // and the view (grid panel). if the model beans were all initialised first, and then the view beans second,\n // this race condition would not happen.\n if (this.columnModel.isReady() && !this.paginationProxy.isEmpty() && !this.manuallyDisplayed) {\n this.hideOverlay();\n }\n }\n};\n__decorate([\n Autowired('userComponentFactory')\n], OverlayService.prototype, \"userComponentFactory\", void 0);\n__decorate([\n Autowired('paginationProxy')\n], OverlayService.prototype, \"paginationProxy\", void 0);\n__decorate([\n Autowired('columnModel')\n], OverlayService.prototype, \"columnModel\", void 0);\n__decorate([\n PostConstruct\n], OverlayService.prototype, \"postConstruct\", null);\nOverlayService = __decorate([\n Bean('overlayService')\n], OverlayService);\nexport { OverlayService };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { BeanStub } from \"../context/beanStub.mjs\";\nimport { Autowired, Bean, Optional, PostConstruct } from \"../context/context.mjs\";\nimport { Events } from \"../eventKeys.mjs\";\nimport { jsonEquals } from \"../utils/generic.mjs\";\nimport { debounce } from \"../utils/function.mjs\";\nlet StateService = class StateService extends BeanStub {\n constructor() {\n super(...arguments);\n this.suppressEvents = true;\n this.queuedUpdateSources = new Set();\n this.dispatchStateUpdateEventDebounced = debounce(() => this.dispatchQueuedStateUpdateEvents(), 0);\n }\n postConstruct() {\n var _a;\n this.isClientSideRowModel = this.rowModel.getType() === 'clientSide';\n this.cachedState = (_a = this.gridOptionsService.get('initialState')) !== null && _a !== void 0 ? _a : {};\n this.ctrlsService.whenReady(() => this.suppressEventsAndDispatchInitEvent(() => this.setupStateOnGridReady()));\n const newColumnsLoadedDestroyFunc = this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, ({ source }) => {\n if (source === 'gridInitializing') {\n newColumnsLoadedDestroyFunc === null || newColumnsLoadedDestroyFunc === void 0 ? void 0 : newColumnsLoadedDestroyFunc();\n this.suppressEventsAndDispatchInitEvent(() => this.setupStateOnColumnsInitialised());\n }\n });\n const rowCountReadyDestroyFunc = this.addManagedListener(this.eventService, Events.EVENT_ROW_COUNT_READY, () => {\n rowCountReadyDestroyFunc === null || rowCountReadyDestroyFunc === void 0 ? void 0 : rowCountReadyDestroyFunc();\n this.suppressEventsAndDispatchInitEvent(() => this.setupStateOnRowCountReady());\n });\n const firstDataRenderedDestroyFunc = this.addManagedListener(this.eventService, Events.EVENT_FIRST_DATA_RENDERED, () => {\n firstDataRenderedDestroyFunc === null || firstDataRenderedDestroyFunc === void 0 ? void 0 : firstDataRenderedDestroyFunc();\n this.suppressEventsAndDispatchInitEvent(() => this.setupStateOnFirstDataRendered());\n });\n }\n getState() {\n return this.cachedState;\n }\n setupStateOnGridReady() {\n // sidebar reads the initial state itself, so don't need to set\n this.updateCachedState('sideBar', this.getSideBarState());\n this.addManagedListener(this.eventService, Events.EVENT_TOOL_PANEL_VISIBLE_CHANGED, () => this.updateCachedState('sideBar', this.getSideBarState()));\n this.addManagedListener(this.eventService, Events.EVENT_SIDE_BAR_UPDATED, () => this.updateCachedState('sideBar', this.getSideBarState()));\n }\n setupStateOnColumnsInitialised() {\n var _a;\n const initialState = (_a = this.gridOptionsService.get('initialState')) !== null && _a !== void 0 ? _a : {};\n this.setColumnState(initialState);\n this.setColumnGroupState(initialState);\n this.updateColumnState([\n 'aggregation', 'columnOrder', 'columnPinning', 'columnSizing', 'columnVisibility', 'pivot', 'pivot', 'rowGroup', 'sort'\n ]);\n this.updateCachedState('columnGroup', this.getColumnGroupState());\n // aggregation\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_VALUE_CHANGED, () => this.updateColumnState(['aggregation']));\n // columnOrder\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_MOVED, () => this.updateColumnState(['columnOrder']));\n // columnPinning\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PINNED, () => this.updateColumnState(['columnPinning']));\n // columnSizing\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_RESIZED, () => this.updateColumnState(['columnSizing']));\n // columnVisibility\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_VISIBLE, () => this.updateColumnState(['columnVisibility']));\n // pivot\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_CHANGED, () => this.updateColumnState(['pivot']));\n // pivot\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, () => this.updateColumnState(['pivot']));\n // rowGroup\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, () => this.updateColumnState(['rowGroup']));\n // sort\n this.addManagedListener(this.eventService, Events.EVENT_SORT_CHANGED, () => this.updateColumnState(['sort']));\n // any column\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, () => this.updateColumnState([\n 'aggregation', 'columnOrder', 'columnPinning', 'columnSizing', 'columnVisibility', 'pivot', 'pivot', 'rowGroup', 'sort'\n ]));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_GROUP_OPENED, () => this.updateCachedState('columnGroup', this.getColumnGroupState()));\n }\n setupStateOnRowCountReady() {\n var _a;\n const { filter: filterState, rowGroupExpansion: rowGroupExpansionState, rowSelection: rowSelectionState, pagination: paginationState } = (_a = this.gridOptionsService.get('initialState')) !== null && _a !== void 0 ? _a : {};\n const advancedFilterModel = this.gridOptionsService.get('advancedFilterModel');\n if (filterState || advancedFilterModel) {\n this.setFilterState(filterState, advancedFilterModel);\n }\n if (rowGroupExpansionState) {\n this.setRowGroupExpansionState(rowGroupExpansionState);\n }\n if (rowSelectionState) {\n this.setRowSelectionState(rowSelectionState);\n }\n if (paginationState) {\n this.setPaginationState(paginationState);\n }\n this.updateCachedState('filter', this.getFilterState());\n this.updateCachedState('rowGroupExpansion', this.getRowGroupExpansionState());\n this.updateCachedState('rowSelection', this.getRowSelectionState());\n this.updateCachedState('pagination', this.getPaginationState());\n this.addManagedListener(this.eventService, Events.EVENT_FILTER_CHANGED, () => this.updateCachedState('filter', this.getFilterState()));\n this.addManagedListener(this.eventService, Events.EVENT_ROW_GROUP_OPENED, () => this.updateCachedState('rowGroupExpansion', this.getRowGroupExpansionState()));\n this.addManagedListener(this.eventService, Events.EVENT_EXPAND_COLLAPSE_ALL, () => this.updateCachedState('rowGroupExpansion', this.getRowGroupExpansionState()));\n this.addManagedListener(this.eventService, Events.EVENT_SELECTION_CHANGED, () => this.updateCachedState('rowSelection', this.getRowSelectionState()));\n this.addManagedListener(this.eventService, Events.EVENT_PAGINATION_CHANGED, (event) => {\n if (event.newPage || event.newPageSize) {\n this.updateCachedState('pagination', this.getPaginationState());\n }\n });\n }\n setupStateOnFirstDataRendered() {\n var _a;\n const { scroll: scrollState, rangeSelection: rangeSelectionState, focusedCell: focusedCellState, columnOrder: columnOrderState, } = (_a = this.gridOptionsService.get('initialState')) !== null && _a !== void 0 ? _a : {};\n if (focusedCellState) {\n this.setFocusedCellState(focusedCellState);\n }\n if (rangeSelectionState) {\n this.setRangeSelectionState(rangeSelectionState);\n }\n if (scrollState) {\n this.setScrollState(scrollState);\n }\n this.setColumnPivotState(!!(columnOrderState === null || columnOrderState === void 0 ? void 0 : columnOrderState.orderedColIds));\n // reset sidebar as it could have updated when columns changed\n this.updateCachedState('sideBar', this.getSideBarState());\n this.updateCachedState('focusedCell', this.getFocusedCellState());\n this.updateCachedState('rangeSelection', this.getRangeSelectionState());\n this.updateCachedState('scroll', this.getScrollState());\n this.addManagedListener(this.eventService, Events.EVENT_CELL_FOCUSED, () => this.updateCachedState('focusedCell', this.getFocusedCellState()));\n this.addManagedListener(this.eventService, Events.EVENT_RANGE_SELECTION_CHANGED, (event) => {\n if (event.finished) {\n this.updateCachedState('rangeSelection', this.getRangeSelectionState());\n }\n });\n this.addManagedListener(this.eventService, Events.EVENT_BODY_SCROLL_END, () => this.updateCachedState('scroll', this.getScrollState()));\n }\n getColumnState() {\n const pivotMode = this.columnModel.isPivotMode();\n const sortColumns = [];\n const groupColIds = [];\n const aggregationColumns = [];\n const pivotColIds = [];\n const leftColIds = [];\n const rightColIds = [];\n const hiddenColIds = [];\n const columnSizes = [];\n const columns = [];\n const columnState = this.columnModel.getColumnState();\n for (let i = 0; i < columnState.length; i++) {\n const { colId, sort, sortIndex, rowGroup, rowGroupIndex, aggFunc, pivot, pivotIndex, pinned, hide, width, flex } = columnState[i];\n columns.push(colId);\n if (sort) {\n sortColumns[sortIndex !== null && sortIndex !== void 0 ? sortIndex : 0] = { colId, sort };\n }\n if (rowGroup) {\n groupColIds[rowGroupIndex !== null && rowGroupIndex !== void 0 ? rowGroupIndex : 0] = colId;\n }\n if (typeof aggFunc === 'string') {\n aggregationColumns.push({ colId, aggFunc });\n }\n if (pivot) {\n pivotColIds[pivotIndex !== null && pivotIndex !== void 0 ? pivotIndex : 0] = colId;\n }\n if (pinned) {\n (pinned === 'right' ? rightColIds : leftColIds).push(colId);\n }\n if (hide) {\n hiddenColIds.push(colId);\n }\n if (flex || width) {\n columnSizes.push({ colId, flex: flex !== null && flex !== void 0 ? flex : undefined, width });\n }\n }\n return {\n sort: sortColumns.length ? { sortModel: sortColumns } : undefined,\n rowGroup: groupColIds.length ? { groupColIds } : undefined,\n aggregation: aggregationColumns.length ? { aggregationModel: aggregationColumns } : undefined,\n pivot: pivotColIds.length || pivotMode ? { pivotMode, pivotColIds } : undefined,\n columnPinning: leftColIds.length || rightColIds.length ? { leftColIds, rightColIds } : undefined,\n columnVisibility: hiddenColIds.length ? { hiddenColIds } : undefined,\n columnSizing: columnSizes.length ? { columnSizingModel: columnSizes } : undefined,\n columnOrder: columns.length ? { orderedColIds: columns } : undefined\n };\n }\n setColumnState(initialState) {\n const { sort: sortState, rowGroup: groupState, aggregation: aggregationState, pivot: pivotState, columnPinning: columnPinningState, columnVisibility: columnVisibilityState, columnSizing: columnSizingState, columnOrder: columnOrderState } = initialState;\n const columnStateMap = {};\n const getColumnState = (colId) => {\n let columnState = columnStateMap[colId];\n if (columnState) {\n return columnState;\n }\n columnState = { colId };\n columnStateMap[colId] = columnState;\n return columnState;\n };\n if (sortState) {\n sortState.sortModel.forEach(({ colId, sort }, sortIndex) => {\n const columnState = getColumnState(colId);\n columnState.sort = sort;\n columnState.sortIndex = sortIndex;\n });\n }\n if (groupState) {\n groupState.groupColIds.forEach((colId, rowGroupIndex) => {\n const columnState = getColumnState(colId);\n columnState.rowGroup = true;\n columnState.rowGroupIndex = rowGroupIndex;\n });\n }\n if (aggregationState) {\n aggregationState.aggregationModel.forEach(({ colId, aggFunc }) => {\n getColumnState(colId).aggFunc = aggFunc;\n });\n }\n if (pivotState) {\n pivotState.pivotColIds.forEach((colId, pivotIndex) => {\n const columnState = getColumnState(colId);\n columnState.pivot = true;\n columnState.pivotIndex = pivotIndex;\n });\n this.gridOptionsService.updateGridOptions({ options: { pivotMode: pivotState.pivotMode }, source: 'gridInitializing' });\n }\n if (columnPinningState) {\n columnPinningState.leftColIds.forEach(colId => {\n getColumnState(colId).pinned = 'left';\n });\n columnPinningState.rightColIds.forEach(colId => {\n getColumnState(colId).pinned = 'right';\n });\n }\n if (columnVisibilityState) {\n columnVisibilityState.hiddenColIds.forEach(colId => {\n getColumnState(colId).hide = true;\n });\n }\n if (columnSizingState) {\n columnSizingState.columnSizingModel.forEach(({ colId, flex, width }) => {\n const columnState = getColumnState(colId);\n columnState.flex = flex !== null && flex !== void 0 ? flex : null;\n columnState.width = width;\n });\n }\n const columns = columnOrderState === null || columnOrderState === void 0 ? void 0 : columnOrderState.orderedColIds;\n const applyOrder = !!(columns === null || columns === void 0 ? void 0 : columns.length);\n const columnStates = applyOrder ? columns.map(colId => getColumnState(colId)) : Object.values(columnStateMap);\n if (columnStates.length) {\n this.columnStates = columnStates;\n const defaultState = {\n sort: null,\n sortIndex: null,\n rowGroup: null,\n rowGroupIndex: null,\n aggFunc: null,\n pivot: null,\n pivotIndex: null,\n pinned: null,\n hide: null,\n flex: null,\n };\n this.columnModel.applyColumnState({\n state: columnStates,\n applyOrder,\n defaultState\n }, 'gridInitializing');\n }\n }\n setColumnPivotState(applyOrder) {\n const columnStates = this.columnStates;\n this.columnStates = undefined;\n const columnGroupStates = this.columnGroupStates;\n this.columnGroupStates = undefined;\n if (!this.columnModel.isSecondaryColumnsPresent()) {\n return;\n }\n if (columnStates) {\n let secondaryColumnStates = [];\n for (const columnState of columnStates) {\n if (this.columnModel.getSecondaryColumn(columnState.colId)) {\n secondaryColumnStates.push(columnState);\n }\n }\n this.columnModel.applyColumnState({\n state: secondaryColumnStates,\n applyOrder\n }, 'gridInitializing');\n }\n if (columnGroupStates) {\n // no easy/performant way of knowing which column groups are pivot column groups\n this.columnModel.setColumnGroupState(columnGroupStates, 'gridInitializing');\n }\n }\n getColumnGroupState() {\n const columnGroupState = this.columnModel.getColumnGroupState();\n const openColumnGroups = [];\n columnGroupState.forEach(({ groupId, open }) => {\n if (open) {\n openColumnGroups.push(groupId);\n }\n });\n return openColumnGroups.length ? { openColumnGroupIds: openColumnGroups } : undefined;\n }\n setColumnGroupState(initialState) {\n var _a;\n if (!initialState.hasOwnProperty('columnGroup')) {\n return;\n }\n const openColumnGroups = new Set((_a = initialState.columnGroup) === null || _a === void 0 ? void 0 : _a.openColumnGroupIds);\n const existingColumnGroupState = this.columnModel.getColumnGroupState();\n const stateItems = existingColumnGroupState.map(({ groupId }) => {\n const open = openColumnGroups.has(groupId);\n if (open) {\n openColumnGroups.delete(groupId);\n }\n return {\n groupId,\n open\n };\n });\n // probably pivot cols\n openColumnGroups.forEach(groupId => {\n stateItems.push({\n groupId,\n open: true\n });\n });\n if (stateItems.length) {\n this.columnGroupStates = stateItems;\n }\n this.columnModel.setColumnGroupState(stateItems, 'gridInitializing');\n }\n getFilterState() {\n var _a;\n let filterModel = this.filterManager.getFilterModel();\n if (filterModel && Object.keys(filterModel).length === 0) {\n filterModel = undefined;\n }\n const advancedFilterModel = (_a = this.filterManager.getAdvancedFilterModel()) !== null && _a !== void 0 ? _a : undefined;\n return filterModel || advancedFilterModel ? { filterModel, advancedFilterModel } : undefined;\n }\n setFilterState(filterState, gridOptionAdvancedFilterModel) {\n const { filterModel, advancedFilterModel } = filterState !== null && filterState !== void 0 ? filterState : { advancedFilterModel: gridOptionAdvancedFilterModel };\n if (filterModel) {\n this.filterManager.setFilterModel(filterModel, 'columnFilter');\n }\n if (advancedFilterModel) {\n this.filterManager.setAdvancedFilterModel(advancedFilterModel);\n }\n }\n getRangeSelectionState() {\n var _a;\n const cellRanges = (_a = this.rangeService) === null || _a === void 0 ? void 0 : _a.getCellRanges().map(cellRange => {\n const { id, type, startRow, endRow, columns, startColumn } = cellRange;\n return {\n id,\n type,\n startRow,\n endRow,\n colIds: columns.map(column => column.getColId()),\n startColId: startColumn.getColId()\n };\n });\n return (cellRanges === null || cellRanges === void 0 ? void 0 : cellRanges.length) ? { cellRanges } : undefined;\n }\n setRangeSelectionState(rangeSelectionState) {\n var _a;\n if (!this.gridOptionsService.get('enableRangeSelection')) {\n return;\n }\n const cellRanges = rangeSelectionState.cellRanges.map(cellRange => (Object.assign(Object.assign({}, cellRange), { columns: cellRange.colIds.map(colId => this.columnModel.getGridColumn(colId)), startColumn: this.columnModel.getGridColumn(cellRange.startColId) })));\n (_a = this.rangeService) === null || _a === void 0 ? void 0 : _a.setCellRanges(cellRanges);\n }\n getScrollState() {\n var _a, _b, _c;\n if (!this.isClientSideRowModel) {\n // can't restore, so don't provide\n return undefined;\n }\n const scrollFeature = (_a = this.ctrlsService.getGridBodyCtrl()) === null || _a === void 0 ? void 0 : _a.getScrollFeature();\n const { left } = (_b = scrollFeature === null || scrollFeature === void 0 ? void 0 : scrollFeature.getHScrollPosition()) !== null && _b !== void 0 ? _b : { left: 0 };\n const { top } = (_c = scrollFeature === null || scrollFeature === void 0 ? void 0 : scrollFeature.getVScrollPosition()) !== null && _c !== void 0 ? _c : { top: 0 };\n return top || left ? {\n top,\n left\n } : undefined;\n }\n setScrollState(scrollState) {\n var _a;\n if (!this.isClientSideRowModel) {\n return;\n }\n const { top, left } = scrollState;\n (_a = this.ctrlsService.getGridBodyCtrl()) === null || _a === void 0 ? void 0 : _a.getScrollFeature().setScrollPosition(top, left);\n }\n getSideBarState() {\n var _a, _b;\n return (_b = (_a = this.sideBarService) === null || _a === void 0 ? void 0 : _a.getSideBarComp()) === null || _b === void 0 ? void 0 : _b.getState();\n }\n getFocusedCellState() {\n if (!this.isClientSideRowModel) {\n // can't restore, so don't provide\n return undefined;\n }\n const focusedCell = this.focusService.getFocusedCell();\n if (focusedCell) {\n const { column, rowIndex, rowPinned } = focusedCell;\n return {\n colId: column.getColId(),\n rowIndex,\n rowPinned\n };\n }\n return undefined;\n }\n setFocusedCellState(focusedCellState) {\n if (!this.isClientSideRowModel) {\n return;\n }\n const { colId, rowIndex, rowPinned } = focusedCellState;\n this.focusService.setFocusedCell({\n column: this.columnModel.getGridColumn(colId),\n rowIndex,\n rowPinned,\n forceBrowserFocus: true,\n preventScrollOnBrowserFocus: true\n });\n }\n getPaginationState() {\n const page = this.paginationProxy.getCurrentPage();\n const pageSize = !this.gridOptionsService.get('paginationAutoPageSize')\n ? this.paginationProxy.getPageSize() : undefined;\n if (!page && !pageSize) {\n return;\n }\n return { page, pageSize };\n }\n setPaginationState(paginationState) {\n if (paginationState.pageSize && !this.gridOptionsService.get('paginationAutoPageSize')) {\n this.paginationProxy.setPageSize(paginationState.pageSize, 'initialState');\n }\n if (typeof paginationState.page === 'number') {\n this.paginationProxy.setPage(paginationState.page);\n }\n }\n getRowSelectionState() {\n var _a;\n const selectionState = this.selectionService.getSelectionState();\n const noSelections = !selectionState || (!Array.isArray(selectionState) &&\n (selectionState.selectAll === false ||\n selectionState.selectAllChildren === false) && !((_a = selectionState === null || selectionState === void 0 ? void 0 : selectionState.toggledNodes) === null || _a === void 0 ? void 0 : _a.length));\n return noSelections ? undefined : selectionState;\n }\n setRowSelectionState(rowSelectionState) {\n this.selectionService.setSelectionState(rowSelectionState, 'gridInitializing');\n }\n getRowGroupExpansionState() {\n const expandedRowGroups = this.expansionService.getExpandedRows();\n return expandedRowGroups.length ? {\n expandedRowGroupIds: expandedRowGroups\n } : undefined;\n }\n setRowGroupExpansionState(rowGroupExpansionState) {\n this.expansionService.expandRows(rowGroupExpansionState.expandedRowGroupIds);\n }\n updateColumnState(features) {\n const newColumnState = this.getColumnState();\n let hasChanged = false;\n Object.entries(newColumnState).forEach(([key, value]) => {\n if (!jsonEquals(value, this.cachedState[key])) {\n hasChanged = true;\n }\n });\n this.cachedState = Object.assign(Object.assign({}, this.cachedState), newColumnState);\n if (hasChanged) {\n this.dispatchStateUpdateEvent(features);\n }\n }\n updateCachedState(key, value) {\n const existingValue = this.cachedState[key];\n this.cachedState = Object.assign(Object.assign({}, this.cachedState), { [key]: value });\n if (!jsonEquals(value, existingValue)) {\n this.dispatchStateUpdateEvent([key]);\n }\n }\n dispatchStateUpdateEvent(sources) {\n if (this.suppressEvents) {\n return;\n }\n sources.forEach(source => this.queuedUpdateSources.add(source));\n this.dispatchStateUpdateEventDebounced();\n }\n dispatchQueuedStateUpdateEvents() {\n const sources = Array.from(this.queuedUpdateSources);\n this.queuedUpdateSources.clear();\n const event = {\n type: Events.EVENT_STATE_UPDATED,\n sources,\n state: this.cachedState\n };\n this.eventService.dispatchEvent(event);\n }\n suppressEventsAndDispatchInitEvent(updateFunc) {\n this.suppressEvents = true;\n this.columnAnimationService.setSuppressAnimation(true);\n updateFunc();\n // We want to suppress any grid events, but not user events.\n // Using a timeout here captures things like column resizing and emits a single grid initializing event.\n setTimeout(() => {\n this.suppressEvents = false;\n // We only want the grid initializing source.\n this.queuedUpdateSources.clear();\n if (!this.isAlive()) {\n // Ensure the grid is still alive before dispatching the event.\n return;\n }\n this.columnAnimationService.setSuppressAnimation(false);\n this.dispatchStateUpdateEvent(['gridInitializing']);\n });\n }\n};\n__decorate([\n Autowired('filterManager')\n], StateService.prototype, \"filterManager\", void 0);\n__decorate([\n Optional('rangeService')\n], StateService.prototype, \"rangeService\", void 0);\n__decorate([\n Autowired('ctrlsService')\n], StateService.prototype, \"ctrlsService\", void 0);\n__decorate([\n Optional('sideBarService')\n], StateService.prototype, \"sideBarService\", void 0);\n__decorate([\n Autowired('focusService')\n], StateService.prototype, \"focusService\", void 0);\n__decorate([\n Autowired('columnModel')\n], StateService.prototype, \"columnModel\", void 0);\n__decorate([\n Autowired('paginationProxy')\n], StateService.prototype, \"paginationProxy\", void 0);\n__decorate([\n Autowired('rowModel')\n], StateService.prototype, \"rowModel\", void 0);\n__decorate([\n Autowired('selectionService')\n], StateService.prototype, \"selectionService\", void 0);\n__decorate([\n Autowired('expansionService')\n], StateService.prototype, \"expansionService\", void 0);\n__decorate([\n Autowired('columnAnimationService')\n], StateService.prototype, \"columnAnimationService\", void 0);\n__decorate([\n PostConstruct\n], StateService.prototype, \"postConstruct\", null);\nStateService = __decorate([\n Bean('stateService')\n], StateService);\nexport { StateService };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { fuzzyCheckStrings } from \"../utils/fuzzyMatch.mjs\";\nimport { iterateObject } from \"../utils/object.mjs\";\nimport { warnOnce } from \"../utils/function.mjs\";\nimport { GRID_OPTIONS_VALIDATORS } from \"./rules/gridOptionsValidations.mjs\";\nimport { COL_DEF_VALIDATORS } from \"./rules/colDefValidations.mjs\";\nimport { BeanStub } from \"../context/beanStub.mjs\";\nimport { Autowired, Bean, PostConstruct } from \"../context/context.mjs\";\nimport { ModuleRegistry } from \"../modules/moduleRegistry.mjs\";\nlet ValidationService = class ValidationService extends BeanStub {\n init() {\n this.processGridOptions(this.gridOptions);\n }\n processGridOptions(options) {\n this.processOptions(options, GRID_OPTIONS_VALIDATORS);\n }\n processColumnDefs(options) {\n this.processOptions(options, COL_DEF_VALIDATORS);\n }\n processOptions(options, validator) {\n const { validations, deprecations, allProperties, propertyExceptions, objectName, docsUrl } = validator;\n if (allProperties && this.gridOptions.suppressPropertyNamesCheck !== true) {\n this.checkProperties(options, [...propertyExceptions !== null && propertyExceptions !== void 0 ? propertyExceptions : [], ...Object.keys(deprecations)], allProperties, objectName, docsUrl);\n }\n const warnings = new Set();\n const optionKeys = Object.keys(options);\n optionKeys.forEach((key) => {\n var _a;\n const deprecation = deprecations[key];\n if (deprecation) {\n if ('renamed' in deprecation) {\n const { renamed, version } = deprecation;\n warnings.add(`As of v${version}, ${String(key)} is deprecated. Please use ${String(renamed)} instead.`);\n options[renamed] = options[key];\n }\n else {\n const { message, version } = deprecation;\n warnings.add(`As of v${version}, ${String(key)} is deprecated. ${message !== null && message !== void 0 ? message : ''}`);\n }\n }\n const value = options[key];\n if (value == null || value === false) {\n // false implies feature is disabled, don't validate.\n return;\n }\n const rulesOrGetter = validations[key];\n let rules;\n if (!rulesOrGetter) {\n return;\n }\n else if (typeof rulesOrGetter === 'function') {\n const fromGetter = rulesOrGetter(options, this.gridOptions);\n if (!fromGetter) {\n return;\n }\n // this is a sub validator.\n if ('objectName' in fromGetter) {\n const value = options[key];\n if (Array.isArray(value)) {\n value.forEach(item => {\n this.processOptions(item, fromGetter);\n });\n return;\n }\n this.processOptions(options[key], fromGetter);\n return;\n }\n rules = fromGetter;\n }\n else {\n rules = rulesOrGetter;\n }\n const { module, dependencies, supportedRowModels } = rules;\n if (supportedRowModels) {\n const rowModel = (_a = this.gridOptions.rowModelType) !== null && _a !== void 0 ? _a : 'clientSide';\n if (!supportedRowModels.includes(rowModel)) {\n warnings.add(`${String(key)} is not supported with the '${rowModel}' row model.`);\n return;\n }\n }\n if (module) {\n const modules = Array.isArray(module) ? module : [module];\n let allRegistered = true;\n modules.forEach(m => {\n if (!ModuleRegistry.__assertRegistered(m, String(key), this.context.getGridId())) {\n allRegistered = false;\n warnings.add(`${String(key)} is only available when ${m} is loaded.`);\n }\n });\n if (!allRegistered) {\n return;\n }\n }\n if (dependencies) {\n const warning = this.checkForWarning(key, dependencies, options);\n if (warning) {\n warnings.add(warning);\n return;\n }\n }\n });\n if (warnings.size > 0) {\n warnings.forEach(warning => {\n warnOnce(warning);\n });\n }\n }\n ;\n checkForWarning(key, validator, options) {\n if (typeof validator === 'function') {\n return validator(options, this.gridOptions);\n }\n const optionEntries = Object.entries(validator);\n const failed = optionEntries.find(([key, value]) => {\n const gridOptionValue = options[key];\n return !value.includes(gridOptionValue);\n });\n if (!failed) {\n return null;\n }\n const [failedKey, possibleOptions] = failed;\n if (possibleOptions.length > 1) {\n return `'${String(key)}' requires '${failedKey}' to be one of [${possibleOptions.join(', ')}].`;\n }\n return `'${String(key)}' requires '${failedKey}' to be ${possibleOptions[0]}.`;\n }\n checkProperties(object, exceptions, // deprecated properties generally\n validProperties, // properties to recommend\n containerName, docsUrl) {\n // Vue adds these properties to all objects, so we ignore them when checking for invalid properties\n const VUE_FRAMEWORK_PROPS = ['__ob__', '__v_skip', '__metadata__'];\n const invalidProperties = fuzzyCheckStrings(Object.getOwnPropertyNames(object), [...VUE_FRAMEWORK_PROPS, ...exceptions, ...validProperties], validProperties);\n iterateObject(invalidProperties, (key, value) => {\n warnOnce(`invalid ${containerName} property '${key}' did you mean any of these: ${value.slice(0, 8).join(', ')}`);\n });\n if (Object.keys(invalidProperties).length > 0 && docsUrl) {\n const url = this.getFrameworkOverrides().getDocLink(docsUrl);\n warnOnce(`to see all the valid ${containerName} properties please check: ${url}`);\n }\n }\n};\n__decorate([\n Autowired('gridOptions')\n], ValidationService.prototype, \"gridOptions\", void 0);\n__decorate([\n PostConstruct\n], ValidationService.prototype, \"init\", null);\nValidationService = __decorate([\n Bean('validationService')\n], ValidationService);\nexport { ValidationService };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { BeanStub } from \"../context/beanStub.mjs\";\nimport { Bean, PostConstruct } from \"../context/context.mjs\";\nimport { FrameworkEventListenerService } from \"./frameworkEventListenerService.mjs\";\nlet ApiEventService = class ApiEventService extends BeanStub {\n constructor() {\n super(...arguments);\n this.syncEventListeners = new Map();\n this.asyncEventListeners = new Map();\n this.syncGlobalEventListeners = new Set();\n this.asyncGlobalEventListeners = new Set();\n }\n postConstruct() {\n this.frameworkEventWrappingService = new FrameworkEventListenerService(this.getFrameworkOverrides());\n }\n addEventListener(eventType, userListener) {\n const listener = this.frameworkEventWrappingService.wrap(userListener);\n const async = this.gridOptionsService.useAsyncEvents();\n const listeners = async ? this.asyncEventListeners : this.syncEventListeners;\n if (!listeners.has(eventType)) {\n listeners.set(eventType, new Set());\n }\n listeners.get(eventType).add(listener);\n this.eventService.addEventListener(eventType, listener, async);\n }\n addGlobalListener(userListener) {\n const listener = this.frameworkEventWrappingService.wrapGlobal(userListener);\n const async = this.gridOptionsService.useAsyncEvents();\n const listeners = async ? this.asyncGlobalEventListeners : this.syncGlobalEventListeners;\n listeners.add(listener);\n this.eventService.addGlobalListener(listener, async);\n }\n removeEventListener(eventType, userListener) {\n var _a;\n const listener = this.frameworkEventWrappingService.unwrap(userListener);\n const asyncListeners = this.asyncEventListeners.get(eventType);\n const hasAsync = !!(asyncListeners === null || asyncListeners === void 0 ? void 0 : asyncListeners.delete(listener));\n if (!hasAsync) {\n (_a = this.asyncEventListeners.get(eventType)) === null || _a === void 0 ? void 0 : _a.delete(listener);\n }\n this.eventService.removeEventListener(eventType, listener, hasAsync);\n }\n removeGlobalListener(userListener) {\n const listener = this.frameworkEventWrappingService.unwrapGlobal(userListener);\n const hasAsync = this.asyncGlobalEventListeners.delete(listener);\n if (!hasAsync) {\n this.syncGlobalEventListeners.delete(listener);\n }\n this.eventService.removeGlobalListener(listener, hasAsync);\n }\n destroyEventListeners(map, async) {\n map.forEach((listeners, eventType) => {\n listeners.forEach(listener => this.eventService.removeEventListener(eventType, listener, async));\n listeners.clear();\n });\n map.clear();\n }\n destroyGlobalListeners(set, async) {\n set.forEach(listener => this.eventService.removeGlobalListener(listener, async));\n set.clear();\n }\n destroy() {\n super.destroy();\n this.destroyEventListeners(this.syncEventListeners, false);\n this.destroyEventListeners(this.asyncEventListeners, true);\n this.destroyGlobalListeners(this.syncGlobalEventListeners, false);\n this.destroyGlobalListeners(this.asyncGlobalEventListeners, true);\n }\n};\n__decorate([\n PostConstruct\n], ApiEventService.prototype, \"postConstruct\", null);\nApiEventService = __decorate([\n Bean('apiEventService')\n], ApiEventService);\nexport { ApiEventService };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component } from \"../../widgets/component.mjs\";\nimport { Autowired, PostConstruct } from \"../../context/context.mjs\";\nimport { AgSelect } from \"../../widgets/agSelect.mjs\";\nimport { Events } from \"../../eventKeys.mjs\";\nimport { clearElement } from \"../../utils/dom.mjs\";\nimport { warnOnce } from \"../../utils/function.mjs\";\nexport class PageSizeSelectorComp extends Component {\n constructor() {\n super(/* html */ ``);\n this.hasEmptyOption = false;\n this.handlePageSizeItemSelected = () => {\n if (!this.selectPageSizeComp) {\n return;\n }\n const newValue = this.selectPageSizeComp.getValue();\n if (!newValue) {\n return;\n }\n const paginationPageSize = Number(newValue);\n if (isNaN(paginationPageSize) ||\n paginationPageSize < 1 ||\n paginationPageSize === this.paginationProxy.getPageSize()) {\n return;\n }\n this.paginationProxy.setPageSize(paginationPageSize, 'pageSizeSelector');\n if (this.hasEmptyOption) {\n // Toggle the selector to force a refresh of the options and hide the empty option,\n // as it's no longer needed.\n this.toggleSelectDisplay(true);\n }\n this.selectPageSizeComp.getFocusableElement().focus();\n };\n }\n init() {\n this.addManagedPropertyListener('paginationPageSizeSelector', () => {\n this.onPageSizeSelectorValuesChange();\n });\n this.addManagedListener(this.eventService, Events.EVENT_PAGINATION_CHANGED, (event) => this.handlePaginationChanged(event));\n }\n handlePaginationChanged(paginationChangedEvent) {\n if (!this.selectPageSizeComp || !(paginationChangedEvent === null || paginationChangedEvent === void 0 ? void 0 : paginationChangedEvent.newPageSize)) {\n return;\n }\n const paginationPageSize = this.paginationProxy.getPageSize();\n if (this.getPageSizeSelectorValues().includes(paginationPageSize)) {\n this.selectPageSizeComp.setValue(paginationPageSize.toString());\n }\n else {\n if (this.hasEmptyOption) {\n this.selectPageSizeComp.setValue('');\n }\n else {\n this.toggleSelectDisplay(true);\n }\n }\n }\n toggleSelectDisplay(show) {\n if (this.selectPageSizeComp) {\n this.reset();\n }\n if (!show) {\n return;\n }\n this.reloadPageSizesSelector();\n if (!this.selectPageSizeComp) {\n return;\n }\n this.appendChild(this.selectPageSizeComp);\n }\n reset() {\n clearElement(this.getGui());\n if (!this.selectPageSizeComp) {\n return;\n }\n this.destroyBean(this.selectPageSizeComp);\n this.selectPageSizeComp = undefined;\n }\n onPageSizeSelectorValuesChange() {\n if (!this.selectPageSizeComp) {\n return;\n }\n if (this.shouldShowPageSizeSelector()) {\n this.reloadPageSizesSelector();\n }\n }\n shouldShowPageSizeSelector() {\n return (this.gridOptionsService.get('pagination') &&\n !this.gridOptionsService.get('suppressPaginationPanel') &&\n !this.gridOptionsService.get('paginationAutoPageSize') &&\n this.gridOptionsService.get('paginationPageSizeSelector') !== false);\n }\n reloadPageSizesSelector() {\n const pageSizeOptions = this.getPageSizeSelectorValues();\n const paginationPageSizeOption = this.paginationProxy.getPageSize();\n const shouldAddAndSelectEmptyOption = !paginationPageSizeOption || !pageSizeOptions.includes(paginationPageSizeOption);\n if (shouldAddAndSelectEmptyOption) {\n // When the paginationPageSize option is set to a value that is\n // not in the list of page size options.\n pageSizeOptions.unshift('');\n warnOnce(`The paginationPageSize grid option is set to a value that is not in the list of page size options.\n Please make sure that the paginationPageSize grid option is set to one of the values in the \n paginationPageSizeSelector array, or set the paginationPageSizeSelector to false to hide the page size selector.`);\n }\n if (this.selectPageSizeComp) {\n this.destroyBean(this.selectPageSizeComp);\n this.selectPageSizeComp = undefined;\n }\n const localeTextFunc = this.localeService.getLocaleTextFunc();\n const localisedLabel = localeTextFunc('pageSizeSelectorLabel', 'Page Size:');\n const options = pageSizeOptions.map(value => ({\n value: String(value),\n text: String(value)\n }));\n const localisedAriaLabel = localeTextFunc('ariaPageSizeSelectorLabel', 'Page Size');\n this.selectPageSizeComp = this.createManagedBean(new AgSelect())\n .addOptions(options)\n .setValue(String(shouldAddAndSelectEmptyOption ? '' : paginationPageSizeOption))\n .setAriaLabel(localisedAriaLabel)\n .setLabel(localisedLabel)\n .onValueChange(() => this.handlePageSizeItemSelected());\n this.hasEmptyOption = shouldAddAndSelectEmptyOption;\n }\n getPageSizeSelectorValues() {\n const defaultValues = [20, 50, 100];\n const paginationPageSizeSelectorValues = this.gridOptionsService.get('paginationPageSizeSelector');\n if (!Array.isArray(paginationPageSizeSelectorValues) ||\n !this.validateValues(paginationPageSizeSelectorValues)) {\n return defaultValues;\n }\n return [...paginationPageSizeSelectorValues].sort((a, b) => a - b);\n }\n validateValues(values) {\n if (!values.length) {\n warnOnce(`The paginationPageSizeSelector grid option is an empty array. This is most likely a mistake.\n If you want to hide the page size selector, please set the paginationPageSizeSelector to false.`);\n return false;\n }\n for (let i = 0; i < values.length; i++) {\n const value = values[i];\n const isNumber = typeof value === 'number';\n const isPositive = value > 0;\n if (!isNumber) {\n warnOnce(`The paginationPageSizeSelector grid option contains a non-numeric value.\n Please make sure that all values in the paginationPageSizeSelector array are numbers.`);\n return false;\n }\n if (!isPositive) {\n warnOnce(`The paginationPageSizeSelector grid option contains a negative number or zero.\n Please make sure that all values in the paginationPageSizeSelector array are positive.`);\n return false;\n }\n }\n return true;\n }\n destroy() {\n this.toggleSelectDisplay(false);\n super.destroy();\n }\n}\n__decorate([\n Autowired('localeService')\n], PageSizeSelectorComp.prototype, \"localeService\", void 0);\n__decorate([\n Autowired('gridOptionsService')\n], PageSizeSelectorComp.prototype, \"gridOptionsService\", void 0);\n__decorate([\n Autowired('paginationProxy')\n], PageSizeSelectorComp.prototype, \"paginationProxy\", void 0);\n__decorate([\n PostConstruct\n], PageSizeSelectorComp.prototype, \"init\", null);\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { BeanStub } from \"../context/beanStub.mjs\";\nimport { Autowired, Bean, PostConstruct } from \"../context/context.mjs\";\nimport { setAriaAtomic, setAriaLive, setAriaRelevant } from \"../utils/aria.mjs\";\nimport { clearElement } from \"../utils/dom.mjs\";\nimport { debounce } from \"../utils/function.mjs\";\nlet AriaAnnouncementService = class AriaAnnouncementService extends BeanStub {\n constructor() {\n super();\n this.descriptionContainer = null;\n this.announceValue = debounce(this.announceValue.bind(this), 200);\n }\n postConstruct() {\n const eDocument = this.gridOptionsService.getDocument();\n const div = this.descriptionContainer = eDocument.createElement('div');\n div.classList.add('ag-aria-description-container');\n setAriaLive(div, 'polite');\n setAriaRelevant(div, 'additions text');\n setAriaAtomic(div, true);\n this.eGridDiv.appendChild(div);\n }\n announceValue(value) {\n if (!this.descriptionContainer) {\n return;\n }\n // screen readers announce a change in content, so we set it to an empty value\n // and then use a setTimeout to force the Screen Reader announcement \n this.descriptionContainer.textContent = '';\n setTimeout(() => {\n this.descriptionContainer.textContent = value;\n }, 50);\n }\n destroy() {\n super.destroy();\n const { descriptionContainer } = this;\n if (descriptionContainer) {\n clearElement(descriptionContainer);\n if (descriptionContainer.parentElement) {\n descriptionContainer.parentElement.removeChild(descriptionContainer);\n }\n }\n this.descriptionContainer = null;\n this.eGridDiv = null;\n }\n};\n__decorate([\n Autowired('eGridDiv')\n], AriaAnnouncementService.prototype, \"eGridDiv\", void 0);\n__decorate([\n PostConstruct\n], AriaAnnouncementService.prototype, \"postConstruct\", null);\nAriaAnnouncementService = __decorate([\n Bean('ariaAnnouncementService')\n], AriaAnnouncementService);\nexport { AriaAnnouncementService };\n","export var BarColumnLabelPlacement;\n(function (BarColumnLabelPlacement) {\n BarColumnLabelPlacement[\"InsideBase\"] = \"insideBase\";\n BarColumnLabelPlacement[\"InsideEnd\"] = \"insideEnd\";\n BarColumnLabelPlacement[\"Center\"] = \"center\";\n BarColumnLabelPlacement[\"OutsideEnd\"] = \"outsideEnd\";\n})(BarColumnLabelPlacement || (BarColumnLabelPlacement = {}));\n","/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v31.1.1\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nconst globalObj = typeof global === 'undefined' ? {} : global;\nglobalObj.HTMLElement = typeof HTMLElement === 'undefined' ? {} : HTMLElement;\nglobalObj.HTMLButtonElement = typeof HTMLButtonElement === 'undefined' ? {} : HTMLButtonElement;\nglobalObj.HTMLSelectElement = typeof HTMLSelectElement === 'undefined' ? {} : HTMLSelectElement;\nglobalObj.HTMLInputElement = typeof HTMLInputElement === 'undefined' ? {} : HTMLInputElement;\nglobalObj.Node = typeof Node === 'undefined' ? {} : Node;\nglobalObj.MouseEvent = typeof MouseEvent === 'undefined' ? {} : MouseEvent;\n// columns\nexport { ColumnFactory } from \"./columns/columnFactory.mjs\";\nexport { ColumnModel } from \"./columns/columnModel.mjs\";\nexport { ColumnKeyCreator } from \"./columns/columnKeyCreator.mjs\";\nexport { ColumnUtils } from \"./columns/columnUtils.mjs\";\nexport { DisplayedGroupCreator } from \"./columns/displayedGroupCreator.mjs\";\nexport { GroupInstanceIdCreator } from \"./columns/groupInstanceIdCreator.mjs\";\nexport { GROUP_AUTO_COLUMN_ID } from \"./columns/autoGroupColService.mjs\";\n// components\nexport { ComponentUtil } from \"./components/componentUtil.mjs\";\nexport { AgStackComponentsRegistry } from \"./components/agStackComponentsRegistry.mjs\";\nexport { UserComponentRegistry } from \"./components/framework/userComponentRegistry.mjs\";\nexport { UserComponentFactory } from \"./components/framework/userComponentFactory.mjs\";\nexport { ColDefUtil } from \"./components/colDefUtil.mjs\";\n// context\nexport { BeanStub } from \"./context/beanStub.mjs\";\nexport { Context, Autowired, PostConstruct, PreConstruct, Optional, Bean, Qualifier, PreDestroy } from \"./context/context.mjs\";\nexport { QuerySelector, RefSelector } from \"./widgets/componentAnnotations.mjs\";\n// excel\nexport { ExcelFactoryMode, } from \"./interfaces/iExcelCreator.mjs\";\n// dragAndDrop\nexport { DragAndDropService, DragSourceType } from \"./dragAndDrop/dragAndDropService.mjs\";\nexport { DragService } from \"./dragAndDrop/dragService.mjs\";\nexport { VirtualListDragFeature } from \"./dragAndDrop/virtualListDragFeature.mjs\";\n// entities\nexport { Column } from \"./entities/column.mjs\";\nexport { ColumnGroup } from \"./entities/columnGroup.mjs\";\nexport { ProvidedColumnGroup } from \"./entities/providedColumnGroup.mjs\";\nexport { RowNode } from \"./entities/rowNode.mjs\";\nexport { RowHighlightPosition } from \"./interfaces/iRowNode.mjs\";\nexport { FilterManager } from \"./filter/filterManager.mjs\";\nexport { ProvidedFilter } from \"./filter/provided/providedFilter.mjs\";\nexport { SimpleFilter } from \"./filter/provided/simpleFilter.mjs\";\nexport { ScalarFilter } from \"./filter/provided/scalarFilter.mjs\";\nexport { NumberFilter } from \"./filter/provided/number/numberFilter.mjs\";\nexport { TextFilter } from \"./filter/provided/text/textFilter.mjs\";\nexport { DateFilter } from \"./filter/provided/date/dateFilter.mjs\";\nexport { TextFloatingFilter } from './filter/provided/text/textFloatingFilter.mjs';\nexport { HeaderFilterCellComp } from './headerRendering/cells/floatingFilter/headerFilterCellComp.mjs';\nexport { FloatingFilterMapper } from './filter/floating/floatingFilterMapper.mjs';\n// gridPanel\nexport { GridBodyComp } from \"./gridBodyComp/gridBodyComp.mjs\";\nexport { GridBodyCtrl, RowAnimationCssClasses } from \"./gridBodyComp/gridBodyCtrl.mjs\";\nexport { ScrollVisibleService } from \"./gridBodyComp/scrollVisibleService.mjs\";\nexport { MouseEventService } from \"./gridBodyComp/mouseEventService.mjs\";\nexport { NavigationService } from \"./gridBodyComp/navigationService.mjs\";\n// rowContainer\nexport { RowContainerComp } from \"./gridBodyComp/rowContainer/rowContainerComp.mjs\";\nexport { RowContainerName, RowContainerCtrl, RowContainerType, getRowContainerTypeForName } from \"./gridBodyComp/rowContainer/rowContainerCtrl.mjs\";\n// headerRendering\nexport { BodyDropPivotTarget } from \"./headerRendering/columnDrag/bodyDropPivotTarget.mjs\";\nexport { BodyDropTarget } from \"./headerRendering/columnDrag/bodyDropTarget.mjs\";\nexport { CssClassApplier } from \"./headerRendering/cells/cssClassApplier.mjs\";\nexport { HeaderRowContainerComp } from \"./headerRendering/rowContainer/headerRowContainerComp.mjs\";\nexport { GridHeaderComp } from \"./headerRendering/gridHeaderComp.mjs\";\nexport { GridHeaderCtrl } from \"./headerRendering/gridHeaderCtrl.mjs\";\nexport { HeaderRowComp, HeaderRowType } from \"./headerRendering/row/headerRowComp.mjs\";\nexport { HeaderRowCtrl } from \"./headerRendering/row/headerRowCtrl.mjs\";\nexport { HeaderCellCtrl } from \"./headerRendering/cells/column/headerCellCtrl.mjs\";\nexport { SortIndicatorComp } from \"./headerRendering/cells/column/sortIndicatorComp.mjs\";\nexport { HeaderFilterCellCtrl } from \"./headerRendering/cells/floatingFilter/headerFilterCellCtrl.mjs\";\nexport { HeaderGroupCellCtrl } from \"./headerRendering/cells/columnGroup/headerGroupCellCtrl.mjs\";\nexport { AbstractHeaderCellCtrl } from \"./headerRendering/cells/abstractCell/abstractHeaderCellCtrl.mjs\";\nexport { HeaderRowContainerCtrl } from \"./headerRendering/rowContainer/headerRowContainerCtrl.mjs\";\nexport { HorizontalResizeService } from \"./headerRendering/common/horizontalResizeService.mjs\";\nexport { MoveColumnFeature } from \"./headerRendering/columnDrag/moveColumnFeature.mjs\";\nexport { StandardMenuFactory } from \"./headerRendering/cells/column/standardMenu.mjs\";\n// layout\nexport { TabbedLayout } from \"./layout/tabbedLayout.mjs\";\n// misc\nexport { ResizeObserverService } from \"./misc/resizeObserverService.mjs\";\nexport { AnimationFrameService } from \"./misc/animationFrameService.mjs\";\nexport { ExpansionService } from \"./misc/expansionService.mjs\";\nexport { MenuService } from \"./misc/menuService.mjs\";\nexport { LargeTextCellEditor } from \"./rendering/cellEditors/largeTextCellEditor.mjs\";\nexport { PopupEditorWrapper } from \"./rendering/cellEditors/popupEditorWrapper.mjs\";\nexport { SelectCellEditor } from \"./rendering/cellEditors/selectCellEditor.mjs\";\nexport { TextCellEditor } from \"./rendering/cellEditors/textCellEditor.mjs\";\nexport { NumberCellEditor } from \"./rendering/cellEditors/numberCellEditor.mjs\";\nexport { DateCellEditor } from \"./rendering/cellEditors/dateCellEditor.mjs\";\nexport { DateStringCellEditor } from \"./rendering/cellEditors/dateStringCellEditor.mjs\";\nexport { CheckboxCellEditor } from \"./rendering/cellEditors/checkboxCellEditor.mjs\";\n// rendering / cellRenderers\nexport { Beans } from \"./rendering/beans.mjs\";\nexport { AnimateShowChangeCellRenderer } from \"./rendering/cellRenderers/animateShowChangeCellRenderer.mjs\";\nexport { AnimateSlideCellRenderer } from \"./rendering/cellRenderers/animateSlideCellRenderer.mjs\";\nexport { GroupCellRenderer, } from \"./rendering/cellRenderers/groupCellRenderer.mjs\";\nexport { GroupCellRendererCtrl } from \"./rendering/cellRenderers/groupCellRendererCtrl.mjs\";\n// features\nexport { SetLeftFeature } from \"./rendering/features/setLeftFeature.mjs\";\nexport { PositionableFeature } from \"./rendering/features/positionableFeature.mjs\";\n// rendering\nexport { AutoWidthCalculator } from \"./rendering/autoWidthCalculator.mjs\";\nexport { CheckboxSelectionComponent } from \"./rendering/checkboxSelectionComponent.mjs\";\nexport { CellComp } from \"./rendering/cell/cellComp.mjs\";\nexport { CellCtrl } from \"./rendering/cell/cellCtrl.mjs\";\nexport { RowCtrl } from \"./rendering/row/rowCtrl.mjs\";\nexport { RowRenderer } from \"./rendering/rowRenderer.mjs\";\nexport { ValueFormatterService } from \"./rendering/valueFormatterService.mjs\";\nexport { CssClassManager } from \"./rendering/cssClassManager.mjs\";\nexport { CheckboxCellRenderer } from \"./rendering/cellRenderers/checkboxCellRenderer.mjs\";\n// row models\nexport { PinnedRowModel } from \"./pinnedRowModel/pinnedRowModel.mjs\";\nexport { ServerSideTransactionResultStatus } from \"./interfaces/serverSideTransaction.mjs\";\nexport { ChangedPath } from \"./utils/changedPath.mjs\";\nexport { RowNodeBlock } from \"./rowNodeCache/rowNodeBlock.mjs\";\nexport { RowNodeBlockLoader } from \"./rowNodeCache/rowNodeBlockLoader.mjs\";\nexport { PaginationProxy } from \"./pagination/paginationProxy.mjs\";\nexport { ClientSideRowModelSteps } from \"./interfaces/iClientSideRowModel.mjs\";\n//styling\nexport { StylingService } from \"./styling/stylingService.mjs\";\nexport { LayoutCssClasses } from \"./styling/layoutFeature.mjs\";\n// widgets\nexport { AgAbstractField } from \"./widgets/agAbstractField.mjs\";\nexport { AgCheckbox } from \"./widgets/agCheckbox.mjs\";\nexport { AgRadioButton } from \"./widgets/agRadioButton.mjs\";\nexport { AgToggleButton } from \"./widgets/agToggleButton.mjs\";\nexport { AgInputTextField } from \"./widgets/agInputTextField.mjs\";\nexport { AgInputTextArea } from \"./widgets/agInputTextArea.mjs\";\nexport { AgInputNumberField } from \"./widgets/agInputNumberField.mjs\";\nexport { AgInputDateField } from \"./widgets/agInputDateField.mjs\";\nexport { AgInputRange } from \"./widgets/agInputRange.mjs\";\nexport { AgRichSelect } from \"./widgets/agRichSelect.mjs\";\nexport { AgSelect } from \"./widgets/agSelect.mjs\";\nexport { AgSlider } from \"./widgets/agSlider.mjs\";\nexport { AgGroupComponent } from \"./widgets/agGroupComponent.mjs\";\nexport { AgMenuItemRenderer } from \"./widgets/agMenuItemRenderer.mjs\";\nexport { AgMenuItemComponent } from \"./widgets/agMenuItemComponent.mjs\";\nexport { AgMenuList } from \"./widgets/agMenuList.mjs\";\nexport { AgMenuPanel } from \"./widgets/agMenuPanel.mjs\";\nexport { AgDialog } from \"./widgets/agDialog.mjs\";\nexport { AgPanel } from \"./widgets/agPanel.mjs\";\nexport { Component } from \"./widgets/component.mjs\";\nexport { ManagedFocusFeature } from \"./widgets/managedFocusFeature.mjs\";\nexport { TabGuardComp } from \"./widgets/tabGuardComp.mjs\";\nexport { TabGuardCtrl, TabGuardClassNames } from \"./widgets/tabGuardCtrl.mjs\";\nexport { PopupComponent } from \"./widgets/popupComponent.mjs\";\nexport { PopupService } from \"./widgets/popupService.mjs\";\nexport { TouchListener } from \"./widgets/touchListener.mjs\";\nexport { VirtualList } from \"./widgets/virtualList.mjs\";\nexport { AgAbstractLabel } from \"./widgets/agAbstractLabel.mjs\";\nexport { AgPickerField } from \"./widgets/agPickerField.mjs\";\nexport { AgAutocomplete } from \"./widgets/agAutocomplete.mjs\";\n// range\nexport { CellRangeType, SelectionHandleType } from \"./interfaces/IRangeService.mjs\";\n// root\nexport { AutoScrollService } from './autoScrollService.mjs';\nexport { VanillaFrameworkOverrides } from \"./vanillaFrameworkOverrides.mjs\";\nexport { CellNavigationService } from \"./cellNavigationService.mjs\";\nexport { AlignedGridsService } from \"./alignedGridsService.mjs\";\nexport { KeyCode } from \"./constants/keyCode.mjs\";\nexport { VerticalDirection, HorizontalDirection } from \"./constants/direction.mjs\";\nexport { Grid, GridCoreCreator, createGrid } from \"./grid.mjs\";\nexport { GridApi } from \"./gridApi.mjs\";\nexport { Events } from \"./eventKeys.mjs\";\nexport { FocusService } from \"./focusService.mjs\";\nexport { GridOptionsService } from \"./gridOptionsService.mjs\";\nexport { EventService } from \"./eventService.mjs\";\nexport { SelectableService } from \"./rowNodes/selectableService.mjs\";\nexport { RowNodeSorter } from \"./rowNodes/rowNodeSorter.mjs\";\nexport { CtrlsService } from \"./ctrlsService.mjs\";\nexport { GridComp } from \"./gridComp/gridComp.mjs\";\nexport { GridCtrl } from \"./gridComp/gridCtrl.mjs\";\nexport { Logger, LoggerFactory } from \"./logger.mjs\";\nexport { SortController } from \"./sortController.mjs\";\nexport { TemplateService } from \"./templateService.mjs\";\nexport { LocaleService } from './localeService.mjs';\nexport * from \"./utils/index.mjs\"; // please leave this as is - we want it to be explicit for build reasons\nexport { ValueService } from \"./valueService/valueService.mjs\";\nexport { ValueCache } from \"./valueService/valueCache.mjs\";\nexport { ExpressionService } from \"./valueService/expressionService.mjs\";\nexport { ValueParserService } from \"./valueService/valueParserService.mjs\";\nexport { CellPositionUtils } from \"./entities/cellPositionUtils.mjs\";\nexport { RowPositionUtils } from \"./entities/rowPositionUtils.mjs\";\nexport { HeaderPositionUtils } from \"./headerRendering/common/headerPosition.mjs\";\nexport { HeaderNavigationService, HeaderNavigationDirection } from \"./headerRendering/common/headerNavigationService.mjs\";\nexport { DataTypeService } from \"./columns/dataTypeService.mjs\";\nexport { PropertyKeys } from \"./propertyKeys.mjs\";\nexport { ColumnApi } from \"./columns/columnApi.mjs\";\nexport { BaseComponentWrapper } from \"./components/framework/frameworkComponentWrapper.mjs\";\nexport { Environment } from \"./environment.mjs\";\nexport { TooltipFeature } from \"./widgets/tooltipFeature.mjs\";\nexport { CustomTooltipFeature } from \"./widgets/customTooltipFeature.mjs\";\n// charts\nexport * from \"./interfaces/iChartOptions.mjs\";\nexport * from \"./interfaces/iAgChartOptions.mjs\";\n// sparklines\nexport * from \"./interfaces/iSparklineCellRendererParams.mjs\";\nexport { ModuleNames } from \"./modules/moduleNames.mjs\";\nexport { ModuleRegistry } from \"./modules/moduleRegistry.mjs\";\n// events\nexport * from \"./events.mjs\";\n","export class MD5 {\n constructor() {\n this.ieCompatibility = false;\n }\n init() {\n this.ieCompatibility = (this.md5('hello') != '5d41402abc4b2a76b9719d911017c592');\n }\n md5cycle(x, k) {\n let a = x[0], b = x[1], c = x[2], d = x[3];\n a = this.ff(a, b, c, d, k[0], 7, -680876936);\n d = this.ff(d, a, b, c, k[1], 12, -389564586);\n c = this.ff(c, d, a, b, k[2], 17, 606105819);\n b = this.ff(b, c, d, a, k[3], 22, -1044525330);\n a = this.ff(a, b, c, d, k[4], 7, -176418897);\n d = this.ff(d, a, b, c, k[5], 12, 1200080426);\n c = this.ff(c, d, a, b, k[6], 17, -1473231341);\n b = this.ff(b, c, d, a, k[7], 22, -45705983);\n a = this.ff(a, b, c, d, k[8], 7, 1770035416);\n d = this.ff(d, a, b, c, k[9], 12, -1958414417);\n c = this.ff(c, d, a, b, k[10], 17, -42063);\n b = this.ff(b, c, d, a, k[11], 22, -1990404162);\n a = this.ff(a, b, c, d, k[12], 7, 1804603682);\n d = this.ff(d, a, b, c, k[13], 12, -40341101);\n c = this.ff(c, d, a, b, k[14], 17, -1502002290);\n b = this.ff(b, c, d, a, k[15], 22, 1236535329);\n a = this.gg(a, b, c, d, k[1], 5, -165796510);\n d = this.gg(d, a, b, c, k[6], 9, -1069501632);\n c = this.gg(c, d, a, b, k[11], 14, 643717713);\n b = this.gg(b, c, d, a, k[0], 20, -373897302);\n a = this.gg(a, b, c, d, k[5], 5, -701558691);\n d = this.gg(d, a, b, c, k[10], 9, 38016083);\n c = this.gg(c, d, a, b, k[15], 14, -660478335);\n b = this.gg(b, c, d, a, k[4], 20, -405537848);\n a = this.gg(a, b, c, d, k[9], 5, 568446438);\n d = this.gg(d, a, b, c, k[14], 9, -1019803690);\n c = this.gg(c, d, a, b, k[3], 14, -187363961);\n b = this.gg(b, c, d, a, k[8], 20, 1163531501);\n a = this.gg(a, b, c, d, k[13], 5, -1444681467);\n d = this.gg(d, a, b, c, k[2], 9, -51403784);\n c = this.gg(c, d, a, b, k[7], 14, 1735328473);\n b = this.gg(b, c, d, a, k[12], 20, -1926607734);\n a = this.hh(a, b, c, d, k[5], 4, -378558);\n d = this.hh(d, a, b, c, k[8], 11, -2022574463);\n c = this.hh(c, d, a, b, k[11], 16, 1839030562);\n b = this.hh(b, c, d, a, k[14], 23, -35309556);\n a = this.hh(a, b, c, d, k[1], 4, -1530992060);\n d = this.hh(d, a, b, c, k[4], 11, 1272893353);\n c = this.hh(c, d, a, b, k[7], 16, -155497632);\n b = this.hh(b, c, d, a, k[10], 23, -1094730640);\n a = this.hh(a, b, c, d, k[13], 4, 681279174);\n d = this.hh(d, a, b, c, k[0], 11, -358537222);\n c = this.hh(c, d, a, b, k[3], 16, -722521979);\n b = this.hh(b, c, d, a, k[6], 23, 76029189);\n a = this.hh(a, b, c, d, k[9], 4, -640364487);\n d = this.hh(d, a, b, c, k[12], 11, -421815835);\n c = this.hh(c, d, a, b, k[15], 16, 530742520);\n b = this.hh(b, c, d, a, k[2], 23, -995338651);\n a = this.ii(a, b, c, d, k[0], 6, -198630844);\n d = this.ii(d, a, b, c, k[7], 10, 1126891415);\n c = this.ii(c, d, a, b, k[14], 15, -1416354905);\n b = this.ii(b, c, d, a, k[5], 21, -57434055);\n a = this.ii(a, b, c, d, k[12], 6, 1700485571);\n d = this.ii(d, a, b, c, k[3], 10, -1894986606);\n c = this.ii(c, d, a, b, k[10], 15, -1051523);\n b = this.ii(b, c, d, a, k[1], 21, -2054922799);\n a = this.ii(a, b, c, d, k[8], 6, 1873313359);\n d = this.ii(d, a, b, c, k[15], 10, -30611744);\n c = this.ii(c, d, a, b, k[6], 15, -1560198380);\n b = this.ii(b, c, d, a, k[13], 21, 1309151649);\n a = this.ii(a, b, c, d, k[4], 6, -145523070);\n d = this.ii(d, a, b, c, k[11], 10, -1120210379);\n c = this.ii(c, d, a, b, k[2], 15, 718787259);\n b = this.ii(b, c, d, a, k[9], 21, -343485551);\n x[0] = this.add32(a, x[0]);\n x[1] = this.add32(b, x[1]);\n x[2] = this.add32(c, x[2]);\n x[3] = this.add32(d, x[3]);\n }\n cmn(q, a, b, x, s, t) {\n a = this.add32(this.add32(a, q), this.add32(x, t));\n return this.add32((a << s) | (a >>> (32 - s)), b);\n }\n ff(a, b, c, d, x, s, t) {\n return this.cmn((b & c) | ((~b) & d), a, b, x, s, t);\n }\n gg(a, b, c, d, x, s, t) {\n return this.cmn((b & d) | (c & (~d)), a, b, x, s, t);\n }\n hh(a, b, c, d, x, s, t) {\n return this.cmn(b ^ c ^ d, a, b, x, s, t);\n }\n ii(a, b, c, d, x, s, t) {\n return this.cmn(c ^ (b | (~d)), a, b, x, s, t);\n }\n md51(s) {\n const n = s.length;\n const state = [1732584193, -271733879, -1732584194, 271733878];\n let i;\n for (i = 64; i <= s.length; i += 64) {\n this.md5cycle(state, this.md5blk(s.substring(i - 64, i)));\n }\n s = s.substring(i - 64);\n const tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n for (i = 0; i < s.length; i++) {\n tail[i >> 2] |= s.charCodeAt(i) << ((i % 4) << 3);\n }\n tail[i >> 2] |= 0x80 << ((i % 4) << 3);\n if (i > 55) {\n this.md5cycle(state, tail);\n for (i = 0; i < 16; i++) {\n tail[i] = 0;\n }\n }\n tail[14] = n * 8;\n this.md5cycle(state, tail);\n return state;\n }\n /* there needs to be support for Unicode here, * unless we pretend that we can redefine the MD-5\n * algorithm for multi-byte characters (perhaps by adding every four 16-bit characters and\n * shortening the sum to 32 bits). Otherwise I suthis.ggest performing MD-5 as if every character\n * was two bytes--e.g., 0040 0025 = @%--but then how will an ordinary MD-5 sum be matched?\n * There is no way to standardize text to something like UTF-8 before transformation; speed cost is\n * utterly prohibitive. The JavaScript standard itself needs to look at this: it should start\n * providing access to strings as preformed UTF-8 8-bit unsigned value arrays.\n */\n md5blk(s) {\n const md5blks = [];\n /* Andy King said do it this way. */\n for (let i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = s.charCodeAt(i)\n + (s.charCodeAt(i + 1) << 8)\n + (s.charCodeAt(i + 2) << 16)\n + (s.charCodeAt(i + 3) << 24);\n }\n return md5blks;\n }\n rhex(n) {\n const hex_chr = '0123456789abcdef'.split('');\n let s = '', j = 0;\n for (; j < 4; j++) {\n s += hex_chr[(n >> (j * 8 + 4)) & 0x0F]\n + hex_chr[(n >> (j * 8)) & 0x0F];\n }\n return s;\n }\n hex(x) {\n for (let i = 0; i < x.length; i++) {\n x[i] = this.rhex(x[i]);\n }\n return x.join('');\n }\n md5(s) {\n return this.hex(this.md51(s));\n }\n add32(a, b) {\n return this.ieCompatibility ? this.add32Compat(a, b) : this.add32Std(a, b);\n }\n /* this function is much faster, so if possible we use it. Some IEs are the only ones I know of that\n need the idiotic second function, generated by an if clause. */\n add32Std(a, b) {\n return (a + b) & 0xFFFFFFFF;\n }\n add32Compat(x, y) {\n const lsw = (x & 0xFFFF) + (y & 0xFFFF), msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return (msw << 16) | (lsw & 0xFFFF);\n }\n}\n","import { MD5 } from './md5.mjs';\n// move to general utils\nfunction missingOrEmpty(value) {\n return value == null || value.length === 0;\n}\nconst LICENSE_TYPES = {\n '01': 'GRID',\n '02': 'CHARTS',\n '0102': 'BOTH'\n};\nexport class LicenseManager {\n constructor(document) {\n this.watermarkMessage = undefined;\n this.totalMessageLength = 124;\n this.document = document;\n this.md5 = new MD5();\n this.md5.init();\n }\n validateLicense() {\n const licenseDetails = this.getLicenseDetails(LicenseManager.licenseKey);\n const currentLicenseName = `AG Grid ${licenseDetails.currentLicenseType === 'BOTH' ? 'and AG Charts ' : ''}Enterprise`;\n const suppliedLicenseName = licenseDetails.suppliedLicenseType === undefined ? '' : `AG ${licenseDetails.suppliedLicenseType === 'BOTH' ? 'Grid and AG Charts' : licenseDetails.suppliedLicenseType === 'GRID' ? 'Grid' : 'Charts'} Enterprise`;\n if (licenseDetails.missing) {\n if (!this.isWebsiteUrl() || this.isForceWatermark()) {\n this.outputMissingLicenseKey(currentLicenseName);\n }\n }\n else if (licenseDetails.expired) {\n const gridReleaseDate = LicenseManager.getGridReleaseDate();\n const formattedReleaseDate = LicenseManager.formatDate(gridReleaseDate);\n this.outputExpiredKey(licenseDetails.expiry, formattedReleaseDate, currentLicenseName, suppliedLicenseName);\n }\n else if (!licenseDetails.valid) {\n this.outputInvalidLicenseKey(!!licenseDetails.incorrectLicenseType, currentLicenseName, suppliedLicenseName);\n }\n else if (licenseDetails.isTrial && licenseDetails.trialExpired) {\n this.outputExpiredTrialKey(licenseDetails.expiry, currentLicenseName, suppliedLicenseName);\n }\n }\n static extractExpiry(license) {\n const restrictionHashed = license.substring(license.lastIndexOf('_') + 1, license.length);\n return new Date(parseInt(LicenseManager.decode(restrictionHashed), 10));\n }\n static extractLicenseComponents(licenseKey) {\n // when users copy the license key from a PDF extra zero width characters are sometimes copied too\n // carriage returns and line feeds are problematic too\n // all of which causes license key validation to fail - strip these out\n let cleanedLicenseKey = licenseKey.replace(/[\\u200B-\\u200D\\uFEFF]/g, '');\n cleanedLicenseKey = cleanedLicenseKey.replace(/\\r?\\n|\\r/g, '');\n // the hash that follows the key is 32 chars long\n if (licenseKey.length <= 32) {\n return { md5: null, license: licenseKey, version: null, isTrial: null };\n }\n const hashStart = cleanedLicenseKey.length - 32;\n const md5 = cleanedLicenseKey.substring(hashStart);\n const license = cleanedLicenseKey.substring(0, hashStart);\n const [version, isTrial, type] = LicenseManager.extractBracketedInformation(cleanedLicenseKey);\n return { md5, license, version, isTrial, type };\n }\n getLicenseDetails(licenseKey) {\n const currentLicenseType = LicenseManager.chartsLicenseManager ? 'BOTH' : 'GRID';\n if (missingOrEmpty(licenseKey)) {\n return {\n licenseKey,\n valid: false,\n missing: true,\n currentLicenseType\n };\n }\n const gridReleaseDate = LicenseManager.getGridReleaseDate();\n const { md5, license, version, isTrial, type } = LicenseManager.extractLicenseComponents(licenseKey);\n let valid = (md5 === this.md5.md5(license)) && licenseKey.indexOf(\"For_Trialing_ag-Grid_Only\") === -1;\n let trialExpired = undefined;\n let expired = undefined;\n let expiry = null;\n let incorrectLicenseType = false;\n let suppliedLicenseType = undefined;\n function handleTrial() {\n const now = new Date();\n trialExpired = (expiry < now);\n expired = undefined;\n }\n if (valid) {\n expiry = LicenseManager.extractExpiry(license);\n valid = !isNaN(expiry.getTime());\n if (valid) {\n expired = (gridReleaseDate > expiry);\n switch (version) {\n case \"legacy\":\n case \"2\": {\n if (isTrial) {\n handleTrial();\n }\n break;\n }\n case \"3\": {\n if (missingOrEmpty(type)) {\n valid = false;\n }\n else {\n suppliedLicenseType = type;\n if ((type !== LICENSE_TYPES['01'] && type !== LICENSE_TYPES['0102']) ||\n (currentLicenseType === 'BOTH' && suppliedLicenseType !== 'BOTH')) {\n valid = false;\n incorrectLicenseType = true;\n }\n else if (isTrial) {\n handleTrial();\n }\n }\n }\n }\n }\n }\n if (!valid) {\n return {\n licenseKey,\n valid,\n incorrectLicenseType,\n currentLicenseType,\n suppliedLicenseType\n };\n }\n return {\n licenseKey,\n valid,\n expiry: LicenseManager.formatDate(expiry),\n expired,\n version,\n isTrial,\n trialExpired,\n incorrectLicenseType,\n currentLicenseType,\n suppliedLicenseType\n };\n }\n isDisplayWatermark() {\n return this.isForceWatermark() || (!this.isLocalhost() && !this.isWebsiteUrl() && !missingOrEmpty(this.watermarkMessage));\n }\n getWatermarkMessage() {\n return this.watermarkMessage || '';\n }\n getHostname() {\n const win = (this.document.defaultView || window);\n const loc = win.location;\n const { hostname = '' } = loc;\n return hostname;\n }\n isForceWatermark() {\n const win = (this.document.defaultView || window);\n const loc = win.location;\n const { pathname } = loc;\n return pathname ? pathname.indexOf('forceWatermark') !== -1 : false;\n }\n isWebsiteUrl() {\n const hostname = this.getHostname();\n return hostname.match(/^((?:\\w+\\.)?ag-grid\\.com)$/) !== null;\n }\n isLocalhost() {\n const hostname = this.getHostname();\n return hostname.match(/^(?:127\\.0\\.0\\.1|localhost)$/) !== null;\n }\n static formatDate(date) {\n const monthNames = [\n 'January', 'February', 'March',\n 'April', 'May', 'June', 'July',\n 'August', 'September', 'October',\n 'November', 'December'\n ];\n const day = date.getDate();\n const monthIndex = date.getMonth();\n const year = date.getFullYear();\n return day + ' ' + monthNames[monthIndex] + ' ' + year;\n }\n static getGridReleaseDate() {\n return new Date(parseInt(LicenseManager.decode(LicenseManager.RELEASE_INFORMATION), 10));\n }\n static decode(input) {\n const keystr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n let t = '';\n let n, r, i;\n let s, o, u, a;\n let f = 0;\n const e = input.replace(/[^A-Za-z0-9+/=]/g, '');\n while (f < e.length) {\n s = keystr.indexOf(e.charAt(f++));\n o = keystr.indexOf(e.charAt(f++));\n u = keystr.indexOf(e.charAt(f++));\n a = keystr.indexOf(e.charAt(f++));\n n = s << 2 | o >> 4;\n r = (o & 15) << 4 | u >> 2;\n i = (u & 3) << 6 | a;\n t = t + String.fromCharCode(n);\n if (u != 64) {\n t = t + String.fromCharCode(r);\n }\n if (a != 64) {\n t = t + String.fromCharCode(i);\n }\n }\n t = LicenseManager.utf8_decode(t);\n return t;\n }\n static utf8_decode(input) {\n input = input.replace(/rn/g, 'n');\n let t = '';\n for (let n = 0; n < input.length; n++) {\n const r = input.charCodeAt(n);\n if (r < 128) {\n t += String.fromCharCode(r);\n }\n else if (r > 127 && r < 2048) {\n t += String.fromCharCode(r >> 6 | 192);\n t += String.fromCharCode(r & 63 | 128);\n }\n else {\n t += String.fromCharCode(r >> 12 | 224);\n t += String.fromCharCode(r >> 6 & 63 | 128);\n t += String.fromCharCode(r & 63 | 128);\n }\n }\n return t;\n }\n static setChartsLicenseManager(dependantLicenseManager) {\n this.chartsLicenseManager = dependantLicenseManager;\n }\n static setLicenseKey(licenseKey) {\n this.licenseKey = licenseKey;\n if (this.chartsLicenseManager) {\n this.chartsLicenseManager.setLicenseKey(licenseKey, true);\n }\n }\n static extractBracketedInformation(licenseKey) {\n // legacy no trial key\n if (!licenseKey.includes(\"[\")) {\n return [\"legacy\", false, undefined];\n }\n const matches = licenseKey.match(/\\[(.*?)\\]/g).map(match => match.replace(\"[\", \"\").replace(\"]\", \"\"));\n if (!matches || matches.length === 0) {\n return [\"legacy\", false, undefined];\n }\n const isTrial = matches.filter(match => match === 'TRIAL').length === 1;\n const rawVersion = matches.filter(match => match.indexOf(\"v\") === 0)[0];\n const version = rawVersion ? rawVersion.replace('v', '') : 'legacy';\n const type = LICENSE_TYPES[matches.filter(match => LICENSE_TYPES[match])[0]];\n return [version, isTrial, type];\n }\n centerPadAndOutput(input) {\n const paddingRequired = this.totalMessageLength - input.length;\n console.error(input.padStart(paddingRequired / 2 + input.length, '*').padEnd(this.totalMessageLength, '*'));\n }\n padAndOutput(input, padding = '*', terminateWithPadding = '') {\n console.error(input.padEnd(this.totalMessageLength - terminateWithPadding.length, padding) + terminateWithPadding);\n }\n outputInvalidLicenseKey(incorrectLicenseType, currentLicenseName, suppliedLicenseName) {\n if (incorrectLicenseType) {\n // TC4, TC5,TC10\n this.centerPadAndOutput('');\n this.centerPadAndOutput(` ${currentLicenseName} License `);\n this.centerPadAndOutput(' Incompatible License Key ');\n this.padAndOutput(`* Your license key is for ${suppliedLicenseName} only and does not cover you for ${currentLicenseName}.`, ' ', '*');\n this.padAndOutput('* Please contact info@ag-grid.com to obtain a combined license key.', ' ', '*');\n this.centerPadAndOutput('');\n this.centerPadAndOutput('');\n }\n else {\n // TC3, TC9\n this.centerPadAndOutput('');\n this.centerPadAndOutput(` ${currentLicenseName} License `);\n this.centerPadAndOutput(' Invalid License Key ');\n this.padAndOutput(`* Your license key is not valid - please contact info@ag-grid.com to obtain a valid license.`, ' ', '*');\n this.centerPadAndOutput('');\n this.centerPadAndOutput('');\n }\n this.watermarkMessage = \"Invalid License\";\n }\n outputExpiredTrialKey(formattedExpiryDate, currentLicenseName, suppliedLicenseName) {\n // TC14\n this.centerPadAndOutput('');\n this.centerPadAndOutput(` ${currentLicenseName} License `);\n this.centerPadAndOutput(' Trial Period Expired. ');\n this.padAndOutput(`* Your trial only license for ${suppliedLicenseName} expired on ${formattedExpiryDate}.`, ' ', '*');\n this.padAndOutput('* Please email info@ag-grid.com to purchase a license.', ' ', '*');\n this.centerPadAndOutput('');\n this.centerPadAndOutput('');\n this.watermarkMessage = \"Trial Period Expired\";\n }\n outputMissingLicenseKey(currentLicenseName) {\n // TC6, TC12\n this.centerPadAndOutput('');\n this.centerPadAndOutput(` ${currentLicenseName} License `);\n this.centerPadAndOutput(' License Key Not Found ');\n this.padAndOutput(`* All ${currentLicenseName} features are unlocked for trial.`, ' ', '*');\n this.padAndOutput('* If you want to hide the watermark please email info@ag-grid.com for a trial license key.', ' ', '*');\n this.centerPadAndOutput('');\n this.centerPadAndOutput('');\n this.watermarkMessage = \"For Trial Use Only\";\n }\n outputExpiredKey(formattedExpiryDate, formattedReleaseDate, currentLicenseName, suppliedLicenseName) {\n // TC2\n this.centerPadAndOutput('');\n this.centerPadAndOutput(` ${currentLicenseName} License `);\n this.centerPadAndOutput(' Incompatible Software Version ');\n this.padAndOutput(`* Your license key works with versions of ${suppliedLicenseName} released before ${formattedExpiryDate}.`, ' ', '*');\n this.padAndOutput(`* The version you are trying to use was released on ${formattedReleaseDate}.`, ' ', '*');\n this.padAndOutput('* Please contact info@ag-grid.com to renew your license key.', ' ', '*');\n this.centerPadAndOutput('');\n this.centerPadAndOutput('');\n this.watermarkMessage = \"License Expired\";\n }\n}\nLicenseManager.RELEASE_INFORMATION = 'MTcwODI3NzkwNjI5Nw==';\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Bean, BeanStub, PreConstruct } from '@ag-grid-community/core';\nimport { LicenseManager } from \"./shared/licenseManager.mjs\";\nlet GridLicenseManager = class GridLicenseManager extends BeanStub {\n validateLicense() {\n this.licenseManager = new LicenseManager(this.gridOptionsService.getDocument());\n this.licenseManager.validateLicense();\n }\n static getLicenseDetails(licenseKey) {\n return new LicenseManager(null).getLicenseDetails(licenseKey);\n }\n isDisplayWatermark() {\n return this.licenseManager.isDisplayWatermark();\n }\n getWatermarkMessage() {\n return this.licenseManager.getWatermarkMessage();\n }\n static setLicenseKey(licenseKey) {\n LicenseManager.setLicenseKey(licenseKey);\n }\n static setChartsLicenseManager(chartsLicenseManager) {\n LicenseManager.setChartsLicenseManager(chartsLicenseManager);\n }\n};\n__decorate([\n PreConstruct\n], GridLicenseManager.prototype, \"validateLicense\", null);\nGridLicenseManager = __decorate([\n Bean('licenseManager')\n], GridLicenseManager);\nexport { GridLicenseManager };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Autowired, Component, PostConstruct, RefSelector } from '@ag-grid-community/core';\nexport class WatermarkComp extends Component {\n constructor() {\n super(/* html*/ `
\n
\n
`);\n }\n postConstruct() {\n const show = this.shouldDisplayWatermark();\n this.setDisplayed(show);\n if (show) {\n this.eLicenseTextRef.innerText = this.licenseManager.getWatermarkMessage();\n window.setTimeout(() => this.addCssClass('ag-opacity-zero'), 0);\n window.setTimeout(() => this.setDisplayed(false), 5000);\n }\n }\n shouldDisplayWatermark() {\n return this.licenseManager.isDisplayWatermark();\n }\n}\n__decorate([\n Autowired('licenseManager')\n], WatermarkComp.prototype, \"licenseManager\", void 0);\n__decorate([\n RefSelector('eLicenseTextRef')\n], WatermarkComp.prototype, \"eLicenseTextRef\", void 0);\n__decorate([\n PostConstruct\n], WatermarkComp.prototype, \"postConstruct\", null);\n","// DO NOT UPDATE MANUALLY: Generated from script during build time\nexport const VERSION = '31.1.1';\n","import { ModuleNames } from \"@ag-grid-community/core\";\nimport { GridLicenseManager as LicenseManager } from \"./license/gridLicenseManager.mjs\";\nimport { WatermarkComp } from \"./license/watermark.mjs\";\nexport { WatermarkComp } from \"./license/watermark.mjs\";\nimport { VERSION } from \"./version.mjs\";\nexport const EnterpriseCoreModule = {\n version: VERSION,\n moduleName: ModuleNames.EnterpriseCoreModule,\n beans: [LicenseManager],\n agStackComponents: [\n { componentName: 'AgWatermark', componentClass: WatermarkComp }\n ]\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupAgGridLicence = void 0;\nconst core_1 = require(\"@ag-grid-enterprise/core\");\n// Until 01 April 2024.\nconst SG_LICENSE_IN_USE = 'Using_this_AG_Grid_Enterprise_key_( AG-037783 )_in_excess_of_the_licence_granted_is_not_permitted___Please_report_misuse_to_( legal@ag-grid.com )___For_help_with_changing_this_key_please_contact_( info@ag-grid.com )___( SOCIETE GENERALE )_is_granted_a_( Multiple Applications )_Developer_License_for_( 2 )_Front-End_JavaScript_developers___All_Front-End_JavaScript_developers_need_to_be_licensed_in_addition_to_the_ones_working_with_AG_Grid_Enterprise___This_key_has_been_granted_a_Deployment_License_Add-on_for_( 2 )_Production_Environments___This_key_works_with_AG_Grid_Enterprise_versions_released_before_( 1 April 2024 )____[v2]_MTcxMTkyNjAwMDAwMA==8e1c1042517fc5ae5bd834c1c444a907';\nfunction setupAgGridLicence(license = SG_LICENSE_IN_USE) {\n core_1.LicenseManager.setLicenseKey(license);\n}\nexports.setupAgGridLicence = setupAgGridLicence;\n//# sourceMappingURL=licence.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./licence\"), exports);\n//# sourceMappingURL=index.js.map","import { jsxs as l, jsx as e } from \"react/jsx-runtime\";\nimport { useState as t, useEffect as c } from \"react\";\nfunction n({\n isAppLoading: s = !1,\n minDurationInMs: r = 800,\n children: a\n}) {\n const [\n i,\n o\n ] = t(!1);\n return c(() => {\n setTimeout(\n () => o(!0),\n r\n // https://developer.fr.world.socgen/rtd/design-system/v5/components/service-loader.html\n );\n }, [r]), s || !i ? /* @__PURE__ */ l(\"div\", { className: \"service-loader d-flex flex-column\", children: [\n /* @__PURE__ */ e(\"div\", { className: \"service-loader-logo\" }),\n /* @__PURE__ */ e(\"div\", { className: \"progress progress-sm progress-container\", children: /* @__PURE__ */ e(\n \"div\",\n {\n \"data-e2e\": \"service-loader\",\n className: \"progress-bar animated-progress\",\n role: \"progressbar\"\n }\n ) })\n ] }) : a;\n}\nexport {\n n as ServiceLoader\n};\n","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","import { useIntl } from 'react-intl';\n\nexport type SgErrorPageProps = {\n code: 404 | 500 | 503;\n actionButtonLabel: string;\n descriptionLabel: string;\n titleLabel: string;\n fullScreen: boolean;\n contactUs: string;\n actionButtonLink: URL;\n theme?: 'dark' | 'standard';\n};\n\nexport default function ErrorPage({\n descriptionLabel,\n fullScreen = false,\n}: {\n descriptionLabel?: string;\n fullScreen?: boolean;\n}) {\n const { formatMessage } = useIntl();\n\n const descriptionError = descriptionLabel\n ? descriptionLabel\n : formatMessage({ id: 'errorPage.descriptionLabel' });\n const actionButtonLabel = formatMessage({ id: 'errorPage.actionButtonLabel' });\n const titleLabel = formatMessage({ id: 'errorPage.titleLabel' });\n\n return (\n \n );\n}\n","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { createContext, useMemo, useState } from 'react';\nconst DEFAULT_INFRASTRUCTURE = 'azure';\nconst SgwtWidgetContext = createContext({\n infrastructure: DEFAULT_INFRASTRUCTURE,\n widgets: {},\n registerWidget: () => { },\n});\nconst SgwtWidgetContextProvider = (props) => {\n const infrastructure = useMemo(() => props.infrastructure ?? DEFAULT_INFRASTRUCTURE, [props.infrastructure]);\n // Save all widget\n const [widgets, setWidgets] = useState({});\n // Expose a register method to prevent strange behavior\n const registerWidget = (widgetName, widget) => {\n // Prevent loop on widget register\n if (!widgets[widgetName]) {\n setWidgets({\n ...widgets,\n [widgetName]: widget,\n });\n }\n };\n return (_jsx(SgwtWidgetContext.Provider, { value: { infrastructure, widgets, registerWidget }, children: props.children }));\n};\nexport { SgwtWidgetContextProvider, SgwtWidgetContext };\n//# sourceMappingURL=SgwtWidgetContext.js.map","export const WIDGETS_CDN_URL = {\n internal: 'https://shared.fr.world.socgen/widgets/{widget}/v4/{widget}.js',\n external: 'https://shared.sgmarkets.com/widgets/{widget}/v4/{widget}.js',\n azure: 'https://sgwt-cdn-widgets.sgmarkets.com/widgets/{widget}/v4/{widget}.js',\n 'internal-non-prod': 'https://shared-uat.fr.world.socgen/widgets/{widget}/v4/{widget}.js',\n 'external-non-prod': 'https://shared-uat.sgmarkets.com/widgets/{widget}/v4/{widget}.js',\n 'azure-non-prod': 'https://sgwt-widgets-dev.sgmarkets.com/widgets/{widget}/v4/{widget}.js',\n};\nexport const propsBoolean = (prop) => (prop ? 'true' : undefined);\nexport const propsObject = (prop) => (prop ? JSON.stringify(prop) : undefined);\n//# sourceMappingURL=utils.js.map","import { useEffect, useRef } from 'react';\nimport { WIDGETS_CDN_URL } from './utils';\n/**\n * Try to load a specific widget from a given CDN, except if the widget is already loaded.\n */\nconst loadWidget = (widget, infra) => {\n const tag = document.querySelector(`script[src*=\"/widget/${widget}/v4/${widget}.js\"`);\n if (!!window.customElements.get(widget) || !!tag) {\n return;\n }\n const element = document.createElement('script');\n element.type = 'text/javascript';\n element.src = WIDGETS_CDN_URL[infra].replace(/{widget}/g, widget);\n element.id = `${widget}-script`;\n document.body.appendChild(element);\n};\n/**\n * useEffect() is executed twice on DEV with StrictMode.\n * Since we need to load the widget resource only once, we use a ref to keep track of the first execution.\n * On second call, the `ref.current` is true and we skip the widget loading.\n */\nexport function useLoadWidget(widget, infra) {\n const ref = useRef(false);\n useEffect(() => {\n if (!ref.current) {\n loadWidget(widget, infra);\n }\n return () => {\n ref.current = true;\n };\n }, [widget, infra]);\n}\n//# sourceMappingURL=use-load-widget.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useContext, useEffect, useRef } from 'react';\nimport { useLoadWidget, propsBoolean, propsObject } from '../utils';\nimport { SgwtWidgetContext } from '../context';\nconst name = 'sgwt-help-center';\nexport const SgwtHelpCenter = ({ additionalMessageInformation, allowScreenshot, applicationId, cmt, conversationId, debug, emailEndpoint, feedbackContext, handleVisible, i18n, introductionTour, knowledgeUrls, knowledge, language, mailSubject, messageTemplate, messageOnly, messageTopics, noConsole, noImproment, tags, unity, user, onCategoryClicked, onTopicClicked, onTourStart, id, onWidgetReady, }) => {\n const widget = useRef();\n const { infrastructure, registerWidget } = useContext(SgwtWidgetContext);\n useLoadWidget(name, infrastructure);\n useEffect(() => {\n if (!!widget.current) {\n onWidgetReady?.(widget.current);\n registerWidget('sgwtHelpCenter', widget.current);\n }\n }, [widget, onWidgetReady, registerWidget]);\n // ---- [EVENTS] ----\n useEffect(() => {\n const eventName = `${name}--start-introduction-tour`;\n const startTour = () => onTourStart?.();\n document.addEventListener(eventName, startTour);\n return () => document.removeEventListener(eventName, startTour);\n }, [onTourStart]);\n useEffect(() => {\n const eventName = `${name}--category`;\n const categoryClicked = (event) => onCategoryClicked?.(event.detail);\n document.addEventListener(eventName, categoryClicked);\n return () => document.removeEventListener(eventName, categoryClicked);\n }, [onCategoryClicked]);\n useEffect(() => {\n const eventName = `${name}--topic`;\n const topicClicked = (event) => onTopicClicked?.(event.detail);\n document.addEventListener(eventName, topicClicked);\n return () => document.removeEventListener(eventName, topicClicked);\n }, [onTopicClicked]);\n return (_jsx(\"aside\", { children: _jsx(\"sgwt-help-center\", { ref: widget, id: id, \"additional-message-information\": propsObject(additionalMessageInformation), \"allow-screenshot\": propsBoolean(allowScreenshot), \"application-id\": applicationId, cmt: propsObject(cmt), \"conversation-id\": conversationId, debug: propsBoolean(debug), \"email-endpoint\": emailEndpoint, \"feedback-context\": feedbackContext, \"handle-visible\": propsBoolean(handleVisible), i18n: propsObject(i18n), impulse: propsObject(unity), unity: propsObject(unity), \"introduction-tour\": propsBoolean(introductionTour), \"knowledge-urls\": propsObject(knowledgeUrls), knowledge: propsObject(knowledge), language: language, \"mail-subject\": mailSubject, \"message-template\": messageTemplate, \"message-only\": propsBoolean(messageOnly), \"message-topics\": propsObject(messageTopics), \"no-console\": propsBoolean(noConsole), \"no-improment\": propsBoolean(noImproment), tags: propsObject(tags), user: propsObject(user), \"sg-connect-support\": \"sg-connect-v2\" }) }));\n};\n//# sourceMappingURL=SgwtHelpCenter.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useContext, useEffect, useRef } from 'react';\nimport { useLoadWidget, propsBoolean } from '../utils';\nimport { SgwtWidgetContext } from '../context';\nconst name = 'sgwt-web-analytics';\nexport const SgwtWebAnalytics = ({ siteId, baseUrl, disabled, disableUserTracking, debug, environment, userId, apmRumEnabled, apmRumServerurl, apmRumServiceName, id, onWidgetReady, }) => {\n const widget = useRef();\n const { infrastructure, registerWidget } = useContext(SgwtWidgetContext);\n useLoadWidget(name, infrastructure);\n useEffect(() => {\n if (!!widget.current) {\n onWidgetReady?.(widget.current);\n registerWidget('sgwtWebAnalytics', widget.current);\n }\n }, [widget, onWidgetReady, registerWidget]);\n return (_jsx(\"sgwt-web-analytics\", { ref: widget, id: id, \"site-id\": siteId, \"base-url\": baseUrl, disabled: propsBoolean(disabled), \"disable-user-tracking\": propsBoolean(disableUserTracking), debug: propsBoolean(debug), environment: environment, \"user-id\": userId, \"apm-rum-enabled\": propsBoolean(apmRumEnabled), \"apm-rum-server-url\": apmRumServerurl, \"apm-rum-service-name\": apmRumServiceName }));\n};\n//# sourceMappingURL=SgwtWebAnalytics.js.map","import { useContext, useMemo } from 'react';\nimport { SgwtWidgetContext } from '../context/SgwtWidgetContext';\n/**\n * Expose all registered widgets throught this hook\n * Allow users to get desired widget and use his API\n */\nexport function useSgwtWidgets() {\n const { widgets } = useContext(SgwtWidgetContext);\n return useMemo(() => widgets, [widgets]);\n}\n//# sourceMappingURL=useSgwtWidgets.js.map","import { getConfig } from '@/config/config';\nimport { logger } from '@/core/logger';\nimport ErrorPage from '@/pages/ErrorPage';\nimport { SgwtHelpCenter } from '@sgwt/sgwt-widgets-react';\nimport React, { ReactNode } from 'react';\n\ndeclare global {\n namespace JSX {\n interface IntrinsicElements {\n 'sg-error-page': {\n code: 404 | 500 | 503;\n theme?: 'dark' | 'standard';\n 'action-button-label'?: string;\n 'action-button-link'?: string;\n 'contact-us'?: 'help-center' | string;\n fullscreen?: boolean;\n 'description-label'?: string;\n 'title-label'?: string;\n };\n }\n }\n}\n\ninterface IErrorBoundaryState {\n error: Error | null;\n}\n\ninterface IErrorBoundaryProps {\n children: ReactNode;\n}\n\n/**\n * Need to be a class component\n * https://react.dev/reference/react/Component#catching-rendering-errors-with-an-error-boundary\n *\n * Need to use less possible outside module to catch all error\n */\nexport class ErrorBoundary extends React.Component {\n public state: IErrorBoundaryState = {\n error: null,\n };\n\n static getDerivedStateFromError(error: Error) {\n // Update state so the next render will show the fallback UI.\n return { error };\n }\n\n public componentDidCatch(errorDetected: Error, errorInfo: React.ErrorInfo) {\n logger.logError(\n `ErrorBoundary error[${errorDetected.message}] stack[${errorDetected.stack}] errorInfo[${errorInfo}]`,\n errorDetected,\n );\n }\n\n public render() {\n const { error } = this.state;\n const { children } = this.props;\n\n if (error) {\n return (\n
\n \n ;\n
\n );\n }\n\n return children;\n }\n}\n","import { useIntl } from 'react-intl';\n\nexport function AccountCenter(): JSX.Element {\n const intl = useIntl(); \n\n return (\n \n );\n}\n","import { ChangeEvent, useCallback } from 'react';\nimport { FormattedMessage } from 'react-intl';\n\ninterface SwitcherProps {\n label: string;\n id: string;\n onChange?: (value: boolean) => void;\n checked?: boolean;\n}\n\nexport function Switcher({ onChange, checked, label, id }: SwitcherProps): JSX.Element {\n const handleChange = useCallback(\n (event: ChangeEvent) => {\n onChange?.(event.currentTarget.checked);\n },\n [onChange],\n );\n\n return (\n
\n \n \n
\n );\n}\n","import { AccountCenter } from '@/core/sgwt/AccountCenter';\nimport { useCallback, useEffect, useState } from 'react';\nimport { getTheme, setTheme, Theme } from '@/utils/theme';\nimport { Switcher } from '@/core/bootstrap/Switcher';\nimport { Link, NavLink, useLocation } from 'react-router-dom';\nimport { FormattedMessage } from 'react-intl';\nimport { useSgwtWidgets } from '@sgwt/sgwt-widgets-react';\n\nexport function Header(): JSX.Element {\n const { pathname } = useLocation();\n const { sgwtWebAnalytics } = useSgwtWidgets();\n\n useEffect(() => {\n const locationTitle = `${pathname.charAt(1).toUpperCase()}${pathname.slice(2)}`;\n const title = locationTitle === '' ? '' : `${document.title} - ${locationTitle}`;\n sgwtWebAnalytics?.trackPageView(pathname, title);\n }, [pathname, sgwtWebAnalytics]);\n\n return (\n
\n
\n \n
\n \n \n \n \n \n
\n
\n
\n \n
\n \n
\n\n
\n
    \n
  • \n \n `${isActive ? 'active' : ''} navbar-link`\n }\n to={`/`}\n >\n FX Sessions\n \n
  • \n
\n
\n\n
\n \n \n
\n
\n );\n}\n\nfunction ThemeSwitcher(): JSX.Element {\n const [currentTheme, setCurrentTheme] = useState(getTheme);\n const changeTheme = useCallback((checked: boolean) => {\n const theme: Theme = checked ? 'DARK' : 'LIGHT';\n setTheme(theme);\n setCurrentTheme(theme);\n }, []);\n return (\n \n );\n}\n","import { getConfig } from '@/config/config';\nimport { SgwtHelpCenter } from '@sgwt/sgwt-widgets-react';\n\nexport function HelpCenter(): JSX.Element {\n return (\n \n );\n}\n","export function MiniFooter(): JSX.Element {\n return (\n \n );\n}\n","import { HelpCenter } from '@/core/sgwt/HelpCenter';\nimport { MiniFooter } from '@/core/sgwt/MiniFooter';\n\nexport function Footer() {\n return (\n
\n \n \n
\n );\n}","export const checkNotificationIsAvailable = () => 'Notification' in window;\n\nexport const requestPermission = async () => Notification.requestPermission();\n\nexport const getNotification = ({ options, title = \"\" }: { options: NotificationOptions; title?: string }) =>\n new Notification(title, options);\n","import { useEffect } from 'react';\nimport { useAppDispatch, useAppSelector } from './reduxHook';\nimport { selectLastVacation } from '@/features/vacation/vacationSelectors';\nimport { isDefined } from '@sgme/fp';\nimport { PossibleSessionTime, Vacation } from '@/features/vacation/vacationModel';\nimport { useIntl } from 'react-intl';\nimport { setLastVacation } from '@/features/vacation/vacationSlice';\nimport { useHref } from 'react-router-dom';\nimport {\n checkNotificationIsAvailable,\n getNotification,\n requestPermission,\n} from './notificationServices';\n\nexport function useNotifications() {\n const lastVacation = useAppSelector(selectLastVacation);\n const appDispatch = useAppDispatch();\n const { formatMessage } = useIntl();\n const href = useHref('sessions');\n\n // Use to manage permission\n useEffect(() => {\n const asyncRequestPermission = async () => {\n await requestPermission();\n };\n\n if (checkNotificationIsAvailable()) {\n asyncRequestPermission();\n }\n }, []);\n\n // Use to prepare notification and emit it.\n useEffect(() => {\n const getNotificationBody = (value: PossibleSessionTime) =>\n formatMessage({ id: `notification.started` }, { sessionTime: value });\n\n const showNotification = (vacation: Vacation) => {\n const { id, sessionTime } = vacation;\n const options: NotificationOptions = {\n body: getNotificationBody(sessionTime),\n badge: './logo.svg',\n tag: `NEW_VACATION_RECEIVED-${id}`,\n };\n\n const notification = getNotification({ title: 'SG Markets LMAFOREX', options });\n\n notification.onclose = (event) => {\n event.preventDefault();\n appDispatch(setLastVacation(null));\n };\n notification.onclick = (event) => {\n event.preventDefault();\n window.focus();\n notification.close();\n };\n setTimeout(() => {\n // Reset state lastVacation\n notification.close();\n }, 10000);\n };\n\n if (isDefined(lastVacation)) {\n showNotification(lastVacation);\n }\n }, [lastVacation, formatMessage, appDispatch, href]);\n}\n","import './App.css';\nimport { Header } from './Header';\nimport { Outlet } from 'react-router-dom';\nimport { Footer } from './Footer';\nimport { useGetVacationsQuery } from '@/api/vacation.api';\nimport { useNotifications } from '@/hooks/useNotifications';\n\nfunction App() {\n useGetVacationsQuery();\n useNotifications();\n\n return (\n
\n
\n
\n \n
\n
\n
\n );\n}\n\nexport default App;\n","import { BookingStatus, Product } from '@/features/vacation/vacationModel';\nimport { FormattedMessage } from 'react-intl';\n\nexport const StatusBadge = ({ status }: { status: BookingStatus | Product }) => {\n let badgeClass = '';\n\n switch (status) {\n case 'COLLECTED':\n case 'COLLECTING':\n case 'TODO':\n badgeClass = 'badge-light badge-discreet-warning';\n break;\n case 'INPROGRESS':\n case 'DONE': // Save status\n badgeClass = 'badge-light badge-discreet-info';\n break;\n case 'SENT':\n badgeClass = 'badge-light badge-discreet-success';\n break;\n /**Produit */\n case 'SPOT':\n badgeClass = 'badge-outline-primary';\n break;\n case 'FORWARD':\n default:\n badgeClass = 'badge-primary';\n break;\n }\n\n return (\n
\n \n
\n );\n};\n","import { BlotterUrlParameters, BookingStatus } from '@/features/vacation/vacationModel';\nimport { NavLink, useParams } from 'react-router-dom';\nimport { StatusBadge } from './StatusBadge';\nimport { useAppDispatch } from '@/hooks/reduxHook';\nimport { resetSelectedRows } from '@/features/blotter/blotterSlice';\n\nexport type PanelItemProps = {\n currency1: string;\n currency2: string;\n numberOfDeals: number;\n numberOfAlreadyBookedDeals: number;\n status: BookingStatus;\n dealOwner: string;\n sessionId: string;\n};\n\nexport function PanelItem({\n currency1,\n currency2,\n numberOfDeals,\n numberOfAlreadyBookedDeals,\n status,\n sessionId,\n dealOwner,\n}: PanelItemProps) {\n const appDispatch = useAppDispatch();\n const { currency1: actualCurrency1, currency2: actualCurrency2 } = useParams() as BlotterUrlParameters;\n const handleClickCurrency = () => {\n if (currency1 !== actualCurrency1 || currency2 !== actualCurrency2) {\n // I go to an other page need to reset state on selected rows\n appDispatch(resetSelectedRows());\n }\n }\n return (\n \n `${isActive ? 'active' : ''} text-decoration-none border-bottom`\n }\n >\n
  • \n
    \n
    {`${currency1}/${currency2}`}
    \n
    {`${numberOfAlreadyBookedDeals}/${numberOfDeals} deals`}
    \n
    \n
    \n \n
    {dealOwner}
    \n
    \n
  • \n \n );\n}\n","type ColleapsableButtonProps = {\n isBlotterOpen: boolean;\n setIsBlotterOpen: (isBlotterOpen: boolean) => void;\n};\n\nfunction CollapsableButton(props: ColleapsableButtonProps) {\n const { isBlotterOpen, setIsBlotterOpen } = props;\n\n return (\n {\n window.dispatchEvent(new Event('resize'));\n setIsBlotterOpen(!isBlotterOpen);\n }}\n >\n \n {!isBlotterOpen ? 'last_page' : 'first_page'}\n \n \n );\n}\n\nexport default CollapsableButton;\n","import { selectCurrencyPairsFromSessionIdVacation } from '@/features/vacation/vacationSelectors';\nimport { useAppSelector } from '@/hooks/reduxHook';\nimport { FormattedMessage } from 'react-intl';\nimport { Link, useParams } from 'react-router-dom';\nimport { PanelItem } from './PanelItem';\nimport Spinner from '@/components/shared/Spinner';\nimport { isDefined } from '@sgme/fp';\nimport { useState } from 'react';\nimport CollapsableButton from './CollapsableButton';\n\nfunction Panel() {\n const [isBlotterOpen, setIsBlotterOpen] = useState(true);\n\n const { sessionId } = useParams();\n\n const currencyPairs = useAppSelector((state) =>\n selectCurrencyPairsFromSessionIdVacation(state, sessionId),\n );\n\n return (\n \n );\n}\n\nexport default Panel;\n","import Panel from '@/components/booking/Panel';\nimport { Footer } from '@/layout/Footer';\nimport { Header } from '@/layout/Header';\nimport { Outlet } from 'react-router-dom';\nimport './Booking.css';\nimport { useGetVacationsQuery } from '@/api/vacation.api';\nimport { useNotifications } from '@/hooks/useNotifications';\n\nfunction Booking() {\n useGetVacationsQuery();\n useNotifications();\n\n return (\n
    \n
    \n \n
    \n \n
    \n
    \n
    \n );\n}\n\nexport default Booking;\n","import { Header } from '@/layout/Header';\nimport './ErrorLayout.css';\nimport ErrorPage from '@/pages/ErrorPage';\nimport { Footer } from './Footer';\n\nfunction ErrorLayout() {\n return (\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n );\n}\n\nexport default ErrorLayout;\n","// src/format.ts\nvar POSITIONALS_EXP = /(%?)(%([sdijo]))/g;\nfunction serializePositional(positional, flag) {\n switch (flag) {\n case \"s\":\n return positional;\n case \"d\":\n case \"i\":\n return Number(positional);\n case \"j\":\n return JSON.stringify(positional);\n case \"o\": {\n if (typeof positional === \"string\") {\n return positional;\n }\n const json = JSON.stringify(positional);\n if (json === \"{}\" || json === \"[]\" || /^\\[object .+?\\]$/.test(json)) {\n return positional;\n }\n return json;\n }\n }\n}\nfunction format(message, ...positionals) {\n if (positionals.length === 0) {\n return message;\n }\n let positionalIndex = 0;\n let formattedMessage = message.replace(\n POSITIONALS_EXP,\n (match, isEscaped, _, flag) => {\n const positional = positionals[positionalIndex];\n const value = serializePositional(positional, flag);\n if (!isEscaped) {\n positionalIndex++;\n return value;\n }\n return match;\n }\n );\n if (positionalIndex < positionals.length) {\n formattedMessage += ` ${positionals.slice(positionalIndex).join(\" \")}`;\n }\n formattedMessage = formattedMessage.replace(/%{2,2}/g, \"%\");\n return formattedMessage;\n}\n\n// src/invariant.ts\nvar STACK_FRAMES_TO_IGNORE = 2;\nfunction cleanErrorStack(error) {\n if (!error.stack) {\n return;\n }\n const nextStack = error.stack.split(\"\\n\");\n nextStack.splice(1, STACK_FRAMES_TO_IGNORE);\n error.stack = nextStack.join(\"\\n\");\n}\nvar InvariantError = class extends Error {\n constructor(message, ...positionals) {\n super(message);\n this.message = message;\n this.name = \"Invariant Violation\";\n this.message = format(message, ...positionals);\n cleanErrorStack(this);\n }\n};\nvar invariant = (predicate, message, ...positionals) => {\n if (!predicate) {\n throw new InvariantError(message, ...positionals);\n }\n};\ninvariant.as = (ErrorConstructor, predicate, message, ...positionals) => {\n if (!predicate) {\n const formatMessage = positionals.length === 0 ? message : format(message, positionals);\n let error;\n try {\n error = Reflect.construct(ErrorConstructor, [formatMessage]);\n } catch (err) {\n error = ErrorConstructor(formatMessage);\n }\n throw error;\n }\n};\nexport {\n InvariantError,\n format,\n invariant\n};\n//# sourceMappingURL=index.mjs.map","import { format } from \"outvariant\";\nconst LIBRARY_PREFIX = \"[MSW]\";\nfunction formatMessage(message, ...positionals) {\n const interpolatedMessage = format(message, ...positionals);\n return `${LIBRARY_PREFIX} ${interpolatedMessage}`;\n}\nfunction warn(message, ...positionals) {\n console.warn(formatMessage(message, ...positionals));\n}\nfunction error(message, ...positionals) {\n console.error(formatMessage(message, ...positionals));\n}\nconst devUtils = {\n formatMessage,\n warn,\n error\n};\nexport {\n devUtils\n};\n//# sourceMappingURL=devUtils.mjs.map","const SOURCE_FRAME = /[\\/\\\\]msw[\\/\\\\]src[\\/\\\\](.+)/;\nconst BUILD_FRAME = /(node_modules)?[\\/\\\\]lib[\\/\\\\](core|browser|node|native|iife)[\\/\\\\]|^[^\\/\\\\]*$/;\nfunction getCallFrame(error) {\n const stack = error.stack;\n if (!stack) {\n return;\n }\n const frames = stack.split(\"\\n\").slice(1);\n const declarationFrame = frames.find((frame) => {\n return !(SOURCE_FRAME.test(frame) || BUILD_FRAME.test(frame));\n });\n if (!declarationFrame) {\n return;\n }\n const declarationPath = declarationFrame.replace(/\\s*at [^()]*\\(([^)]+)\\)/, \"$1\").replace(/^@/, \"\");\n return declarationPath;\n}\nexport {\n getCallFrame\n};\n//# sourceMappingURL=getCallFrame.mjs.map","function isIterable(fn) {\n if (!fn) {\n return false;\n }\n return typeof fn[Symbol.iterator] == \"function\";\n}\nexport {\n isIterable\n};\n//# sourceMappingURL=isIterable.mjs.map","import { invariant } from \"outvariant\";\nimport { getCallFrame } from '../utils/internal/getCallFrame.mjs';\nimport { isIterable } from '../utils/internal/isIterable.mjs';\nclass RequestHandler {\n static cache = /* @__PURE__ */ new WeakMap();\n info;\n /**\n * Indicates whether this request handler has been used\n * (its resolver has successfully executed).\n */\n isUsed;\n resolver;\n resolverGenerator;\n resolverGeneratorResult;\n options;\n constructor(args) {\n this.resolver = args.resolver;\n this.options = args.options;\n const callFrame = getCallFrame(new Error());\n this.info = {\n ...args.info,\n callFrame\n };\n this.isUsed = false;\n }\n /**\n * Parse the intercepted request to extract additional information from it.\n * Parsed result is then exposed to other methods of this request handler.\n */\n async parse(_args) {\n return {};\n }\n /**\n * Test if this handler matches the given request.\n *\n * This method is not used internally but is exposed\n * as a convenience method for consumers writing custom\n * handlers.\n */\n async test(args) {\n const parsedResult = await this.parse({\n request: args.request,\n resolutionContext: args.resolutionContext\n });\n return this.predicate({\n request: args.request,\n parsedResult,\n resolutionContext: args.resolutionContext\n });\n }\n extendResolverArgs(_args) {\n return {};\n }\n // Clone the request instance before it's passed to the handler phases\n // and the response resolver so we can always read it for logging.\n // We only clone it once per request to avoid unnecessary overhead.\n cloneRequestOrGetFromCache(request) {\n const existingClone = RequestHandler.cache.get(request);\n if (typeof existingClone !== \"undefined\") {\n return existingClone;\n }\n const clonedRequest = request.clone();\n RequestHandler.cache.set(request, clonedRequest);\n return clonedRequest;\n }\n /**\n * Execute this request handler and produce a mocked response\n * using the given resolver function.\n */\n async run(args) {\n if (this.isUsed && this.options?.once) {\n return null;\n }\n const requestClone = this.cloneRequestOrGetFromCache(args.request);\n const parsedResult = await this.parse({\n request: args.request,\n resolutionContext: args.resolutionContext\n });\n const shouldInterceptRequest = this.predicate({\n request: args.request,\n parsedResult,\n resolutionContext: args.resolutionContext\n });\n if (!shouldInterceptRequest) {\n return null;\n }\n if (this.isUsed && this.options?.once) {\n return null;\n }\n this.isUsed = true;\n const executeResolver = this.wrapResolver(this.resolver);\n const resolverExtras = this.extendResolverArgs({\n request: args.request,\n parsedResult\n });\n const mockedResponsePromise = executeResolver({\n ...resolverExtras,\n requestId: args.requestId,\n request: args.request\n }).catch((errorOrResponse) => {\n if (errorOrResponse instanceof Response) {\n return errorOrResponse;\n }\n throw errorOrResponse;\n });\n const mockedResponse = await mockedResponsePromise;\n const executionResult = this.createExecutionResult({\n // Pass the cloned request to the result so that logging\n // and other consumers could read its body once more.\n request: requestClone,\n requestId: args.requestId,\n response: mockedResponse,\n parsedResult\n });\n return executionResult;\n }\n wrapResolver(resolver) {\n return async (info) => {\n const result = this.resolverGenerator || await resolver(info);\n if (isIterable(result)) {\n this.isUsed = false;\n const { value, done } = result[Symbol.iterator]().next();\n const nextResponse = await value;\n if (done) {\n this.isUsed = true;\n }\n if (!nextResponse && done) {\n invariant(\n this.resolverGeneratorResult,\n \"Failed to returned a previously stored generator response: the value is not a valid Response.\"\n );\n return this.resolverGeneratorResult.clone();\n }\n if (!this.resolverGenerator) {\n this.resolverGenerator = result;\n }\n if (nextResponse) {\n this.resolverGeneratorResult = nextResponse?.clone();\n }\n return nextResponse;\n }\n return result;\n };\n }\n createExecutionResult(args) {\n return {\n handler: this,\n request: args.request,\n requestId: args.requestId,\n response: args.response,\n parsedResult: args.parsedResult\n };\n }\n}\nexport {\n RequestHandler\n};\n//# sourceMappingURL=RequestHandler.mjs.map","// src/until.ts\nvar until = async (promise) => {\n try {\n const data = await promise().catch((error) => {\n throw error;\n });\n return { error: null, data };\n } catch (error) {\n return { error, data: null };\n }\n};\nexport {\n until\n};\n//# sourceMappingURL=index.mjs.map","const executeHandlers = async ({\n request,\n requestId,\n handlers,\n resolutionContext\n}) => {\n let matchingHandler = null;\n let result = null;\n for (const handler of handlers) {\n result = await handler.run({ request, requestId, resolutionContext });\n if (result !== null) {\n matchingHandler = handler;\n }\n if (result?.response) {\n break;\n }\n }\n if (matchingHandler) {\n return {\n handler: matchingHandler,\n parsedResult: result?.parsedResult,\n response: result?.response\n };\n }\n return null;\n};\nexport {\n executeHandlers\n};\n//# sourceMappingURL=executeHandlers.mjs.map","function toPublicUrl(url) {\n if (typeof location === \"undefined\") {\n return url.toString();\n }\n const urlInstance = url instanceof URL ? url : new URL(url);\n return urlInstance.origin === location.origin ? urlInstance.pathname : urlInstance.origin + urlInstance.pathname;\n}\nexport {\n toPublicUrl\n};\n//# sourceMappingURL=toPublicUrl.mjs.map","import { toPublicUrl } from './toPublicUrl.mjs';\nimport { devUtils } from '../internal/devUtils.mjs';\nasync function onUnhandledRequest(request, strategy = \"warn\") {\n const url = new URL(request.url);\n const publicUrl = toPublicUrl(url);\n const unhandledRequestMessage = `intercepted a request without a matching request handler:\n\n \\u2022 ${request.method} ${publicUrl}\n\nIf you still wish to intercept this unhandled request, please create a request handler for it.\nRead more: https://mswjs.io/docs/getting-started/mocks`;\n function applyStrategy(strategy2) {\n switch (strategy2) {\n case \"error\": {\n devUtils.error(\"Error: %s\", unhandledRequestMessage);\n throw new Error(\n devUtils.formatMessage(\n 'Cannot bypass a request when using the \"error\" strategy for the \"onUnhandledRequest\" option.'\n )\n );\n }\n case \"warn\": {\n devUtils.warn(\"Warning: %s\", unhandledRequestMessage);\n break;\n }\n case \"bypass\":\n break;\n default:\n throw new Error(\n devUtils.formatMessage(\n 'Failed to react to an unhandled request: unknown strategy \"%s\". Please provide one of the supported strategies (\"bypass\", \"warn\", \"error\") or a custom callback function as the value of the \"onUnhandledRequest\" option.',\n strategy2\n )\n );\n }\n }\n if (typeof strategy === \"function\") {\n strategy(request, {\n warning: applyStrategy.bind(null, \"warn\"),\n error: applyStrategy.bind(null, \"error\")\n });\n return;\n }\n if (url.protocol === \"file:\") {\n return;\n }\n applyStrategy(strategy);\n}\nexport {\n onUnhandledRequest\n};\n//# sourceMappingURL=onUnhandledRequest.mjs.map","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\n\n// node_modules/set-cookie-parser/lib/set-cookie.js\nvar require_set_cookie = __commonJS({\n \"node_modules/set-cookie-parser/lib/set-cookie.js\"(exports, module) {\n \"use strict\";\n var defaultParseOptions = {\n decodeValues: true,\n map: false,\n silent: false\n };\n function isNonEmptyString(str) {\n return typeof str === \"string\" && !!str.trim();\n }\n function parseString(setCookieValue, options) {\n var parts = setCookieValue.split(\";\").filter(isNonEmptyString);\n var nameValuePairStr = parts.shift();\n var parsed = parseNameValuePair(nameValuePairStr);\n var name = parsed.name;\n var value = parsed.value;\n options = options ? Object.assign({}, defaultParseOptions, options) : defaultParseOptions;\n try {\n value = options.decodeValues ? decodeURIComponent(value) : value;\n } catch (e) {\n console.error(\n \"set-cookie-parser encountered an error while decoding a cookie with value '\" + value + \"'. Set options.decodeValues to false to disable this feature.\",\n e\n );\n }\n var cookie = {\n name,\n value\n };\n parts.forEach(function(part) {\n var sides = part.split(\"=\");\n var key = sides.shift().trimLeft().toLowerCase();\n var value2 = sides.join(\"=\");\n if (key === \"expires\") {\n cookie.expires = new Date(value2);\n } else if (key === \"max-age\") {\n cookie.maxAge = parseInt(value2, 10);\n } else if (key === \"secure\") {\n cookie.secure = true;\n } else if (key === \"httponly\") {\n cookie.httpOnly = true;\n } else if (key === \"samesite\") {\n cookie.sameSite = value2;\n } else {\n cookie[key] = value2;\n }\n });\n return cookie;\n }\n function parseNameValuePair(nameValuePairStr) {\n var name = \"\";\n var value = \"\";\n var nameValueArr = nameValuePairStr.split(\"=\");\n if (nameValueArr.length > 1) {\n name = nameValueArr.shift();\n value = nameValueArr.join(\"=\");\n } else {\n value = nameValuePairStr;\n }\n return { name, value };\n }\n function parse(input, options) {\n options = options ? Object.assign({}, defaultParseOptions, options) : defaultParseOptions;\n if (!input) {\n if (!options.map) {\n return [];\n } else {\n return {};\n }\n }\n if (input.headers) {\n if (typeof input.headers.getSetCookie === \"function\") {\n input = input.headers.getSetCookie();\n } else if (input.headers[\"set-cookie\"]) {\n input = input.headers[\"set-cookie\"];\n } else {\n var sch = input.headers[Object.keys(input.headers).find(function(key) {\n return key.toLowerCase() === \"set-cookie\";\n })];\n if (!sch && input.headers.cookie && !options.silent) {\n console.warn(\n \"Warning: set-cookie-parser appears to have been called on a request object. It is designed to parse Set-Cookie headers from responses, not Cookie headers from requests. Set the option {silent: true} to suppress this warning.\"\n );\n }\n input = sch;\n }\n }\n if (!Array.isArray(input)) {\n input = [input];\n }\n options = options ? Object.assign({}, defaultParseOptions, options) : defaultParseOptions;\n if (!options.map) {\n return input.filter(isNonEmptyString).map(function(str) {\n return parseString(str, options);\n });\n } else {\n var cookies = {};\n return input.filter(isNonEmptyString).reduce(function(cookies2, str) {\n var cookie = parseString(str, options);\n cookies2[cookie.name] = cookie;\n return cookies2;\n }, cookies);\n }\n }\n function splitCookiesString(cookiesString) {\n if (Array.isArray(cookiesString)) {\n return cookiesString;\n }\n if (typeof cookiesString !== \"string\") {\n return [];\n }\n var cookiesStrings = [];\n var pos = 0;\n var start;\n var ch;\n var lastComma;\n var nextStart;\n var cookiesSeparatorFound;\n function skipWhitespace() {\n while (pos < cookiesString.length && /\\s/.test(cookiesString.charAt(pos))) {\n pos += 1;\n }\n return pos < cookiesString.length;\n }\n function notSpecialChar() {\n ch = cookiesString.charAt(pos);\n return ch !== \"=\" && ch !== \";\" && ch !== \",\";\n }\n while (pos < cookiesString.length) {\n start = pos;\n cookiesSeparatorFound = false;\n while (skipWhitespace()) {\n ch = cookiesString.charAt(pos);\n if (ch === \",\") {\n lastComma = pos;\n pos += 1;\n skipWhitespace();\n nextStart = pos;\n while (pos < cookiesString.length && notSpecialChar()) {\n pos += 1;\n }\n if (pos < cookiesString.length && cookiesString.charAt(pos) === \"=\") {\n cookiesSeparatorFound = true;\n pos = nextStart;\n cookiesStrings.push(cookiesString.substring(start, lastComma));\n start = pos;\n } else {\n pos = lastComma + 1;\n }\n } else {\n pos += 1;\n }\n }\n if (!cookiesSeparatorFound || pos >= cookiesString.length) {\n cookiesStrings.push(cookiesString.substring(start, cookiesString.length));\n }\n }\n return cookiesStrings;\n }\n module.exports = parse;\n module.exports.parse = parse;\n module.exports.parseString = parseString;\n module.exports.splitCookiesString = splitCookiesString;\n }\n});\n\n// src/store.ts\nvar import_set_cookie_parser = __toESM(require_set_cookie());\nvar PERSISTENCY_KEY = \"MSW_COOKIE_STORE\";\nfunction supportsLocalStorage() {\n try {\n if (localStorage == null) {\n return false;\n }\n const testKey = PERSISTENCY_KEY + \"_test\";\n localStorage.setItem(testKey, \"test\");\n localStorage.getItem(testKey);\n localStorage.removeItem(testKey);\n return true;\n } catch (error) {\n return false;\n }\n}\nfunction isPropertyAccessible(object, method) {\n try {\n object[method];\n return true;\n } catch {\n return false;\n }\n}\nvar CookieStore = class {\n constructor() {\n this.store = /* @__PURE__ */ new Map();\n }\n add(request, response) {\n if (isPropertyAccessible(request, \"credentials\") && request.credentials === \"omit\") {\n return;\n }\n const requestUrl = new URL(request.url);\n const responseCookies = response.headers.get(\"set-cookie\");\n if (!responseCookies) {\n return;\n }\n const now = Date.now();\n const parsedResponseCookies = (0, import_set_cookie_parser.parse)(responseCookies).map(\n ({ maxAge, ...cookie }) => ({\n ...cookie,\n expires: maxAge === void 0 ? cookie.expires : new Date(now + maxAge * 1e3),\n maxAge\n })\n );\n const prevCookies = this.store.get(requestUrl.origin) || /* @__PURE__ */ new Map();\n parsedResponseCookies.forEach((cookie) => {\n this.store.set(requestUrl.origin, prevCookies.set(cookie.name, cookie));\n });\n }\n get(request) {\n this.deleteExpiredCookies();\n const requestUrl = new URL(request.url);\n const originCookies = this.store.get(requestUrl.origin) || /* @__PURE__ */ new Map();\n if (!isPropertyAccessible(request, \"credentials\")) {\n return originCookies;\n }\n switch (request.credentials) {\n case \"include\": {\n if (typeof document === \"undefined\") {\n return originCookies;\n }\n const documentCookies = (0, import_set_cookie_parser.parse)(document.cookie);\n documentCookies.forEach((cookie) => {\n originCookies.set(cookie.name, cookie);\n });\n return originCookies;\n }\n case \"same-origin\": {\n return originCookies;\n }\n default:\n return /* @__PURE__ */ new Map();\n }\n }\n getAll() {\n this.deleteExpiredCookies();\n return this.store;\n }\n deleteAll(request) {\n const requestUrl = new URL(request.url);\n this.store.delete(requestUrl.origin);\n }\n clear() {\n this.store.clear();\n }\n hydrate() {\n if (!supportsLocalStorage()) {\n return;\n }\n const persistedCookies = localStorage.getItem(PERSISTENCY_KEY);\n if (!persistedCookies) {\n return;\n }\n try {\n const parsedCookies = JSON.parse(persistedCookies);\n parsedCookies.forEach(([origin, cookies]) => {\n this.store.set(\n origin,\n new Map(\n cookies.map(([token, { expires, ...cookie }]) => [\n token,\n expires === void 0 ? cookie : { ...cookie, expires: new Date(expires) }\n ])\n )\n );\n });\n } catch (error) {\n console.warn(`\n[virtual-cookie] Failed to parse a stored cookie from the localStorage (key \"${PERSISTENCY_KEY}\").\n\nStored value:\n${localStorage.getItem(PERSISTENCY_KEY)}\n\nThrown exception:\n${error}\n\nInvalid value has been removed from localStorage to prevent subsequent failed parsing attempts.`);\n localStorage.removeItem(PERSISTENCY_KEY);\n }\n }\n persist() {\n if (!supportsLocalStorage()) {\n return;\n }\n const serializedCookies = Array.from(this.store.entries()).map(\n ([origin, cookies]) => {\n return [origin, Array.from(cookies.entries())];\n }\n );\n localStorage.setItem(PERSISTENCY_KEY, JSON.stringify(serializedCookies));\n }\n deleteExpiredCookies() {\n const now = Date.now();\n this.store.forEach((originCookies, origin) => {\n originCookies.forEach(({ expires, name }) => {\n if (expires !== void 0 && expires.getTime() <= now) {\n originCookies.delete(name);\n }\n });\n if (originCookies.size === 0) {\n this.store.delete(origin);\n }\n });\n }\n};\nvar store = new CookieStore();\nexport {\n PERSISTENCY_KEY,\n store\n};\n//# sourceMappingURL=index.mjs.map","import { store } from \"@mswjs/cookies\";\nfunction readResponseCookies(request, response) {\n store.add({ ...request, url: request.url.toString() }, response);\n store.persist();\n}\nexport {\n readResponseCookies\n};\n//# sourceMappingURL=readResponseCookies.mjs.map","import { until } from \"@open-draft/until\";\nimport { executeHandlers } from './executeHandlers.mjs';\nimport { onUnhandledRequest } from './request/onUnhandledRequest.mjs';\nimport { readResponseCookies } from './request/readResponseCookies.mjs';\nasync function handleRequest(request, requestId, handlers, options, emitter, handleRequestOptions) {\n emitter.emit(\"request:start\", { request, requestId });\n if (request.headers.get(\"x-msw-intention\") === \"bypass\") {\n emitter.emit(\"request:end\", { request, requestId });\n handleRequestOptions?.onPassthroughResponse?.(request);\n return;\n }\n const lookupResult = await until(() => {\n return executeHandlers({\n request,\n requestId,\n handlers,\n resolutionContext: handleRequestOptions?.resolutionContext\n });\n });\n if (lookupResult.error) {\n emitter.emit(\"unhandledException\", {\n error: lookupResult.error,\n request,\n requestId\n });\n throw lookupResult.error;\n }\n if (!lookupResult.data) {\n await onUnhandledRequest(request, options.onUnhandledRequest);\n emitter.emit(\"request:unhandled\", { request, requestId });\n emitter.emit(\"request:end\", { request, requestId });\n handleRequestOptions?.onPassthroughResponse?.(request);\n return;\n }\n const { response } = lookupResult.data;\n if (!response) {\n emitter.emit(\"request:end\", { request, requestId });\n handleRequestOptions?.onPassthroughResponse?.(request);\n return;\n }\n if (response.status === 302 && response.headers.get(\"x-msw-intention\") === \"passthrough\") {\n emitter.emit(\"request:end\", { request, requestId });\n handleRequestOptions?.onPassthroughResponse?.(request);\n return;\n }\n readResponseCookies(request, response);\n emitter.emit(\"request:match\", { request, requestId });\n const requiredLookupResult = lookupResult.data;\n const transformedResponse = handleRequestOptions?.transformResponse?.(response) || response;\n handleRequestOptions?.onMockedResponse?.(\n transformedResponse,\n requiredLookupResult\n );\n emitter.emit(\"request:end\", { request, requestId });\n return transformedResponse;\n}\nexport {\n handleRequest\n};\n//# sourceMappingURL=handleRequest.mjs.map","function toResponseInit(response) {\n return {\n status: response.status,\n statusText: response.statusText,\n headers: Object.fromEntries(response.headers.entries())\n };\n}\nexport {\n toResponseInit\n};\n//# sourceMappingURL=toResponseInit.mjs.map","function isObject(value) {\n return value != null && typeof value === \"object\" && !Array.isArray(value);\n}\nexport {\n isObject\n};\n//# sourceMappingURL=isObject.mjs.map","import { isObject } from './isObject.mjs';\nfunction mergeRight(left, right) {\n return Object.entries(right).reduce((result, [key, rightValue]) => {\n const leftValue = result[key];\n if (Array.isArray(leftValue) && Array.isArray(rightValue)) {\n result[key] = leftValue.concat(rightValue);\n return result;\n }\n if (isObject(leftValue) && isObject(rightValue)) {\n result[key] = mergeRight(leftValue, rightValue);\n return result;\n }\n result[key] = rightValue;\n return result;\n }, Object.assign({}, left));\n}\nexport {\n mergeRight\n};\n//# sourceMappingURL=mergeRight.mjs.map","// src/MemoryLeakError.ts\nvar MemoryLeakError = class extends Error {\n constructor(emitter, type, count) {\n super(\n `Possible EventEmitter memory leak detected. ${count} ${type.toString()} listeners added. Use emitter.setMaxListeners() to increase limit`\n );\n this.emitter = emitter;\n this.type = type;\n this.count = count;\n this.name = \"MaxListenersExceededWarning\";\n }\n};\n\n// src/Emitter.ts\nvar _Emitter = class {\n static listenerCount(emitter, eventName) {\n return emitter.listenerCount(eventName);\n }\n constructor() {\n this.events = /* @__PURE__ */ new Map();\n this.maxListeners = _Emitter.defaultMaxListeners;\n this.hasWarnedAboutPotentialMemoryLeak = false;\n }\n _emitInternalEvent(internalEventName, eventName, listener) {\n this.emit(\n internalEventName,\n ...[eventName, listener]\n );\n }\n _getListeners(eventName) {\n return Array.prototype.concat.apply([], this.events.get(eventName)) || [];\n }\n _removeListener(listeners, listener) {\n const index = listeners.indexOf(listener);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n return [];\n }\n _wrapOnceListener(eventName, listener) {\n const onceListener = (...data) => {\n this.removeListener(eventName, onceListener);\n return listener.apply(this, data);\n };\n Object.defineProperty(onceListener, \"name\", { value: listener.name });\n return onceListener;\n }\n setMaxListeners(maxListeners) {\n this.maxListeners = maxListeners;\n return this;\n }\n /**\n * Returns the current max listener value for the `Emitter` which is\n * either set by `emitter.setMaxListeners(n)` or defaults to\n * `Emitter.defaultMaxListeners`.\n */\n getMaxListeners() {\n return this.maxListeners;\n }\n /**\n * Returns an array listing the events for which the emitter has registered listeners.\n * The values in the array will be strings or Symbols.\n */\n eventNames() {\n return Array.from(this.events.keys());\n }\n /**\n * Synchronously calls each of the listeners registered for the event named `eventName`,\n * in the order they were registered, passing the supplied arguments to each.\n * Returns `true` if the event has listeners, `false` otherwise.\n *\n * @example\n * const emitter = new Emitter<{ hello: [string] }>()\n * emitter.emit('hello', 'John')\n */\n emit(eventName, ...data) {\n const listeners = this._getListeners(eventName);\n listeners.forEach((listener) => {\n listener.apply(this, data);\n });\n return listeners.length > 0;\n }\n addListener(eventName, listener) {\n this._emitInternalEvent(\"newListener\", eventName, listener);\n const nextListeners = this._getListeners(eventName).concat(listener);\n this.events.set(eventName, nextListeners);\n if (this.maxListeners > 0 && this.listenerCount(eventName) > this.maxListeners && !this.hasWarnedAboutPotentialMemoryLeak) {\n this.hasWarnedAboutPotentialMemoryLeak = true;\n const memoryLeakWarning = new MemoryLeakError(\n this,\n eventName,\n this.listenerCount(eventName)\n );\n console.warn(memoryLeakWarning);\n }\n return this;\n }\n on(eventName, listener) {\n return this.addListener(eventName, listener);\n }\n once(eventName, listener) {\n return this.addListener(\n eventName,\n this._wrapOnceListener(eventName, listener)\n );\n }\n prependListener(eventName, listener) {\n const listeners = this._getListeners(eventName);\n if (listeners.length > 0) {\n const nextListeners = [listener].concat(listeners);\n this.events.set(eventName, nextListeners);\n } else {\n this.events.set(eventName, listeners.concat(listener));\n }\n return this;\n }\n prependOnceListener(eventName, listener) {\n return this.prependListener(\n eventName,\n this._wrapOnceListener(eventName, listener)\n );\n }\n removeListener(eventName, listener) {\n const listeners = this._getListeners(eventName);\n if (listeners.length > 0) {\n this._removeListener(listeners, listener);\n this.events.set(eventName, listeners);\n this._emitInternalEvent(\"removeListener\", eventName, listener);\n }\n return this;\n }\n /**\n * Alias for `emitter.removeListener()`.\n *\n * @example\n * emitter.off('hello', listener)\n */\n off(eventName, listener) {\n return this.removeListener(eventName, listener);\n }\n removeAllListeners(eventName) {\n if (eventName) {\n this.events.delete(eventName);\n } else {\n this.events.clear();\n }\n return this;\n }\n /**\n * Returns a copy of the array of listeners for the event named `eventName`.\n */\n listeners(eventName) {\n return Array.from(this._getListeners(eventName));\n }\n /**\n * Returns the number of listeners listening to the event named `eventName`.\n */\n listenerCount(eventName) {\n return this._getListeners(eventName).length;\n }\n rawListeners(eventName) {\n return this.listeners(eventName);\n }\n};\nvar Emitter = _Emitter;\nEmitter.defaultMaxListeners = 10;\nexport {\n Emitter,\n MemoryLeakError\n};\n//# sourceMappingURL=index.mjs.map","function pipeEvents(source, destination) {\n const rawEmit = source.emit;\n if (rawEmit._isPiped) {\n return;\n }\n const sourceEmit = function sourceEmit2(event, ...data) {\n destination.emit(event, ...data);\n return rawEmit.call(this, event, ...data);\n };\n sourceEmit._isPiped = true;\n source.emit = sourceEmit;\n}\nexport {\n pipeEvents\n};\n//# sourceMappingURL=pipeEvents.mjs.map","function toReadonlyArray(source) {\n const clone = [...source];\n Object.freeze(clone);\n return clone;\n}\nexport {\n toReadonlyArray\n};\n//# sourceMappingURL=toReadonlyArray.mjs.map","class Disposable {\n subscriptions = [];\n async dispose() {\n await Promise.all(this.subscriptions.map((subscription) => subscription()));\n }\n}\nexport {\n Disposable\n};\n//# sourceMappingURL=Disposable.mjs.map","import { invariant } from \"outvariant\";\nimport { Emitter } from \"strict-event-emitter\";\nimport { devUtils } from './utils/internal/devUtils.mjs';\nimport { pipeEvents } from './utils/internal/pipeEvents.mjs';\nimport { toReadonlyArray } from './utils/internal/toReadonlyArray.mjs';\nimport { Disposable } from './utils/internal/Disposable.mjs';\nclass HandlersController {\n}\nclass InMemoryHandlersController {\n constructor(initialHandlers) {\n this.initialHandlers = initialHandlers;\n this.handlers = [...initialHandlers];\n }\n handlers;\n prepend(runtimeHandles) {\n this.handlers.unshift(...runtimeHandles);\n }\n reset(nextHandlers) {\n this.handlers = nextHandlers.length > 0 ? [...nextHandlers] : [...this.initialHandlers];\n }\n currentHandlers() {\n return this.handlers;\n }\n}\nclass SetupApi extends Disposable {\n handlersController;\n emitter;\n publicEmitter;\n events;\n constructor(...initialHandlers) {\n super();\n invariant(\n this.validateHandlers(initialHandlers),\n devUtils.formatMessage(\n `Failed to apply given request handlers: invalid input. Did you forget to spread the request handlers Array?`\n )\n );\n this.handlersController = new InMemoryHandlersController(initialHandlers);\n this.emitter = new Emitter();\n this.publicEmitter = new Emitter();\n pipeEvents(this.emitter, this.publicEmitter);\n this.events = this.createLifeCycleEvents();\n this.subscriptions.push(() => {\n this.emitter.removeAllListeners();\n this.publicEmitter.removeAllListeners();\n });\n }\n validateHandlers(handlers) {\n return handlers.every((handler) => !Array.isArray(handler));\n }\n use(...runtimeHandlers) {\n invariant(\n this.validateHandlers(runtimeHandlers),\n devUtils.formatMessage(\n `Failed to call \"use()\" with the given request handlers: invalid input. Did you forget to spread the array of request handlers?`\n )\n );\n this.handlersController.prepend(runtimeHandlers);\n }\n restoreHandlers() {\n this.handlersController.currentHandlers().forEach((handler) => {\n handler.isUsed = false;\n });\n }\n resetHandlers(...nextHandlers) {\n this.handlersController.reset(nextHandlers);\n }\n listHandlers() {\n return toReadonlyArray(this.handlersController.currentHandlers());\n }\n createLifeCycleEvents() {\n return {\n on: (...args) => {\n return this.publicEmitter.on(...args);\n },\n removeListener: (...args) => {\n return this.publicEmitter.removeListener(...args);\n },\n removeAllListeners: (...args) => {\n return this.publicEmitter.removeAllListeners(...args);\n }\n };\n }\n}\nexport {\n HandlersController,\n InMemoryHandlersController,\n SetupApi\n};\n//# sourceMappingURL=SetupApi.mjs.map","// node_modules/.pnpm/outvariant@1.4.2/node_modules/outvariant/lib/index.mjs\nvar POSITIONALS_EXP = /(%?)(%([sdijo]))/g;\nfunction serializePositional(positional, flag) {\n switch (flag) {\n case \"s\":\n return positional;\n case \"d\":\n case \"i\":\n return Number(positional);\n case \"j\":\n return JSON.stringify(positional);\n case \"o\": {\n if (typeof positional === \"string\") {\n return positional;\n }\n const json = JSON.stringify(positional);\n if (json === \"{}\" || json === \"[]\" || /^\\[object .+?\\]$/.test(json)) {\n return positional;\n }\n return json;\n }\n }\n}\nfunction format(message, ...positionals) {\n if (positionals.length === 0) {\n return message;\n }\n let positionalIndex = 0;\n let formattedMessage = message.replace(\n POSITIONALS_EXP,\n (match, isEscaped, _, flag) => {\n const positional = positionals[positionalIndex];\n const value = serializePositional(positional, flag);\n if (!isEscaped) {\n positionalIndex++;\n return value;\n }\n return match;\n }\n );\n if (positionalIndex < positionals.length) {\n formattedMessage += ` ${positionals.slice(positionalIndex).join(\" \")}`;\n }\n formattedMessage = formattedMessage.replace(/%{2,2}/g, \"%\");\n return formattedMessage;\n}\nvar STACK_FRAMES_TO_IGNORE = 2;\nfunction cleanErrorStack(error2) {\n if (!error2.stack) {\n return;\n }\n const nextStack = error2.stack.split(\"\\n\");\n nextStack.splice(1, STACK_FRAMES_TO_IGNORE);\n error2.stack = nextStack.join(\"\\n\");\n}\nvar InvariantError = class extends Error {\n constructor(message, ...positionals) {\n super(message);\n this.message = message;\n this.name = \"Invariant Violation\";\n this.message = format(message, ...positionals);\n cleanErrorStack(this);\n }\n};\nvar invariant = (predicate, message, ...positionals) => {\n if (!predicate) {\n throw new InvariantError(message, ...positionals);\n }\n};\ninvariant.as = (ErrorConstructor, predicate, message, ...positionals) => {\n if (!predicate) {\n const formatMessage = positionals.length === 0 ? message : format(message, positionals);\n let error2;\n try {\n error2 = Reflect.construct(ErrorConstructor, [formatMessage]);\n } catch (err) {\n error2 = ErrorConstructor(formatMessage);\n }\n throw error2;\n }\n};\n\n// node_modules/.pnpm/is-node-process@1.2.0/node_modules/is-node-process/lib/index.mjs\nfunction isNodeProcess() {\n if (typeof navigator !== \"undefined\" && navigator.product === \"ReactNative\") {\n return true;\n }\n if (typeof process !== \"undefined\") {\n const type = process.type;\n if (type === \"renderer\" || type === \"worker\") {\n return false;\n }\n return !!(process.versions && process.versions.node);\n }\n return false;\n}\n\n// src/browser/setupWorker/start/createStartHandler.ts\nimport { devUtils as devUtils7 } from '../core/utils/internal/devUtils.mjs';\n\n// node_modules/.pnpm/@open-draft+until@2.1.0/node_modules/@open-draft/until/lib/index.mjs\nvar until = async (promise) => {\n try {\n const data = await promise().catch((error2) => {\n throw error2;\n });\n return { error: null, data };\n } catch (error2) {\n return { error: error2, data: null };\n }\n};\n\n// src/browser/setupWorker/start/utils/getWorkerInstance.ts\nimport { devUtils } from '../core/utils/internal/devUtils.mjs';\n\n// src/browser/utils/getAbsoluteWorkerUrl.ts\nfunction getAbsoluteWorkerUrl(workerUrl) {\n return new URL(workerUrl, location.href).href;\n}\n\n// src/browser/setupWorker/start/utils/getWorkerByRegistration.ts\nfunction getWorkerByRegistration(registration, absoluteWorkerUrl, findWorker) {\n const allStates = [\n registration.active,\n registration.installing,\n registration.waiting\n ];\n const relevantStates = allStates.filter((state) => {\n return state != null;\n });\n const worker = relevantStates.find((worker2) => {\n return findWorker(worker2.scriptURL, absoluteWorkerUrl);\n });\n return worker || null;\n}\n\n// src/browser/setupWorker/start/utils/getWorkerInstance.ts\nvar getWorkerInstance = async (url, options = {}, findWorker) => {\n const absoluteWorkerUrl = getAbsoluteWorkerUrl(url);\n const mockRegistrations = await navigator.serviceWorker.getRegistrations().then(\n (registrations) => registrations.filter(\n (registration) => getWorkerByRegistration(registration, absoluteWorkerUrl, findWorker)\n )\n );\n if (!navigator.serviceWorker.controller && mockRegistrations.length > 0) {\n location.reload();\n }\n const [existingRegistration] = mockRegistrations;\n if (existingRegistration) {\n return existingRegistration.update().then(() => {\n return [\n getWorkerByRegistration(\n existingRegistration,\n absoluteWorkerUrl,\n findWorker\n ),\n existingRegistration\n ];\n });\n }\n const registrationResult = await until(\n async () => {\n const registration = await navigator.serviceWorker.register(url, options);\n return [\n // Compare existing worker registration by its worker URL,\n // to prevent irrelevant workers to resolve here (such as Codesandbox worker).\n getWorkerByRegistration(registration, absoluteWorkerUrl, findWorker),\n registration\n ];\n }\n );\n if (registrationResult.error) {\n const isWorkerMissing = registrationResult.error.message.includes(\"(404)\");\n if (isWorkerMissing) {\n const scopeUrl = new URL(options?.scope || \"/\", location.href);\n throw new Error(\n devUtils.formatMessage(`Failed to register a Service Worker for scope ('${scopeUrl.href}') with script ('${absoluteWorkerUrl}'): Service Worker script does not exist at the given path.\n\nDid you forget to run \"npx msw init \"?\n\nLearn more about creating the Service Worker script: https://mswjs.io/docs/cli/init`)\n );\n }\n throw new Error(\n devUtils.formatMessage(\n \"Failed to register the Service Worker:\\n\\n%s\",\n registrationResult.error.message\n )\n );\n }\n return registrationResult.data;\n};\n\n// src/browser/setupWorker/start/utils/enableMocking.ts\nimport { devUtils as devUtils3 } from '../core/utils/internal/devUtils.mjs';\n\n// src/browser/setupWorker/start/utils/printStartMessage.ts\nimport { devUtils as devUtils2 } from '../core/utils/internal/devUtils.mjs';\nfunction printStartMessage(args = {}) {\n if (args.quiet) {\n return;\n }\n const message = args.message || \"Mocking enabled.\";\n console.groupCollapsed(\n `%c${devUtils2.formatMessage(message)}`,\n \"color:orangered;font-weight:bold;\"\n );\n console.log(\n \"%cDocumentation: %chttps://mswjs.io/docs\",\n \"font-weight:bold\",\n \"font-weight:normal\"\n );\n console.log(\"Found an issue? https://github.com/mswjs/msw/issues\");\n if (args.workerUrl) {\n console.log(\"Worker script URL:\", args.workerUrl);\n }\n if (args.workerScope) {\n console.log(\"Worker scope:\", args.workerScope);\n }\n console.groupEnd();\n}\n\n// src/browser/setupWorker/start/utils/enableMocking.ts\nasync function enableMocking(context, options) {\n context.workerChannel.send(\"MOCK_ACTIVATE\");\n await context.events.once(\"MOCKING_ENABLED\");\n if (context.isMockingEnabled) {\n devUtils3.warn(\n `Found a redundant \"worker.start()\" call. Note that starting the worker while mocking is already enabled will have no effect. Consider removing this \"worker.start()\" call.`\n );\n return;\n }\n context.isMockingEnabled = true;\n printStartMessage({\n quiet: options.quiet,\n workerScope: context.registration?.scope,\n workerUrl: context.worker?.scriptURL\n });\n}\n\n// src/browser/setupWorker/start/utils/createMessageChannel.ts\nvar WorkerChannel = class {\n constructor(port) {\n this.port = port;\n }\n postMessage(event, ...rest) {\n const [data, transfer] = rest;\n this.port.postMessage({ type: event, data }, { transfer });\n }\n};\n\n// src/browser/utils/pruneGetRequestBody.ts\nfunction pruneGetRequestBody(request) {\n if ([\"HEAD\", \"GET\"].includes(request.method)) {\n return void 0;\n }\n return request.body;\n}\n\n// src/browser/utils/parseWorkerRequest.ts\nfunction parseWorkerRequest(incomingRequest) {\n return new Request(incomingRequest.url, {\n ...incomingRequest,\n body: pruneGetRequestBody(incomingRequest)\n });\n}\n\n// src/browser/setupWorker/start/createRequestListener.ts\nimport { RequestHandler } from '../core/handlers/RequestHandler.mjs';\nimport { handleRequest } from '../core/utils/handleRequest.mjs';\nimport { devUtils as devUtils4 } from '../core/utils/internal/devUtils.mjs';\nimport { toResponseInit } from '../core/utils/toResponseInit.mjs';\nvar createRequestListener = (context, options) => {\n return async (event, message) => {\n const messageChannel = new WorkerChannel(event.ports[0]);\n const requestId = message.payload.id;\n const request = parseWorkerRequest(message.payload);\n const requestCloneForLogs = request.clone();\n const requestClone = request.clone();\n RequestHandler.cache.set(request, requestClone);\n context.requests.set(requestId, requestClone);\n try {\n await handleRequest(\n request,\n requestId,\n context.getRequestHandlers(),\n options,\n context.emitter,\n {\n onPassthroughResponse() {\n messageChannel.postMessage(\"PASSTHROUGH\");\n },\n async onMockedResponse(response, { handler, parsedResult }) {\n const responseClone = response.clone();\n const responseCloneForLogs = response.clone();\n const responseInit = toResponseInit(response);\n if (context.supports.readableStreamTransfer) {\n const responseStreamOrNull = response.body;\n messageChannel.postMessage(\n \"MOCK_RESPONSE\",\n {\n ...responseInit,\n body: responseStreamOrNull\n },\n responseStreamOrNull ? [responseStreamOrNull] : void 0\n );\n } else {\n const responseBufferOrNull = response.body === null ? null : await responseClone.arrayBuffer();\n messageChannel.postMessage(\"MOCK_RESPONSE\", {\n ...responseInit,\n body: responseBufferOrNull\n });\n }\n if (!options.quiet) {\n context.emitter.once(\"response:mocked\", () => {\n handler.log({\n request: requestCloneForLogs,\n response: responseCloneForLogs,\n parsedResult\n });\n });\n }\n }\n }\n );\n } catch (error2) {\n if (error2 instanceof Error) {\n devUtils4.error(\n `Uncaught exception in the request handler for \"%s %s\":\n\n%s\n\nThis exception has been gracefully handled as a 500 response, however, it's strongly recommended to resolve this error, as it indicates a mistake in your code. If you wish to mock an error response, please see this guide: https://mswjs.io/docs/recipes/mocking-error-responses`,\n request.method,\n request.url,\n error2.stack ?? error2\n );\n messageChannel.postMessage(\"MOCK_RESPONSE\", {\n status: 500,\n statusText: \"Request Handler Error\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({\n name: error2.name,\n message: error2.message,\n stack: error2.stack\n })\n });\n }\n }\n };\n};\n\n// src/browser/utils/checkWorkerIntegrity.ts\nimport { devUtils as devUtils5 } from '../core/utils/internal/devUtils.mjs';\nasync function checkWorkerIntegrity(context) {\n context.workerChannel.send(\"INTEGRITY_CHECK_REQUEST\");\n const { payload } = await context.events.once(\"INTEGRITY_CHECK_RESPONSE\");\n if (payload.checksum !== \"26357c79639bfa20d64c0efca2a87423\") {\n devUtils5.warn(\n `The currently registered Service Worker has been generated by a different version of MSW (${payload.packageVersion}) and may not be fully compatible with the installed version.\n\nIt's recommended you update your worker script by running this command:\n\n \\u2022 npx msw init \n\nYou can also automate this process and make the worker script update automatically upon the library installations. Read more: https://mswjs.io/docs/cli/init.`\n );\n }\n}\n\n// node_modules/.pnpm/@mswjs+interceptors@0.25.16/node_modules/@mswjs/interceptors/lib/browser/chunk-UJZOJSMP.mjs\nvar encoder = new TextEncoder();\nfunction encodeBuffer(text) {\n return encoder.encode(text);\n}\nfunction decodeBuffer(buffer, encoding) {\n const decoder = new TextDecoder(encoding);\n return decoder.decode(buffer);\n}\nfunction toArrayBuffer(array) {\n return array.buffer.slice(\n array.byteOffset,\n array.byteOffset + array.byteLength\n );\n}\nvar RESPONSE_STATUS_CODES_WITHOUT_BODY = /* @__PURE__ */ new Set([\n 101,\n 103,\n 204,\n 205,\n 304\n]);\nfunction isResponseWithoutBody(status) {\n return RESPONSE_STATUS_CODES_WITHOUT_BODY.has(status);\n}\n\n// node_modules/.pnpm/@open-draft+logger@0.3.0/node_modules/@open-draft/logger/lib/index.mjs\nvar __defProp = Object.defineProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar colors_exports = {};\n__export(colors_exports, {\n blue: () => blue,\n gray: () => gray,\n green: () => green,\n red: () => red,\n yellow: () => yellow\n});\nfunction yellow(text) {\n return `\\x1B[33m${text}\\x1B[0m`;\n}\nfunction blue(text) {\n return `\\x1B[34m${text}\\x1B[0m`;\n}\nfunction gray(text) {\n return `\\x1B[90m${text}\\x1B[0m`;\n}\nfunction red(text) {\n return `\\x1B[31m${text}\\x1B[0m`;\n}\nfunction green(text) {\n return `\\x1B[32m${text}\\x1B[0m`;\n}\nvar IS_NODE = isNodeProcess();\nvar Logger = class {\n constructor(name) {\n this.name = name;\n this.prefix = `[${this.name}]`;\n const LOGGER_NAME = getVariable(\"DEBUG\");\n const LOGGER_LEVEL = getVariable(\"LOG_LEVEL\");\n const isLoggingEnabled = LOGGER_NAME === \"1\" || LOGGER_NAME === \"true\" || typeof LOGGER_NAME !== \"undefined\" && this.name.startsWith(LOGGER_NAME);\n if (isLoggingEnabled) {\n this.debug = isDefinedAndNotEquals(LOGGER_LEVEL, \"debug\") ? noop : this.debug;\n this.info = isDefinedAndNotEquals(LOGGER_LEVEL, \"info\") ? noop : this.info;\n this.success = isDefinedAndNotEquals(LOGGER_LEVEL, \"success\") ? noop : this.success;\n this.warning = isDefinedAndNotEquals(LOGGER_LEVEL, \"warning\") ? noop : this.warning;\n this.error = isDefinedAndNotEquals(LOGGER_LEVEL, \"error\") ? noop : this.error;\n } else {\n this.info = noop;\n this.success = noop;\n this.warning = noop;\n this.error = noop;\n this.only = noop;\n }\n }\n prefix;\n extend(domain) {\n return new Logger(`${this.name}:${domain}`);\n }\n /**\n * Print a debug message.\n * @example\n * logger.debug('no duplicates found, creating a document...')\n */\n debug(message, ...positionals) {\n this.logEntry({\n level: \"debug\",\n message: gray(message),\n positionals,\n prefix: this.prefix,\n colors: {\n prefix: \"gray\"\n }\n });\n }\n /**\n * Print an info message.\n * @example\n * logger.info('start parsing...')\n */\n info(message, ...positionals) {\n this.logEntry({\n level: \"info\",\n message,\n positionals,\n prefix: this.prefix,\n colors: {\n prefix: \"blue\"\n }\n });\n const performance2 = new PerformanceEntry();\n return (message2, ...positionals2) => {\n performance2.measure();\n this.logEntry({\n level: \"info\",\n message: `${message2} ${gray(`${performance2.deltaTime}ms`)}`,\n positionals: positionals2,\n prefix: this.prefix,\n colors: {\n prefix: \"blue\"\n }\n });\n };\n }\n /**\n * Print a success message.\n * @example\n * logger.success('successfully created document')\n */\n success(message, ...positionals) {\n this.logEntry({\n level: \"info\",\n message,\n positionals,\n prefix: `\\u2714 ${this.prefix}`,\n colors: {\n timestamp: \"green\",\n prefix: \"green\"\n }\n });\n }\n /**\n * Print a warning.\n * @example\n * logger.warning('found legacy document format')\n */\n warning(message, ...positionals) {\n this.logEntry({\n level: \"warning\",\n message,\n positionals,\n prefix: `\\u26A0 ${this.prefix}`,\n colors: {\n timestamp: \"yellow\",\n prefix: \"yellow\"\n }\n });\n }\n /**\n * Print an error message.\n * @example\n * logger.error('something went wrong')\n */\n error(message, ...positionals) {\n this.logEntry({\n level: \"error\",\n message,\n positionals,\n prefix: `\\u2716 ${this.prefix}`,\n colors: {\n timestamp: \"red\",\n prefix: \"red\"\n }\n });\n }\n /**\n * Execute the given callback only when the logging is enabled.\n * This is skipped in its entirety and has no runtime cost otherwise.\n * This executes regardless of the log level.\n * @example\n * logger.only(() => {\n * logger.info('additional info')\n * })\n */\n only(callback) {\n callback();\n }\n createEntry(level, message) {\n return {\n timestamp: /* @__PURE__ */ new Date(),\n level,\n message\n };\n }\n logEntry(args) {\n const {\n level,\n message,\n prefix,\n colors: customColors,\n positionals = []\n } = args;\n const entry = this.createEntry(level, message);\n const timestampColor = customColors?.timestamp || \"gray\";\n const prefixColor = customColors?.prefix || \"gray\";\n const colorize = {\n timestamp: colors_exports[timestampColor],\n prefix: colors_exports[prefixColor]\n };\n const write = this.getWriter(level);\n write(\n [colorize.timestamp(this.formatTimestamp(entry.timestamp))].concat(prefix != null ? colorize.prefix(prefix) : []).concat(serializeInput(message)).join(\" \"),\n ...positionals.map(serializeInput)\n );\n }\n formatTimestamp(timestamp) {\n return `${timestamp.toLocaleTimeString(\n \"en-GB\"\n )}:${timestamp.getMilliseconds()}`;\n }\n getWriter(level) {\n switch (level) {\n case \"debug\":\n case \"success\":\n case \"info\": {\n return log;\n }\n case \"warning\": {\n return warn;\n }\n case \"error\": {\n return error;\n }\n }\n }\n};\nvar PerformanceEntry = class {\n startTime;\n endTime;\n deltaTime;\n constructor() {\n this.startTime = performance.now();\n }\n measure() {\n this.endTime = performance.now();\n const deltaTime = this.endTime - this.startTime;\n this.deltaTime = deltaTime.toFixed(2);\n }\n};\nvar noop = () => void 0;\nfunction log(message, ...positionals) {\n if (IS_NODE) {\n process.stdout.write(format(message, ...positionals) + \"\\n\");\n return;\n }\n console.log(message, ...positionals);\n}\nfunction warn(message, ...positionals) {\n if (IS_NODE) {\n process.stderr.write(format(message, ...positionals) + \"\\n\");\n return;\n }\n console.warn(message, ...positionals);\n}\nfunction error(message, ...positionals) {\n if (IS_NODE) {\n process.stderr.write(format(message, ...positionals) + \"\\n\");\n return;\n }\n console.error(message, ...positionals);\n}\nfunction getVariable(variableName) {\n if (IS_NODE) {\n return process.env[variableName];\n }\n return globalThis[variableName]?.toString();\n}\nfunction isDefinedAndNotEquals(value, expected) {\n return value !== void 0 && value !== expected;\n}\nfunction serializeInput(message) {\n if (typeof message === \"undefined\") {\n return \"undefined\";\n }\n if (message === null) {\n return \"null\";\n }\n if (typeof message === \"string\") {\n return message;\n }\n if (typeof message === \"object\") {\n return JSON.stringify(message);\n }\n return message.toString();\n}\n\n// node_modules/.pnpm/strict-event-emitter@0.5.1/node_modules/strict-event-emitter/lib/index.mjs\nvar MemoryLeakError = class extends Error {\n constructor(emitter, type, count) {\n super(\n `Possible EventEmitter memory leak detected. ${count} ${type.toString()} listeners added. Use emitter.setMaxListeners() to increase limit`\n );\n this.emitter = emitter;\n this.type = type;\n this.count = count;\n this.name = \"MaxListenersExceededWarning\";\n }\n};\nvar _Emitter = class {\n static listenerCount(emitter, eventName) {\n return emitter.listenerCount(eventName);\n }\n constructor() {\n this.events = /* @__PURE__ */ new Map();\n this.maxListeners = _Emitter.defaultMaxListeners;\n this.hasWarnedAboutPotentialMemoryLeak = false;\n }\n _emitInternalEvent(internalEventName, eventName, listener) {\n this.emit(\n internalEventName,\n ...[eventName, listener]\n );\n }\n _getListeners(eventName) {\n return Array.prototype.concat.apply([], this.events.get(eventName)) || [];\n }\n _removeListener(listeners, listener) {\n const index = listeners.indexOf(listener);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n return [];\n }\n _wrapOnceListener(eventName, listener) {\n const onceListener = (...data) => {\n this.removeListener(eventName, onceListener);\n return listener.apply(this, data);\n };\n Object.defineProperty(onceListener, \"name\", { value: listener.name });\n return onceListener;\n }\n setMaxListeners(maxListeners) {\n this.maxListeners = maxListeners;\n return this;\n }\n /**\n * Returns the current max listener value for the `Emitter` which is\n * either set by `emitter.setMaxListeners(n)` or defaults to\n * `Emitter.defaultMaxListeners`.\n */\n getMaxListeners() {\n return this.maxListeners;\n }\n /**\n * Returns an array listing the events for which the emitter has registered listeners.\n * The values in the array will be strings or Symbols.\n */\n eventNames() {\n return Array.from(this.events.keys());\n }\n /**\n * Synchronously calls each of the listeners registered for the event named `eventName`,\n * in the order they were registered, passing the supplied arguments to each.\n * Returns `true` if the event has listeners, `false` otherwise.\n *\n * @example\n * const emitter = new Emitter<{ hello: [string] }>()\n * emitter.emit('hello', 'John')\n */\n emit(eventName, ...data) {\n const listeners = this._getListeners(eventName);\n listeners.forEach((listener) => {\n listener.apply(this, data);\n });\n return listeners.length > 0;\n }\n addListener(eventName, listener) {\n this._emitInternalEvent(\"newListener\", eventName, listener);\n const nextListeners = this._getListeners(eventName).concat(listener);\n this.events.set(eventName, nextListeners);\n if (this.maxListeners > 0 && this.listenerCount(eventName) > this.maxListeners && !this.hasWarnedAboutPotentialMemoryLeak) {\n this.hasWarnedAboutPotentialMemoryLeak = true;\n const memoryLeakWarning = new MemoryLeakError(\n this,\n eventName,\n this.listenerCount(eventName)\n );\n console.warn(memoryLeakWarning);\n }\n return this;\n }\n on(eventName, listener) {\n return this.addListener(eventName, listener);\n }\n once(eventName, listener) {\n return this.addListener(\n eventName,\n this._wrapOnceListener(eventName, listener)\n );\n }\n prependListener(eventName, listener) {\n const listeners = this._getListeners(eventName);\n if (listeners.length > 0) {\n const nextListeners = [listener].concat(listeners);\n this.events.set(eventName, nextListeners);\n } else {\n this.events.set(eventName, listeners.concat(listener));\n }\n return this;\n }\n prependOnceListener(eventName, listener) {\n return this.prependListener(\n eventName,\n this._wrapOnceListener(eventName, listener)\n );\n }\n removeListener(eventName, listener) {\n const listeners = this._getListeners(eventName);\n if (listeners.length > 0) {\n this._removeListener(listeners, listener);\n this.events.set(eventName, listeners);\n this._emitInternalEvent(\"removeListener\", eventName, listener);\n }\n return this;\n }\n /**\n * Alias for `emitter.removeListener()`.\n *\n * @example\n * emitter.off('hello', listener)\n */\n off(eventName, listener) {\n return this.removeListener(eventName, listener);\n }\n removeAllListeners(eventName) {\n if (eventName) {\n this.events.delete(eventName);\n } else {\n this.events.clear();\n }\n return this;\n }\n /**\n * Returns a copy of the array of listeners for the event named `eventName`.\n */\n listeners(eventName) {\n return Array.from(this._getListeners(eventName));\n }\n /**\n * Returns the number of listeners listening to the event named `eventName`.\n */\n listenerCount(eventName) {\n return this._getListeners(eventName).length;\n }\n rawListeners(eventName) {\n return this.listeners(eventName);\n }\n};\nvar Emitter = _Emitter;\nEmitter.defaultMaxListeners = 10;\n\n// node_modules/.pnpm/@mswjs+interceptors@0.25.16/node_modules/@mswjs/interceptors/lib/browser/chunk-WZQN3FMY.mjs\nvar IS_PATCHED_MODULE = Symbol(\"isPatchedModule\");\nfunction getGlobalSymbol(symbol) {\n return (\n // @ts-ignore https://github.com/Microsoft/TypeScript/issues/24587\n globalThis[symbol] || void 0\n );\n}\nfunction setGlobalSymbol(symbol, value) {\n globalThis[symbol] = value;\n}\nfunction deleteGlobalSymbol(symbol) {\n delete globalThis[symbol];\n}\nvar Interceptor = class {\n constructor(symbol) {\n this.symbol = symbol;\n this.readyState = \"INACTIVE\";\n this.emitter = new Emitter();\n this.subscriptions = [];\n this.logger = new Logger(symbol.description);\n this.emitter.setMaxListeners(0);\n this.logger.info(\"constructing the interceptor...\");\n }\n /**\n * Determine if this interceptor can be applied\n * in the current environment.\n */\n checkEnvironment() {\n return true;\n }\n /**\n * Apply this interceptor to the current process.\n * Returns an already running interceptor instance if it's present.\n */\n apply() {\n const logger = this.logger.extend(\"apply\");\n logger.info(\"applying the interceptor...\");\n if (this.readyState === \"APPLIED\") {\n logger.info(\"intercepted already applied!\");\n return;\n }\n const shouldApply = this.checkEnvironment();\n if (!shouldApply) {\n logger.info(\"the interceptor cannot be applied in this environment!\");\n return;\n }\n this.readyState = \"APPLYING\";\n const runningInstance = this.getInstance();\n if (runningInstance) {\n logger.info(\"found a running instance, reusing...\");\n this.on = (event, listener) => {\n logger.info('proxying the \"%s\" listener', event);\n runningInstance.emitter.addListener(event, listener);\n this.subscriptions.push(() => {\n runningInstance.emitter.removeListener(event, listener);\n logger.info('removed proxied \"%s\" listener!', event);\n });\n return this;\n };\n this.readyState = \"APPLIED\";\n return;\n }\n logger.info(\"no running instance found, setting up a new instance...\");\n this.setup();\n this.setInstance();\n this.readyState = \"APPLIED\";\n }\n /**\n * Setup the module augments and stubs necessary for this interceptor.\n * This method is not run if there's a running interceptor instance\n * to prevent instantiating an interceptor multiple times.\n */\n setup() {\n }\n /**\n * Listen to the interceptor's public events.\n */\n on(event, listener) {\n const logger = this.logger.extend(\"on\");\n if (this.readyState === \"DISPOSING\" || this.readyState === \"DISPOSED\") {\n logger.info(\"cannot listen to events, already disposed!\");\n return this;\n }\n logger.info('adding \"%s\" event listener:', event, listener);\n this.emitter.on(event, listener);\n return this;\n }\n once(event, listener) {\n this.emitter.once(event, listener);\n return this;\n }\n off(event, listener) {\n this.emitter.off(event, listener);\n return this;\n }\n removeAllListeners(event) {\n this.emitter.removeAllListeners(event);\n return this;\n }\n /**\n * Disposes of any side-effects this interceptor has introduced.\n */\n dispose() {\n const logger = this.logger.extend(\"dispose\");\n if (this.readyState === \"DISPOSED\") {\n logger.info(\"cannot dispose, already disposed!\");\n return;\n }\n logger.info(\"disposing the interceptor...\");\n this.readyState = \"DISPOSING\";\n if (!this.getInstance()) {\n logger.info(\"no interceptors running, skipping dispose...\");\n return;\n }\n this.clearInstance();\n logger.info(\"global symbol deleted:\", getGlobalSymbol(this.symbol));\n if (this.subscriptions.length > 0) {\n logger.info(\"disposing of %d subscriptions...\", this.subscriptions.length);\n for (const dispose of this.subscriptions) {\n dispose();\n }\n this.subscriptions = [];\n logger.info(\"disposed of all subscriptions!\", this.subscriptions.length);\n }\n this.emitter.removeAllListeners();\n logger.info(\"destroyed the listener!\");\n this.readyState = \"DISPOSED\";\n }\n getInstance() {\n var _a;\n const instance = getGlobalSymbol(this.symbol);\n this.logger.info(\"retrieved global instance:\", (_a = instance == null ? void 0 : instance.constructor) == null ? void 0 : _a.name);\n return instance;\n }\n setInstance() {\n setGlobalSymbol(this.symbol, this);\n this.logger.info(\"set global instance!\", this.symbol.description);\n }\n clearInstance() {\n deleteGlobalSymbol(this.symbol);\n this.logger.info(\"cleared global instance!\", this.symbol.description);\n }\n};\n\n// node_modules/.pnpm/@mswjs+interceptors@0.25.16/node_modules/@mswjs/interceptors/lib/browser/index.mjs\nvar BatchInterceptor = class extends Interceptor {\n constructor(options) {\n BatchInterceptor.symbol = Symbol(options.name);\n super(BatchInterceptor.symbol);\n this.interceptors = options.interceptors;\n }\n setup() {\n const logger = this.logger.extend(\"setup\");\n logger.info(\"applying all %d interceptors...\", this.interceptors.length);\n for (const interceptor of this.interceptors) {\n logger.info('applying \"%s\" interceptor...', interceptor.constructor.name);\n interceptor.apply();\n logger.info(\"adding interceptor dispose subscription\");\n this.subscriptions.push(() => interceptor.dispose());\n }\n }\n on(event, listener) {\n for (const interceptor of this.interceptors) {\n interceptor.on(event, listener);\n }\n return this;\n }\n once(event, listener) {\n for (const interceptor of this.interceptors) {\n interceptor.once(event, listener);\n }\n return this;\n }\n off(event, listener) {\n for (const interceptor of this.interceptors) {\n interceptor.off(event, listener);\n }\n return this;\n }\n removeAllListeners(event) {\n for (const interceptors of this.interceptors) {\n interceptors.removeAllListeners(event);\n }\n return this;\n }\n};\n\n// src/browser/setupWorker/start/createResponseListener.ts\nfunction createResponseListener(context) {\n return (_, message) => {\n const { payload: responseJson } = message;\n const { requestId } = responseJson;\n const request = context.requests.get(requestId);\n context.requests.delete(requestId);\n console.log(\"RESPONSE LISTENER\", responseJson, context.requests);\n if (responseJson.type?.includes(\"opaque\")) {\n return;\n }\n const response = responseJson.status === 0 ? Response.error() : new Response(\n /**\n * Responses may be streams here, but when we create a response object\n * with null-body status codes, like 204, 205, 304 Response will\n * throw when passed a non-null body, so ensure it's null here\n * for those codes\n */\n isResponseWithoutBody(responseJson.status) ? null : responseJson.body,\n responseJson\n );\n if (!response.url) {\n Object.defineProperty(response, \"url\", {\n value: request.url,\n enumerable: true,\n writable: false\n });\n }\n context.emitter.emit(\n responseJson.isMockedResponse ? \"response:mocked\" : \"response:bypass\",\n {\n response,\n request,\n requestId: responseJson.requestId\n }\n );\n };\n}\n\n// src/browser/setupWorker/start/utils/validateWorkerScope.ts\nimport { devUtils as devUtils6 } from '../core/utils/internal/devUtils.mjs';\nfunction validateWorkerScope(registration, options) {\n if (!options?.quiet && !location.href.startsWith(registration.scope)) {\n devUtils6.warn(\n `Cannot intercept requests on this page because it's outside of the worker's scope (\"${registration.scope}\"). If you wish to mock API requests on this page, you must resolve this scope issue.\n\n- (Recommended) Register the worker at the root level (\"/\") of your application.\n- Set the \"Service-Worker-Allowed\" response header to allow out-of-scope workers.`\n );\n }\n}\n\n// src/browser/setupWorker/start/createStartHandler.ts\nvar createStartHandler = (context) => {\n return function start(options, customOptions) {\n const startWorkerInstance = async () => {\n context.events.removeAllListeners();\n context.workerChannel.on(\n \"REQUEST\",\n createRequestListener(context, options)\n );\n context.workerChannel.on(\"RESPONSE\", createResponseListener(context));\n const instance = await getWorkerInstance(\n options.serviceWorker.url,\n options.serviceWorker.options,\n options.findWorker\n );\n const [worker, registration] = instance;\n if (!worker) {\n const missingWorkerMessage = customOptions?.findWorker ? devUtils7.formatMessage(\n `Failed to locate the Service Worker registration using a custom \"findWorker\" predicate.\n\nPlease ensure that the custom predicate properly locates the Service Worker registration at \"%s\".\nMore details: https://mswjs.io/docs/api/setup-worker/start#findworker\n`,\n options.serviceWorker.url\n ) : devUtils7.formatMessage(\n `Failed to locate the Service Worker registration.\n\nThis most likely means that the worker script URL \"%s\" cannot resolve against the actual public hostname (%s). This may happen if your application runs behind a proxy, or has a dynamic hostname.\n\nPlease consider using a custom \"serviceWorker.url\" option to point to the actual worker script location, or a custom \"findWorker\" option to resolve the Service Worker registration manually. More details: https://mswjs.io/docs/api/setup-worker/start`,\n options.serviceWorker.url,\n location.host\n );\n throw new Error(missingWorkerMessage);\n }\n context.worker = worker;\n context.registration = registration;\n context.events.addListener(window, \"beforeunload\", () => {\n if (worker.state !== \"redundant\") {\n context.workerChannel.send(\"CLIENT_CLOSED\");\n }\n window.clearInterval(context.keepAliveInterval);\n });\n await checkWorkerIntegrity(context).catch((error2) => {\n devUtils7.error(\n \"Error while checking the worker script integrity. Please report this on GitHub (https://github.com/mswjs/msw/issues), including the original error below.\"\n );\n console.error(error2);\n });\n context.keepAliveInterval = window.setInterval(\n () => context.workerChannel.send(\"KEEPALIVE_REQUEST\"),\n 5e3\n );\n validateWorkerScope(registration, context.startOptions);\n return registration;\n };\n const workerRegistration = startWorkerInstance().then(\n async (registration) => {\n const pendingInstance = registration.installing || registration.waiting;\n if (pendingInstance) {\n await new Promise((resolve) => {\n pendingInstance.addEventListener(\"statechange\", () => {\n if (pendingInstance.state === \"activated\") {\n return resolve();\n }\n });\n });\n }\n await enableMocking(context, options).catch((error2) => {\n throw new Error(`Failed to enable mocking: ${error2?.message}`);\n });\n return registration;\n }\n );\n return workerRegistration;\n };\n};\n\n// src/browser/setupWorker/stop/createStop.ts\nimport { devUtils as devUtils9 } from '../core/utils/internal/devUtils.mjs';\n\n// src/browser/setupWorker/stop/utils/printStopMessage.ts\nimport { devUtils as devUtils8 } from '../core/utils/internal/devUtils.mjs';\nfunction printStopMessage(args = {}) {\n if (args.quiet) {\n return;\n }\n console.log(\n `%c${devUtils8.formatMessage(\"Mocking disabled.\")}`,\n \"color:orangered;font-weight:bold;\"\n );\n}\n\n// src/browser/setupWorker/stop/createStop.ts\nvar createStop = (context) => {\n return function stop() {\n if (!context.isMockingEnabled) {\n devUtils9.warn(\n 'Found a redundant \"worker.stop()\" call. Note that stopping the worker while mocking already stopped has no effect. Consider removing this \"worker.stop()\" call.'\n );\n return;\n }\n context.workerChannel.send(\"MOCK_DEACTIVATE\");\n context.isMockingEnabled = false;\n window.clearInterval(context.keepAliveInterval);\n printStopMessage({ quiet: context.startOptions?.quiet });\n };\n};\n\n// src/browser/setupWorker/start/utils/prepareStartHandler.ts\nimport { mergeRight } from '../core/utils/internal/mergeRight.mjs';\nvar DEFAULT_START_OPTIONS = {\n serviceWorker: {\n url: \"/mockServiceWorker.js\",\n options: null\n },\n quiet: false,\n waitUntilReady: true,\n onUnhandledRequest: \"warn\",\n findWorker(scriptURL, mockServiceWorkerUrl) {\n return scriptURL === mockServiceWorkerUrl;\n }\n};\n\n// node_modules/.pnpm/@open-draft+deferred-promise@2.2.0/node_modules/@open-draft/deferred-promise/build/index.mjs\nfunction createDeferredExecutor() {\n const executor = (resolve, reject) => {\n executor.state = \"pending\";\n executor.resolve = (data) => {\n if (executor.state !== \"pending\") {\n return;\n }\n executor.result = data;\n const onFulfilled = (value) => {\n executor.state = \"fulfilled\";\n return value;\n };\n return resolve(\n data instanceof Promise ? data : Promise.resolve(data).then(onFulfilled)\n );\n };\n executor.reject = (reason) => {\n if (executor.state !== \"pending\") {\n return;\n }\n queueMicrotask(() => {\n executor.state = \"rejected\";\n });\n return reject(executor.rejectionReason = reason);\n };\n };\n return executor;\n}\nvar DeferredPromise = class extends Promise {\n #executor;\n resolve;\n reject;\n constructor(executor = null) {\n const deferredExecutor = createDeferredExecutor();\n super((originalResolve, originalReject) => {\n deferredExecutor(originalResolve, originalReject);\n executor?.(deferredExecutor.resolve, deferredExecutor.reject);\n });\n this.#executor = deferredExecutor;\n this.resolve = this.#executor.resolve;\n this.reject = this.#executor.reject;\n }\n get state() {\n return this.#executor.state;\n }\n get rejectionReason() {\n return this.#executor.rejectionReason;\n }\n then(onFulfilled, onRejected) {\n return this.#decorate(super.then(onFulfilled, onRejected));\n }\n catch(onRejected) {\n return this.#decorate(super.catch(onRejected));\n }\n finally(onfinally) {\n return this.#decorate(super.finally(onfinally));\n }\n #decorate(promise) {\n return Object.defineProperties(promise, {\n resolve: { configurable: true, value: this.resolve },\n reject: { configurable: true, value: this.reject }\n });\n }\n};\n\n// node_modules/.pnpm/@mswjs+interceptors@0.25.16/node_modules/@mswjs/interceptors/lib/browser/chunk-72HT65NX.mjs\nfunction uuidv4() {\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, function(c) {\n const r = Math.random() * 16 | 0;\n const v = c == \"x\" ? r : r & 3 | 8;\n return v.toString(16);\n });\n}\nvar RequestController = class {\n constructor(request) {\n this.request = request;\n this.responsePromise = new DeferredPromise();\n }\n respondWith(response) {\n invariant(\n this.responsePromise.state === \"pending\",\n 'Failed to respond to \"%s %s\" request: the \"request\" event has already been responded to.',\n this.request.method,\n this.request.url\n );\n this.responsePromise.resolve(response);\n }\n};\nfunction toInteractiveRequest(request) {\n const requestController = new RequestController(request);\n Reflect.set(\n request,\n \"respondWith\",\n requestController.respondWith.bind(requestController)\n );\n return {\n interactiveRequest: request,\n requestController\n };\n}\nasync function emitAsync(emitter, eventName, ...data) {\n const listners = emitter.listeners(eventName);\n if (listners.length === 0) {\n return;\n }\n for (const listener of listners) {\n await listener.apply(emitter, data);\n }\n}\n\n// node_modules/.pnpm/@mswjs+interceptors@0.25.16/node_modules/@mswjs/interceptors/lib/browser/chunk-XQZ6GVNB.mjs\nfunction isPropertyAccessible(obj, key) {\n try {\n obj[key];\n return true;\n } catch (e) {\n return false;\n }\n}\nfunction canParseUrl(url) {\n try {\n new URL(url);\n return true;\n } catch (_error) {\n return false;\n }\n}\nvar _FetchInterceptor = class extends Interceptor {\n constructor() {\n super(_FetchInterceptor.symbol);\n }\n checkEnvironment() {\n return typeof globalThis !== \"undefined\" && typeof globalThis.fetch !== \"undefined\";\n }\n setup() {\n const pureFetch = globalThis.fetch;\n invariant(\n !pureFetch[IS_PATCHED_MODULE],\n 'Failed to patch the \"fetch\" module: already patched.'\n );\n globalThis.fetch = async (input, init) => {\n var _a;\n const requestId = uuidv4();\n const resolvedInput = typeof input === \"string\" && typeof location !== \"undefined\" && !canParseUrl(input) ? new URL(input, location.origin) : input;\n const request = new Request(resolvedInput, init);\n this.logger.info(\"[%s] %s\", request.method, request.url);\n const { interactiveRequest, requestController } = toInteractiveRequest(request);\n this.logger.info(\n 'emitting the \"request\" event for %d listener(s)...',\n this.emitter.listenerCount(\"request\")\n );\n this.emitter.once(\"request\", ({ requestId: pendingRequestId }) => {\n if (pendingRequestId !== requestId) {\n return;\n }\n if (requestController.responsePromise.state === \"pending\") {\n requestController.responsePromise.resolve(void 0);\n }\n });\n this.logger.info(\"awaiting for the mocked response...\");\n const signal = interactiveRequest.signal;\n const requestAborted = new DeferredPromise();\n if (signal) {\n signal.addEventListener(\n \"abort\",\n () => {\n requestAborted.reject(signal.reason);\n },\n { once: true }\n );\n }\n const resolverResult = await until(async () => {\n const listenersFinished = emitAsync(this.emitter, \"request\", {\n request: interactiveRequest,\n requestId\n });\n await Promise.race([\n requestAborted,\n // Put the listeners invocation Promise in the same race condition\n // with the request abort Promise because otherwise awaiting the listeners\n // would always yield some response (or undefined).\n listenersFinished,\n requestController.responsePromise\n ]);\n this.logger.info(\"all request listeners have been resolved!\");\n const mockedResponse2 = await requestController.responsePromise;\n this.logger.info(\"event.respondWith called with:\", mockedResponse2);\n return mockedResponse2;\n });\n if (requestAborted.state === \"rejected\") {\n return Promise.reject(requestAborted.rejectionReason);\n }\n if (resolverResult.error) {\n return Promise.reject(createNetworkError(resolverResult.error));\n }\n const mockedResponse = resolverResult.data;\n if (mockedResponse && !((_a = request.signal) == null ? void 0 : _a.aborted)) {\n this.logger.info(\"received mocked response:\", mockedResponse);\n if (isPropertyAccessible(mockedResponse, \"type\") && mockedResponse.type === \"error\") {\n this.logger.info(\n \"received a network error response, rejecting the request promise...\"\n );\n return Promise.reject(createNetworkError(mockedResponse));\n }\n const responseClone = mockedResponse.clone();\n this.emitter.emit(\"response\", {\n response: responseClone,\n isMockedResponse: true,\n request: interactiveRequest,\n requestId\n });\n Object.defineProperty(mockedResponse, \"url\", {\n writable: false,\n enumerable: true,\n configurable: false,\n value: request.url\n });\n return mockedResponse;\n }\n this.logger.info(\"no mocked response received!\");\n return pureFetch(request).then((response) => {\n const responseClone = response.clone();\n this.logger.info(\"original fetch performed\", responseClone);\n this.emitter.emit(\"response\", {\n response: responseClone,\n isMockedResponse: false,\n request: interactiveRequest,\n requestId\n });\n return response;\n });\n };\n Object.defineProperty(globalThis.fetch, IS_PATCHED_MODULE, {\n enumerable: true,\n configurable: true,\n value: true\n });\n this.subscriptions.push(() => {\n Object.defineProperty(globalThis.fetch, IS_PATCHED_MODULE, {\n value: void 0\n });\n globalThis.fetch = pureFetch;\n this.logger.info(\n 'restored native \"globalThis.fetch\"!',\n globalThis.fetch.name\n );\n });\n }\n};\nvar FetchInterceptor = _FetchInterceptor;\nFetchInterceptor.symbol = Symbol(\"fetch\");\nfunction createNetworkError(cause) {\n return Object.assign(new TypeError(\"Failed to fetch\"), {\n cause\n });\n}\n\n// node_modules/.pnpm/@mswjs+interceptors@0.25.16/node_modules/@mswjs/interceptors/lib/browser/chunk-DZVB7JEV.mjs\nfunction concatArrayBuffer(left, right) {\n const result = new Uint8Array(left.byteLength + right.byteLength);\n result.set(left, 0);\n result.set(right, left.byteLength);\n return result;\n}\nvar EventPolyfill = class {\n constructor(type, options) {\n this.AT_TARGET = 0;\n this.BUBBLING_PHASE = 0;\n this.CAPTURING_PHASE = 0;\n this.NONE = 0;\n this.type = \"\";\n this.srcElement = null;\n this.currentTarget = null;\n this.eventPhase = 0;\n this.isTrusted = true;\n this.composed = false;\n this.cancelable = true;\n this.defaultPrevented = false;\n this.bubbles = true;\n this.lengthComputable = true;\n this.loaded = 0;\n this.total = 0;\n this.cancelBubble = false;\n this.returnValue = true;\n this.type = type;\n this.target = (options == null ? void 0 : options.target) || null;\n this.currentTarget = (options == null ? void 0 : options.currentTarget) || null;\n this.timeStamp = Date.now();\n }\n composedPath() {\n return [];\n }\n initEvent(type, bubbles, cancelable) {\n this.type = type;\n this.bubbles = !!bubbles;\n this.cancelable = !!cancelable;\n }\n preventDefault() {\n this.defaultPrevented = true;\n }\n stopPropagation() {\n }\n stopImmediatePropagation() {\n }\n};\nvar ProgressEventPolyfill = class extends EventPolyfill {\n constructor(type, init) {\n super(type);\n this.lengthComputable = (init == null ? void 0 : init.lengthComputable) || false;\n this.composed = (init == null ? void 0 : init.composed) || false;\n this.loaded = (init == null ? void 0 : init.loaded) || 0;\n this.total = (init == null ? void 0 : init.total) || 0;\n }\n};\nvar SUPPORTS_PROGRESS_EVENT = typeof ProgressEvent !== \"undefined\";\nfunction createEvent(target, type, init) {\n const progressEvents = [\n \"error\",\n \"progress\",\n \"loadstart\",\n \"loadend\",\n \"load\",\n \"timeout\",\n \"abort\"\n ];\n const ProgressEventClass = SUPPORTS_PROGRESS_EVENT ? ProgressEvent : ProgressEventPolyfill;\n const event = progressEvents.includes(type) ? new ProgressEventClass(type, {\n lengthComputable: true,\n loaded: (init == null ? void 0 : init.loaded) || 0,\n total: (init == null ? void 0 : init.total) || 0\n }) : new EventPolyfill(type, {\n target,\n currentTarget: target\n });\n return event;\n}\nfunction findPropertySource(target, propertyName) {\n if (!(propertyName in target)) {\n return null;\n }\n const hasProperty = Object.prototype.hasOwnProperty.call(target, propertyName);\n if (hasProperty) {\n return target;\n }\n const prototype = Reflect.getPrototypeOf(target);\n return prototype ? findPropertySource(prototype, propertyName) : null;\n}\nfunction createProxy(target, options) {\n const proxy = new Proxy(target, optionsToProxyHandler(options));\n return proxy;\n}\nfunction optionsToProxyHandler(options) {\n const { constructorCall, methodCall, getProperty, setProperty } = options;\n const handler = {};\n if (typeof constructorCall !== \"undefined\") {\n handler.construct = function(target, args, newTarget) {\n const next = Reflect.construct.bind(null, target, args, newTarget);\n return constructorCall.call(newTarget, args, next);\n };\n }\n handler.set = function(target, propertyName, nextValue) {\n const next = () => {\n const propertySource = findPropertySource(target, propertyName) || target;\n const ownDescriptors = Reflect.getOwnPropertyDescriptor(\n propertySource,\n propertyName\n );\n if (typeof (ownDescriptors == null ? void 0 : ownDescriptors.set) !== \"undefined\") {\n ownDescriptors.set.apply(target, [nextValue]);\n return true;\n }\n return Reflect.defineProperty(propertySource, propertyName, {\n writable: true,\n enumerable: true,\n configurable: true,\n value: nextValue\n });\n };\n if (typeof setProperty !== \"undefined\") {\n return setProperty.call(target, [propertyName, nextValue], next);\n }\n return next();\n };\n handler.get = function(target, propertyName, receiver) {\n const next = () => target[propertyName];\n const value = typeof getProperty !== \"undefined\" ? getProperty.call(target, [propertyName, receiver], next) : next();\n if (typeof value === \"function\") {\n return (...args) => {\n const next2 = value.bind(target, ...args);\n if (typeof methodCall !== \"undefined\") {\n return methodCall.call(target, [propertyName, args], next2);\n }\n return next2();\n };\n }\n return value;\n };\n return handler;\n}\nfunction isDomParserSupportedType(type) {\n const supportedTypes = [\n \"application/xhtml+xml\",\n \"application/xml\",\n \"image/svg+xml\",\n \"text/html\",\n \"text/xml\"\n ];\n return supportedTypes.some((supportedType) => {\n return type.startsWith(supportedType);\n });\n}\nfunction parseJson(data) {\n try {\n const json = JSON.parse(data);\n return json;\n } catch (_) {\n return null;\n }\n}\nfunction createResponse(request, body) {\n const responseBodyOrNull = isResponseWithoutBody(request.status) ? null : body;\n return new Response(responseBodyOrNull, {\n status: request.status,\n statusText: request.statusText,\n headers: createHeadersFromXMLHttpReqestHeaders(\n request.getAllResponseHeaders()\n )\n });\n}\nfunction createHeadersFromXMLHttpReqestHeaders(headersString) {\n const headers = new Headers();\n const lines = headersString.split(/[\\r\\n]+/);\n for (const line of lines) {\n if (line.trim() === \"\") {\n continue;\n }\n const [name, ...parts] = line.split(\": \");\n const value = parts.join(\": \");\n headers.append(name, value);\n }\n return headers;\n}\nvar IS_MOCKED_RESPONSE = Symbol(\"isMockedResponse\");\nvar IS_NODE2 = isNodeProcess();\nvar XMLHttpRequestController = class {\n constructor(initialRequest, logger) {\n this.initialRequest = initialRequest;\n this.logger = logger;\n this.method = \"GET\";\n this.url = null;\n this.events = /* @__PURE__ */ new Map();\n this.requestId = uuidv4();\n this.requestHeaders = new Headers();\n this.responseBuffer = new Uint8Array();\n this.request = createProxy(initialRequest, {\n setProperty: ([propertyName, nextValue], invoke) => {\n switch (propertyName) {\n case \"ontimeout\": {\n const eventName = propertyName.slice(\n 2\n );\n this.request.addEventListener(eventName, nextValue);\n return invoke();\n }\n default: {\n return invoke();\n }\n }\n },\n methodCall: ([methodName, args], invoke) => {\n var _a;\n switch (methodName) {\n case \"open\": {\n const [method, url] = args;\n if (typeof url === \"undefined\") {\n this.method = \"GET\";\n this.url = toAbsoluteUrl(method);\n } else {\n this.method = method;\n this.url = toAbsoluteUrl(url);\n }\n this.logger = this.logger.extend(`${this.method} ${this.url.href}`);\n this.logger.info(\"open\", this.method, this.url.href);\n return invoke();\n }\n case \"addEventListener\": {\n const [eventName, listener] = args;\n this.registerEvent(eventName, listener);\n this.logger.info(\"addEventListener\", eventName, listener);\n return invoke();\n }\n case \"setRequestHeader\": {\n const [name, value] = args;\n this.requestHeaders.set(name, value);\n this.logger.info(\"setRequestHeader\", name, value);\n return invoke();\n }\n case \"send\": {\n const [body] = args;\n if (body != null) {\n this.requestBody = typeof body === \"string\" ? encodeBuffer(body) : body;\n }\n this.request.addEventListener(\"load\", () => {\n if (typeof this.onResponse !== \"undefined\") {\n const fetchResponse = createResponse(\n this.request,\n /**\n * The `response` property is the right way to read\n * the ambiguous response body, as the request's \"responseType\" may differ.\n * @see https://xhr.spec.whatwg.org/#the-response-attribute\n */\n this.request.response\n );\n this.onResponse.call(this, {\n response: fetchResponse,\n isMockedResponse: IS_MOCKED_RESPONSE in this.request,\n request: fetchRequest,\n requestId: this.requestId\n });\n }\n });\n const fetchRequest = this.toFetchApiRequest();\n const onceRequestSettled = ((_a = this.onRequest) == null ? void 0 : _a.call(this, {\n request: fetchRequest,\n requestId: this.requestId\n })) || Promise.resolve();\n onceRequestSettled.finally(() => {\n if (this.request.readyState < this.request.LOADING) {\n this.logger.info(\n \"request callback settled but request has not been handled (readystate %d), performing as-is...\",\n this.request.readyState\n );\n if (IS_NODE2) {\n this.request.setRequestHeader(\"X-Request-Id\", this.requestId);\n }\n return invoke();\n }\n });\n break;\n }\n default: {\n return invoke();\n }\n }\n }\n });\n }\n registerEvent(eventName, listener) {\n const prevEvents = this.events.get(eventName) || [];\n const nextEvents = prevEvents.concat(listener);\n this.events.set(eventName, nextEvents);\n this.logger.info('registered event \"%s\"', eventName, listener);\n }\n /**\n * Responds to the current request with the given\n * Fetch API `Response` instance.\n */\n respondWith(response) {\n this.logger.info(\n \"responding with a mocked response: %d %s\",\n response.status,\n response.statusText\n );\n define(this.request, IS_MOCKED_RESPONSE, true);\n define(this.request, \"status\", response.status);\n define(this.request, \"statusText\", response.statusText);\n define(this.request, \"responseURL\", this.url.href);\n this.request.getResponseHeader = new Proxy(this.request.getResponseHeader, {\n apply: (_, __, args) => {\n this.logger.info(\"getResponseHeader\", args[0]);\n if (this.request.readyState < this.request.HEADERS_RECEIVED) {\n this.logger.info(\"headers not received yet, returning null\");\n return null;\n }\n const headerValue = response.headers.get(args[0]);\n this.logger.info(\n 'resolved response header \"%s\" to',\n args[0],\n headerValue\n );\n return headerValue;\n }\n });\n this.request.getAllResponseHeaders = new Proxy(\n this.request.getAllResponseHeaders,\n {\n apply: () => {\n this.logger.info(\"getAllResponseHeaders\");\n if (this.request.readyState < this.request.HEADERS_RECEIVED) {\n this.logger.info(\"headers not received yet, returning empty string\");\n return \"\";\n }\n const headersList = Array.from(response.headers.entries());\n const allHeaders = headersList.map(([headerName, headerValue]) => {\n return `${headerName}: ${headerValue}`;\n }).join(\"\\r\\n\");\n this.logger.info(\"resolved all response headers to\", allHeaders);\n return allHeaders;\n }\n }\n );\n Object.defineProperties(this.request, {\n response: {\n enumerable: true,\n configurable: false,\n get: () => this.response\n },\n responseText: {\n enumerable: true,\n configurable: false,\n get: () => this.responseText\n },\n responseXML: {\n enumerable: true,\n configurable: false,\n get: () => this.responseXML\n }\n });\n const totalResponseBodyLength = response.headers.has(\"Content-Length\") ? Number(response.headers.get(\"Content-Length\")) : (\n /**\n * @todo Infer the response body length from the response body.\n */\n void 0\n );\n this.logger.info(\"calculated response body length\", totalResponseBodyLength);\n this.trigger(\"loadstart\", {\n loaded: 0,\n total: totalResponseBodyLength\n });\n this.setReadyState(this.request.HEADERS_RECEIVED);\n this.setReadyState(this.request.LOADING);\n const finalizeResponse = () => {\n this.logger.info(\"finalizing the mocked response...\");\n this.setReadyState(this.request.DONE);\n this.trigger(\"load\", {\n loaded: this.responseBuffer.byteLength,\n total: totalResponseBodyLength\n });\n this.trigger(\"loadend\", {\n loaded: this.responseBuffer.byteLength,\n total: totalResponseBodyLength\n });\n };\n if (response.body) {\n this.logger.info(\"mocked response has body, streaming...\");\n const reader = response.body.getReader();\n const readNextResponseBodyChunk = async () => {\n const { value, done } = await reader.read();\n if (done) {\n this.logger.info(\"response body stream done!\");\n finalizeResponse();\n return;\n }\n if (value) {\n this.logger.info(\"read response body chunk:\", value);\n this.responseBuffer = concatArrayBuffer(this.responseBuffer, value);\n this.trigger(\"progress\", {\n loaded: this.responseBuffer.byteLength,\n total: totalResponseBodyLength\n });\n }\n readNextResponseBodyChunk();\n };\n readNextResponseBodyChunk();\n } else {\n finalizeResponse();\n }\n }\n responseBufferToText() {\n return decodeBuffer(this.responseBuffer);\n }\n get response() {\n this.logger.info(\n \"getResponse (responseType: %s)\",\n this.request.responseType\n );\n if (this.request.readyState !== this.request.DONE) {\n return null;\n }\n switch (this.request.responseType) {\n case \"json\": {\n const responseJson = parseJson(this.responseBufferToText());\n this.logger.info(\"resolved response JSON\", responseJson);\n return responseJson;\n }\n case \"arraybuffer\": {\n const arrayBuffer = toArrayBuffer(this.responseBuffer);\n this.logger.info(\"resolved response ArrayBuffer\", arrayBuffer);\n return arrayBuffer;\n }\n case \"blob\": {\n const mimeType = this.request.getResponseHeader(\"Content-Type\") || \"text/plain\";\n const responseBlob = new Blob([this.responseBufferToText()], {\n type: mimeType\n });\n this.logger.info(\n \"resolved response Blob (mime type: %s)\",\n responseBlob,\n mimeType\n );\n return responseBlob;\n }\n default: {\n const responseText = this.responseBufferToText();\n this.logger.info(\n 'resolving \"%s\" response type as text',\n this.request.responseType,\n responseText\n );\n return responseText;\n }\n }\n }\n get responseText() {\n invariant(\n this.request.responseType === \"\" || this.request.responseType === \"text\",\n \"InvalidStateError: The object is in invalid state.\"\n );\n if (this.request.readyState !== this.request.LOADING && this.request.readyState !== this.request.DONE) {\n return \"\";\n }\n const responseText = this.responseBufferToText();\n this.logger.info('getResponseText: \"%s\"', responseText);\n return responseText;\n }\n get responseXML() {\n invariant(\n this.request.responseType === \"\" || this.request.responseType === \"document\",\n \"InvalidStateError: The object is in invalid state.\"\n );\n if (this.request.readyState !== this.request.DONE) {\n return null;\n }\n const contentType = this.request.getResponseHeader(\"Content-Type\") || \"\";\n if (typeof DOMParser === \"undefined\") {\n console.warn(\n \"Cannot retrieve XMLHttpRequest response body as XML: DOMParser is not defined. You are likely using an environment that is not browser or does not polyfill browser globals correctly.\"\n );\n return null;\n }\n if (isDomParserSupportedType(contentType)) {\n return new DOMParser().parseFromString(\n this.responseBufferToText(),\n contentType\n );\n }\n return null;\n }\n errorWith(error2) {\n this.logger.info(\"responding with an error\");\n this.setReadyState(this.request.DONE);\n this.trigger(\"error\");\n this.trigger(\"loadend\");\n }\n /**\n * Transitions this request's `readyState` to the given one.\n */\n setReadyState(nextReadyState) {\n this.logger.info(\n \"setReadyState: %d -> %d\",\n this.request.readyState,\n nextReadyState\n );\n if (this.request.readyState === nextReadyState) {\n this.logger.info(\"ready state identical, skipping transition...\");\n return;\n }\n define(this.request, \"readyState\", nextReadyState);\n this.logger.info(\"set readyState to: %d\", nextReadyState);\n if (nextReadyState !== this.request.UNSENT) {\n this.logger.info('triggerring \"readystatechange\" event...');\n this.trigger(\"readystatechange\");\n }\n }\n /**\n * Triggers given event on the `XMLHttpRequest` instance.\n */\n trigger(eventName, options) {\n const callback = this.request[`on${eventName}`];\n const event = createEvent(this.request, eventName, options);\n this.logger.info('trigger \"%s\"', eventName, options || \"\");\n if (typeof callback === \"function\") {\n this.logger.info('found a direct \"%s\" callback, calling...', eventName);\n callback.call(this.request, event);\n }\n for (const [registeredEventName, listeners] of this.events) {\n if (registeredEventName === eventName) {\n this.logger.info(\n 'found %d listener(s) for \"%s\" event, calling...',\n listeners.length,\n eventName\n );\n listeners.forEach((listener) => listener.call(this.request, event));\n }\n }\n }\n /**\n * Converts this `XMLHttpRequest` instance into a Fetch API `Request` instance.\n */\n toFetchApiRequest() {\n this.logger.info(\"converting request to a Fetch API Request...\");\n const fetchRequest = new Request(this.url.href, {\n method: this.method,\n headers: this.requestHeaders,\n /**\n * @see https://xhr.spec.whatwg.org/#cross-origin-credentials\n */\n credentials: this.request.withCredentials ? \"include\" : \"same-origin\",\n body: [\"GET\", \"HEAD\"].includes(this.method) ? null : this.requestBody\n });\n const proxyHeaders = createProxy(fetchRequest.headers, {\n methodCall: ([methodName, args], invoke) => {\n switch (methodName) {\n case \"append\":\n case \"set\": {\n const [headerName, headerValue] = args;\n this.request.setRequestHeader(headerName, headerValue);\n break;\n }\n case \"delete\": {\n const [headerName] = args;\n console.warn(\n `XMLHttpRequest: Cannot remove a \"${headerName}\" header from the Fetch API representation of the \"${fetchRequest.method} ${fetchRequest.url}\" request. XMLHttpRequest headers cannot be removed.`\n );\n break;\n }\n }\n return invoke();\n }\n });\n define(fetchRequest, \"headers\", proxyHeaders);\n this.logger.info(\"converted request to a Fetch API Request!\", fetchRequest);\n return fetchRequest;\n }\n};\nfunction toAbsoluteUrl(url) {\n if (typeof location === \"undefined\") {\n return new URL(url);\n }\n return new URL(url.toString(), location.href);\n}\nfunction define(target, property, value) {\n Reflect.defineProperty(target, property, {\n // Ensure writable properties to allow redefining readonly properties.\n writable: true,\n enumerable: true,\n value\n });\n}\nfunction createXMLHttpRequestProxy({\n emitter,\n logger\n}) {\n const XMLHttpRequestProxy = new Proxy(globalThis.XMLHttpRequest, {\n construct(target, args, newTarget) {\n logger.info(\"constructed new XMLHttpRequest\");\n const originalRequest = Reflect.construct(target, args, newTarget);\n const prototypeDescriptors = Object.getOwnPropertyDescriptors(\n target.prototype\n );\n for (const propertyName in prototypeDescriptors) {\n Reflect.defineProperty(\n originalRequest,\n propertyName,\n prototypeDescriptors[propertyName]\n );\n }\n const xhrRequestController = new XMLHttpRequestController(\n originalRequest,\n logger\n );\n xhrRequestController.onRequest = async function({ request, requestId }) {\n const { interactiveRequest, requestController } = toInteractiveRequest(request);\n this.logger.info(\"awaiting mocked response...\");\n emitter.once(\"request\", ({ requestId: pendingRequestId }) => {\n if (pendingRequestId !== requestId) {\n return;\n }\n if (requestController.responsePromise.state === \"pending\") {\n requestController.respondWith(void 0);\n }\n });\n const resolverResult = await until(async () => {\n this.logger.info(\n 'emitting the \"request\" event for %s listener(s)...',\n emitter.listenerCount(\"request\")\n );\n await emitAsync(emitter, \"request\", {\n request: interactiveRequest,\n requestId\n });\n this.logger.info('all \"request\" listeners settled!');\n const mockedResponse2 = await requestController.responsePromise;\n this.logger.info(\"event.respondWith called with:\", mockedResponse2);\n return mockedResponse2;\n });\n if (resolverResult.error) {\n this.logger.info(\n \"request listener threw an exception, aborting request...\",\n resolverResult.error\n );\n xhrRequestController.errorWith(resolverResult.error);\n return;\n }\n const mockedResponse = resolverResult.data;\n if (typeof mockedResponse !== \"undefined\") {\n this.logger.info(\n \"received mocked response: %d %s\",\n mockedResponse.status,\n mockedResponse.statusText\n );\n if (mockedResponse.type === \"error\") {\n this.logger.info(\n \"received a network error response, rejecting the request promise...\"\n );\n xhrRequestController.errorWith(new TypeError(\"Network error\"));\n return;\n }\n return xhrRequestController.respondWith(mockedResponse);\n }\n this.logger.info(\n \"no mocked response received, performing request as-is...\"\n );\n };\n xhrRequestController.onResponse = async function({\n response,\n isMockedResponse,\n request,\n requestId\n }) {\n this.logger.info(\n 'emitting the \"response\" event for %s listener(s)...',\n emitter.listenerCount(\"response\")\n );\n emitter.emit(\"response\", {\n response,\n isMockedResponse,\n request,\n requestId\n });\n };\n return xhrRequestController.request;\n }\n });\n return XMLHttpRequestProxy;\n}\nvar _XMLHttpRequestInterceptor = class extends Interceptor {\n constructor() {\n super(_XMLHttpRequestInterceptor.interceptorSymbol);\n }\n checkEnvironment() {\n return typeof globalThis.XMLHttpRequest !== \"undefined\";\n }\n setup() {\n const logger = this.logger.extend(\"setup\");\n logger.info('patching \"XMLHttpRequest\" module...');\n const PureXMLHttpRequest = globalThis.XMLHttpRequest;\n invariant(\n !PureXMLHttpRequest[IS_PATCHED_MODULE],\n 'Failed to patch the \"XMLHttpRequest\" module: already patched.'\n );\n globalThis.XMLHttpRequest = createXMLHttpRequestProxy({\n emitter: this.emitter,\n logger: this.logger\n });\n logger.info(\n 'native \"XMLHttpRequest\" module patched!',\n globalThis.XMLHttpRequest.name\n );\n Object.defineProperty(globalThis.XMLHttpRequest, IS_PATCHED_MODULE, {\n enumerable: true,\n configurable: true,\n value: true\n });\n this.subscriptions.push(() => {\n Object.defineProperty(globalThis.XMLHttpRequest, IS_PATCHED_MODULE, {\n value: void 0\n });\n globalThis.XMLHttpRequest = PureXMLHttpRequest;\n logger.info(\n 'native \"XMLHttpRequest\" module restored!',\n globalThis.XMLHttpRequest.name\n );\n });\n }\n};\nvar XMLHttpRequestInterceptor = _XMLHttpRequestInterceptor;\nXMLHttpRequestInterceptor.interceptorSymbol = Symbol(\"xhr\");\n\n// src/browser/setupWorker/start/createFallbackRequestListener.ts\nimport { handleRequest as handleRequest2 } from '../core/utils/handleRequest.mjs';\nfunction createFallbackRequestListener(context, options) {\n const interceptor = new BatchInterceptor({\n name: \"fallback\",\n interceptors: [new FetchInterceptor(), new XMLHttpRequestInterceptor()]\n });\n interceptor.on(\"request\", async ({ request, requestId }) => {\n const requestCloneForLogs = request.clone();\n const response = await handleRequest2(\n request,\n requestId,\n context.getRequestHandlers(),\n options,\n context.emitter,\n {\n onMockedResponse(_, { handler, parsedResult }) {\n if (!options.quiet) {\n context.emitter.once(\"response:mocked\", ({ response: response2 }) => {\n handler.log({\n request: requestCloneForLogs,\n response: response2,\n parsedResult\n });\n });\n }\n }\n }\n );\n if (response) {\n request.respondWith(response);\n }\n });\n interceptor.on(\n \"response\",\n ({ response, isMockedResponse, request, requestId }) => {\n context.emitter.emit(\n isMockedResponse ? \"response:mocked\" : \"response:bypass\",\n {\n response,\n request,\n requestId\n }\n );\n }\n );\n interceptor.apply();\n return interceptor;\n}\n\n// src/browser/setupWorker/start/createFallbackStart.ts\nfunction createFallbackStart(context) {\n return async function start(options) {\n context.fallbackInterceptor = createFallbackRequestListener(\n context,\n options\n );\n printStartMessage({\n message: \"Mocking enabled (fallback mode).\",\n quiet: options.quiet\n });\n return void 0;\n };\n}\n\n// src/browser/setupWorker/stop/createFallbackStop.ts\nfunction createFallbackStop(context) {\n return function stop() {\n context.fallbackInterceptor?.dispose();\n printStopMessage({ quiet: context.startOptions?.quiet });\n };\n}\n\n// src/browser/setupWorker/setupWorker.ts\nimport { devUtils as devUtils10 } from '../core/utils/internal/devUtils.mjs';\nimport { SetupApi } from '../core/SetupApi.mjs';\nimport { mergeRight as mergeRight2 } from '../core/utils/internal/mergeRight.mjs';\n\n// src/browser/utils/supportsReadableStreamTransfer.ts\nfunction supportsReadableStreamTransfer() {\n try {\n const stream = new ReadableStream({\n start: (controller) => controller.close()\n });\n const message = new MessageChannel();\n message.port1.postMessage(stream, [stream]);\n return true;\n } catch (error2) {\n return false;\n }\n}\n\n// src/browser/setupWorker/setupWorker.ts\nvar SetupWorkerApi = class extends SetupApi {\n context;\n startHandler = null;\n stopHandler = null;\n listeners;\n constructor(...handlers) {\n super(...handlers);\n invariant(\n !isNodeProcess(),\n devUtils10.formatMessage(\n \"Failed to execute `setupWorker` in a non-browser environment. Consider using `setupServer` for Node.js environment instead.\"\n )\n );\n this.listeners = [];\n this.context = this.createWorkerContext();\n }\n createWorkerContext() {\n const context = {\n // Mocking is not considered enabled until the worker\n // signals back the successful activation event.\n isMockingEnabled: false,\n startOptions: null,\n worker: null,\n getRequestHandlers: () => {\n return this.handlersController.currentHandlers();\n },\n registration: null,\n requests: /* @__PURE__ */ new Map(),\n emitter: this.emitter,\n workerChannel: {\n on: (eventType, callback) => {\n this.context.events.addListener(navigator.serviceWorker, \"message\", (event) => {\n if (event.source !== this.context.worker) {\n return;\n }\n const message = event.data;\n if (!message) {\n return;\n }\n if (message.type === eventType) {\n callback(event, message);\n }\n });\n },\n send: (type) => {\n this.context.worker?.postMessage(type);\n }\n },\n events: {\n addListener: (target, eventType, callback) => {\n target.addEventListener(eventType, callback);\n this.listeners.push({\n eventType,\n target,\n callback\n });\n return () => {\n target.removeEventListener(eventType, callback);\n };\n },\n removeAllListeners: () => {\n for (const { target, eventType, callback } of this.listeners) {\n target.removeEventListener(eventType, callback);\n }\n this.listeners = [];\n },\n once: (eventType) => {\n const bindings = [];\n return new Promise((resolve, reject) => {\n const handleIncomingMessage = (event) => {\n try {\n const message = event.data;\n if (message.type === eventType) {\n resolve(message);\n }\n } catch (error2) {\n reject(error2);\n }\n };\n bindings.push(\n this.context.events.addListener(\n navigator.serviceWorker,\n \"message\",\n handleIncomingMessage\n ),\n this.context.events.addListener(\n navigator.serviceWorker,\n \"messageerror\",\n reject\n )\n );\n }).finally(() => {\n bindings.forEach((unbind) => unbind());\n });\n }\n },\n supports: {\n serviceWorkerApi: !(\"serviceWorker\" in navigator) || location.protocol === \"file:\",\n readableStreamTransfer: supportsReadableStreamTransfer()\n }\n };\n this.startHandler = context.supports.serviceWorkerApi ? createFallbackStart(context) : createStartHandler(context);\n this.stopHandler = context.supports.serviceWorkerApi ? createFallbackStop(context) : createStop(context);\n return context;\n }\n async start(options = {}) {\n if (options.waitUntilReady === true) {\n devUtils10.warn(\n 'The \"waitUntilReady\" option has been deprecated. Please remove it from this \"worker.start()\" call. Follow the recommended Browser integration (https://mswjs.io/docs/integrations/browser) to eliminate any race conditions between the Service Worker registration and any requests made by your application on initial render.'\n );\n }\n this.context.startOptions = mergeRight2(\n DEFAULT_START_OPTIONS,\n options\n );\n return await this.startHandler(this.context.startOptions, options);\n }\n stop() {\n super.dispose();\n this.context.events.removeAllListeners();\n this.context.emitter.removeAllListeners();\n this.stopHandler();\n }\n};\nfunction setupWorker(...handlers) {\n return new SetupWorkerApi(...handlers);\n}\nexport {\n SetupWorkerApi,\n setupWorker\n};\n//# sourceMappingURL=index.mjs.map","import { invariant } from \"outvariant\";\nimport { devUtils } from './devUtils.mjs';\nfunction checkGlobals() {\n invariant(\n typeof URL !== \"undefined\",\n devUtils.formatMessage(\n `Global \"URL\" class is not defined. This likely means that you're running MSW in an environment that doesn't support all Node.js standard API (e.g. React Native). If that's the case, please use an appropriate polyfill for the \"URL\" class, like \"react-native-url-polyfill\".`\n )\n );\n}\nexport {\n checkGlobals\n};\n//# sourceMappingURL=checkGlobals.mjs.map","function isStringEqual(actual, expected) {\n return actual.toLowerCase() === expected.toLowerCase();\n}\nexport {\n isStringEqual\n};\n//# sourceMappingURL=isStringEqual.mjs.map","var StatusCodeColor = /* @__PURE__ */ ((StatusCodeColor2) => {\n StatusCodeColor2[\"Success\"] = \"#69AB32\";\n StatusCodeColor2[\"Warning\"] = \"#F0BB4B\";\n StatusCodeColor2[\"Danger\"] = \"#E95F5D\";\n return StatusCodeColor2;\n})(StatusCodeColor || {});\nfunction getStatusCodeColor(status) {\n if (status < 300) {\n return \"#69AB32\" /* Success */;\n }\n if (status < 400) {\n return \"#F0BB4B\" /* Warning */;\n }\n return \"#E95F5D\" /* Danger */;\n}\nexport {\n StatusCodeColor,\n getStatusCodeColor\n};\n//# sourceMappingURL=getStatusCodeColor.mjs.map","function getTimestamp() {\n const now = /* @__PURE__ */ new Date();\n return [now.getHours(), now.getMinutes(), now.getSeconds()].map(String).map((chunk) => chunk.slice(0, 2)).map((chunk) => chunk.padStart(2, \"0\")).join(\":\");\n}\nexport {\n getTimestamp\n};\n//# sourceMappingURL=getTimestamp.mjs.map","async function serializeRequest(request) {\n const requestClone = request.clone();\n const requestText = await requestClone.text();\n return {\n url: new URL(request.url),\n method: request.method,\n headers: Object.fromEntries(request.headers.entries()),\n body: requestText\n };\n}\nexport {\n serializeRequest\n};\n//# sourceMappingURL=serializeRequest.mjs.map","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\n\n// node_modules/statuses/codes.json\nvar require_codes = __commonJS({\n \"node_modules/statuses/codes.json\"(exports, module) {\n module.exports = {\n \"100\": \"Continue\",\n \"101\": \"Switching Protocols\",\n \"102\": \"Processing\",\n \"103\": \"Early Hints\",\n \"200\": \"OK\",\n \"201\": \"Created\",\n \"202\": \"Accepted\",\n \"203\": \"Non-Authoritative Information\",\n \"204\": \"No Content\",\n \"205\": \"Reset Content\",\n \"206\": \"Partial Content\",\n \"207\": \"Multi-Status\",\n \"208\": \"Already Reported\",\n \"226\": \"IM Used\",\n \"300\": \"Multiple Choices\",\n \"301\": \"Moved Permanently\",\n \"302\": \"Found\",\n \"303\": \"See Other\",\n \"304\": \"Not Modified\",\n \"305\": \"Use Proxy\",\n \"307\": \"Temporary Redirect\",\n \"308\": \"Permanent Redirect\",\n \"400\": \"Bad Request\",\n \"401\": \"Unauthorized\",\n \"402\": \"Payment Required\",\n \"403\": \"Forbidden\",\n \"404\": \"Not Found\",\n \"405\": \"Method Not Allowed\",\n \"406\": \"Not Acceptable\",\n \"407\": \"Proxy Authentication Required\",\n \"408\": \"Request Timeout\",\n \"409\": \"Conflict\",\n \"410\": \"Gone\",\n \"411\": \"Length Required\",\n \"412\": \"Precondition Failed\",\n \"413\": \"Payload Too Large\",\n \"414\": \"URI Too Long\",\n \"415\": \"Unsupported Media Type\",\n \"416\": \"Range Not Satisfiable\",\n \"417\": \"Expectation Failed\",\n \"418\": \"I'm a Teapot\",\n \"421\": \"Misdirected Request\",\n \"422\": \"Unprocessable Entity\",\n \"423\": \"Locked\",\n \"424\": \"Failed Dependency\",\n \"425\": \"Too Early\",\n \"426\": \"Upgrade Required\",\n \"428\": \"Precondition Required\",\n \"429\": \"Too Many Requests\",\n \"431\": \"Request Header Fields Too Large\",\n \"451\": \"Unavailable For Legal Reasons\",\n \"500\": \"Internal Server Error\",\n \"501\": \"Not Implemented\",\n \"502\": \"Bad Gateway\",\n \"503\": \"Service Unavailable\",\n \"504\": \"Gateway Timeout\",\n \"505\": \"HTTP Version Not Supported\",\n \"506\": \"Variant Also Negotiates\",\n \"507\": \"Insufficient Storage\",\n \"508\": \"Loop Detected\",\n \"509\": \"Bandwidth Limit Exceeded\",\n \"510\": \"Not Extended\",\n \"511\": \"Network Authentication Required\"\n };\n }\n});\n\n// node_modules/statuses/index.js\nvar require_statuses = __commonJS({\n \"node_modules/statuses/index.js\"(exports, module) {\n \"use strict\";\n var codes = require_codes();\n module.exports = status2;\n status2.message = codes;\n status2.code = createMessageToStatusCodeMap(codes);\n status2.codes = createStatusCodeList(codes);\n status2.redirect = {\n 300: true,\n 301: true,\n 302: true,\n 303: true,\n 305: true,\n 307: true,\n 308: true\n };\n status2.empty = {\n 204: true,\n 205: true,\n 304: true\n };\n status2.retry = {\n 502: true,\n 503: true,\n 504: true\n };\n function createMessageToStatusCodeMap(codes2) {\n var map = {};\n Object.keys(codes2).forEach(function forEachCode(code) {\n var message = codes2[code];\n var status3 = Number(code);\n map[message.toLowerCase()] = status3;\n });\n return map;\n }\n function createStatusCodeList(codes2) {\n return Object.keys(codes2).map(function mapCode(code) {\n return Number(code);\n });\n }\n function getStatusCode(message) {\n var msg = message.toLowerCase();\n if (!Object.prototype.hasOwnProperty.call(status2.code, msg)) {\n throw new Error('invalid status message: \"' + message + '\"');\n }\n return status2.code[msg];\n }\n function getStatusMessage(code) {\n if (!Object.prototype.hasOwnProperty.call(status2.message, code)) {\n throw new Error(\"invalid status code: \" + code);\n }\n return status2.message[code];\n }\n function status2(code) {\n if (typeof code === \"number\") {\n return getStatusMessage(code);\n }\n if (typeof code !== \"string\") {\n throw new TypeError(\"code must be a number or string\");\n }\n var n = parseInt(code, 10);\n if (!isNaN(n)) {\n return getStatusMessage(n);\n }\n return getStatusCode(code);\n }\n }\n});\n\n// source.js\nvar import_statuses = __toESM(require_statuses(), 1);\nvar source_default = import_statuses.default;\nexport {\n source_default as default\n};\n/*! Bundled license information:\n\nstatuses/index.js:\n (*!\n * statuses\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2016 Douglas Christopher Wilson\n * MIT Licensed\n *)\n*/\n","import statuses from \"@bundled-es-modules/statuses\";\nconst { message } = statuses;\nasync function serializeResponse(response) {\n const responseClone = response.clone();\n const responseText = await responseClone.text();\n const responseStatus = responseClone.status || 200;\n const responseStatusText = responseClone.statusText || message[responseStatus] || \"OK\";\n return {\n status: responseStatus,\n statusText: responseStatusText,\n headers: Object.fromEntries(responseClone.headers.entries()),\n body: responseText\n };\n}\nexport {\n serializeResponse\n};\n//# sourceMappingURL=serializeResponse.mjs.map","/**\n * Tokenize input string.\n */\nfunction lexer(str) {\n var tokens = [];\n var i = 0;\n while (i < str.length) {\n var char = str[i];\n if (char === \"*\" || char === \"+\" || char === \"?\") {\n tokens.push({ type: \"MODIFIER\", index: i, value: str[i++] });\n continue;\n }\n if (char === \"\\\\\") {\n tokens.push({ type: \"ESCAPED_CHAR\", index: i++, value: str[i++] });\n continue;\n }\n if (char === \"{\") {\n tokens.push({ type: \"OPEN\", index: i, value: str[i++] });\n continue;\n }\n if (char === \"}\") {\n tokens.push({ type: \"CLOSE\", index: i, value: str[i++] });\n continue;\n }\n if (char === \":\") {\n var name = \"\";\n var j = i + 1;\n while (j < str.length) {\n var code = str.charCodeAt(j);\n if (\n // `0-9`\n (code >= 48 && code <= 57) ||\n // `A-Z`\n (code >= 65 && code <= 90) ||\n // `a-z`\n (code >= 97 && code <= 122) ||\n // `_`\n code === 95) {\n name += str[j++];\n continue;\n }\n break;\n }\n if (!name)\n throw new TypeError(\"Missing parameter name at \".concat(i));\n tokens.push({ type: \"NAME\", index: i, value: name });\n i = j;\n continue;\n }\n if (char === \"(\") {\n var count = 1;\n var pattern = \"\";\n var j = i + 1;\n if (str[j] === \"?\") {\n throw new TypeError(\"Pattern cannot start with \\\"?\\\" at \".concat(j));\n }\n while (j < str.length) {\n if (str[j] === \"\\\\\") {\n pattern += str[j++] + str[j++];\n continue;\n }\n if (str[j] === \")\") {\n count--;\n if (count === 0) {\n j++;\n break;\n }\n }\n else if (str[j] === \"(\") {\n count++;\n if (str[j + 1] !== \"?\") {\n throw new TypeError(\"Capturing groups are not allowed at \".concat(j));\n }\n }\n pattern += str[j++];\n }\n if (count)\n throw new TypeError(\"Unbalanced pattern at \".concat(i));\n if (!pattern)\n throw new TypeError(\"Missing pattern at \".concat(i));\n tokens.push({ type: \"PATTERN\", index: i, value: pattern });\n i = j;\n continue;\n }\n tokens.push({ type: \"CHAR\", index: i, value: str[i++] });\n }\n tokens.push({ type: \"END\", index: i, value: \"\" });\n return tokens;\n}\n/**\n * Parse a string for the raw tokens.\n */\nexport function parse(str, options) {\n if (options === void 0) { options = {}; }\n var tokens = lexer(str);\n var _a = options.prefixes, prefixes = _a === void 0 ? \"./\" : _a;\n var defaultPattern = \"[^\".concat(escapeString(options.delimiter || \"/#?\"), \"]+?\");\n var result = [];\n var key = 0;\n var i = 0;\n var path = \"\";\n var tryConsume = function (type) {\n if (i < tokens.length && tokens[i].type === type)\n return tokens[i++].value;\n };\n var mustConsume = function (type) {\n var value = tryConsume(type);\n if (value !== undefined)\n return value;\n var _a = tokens[i], nextType = _a.type, index = _a.index;\n throw new TypeError(\"Unexpected \".concat(nextType, \" at \").concat(index, \", expected \").concat(type));\n };\n var consumeText = function () {\n var result = \"\";\n var value;\n while ((value = tryConsume(\"CHAR\") || tryConsume(\"ESCAPED_CHAR\"))) {\n result += value;\n }\n return result;\n };\n while (i < tokens.length) {\n var char = tryConsume(\"CHAR\");\n var name = tryConsume(\"NAME\");\n var pattern = tryConsume(\"PATTERN\");\n if (name || pattern) {\n var prefix = char || \"\";\n if (prefixes.indexOf(prefix) === -1) {\n path += prefix;\n prefix = \"\";\n }\n if (path) {\n result.push(path);\n path = \"\";\n }\n result.push({\n name: name || key++,\n prefix: prefix,\n suffix: \"\",\n pattern: pattern || defaultPattern,\n modifier: tryConsume(\"MODIFIER\") || \"\",\n });\n continue;\n }\n var value = char || tryConsume(\"ESCAPED_CHAR\");\n if (value) {\n path += value;\n continue;\n }\n if (path) {\n result.push(path);\n path = \"\";\n }\n var open = tryConsume(\"OPEN\");\n if (open) {\n var prefix = consumeText();\n var name_1 = tryConsume(\"NAME\") || \"\";\n var pattern_1 = tryConsume(\"PATTERN\") || \"\";\n var suffix = consumeText();\n mustConsume(\"CLOSE\");\n result.push({\n name: name_1 || (pattern_1 ? key++ : \"\"),\n pattern: name_1 && !pattern_1 ? defaultPattern : pattern_1,\n prefix: prefix,\n suffix: suffix,\n modifier: tryConsume(\"MODIFIER\") || \"\",\n });\n continue;\n }\n mustConsume(\"END\");\n }\n return result;\n}\n/**\n * Compile a string to a template function for the path.\n */\nexport function compile(str, options) {\n return tokensToFunction(parse(str, options), options);\n}\n/**\n * Expose a method for transforming tokens into the path function.\n */\nexport function tokensToFunction(tokens, options) {\n if (options === void 0) { options = {}; }\n var reFlags = flags(options);\n var _a = options.encode, encode = _a === void 0 ? function (x) { return x; } : _a, _b = options.validate, validate = _b === void 0 ? true : _b;\n // Compile all the tokens into regexps.\n var matches = tokens.map(function (token) {\n if (typeof token === \"object\") {\n return new RegExp(\"^(?:\".concat(token.pattern, \")$\"), reFlags);\n }\n });\n return function (data) {\n var path = \"\";\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (typeof token === \"string\") {\n path += token;\n continue;\n }\n var value = data ? data[token.name] : undefined;\n var optional = token.modifier === \"?\" || token.modifier === \"*\";\n var repeat = token.modifier === \"*\" || token.modifier === \"+\";\n if (Array.isArray(value)) {\n if (!repeat) {\n throw new TypeError(\"Expected \\\"\".concat(token.name, \"\\\" to not repeat, but got an array\"));\n }\n if (value.length === 0) {\n if (optional)\n continue;\n throw new TypeError(\"Expected \\\"\".concat(token.name, \"\\\" to not be empty\"));\n }\n for (var j = 0; j < value.length; j++) {\n var segment = encode(value[j], token);\n if (validate && !matches[i].test(segment)) {\n throw new TypeError(\"Expected all \\\"\".concat(token.name, \"\\\" to match \\\"\").concat(token.pattern, \"\\\", but got \\\"\").concat(segment, \"\\\"\"));\n }\n path += token.prefix + segment + token.suffix;\n }\n continue;\n }\n if (typeof value === \"string\" || typeof value === \"number\") {\n var segment = encode(String(value), token);\n if (validate && !matches[i].test(segment)) {\n throw new TypeError(\"Expected \\\"\".concat(token.name, \"\\\" to match \\\"\").concat(token.pattern, \"\\\", but got \\\"\").concat(segment, \"\\\"\"));\n }\n path += token.prefix + segment + token.suffix;\n continue;\n }\n if (optional)\n continue;\n var typeOfMessage = repeat ? \"an array\" : \"a string\";\n throw new TypeError(\"Expected \\\"\".concat(token.name, \"\\\" to be \").concat(typeOfMessage));\n }\n return path;\n };\n}\n/**\n * Create path match function from `path-to-regexp` spec.\n */\nexport function match(str, options) {\n var keys = [];\n var re = pathToRegexp(str, keys, options);\n return regexpToFunction(re, keys, options);\n}\n/**\n * Create a path match function from `path-to-regexp` output.\n */\nexport function regexpToFunction(re, keys, options) {\n if (options === void 0) { options = {}; }\n var _a = options.decode, decode = _a === void 0 ? function (x) { return x; } : _a;\n return function (pathname) {\n var m = re.exec(pathname);\n if (!m)\n return false;\n var path = m[0], index = m.index;\n var params = Object.create(null);\n var _loop_1 = function (i) {\n if (m[i] === undefined)\n return \"continue\";\n var key = keys[i - 1];\n if (key.modifier === \"*\" || key.modifier === \"+\") {\n params[key.name] = m[i].split(key.prefix + key.suffix).map(function (value) {\n return decode(value, key);\n });\n }\n else {\n params[key.name] = decode(m[i], key);\n }\n };\n for (var i = 1; i < m.length; i++) {\n _loop_1(i);\n }\n return { path: path, index: index, params: params };\n };\n}\n/**\n * Escape a regular expression string.\n */\nfunction escapeString(str) {\n return str.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n}\n/**\n * Get the flags for a regexp from the options.\n */\nfunction flags(options) {\n return options && options.sensitive ? \"\" : \"i\";\n}\n/**\n * Pull out keys from a regexp.\n */\nfunction regexpToRegexp(path, keys) {\n if (!keys)\n return path;\n var groupsRegex = /\\((?:\\?<(.*?)>)?(?!\\?)/g;\n var index = 0;\n var execResult = groupsRegex.exec(path.source);\n while (execResult) {\n keys.push({\n // Use parenthesized substring match if available, index otherwise\n name: execResult[1] || index++,\n prefix: \"\",\n suffix: \"\",\n modifier: \"\",\n pattern: \"\",\n });\n execResult = groupsRegex.exec(path.source);\n }\n return path;\n}\n/**\n * Transform an array into a regexp.\n */\nfunction arrayToRegexp(paths, keys, options) {\n var parts = paths.map(function (path) { return pathToRegexp(path, keys, options).source; });\n return new RegExp(\"(?:\".concat(parts.join(\"|\"), \")\"), flags(options));\n}\n/**\n * Create a path regexp from string input.\n */\nfunction stringToRegexp(path, keys, options) {\n return tokensToRegexp(parse(path, options), keys, options);\n}\n/**\n * Expose a function for taking tokens and returning a RegExp.\n */\nexport function tokensToRegexp(tokens, keys, options) {\n if (options === void 0) { options = {}; }\n var _a = options.strict, strict = _a === void 0 ? false : _a, _b = options.start, start = _b === void 0 ? true : _b, _c = options.end, end = _c === void 0 ? true : _c, _d = options.encode, encode = _d === void 0 ? function (x) { return x; } : _d, _e = options.delimiter, delimiter = _e === void 0 ? \"/#?\" : _e, _f = options.endsWith, endsWith = _f === void 0 ? \"\" : _f;\n var endsWithRe = \"[\".concat(escapeString(endsWith), \"]|$\");\n var delimiterRe = \"[\".concat(escapeString(delimiter), \"]\");\n var route = start ? \"^\" : \"\";\n // Iterate over the tokens and create our regexp string.\n for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {\n var token = tokens_1[_i];\n if (typeof token === \"string\") {\n route += escapeString(encode(token));\n }\n else {\n var prefix = escapeString(encode(token.prefix));\n var suffix = escapeString(encode(token.suffix));\n if (token.pattern) {\n if (keys)\n keys.push(token);\n if (prefix || suffix) {\n if (token.modifier === \"+\" || token.modifier === \"*\") {\n var mod = token.modifier === \"*\" ? \"?\" : \"\";\n route += \"(?:\".concat(prefix, \"((?:\").concat(token.pattern, \")(?:\").concat(suffix).concat(prefix, \"(?:\").concat(token.pattern, \"))*)\").concat(suffix, \")\").concat(mod);\n }\n else {\n route += \"(?:\".concat(prefix, \"(\").concat(token.pattern, \")\").concat(suffix, \")\").concat(token.modifier);\n }\n }\n else {\n if (token.modifier === \"+\" || token.modifier === \"*\") {\n route += \"((?:\".concat(token.pattern, \")\").concat(token.modifier, \")\");\n }\n else {\n route += \"(\".concat(token.pattern, \")\").concat(token.modifier);\n }\n }\n }\n else {\n route += \"(?:\".concat(prefix).concat(suffix, \")\").concat(token.modifier);\n }\n }\n }\n if (end) {\n if (!strict)\n route += \"\".concat(delimiterRe, \"?\");\n route += !options.endsWith ? \"$\" : \"(?=\".concat(endsWithRe, \")\");\n }\n else {\n var endToken = tokens[tokens.length - 1];\n var isEndDelimited = typeof endToken === \"string\"\n ? delimiterRe.indexOf(endToken[endToken.length - 1]) > -1\n : endToken === undefined;\n if (!strict) {\n route += \"(?:\".concat(delimiterRe, \"(?=\").concat(endsWithRe, \"))?\");\n }\n if (!isEndDelimited) {\n route += \"(?=\".concat(delimiterRe, \"|\").concat(endsWithRe, \")\");\n }\n }\n return new RegExp(route, flags(options));\n}\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n */\nexport function pathToRegexp(path, keys, options) {\n if (path instanceof RegExp)\n return regexpToRegexp(path, keys);\n if (Array.isArray(path))\n return arrayToRegexp(path, keys, options);\n return stringToRegexp(path, keys, options);\n}\n//# sourceMappingURL=index.js.map","// src/utils/bufferUtils.ts\nvar encoder = new TextEncoder();\nfunction encodeBuffer(text) {\n return encoder.encode(text);\n}\nfunction decodeBuffer(buffer, encoding) {\n const decoder = new TextDecoder(encoding);\n return decoder.decode(buffer);\n}\nfunction toArrayBuffer(array) {\n return array.buffer.slice(\n array.byteOffset,\n array.byteOffset + array.byteLength\n );\n}\n\n// src/utils/responseUtils.ts\nvar RESPONSE_STATUS_CODES_WITHOUT_BODY = /* @__PURE__ */ new Set([\n 101,\n 103,\n 204,\n 205,\n 304\n]);\nfunction isResponseWithoutBody(status) {\n return RESPONSE_STATUS_CODES_WITHOUT_BODY.has(status);\n}\n\nexport {\n encodeBuffer,\n decodeBuffer,\n toArrayBuffer,\n isResponseWithoutBody\n};\n//# sourceMappingURL=chunk-UJZOJSMP.mjs.map","// src/index.ts\nfunction isNodeProcess() {\n if (typeof navigator !== \"undefined\" && navigator.product === \"ReactNative\") {\n return true;\n }\n if (typeof process !== \"undefined\") {\n const type = process.type;\n if (type === \"renderer\" || type === \"worker\") {\n return false;\n }\n return !!(process.versions && process.versions.node);\n }\n return false;\n}\nexport {\n isNodeProcess\n};\n//# sourceMappingURL=index.mjs.map","import {\n decodeBuffer,\n encodeBuffer,\n isResponseWithoutBody\n} from \"./chunk-UJZOJSMP.mjs\";\nimport {\n IS_PATCHED_MODULE,\n Interceptor,\n InterceptorReadyState,\n deleteGlobalSymbol,\n getGlobalSymbol\n} from \"./chunk-WZQN3FMY.mjs\";\n\n// src/BatchInterceptor.ts\nvar BatchInterceptor = class extends Interceptor {\n constructor(options) {\n BatchInterceptor.symbol = Symbol(options.name);\n super(BatchInterceptor.symbol);\n this.interceptors = options.interceptors;\n }\n setup() {\n const logger = this.logger.extend(\"setup\");\n logger.info(\"applying all %d interceptors...\", this.interceptors.length);\n for (const interceptor of this.interceptors) {\n logger.info('applying \"%s\" interceptor...', interceptor.constructor.name);\n interceptor.apply();\n logger.info(\"adding interceptor dispose subscription\");\n this.subscriptions.push(() => interceptor.dispose());\n }\n }\n on(event, listener) {\n for (const interceptor of this.interceptors) {\n interceptor.on(event, listener);\n }\n return this;\n }\n once(event, listener) {\n for (const interceptor of this.interceptors) {\n interceptor.once(event, listener);\n }\n return this;\n }\n off(event, listener) {\n for (const interceptor of this.interceptors) {\n interceptor.off(event, listener);\n }\n return this;\n }\n removeAllListeners(event) {\n for (const interceptors of this.interceptors) {\n interceptors.removeAllListeners(event);\n }\n return this;\n }\n};\n\n// src/utils/getCleanUrl.ts\nfunction getCleanUrl(url, isAbsolute = true) {\n return [isAbsolute && url.origin, url.pathname].filter(Boolean).join(\"\");\n}\nexport {\n BatchInterceptor,\n IS_PATCHED_MODULE,\n Interceptor,\n InterceptorReadyState,\n decodeBuffer,\n deleteGlobalSymbol,\n encodeBuffer,\n getCleanUrl,\n getGlobalSymbol,\n isResponseWithoutBody\n};\n//# sourceMappingURL=index.mjs.map","const REDUNDANT_CHARACTERS_EXP = /[\\?|#].*$/g;\nfunction getSearchParams(path) {\n return new URL(`/${path}`, \"http://localhost\").searchParams;\n}\nfunction cleanUrl(path) {\n return path.replace(REDUNDANT_CHARACTERS_EXP, \"\");\n}\nexport {\n cleanUrl,\n getSearchParams\n};\n//# sourceMappingURL=cleanUrl.mjs.map","function isAbsoluteUrl(url) {\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n}\nexport {\n isAbsoluteUrl\n};\n//# sourceMappingURL=isAbsoluteUrl.mjs.map","import { isAbsoluteUrl } from './isAbsoluteUrl.mjs';\nfunction getAbsoluteUrl(path, baseUrl) {\n if (isAbsoluteUrl(path)) {\n return path;\n }\n if (path.startsWith(\"*\")) {\n return path;\n }\n const origin = baseUrl || typeof document !== \"undefined\" && document.baseURI;\n return origin ? (\n // Encode and decode the path to preserve escaped characters.\n decodeURI(new URL(encodeURI(path), origin).href)\n ) : path;\n}\nexport {\n getAbsoluteUrl\n};\n//# sourceMappingURL=getAbsoluteUrl.mjs.map","import { cleanUrl } from '../url/cleanUrl.mjs';\nimport { getAbsoluteUrl } from '../url/getAbsoluteUrl.mjs';\nfunction normalizePath(path, baseUrl) {\n if (path instanceof RegExp) {\n return path;\n }\n const maybeAbsoluteUrl = getAbsoluteUrl(path, baseUrl);\n return cleanUrl(maybeAbsoluteUrl);\n}\nexport {\n normalizePath\n};\n//# sourceMappingURL=normalizePath.mjs.map","import { match } from \"path-to-regexp\";\nimport { getCleanUrl } from \"@mswjs/interceptors\";\nimport { normalizePath } from './normalizePath.mjs';\nfunction coercePath(path) {\n return path.replace(\n /([:a-zA-Z_-]*)(\\*{1,2})+/g,\n (_, parameterName, wildcard) => {\n const expression = \"(.*)\";\n if (!parameterName) {\n return expression;\n }\n return parameterName.startsWith(\":\") ? `${parameterName}${wildcard}` : `${parameterName}${expression}`;\n }\n ).replace(/([^\\/])(:)(?=\\d+)/, \"$1\\\\$2\").replace(/^([^\\/]+)(:)(?=\\/\\/)/, \"$1\\\\$2\");\n}\nfunction matchRequestUrl(url, path, baseUrl) {\n const normalizedPath = normalizePath(path, baseUrl);\n const cleanPath = typeof normalizedPath === \"string\" ? coercePath(normalizedPath) : normalizedPath;\n const cleanUrl = getCleanUrl(url);\n const result = match(cleanPath, { decode: decodeURIComponent })(cleanUrl);\n const params = result && result.params || {};\n return {\n matches: result !== false,\n params\n };\n}\nexport {\n coercePath,\n matchRequestUrl\n};\n//# sourceMappingURL=matchRequestUrl.mjs.map","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\n\n// node_modules/cookie/index.js\nvar require_cookie = __commonJS({\n \"node_modules/cookie/index.js\"(exports) {\n \"use strict\";\n exports.parse = parse;\n exports.serialize = serialize;\n var __toString = Object.prototype.toString;\n var fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n function parse(str, options) {\n if (typeof str !== \"string\") {\n throw new TypeError(\"argument str must be a string\");\n }\n var obj = {};\n var opt = options || {};\n var dec = opt.decode || decode;\n var index = 0;\n while (index < str.length) {\n var eqIdx = str.indexOf(\"=\", index);\n if (eqIdx === -1) {\n break;\n }\n var endIdx = str.indexOf(\";\", index);\n if (endIdx === -1) {\n endIdx = str.length;\n } else if (endIdx < eqIdx) {\n index = str.lastIndexOf(\";\", eqIdx - 1) + 1;\n continue;\n }\n var key = str.slice(index, eqIdx).trim();\n if (void 0 === obj[key]) {\n var val = str.slice(eqIdx + 1, endIdx).trim();\n if (val.charCodeAt(0) === 34) {\n val = val.slice(1, -1);\n }\n obj[key] = tryDecode(val, dec);\n }\n index = endIdx + 1;\n }\n return obj;\n }\n function serialize(name, val, options) {\n var opt = options || {};\n var enc = opt.encode || encode;\n if (typeof enc !== \"function\") {\n throw new TypeError(\"option encode is invalid\");\n }\n if (!fieldContentRegExp.test(name)) {\n throw new TypeError(\"argument name is invalid\");\n }\n var value = enc(val);\n if (value && !fieldContentRegExp.test(value)) {\n throw new TypeError(\"argument val is invalid\");\n }\n var str = name + \"=\" + value;\n if (null != opt.maxAge) {\n var maxAge = opt.maxAge - 0;\n if (isNaN(maxAge) || !isFinite(maxAge)) {\n throw new TypeError(\"option maxAge is invalid\");\n }\n str += \"; Max-Age=\" + Math.floor(maxAge);\n }\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError(\"option domain is invalid\");\n }\n str += \"; Domain=\" + opt.domain;\n }\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError(\"option path is invalid\");\n }\n str += \"; Path=\" + opt.path;\n }\n if (opt.expires) {\n var expires = opt.expires;\n if (!isDate(expires) || isNaN(expires.valueOf())) {\n throw new TypeError(\"option expires is invalid\");\n }\n str += \"; Expires=\" + expires.toUTCString();\n }\n if (opt.httpOnly) {\n str += \"; HttpOnly\";\n }\n if (opt.secure) {\n str += \"; Secure\";\n }\n if (opt.priority) {\n var priority = typeof opt.priority === \"string\" ? opt.priority.toLowerCase() : opt.priority;\n switch (priority) {\n case \"low\":\n str += \"; Priority=Low\";\n break;\n case \"medium\":\n str += \"; Priority=Medium\";\n break;\n case \"high\":\n str += \"; Priority=High\";\n break;\n default:\n throw new TypeError(\"option priority is invalid\");\n }\n }\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === \"string\" ? opt.sameSite.toLowerCase() : opt.sameSite;\n switch (sameSite) {\n case true:\n str += \"; SameSite=Strict\";\n break;\n case \"lax\":\n str += \"; SameSite=Lax\";\n break;\n case \"strict\":\n str += \"; SameSite=Strict\";\n break;\n case \"none\":\n str += \"; SameSite=None\";\n break;\n default:\n throw new TypeError(\"option sameSite is invalid\");\n }\n }\n return str;\n }\n function decode(str) {\n return str.indexOf(\"%\") !== -1 ? decodeURIComponent(str) : str;\n }\n function encode(val) {\n return encodeURIComponent(val);\n }\n function isDate(val) {\n return __toString.call(val) === \"[object Date]\" || val instanceof Date;\n }\n function tryDecode(str, decode2) {\n try {\n return decode2(str);\n } catch (e) {\n return str;\n }\n }\n }\n});\n\n// source.js\nvar import_cookie = __toESM(require_cookie(), 1);\nvar source_default = import_cookie.default;\nexport {\n source_default as default\n};\n/*! Bundled license information:\n\ncookie/index.js:\n (*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n *)\n*/\n","import cookieUtils from \"@bundled-es-modules/cookie\";\nimport { store } from \"@mswjs/cookies\";\nfunction getAllDocumentCookies() {\n return cookieUtils.parse(document.cookie);\n}\nfunction getRequestCookies(request) {\n if (typeof document === \"undefined\" || typeof location === \"undefined\") {\n return {};\n }\n switch (request.credentials) {\n case \"same-origin\": {\n const url = new URL(request.url);\n return location.origin === url.origin ? getAllDocumentCookies() : {};\n }\n case \"include\": {\n return getAllDocumentCookies();\n }\n default: {\n return {};\n }\n }\n}\nfunction getAllRequestCookies(request) {\n const requestCookiesString = request.headers.get(\"cookie\");\n const cookiesFromHeaders = requestCookiesString ? cookieUtils.parse(requestCookiesString) : {};\n store.hydrate();\n const cookiesFromStore = Array.from(store.get(request)?.entries()).reduce((cookies, [name, { value }]) => {\n return Object.assign(cookies, { [name.trim()]: value });\n }, {});\n const cookiesFromDocument = getRequestCookies(request);\n const forwardedCookies = {\n ...cookiesFromDocument,\n ...cookiesFromStore\n };\n for (const [name, value] of Object.entries(forwardedCookies)) {\n request.headers.append(\"cookie\", cookieUtils.serialize(name, value));\n }\n return {\n ...forwardedCookies,\n ...cookiesFromHeaders\n };\n}\nexport {\n getAllRequestCookies,\n getRequestCookies\n};\n//# sourceMappingURL=getRequestCookies.mjs.map","import { devUtils } from '../utils/internal/devUtils.mjs';\nimport { isStringEqual } from '../utils/internal/isStringEqual.mjs';\nimport { getStatusCodeColor } from '../utils/logging/getStatusCodeColor.mjs';\nimport { getTimestamp } from '../utils/logging/getTimestamp.mjs';\nimport { serializeRequest } from '../utils/logging/serializeRequest.mjs';\nimport { serializeResponse } from '../utils/logging/serializeResponse.mjs';\nimport {\n matchRequestUrl\n} from '../utils/matching/matchRequestUrl.mjs';\nimport { toPublicUrl } from '../utils/request/toPublicUrl.mjs';\nimport { getAllRequestCookies } from '../utils/request/getRequestCookies.mjs';\nimport { cleanUrl, getSearchParams } from '../utils/url/cleanUrl.mjs';\nimport {\n RequestHandler\n} from './RequestHandler.mjs';\nvar HttpMethods = /* @__PURE__ */ ((HttpMethods2) => {\n HttpMethods2[\"HEAD\"] = \"HEAD\";\n HttpMethods2[\"GET\"] = \"GET\";\n HttpMethods2[\"POST\"] = \"POST\";\n HttpMethods2[\"PUT\"] = \"PUT\";\n HttpMethods2[\"PATCH\"] = \"PATCH\";\n HttpMethods2[\"OPTIONS\"] = \"OPTIONS\";\n HttpMethods2[\"DELETE\"] = \"DELETE\";\n return HttpMethods2;\n})(HttpMethods || {});\nclass HttpHandler extends RequestHandler {\n constructor(method, path, resolver, options) {\n super({\n info: {\n header: `${method} ${path}`,\n path,\n method\n },\n resolver,\n options\n });\n this.checkRedundantQueryParameters();\n }\n checkRedundantQueryParameters() {\n const { method, path } = this.info;\n if (path instanceof RegExp) {\n return;\n }\n const url = cleanUrl(path);\n if (url === path) {\n return;\n }\n const searchParams = getSearchParams(path);\n const queryParams = [];\n searchParams.forEach((_, paramName) => {\n queryParams.push(paramName);\n });\n devUtils.warn(\n `Found a redundant usage of query parameters in the request handler URL for \"${method} ${path}\". Please match against a path instead and access query parameters in the response resolver function using \"req.url.searchParams\".`\n );\n }\n async parse(args) {\n const url = new URL(args.request.url);\n const match = matchRequestUrl(\n url,\n this.info.path,\n args.resolutionContext?.baseUrl\n );\n const cookies = getAllRequestCookies(args.request);\n return {\n match,\n cookies\n };\n }\n predicate(args) {\n const hasMatchingMethod = this.matchMethod(args.request.method);\n const hasMatchingUrl = args.parsedResult.match.matches;\n return hasMatchingMethod && hasMatchingUrl;\n }\n matchMethod(actualMethod) {\n return this.info.method instanceof RegExp ? this.info.method.test(actualMethod) : isStringEqual(this.info.method, actualMethod);\n }\n extendResolverArgs(args) {\n return {\n params: args.parsedResult.match?.params || {},\n cookies: args.parsedResult.cookies\n };\n }\n async log(args) {\n const publicUrl = toPublicUrl(args.request.url);\n const loggedRequest = await serializeRequest(args.request);\n const loggedResponse = await serializeResponse(args.response);\n const statusColor = getStatusCodeColor(loggedResponse.status);\n console.groupCollapsed(\n devUtils.formatMessage(\n `${getTimestamp()} ${args.request.method} ${publicUrl} (%c${loggedResponse.status} ${loggedResponse.statusText}%c)`\n ),\n `color:${statusColor}`,\n \"color:inherit\"\n );\n console.log(\"Request\", loggedRequest);\n console.log(\"Handler:\", this);\n console.log(\"Response\", loggedResponse);\n console.groupEnd();\n }\n}\nexport {\n HttpHandler,\n HttpMethods\n};\n//# sourceMappingURL=HttpHandler.mjs.map","import {\n HttpMethods,\n HttpHandler\n} from './handlers/HttpHandler.mjs';\nfunction createHttpHandler(method) {\n return (path, resolver, options = {}) => {\n return new HttpHandler(method, path, resolver, options);\n };\n}\nconst http = {\n all: createHttpHandler(/.+/),\n head: createHttpHandler(HttpMethods.HEAD),\n get: createHttpHandler(HttpMethods.GET),\n post: createHttpHandler(HttpMethods.POST),\n put: createHttpHandler(HttpMethods.PUT),\n delete: createHttpHandler(HttpMethods.DELETE),\n patch: createHttpHandler(HttpMethods.PATCH),\n options: createHttpHandler(HttpMethods.OPTIONS)\n};\nexport {\n http\n};\n//# sourceMappingURL=http.mjs.map","import { isNodeProcess } from \"is-node-process\";\nconst SET_TIMEOUT_MAX_ALLOWED_INT = 2147483647;\nconst MIN_SERVER_RESPONSE_TIME = 100;\nconst MAX_SERVER_RESPONSE_TIME = 400;\nconst NODE_SERVER_RESPONSE_TIME = 5;\nfunction getRealisticResponseTime() {\n if (isNodeProcess()) {\n return NODE_SERVER_RESPONSE_TIME;\n }\n return Math.floor(\n Math.random() * (MAX_SERVER_RESPONSE_TIME - MIN_SERVER_RESPONSE_TIME) + MIN_SERVER_RESPONSE_TIME\n );\n}\nasync function delay(durationOrMode) {\n let delayTime;\n if (typeof durationOrMode === \"string\") {\n switch (durationOrMode) {\n case \"infinite\": {\n delayTime = SET_TIMEOUT_MAX_ALLOWED_INT;\n break;\n }\n case \"real\": {\n delayTime = getRealisticResponseTime();\n break;\n }\n default: {\n throw new Error(\n `Failed to delay a response: unknown delay mode \"${durationOrMode}\". Please make sure you provide one of the supported modes (\"real\", \"infinite\") or a number.`\n );\n }\n }\n } else if (typeof durationOrMode === \"undefined\") {\n delayTime = getRealisticResponseTime();\n } else {\n if (durationOrMode > SET_TIMEOUT_MAX_ALLOWED_INT) {\n throw new Error(\n `Failed to delay a response: provided delay duration (${durationOrMode}) exceeds the maximum allowed duration for \"setTimeout\" (${SET_TIMEOUT_MAX_ALLOWED_INT}). This will cause the response to be returned immediately. Please use a number within the allowed range to delay the response by exact duration, or consider the \"infinite\" delay mode to delay the response indefinitely.`\n );\n }\n delayTime = durationOrMode;\n }\n return new Promise((resolve) => setTimeout(resolve, delayTime));\n}\nexport {\n MAX_SERVER_RESPONSE_TIME,\n MIN_SERVER_RESPONSE_TIME,\n NODE_SERVER_RESPONSE_TIME,\n SET_TIMEOUT_MAX_ALLOWED_INT,\n delay\n};\n//# sourceMappingURL=delay.mjs.map","import { checkGlobals } from './utils/internal/checkGlobals.mjs';\nimport { SetupApi } from './SetupApi.mjs';\nimport { RequestHandler } from './handlers/RequestHandler.mjs';\nimport { http } from './http.mjs';\nimport { HttpHandler, HttpMethods } from './handlers/HttpHandler.mjs';\nimport { graphql } from './graphql.mjs';\nimport { GraphQLHandler } from './handlers/GraphQLHandler.mjs';\nimport { matchRequestUrl } from './utils/matching/matchRequestUrl.mjs';\nexport * from './utils/handleRequest.mjs';\nimport { getResponse } from './getResponse.mjs';\nimport { cleanUrl } from './utils/url/cleanUrl.mjs';\nexport * from './HttpResponse.mjs';\nexport * from './delay.mjs';\nimport { bypass } from './bypass.mjs';\nimport { passthrough } from './passthrough.mjs';\ncheckGlobals();\nexport {\n GraphQLHandler,\n HttpHandler,\n HttpMethods,\n RequestHandler,\n SetupApi,\n bypass,\n cleanUrl,\n getResponse,\n graphql,\n http,\n matchRequestUrl,\n passthrough\n};\n//# sourceMappingURL=index.mjs.map","// src/mocks/handlers.js\nimport { delay, http } from 'msw';\nimport vacations from '@/mocks/vacations.json';\nimport saveDeals from '@/mocks/saveDeals.json';\nimport refreshDealsErrors from '@/mocks/refreshDealsErrors.json';\nimport convertErrors from '@/mocks/convertError.json';\nimport { getConfig } from '@/config/config';\n\nconst apiUrl = getConfig().apiUrl;\n\nexport const handlers = [\n // If authenticated, return a mocked user details\n http.get(`${apiUrl}/api/vacations`, () => new Response(JSON.stringify(vacations))),\n\n // If authenticated, return a mocked user details\n http.patch(`${apiUrl}/api/deals`, async () => {\n await delay(5000);\n return new Response(JSON.stringify(saveDeals));\n }),\n\n // If authenticated, return a mocked user details\n http.post(`${apiUrl}/api/deals/refresh`, () => new Response(JSON.stringify(refreshDealsErrors))),\n\n // If authenticated, return a mocked user details\n http.post(`${apiUrl}/api/deals/convert`, async () => {\n await delay(500);\n return new Response(JSON.stringify(convertErrors));\n }),\n];\n","// src/mocks/browser.js\nimport { setupWorker } from 'msw/browser'\nimport { handlers } from './handlers'\n\n// This configures a Service Worker with the given request handlers.\nexport const worker = setupWorker(...handlers)","type possibleHour = 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16;\ntype possibleMinutes = 15 | 45;\n\nexport type SessionTimeFormat = `${number}:${number}`;\nexport type PossibleSessionTime = `${possibleHour}:${possibleMinutes}` | '17:15';\n\nexport type ClosedVacationEventData = {\n vacationId: string;\n};\n\nexport interface Vacation {\n id: string;\n sessionTime: PossibleSessionTime;\n isCurrent: boolean;\n tradeDate: string;\n beginDate: string;\n endDate: string;\n pricingDate: string;\n dealNumbers: number;\n status: BookingStatus;\n currencyPairs: CurrencyPair[];\n}\n\nexport type BookingStatus = (typeof bookingStatus)[number];\nexport type Product = 'SPOT' | 'FORWARD';\n\nexport const bookingStatus = [\n 'TODO',\n 'INPROGRESS',\n 'SENT',\n 'UNSUCCESSFUL',\n 'DELETED',\n 'COLLECTING',\n 'COLLECTED',\n 'DONE', // it's \"SAVED\" status\n] as const;\nexport const openStatus: BookingStatus[] = ['TODO', 'COLLECTING', 'COLLECTED', 'INPROGRESS'];\nexport type OpenStatus = (typeof openStatus)[number];\n\nexport interface CurrencyPair {\n currency1: string;\n currency2: string;\n id: string;\n dealOwner: string;\n status: BookingStatus;\n amount: {\n currency1: number;\n currency2: number;\n };\n dealNumbers: number;\n xoneDealNumbers: number;\n deals: Deal[];\n}\n\ntype Currency1Version = {\n currency1: number;\n};\n\ntype Currency2Version = {\n currency2: number;\n};\n\nexport type Amount = Currency1Version | Currency2Version;\n\nexport interface BidAsk {\n bid: number;\n ask: number;\n}\n\nexport interface Deal {\n id: string;\n counterparty: string;\n product: Product;\n originalAmount: Amount;\n computedAmount: Amount;\n valueDate: ValueDate;\n spotRate: BidAsk;\n swapPoint: BidAsk;\n margin: number;\n marketRate: number;\n clientRate: number;\n status: BookingStatus;\n}\n\nexport interface ValueDate {\n theoreticalDate: string;\n proposedDate: string;\n}\n\nexport type BlotterUrlParameters = {\n sessionId: string;\n currency1: string;\n currency2: string;\n};\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","\"use client\";\n\nimport * as React from 'react';\nimport { useContext, useMemo } from 'react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const DEFAULT_BREAKPOINTS = ['xxl', 'xl', 'lg', 'md', 'sm', 'xs'];\nexport const DEFAULT_MIN_BREAKPOINT = 'xs';\nconst ThemeContext = /*#__PURE__*/React.createContext({\n prefixes: {},\n breakpoints: DEFAULT_BREAKPOINTS,\n minBreakpoint: DEFAULT_MIN_BREAKPOINT\n});\nconst {\n Consumer,\n Provider\n} = ThemeContext;\nfunction ThemeProvider({\n prefixes = {},\n breakpoints = DEFAULT_BREAKPOINTS,\n minBreakpoint = DEFAULT_MIN_BREAKPOINT,\n dir,\n children\n}) {\n const contextValue = useMemo(() => ({\n prefixes: {\n ...prefixes\n },\n breakpoints,\n minBreakpoint,\n dir\n }), [prefixes, breakpoints, minBreakpoint, dir]);\n return /*#__PURE__*/_jsx(Provider, {\n value: contextValue,\n children: children\n });\n}\nexport function useBootstrapPrefix(prefix, defaultPrefix) {\n const {\n prefixes\n } = useContext(ThemeContext);\n return prefix || prefixes[defaultPrefix] || defaultPrefix;\n}\nexport function useBootstrapBreakpoints() {\n const {\n breakpoints\n } = useContext(ThemeContext);\n return breakpoints;\n}\nexport function useBootstrapMinBreakpoint() {\n const {\n minBreakpoint\n } = useContext(ThemeContext);\n return minBreakpoint;\n}\nexport function useIsRTL() {\n const {\n dir\n } = useContext(ThemeContext);\n return dir === 'rtl';\n}\nfunction createBootstrapComponent(Component, opts) {\n if (typeof opts === 'string') opts = {\n prefix: opts\n };\n const isClassy = Component.prototype && Component.prototype.isReactComponent;\n // If it's a functional component make sure we don't break it with a ref\n const {\n prefix,\n forwardRefAs = isClassy ? 'ref' : 'innerRef'\n } = opts;\n const Wrapped = /*#__PURE__*/React.forwardRef(({\n ...props\n }, ref) => {\n props[forwardRefAs] = ref;\n const bsPrefix = useBootstrapPrefix(props.bsPrefix, prefix);\n return /*#__PURE__*/_jsx(Component, {\n ...props,\n bsPrefix: bsPrefix\n });\n });\n Wrapped.displayName = `Bootstrap(${Component.displayName || Component.name})`;\n return Wrapped;\n}\nexport { createBootstrapComponent, Consumer as ThemeConsumer };\nexport default ThemeProvider;","/**\n * Returns the owner document of a given element.\n * \n * @param node the element\n */\nexport default function ownerDocument(node) {\n return node && node.ownerDocument || document;\n}","import ownerDocument from './ownerDocument';\n/**\n * Returns the owner window of a given element.\n * \n * @param node the element\n */\n\nexport default function ownerWindow(node) {\n var doc = ownerDocument(node);\n return doc && doc.defaultView || window;\n}","import ownerWindow from './ownerWindow';\n/**\n * Returns one or all computed style properties of an element.\n * \n * @param node the element\n * @param psuedoElement the style property\n */\n\nexport default function getComputedStyle(node, psuedoElement) {\n return ownerWindow(node).getComputedStyle(node, psuedoElement);\n}","var rUpper = /([A-Z])/g;\nexport default function hyphenate(string) {\n return string.replace(rUpper, '-$1').toLowerCase();\n}","/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n * https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/hyphenateStyleName.js\n */\nimport hyphenate from './hyphenate';\nvar msPattern = /^ms-/;\nexport default function hyphenateStyleName(string) {\n return hyphenate(string).replace(msPattern, '-ms-');\n}","var supportedTransforms = /^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i;\nexport default function isTransform(value) {\n return !!(value && supportedTransforms.test(value));\n}","import getComputedStyle from './getComputedStyle';\nimport hyphenate from './hyphenateStyle';\nimport isTransform from './isTransform';\n\nfunction style(node, property) {\n var css = '';\n var transforms = '';\n\n if (typeof property === 'string') {\n return node.style.getPropertyValue(hyphenate(property)) || getComputedStyle(node).getPropertyValue(hyphenate(property));\n }\n\n Object.keys(property).forEach(function (key) {\n var value = property[key];\n\n if (!value && value !== 0) {\n node.style.removeProperty(hyphenate(key));\n } else if (isTransform(key)) {\n transforms += key + \"(\" + value + \") \";\n } else {\n css += hyphenate(key) + \": \" + value + \";\";\n }\n });\n\n if (transforms) {\n css += \"transform: \" + transforms + \";\";\n }\n\n node.style.cssText += \";\" + css;\n}\n\nexport default style;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","export default {\n disabled: false\n};","import React from 'react';\nexport default React.createContext(null);","export var forceReflow = function forceReflow(node) {\n return node.scrollTop;\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { forceReflow } from './utils/reflow';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
    \n * I'm a fade Transition!\n *
    \n * )}\n *
    \n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
    \n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
    \n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n if (this.props.unmountOnExit || this.props.mountOnEnter) {\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n // To make the animation happen, we have to separate each rendering and avoid being processed as batched.\n\n if (node) forceReflow(node);\n }\n\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","export default !!(typeof window !== 'undefined' && window.document && window.document.createElement);","/* eslint-disable no-return-assign */\nimport canUseDOM from './canUseDOM';\nexport var optionsSupported = false;\nexport var onceSupported = false;\n\ntry {\n var options = {\n get passive() {\n return optionsSupported = true;\n },\n\n get once() {\n // eslint-disable-next-line no-multi-assign\n return onceSupported = optionsSupported = true;\n }\n\n };\n\n if (canUseDOM) {\n window.addEventListener('test', options, options);\n window.removeEventListener('test', options, true);\n }\n} catch (e) {\n /* */\n}\n\n/**\n * An `addEventListener` ponyfill, supports the `once` option\n * \n * @param node the element\n * @param eventName the event name\n * @param handle the handler\n * @param options event options\n */\nfunction addEventListener(node, eventName, handler, options) {\n if (options && typeof options !== 'boolean' && !onceSupported) {\n var once = options.once,\n capture = options.capture;\n var wrappedHandler = handler;\n\n if (!onceSupported && once) {\n wrappedHandler = handler.__once || function onceHandler(event) {\n this.removeEventListener(eventName, onceHandler, capture);\n handler.call(this, event);\n };\n\n handler.__once = wrappedHandler;\n }\n\n node.addEventListener(eventName, wrappedHandler, optionsSupported ? options : capture);\n }\n\n node.addEventListener(eventName, handler, options);\n}\n\nexport default addEventListener;","/**\n * A `removeEventListener` ponyfill\n * \n * @param node the element\n * @param eventName the event name\n * @param handle the handler\n * @param options event options\n */\nfunction removeEventListener(node, eventName, handler, options) {\n var capture = options && typeof options !== 'boolean' ? options.capture : options;\n node.removeEventListener(eventName, handler, capture);\n\n if (handler.__once) {\n node.removeEventListener(eventName, handler.__once, capture);\n }\n}\n\nexport default removeEventListener;","import addEventListener from './addEventListener';\nimport removeEventListener from './removeEventListener';\n\nfunction listen(node, eventName, handler, options) {\n addEventListener(node, eventName, handler, options);\n return function () {\n removeEventListener(node, eventName, handler, options);\n };\n}\n\nexport default listen;","/**\n * Triggers an event on a given element.\n * \n * @param node the element\n * @param eventName the event name to trigger\n * @param bubbles whether the event should bubble up\n * @param cancelable whether the event should be cancelable\n */\nexport default function triggerEvent(node, eventName, bubbles, cancelable) {\n if (bubbles === void 0) {\n bubbles = false;\n }\n\n if (cancelable === void 0) {\n cancelable = true;\n }\n\n if (node) {\n var event = document.createEvent('HTMLEvents');\n event.initEvent(eventName, bubbles, cancelable);\n node.dispatchEvent(event);\n }\n}","import css from './css';\nimport listen from './listen';\nimport triggerEvent from './triggerEvent';\n\nfunction parseDuration(node) {\n var str = css(node, 'transitionDuration') || '';\n var mult = str.indexOf('ms') === -1 ? 1000 : 1;\n return parseFloat(str) * mult;\n}\n\nfunction emulateTransitionEnd(element, duration, padding) {\n if (padding === void 0) {\n padding = 5;\n }\n\n var called = false;\n var handle = setTimeout(function () {\n if (!called) triggerEvent(element, 'transitionend', true);\n }, duration + padding);\n var remove = listen(element, 'transitionend', function () {\n called = true;\n }, {\n once: true\n });\n return function () {\n clearTimeout(handle);\n remove();\n };\n}\n\nexport default function transitionEnd(element, handler, duration, padding) {\n if (duration == null) duration = parseDuration(element) || 0;\n var removeEmulate = emulateTransitionEnd(element, duration, padding);\n var remove = listen(element, 'transitionend', handler);\n return function () {\n removeEmulate();\n remove();\n };\n}","import css from 'dom-helpers/css';\nimport transitionEnd from 'dom-helpers/transitionEnd';\nfunction parseDuration(node, property) {\n const str = css(node, property) || '';\n const mult = str.indexOf('ms') === -1 ? 1000 : 1;\n return parseFloat(str) * mult;\n}\nexport default function transitionEndListener(element, handler) {\n const duration = parseDuration(element, 'transitionDuration');\n const delay = parseDuration(element, 'transitionDelay');\n const remove = transitionEnd(element, e => {\n if (e.target === element) {\n remove();\n handler(e);\n }\n }, duration + delay);\n}","// reading a dimension prop will cause the browser to recalculate,\n// which will let our animations work\nexport default function triggerBrowserReflow(node) {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n node.offsetHeight;\n}","import { useMemo } from 'react';\nconst toFnRef = ref => !ref || typeof ref === 'function' ? ref : value => {\n ref.current = value;\n};\nexport function mergeRefs(refA, refB) {\n const a = toFnRef(refA);\n const b = toFnRef(refB);\n return value => {\n if (a) a(value);\n if (b) b(value);\n };\n}\n\n/**\n * Create and returns a single callback ref composed from two other Refs.\n *\n * ```tsx\n * const Button = React.forwardRef((props, ref) => {\n * const [element, attachRef] = useCallbackRef();\n * const mergedRef = useMergedRefs(ref, attachRef);\n *\n * return