@zentto/report-core 0.4.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/engine/conditional-format.d.ts +48 -0
- package/dist/engine/conditional-format.d.ts.map +1 -0
- package/dist/engine/conditional-format.js +167 -0
- package/dist/engine/conditional-format.js.map +1 -0
- package/dist/engine/cross-tab.d.ts +68 -0
- package/dist/engine/cross-tab.d.ts.map +1 -0
- package/dist/engine/cross-tab.js +549 -0
- package/dist/engine/cross-tab.js.map +1 -0
- package/dist/engine/expression.d.ts +46 -2
- package/dist/engine/expression.d.ts.map +1 -1
- package/dist/engine/expression.js +1415 -90
- package/dist/engine/expression.js.map +1 -1
- package/dist/engine/multi-pass-engine.d.ts +74 -0
- package/dist/engine/multi-pass-engine.d.ts.map +1 -0
- package/dist/engine/multi-pass-engine.js +1082 -0
- package/dist/engine/multi-pass-engine.js.map +1 -0
- package/dist/engine/running-totals.d.ts +74 -0
- package/dist/engine/running-totals.d.ts.map +1 -0
- package/dist/engine/running-totals.js +247 -0
- package/dist/engine/running-totals.js.map +1 -0
- package/dist/engine/subreport.d.ts +59 -0
- package/dist/engine/subreport.d.ts.map +1 -0
- package/dist/engine/subreport.js +295 -0
- package/dist/engine/subreport.js.map +1 -0
- package/dist/index.d.ts +11 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -1
- package/dist/schema/report-schema.d.ts +346 -346
- package/dist/serialization/json.d.ts +88 -88
- package/dist/templates/page-sizes.d.ts.map +1 -1
- package/dist/templates/page-sizes.js +95 -3
- package/dist/templates/page-sizes.js.map +1 -1
- package/dist/types.d.ts +38 -2
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multi-pass-engine.js","sourceRoot":"","sources":["../../src/engine/multi-pass-engine.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,EAAE;AACF,oEAAoE;AACpE,gGAAgG;AAChG,0EAA0E;AAgB1E,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAGL,mBAAmB,EACnB,WAAW,GACZ,MAAM,mBAAmB,CAAC;AA6C3B;;;GAGG;AACH,SAAS,wBAAwB,CAC/B,IAA+B,EAC/B,KAAa,EACb,EAA6B;IAE7B,uEAAuE;IACvE,IAAI,EAAE,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC,MAAM,CAAC;IAEvC,IAAI,EAAE,KAAK,eAAe,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAW,CAAC;QAChC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QACvB,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,MAAM,MAAM,GAAG,IAAI;SAChB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;SAClB,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC;IAErD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAElC,QAAQ,EAAE,EAAE,CAAC;QACX,KAAK,KAAK;YACR,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC1B,KAAK,KAAK;YACR,OAAO,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;QAC1C,KAAK,KAAK;YACR,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;QAC7B,KAAK,KAAK;YACR,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;QAC7B,KAAK,QAAQ;YACX,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;QAC/B,KAAK,QAAQ;YACX,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;QAC/B,KAAK,UAAU;YACb,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;QACjC;YACE,OAAO,CAAC,CAAC;IACb,CAAC;AACH,CAAC;AAED,0DAA0D;AAC1D,SAAS,QAAQ,CAAC,MAAgB;IAChC,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC;QAC3B,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;QAClB,YAAY,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7B,GAAG,GAAG,CAAC,CAAC;IACV,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,aAAa,CAAC,MAAgB;IACrC,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACjD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC1C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC;AAED,SAAS,eAAe,CAAC,MAAgB;IACvC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC;IAChC,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;IAC9C,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACtD,kFAAkF;IAClF,OAAO,QAAQ,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;AAChD,CAAC;AAED,SAAS,aAAa,CAAC,MAAgB;IACrC,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,uEAAuE;AAEvE,SAAS,QAAQ,CACf,IAA+B,EAC/B,MAAoB;IAEpB,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IAEzB,oEAAoE;IACpE,MAAM,QAAQ,GAAmD,EAAE,CAAC;IAEpE,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YAC/B,iCAAiC;YACjC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC/C,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAEzC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACnB,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YACzB,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,IAAI,KAAK,IAAI;gBAAE,SAAS;YAC5B,IAAI,IAAI,IAAI,IAAI;gBAAE,OAAO,CAAC,CAAC;YAC3B,IAAI,IAAI,IAAI,IAAI;gBAAE,OAAO,CAAC,CAAC,CAAC;YAC5B,MAAM,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjC,OAAO,EAAE,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAC9C,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,oEAAoE;AACpE,SAAS,YAAY,CACnB,IAA+B,EAC/B,KAAa;IAEb,MAAM,MAAM,GAAG,IAAI,GAAG,EAAqC,CAAC;IAC5D,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACrC,IAAI,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,EAAE,CAAC;YACX,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACzB,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,4DAA4D;AAC5D,SAAS,mBAAmB,CAC1B,IAA+B,EAC/B,MAAkB,EAClB,QAAgB,CAAC;IAEjB,IAAI,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAC3B,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;IAClC,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAE5C,sDAAsD;IACtD,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,KAAK,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,SAAS,EAAE,CAAC;YACzC,qEAAqE;YACrE,2DAA2D;YAC3D,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,uEAAuE;AAEvE,SAAS,UAAU,CAAC,KAAa,EAAE,EAAU;IAC3C,OAAO,GAAG,KAAK,IAAI,EAAE,EAAE,CAAC;AAC1B,CAAC;AAED,MAAM,iBAAiB,GAAgC;IACrD,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe;CACrF,CAAC;AAEF;;;GAGG;AACH,SAAS,sBAAsB,CAAC,MAAoB;IAClD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IAEjC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC7B,MAAM,EAAE,GAAG,OAAuB,CAAC;gBACnC,IAAI,EAAE,CAAC,SAAS,EAAE,CAAC;oBACjB,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,mCAAmC;IACnC,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QACzB,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YACtC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,mEAAmE;AACnE,SAAS,oBAAoB,CAAC,IAA+B;IAC3D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7C,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC5B,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC;AACrB,CAAC;AAED,uEAAuE;AAEvE;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAC1B,MAAoB,EACpB,QAAiB;IAEjB,MAAM,GAAG,GAAkB;QACzB,UAAU,EAAE,IAAI,GAAG,EAAE;QACrB,WAAW,EAAE,IAAI,GAAG,EAAE;QACtB,UAAU,EAAE,IAAI,GAAG,EAAE;QACrB,WAAW,EAAE,IAAI,GAAG,EAAE;QACtB,aAAa,EAAE,IAAI,GAAG,EAAE;QACxB,UAAU,EAAE;YACV,YAAY,EAAE,CAAC;YACf,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,CAAC;YACb,UAAU,EAAE,CAAC;YACb,aAAa,EAAE,IAAI;YACnB,YAAY,EAAE,KAAK;YACnB,cAAc,EAAE,IAAI,GAAG,EAAE;YACzB,UAAU,EAAE,IAAI,GAAG,EAAE;SACtB;QACD,kBAAkB,EAAE,IAAI,GAAG,EAAE;QAC7B,kBAAkB,EAAE,IAAI,GAAG,EAAE;QAC7B,gBAAgB,EAAE,IAAI,GAAG,EAAE;QAC3B,UAAU,EAAE,CAAC;QACb,WAAW,EAAE,EAAE;KAChB,CAAC;IAEF,2BAA2B;IAC3B,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACnC,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YAAE,SAAS;QAElD,mDAAmD;QACnD,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACzC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAErC,yCAAyC;QACzC,MAAM,cAAc,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;QACtD,MAAM,aAAa,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACnD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,cAAc,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC;QAEpE,+CAA+C;QAC/C,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;YACjC,KAAK,MAAM,EAAE,IAAI,iBAAiB,EAAE,CAAC;gBACnC,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAClC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,wBAAwB,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;YACxE,CAAC;QACH,CAAC;QAED,+BAA+B;QAC/B,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBACrC,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAErD,iCAAiC;gBACjC,MAAM,YAAY,GAA6B,EAAE,CAAC;gBAClD,MAAM,SAAS,GAAG,IAAI,GAAG,EAA+B,CAAC;gBAEzD,KAAK,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,OAAO,EAAE,CAAC;oBAC5C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;oBAE5C,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;wBACjC,KAAK,MAAM,EAAE,IAAI,iBAAiB,EAAE,CAAC;4BACnC,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;4BACrC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,wBAAwB,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;wBACxE,CAAC;oBACH,CAAC;oBAED,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;oBAEnC,wCAAwC;oBACxC,MAAM,OAAO,GAA2B,EAAE,OAAO,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC;oBACtE,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,SAAS,EAAE,CAAC;wBACtC,OAAO,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;oBACxB,CAAC;oBACD,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC7B,CAAC;gBAED,mBAAmB;gBACnB,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;gBAElD,sDAAsD;gBACtD,KAAK,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,SAAS,EAAE,CAAC;oBAC9C,MAAM,YAAY,GAAG,GAAG,QAAQ,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;oBACtD,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;gBAC9C,CAAC;YACH,CAAC;YAED,oEAAoE;YACpE,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,4BAA4B,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;IACH,CAAC;IAED,oCAAoC;IACpC,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QACzB,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YACtC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,SAAS,4BAA4B,CACnC,IAA+B,EAC/B,MAAkB,EAClB,MAAmB,EACnB,GAAkB;IAElB,0DAA0D;IAC1D,iCAAiC;IACjC,MAAM,SAAS,GAAe,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IAEnD,mBAAmB;IACnB,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAEzD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,YAAY,EAAE,CAAC;QACzC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAExB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,YAAY,GAAG,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAE1D,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,YAAY,EAAE,CAAC;gBACzC,8BAA8B;gBAC9B,MAAM,YAAY,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;gBAC/E,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;gBAE5C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;oBAC3B,KAAK,MAAM,EAAE,IAAI,iBAAiB,EAAE,CAAC;wBACnC,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;wBACrC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,wBAAwB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;oBACpE,CAAC;gBACH,CAAC;gBACD,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;gBAE5C,yEAAyE;gBACzE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACtB,MAAM,YAAY,GAAG,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;oBAC1D,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,YAAY,EAAE,CAAC;wBACzC,MAAM,OAAO,GAAG,GAAG,YAAY,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;wBAC9D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;wBAC3C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;4BAC3B,KAAK,MAAM,EAAE,IAAI,iBAAiB,EAAE,CAAC;gCACnC,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gCACrC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,wBAAwB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;4BACnE,CAAC;wBACH,CAAC;wBACD,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;oBACxC,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,uEAAuE;AAEvE;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAC1B,MAAoB,EACpB,QAAiB,EACjB,GAAkB,EAClB,OAAuB;IAEvB,yCAAyC;IACzC,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACvD,GAAG,CAAC,WAAW,GAAG,KAAK,CAAC;IAExB,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC;IAClC,UAAU,CAAC,UAAU,GAAG,CAAC,CAAC;IAC1B,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC;IAC5B,UAAU,CAAC,WAAW,GAAG,CAAC,CAAC;IAE3B,kEAAkE;IAClE,MAAM,cAAc,GAAmB,EAAE,CAAC;IAC1C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC5B,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC9B,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG,cAAc,CAAC,MAAM,CAAC;IAE3C,yDAAyD;IACzD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAmB,CAAC;IAEnD,0BAA0B;IAC1B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAExC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC5B,+DAA+D;YAC/D,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;gBAC5C,UAAU,CAAC,YAAY,EAAE,CAAC;gBAC1B,UAAU,CAAC,aAAa,GAAG,UAAU,CAAC,YAAY,KAAK,CAAC,CAAC;gBACzD,UAAU,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,KAAK,YAAY,CAAC;gBAEnE,6BAA6B;gBAC7B,MAAM,OAAO,GAAG,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC;gBAC5C,MAAM,OAAO,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC,YAAY;gBACrD,IAAI,OAAO,IAAI,CAAC,IAAI,cAAc,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;oBACrD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,OAAQ,CAAC,EAAE,CAAC;wBACtE,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBACtC,CAAC;gBACH,CAAC;gBACD,IAAI,OAAO,GAAG,cAAc,CAAC,MAAM,IAAI,cAAc,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;oBACxE,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,OAAQ,CAAC,EAAE,CAAC;wBACtE,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAClC,CAAC;gBACH,CAAC;gBAED,yBAAyB;gBACzB,oBAAoB,CAClB,MAAM,CAAC,aAAa,IAAI,EAAE,EAC1B,EAAE,CAAC,OAAO,EACV,GAAG,EACH,eAAe,CAChB,CAAC;gBAEF,iDAAiD;gBACjD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;oBAClB,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;wBAC9B,MAAM,eAAe,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;wBAC5C,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,eAAe,EAAE,CAAC;4BACrD,UAAU,CAAC,WAAW,EAAE,CAAC;4BACzB,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;wBAChD,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,uDAAuD;YACvD,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,aAAa,IAAI,EAAE,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAChE,wDAAwD;YAC1D,CAAC;YAED,+BAA+B;YAC/B,yBAAyB,CACvB,MAAM,CAAC,kBAAkB,IAAI,EAAE,EAC/B,EAAE,EACF,GAAG,EACH,QAAQ,EACR,UAAU,CACX,CAAC;YAEF,0BAA0B;YAC1B,sBAAsB,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;YAE1C,+BAA+B;YAC/B,0DAA0D;YAC1D,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;gBACzB,iBAAiB,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;IACH,CAAC;IAED,4BAA4B;IAC5B,iBAAiB,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAElD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,SAAS,oBAAoB,CAC3B,WAA8B,EAC9B,GAA4B,EAC5B,GAAkB,EAClB,eAAqC;IAErC,KAAK,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC;QAC7B,MAAM,UAAU,GAAG,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QACrD,MAAM,QAAQ,GAAG,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAE3D,8BAA8B;QAC9B,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,QAAQ,EAAE,CAAC,cAAc,EAAE,CAAC;YAC1B,KAAK,OAAO;gBACV,MAAM;YACR,KAAK,WAAW;gBACd,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC;oBAClB,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC;oBACtE,MAAM,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;oBAClC,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;wBAChD,WAAW,GAAG,IAAI,CAAC;oBACrB,CAAC;oBACD,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,UAAU,EAAE,EAAE,MAAM,CAAC,CAAC;gBAChE,CAAC;gBACD,MAAM;YACR,KAAK,iBAAiB;gBACpB,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC;oBAClB,MAAM,YAAY,GAAG,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;oBACxD,MAAM,WAAW,GAAG,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;oBACvC,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,WAAW,EAAE,CAAC;wBAC/D,WAAW,GAAG,IAAI,CAAC;oBACrB,CAAC;gBACH,CAAC;gBACD,MAAM;YACR,KAAK,SAAS;gBACZ,mDAAmD;gBACnD,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC;oBAClB,IAAI,CAAC;wBACH,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,KAAK,EAAE,yBAAyB,EAAE,CAAC,UAAU,IAAI,CAAC,CAAC;wBAC3E,IAAI,EAAE,CAAC,GAAG,CAAC;4BAAE,WAAW,GAAG,IAAI,CAAC;oBAClC,CAAC;oBAAC,MAAM,CAAC;wBACP,8CAA8C;oBAChD,CAAC;gBACH,CAAC;gBACD,MAAM;QACV,CAAC;QAED,IAAI,WAAW,EAAE,CAAC;YAChB,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAClC,CAAC;QAED,2BAA2B;QAC3B,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,QAAQ,EAAE,CAAC,iBAAiB,EAAE,CAAC;YAC7B,KAAK,aAAa;gBAChB,cAAc,GAAG,IAAI,CAAC;gBACtB,MAAM;YACR,KAAK,WAAW;gBACd,IAAI,EAAE,CAAC,aAAa,EAAE,CAAC;oBACrB,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC;oBAC9E,MAAM,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;oBACrC,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;wBACvB,cAAc,GAAG,IAAI,CAAC;oBACxB,CAAC;oBACD,eAAe,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,aAAa,EAAE,EAAE,MAAM,CAAC,CAAC;gBACxE,CAAC;qBAAM,CAAC;oBACN,cAAc,GAAG,IAAI,CAAC;gBACxB,CAAC;gBACD,MAAM;YACR,KAAK,iBAAiB;gBACpB,IAAI,EAAE,CAAC,aAAa,EAAE,CAAC;oBACrB,MAAM,YAAY,GAAG,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;oBAC3D,MAAM,WAAW,GAAG,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;oBAC1C,IAAI,YAAY,KAAK,WAAW,EAAE,CAAC;wBACjC,cAAc,GAAG,IAAI,CAAC;oBACxB,CAAC;gBACH,CAAC;gBACD,MAAM;YACR,KAAK,SAAS;gBACZ,IAAI,EAAE,CAAC,aAAa,EAAE,CAAC;oBACrB,IAAI,CAAC;wBACH,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,KAAK,EAAE,yBAAyB,EAAE,CAAC,aAAa,IAAI,CAAC,CAAC;wBAC9E,IAAI,EAAE,CAAC,GAAG,CAAC;4BAAE,cAAc,GAAG,IAAI,CAAC;oBACrC,CAAC;oBAAC,MAAM,CAAC;wBACP,cAAc,GAAG,KAAK,CAAC;oBACzB,CAAC;gBACH,CAAC;gBACD,MAAM;QACV,CAAC;QAED,IAAI,CAAC,cAAc;YAAE,SAAS;QAE9B,+BAA+B;QAC/B,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QACnE,MAAM,MAAM,GAAG,qBAAqB,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QAC1E,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,qBAAqB,CAC5B,EAAqB,EACrB,OAAe,EACf,KAAa,EACb,GAAkB,EAClB,EAAmB;IAEnB,QAAQ,EAAE,EAAE,CAAC;QACX,KAAK,KAAK;YACR,OAAO,OAAO,GAAG,KAAK,CAAC;QAEzB,KAAK,OAAO;YACV,OAAO,OAAO,GAAG,CAAC,CAAC;QAErB,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,kDAAkD;YAClD,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,EAAE,SAAS,CAAC;YACnC,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,EAAE,SAAS,CAAC;YACnC,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACzD,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;YAC7D,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACvC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACvC,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,CAAC;QAED,KAAK,KAAK;YACR,OAAO,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,QAAQ,CAAC;gBAC9D,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC;gBACrD,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAE/B,KAAK,KAAK;YACR,OAAO,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,QAAQ,CAAC;gBAC9D,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC;gBACrD,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAE/B;YACE,OAAO,OAAO,GAAG,KAAK,CAAC;IAC3B,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,yBAAyB,CAChC,KAA8B,EAC9B,EAAgB,EAChB,GAAkB,EAClB,QAAiB,EACjB,UAAsB;IAEtB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAE/B,iDAAiD;IACjD,MAAM,KAAK,GAA4B;QACrC,YAAY,EAAE,UAAU,CAAC,YAAY;QACrC,WAAW,EAAE,UAAU,CAAC,WAAW;QACnC,UAAU,EAAE,UAAU,CAAC,UAAU;QACjC,aAAa,EAAE,UAAU,CAAC,aAAa;QACvC,YAAY,EAAE,UAAU,CAAC,YAAY;KACtC,CAAC;IAEF,wBAAwB;IACxB,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QACf,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,8BAA8B;IAC9B,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;QAC3C,mEAAmE;QACnE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;QACnB,CAAC;IACH,CAAC;IAED,0DAA0D;IAC1D,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEhE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;YAAE,SAAS;QAElD,IAAI,CAAC;YACH,MAAM,eAAe,GAAG,2BAA2B,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC3E,IAAI,eAAe,EAAE,CAAC;gBACpB,mDAAmD;gBACnD,MAAM,QAAQ,GAAG,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC5D,IAAI,QAAQ,EAAE,CAAC;oBACb,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC7E,CAAC;qBAAM,CAAC;oBACN,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;gBAChE,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,mDAAmD;QACrD,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,2BAA2B,CAClC,SAAiB,EACjB,KAA8B;IAE9B,uEAAuE;IACvE,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAEzC,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,IAAI,QAAQ,CACrB,GAAG,UAAU,EACb,gCAAgC,SAAS,IAAI,CAC9C,CAAC;QACF,OAAO,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,sBAAsB,CAC7B,EAAgB,EAChB,GAAkB,EAClB,QAAiB;IAEjB,KAAK,MAAM,OAAO,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACvC,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YAC9B,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACvC,SAAS;QACX,CAAC;QAED,0BAA0B;QAC1B,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;YAC9B,MAAM,KAAK,GAA4B,EAAE,CAAC;YAC1C,IAAI,EAAE,CAAC,OAAO;gBAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;YAEjD,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,2BAA2B,CAAC,OAAO,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;gBAC7E,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBACvC,SAAS;gBACX,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,4CAA4C;YAC9C,CAAC;QACH,CAAC;QAED,2DAA2D;QAC3D,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC7B,MAAM,EAAE,GAAG,OAAuB,CAAC;YACnC,MAAM,OAAO,GAAmB;gBAC9B,QAAQ;gBACR,UAAU,EAAE,EAAE,CAAC,OAAO;gBACtB,YAAY,EAAE,EAAE,CAAC,QAAQ;gBACzB,SAAS,EAAE,EAAE,CAAC,SAAS;gBACvB,UAAU,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU;aAClC,CAAC;YAEF,MAAM,QAAQ,GAAG,mBAAmB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YAClD,IAAI,QAAQ,KAAK,EAAE,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACnE,wEAAwE;gBACxE,0EAA0E;gBAC1E,oEAAoE;gBACpE,+CAA+C;YACjD,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,iBAAiB,CACxB,EAAgB,EAChB,IAAiB,EACjB,MAAoB,EACpB,IAAmB;IAEnB,oEAAoE;IACpE,0EAA0E;IAC1E,8DAA8D;IAC9D,EAAE;IACF,qEAAqE;IACrE,6EAA6E;IAC7E,6EAA6E;IAC7E,6CAA6C;AAC/C,CAAC;AAED;;;GAGG;AACH,SAAS,iBAAiB,CACxB,MAAoB,EACpB,QAAiB,EACjB,GAAkB,EAClB,OAAuB;IAEvB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,mEAAmE;YACnE,0EAA0E;YAC1E,MAAM,MAAM,GAAG,OAAO,CAAC,IAAc,CAAC;YACtC,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;gBAC3B,8DAA8D;gBAC9D,sEAAsE;gBACtE,MAAM,IAAI,GAAG,OAAO,CAAC,EAAE,CAAC;gBACxB,MAAM,aAAa,GAAG,QAAQ,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC;gBACtD,MAAM,eAAe,GAAG,QAAQ,CAAC,sBAAsB,IAAI,EAAE,CAAwC,CAAC;gBAEtG,IAAI,eAAe,IAAI,aAAa,EAAE,CAAC;oBACrC,MAAM,KAAK,GAAY,EAAE,IAAI,EAAE,aAA0C,EAAE,CAAC;oBAC5E,MAAM,SAAS,GAAG,YAAY,CAAC,eAAe,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;oBAChE,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;gBAC5C,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,uEAAuE;AAEvE;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAC1B,MAAoB,EACpB,GAAkB;IAElB,uDAAuD;IACvD,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC;IACxC,GAAG,CAAC,UAAU,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC;IAE3C,2DAA2D;IAC3D,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;QACnC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC5B,8CAA8C;YAC9C,EAAE,CAAC,OAAO,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC;QACzC,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,uEAAuE;AAEvE;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAC1B,MAAoB,EACpB,QAAiB,EACjB,OAAuB;IAEvB,oCAAoC;IACpC,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAE3C,0DAA0D;IAC1D,MAAM,cAAc,GAAY,EAAE,GAAG,QAAQ,EAAE,CAAC;IAChD,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;QAC5C,cAAc,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;IAChC,CAAC;IAED,qCAAqC;IACrC,YAAY,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAEnD,+BAA+B;IAC/B,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAE1B,iCAAiC;IACjC,MAAM,KAAK,GAAiB,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACrD,UAAU,EAAE,EAAE,CAAC,UAAU;QACzB,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,IAAI,EAAE,gBAAgB,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,CAAC;KACjE,CAAC,CAAC,CAAC;IAEJ,OAAO;QACL,KAAK;QACL,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACtC,CAAC;AACJ,CAAC;AAED,uEAAuE;AAEvE;;;GAGG;AACH,SAAS,gBAAgB,CACvB,IAAiB,EACjB,GAAkB,EAClB,MAAoB,EACpB,QAAiB,EACjB,OAAuB;IAEvB,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;IAClC,MAAM,MAAM,GAAG,OAAO,EAAE,SAAS,IAAI,IAAI,CAAC;IAC1C,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,KAAK,WAAW;QAClD,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;QACpC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACtC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACjD,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAEnD,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,gBAAgB,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QACrE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvB,CAAC;IAED,OAAO;QACL,eAAe,MAAM,gBAAgB;QACrC,oBAAoB;QACpB,SAAS,SAAS,KAAK;QACvB,UAAU,UAAU,KAAK;QACzB,eAAe,SAAS,KAAK;QAC7B,gBAAgB,UAAU,KAAK;QAC/B,wBAAwB;QACxB,kBAAkB;QAClB,IAAI;QACJ,GAAG,KAAK;QACR,QAAQ;KACT,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACb,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CACvB,EAAgB,EAChB,GAAkB,EAClB,MAAoB,EACpB,QAAiB,EACjB,MAAc;IAEd,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;IAClC,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe;QACrC,CAAC,CAAC,oBAAoB,EAAE,CAAC,IAAI,CAAC,eAAe,GAAG;QAChD,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,KAAK,MAAM,OAAO,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACvC,2BAA2B;QAC3B,IAAI,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAAE,SAAS;QAErD,0BAA0B;QAC1B,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK;YAAE,SAAS;QAExC,0BAA0B;QAC1B,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YACjD,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC;YACtC,MAAM,EAAE,GAAG,GAAG,CAAC,UAAU,CAAC;YAC1B,QAAQ,OAAO,CAAC,OAAO,EAAE,CAAC;gBACxB,KAAK,OAAO;oBAAE,IAAI,EAAE,KAAK,CAAC;wBAAE,SAAS;oBAAC,MAAM;gBAC5C,KAAK,MAAM;oBAAE,IAAI,EAAE,KAAK,EAAE;wBAAE,SAAS;oBAAC,MAAM;gBAC5C,KAAK,KAAK;oBAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC;wBAAE,SAAS;oBAAC,MAAM;gBAC9C,KAAK,MAAM;oBAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC;wBAAE,SAAS;oBAAC,MAAM;YACjD,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,mBAAmB,CAAC,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QACjF,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO;QACL,eAAe,MAAM,SAAS,MAAM,SAAS,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI;QAC7D,iBAAiB,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI;QAC/B,SAAS;QACT,oBAAoB;QACpB,OAAO,EAAE,CAAC,CAAC,KAAK;QAChB,UAAU,UAAU,KAAK;QACzB,GAAG,OAAO,EAAE;QACZ,IAAI;QACJ,GAAG,QAAQ;QACX,QAAQ;KACT,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACb,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAC1B,OAAsB,EACtB,EAAgB,EAChB,GAAkB,EAClB,MAAoB,EACpB,QAAiB,EACjB,MAAc;IAEd,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;IAElC,wBAAwB;IACxB,MAAM,OAAO,GAAmB;QAC9B,QAAQ;QACR,UAAU,EAAE,EAAE,CAAC,OAAO;QACtB,YAAY,EAAE,EAAE,CAAC,QAAQ;QACzB,SAAS,EAAE,EAAE,CAAC,SAAS;QACvB,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO;QAC3B,UAAU,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU;QACjC,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,UAAU,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU;QACjC,UAAU,EAAE,uBAAuB,CAAC,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC;KACtD,CAAC;IAEF,wBAAwB;IACxB,IAAI,YAAY,GAAG,yBAAyB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IAExE,qBAAqB;IACrB,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;IACtC,MAAM,gBAAgB,GAAG,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;IACtE,MAAM,WAAW,GAAG,EAAE,GAAG,MAAM,CAAC,YAAY,EAAE,GAAG,SAAS,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAElF,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAChC,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAChC,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACpC,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAErC,MAAM,QAAQ,GAAa;QACzB,mBAAmB;QACnB,QAAQ,CAAC,IAAI;QACb,OAAO,CAAC,IAAI;QACZ,SAAS,CAAC,IAAI;QACd,UAAU,CAAC,IAAI;QACf,iBAAiB;KAClB,CAAC;IAEF,sBAAsB;IACtB,IAAI,WAAW,CAAC,UAAU;QAAE,QAAQ,CAAC,IAAI,CAAC,eAAe,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC;IACnF,IAAI,WAAW,CAAC,QAAQ;QAAE,QAAQ,CAAC,IAAI,CAAC,aAAa,WAAW,CAAC,QAAQ,IAAI,CAAC,CAAC;IAC/E,IAAI,WAAW,CAAC,UAAU;QAAE,QAAQ,CAAC,IAAI,CAAC,eAAe,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC;IACnF,IAAI,WAAW,CAAC,SAAS;QAAE,QAAQ,CAAC,IAAI,CAAC,cAAc,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC;IAChF,IAAI,WAAW,CAAC,cAAc;QAAE,QAAQ,CAAC,IAAI,CAAC,mBAAmB,WAAW,CAAC,cAAc,EAAE,CAAC,CAAC;IAC/F,IAAI,WAAW,CAAC,SAAS;QAAE,QAAQ,CAAC,IAAI,CAAC,cAAc,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC;IAChF,IAAI,WAAW,CAAC,KAAK;QAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC;IACnE,IAAI,WAAW,CAAC,eAAe;QAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,WAAW,CAAC,eAAe,EAAE,CAAC,CAAC;IAClG,IAAI,WAAW,CAAC,SAAS;QAAE,QAAQ,CAAC,IAAI,CAAC,cAAc,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC;IAChF,IAAI,WAAW,CAAC,WAAW;QAAE,QAAQ,CAAC,IAAI,CAAC,gBAAgB,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;IACtF,IAAI,WAAW,CAAC,YAAY;QAAE,QAAQ,CAAC,IAAI,CAAC,iBAAiB,WAAW,CAAC,YAAY,EAAE,CAAC,CAAC;IACzF,IAAI,WAAW,CAAC,UAAU;QAAE,QAAQ,CAAC,IAAI,CAAC,eAAe,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC;IACnF,IAAI,WAAW,CAAC,YAAY;QAAE,QAAQ,CAAC,IAAI,CAAC,iBAAiB,WAAW,CAAC,YAAY,IAAI,CAAC,CAAC;IAC3F,IAAI,WAAW,CAAC,OAAO,IAAI,IAAI;QAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,OAAO,WAAW,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IACxJ,IAAI,WAAW,CAAC,OAAO,IAAI,IAAI;QAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IACjF,IAAI,WAAW,CAAC,UAAU;QAAE,QAAQ,CAAC,IAAI,CAAC,eAAe,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC;IACnF,IAAI,WAAW,CAAC,QAAQ;QAAE,QAAQ,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAChE,IAAI,WAAW,CAAC,aAAa,EAAE,CAAC;QAC9B,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC9B,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;QAC1E,QAAQ,CAAC,IAAI,CAAC,eAAe,KAAK,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEpC,+BAA+B;IAC/B,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAClC,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAClC,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,EAAE,KAAK,IAAI,MAAM,CAAC;YACjD,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,EAAE,KAAK,IAAI,CAAC,CAAC;YAC5C,OAAO,eAAe,MAAM,mBAAmB,OAAO,CAAC,EAAE,+FAA+F,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,EAAE,aAAa,KAAK,mBAAmB,KAAK,WAAW,CAAC;QACjP,CAAC;QAED,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,aAAa,CAAC;YAC3C,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,EAAE,KAAK,IAAI,MAAM,CAAC;YACvD,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,EAAE,KAAK,IAAI,CAAC,CAAC;YAClD,OAAO,eAAe,MAAM,mBAAmB,OAAO,CAAC,EAAE,YAAY,QAAQ,WAAW,WAAW,YAAY,WAAW,eAAe,IAAI,WAAW,CAAC;QAC3J,CAAC;QAED,KAAK,OAAO;YACV,OAAO,eAAe,MAAM,oBAAoB,OAAO,CAAC,EAAE,YAAY,QAAQ,eAAe,OAAO,CAAC,GAAG,IAAI,SAAS,WAAW,UAAU,CAAC,YAAY,CAAC,YAAY,CAAC;QAEvK,KAAK,SAAS;YACZ,OAAO,eAAe,MAAM,sBAAsB,OAAO,CAAC,EAAE,gBAAgB,OAAO,CAAC,WAAW,YAAY,QAAQ,KAAK,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC;QAE3J;YACE,OAAO,eAAe,MAAM,YAAY,MAAM,IAAI,OAAO,CAAC,IAAI,cAAc,OAAO,CAAC,EAAE,YAAY,QAAQ,KAAK,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC;IACpJ,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,yBAAyB,CAChC,OAAsB,EACtB,OAAuB,EACvB,GAAkB,EAClB,EAAgB;IAEhB,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC7B,MAAM,EAAE,GAAG,OAAuB,CAAC;QAEnC,iDAAiD;QACjD,IAAI,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YAC/C,MAAM,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACvE,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBACxB,MAAM,GAAG,GAAG,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC7C,OAAO,WAAW,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QAED,mCAAmC;QACnC,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC;YAClB,MAAM,IAAI,GAAG,EAAE,CAAC,UAAU,CAAC;YAE3B,sBAAsB;YACtB,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;gBAC5D,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;oBAC/B,MAAM,GAAG,GAAG,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBACzD,OAAO,WAAW,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;gBACrC,CAAC;YACH,CAAC;YAED,kBAAkB;YAClB,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;gBACxD,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;oBAC/B,MAAM,GAAG,GAAG,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBACrD,OAAO,WAAW,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;gBACrC,CAAC;YACH,CAAC;YAED,eAAe;YACf,IAAI,IAAI,KAAK,cAAc,IAAI,IAAI,KAAK,eAAe,EAAE,CAAC;gBACxD,OAAO,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YAC7C,CAAC;YAED,cAAc;YACd,IAAI,IAAI,KAAK,aAAa,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;gBACtD,OAAO,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;QAED,gDAAgD;QAChD,IAAI,EAAE,CAAC,SAAS,EAAE,CAAC;YACjB,MAAM,SAAS,GAAG,2BAA2B,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;YAC3D,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,OAAO,WAAW,CAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;IACH,CAAC;IAED,mCAAmC;IACnC,OAAO,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC/C,CAAC;AAED;;;GAGG;AACH,SAAS,2BAA2B,CAClC,EAAgB,EAChB,EAAgB,EAChB,GAAkB;IAElB,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,SAAU,CAAC,CAAC;IAEnD,oDAAoD;IACpD,IAAI,EAAE,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QACpD,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC7D,MAAM,SAAS,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACnD,IAAI,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,OAAO,SAAS,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;QAChC,CAAC;IACH,CAAC;IAED,yDAAyD;IACzD,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC;QACpB,4DAA4D;QAC5D,IAAI,EAAE,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,YAAY,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC;YAC1D,MAAM,SAAS,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACnD,IAAI,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3B,OAAO,SAAS,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;YAChC,CAAC;QACH,CAAC;IACH,CAAC;IAED,4BAA4B;IAC5B,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QAChC,OAAO,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;IACtC,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,SAAS,uBAAuB,CAC9B,OAAsB,EACtB,EAAgB,EAChB,GAAkB;IAElB,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,SAAS,CAAC;IAE/C,MAAM,EAAE,GAAG,OAAuB,CAAC;IACnC,IAAI,CAAC,EAAE,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IAEpC,mCAAmC;IACnC,IAAI,EAAE,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QACpD,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC7D,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC1C,CAAC;IAED,+BAA+B;IAC/B,OAAO,GAAG,CAAC,WAAW,CAAC;AACzB,CAAC;AAED,2BAA2B;AAC3B,SAAS,UAAU,CAAC,GAAW;IAC7B,OAAO,GAAG;SACP,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC5B,CAAC;AAED,uEAAuE;AAEvE;;;;;;;;;GASG;AACH,MAAM,UAAU,YAAY,CAC1B,GAAkB,EAClB,KAAa,EACb,EAA6B,EAC7B,UAAmB,EACnB,QAAiB;IAEjB,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAErC,IAAI,UAAU,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,YAAY,GAAG,GAAG,UAAU,KAAK,QAAQ,EAAE,CAAC;QAClD,MAAM,SAAS,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACnD,IAAI,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,OAAO,SAAS,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;QAChC,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC1C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,GAAkB,EAAE,cAAsB;IACxE,OAAO,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AACpD,CAAC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
export interface RunningTotalDef {
|
|
2
|
+
id: string;
|
|
3
|
+
/** Field to aggregate */
|
|
4
|
+
field: string;
|
|
5
|
+
/** Data source this running total operates on */
|
|
6
|
+
dataSource: string;
|
|
7
|
+
/** Aggregate function to apply */
|
|
8
|
+
summarize: 'sum' | 'avg' | 'count' | 'distinctCount' | 'min' | 'max' | 'median' | 'stdDev' | 'variance';
|
|
9
|
+
/** When to evaluate (add to accumulator) */
|
|
10
|
+
evaluateOn: 'each-record' | 'on-field-change' | 'on-group-change' | 'formula';
|
|
11
|
+
/** Field to watch for changes when evaluateOn is 'on-field-change' or 'on-group-change' */
|
|
12
|
+
evaluateField?: string;
|
|
13
|
+
/** Expression returning boolean — evaluate when true (evaluateOn = 'formula') */
|
|
14
|
+
evaluateFormula?: string;
|
|
15
|
+
/** When to reset the accumulator */
|
|
16
|
+
resetOn: 'never' | 'on-field-change' | 'on-group-change' | 'formula';
|
|
17
|
+
/** Field to watch for reset trigger */
|
|
18
|
+
resetField?: string;
|
|
19
|
+
/** Expression returning boolean — reset when true (resetOn = 'formula') */
|
|
20
|
+
resetFormula?: string;
|
|
21
|
+
/** Only include records where this expression evaluates to truthy */
|
|
22
|
+
filterFormula?: string;
|
|
23
|
+
}
|
|
24
|
+
export declare class RunningTotalEngine {
|
|
25
|
+
private accumulators;
|
|
26
|
+
private previousValues;
|
|
27
|
+
/** Create a fresh accumulator */
|
|
28
|
+
private createAccumulator;
|
|
29
|
+
/** Ensure an accumulator exists for a given running-total ID */
|
|
30
|
+
private ensureAccumulator;
|
|
31
|
+
/**
|
|
32
|
+
* Check and apply reset conditions for all defs.
|
|
33
|
+
* Must be called BEFORE processRecord for the same record so that
|
|
34
|
+
* accumulators are reset before the new value is accumulated.
|
|
35
|
+
*/
|
|
36
|
+
checkResets(record: Record<string, unknown>, previousRecord: Record<string, unknown> | null, defs: RunningTotalDef[]): void;
|
|
37
|
+
/**
|
|
38
|
+
* Process a single record against all running total definitions.
|
|
39
|
+
* Returns a map of running-total ID -> current computed value.
|
|
40
|
+
*/
|
|
41
|
+
processRecord(record: Record<string, unknown>, index: number, defs: RunningTotalDef[]): Map<string, number>;
|
|
42
|
+
/** Get the current computed value for a single running total */
|
|
43
|
+
getValue(id: string): number;
|
|
44
|
+
/** Get all current running total values */
|
|
45
|
+
getAllValues(): Map<string, number>;
|
|
46
|
+
/** Reset all accumulators and tracking state */
|
|
47
|
+
resetAll(): void;
|
|
48
|
+
/**
|
|
49
|
+
* Cache of defs for getValue lookups.
|
|
50
|
+
* Set automatically when processRecord is called.
|
|
51
|
+
*/
|
|
52
|
+
private defsCache;
|
|
53
|
+
/**
|
|
54
|
+
* Process record with defs caching for getValue.
|
|
55
|
+
* Overload that also stores defs for later getValue calls.
|
|
56
|
+
*/
|
|
57
|
+
processRecordWithDefs(record: Record<string, unknown>, index: number, defs: RunningTotalDef[], previousRecord: Record<string, unknown> | null): Map<string, number>;
|
|
58
|
+
private findDefById;
|
|
59
|
+
/** Determine if a record should be evaluated for this running total */
|
|
60
|
+
private shouldEvaluate;
|
|
61
|
+
/** Check if a record passes the filter formula */
|
|
62
|
+
private passesFilter;
|
|
63
|
+
/** Build a minimal BindingContext for expression evaluation */
|
|
64
|
+
private buildRecordContext;
|
|
65
|
+
/** Compute the final value from an accumulator for a given aggregate type */
|
|
66
|
+
private computeFromAccumulator;
|
|
67
|
+
/** Compute median from a list of values */
|
|
68
|
+
private computeMedian;
|
|
69
|
+
/** Compute population variance */
|
|
70
|
+
private computeVariance;
|
|
71
|
+
/** Compute population standard deviation */
|
|
72
|
+
private computeStdDev;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=running-totals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"running-totals.d.ts","sourceRoot":"","sources":["../../src/engine/running-totals.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,UAAU,EAAE,MAAM,CAAC;IACnB,kCAAkC;IAClC,SAAS,EACL,KAAK,GACL,KAAK,GACL,OAAO,GACP,eAAe,GACf,KAAK,GACL,KAAK,GACL,QAAQ,GACR,QAAQ,GACR,UAAU,CAAC;IACf,4CAA4C;IAC5C,UAAU,EAAE,aAAa,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,SAAS,CAAC;IAC9E,2FAA2F;IAC3F,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iFAAiF;IACjF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oCAAoC;IACpC,OAAO,EAAE,OAAO,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,SAAS,CAAC;IACrE,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qEAAqE;IACrE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAoBD,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,cAAc,CAA8B;IAEpD,iCAAiC;IACjC,OAAO,CAAC,iBAAiB;IAWzB,gEAAgE;IAChE,OAAO,CAAC,iBAAiB;IASzB;;;;OAIG;IACH,WAAW,CACT,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EAC9C,IAAI,EAAE,eAAe,EAAE,GACtB,IAAI;IAuCP;;;OAGG;IACH,aAAa,CACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,eAAe,EAAE,GACtB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAmCtB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;IAS5B,2CAA2C;IAC3C,YAAY,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAQnC,gDAAgD;IAChD,QAAQ,IAAI,IAAI;IAQhB;;;OAGG;IACH,OAAO,CAAC,SAAS,CAAyB;IAE1C;;;OAGG;IACH,qBAAqB,CACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,eAAe,EAAE,EACvB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAC7C,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAMtB,OAAO,CAAC,WAAW;IAInB,uEAAuE;IACvE,OAAO,CAAC,cAAc;IAyCtB,kDAAkD;IAClD,OAAO,CAAC,YAAY;IAWpB,+DAA+D;IAC/D,OAAO,CAAC,kBAAkB;IAW1B,6EAA6E;IAC7E,OAAO,CAAC,sBAAsB;IAuC9B,2CAA2C;IAC3C,OAAO,CAAC,aAAa;IAYrB,kCAAkC;IAClC,OAAO,CAAC,eAAe;IAQvB,4CAA4C;IAC5C,OAAO,CAAC,aAAa;CAGtB"}
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
// @zentto/report-core — Running totals engine
|
|
2
|
+
// Crystal Reports-style running totals with accumulator state
|
|
3
|
+
import { evaluateExpression } from './expression.js';
|
|
4
|
+
// ─── Engine ─────────────────────────────────────────────────────────
|
|
5
|
+
export class RunningTotalEngine {
|
|
6
|
+
accumulators = new Map();
|
|
7
|
+
previousValues = new Map();
|
|
8
|
+
/** Create a fresh accumulator */
|
|
9
|
+
createAccumulator() {
|
|
10
|
+
return {
|
|
11
|
+
values: [],
|
|
12
|
+
distinctSet: new Set(),
|
|
13
|
+
sum: 0,
|
|
14
|
+
count: 0,
|
|
15
|
+
min: Infinity,
|
|
16
|
+
max: -Infinity,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
/** Ensure an accumulator exists for a given running-total ID */
|
|
20
|
+
ensureAccumulator(id) {
|
|
21
|
+
let acc = this.accumulators.get(id);
|
|
22
|
+
if (!acc) {
|
|
23
|
+
acc = this.createAccumulator();
|
|
24
|
+
this.accumulators.set(id, acc);
|
|
25
|
+
}
|
|
26
|
+
return acc;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Check and apply reset conditions for all defs.
|
|
30
|
+
* Must be called BEFORE processRecord for the same record so that
|
|
31
|
+
* accumulators are reset before the new value is accumulated.
|
|
32
|
+
*/
|
|
33
|
+
checkResets(record, previousRecord, defs) {
|
|
34
|
+
for (const def of defs) {
|
|
35
|
+
if (def.resetOn === 'never')
|
|
36
|
+
continue;
|
|
37
|
+
let shouldReset = false;
|
|
38
|
+
switch (def.resetOn) {
|
|
39
|
+
case 'on-field-change':
|
|
40
|
+
case 'on-group-change': {
|
|
41
|
+
const watchField = def.resetField;
|
|
42
|
+
if (!watchField)
|
|
43
|
+
break;
|
|
44
|
+
if (previousRecord === null) {
|
|
45
|
+
// First record — initialize tracking, no reset
|
|
46
|
+
this.previousValues.set(`reset:${def.id}`, record[watchField]);
|
|
47
|
+
break;
|
|
48
|
+
}
|
|
49
|
+
const prevVal = this.previousValues.get(`reset:${def.id}`);
|
|
50
|
+
const curVal = record[watchField];
|
|
51
|
+
if (prevVal !== curVal) {
|
|
52
|
+
shouldReset = true;
|
|
53
|
+
this.previousValues.set(`reset:${def.id}`, curVal);
|
|
54
|
+
}
|
|
55
|
+
break;
|
|
56
|
+
}
|
|
57
|
+
case 'formula': {
|
|
58
|
+
if (!def.resetFormula)
|
|
59
|
+
break;
|
|
60
|
+
const ctx = this.buildRecordContext(record, def);
|
|
61
|
+
const result = evaluateExpression(`=${def.resetFormula}`, ctx);
|
|
62
|
+
shouldReset = !!result && result !== 'false' && result !== 0;
|
|
63
|
+
break;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
if (shouldReset) {
|
|
67
|
+
this.accumulators.set(def.id, this.createAccumulator());
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Process a single record against all running total definitions.
|
|
73
|
+
* Returns a map of running-total ID -> current computed value.
|
|
74
|
+
*/
|
|
75
|
+
processRecord(record, index, defs) {
|
|
76
|
+
for (const def of defs) {
|
|
77
|
+
if (!this.shouldEvaluate(def, record, index))
|
|
78
|
+
continue;
|
|
79
|
+
if (!this.passesFilter(def, record))
|
|
80
|
+
continue;
|
|
81
|
+
const acc = this.ensureAccumulator(def.id);
|
|
82
|
+
const rawValue = record[def.field];
|
|
83
|
+
const numValue = typeof rawValue === 'number' ? rawValue : Number(rawValue);
|
|
84
|
+
// Update accumulator
|
|
85
|
+
acc.count++;
|
|
86
|
+
if (!isNaN(numValue)) {
|
|
87
|
+
acc.values.push(numValue);
|
|
88
|
+
acc.sum += numValue;
|
|
89
|
+
if (numValue < acc.min)
|
|
90
|
+
acc.min = numValue;
|
|
91
|
+
if (numValue > acc.max)
|
|
92
|
+
acc.max = numValue;
|
|
93
|
+
}
|
|
94
|
+
// Track distinct values (use raw value for distinct, not numeric)
|
|
95
|
+
acc.distinctSet.add(rawValue);
|
|
96
|
+
// Track previous value for field-change evaluation
|
|
97
|
+
if (def.evaluateOn === 'on-field-change' ||
|
|
98
|
+
def.evaluateOn === 'on-group-change') {
|
|
99
|
+
const watchField = def.evaluateField ?? def.field;
|
|
100
|
+
this.previousValues.set(`eval:${def.id}`, record[watchField]);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return this.getAllValues();
|
|
104
|
+
}
|
|
105
|
+
/** Get the current computed value for a single running total */
|
|
106
|
+
getValue(id) {
|
|
107
|
+
const acc = this.accumulators.get(id);
|
|
108
|
+
if (!acc || acc.count === 0)
|
|
109
|
+
return 0;
|
|
110
|
+
const def = this.findDefById(id);
|
|
111
|
+
if (!def)
|
|
112
|
+
return this.computeFromAccumulator(acc, 'sum');
|
|
113
|
+
return this.computeFromAccumulator(acc, def.summarize);
|
|
114
|
+
}
|
|
115
|
+
/** Get all current running total values */
|
|
116
|
+
getAllValues() {
|
|
117
|
+
const result = new Map();
|
|
118
|
+
for (const [id] of this.accumulators) {
|
|
119
|
+
result.set(id, this.getValue(id));
|
|
120
|
+
}
|
|
121
|
+
return result;
|
|
122
|
+
}
|
|
123
|
+
/** Reset all accumulators and tracking state */
|
|
124
|
+
resetAll() {
|
|
125
|
+
this.accumulators.clear();
|
|
126
|
+
this.previousValues.clear();
|
|
127
|
+
this.defsCache = [];
|
|
128
|
+
}
|
|
129
|
+
// ─── Internal helpers ───────────────────────────────────────────
|
|
130
|
+
/**
|
|
131
|
+
* Cache of defs for getValue lookups.
|
|
132
|
+
* Set automatically when processRecord is called.
|
|
133
|
+
*/
|
|
134
|
+
defsCache = [];
|
|
135
|
+
/**
|
|
136
|
+
* Process record with defs caching for getValue.
|
|
137
|
+
* Overload that also stores defs for later getValue calls.
|
|
138
|
+
*/
|
|
139
|
+
processRecordWithDefs(record, index, defs, previousRecord) {
|
|
140
|
+
this.defsCache = defs;
|
|
141
|
+
this.checkResets(record, previousRecord, defs);
|
|
142
|
+
return this.processRecord(record, index, defs);
|
|
143
|
+
}
|
|
144
|
+
findDefById(id) {
|
|
145
|
+
return this.defsCache.find(d => d.id === id);
|
|
146
|
+
}
|
|
147
|
+
/** Determine if a record should be evaluated for this running total */
|
|
148
|
+
shouldEvaluate(def, record, _index) {
|
|
149
|
+
switch (def.evaluateOn) {
|
|
150
|
+
case 'each-record':
|
|
151
|
+
return true;
|
|
152
|
+
case 'on-field-change':
|
|
153
|
+
case 'on-group-change': {
|
|
154
|
+
const watchField = def.evaluateField ?? def.field;
|
|
155
|
+
const prevKey = `eval:${def.id}`;
|
|
156
|
+
const prevVal = this.previousValues.get(prevKey);
|
|
157
|
+
if (prevVal === undefined) {
|
|
158
|
+
// First time seeing this running total — always evaluate
|
|
159
|
+
this.previousValues.set(prevKey, record[watchField]);
|
|
160
|
+
return true;
|
|
161
|
+
}
|
|
162
|
+
const curVal = record[watchField];
|
|
163
|
+
if (prevVal !== curVal) {
|
|
164
|
+
// Value changed — evaluate
|
|
165
|
+
return true;
|
|
166
|
+
}
|
|
167
|
+
return false;
|
|
168
|
+
}
|
|
169
|
+
case 'formula': {
|
|
170
|
+
if (!def.evaluateFormula)
|
|
171
|
+
return true;
|
|
172
|
+
const ctx = this.buildRecordContext(record, def);
|
|
173
|
+
const result = evaluateExpression(`=${def.evaluateFormula}`, ctx);
|
|
174
|
+
return !!result && result !== 'false' && result !== 0;
|
|
175
|
+
}
|
|
176
|
+
default:
|
|
177
|
+
return true;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
/** Check if a record passes the filter formula */
|
|
181
|
+
passesFilter(def, record) {
|
|
182
|
+
if (!def.filterFormula)
|
|
183
|
+
return true;
|
|
184
|
+
const ctx = this.buildRecordContext(record, def);
|
|
185
|
+
const result = evaluateExpression(`=${def.filterFormula}`, ctx);
|
|
186
|
+
return !!result && result !== 'false' && result !== 0;
|
|
187
|
+
}
|
|
188
|
+
/** Build a minimal BindingContext for expression evaluation */
|
|
189
|
+
buildRecordContext(record, def) {
|
|
190
|
+
return {
|
|
191
|
+
dataSets: { [def.dataSource]: [record] },
|
|
192
|
+
currentRow: record,
|
|
193
|
+
currentIndex: 0,
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
/** Compute the final value from an accumulator for a given aggregate type */
|
|
197
|
+
computeFromAccumulator(acc, summarize) {
|
|
198
|
+
if (acc.count === 0)
|
|
199
|
+
return 0;
|
|
200
|
+
switch (summarize) {
|
|
201
|
+
case 'sum':
|
|
202
|
+
return acc.sum;
|
|
203
|
+
case 'avg':
|
|
204
|
+
return acc.values.length > 0 ? acc.sum / acc.values.length : 0;
|
|
205
|
+
case 'count':
|
|
206
|
+
return acc.count;
|
|
207
|
+
case 'distinctCount':
|
|
208
|
+
return acc.distinctSet.size;
|
|
209
|
+
case 'min':
|
|
210
|
+
return acc.min === Infinity ? 0 : acc.min;
|
|
211
|
+
case 'max':
|
|
212
|
+
return acc.max === -Infinity ? 0 : acc.max;
|
|
213
|
+
case 'median':
|
|
214
|
+
return this.computeMedian(acc.values);
|
|
215
|
+
case 'stdDev':
|
|
216
|
+
return this.computeStdDev(acc.values);
|
|
217
|
+
case 'variance':
|
|
218
|
+
return this.computeVariance(acc.values);
|
|
219
|
+
default:
|
|
220
|
+
return 0;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
/** Compute median from a list of values */
|
|
224
|
+
computeMedian(values) {
|
|
225
|
+
if (values.length === 0)
|
|
226
|
+
return 0;
|
|
227
|
+
const sorted = [...values].sort((a, b) => a - b);
|
|
228
|
+
const mid = Math.floor(sorted.length / 2);
|
|
229
|
+
if (sorted.length % 2 === 0) {
|
|
230
|
+
return (sorted[mid - 1] + sorted[mid]) / 2;
|
|
231
|
+
}
|
|
232
|
+
return sorted[mid];
|
|
233
|
+
}
|
|
234
|
+
/** Compute population variance */
|
|
235
|
+
computeVariance(values) {
|
|
236
|
+
if (values.length === 0)
|
|
237
|
+
return 0;
|
|
238
|
+
const mean = values.reduce((a, b) => a + b, 0) / values.length;
|
|
239
|
+
const squaredDiffs = values.map(v => (v - mean) ** 2);
|
|
240
|
+
return squaredDiffs.reduce((a, b) => a + b, 0) / values.length;
|
|
241
|
+
}
|
|
242
|
+
/** Compute population standard deviation */
|
|
243
|
+
computeStdDev(values) {
|
|
244
|
+
return Math.sqrt(this.computeVariance(values));
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
//# sourceMappingURL=running-totals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"running-totals.js","sourceRoot":"","sources":["../../src/engine/running-totals.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { ReportLayout, DataSet, BaseElement } from '../types.js';
|
|
2
|
+
import type { BindingContext } from './data-binding.js';
|
|
3
|
+
export interface SubreportDef {
|
|
4
|
+
id: string;
|
|
5
|
+
type: 'linked' | 'unlinked' | 'on-demand';
|
|
6
|
+
/** The subreport layout (inline or reference) */
|
|
7
|
+
layout: ReportLayout;
|
|
8
|
+
/** For linked subreports: parameter mappings from parent to child */
|
|
9
|
+
parameterLinks?: {
|
|
10
|
+
parentField: string;
|
|
11
|
+
childParameter: string;
|
|
12
|
+
}[];
|
|
13
|
+
/** Data source for the subreport (can be different from parent) */
|
|
14
|
+
dataSource?: string;
|
|
15
|
+
/** Filter expression applied to subreport data */
|
|
16
|
+
filterExpression?: string;
|
|
17
|
+
}
|
|
18
|
+
export interface SubreportElement extends BaseElement {
|
|
19
|
+
type: 'subreport';
|
|
20
|
+
subreportId: string;
|
|
21
|
+
}
|
|
22
|
+
export interface SubreportRegistry {
|
|
23
|
+
subreports: SubreportDef[];
|
|
24
|
+
/** Shared variables between parent and subreport */
|
|
25
|
+
sharedVariables: Map<string, unknown>;
|
|
26
|
+
}
|
|
27
|
+
/** Set a shared variable (accessible from parent and all subreports) */
|
|
28
|
+
export declare function setSharedVariable(name: string, value: unknown): void;
|
|
29
|
+
/** Get a shared variable */
|
|
30
|
+
export declare function getSharedVariable(name: string): unknown;
|
|
31
|
+
/** Clear all shared variables (call before a new top-level render) */
|
|
32
|
+
export declare function clearSharedVariables(): void;
|
|
33
|
+
/** Get a snapshot of all shared variables */
|
|
34
|
+
export declare function getSharedVariables(): Map<string, unknown>;
|
|
35
|
+
/**
|
|
36
|
+
* Render a subreport within the context of a parent report.
|
|
37
|
+
* Handles all three types: linked, unlinked, on-demand.
|
|
38
|
+
*
|
|
39
|
+
* @param subreportDef The subreport definition
|
|
40
|
+
* @param parentContext The binding context of the parent report at the point of insertion
|
|
41
|
+
* @param parentDataSets The full data sets from the parent report
|
|
42
|
+
* @param depth Current recursion depth (internal, for guard)
|
|
43
|
+
* @returns Rendered HTML string
|
|
44
|
+
*/
|
|
45
|
+
export declare function renderSubreport(subreportDef: SubreportDef, parentContext: BindingContext, parentDataSets: DataSet, depth?: number): string;
|
|
46
|
+
/**
|
|
47
|
+
* Create a subreport registry to manage multiple subreports.
|
|
48
|
+
*/
|
|
49
|
+
export declare function createSubreportRegistry(subreports: SubreportDef[]): SubreportRegistry;
|
|
50
|
+
/**
|
|
51
|
+
* Find a subreport definition by ID in a registry or array.
|
|
52
|
+
*/
|
|
53
|
+
export declare function findSubreport(subreports: SubreportDef[], id: string): SubreportDef | undefined;
|
|
54
|
+
/**
|
|
55
|
+
* Render a subreport element found inside a band.
|
|
56
|
+
* This is the entry point called by the HTML renderer when it encounters a subreport element.
|
|
57
|
+
*/
|
|
58
|
+
export declare function renderSubreportElement(element: SubreportElement, subreports: SubreportDef[], parentContext: BindingContext, parentDataSets: DataSet, depth?: number): string;
|
|
59
|
+
//# sourceMappingURL=subreport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subreport.d.ts","sourceRoot":"","sources":["../../src/engine/subreport.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,YAAY,EACZ,OAAO,EAGP,WAAW,EACZ,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAKxD,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,WAAW,CAAC;IAC1C,iDAAiD;IACjD,MAAM,EAAE,YAAY,CAAC;IACrB,qEAAqE;IACrE,cAAc,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACnE,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAiB,SAAQ,WAAW;IACnD,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,oDAAoD;IACpD,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAOD,wEAAwE;AACxE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAEpE;AAED,4BAA4B;AAC5B,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,sEAAsE;AACtE,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C;AAED,6CAA6C;AAC7C,wBAAgB,kBAAkB,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzD;AA+OD;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,cAAc,EAC7B,cAAc,EAAE,OAAO,EACvB,KAAK,GAAE,MAAU,GAChB,MAAM,CAgCR;AA8BD;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,YAAY,EAAE,GACzB,iBAAiB,CAKnB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,YAAY,EAAE,EAC1B,EAAE,EAAE,MAAM,GACT,YAAY,GAAG,SAAS,CAE1B;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,gBAAgB,EACzB,UAAU,EAAE,YAAY,EAAE,EAC1B,aAAa,EAAE,cAAc,EAC7B,cAAc,EAAE,OAAO,EACvB,KAAK,GAAE,MAAU,GAChB,MAAM,CAOR"}
|