{"version":3,"sources":["libraries/match-height.js"],"names":["MatchHeight","constructor","items","byRow","Array","from","recomputing","resizeDebounce","undefined","init","getRows","rows","row","forEach","item","index","prevItem","getBoundingClientRect","top","push","calcFragmentHeight","style","minHeight","max","Math","map","offsetHeight","calc","window","addEventListener","clearTimeout","setTimeout"],"mappings":"aAAA,KAAMA,CAAAA,WAAY,CACjBC,WAAW,CAACC,KAAD,CAAQC,KAAK,CAAG,IAAhB,CAAsB,CAChC,KAAKD,KAAL,CAAaE,KAAK,CAACC,IAAN,CAAWH,KAAX,CAAb,CACA,KAAKC,KAAL,CAAaA,KAAb,CACA,KAAKG,WAAL,CAAmB,KAAnB,CACA,KAAKC,cAAL,CAAsBC,SAAtB,CACA,KAAKC,IAAL,EACA,CAEDC,OAAO,EAAG,CACT,KAAMC,CAAAA,IAAI,CAAG,EAAb,CACA,GAAIC,CAAAA,GAAG,CAAG,EAAV,CAEA,KAAKV,KAAL,CAAWW,OAAX,CAAmB,CAACC,IAAD,CAAOC,KAAP,GAAiB,CACnC,KAAMC,CAAAA,QAAQ,CAAG,KAAKd,KAAL,CAAWa,KAAK,CAAG,CAAnB,CAAjB,CACA,GAAIC,QAAQ,EAAIF,IAAI,CAACG,qBAAL,GAA6BC,GAA7B,GAAqCF,QAAQ,CAACC,qBAAT,GAAiCC,GAAtF,CAA2F,CAC1FP,IAAI,CAACQ,IAAL,CAAUP,GAAV,EACAA,GAAG,CAAG,EACN,CACDA,GAAG,CAACO,IAAJ,CAASL,IAAT,CACA,CAPD,EASAH,IAAI,CAACQ,IAAL,CAAUP,GAAV,EAEA,MAAOD,CAAAA,IACP,CAEDS,kBAAkB,CAACR,GAAD,CAAM,CACvB,GAAI,KAAKN,WAAT,CAAsB,CACrBM,GAAG,CAACC,OAAJ,CAAYC,IAAI,EAAI,CACnBA,IAAI,CAACO,KAAL,CAAWC,SAAX,CAAuB,CACvB,CAFD,CAGA,CACD,KAAMC,CAAAA,GAAG,CAAGC,IAAI,CAACD,GAAL,CAAS,GAAGX,GAAG,CAACa,GAAJ,CAAQX,IAAI,EAAIA,IAAI,CAACY,YAArB,CAAZ,CAAZ,CACAd,GAAG,CAACC,OAAJ,CAAYC,IAAI,EAAI,CACnBA,IAAI,CAACO,KAAL,CAAWC,SAAX,CAAuBC,GAAG,CAAG,IAC7B,CAFD,CAGA,CAEDI,IAAI,EAAG,CACN,GAAI,KAAKxB,KAAT,CAAgB,CACf,KAAKO,OAAL,GAAeG,OAAf,CAAuBD,GAAG,EAAI,KAAKQ,kBAAL,CAAwBR,GAAxB,CAA9B,CACA,CAFD,IAEO,CACN,KAAKQ,kBAAL,CAAwB,KAAKlB,KAA7B,CACA,CACD,CAEDO,IAAI,EAAG,CACN,KAAKkB,IAAL,GACAC,MAAM,CAACC,gBAAP,CAAwB,QAAxB,CAAkC,IAAM,CACvC,KAAKvB,WAAL,CAAmB,IAAnB,CACA,KAAKC,cAAL,EAAuBuB,YAAY,CAAC,KAAKvB,cAAN,CAAnC,CACA,KAAKA,cAAL,CAAsBwB,UAAU,CAAC,IAAM,KAAKJ,IAAL,EAAP,CAAoB,EAApB,CAChC,CAJD,CAKA,CAtDgB","sourcesContent":["class MatchHeight {\r\n\tconstructor(items, byRow = true) {\r\n\t\tthis.items = Array.from(items);\r\n\t\tthis.byRow = byRow;\r\n\t\tthis.recomputing = false;\r\n\t\tthis.resizeDebounce = undefined;\r\n\t\tthis.init();\r\n\t}\r\n\r\n\tgetRows() {\r\n\t\tconst rows = [];\r\n\t\tlet row = [];\r\n\r\n\t\tthis.items.forEach((item, index) => {\r\n\t\t\tconst prevItem = this.items[index - 1];\r\n\t\t\tif (prevItem && item.getBoundingClientRect().top !== prevItem.getBoundingClientRect().top) {\r\n\t\t\t\trows.push(row);\r\n\t\t\t\trow = [];\r\n\t\t\t}\r\n\t\t\trow.push(item);\r\n\t\t});\r\n\r\n\t\trows.push(row);\r\n\r\n\t\treturn rows;\r\n\t}\r\n\r\n\tcalcFragmentHeight(row) {\r\n\t\tif (this.recomputing) {\r\n\t\t\trow.forEach(item => {\r\n\t\t\t\titem.style.minHeight = 0;\r\n\t\t\t});\r\n\t\t}\r\n\t\tconst max = Math.max(...row.map(item => item.offsetHeight));\r\n\t\trow.forEach(item => {\r\n\t\t\titem.style.minHeight = max + 'px';\r\n\t\t});\r\n\t}\r\n\r\n\tcalc() {\r\n\t\tif (this.byRow) {\r\n\t\t\tthis.getRows().forEach(row => this.calcFragmentHeight(row));\r\n\t\t} else {\r\n\t\t\tthis.calcFragmentHeight(this.items);\r\n\t\t}\r\n\t}\r\n\r\n\tinit() {\r\n\t\tthis.calc();\r\n\t\twindow.addEventListener('resize', () => {\r\n\t\t\tthis.recomputing = true;\r\n\t\t\tthis.resizeDebounce && clearTimeout(this.resizeDebounce);\r\n\t\t\tthis.resizeDebounce = setTimeout(() => this.calc(), 80);\r\n\t\t});\r\n\t}\r\n}\r\n"],"file":"match-height.min.js"}