@fluentui/react-charting 5.23.87 → 5.23.88

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.
Files changed (25) hide show
  1. package/CHANGELOG.json +40 -1
  2. package/CHANGELOG.md +15 -2
  3. package/dist/react-charting.d.ts +6 -3
  4. package/dist/react-charting.js +1 -1
  5. package/dist/react-charting.min.js +1 -1
  6. package/etc/react-charting.api.md +1 -1
  7. package/lib/components/DeclarativeChart/DeclarativeChart.d.ts +6 -3
  8. package/lib/components/DeclarativeChart/DeclarativeChart.js +9 -8
  9. package/lib/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
  10. package/lib/components/DeclarativeChart/PlotlySchemaAdapter.d.ts +7 -5
  11. package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js +63 -42
  12. package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  13. package/lib-amd/components/DeclarativeChart/DeclarativeChart.d.ts +6 -3
  14. package/lib-amd/components/DeclarativeChart/DeclarativeChart.js +9 -8
  15. package/lib-amd/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
  16. package/lib-amd/components/DeclarativeChart/PlotlySchemaAdapter.d.ts +7 -5
  17. package/lib-amd/components/DeclarativeChart/PlotlySchemaAdapter.js +66 -43
  18. package/lib-amd/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  19. package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.d.ts +6 -3
  20. package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js +9 -8
  21. package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
  22. package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.d.ts +7 -5
  23. package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js +66 -43
  24. package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  25. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"file":"PlotlySchemaAdapter.js","sourceRoot":"../src/","sources":["components/DeclarativeChart/PlotlySchemaAdapter.ts"],"names":[],"mappings":";;;;IAsEA,IAAM,WAAW,GAAG;QAClB,GAAG,EAAE;YACH,eAAe,EAAE,MAAM;YACvB,aAAa,EAAE,OAAO;YACtB,WAAW,EAAE,GAAG;YAChB,eAAe,EAAE,GAAG;SACrB;QACD,IAAI,EAAE;YACJ,eAAe,EAAE,MAAM;YACvB,aAAa,EAAE,MAAM;YACrB,WAAW,EAAE,GAAG;YAChB,eAAe,EAAE,GAAG;SACrB;QACD,QAAQ,EAAE;YACR,eAAe,EAAE,OAAO;YACxB,aAAa,EAAE,MAAM;YACrB,WAAW,EAAE,GAAG;YAChB,eAAe,EAAE,GAAG;SACrB;QACD,OAAO,EAAE;YACP,eAAe,EAAE,YAAY;YAC7B,aAAa,EAAE,MAAM;YACrB,WAAW,EAAE,GAAG;YAChB,eAAe,EAAE,GAAG;SACrB;QACD,WAAW,EAAE;YACX,eAAe,EAAE,aAAa;YAC9B,aAAa,EAAE,MAAM;YACrB,WAAW,EAAE,GAAG;YAChB,eAAe,EAAE,GAAG;SACrB;QACD,KAAK,EAAE;YACL,eAAe,EAAE,GAAG;YACpB,aAAa,EAAE,MAAM;YACrB,WAAW,EAAE,GAAG;YAChB,eAAe,EAAE,GAAG;SACrB;KACO,CAAC;IAEX,IAAM,OAAO,GAAG,UAAC,kBAAuB;QACtC,IAAM,cAAc,GAAG,IAAA,0BAAS,EAAC,IAAI,CAAC,CAAC;QACvC,IAAM,eAAe,GAAG,IAAA,0BAAS,EAAC,IAAI,CAAC,CAAC;QACxC,OAAO,cAAc,CAAC,kBAAkB,CAAC,KAAK,IAAI,IAAI,eAAe,CAAC,kBAAkB,CAAC,KAAK,IAAI,CAAC;IACrG,CAAC,CAAC;IAEK,IAAM,YAAY,GAAG,UAAC,IAAsC;QACjE,OAAO,IAAA,+BAAa,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC,CAAC;IAFW,QAAA,YAAY,gBAEvB;IAEF,SAAS,SAAS,CAAC,MAAmC;;QACpD,IAAM,MAAM,GAAG;YACb,UAAU,EAAE,OAAO,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAA,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,IAAI,mCAAI,EAAE;YACxF,UAAU,EAAE,OAAO,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,KAAK,CAAA,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,KAAK,CAAC,CAAC,CAAC,MAAA,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,KAAK,0CAAE,IAAI,mCAAI,EAAE;YAC9G,UAAU,EAAE,OAAO,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,KAAK,CAAA,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,KAAK,CAAC,CAAC,CAAC,MAAA,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,KAAK,0CAAE,IAAI,mCAAI,EAAE;SAC/G,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,IAAM,gBAAgB,GAAG,UAAC,OAAyC;QACxE,IAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC7C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACpD,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;QACD,IAAM,KAAK,GAAI,OAAmB,CAAC,GAAG,CAAC,UAAA,kBAAkB;YACvD,IAAM,UAAU,GAAG,UAAG,kBAAkB,kBAAQ,WAAW,CAAE,CAAC;YAC9D,OAAO,IAAA,wBAAM,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1D,CAAC,CAAC,CAAC;QACH,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,IAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC,QAAQ,EAAE,CAAC;YAC1C,IAAM,aAAa,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,QAAQ,EAAE,CAAC;YAC/C,IAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC,WAAW,EAAE,CAAC;YAC5C,IAAM,YAAY,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,WAAW,EAAE,CAAC;YACjD,IAAI,aAAa,IAAI,YAAY,EAAE,CAAC;gBAClC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC;YACzD,CAAC;iBAAM,IAAI,YAAY,GAAG,WAAW,EAAE,CAAC;gBACtC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;QACD,OAAO,GAAI,OAAmB,CAAC,GAAG,CAAC,UAAC,KAAK,EAAE,KAAK;YAC9C,OAAO,UAAG,KAAK,kBAAQ,KAAK,CAAC,KAAK,CAAE,CAAC,WAAW,EAAE,CAAE,CAAC;QACvD,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IAxBW,QAAA,gBAAgB,oBAwB3B;IAEK,IAAM,QAAQ,GAAG,UACtB,WAAmB,EACnB,QAAqD,EACrD,WAAqB;QAErB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YACvC,IAAM,SAAS,GAAG,IAAA,qBAAY,EAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC;YAC1E,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YAC7C,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAW,CAAC;IACrD,CAAC,CAAC;IAZW,QAAA,QAAQ,YAYnB;IAEF,IAAM,mBAAmB,GAAG,UAAC,MAAyB;QACpD,OAAO,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC;IAC/B,CAAC,CAAC;IAEF,IAAM,uBAAuB,GAAG,UAC9B,IAAY,EACZ,MAAmC,EACnC,cAAuB,EACvB,cAAuB;;QAEvB,IAAI,sBAAsB,GAAG,KAAK,CAAC;QACnC,IAAI,SAA6B,CAAC;QAClC,IAAI,SAA6B,CAAC;QAElC,IAAI,CAAC,OAAO,CAAC,UAAC,MAAyB;YACrC,IAAI,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC;gBAChC,sBAAsB,GAAG,IAAI,CAAC;gBAE9B,IAAM,OAAO,GAAG,MAAM,CAAC,CAAa,CAAC;gBACrC,IAAI,OAAO,EAAE,CAAC;oBACZ,SAAS,GAAG,IAAI,CAAC,GAAG,OAAR,IAAI,EAAQ,OAAO,CAAC,CAAC;oBACjC,SAAS,GAAG,IAAI,CAAC,GAAG,OAAR,IAAI,EAAQ,OAAO,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC5B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE,CAAC;YACxE,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE,CAAC;YACxE,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,0CAAE,KAAK,EAAE,CAAC;YAC1B,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACnC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC;QAED,OAAO;YACL,mBAAmB,EACjB,OAAO,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,0CAAE,KAAK,CAAA,KAAK,QAAQ;gBACvC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK;gBACrB,CAAC,CAAC,OAAO,CAAA,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,0CAAE,KAAK,0CAAE,IAAI,CAAA,KAAK,QAAQ;oBACjD,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI;oBAC1B,CAAC,CAAC,SAAS;YACf,sBAAsB,EAAE;gBACtB,SAAS,WAAA;gBACT,SAAS,WAAA;aACV;SACF,CAAC;IACJ,CAAC,CAAC;IAEK,IAAM,eAAe,GAAG,UAC7B,MAA4C,EAC5C,QAAqD,EACrD,WAAqB;QAErB,IAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,IAAA,qCAAmB,EAAC,MAAM,CAAC,EAAE,CAAC;YAC/B,MAAgB,CAAC,OAAO,CAAC,UAAC,OAAO,EAAE,KAAK;gBACvC,IAAM,WAAW,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,GAAG,IAAI,EAAE,CAAC;gBAC/C,IAAM,eAAe,GAAG,IAAA,gBAAQ,EAAC,gBAAS,KAAK,CAAE,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;gBAC1E,IAAI,WAAW,EAAE,CAAC;oBAChB,IAAM,WAAW,GAAG,IAAA,gBAAO,EAAC,WAAW,CAAC,CAAC;oBACzC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;gBAC1E,CAAC;qBAAM,CAAC;oBACN,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACtC,IAAM,WAAW,GAAG,IAAA,gBAAO,EAAC,MAAM,CAAC,CAAC;YACpC,OAAO,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,IAAA,gBAAQ,EAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC5F,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;IAzBW,QAAA,eAAe,mBAyB1B;IAEK,IAAM,+BAA+B,GAAG,UAC7C,KAAmB,EACnB,QAAqD,EACrD,wBAAiC,EACjC,WAAqB;;QAErB,IAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAY,CAAC;QAC3C,IAAI,MAAM,GAAyC,SAAS,CAAC;QAC7D,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAC9B,MAAM,GAAG,CAAA,MAAA,SAAS,CAAC,MAAM,0CAAE,MAAM,EAAC,CAAC,CAAC,IAAA,uBAAe,EAAC,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,MAAM,0CAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACpH,CAAC;QAED,IAAM,oBAAoB,GAAoC,EAAE,CAAC;QACjE,MAAA,SAAS,CAAC,MAAM,0CAAE,OAAO,CAAC,UAAC,KAAa,EAAE,KAAa;;YACrD,IAAI,KAAK,GAAW,EAAE,CAAC;YACvB,IAAI,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;gBACpC,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YACxC,CAAC;iBAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACtC,KAAK,GAAG,MAAM,CAAC;YACjB,CAAC;iBAAM,CAAC;gBACN,KAAK,GAAG,IAAA,gBAAQ,EAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;YACjD,CAAC;YACD,iCAAiC;YACjC,IAAM,KAAK,GAAG,OAAO,CAAA,MAAA,SAAS,CAAC,MAAM,0CAAG,KAAK,CAAC,CAAA,KAAK,QAAQ,CAAC,CAAC,CAAE,SAAS,CAAC,MAAM,CAAC,KAAK,CAAY,CAAC,CAAC,CAAC,CAAC,CAAC;YAEtG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjC,oBAAoB,CAAC,KAAK,CAAC,GAAG;oBAC5B,MAAM,EAAE,KAAK;oBACb,IAAI,EAAE,KAAK;oBACX,KAAK,OAAA;iBACN,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,oBAAoB,CAAC,KAAK,CAAC,CAAC,IAAK,IAAI,KAAK,CAAC;YAC7C,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAM,KAAK,GAAW,MAAA,MAAA,KAAK,CAAC,MAAM,0CAAE,KAAK,mCAAI,GAAG,CAAC;QACjD,IAAM,MAAM,GAAW,MAAA,MAAA,KAAK,CAAC,MAAM,0CAAE,MAAM,mCAAI,GAAG,CAAC;QACnD,IAAM,UAAU,GAAY,SAAS,CAAC,QAAQ;YAC5C,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC;YACrE,CAAC,CAAC,KAAK,CAAC;QACV,IAAM,qBAAqB,GAAW,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,IAAM,mBAAmB,GAAW,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC/D,IAAM,WAAW,GAAW,SAAS,CAAC,IAAI;YACxC,CAAC,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,qBAAqB,EAAE,MAAM,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;YAC9F,CAAC,CAAC,CAAC,CAAC;QACE,IAAA,UAAU,GAAK,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,WAA5B,CAA6B;QAE/C,OAAO;YACL,IAAI,EAAE;gBACJ,UAAU,YAAA;gBACV,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC;aAC/C;YACD,UAAU,EAAE,CAAA,MAAA,KAAK,CAAC,MAAM,0CAAE,UAAU,MAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;YAC7D,KAAK,EAAE,MAAA,KAAK,CAAC,MAAM,0CAAE,KAAK;YAC1B,MAAM,QAAA;YACN,WAAW,aAAA;YACX,UAAU,YAAA;YACV,mBAAmB,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI;SAC3G,CAAC;IACJ,CAAC,CAAC;IA5DW,QAAA,+BAA+B,mCA4D1C;IAEK,IAAM,8BAA8B,GAAG,UAC5C,KAAmB,EACnB,QAAqD,EACrD,WAAqB,EACrB,YAAsB;;QAEtB,IAAM,gBAAgB,GAAkD,EAAE,CAAC;QAC3E,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAM,oBAAoB,GAAG,uBAAuB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACzE,IAAA,KAA0B,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,EAAhE,OAAO,aAAA,EAAE,UAAU,gBAA6C,CAAC;QACzE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAC,MAAgB,EAAE,MAAc;;YAClD,IAAM,eAAe,GAAG,IAAA,6BAAW,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,2DAA2D;YAC1G,MAAC,MAAM,CAAC,CAAa,0CAAE,OAAO,CAAC,UAAC,CAAkB,EAAE,MAAc;;gBAChE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;oBACzB,gBAAgB,CAAC,CAAC,CAAC,GAAG,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;gBACxG,CAAC;gBACD,IAAM,MAAM,GAAW,OAAO,CAAC,MAAM,CAAC,CAAC;gBACvC,IAAM,IAAI,GAAW,MAAC,MAAA,MAAM,CAAC,CAAC,0CAAG,MAAM,CAAY,mCAAI,CAAC,CAAC;gBACzD,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;oBAC1B,IAAM,KAAK,GAAG,IAAA,gBAAQ,EAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;oBACtD,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC;wBACjC,MAAM,QAAA;wBACN,IAAI,EAAE,IAAI;wBACV,KAAK,OAAA;qBACN,CAAC,CAAC;oBACH,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBACxC,CAAC;qBAAM,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC;oBACvD,IAAM,KAAK,GAAG,IAAA,gBAAQ,EAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;oBACtD,IAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBAChD,IAAM,QAAQ,GAAG,CAAA,MAAA,MAAM,CAAC,IAAI,0CAAE,IAAI,KAAI,OAAO,CAAC;oBAC9C,IAAM,WAAW,GACf,QAAQ,KAAK,KAAK,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;oBACjG,gBAAgB,CAAC,CAAC,CAAC,CAAC,QAAS,CAAC,IAAI,qCAChC,MAAM,QAAA,EACN,WAAW,aAAA,EACX,CAAC,EAAE,IAAI,EACP,KAAK,OAAA,IACF,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,aAAA,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KACvC,kBAAkB,EAAE,mBAAmB,CAAC,MAAM,CAAC,IAC/C,CAAC;oBACH,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC;wBACjC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;oBACxC,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEG,IAAA,KAAyC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,EAA9D,UAAU,gBAAA,EAAE,UAAU,gBAAA,EAAE,UAAU,gBAA4B,CAAC;QAEvE,2CACE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,EACrC,KAAK,EAAE,MAAA,KAAK,CAAC,MAAM,0CAAE,KAAK,EAC1B,MAAM,EAAE,MAAA,MAAA,KAAK,CAAC,MAAM,0CAAE,MAAM,mCAAI,GAAG,EACnC,QAAQ,EAAE,MAAM,EAChB,SAAS,WAAA,EACT,UAAU,YAAA,EACV,UAAU,YAAA,EACV,UAAU,YAAA,EACV,IAAI,EAAE,QAAQ,IACX,oBAAoB,KACvB,eAAe,EAAE,IAAI,EACrB,UAAU,YAAA,IACV;IACJ,CAAC,CAAC;IA/DW,QAAA,8BAA8B,kCA+DzC;IAEK,IAAM,8BAA8B,GAAG,UAC5C,KAAmB,EACnB,QAAqD,EACrD,WAAqB;;QAErB,IAAM,gBAAgB,GAAiD,EAAE,CAAC;QAC1E,IAAM,oBAAoB,GAAG,uBAAuB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/E,IAAA,KAA0B,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,EAAhE,OAAO,aAAA,EAAE,UAAU,gBAA6C,CAAC;QAEzE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAC,MAAgB,EAAE,MAAc;;YAClD,MAAC,MAAM,CAAC,CAAa,0CAAE,OAAO,CAAC,UAAC,CAAkB,EAAE,MAAc;;gBAChE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;oBACzB,gBAAgB,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;gBAC3D,CAAC;gBAED,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;oBAC1B,IAAM,MAAM,GAAW,OAAO,CAAC,MAAM,CAAC,CAAC;oBACvC,IAAM,KAAK,GAAG,IAAA,gBAAQ,EAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;oBAEtD,gBAAgB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;wBAC9B,GAAG,EAAE,MAAM;wBACX,IAAI,EAAE,MAAC,MAAA,MAAM,CAAC,CAAC,0CAAG,MAAM,CAAY,mCAAI,CAAC;wBACzC,gBAAgB,EAAE,CAAW;wBAC7B,KAAK,OAAA;wBACL,MAAM,QAAA;wBACN,kBAAkB,EAAE,mBAAmB,CAAC,MAAM,CAAC;qBAChD,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEG,IAAA,KAAyC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,EAA9D,UAAU,gBAAA,EAAE,UAAU,gBAAA,EAAE,UAAU,gBAA4B,CAAC;QAEvE,2CACE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,EACrC,KAAK,EAAE,MAAA,KAAK,CAAC,MAAM,0CAAE,KAAK,EAC1B,MAAM,EAAE,MAAA,MAAA,KAAK,CAAC,MAAM,0CAAE,MAAM,mCAAI,GAAG,EACnC,QAAQ,EAAE,MAAM,EAChB,UAAU,YAAA,EACV,UAAU,YAAA,EACV,UAAU,YAAA,EACV,IAAI,EAAE,QAAQ,IACX,oBAAoB,KACvB,eAAe,EAAE,IAAI,EACrB,UAAU,YAAA,IACV;IACJ,CAAC,CAAC;IA9CW,QAAA,8BAA8B,kCA8CzC;IAEK,IAAM,6BAA6B,GAAG,UAC3C,KAAmB,EACnB,QAAqD,EACrD,WAAqB;;QAErB,IAAM,OAAO,GAAiC,EAAE,CAAC;QAC3C,IAAA,KAA0B,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,EAAhE,OAAO,aAAA,EAAE,UAAU,gBAA6C,CAAC;QAEzE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAC,MAAyB,EAAE,SAAiB;;YAC9D,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;gBACd,OAAO;YACT,CAAC;YAED,IAAM,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC1C,kFAAkF;YAClF,sFAAsF;YACtF,IAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,MAAA,MAAM,CAAC,KAAK,0CAAE,KAAK,EAAE,MAAA,MAAM,CAAC,KAAK,0CAAE,GAAG,EAAE,MAAA,MAAM,CAAC,KAAK,0CAAE,IAAI,CAAC,CAAC;YAC/F,IAAM,KAAK,GAAe,KAAK,CAAC,GAAG,CAAC,cAAM,OAAA,EAAE,EAAF,CAAE,CAAC,CAAC;YAC9C,IAAI,KAAK,GAAG,CAAC,CAAC;YAEd,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,UAAC,IAAI,EAAE,KAAK;;gBAC3B,IAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,IAA8B,EAAE,SAAS,CAAC,CAAC;gBAC9E,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;oBAClB,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAC,MAAA,MAAM,CAAC,CAAC,0CAAG,KAAK,CAA+B,mCAAI,CAAC,CAAC,CAAC;gBAC5E,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,UAAA,GAAG;gBACrB,IAAM,IAAI,GAAG,iBAAiB,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;gBACrD,KAAK,IAAI,IAAI,CAAC;gBACd,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,OAAO,CAAC,UAAC,GAAG,EAAE,KAAK;gBACvB,IAAM,MAAM,GAAW,OAAO,CAAC,SAAS,CAAC,CAAC;gBAC1C,IAAM,KAAK,GAAW,IAAA,gBAAQ,EAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;gBAC9D,IAAM,IAAI,GAAG,iBAAiB,CAC5B,MAAM,CAAC,QAAQ,EACf,CAAC,CAAC,KAAK,CAAC,EACR,KAAK,EACL,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,GAA0B,CAAC,CAChE,CAAC;gBAEF,OAAO,CAAC,IAAI,oBACV,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAA0B,CAAC,EACxE,CAAC,EAAE,IAAI,EACP,MAAM,QAAA,EACN,KAAK,OAAA,IACF,CAAC,SAAS;oBACX,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,EAAE,gBAAgB,EAAE,WAAK,GAA2B,CAAC,EAAE,gBAAO,GAA2B,CAAC,EAAE,MAAG,EAAE,CAAC,EACtG,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEG,IAAA,KAAyC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,EAA9D,UAAU,gBAAA,EAAE,UAAU,gBAAA,EAAE,UAAU,gBAA4B,CAAC;QAEvE,OAAO;YACL,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,MAAA,KAAK,CAAC,MAAM,0CAAE,KAAK;YAC1B,MAAM,EAAE,MAAA,MAAA,KAAK,CAAC,MAAM,0CAAE,MAAM,mCAAI,GAAG;YACnC,mBAAmB,EAAE,IAAI;YACzB,UAAU,YAAA;YACV,UAAU,YAAA;YACV,UAAU,YAAA;YACV,IAAI,EAAE,WAAW;YACjB,eAAe,EAAE,IAAI;YACrB,WAAW,EAAE,EAAE;YACf,UAAU,YAAA;SACX,CAAC;IACJ,CAAC,CAAC;IAtEW,QAAA,6BAA6B,iCAsExC;IAEK,IAAM,sCAAsC,GAAG,UACpD,KAAmB,EACnB,WAAoB,EACpB,QAAqD,EACrD,wBAAiC,EACjC,WAAqB;;QAErB,IAAM,oBAAoB,GAAG,uBAAuB,CAClD,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,MAAM,EACZ,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAC3B,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAC5B,CAAC;QACF,IAAI,IAAI,GAAW,SAAS,CAAC;QACvB,IAAA,KAA0B,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,EAAhE,OAAO,aAAA,EAAE,UAAU,gBAA6C,CAAC;QACzE,IAAM,SAAS,GAAuB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,UAAC,MAAgB,EAAE,KAAa;;YACnF,IAAM,OAAO,GAAG,MAAM,CAAC,CAAY,CAAC;YACpC,IAAM,QAAQ,GAAG,OAAO,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;YAChD,IAAM,OAAO,GAAG,IAAA,6BAAW,EAAC,OAAO,CAAC,CAAC;YACrC,IAAM,SAAS,GAAG,IAAA,+BAAa,EAAC,OAAO,CAAC,CAAC;YACzC,IAAM,MAAM,GAAW,OAAO,CAAC,KAAK,CAAC,CAAC;YACtC,IAAM,SAAS,GACb,CAAC,wBAAwB,KAAI,MAAA,MAAM,CAAC,IAAI,0CAAE,KAAK,CAAA;gBAC7C,CAAC,CAAC,IAAA,uBAAe,EAAC,MAAA,MAAM,CAAC,IAAI,0CAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC;gBAC5D,CAAC,CAAC,IAAA,gBAAQ,EAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;YAC9C,IAAI,GAAG,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;YACzD,IAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAChD,IAAM,QAAQ,GAAG,CAAA,MAAA,MAAM,CAAC,IAAI,0CAAE,IAAI,KAAI,OAAO,CAAC;YAC9C,IAAM,WAAW,GAAG,QAAQ,KAAK,KAAK,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;YAEnH,OAAO,oCACL,MAAM,QAAA,EACN,WAAW,aAAA,EACX,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,CAAS;;oBAAK,OAAA,oBAClC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC7F,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IACX,CAAC,KAAK,CAAC,OAAO,CAAC,MAAA,MAAM,CAAC,MAAM,0CAAE,IAAI,CAAC;wBACpC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;wBACvC,CAAC,CAAC,OAAO,CAAA,MAAA,MAAM,CAAC,MAAM,0CAAE,IAAI,CAAA,KAAK,QAAQ;4BACzC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;4BACpC,CAAC,CAAC,EAAE,CAAC,EACP,CAAA;iBAAA,CAAC,EACH,KAAK,EAAE,SAAS,IACb,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,aAAA,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KACvC,kBAAkB,EAAE,mBAAmB,CAAC,MAAM,CAAC,GAC5B,CAAC;QACxB,CAAC,CAAC,CAAC;QAEH,IAAM,aAAa,GAAG,IAAA,gCAAoB,EAAC,SAAS,CAAC,CAAC;QAChD,IAAA,KAAyC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,EAA9D,UAAU,gBAAA,EAAE,UAAU,gBAAA,EAAE,UAAU,gBAA4B,CAAC;QAEvE,IAAM,UAAU,GAAgB;YAC9B,UAAU,YAAA;YACV,aAAa,EAAE,SAAS;SACzB,CAAC;QAEF,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,oCACL,IAAI,EAAE,UAAU,EAChB,mBAAmB,EAAE,IAAI,EACzB,UAAU,YAAA,EACV,UAAU,YAAA,IACP,oBAAoB,KACvB,IAAI,MAAA,EACJ,KAAK,EAAE,MAAA,KAAK,CAAC,MAAM,0CAAE,KAAK,EAC1B,MAAM,EAAE,MAAA,MAAA,KAAK,CAAC,MAAM,0CAAE,MAAM,mCAAI,GAAG,EACnC,eAAe,EAAE,IAAI,EACrB,UAAU,YAAA,EACV,MAAM,EAAE,KAAK,GACK,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,OAAO,oCACL,IAAI,EAAE,UAAU,EAChB,mBAAmB,EAAE,IAAI,EACzB,UAAU,YAAA,EACV,UAAU,YAAA,IACP,oBAAoB,KACvB,YAAY,EAAE,IAAI,EAClB,SAAS,EAAE,aAAa,CAAC,UAAU,EACnC,SAAS,EAAE,aAAa,CAAC,QAAQ,EACjC,KAAK,EAAE,MAAA,KAAK,CAAC,MAAM,0CAAE,KAAK,EAC1B,MAAM,EAAE,MAAA,MAAA,KAAK,CAAC,MAAM,0CAAE,MAAM,mCAAI,GAAG,EACnC,eAAe,EAAE,IAAI,EACrB,YAAY,EAAE,KAAK,EACnB,UAAU,YAAA,EACV,MAAM,EAAE,KAAK,GACK,CAAC;QACvB,CAAC;IACH,CAAC,CAAC;IAxFW,QAAA,sCAAsC,0CAwFjD;IAEK,IAAM,+CAA+C,GAAG,UAC7D,KAAmB,EACnB,QAAqD,EACrD,WAAqB;;QAEf,IAAA,KAA0B,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,EAAhE,OAAO,aAAA,EAAE,UAAU,gBAA6C,CAAC;QACzE,IAAM,SAAS,GAA2C,KAAK,CAAC,IAAI;aACjE,GAAG,CAAC,UAAC,MAAgB,EAAE,KAAa;YACnC,IAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;YAC9B,IAAM,KAAK,GAAG,IAAA,gBAAQ,EAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;YACtD,OAAQ,MAAM,CAAC,CAAa,CAAC,GAAG,CAAC,UAAC,MAAc,EAAE,CAAS;gBACzD,OAAO;oBACL,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;oBACd,CAAC,EAAE,MAAM;oBACT,MAAM,QAAA;oBACN,KAAK,OAAA;iBACkC,CAAC;YAC5C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;aACD,OAAO,EAAE;aACT,IAAI,EAAE;YACP,uEAAuE;aACtE,OAAO,EAAE,CAAC;QAEb,IAAM,WAAW,GAAW,MAAA,MAAA,KAAK,CAAC,MAAM,0CAAE,MAAM,mCAAI,GAAG,CAAC;QACxD,IAAM,MAAM,GAAW,MAAA,MAAA,MAAA,KAAK,CAAC,MAAM,0CAAE,MAAM,0CAAE,CAAC,mCAAI,CAAC,CAAC;QACpD,IAAM,OAAO,GAAW,MAAA,MAAA,MAAA,KAAK,CAAC,MAAM,0CAAE,MAAM,0CAAE,GAAG,mCAAI,CAAC,CAAC;QACvD,IAAM,eAAe,GAAW,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC;QAC/D,IAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,UAAC,KAAa,EAAE,IAAc;;YACnE,OAAO,KAAK,GAAG,CAAC,CAAA,MAAA,IAAI,CAAC,CAAC,0CAAE,MAAM,KAAI,CAAC,CAAC,CAAC;QACvC,CAAC,EAAE,CAAC,CAAC,CAAC;QACN,IAAM,aAAa,GAAG,IAAI,CAAC;QAC3B,IAAM,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,aAAa,GAAG,YAAY,CAAC,CAAC;QACzD,IAAM,SAAS,GAAG,eAAe,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;QAE/D,IAAA,KAAyC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,EAA9D,UAAU,gBAAA,EAAE,UAAU,gBAAA,EAAE,UAAU,gBAA4B,CAAC;QAEvE,OAAO;YACL,IAAI,EAAE,SAAS;YACf,UAAU,YAAA;YACV,UAAU,YAAA;YACV,UAAU,YAAA;YACV,mBAAmB,EACjB,OAAO,CAAA,MAAA,MAAA,KAAK,CAAC,MAAM,0CAAE,MAAM,0CAAE,KAAK,CAAA,KAAK,QAAQ;gBAC7C,CAAC,CAAC,MAAA,MAAA,KAAK,CAAC,MAAM,0CAAE,MAAM,0CAAE,KAAK;gBAC7B,CAAC,CAAC,CAAA,MAAA,MAAA,MAAA,KAAK,CAAC,MAAM,0CAAE,MAAM,0CAAE,KAAK,0CAAE,IAAI,KAAI,EAAE;YAC7C,SAAS,WAAA;YACT,eAAe,EAAE,IAAI;YACrB,MAAM,EAAE,WAAW;YACnB,KAAK,EAAE,MAAA,KAAK,CAAC,MAAM,0CAAE,KAAK;YAC1B,eAAe,EAAE,IAAI;YACrB,UAAU,YAAA;YACV,mBAAmB,EAAE,EAAE;YACvB,sBAAsB,EAAE,IAAI;SAC7B,CAAC;IACJ,CAAC,CAAC;IAvDW,QAAA,+CAA+C,mDAuD1D;IAEK,IAAM,iCAAiC,GAAG,UAAC,KAAmB;;QACnE,IAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAsB,CAAC;QACrD,IAAM,iBAAiB,GAA6B,EAAE,CAAC;QACvD,IAAI,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;QACpC,IAAI,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;QAEpC,IAAI,SAAS,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACrC,IAAM,WAAS,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAC7C,IAAM,WAAS,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAC7C,IAAM,OAAK,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,MAAA,SAAS,CAAC,KAAK,0CAAE,KAAK,EAAE,MAAA,SAAS,CAAC,KAAK,0CAAE,GAAG,EAAE,MAAA,SAAS,CAAC,KAAK,0CAAE,IAAI,CAAC,CAAC;YAC3G,IAAM,OAAK,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,MAAA,SAAS,CAAC,KAAK,0CAAE,KAAK,EAAE,MAAA,SAAS,CAAC,KAAK,0CAAE,GAAG,EAAE,MAAA,SAAS,CAAC,KAAK,0CAAE,IAAI,CAAC,CAAC;YAC3G,IAAM,OAAK,GAAiB,OAAK,CAAC,GAAG,CAAC,cAAM,OAAA,OAAK,CAAC,GAAG,CAAC,cAAM,OAAA,EAAE,EAAF,CAAE,CAAC,EAAnB,CAAmB,CAAC,CAAC;YACjE,IAAI,OAAK,GAAG,CAAC,CAAC;YAEd,MAAA,SAAS,CAAC,CAAC,0CAAE,OAAO,CAAC,UAAC,IAAI,EAAE,KAAK;;gBAC/B,IAAM,OAAO,GAAG,YAAY,CAAC,OAAK,EAAE,IAA8B,EAAE,WAAS,CAAC,CAAC;gBAC/E,IAAM,OAAO,GAAG,YAAY,CAAC,OAAK,EAAE,MAAA,SAAS,CAAC,CAAC,0CAAG,KAAK,CAAuC,EAAE,WAAS,CAAC,CAAC;gBAC3G,IAAI,OAAO,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC;oBACrC,OAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAC,MAAA,SAAS,CAAC,CAAC,0CAAG,KAAK,CAA+B,mCAAI,CAAC,CAAC,CAAC;gBACzF,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAM,GAAC,GAAG,OAAK,CAAC,GAAG,CAAC,UAAA,GAAG;gBACrB,OAAO,GAAG,CAAC,GAAG,CAAC,UAAA,GAAG;oBAChB,IAAM,IAAI,GAAG,iBAAiB,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;oBACxD,OAAK,IAAI,IAAI,CAAC;oBACd,OAAO,IAAI,CAAC;gBACd,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,OAAK,CAAC,OAAO,CAAC,UAAC,IAAI,EAAE,IAAI;gBACvB,OAAK,CAAC,OAAO,CAAC,UAAC,IAAI,EAAE,IAAI;oBACvB,IAAM,IAAI,GAAG,iBAAiB,CAC5B,SAAS,CAAC,QAAQ,EAClB,GAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EACb,OAAK,EACL,WAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,IAA2B,CAAC,EACjE,WAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,IAA2B,CAAC,CAClE,CAAC;oBAEF,iBAAiB,CAAC,IAAI,CAAC;wBACrB,CAAC,EAAE,WAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAA2B,CAAC;wBAC1E,CAAC,EAAE,WAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAA2B,CAAC;wBAC1E,KAAK,EAAE,IAAI;wBACX,QAAQ,EAAE,IAAI;qBACf,CAAC,CAAC;oBAEH,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;wBAC7B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;wBAC5B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBAC9B,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAC,SAAS,CAAC,CAAa,0CAAE,OAAO,CAAC,UAAC,IAAI,EAAE,IAAY;;gBACnD,MAAA,SAAS,CAAC,CAAC,0CAAE,OAAO,CAAC,UAAC,IAAS,EAAE,IAAY;;oBAC3C,IAAM,IAAI,GAAG,MAAA,MAAC,SAAS,CAAC,CAAgB,0CAAG,IAAI,CAAC,0CAAG,IAAI,CAAC,CAAC;oBAEzD,iBAAiB,CAAC,IAAI,CAAC;wBACrB,CAAC,EAAE,CAAA,MAAA,MAAA,KAAK,CAAC,MAAM,0CAAE,KAAK,0CAAE,IAAI,MAAK,MAAM,CAAC,CAAC,CAAE,IAAa,CAAC,CAAC,CAAC,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,CAAC;wBACpE,CAAC,EAAE,CAAA,MAAA,MAAA,KAAK,CAAC,MAAM,0CAAE,KAAK,0CAAE,IAAI,MAAK,MAAM,CAAC,CAAC,CAAE,IAAa,CAAC,CAAC,CAAC,IAAI;wBAC/D,KAAK,EAAE,IAAI;wBACX,QAAQ,EAAE,IAAI;qBACf,CAAC,CAAC;oBAEH,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;wBAC7B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;wBAC5B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBAC9B,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAM,WAAW,GAAsB;YACrC,MAAM,EAAE,MAAA,SAAS,CAAC,IAAI,mCAAI,EAAE;YAC5B,IAAI,EAAE,iBAAiB;YACvB,KAAK,EAAE,CAAC;SACT,CAAC;QAEF,gDAAgD;QAChD,IAAM,aAAa,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QACtD,IAAM,YAAY,GAAG;YACnB,IAAA,0BAAiB,EAAC,uBAAc,CAAC,MAAM,CAAC;YACxC,IAAA,0BAAiB,EAAC,uBAAc,CAAC,MAAM,CAAC;YACxC,IAAA,0BAAiB,EAAC,uBAAc,CAAC,MAAM,CAAC;SACzC,CAAC;QACF,IAAM,yBAAyB,GAAa,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC;YAC7E,CAAC,CAAE,SAAS,CAAC,UAAsC,CAAC,GAAG,CAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,IAAI,EAA7B,CAA6B,CAAC;YAC7F,CAAC,CAAC,aAAa,CAAC;QAElB,IAAM,wBAAwB,GAAa,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC;YAC5E,CAAC,CAAE,SAAS,CAAC,UAAsC,CAAC,GAAG,CAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,CAAC,CAAC,EAAN,CAAM,CAAC;YACtE,CAAC,CAAC,YAAY,CAAC;QAEX,IAAA,KAAyC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,EAA9D,UAAU,gBAAA,EAAE,UAAU,gBAAA,EAAE,UAAU,gBAA4B,CAAC;QAEvE,OAAO;YACL,IAAI,EAAE,CAAC,WAAW,CAAC;YACnB,yBAAyB,2BAAA;YACzB,wBAAwB,0BAAA;YACxB,UAAU,EAAE,IAAI;YAChB,eAAe,EAAE,IAAI;YACrB,UAAU,YAAA;YACV,UAAU,YAAA;YACV,UAAU,YAAA;YACV,SAAS,EAAE,MAAM;YACjB,KAAK,EAAE,MAAA,KAAK,CAAC,MAAM,0CAAE,KAAK;YAC1B,MAAM,EAAE,MAAA,MAAA,KAAK,CAAC,MAAM,0CAAE,MAAM,mCAAI,GAAG;YACnC,eAAe,EAAE,IAAI;YACrB,mBAAmB,EAAE,EAAE;YACvB,sBAAsB,EAAE,IAAI;SAC7B,CAAC;IACJ,CAAC,CAAC;IAhHW,QAAA,iCAAiC,qCAgH5C;IAEK,IAAM,gCAAgC,GAAG,UAC9C,KAAmB,EACnB,QAAqD,EACrD,WAAqB;;QAEf,IAAA,KAAiB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAe,EAA1C,IAAI,UAAA,EAAE,IAAI,UAAgC,CAAC;QACnD,IAAM,UAAU,GAAG,CAAC,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,mCAAI,EAAE,CAAC;aACnC,GAAG,CAAC,UAAC,GAAW,EAAE,KAAa,IAAK,OAAA,CAAC;YACpC,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAE,KAAK,CAAC;YAC5B,MAAM,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAE,KAAK,CAAC;SAC7B,CAAC,EAJmC,CAInC,CAAC;YACH,wDAAwD;YACxD,gFAAgF;aAC/E,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAvD,CAAuD,CAAC,CAAC;QAExE,IAAM,eAAe,GAAG;YACtB,KAAK,EAAE,MAAA,IAAI,CAAC,KAAK,0CAAE,GAAG,CAAC,UAAC,KAAa,EAAE,KAAa;gBAClD,IAAM,KAAK,GAAG,IAAA,gBAAQ,EAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;gBAErD,OAAO;oBACL,MAAM,EAAE,KAAK;oBACb,IAAI,EAAE,KAAK;oBACX,KAAK,OAAA;iBACN,CAAC;YACJ,CAAC,CAAC;YACF,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,UAAC,SAAc,EAAE,KAAa;gBAClD,4BACK,SAAS,EACZ;YACJ,CAAC,CAAC;SACiB,CAAC;QAEtB,IAAM,MAAM,GAAgC;YAC1C,IAAI,uBACC,CAAC,CAAA,MAAA,MAAA,KAAK,CAAC,MAAM,0CAAE,IAAI,0CAAE,IAAI,EAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAA,KAAK,CAAC,MAAM,CAAC,IAAI,0CAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAC3E;SACF,CAAC;QAEM,IAAA,UAAU,GAAK,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,WAA5B,CAA6B;QAE/C,OAAO;YACL,IAAI,EAAE;gBACJ,UAAU,YAAA;gBACV,eAAe,EAAE,eAAe;aACjC;YACD,KAAK,EAAE,MAAA,KAAK,CAAC,MAAM,0CAAE,KAAK;YAC1B,MAAM,EAAE,MAAA,MAAA,KAAK,CAAC,MAAM,0CAAE,MAAM,mCAAI,GAAG;YACnC,MAAM,QAAA;YACN,YAAY,EAAE,IAAI;SACnB,CAAC;IACJ,CAAC,CAAC;IAnDW,QAAA,gCAAgC,oCAmD3C;IAEK,IAAM,+BAA+B,GAAG,UAC7C,KAAmB,EACnB,QAAqD,EACrD,WAAqB;;QAErB,IAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAa,CAAC;QAE5C,IAAM,QAAQ,GAAG,CAAA,MAAA,MAAA,SAAS,CAAC,KAAK,0CAAE,KAAK,0CAAE,MAAM;YAC7C,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAC,IAAS,EAAE,KAAa;;gBACjD,IAAM,MAAM,GAAG,IAAI,CAAC,IAAI,IAAI,kBAAW,KAAK,GAAG,CAAC,CAAE,CAAC;gBACnD,IAAM,KAAK,GAAG,IAAA,gBAAQ,EAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;gBACtD,OAAO;oBACL,MAAM,QAAA;oBACN,IAAI,EAAE,CAAA,MAAA,IAAI,CAAC,KAAK,0CAAG,CAAC,CAAC,KAAG,MAAA,IAAI,CAAC,KAAK,0CAAG,CAAC,CAAC,CAAA;oBACvC,KAAK,OAAA;iBACN,CAAC;YACJ,CAAC,CAAC;YACJ,CAAC,CAAC;gBACE;oBACE,MAAM,EAAE,SAAS;oBACjB,IAAI,EAAE,MAAA,SAAS,CAAC,KAAK,mCAAI,CAAC,GAAG,CAAC,MAAA,MAAA,MAAA,MAAA,SAAS,CAAC,KAAK,0CAAE,IAAI,0CAAE,KAAK,0CAAG,CAAC,CAAC,mCAAI,CAAC,CAAC;oBACrE,KAAK,EAAE,IAAA,gBAAQ,EAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC;iBAClD;gBACD;oBACE,MAAM,EAAE,QAAQ;oBAChB,IAAI,EAAE,CAAC,MAAA,MAAA,MAAA,MAAA,SAAS,CAAC,KAAK,0CAAE,IAAI,0CAAE,KAAK,0CAAG,CAAC,CAAC,mCAAI,GAAG,CAAC,GAAG,CAAC,MAAA,SAAS,CAAC,KAAK,mCAAI,CAAC,CAAC;oBACzE,KAAK,EAAE,uBAAc,CAAC,QAAQ;iBAC/B;aACF,CAAC;QAEN,IAAI,QAA4B,CAAC;QACjC,IAAI,aAAiC,CAAC;QACtC,IAAI,MAAA,SAAS,CAAC,KAAK,0CAAE,SAAS,EAAE,CAAC;YAC/B,IAAM,IAAI,GAAG,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC;YACzD,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;gBACd,QAAQ,GAAG,iBAAU,IAAI,CAAE,CAAC;gBAC5B,IAAM,KAAK,GAAG,IAAA,0BAAiB,EAAC,uBAAc,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;gBACrE,aAAa,GAAG,KAAK,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACN,QAAQ,GAAG,iBAAU,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAE,CAAC;gBACtC,IAAM,KAAK,GAAG,IAAA,0BAAiB,EAAC,uBAAc,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;gBACnE,aAAa,GAAG,KAAK,CAAC;YACxB,CAAC;QACH,CAAC;QAED,IAAM,MAAM,GAA+B;YACzC,QAAQ,EAAE;gBACR,IAAI,EAAE,aAAa;aACpB;SACF,CAAC;QAEM,IAAA,UAAU,GAAK,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,WAA5B,CAA6B;QAE/C,OAAO;YACL,QAAQ,UAAA;YACR,UAAU,EAAE,MAAA,SAAS,CAAC,KAAK,mCAAI,CAAC;YAChC,UAAU,YAAA;YACV,QAAQ,UAAA;YACR,2BAA2B;YAC3B,QAAQ,EAAE,OAAO,CAAA,MAAA,MAAA,MAAA,SAAS,CAAC,KAAK,0CAAE,IAAI,0CAAE,KAAK,0CAAG,CAAC,CAAC,CAAA,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAA,MAAA,MAAA,SAAS,CAAC,KAAK,0CAAE,IAAI,0CAAE,KAAK,0CAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;YAC/G,QAAQ,EAAE,OAAO,CAAA,MAAA,MAAA,MAAA,SAAS,CAAC,KAAK,0CAAE,IAAI,0CAAE,KAAK,0CAAG,CAAC,CAAC,CAAA,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAA,MAAA,MAAA,SAAS,CAAC,KAAK,0CAAE,IAAI,0CAAE,KAAK,0CAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;YAC/G,gBAAgB,EAAE,0BAAM,OAAA,MAAA,MAAA,SAAS,CAAC,KAAK,0CAAE,QAAQ,EAAE,mCAAI,EAAE,CAAA,EAAA;YACzD,KAAK,EAAE,MAAA,KAAK,CAAC,MAAM,0CAAE,KAAK;YAC1B,MAAM,EAAE,MAAA,MAAA,KAAK,CAAC,MAAM,0CAAE,MAAM,mCAAI,GAAG;YACnC,MAAM,QAAA;YACN,OAAO,EAAE,CAAA,MAAA,MAAA,SAAS,CAAC,KAAK,0CAAE,KAAK,0CAAE,MAAM,EAAC,CAAC,CAAC,yBAAiB,CAAC,gBAAgB,CAAC,CAAC,CAAC,yBAAiB,CAAC,aAAa;SAC/G,CAAC;IACJ,CAAC,CAAC;IAnEW,QAAA,+BAA+B,mCAmE1C;IAEK,IAAM,uBAAuB,GAAG,UAAC,KAAmB;QACzD,IAAM,UAAU,wBAAsB,KAAK,CAAE,CAAC;QAC9C,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC;YAC1D,IAAM,MAAM,GAAa,KAAK,CAAC,IAAI,CAAC,MAAM,CAAa,CAAC;YACxD,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC;YACd,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC;YACd,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC;gBAC3D,IAAM,QAAQ,GAAG,CAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAY,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;gBACrE,IAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,CAAW,CAAC;gBAC3C,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAChD,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAClD,CAAC;YACD,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;QACnC,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;IAhBW,QAAA,uBAAuB,2BAgBlC;IAEF,SAAS,aAAa,CAAC,GAAQ;QAC7B,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YACxD,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,iBAAiB,CAAC;QACnE,CAAC;QAED,OAAO,CACL,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,iBAAiB;YACzD,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAC5D,CAAC;IACJ,CAAC;IAED,IAAI,eAAe,GAAU,EAAE,CAAC;IAChC,IAAI,KAAK,GAAU,EAAE,CAAC;IACtB,IAAI,YAAY,GAAU,EAAE,CAAC;IAC7B,IAAI,aAAkB,EAAE,YAAiB,CAAC;IAC1C;;;;OAIG;IACH,SAAgB,mBAAmB,CAAC,KAAU;QAC5C,sCAAsC;QACtC,cAAc,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IACvC,CAAC;IAHD,kDAGC;IAED,SAAS,cAAc,CAAC,SAAc,EAAE,CAAS,EAAE,WAAgB;QACjE,IAAI,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,cAAc,GAAG,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,IAAI,IAAA,qCAAmB,EAAC,IAAI,CAAC,EAAE,CAAC;gBAC9B,eAAe,CAAC,IAAI,CAAC,YAAY,GAAG,cAAc,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;oBACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACrC,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;4BAC3B,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,cAAc,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;wBAClE,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/B,cAAc,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,cAAc,GAAG,GAAG,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;IACH,CAAC;IAED,SAAS,cAAc,CAAC,IAAsC;QAC5D,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO;QACT,CAAC;QAED,IAAI,WAAW,GAA0B,EAAE,CAAC;QAC5C,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,WAAW,yCAAQ,WAAW,GAAK,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAE,CAAC;QAC9D,CAAC;QAED,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;YACnB,KAAK,QAAQ;gBACX,IAAM,SAAS,GAAG,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1E,WAAW,CAAC,KAAK,GAAG,wBAAe,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,GAAG,GAAG,CAAC,CAAC;gBACjE,MAAM;YACR,KAAK,IAAI;gBACP,WAAW,CAAC,KAAK,GAAG,WAAW,CAAC;gBAChC,MAAM;YACR,KAAK,IAAI;gBACP,WAAW,CAAC,KAAK,GAAG,YAAY,CAAC;gBACjC,MAAM;YACR,KAAK,KAAK;gBACR,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC;gBAC3B,MAAM;YACR;gBACE,WAAW,CAAC,KAAK,GAAG,QAAQ,CAAC;QACjC,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;IACvE,CAAC;IAED,IAAM,aAAa,GAAG,UAAC,GAAQ;QAC7B,OAAO,IAAA,+BAAa,EAAC,GAAG,EAAE,UAAC,KAAU,IAAK,OAAA,OAAO,KAAK,KAAK,QAAQ,EAAzB,CAAyB,CAAC,CAAC;IACvE,CAAC,CAAC;IAEF,yEAAyE;IACzE,IAAM,YAAY,GAAG,UACnB,IAAwC,EACxC,KAAyC,EACzC,QAAiB;QAEjB,IAAI,OAAO,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnD,OAAO,CAAC,CAAC,CAAC;QACZ,CAAC;QAED,OAAO,QAAQ;YACb,CAAC,CAAE,IAAmB,CAAC,SAAS,CAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,QAAQ,CAAC,KAAe,CAAC,EAA7B,CAA6B,CAAC;YACtE,CAAC,CAAE,IAA8B,CAAC,SAAS,CACvC,UAAC,GAAG,EAAE,KAAK;gBACT,OAAC,KAAgB,IAAI,GAAG,CAAC,EAAG;oBAC5B,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAE,KAAgB,IAAI,GAAG,CAAC,EAAG,CAAC,CAAC,CAAE,KAAgB,GAAG,GAAG,CAAC,EAAG,CAAC;YADxF,CACwF,CAC3F,CAAC;IACR,CAAC,CAAC;IAEF,IAAM,UAAU,GAAG,UAAC,GAAwB;QAC1C,OAAO,GAAG,CAAC,EAAG,GAAG,GAAG,CAAC,EAAG,CAAC;IAC3B,CAAC,CAAC;IAEF,IAAM,YAAY,GAAG,UAAC,GAAwB;QAC5C,OAAO,CAAC,GAAG,CAAC,EAAG,GAAG,GAAG,CAAC,EAAG,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC,CAAC;IAEF,kCAAkC;IAClC,IAAM,UAAU,GAAG,UACjB,IAAkD,EAClD,QAA0B,EAC1B,MAAwB,EACxB,OAAyB;QAEzB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,IAAM,YAAU,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAgB,CAAC,CAAC,CAAC;YACzD,IAAM,KAAK,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrE,IAAM,MAAI,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAU,CAAC,MAAM,CAAC;YACrF,IAAM,MAAI,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YAEvD,OAAO,IAAA,gBAAO,EAAC,KAAK,EAAE,MAAI,EAAE,MAAI,CAAC,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,YAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,MAAI,CAAC,EAA7B,CAA6B,CAAC,CAAC;QAC5E,CAAC;QAED,IAAM,KAAK,GAAG,IAAA,sBAAa,GAAE;aAC1B,MAAM,CAAC,IAAA,iBAAQ,EAAS,IAAgB,CAAqB,CAAC;aAC9D,IAAI,EAAE,CAAC;QACN,IAAA,KAAmB,KAAK,CAAC,MAAM,EAAE,EAAhC,MAAM,QAAA,EAAE,MAAM,QAAkB,CAAC;QAEtC,MAAM,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;QAC1D,MAAM,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QAEtD,IAAM,YAAY,GAAG,IAAA,cAAK,GAAE,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QAEtD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAC/C,IAAM,UAAU,GAAa,EAAE,CAAC;YAChC,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;YACxE,IAAI,EAAE,GAAG,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAE3C,OAAO,EAAE,GAAG,cAAc,CAAC,MAAM,GAAG,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC;gBACxD,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACpB,EAAE,GAAG,cAAc,CAAC,EAAE,GAAG,OAAO,EAAE,SAAS,CAAC,CAAC;YAC/C,CAAC;YAED,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YACvB,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC3C,YAAY,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAE7D,8FAA8F;YAC9F,kGAAkG;YAClG,gFAAgF;YAChF,uEAAuE;YACvE,OAAO,YAAY,CAAC,IAAgB,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,YAAY,CAAC,IAAgB,CAAC,CAAC;IACxC,CAAC,CAAC;IAEF,IAAM,iBAAiB,GAAG,UAAC,QAA0C,EAAE,GAAa;;QAClF,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,KAAK;gBACR,OAAO,IAAA,cAAK,EAAC,GAAG,CAAC,CAAC;YACpB,KAAK,KAAK;gBACR,OAAO,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,cAAK,EAAC,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC;YACxD,KAAK,KAAK;gBACR,OAAO,MAAA,IAAA,cAAK,EAAC,GAAG,CAAC,mCAAI,CAAC,CAAC;YACzB,KAAK,KAAK;gBACR,OAAO,MAAA,IAAA,cAAK,EAAC,GAAG,CAAC,mCAAI,CAAC,CAAC;YACzB;gBACE,OAAO,GAAG,CAAC,MAAM,CAAC;QACtB,CAAC;IACH,CAAC,CAAC;IAEF,IAAM,iBAAiB,GAAG,UACxB,QAA0C,EAC1C,KAAa,EACb,KAAa,EACb,EAAU,EACV,EAAc;QAAd,mBAAA,EAAA,MAAc;QAEd,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,SAAS;gBACZ,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC;YACjD,KAAK,aAAa;gBAChB,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;YACzC,KAAK,SAAS;gBACZ,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;YAC/C,KAAK,qBAAqB;gBACxB,OAAO,KAAK,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,KAAK,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YAC/D;gBACE,OAAO,KAAK,CAAC;QACjB,CAAC;IACH,CAAC,CAAC;IAEF,IAAM,YAAY,GAAG,UAAC,KAAa;;QACjC,OAAO,MAAA,MAAA,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,0CAAE,MAAM,mCAAI,CAAC,CAAC;IACrD,CAAC,CAAC;IAEF,IAAM,cAAc,GAAG,UAAC,KAAa,EAAE,SAAiB;QACtD,IAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;IAC7C,CAAC,CAAC;IAEF,IAAM,cAAc,GAAG,UAAC,IAAY,EAAE,MAAmC;QACvE,IAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,CAAC,UAAC,MAAM,EAAE,KAAK;gBACzB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,iBAAU,KAAK,GAAG,CAAC,CAAE,CAAC,CAAC;YACrD,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,UAAC,MAAyB,IAAK,OAAA,MAAM,CAAC,UAAU,KAAK,KAAK,EAA3B,CAA2B,CAAC,CAAC;QAE3F,OAAO;YACL,OAAO,SAAA;YACP,UAAU,EACR,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,UAAU,MAAK,KAAK,IAAI,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,UAAU,MAAK,IAAI,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW;SAC3G,CAAC;IACJ,CAAC,CAAC","sourcesContent":["/* eslint-disable one-var */\n/* eslint-disable vars-on-top */\n/* eslint-disable no-var */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport * as React from 'react';\nimport {\n bin as d3Bin,\n extent as d3Extent,\n sum as d3Sum,\n min as d3Min,\n max as d3Max,\n range as d3Range,\n Bin,\n} from 'd3-array';\nimport { scaleLinear as d3ScaleLinear } from 'd3-scale';\nimport { IDonutChartProps } from '../DonutChart/index';\nimport {\n IChartDataPoint,\n IChartProps,\n IHorizontalBarChartWithAxisDataPoint,\n ILineChartPoints,\n IVerticalStackedChartProps,\n IHeatMapChartData,\n IHeatMapChartDataPoint,\n IGroupedVerticalBarChartData,\n IVerticalBarChartDataPoint,\n ISankeyChartData,\n ILineChartLineOptions,\n} from '../../types/IDataPoint';\nimport { ISankeyChartProps } from '../SankeyChart/index';\nimport { IVerticalStackedBarChartProps } from '../VerticalStackedBarChart/index';\nimport { IHorizontalBarChartWithAxisProps } from '../HorizontalBarChartWithAxis/index';\nimport { ILineChartProps } from '../LineChart/index';\nimport { IAreaChartProps } from '../AreaChart/index';\nimport { IHeatMapChartProps } from '../HeatMapChart/index';\nimport { DataVizPalette, getColorFromToken, getNextColor } from '../../utilities/colors';\nimport { GaugeChartVariant, IGaugeChartProps, IGaugeChartSegment } from '../GaugeChart/index';\nimport { IGroupedVerticalBarChartProps } from '../GroupedVerticalBarChart/index';\nimport { IVerticalBarChartProps } from '../VerticalBarChart/index';\nimport { findNumericMinMaxOfY } from '../../utilities/utilities';\nimport type {\n Datum,\n Layout,\n PlotlySchema,\n PieData,\n PlotData,\n SankeyData,\n ScatterLine,\n TypedArray,\n Data,\n PieColors,\n Color,\n} from '@fluentui/chart-utilities';\nimport {\n isArrayOfType,\n isArrayOrTypedArray,\n isDate,\n isDateArray,\n isNumberArray,\n isYearArray,\n} from '@fluentui/chart-utilities';\nimport { timeParse } from 'd3-time-format';\nimport { curveCardinal as d3CurveCardinal } from 'd3-shape';\nimport { color as d3Color } from 'd3-color';\n\ninterface ISecondaryYAxisValues {\n secondaryYAxistitle?: string;\n secondaryYScaleOptions?: { yMinValue?: number; yMaxValue?: number };\n}\n\nconst dashOptions = {\n dot: {\n strokeDasharray: '1, 5',\n strokeLinecap: 'round',\n strokeWidth: '2',\n lineBorderWidth: '4',\n },\n dash: {\n strokeDasharray: '5, 5',\n strokeLinecap: 'butt',\n strokeWidth: '2',\n lineBorderWidth: '4',\n },\n longdash: {\n strokeDasharray: '10, 5',\n strokeLinecap: 'butt',\n strokeWidth: '2',\n lineBorderWidth: '4',\n },\n dashdot: {\n strokeDasharray: '5, 5, 1, 5',\n strokeLinecap: 'butt',\n strokeWidth: '2',\n lineBorderWidth: '4',\n },\n longdashdot: {\n strokeDasharray: '10, 5, 1, 5',\n strokeLinecap: 'butt',\n strokeWidth: '2',\n lineBorderWidth: '4',\n },\n solid: {\n strokeDasharray: '0',\n strokeLinecap: 'butt',\n strokeWidth: '2',\n lineBorderWidth: '4',\n },\n} as const;\n\nconst isMonth = (possiblyMonthValue: any): boolean => {\n const parseFullMonth = timeParse('%B');\n const parseShortMonth = timeParse('%b');\n return parseFullMonth(possiblyMonthValue) !== null || parseShortMonth(possiblyMonthValue) !== null;\n};\n\nexport const isMonthArray = (data: Datum[] | Datum[][] | TypedArray): boolean => {\n return isArrayOfType(data, isMonth);\n};\n\nfunction getTitles(layout: Partial<Layout> | undefined) {\n const titles = {\n chartTitle: typeof layout?.title === 'string' ? layout.title : layout?.title?.text ?? '',\n xAxisTitle: typeof layout?.xaxis?.title === 'string' ? layout?.xaxis?.title : layout?.xaxis?.title?.text ?? '',\n yAxisTitle: typeof layout?.yaxis?.title === 'string' ? layout?.yaxis?.title : layout?.yaxis?.title?.text ?? '',\n };\n return titles;\n}\n\nexport const correctYearMonth = (xValues: Datum[] | Datum[][] | TypedArray): any[] => {\n const presentYear = new Date().getFullYear();\n if (xValues.length > 0 && Array.isArray(xValues[0])) {\n throw new Error('updateXValues:: 2D array not supported');\n }\n const dates = (xValues as Datum[]).map(possiblyMonthValue => {\n const parsedDate = `${possiblyMonthValue} 01, ${presentYear}`;\n return isDate(parsedDate) ? new Date(parsedDate) : null;\n });\n for (let i = dates.length - 1; i > 0; i--) {\n const currentMonth = dates[i]!.getMonth();\n const previousMonth = dates[i - 1]!.getMonth();\n const currentYear = dates[i]!.getFullYear();\n const previousYear = dates[i - 1]!.getFullYear();\n if (previousMonth >= currentMonth) {\n dates[i - 1]!.setFullYear(dates[i]!.getFullYear() - 1);\n } else if (previousYear > currentYear) {\n dates[i - 1]!.setFullYear(currentYear);\n }\n }\n xValues = (xValues as Datum[]).map((month, index) => {\n return `${month} 01, ${dates[index]!.getFullYear()}`;\n });\n return xValues;\n};\n\nexport const getColor = (\n legendLabel: string,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): string => {\n if (!colorMap.current.has(legendLabel)) {\n const nextColor = getNextColor(colorMap.current.size + 1, 0, isDarkTheme);\n colorMap.current.set(legendLabel, nextColor);\n return nextColor;\n }\n\n return colorMap.current.get(legendLabel) as string;\n};\n\nconst usesSecondaryYScale = (series: Partial<PlotData>): boolean => {\n return series.yaxis === 'y2';\n};\n\nconst getSecondaryYAxisValues = (\n data: Data[],\n layout: Partial<Layout> | undefined,\n maxAllowedMinY?: number,\n minAllowedMaxY?: number,\n): ISecondaryYAxisValues => {\n let containsSecondaryYAxis = false;\n let yMinValue: number | undefined;\n let yMaxValue: number | undefined;\n\n data.forEach((series: Partial<PlotData>) => {\n if (usesSecondaryYScale(series)) {\n containsSecondaryYAxis = true;\n\n const yValues = series.y as number[];\n if (yValues) {\n yMinValue = Math.min(...yValues);\n yMaxValue = Math.max(...yValues);\n }\n }\n });\n\n if (!containsSecondaryYAxis) {\n return {};\n }\n\n if (typeof yMinValue === 'number' && typeof maxAllowedMinY === 'number') {\n yMinValue = Math.min(yMinValue, maxAllowedMinY);\n }\n if (typeof yMaxValue === 'number' && typeof minAllowedMaxY === 'number') {\n yMaxValue = Math.max(yMaxValue, minAllowedMaxY);\n }\n if (layout?.yaxis2?.range) {\n yMinValue = layout.yaxis2.range[0];\n yMaxValue = layout.yaxis2.range[1];\n }\n\n return {\n secondaryYAxistitle:\n typeof layout?.yaxis2?.title === 'string'\n ? layout.yaxis2.title\n : typeof layout?.yaxis2?.title?.text === 'string'\n ? layout.yaxis2.title.text\n : undefined,\n secondaryYScaleOptions: {\n yMinValue,\n yMaxValue,\n },\n };\n};\n\nexport const getSchemaColors = (\n colors: PieColors | Color | null | undefined,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): string[] | string | undefined => {\n const hexColors: string[] = [];\n if (!colors) {\n return undefined;\n }\n if (isArrayOrTypedArray(colors)) {\n (colors as any[]).forEach((element, index) => {\n const colorString = element?.toString().trim();\n const nextFluentColor = getColor(`Label_${index}`, colorMap, isDarkTheme);\n if (colorString) {\n const parsedColor = d3Color(colorString);\n hexColors.push(parsedColor ? parsedColor.formatHex() : nextFluentColor);\n } else {\n hexColors.push(nextFluentColor);\n }\n });\n } else if (typeof colors === 'string') {\n const parsedColor = d3Color(colors);\n return parsedColor ? parsedColor.formatHex() : getColor('Label_0', colorMap, isDarkTheme);\n }\n return hexColors;\n};\n\nexport const transformPlotlyJsonToDonutProps = (\n input: PlotlySchema,\n colorMap: React.MutableRefObject<Map<string, string>>,\n useFluentVizColorPalette: boolean,\n isDarkTheme?: boolean,\n): IDonutChartProps => {\n const firstData = input.data[0] as PieData;\n let colors: string[] | string | null | undefined = undefined;\n if (!useFluentVizColorPalette) {\n colors = firstData.marker?.colors ? getSchemaColors(firstData?.marker?.colors, colorMap, isDarkTheme) : undefined;\n }\n\n const mapLegendToDataPoint: Record<string, IChartDataPoint> = {};\n firstData.labels?.forEach((label: string, index: number) => {\n let color: string = '';\n if (colors && isStringArray(colors)) {\n color = colors[index % colors.length];\n } else if (typeof colors === 'string') {\n color = colors;\n } else {\n color = getColor(label, colorMap, isDarkTheme);\n }\n //ToDo how to handle string data?\n const value = typeof firstData.values?.[index] === 'number' ? (firstData.values[index] as number) : 1;\n\n if (!mapLegendToDataPoint[label]) {\n mapLegendToDataPoint[label] = {\n legend: label,\n data: value,\n color,\n };\n } else {\n mapLegendToDataPoint[label].data! += value;\n }\n });\n\n const width: number = input.layout?.width ?? 440;\n const height: number = input.layout?.height ?? 220;\n const hideLabels: boolean = firstData.textinfo\n ? !['value', 'percent', 'label+percent'].includes(firstData.textinfo)\n : false;\n const donutMarginHorizontal: number = hideLabels ? 0 : 80;\n const donutMarginVertical: number = 40 + (hideLabels ? 0 : 40);\n const innerRadius: number = firstData.hole\n ? firstData.hole * (Math.min(width - donutMarginHorizontal, height - donutMarginVertical) / 2)\n : 0;\n const { chartTitle } = getTitles(input.layout);\n\n return {\n data: {\n chartTitle,\n chartData: Object.values(mapLegendToDataPoint),\n },\n hideLegend: input.layout?.showlegend === false ? true : false,\n width: input.layout?.width,\n height,\n innerRadius,\n hideLabels,\n showLabelsInPercent: firstData.textinfo ? ['percent', 'label+percent'].includes(firstData.textinfo) : true,\n };\n};\n\nexport const transformPlotlyJsonToVSBCProps = (\n input: PlotlySchema,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n fallbackVSBC?: boolean,\n): IVerticalStackedBarChartProps => {\n const mapXToDataPoints: { [key: string]: IVerticalStackedChartProps } = {};\n let yMaxValue = 0;\n const secondaryYAxisValues = getSecondaryYAxisValues(input.data, input.layout);\n const { legends, hideLegend } = getLegendProps(input.data, input.layout);\n input.data.forEach((series: PlotData, index1: number) => {\n const isXYearCategory = isYearArray(series.x); // Consider year as categorical not numeric continuous axis\n (series.x as Datum[])?.forEach((x: string | number, index2: number) => {\n if (!mapXToDataPoints[x]) {\n mapXToDataPoints[x] = { xAxisPoint: isXYearCategory ? x.toString() : x, chartData: [], lineData: [] };\n }\n const legend: string = legends[index1];\n const yVal: number = (series.y?.[index2] as number) ?? 0;\n if (series.type === 'bar') {\n const color = getColor(legend, colorMap, isDarkTheme);\n mapXToDataPoints[x].chartData.push({\n legend,\n data: yVal,\n color,\n });\n yMaxValue = Math.max(yMaxValue, yVal);\n } else if (series.type === 'scatter' || !!fallbackVSBC) {\n const color = getColor(legend, colorMap, isDarkTheme);\n const lineOptions = getLineOptions(series.line);\n const dashType = series.line?.dash || 'solid';\n const legendShape =\n dashType === 'dot' || dashType === 'dash' || dashType === 'dashdot' ? 'dottedLine' : 'default';\n mapXToDataPoints[x].lineData!.push({\n legend,\n legendShape,\n y: yVal,\n color,\n ...(lineOptions ? { lineOptions } : {}),\n useSecondaryYScale: usesSecondaryYScale(series),\n });\n if (!usesSecondaryYScale(series)) {\n yMaxValue = Math.max(yMaxValue, yVal);\n }\n }\n });\n });\n\n const { chartTitle, xAxisTitle, yAxisTitle } = getTitles(input.layout);\n\n return {\n data: Object.values(mapXToDataPoints),\n width: input.layout?.width,\n height: input.layout?.height ?? 350,\n barWidth: 'auto',\n yMaxValue,\n chartTitle,\n xAxisTitle,\n yAxisTitle,\n mode: 'plotly',\n ...secondaryYAxisValues,\n hideTickOverlap: true,\n hideLegend,\n };\n};\n\nexport const transformPlotlyJsonToGVBCProps = (\n input: PlotlySchema,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): IGroupedVerticalBarChartProps => {\n const mapXToDataPoints: Record<string, IGroupedVerticalBarChartData> = {};\n const secondaryYAxisValues = getSecondaryYAxisValues(input.data, input.layout, 0, 0);\n const { legends, hideLegend } = getLegendProps(input.data, input.layout);\n\n input.data.forEach((series: PlotData, index1: number) => {\n (series.x as Datum[])?.forEach((x: string | number, xIndex: number) => {\n if (!mapXToDataPoints[x]) {\n mapXToDataPoints[x] = { name: x.toString(), series: [] };\n }\n\n if (series.type === 'bar') {\n const legend: string = legends[index1];\n const color = getColor(legend, colorMap, isDarkTheme);\n\n mapXToDataPoints[x].series.push({\n key: legend,\n data: (series.y?.[xIndex] as number) ?? 0,\n xAxisCalloutData: x as string,\n color,\n legend,\n useSecondaryYScale: usesSecondaryYScale(series),\n });\n }\n });\n });\n\n const { chartTitle, xAxisTitle, yAxisTitle } = getTitles(input.layout);\n\n return {\n data: Object.values(mapXToDataPoints),\n width: input.layout?.width,\n height: input.layout?.height ?? 350,\n barwidth: 'auto',\n chartTitle,\n xAxisTitle,\n yAxisTitle,\n mode: 'plotly',\n ...secondaryYAxisValues,\n hideTickOverlap: true,\n hideLegend,\n };\n};\n\nexport const transformPlotlyJsonToVBCProps = (\n input: PlotlySchema,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): IVerticalBarChartProps => {\n const vbcData: IVerticalBarChartDataPoint[] = [];\n const { legends, hideLegend } = getLegendProps(input.data, input.layout);\n\n input.data.forEach((series: Partial<PlotData>, seriesIdx: number) => {\n if (!series.x) {\n return;\n }\n\n const isXString = isStringArray(series.x);\n // TODO: In case of a single bin, add an empty bin of the same size to prevent the\n // default bar width from being used and ensure the bar spans the full intended range.\n const xBins = createBins(series.x, series.xbins?.start, series.xbins?.end, series.xbins?.size);\n const yBins: number[][] = xBins.map(() => []);\n let total = 0;\n\n series.x.forEach((xVal, index) => {\n const binIdx = findBinIndex(xBins, xVal as string | number | null, isXString);\n if (binIdx !== -1) {\n yBins[binIdx].push((series.y?.[index] as number | null | undefined) ?? 1);\n }\n });\n\n const y = yBins.map(bin => {\n const yVal = calculateHistFunc(series.histfunc, bin);\n total += yVal;\n return yVal;\n });\n\n xBins.forEach((bin, index) => {\n const legend: string = legends[seriesIdx];\n const color: string = getColor(legend, colorMap, isDarkTheme);\n const yVal = calculateHistNorm(\n series.histnorm,\n y[index],\n total,\n isXString ? bin.length : getBinSize(bin as Bin<number, number>),\n );\n\n vbcData.push({\n x: isXString ? bin.join(', ') : getBinCenter(bin as Bin<number, number>),\n y: yVal,\n legend,\n color,\n ...(isXString\n ? {}\n : { xAxisCalloutData: `[${(bin as Bin<number, number>).x0} - ${(bin as Bin<number, number>).x1})` }),\n });\n });\n });\n\n const { chartTitle, xAxisTitle, yAxisTitle } = getTitles(input.layout);\n\n return {\n data: vbcData,\n width: input.layout?.width,\n height: input.layout?.height ?? 350,\n supportNegativeData: true,\n chartTitle,\n xAxisTitle,\n yAxisTitle,\n mode: 'histogram',\n hideTickOverlap: true,\n maxBarWidth: 50,\n hideLegend,\n };\n};\n\nexport const transformPlotlyJsonToScatterChartProps = (\n input: PlotlySchema,\n isAreaChart: boolean,\n colorMap: React.MutableRefObject<Map<string, string>>,\n useFluentVizColorPalette: boolean,\n isDarkTheme?: boolean,\n): ILineChartProps | IAreaChartProps => {\n const secondaryYAxisValues = getSecondaryYAxisValues(\n input.data,\n input.layout,\n isAreaChart ? 0 : undefined,\n isAreaChart ? 0 : undefined,\n );\n let mode: string = 'tonexty';\n const { legends, hideLegend } = getLegendProps(input.data, input.layout);\n const chartData: ILineChartPoints[] = input.data.map((series: PlotData, index: number) => {\n const xValues = series.x as Datum[];\n const isString = typeof xValues[0] === 'string';\n const isXDate = isDateArray(xValues);\n const isXNumber = isNumberArray(xValues);\n const legend: string = legends[index];\n const lineColor =\n !useFluentVizColorPalette && series.line?.color\n ? getSchemaColors(series.line?.color, colorMap, isDarkTheme)\n : getColor(legend, colorMap, isDarkTheme);\n mode = series.fill === 'tozeroy' ? 'tozeroy' : 'tonexty';\n const lineOptions = getLineOptions(series.line);\n const dashType = series.line?.dash || 'solid';\n const legendShape = dashType === 'dot' || dashType === 'dash' || dashType === 'dashdot' ? 'dottedLine' : 'default';\n\n return {\n legend,\n legendShape,\n data: xValues.map((x, i: number) => ({\n x: isString ? (isXDate ? new Date(x as string) : isXNumber ? parseFloat(x as string) : x) : x,\n y: series.y[i],\n ...(Array.isArray(series.marker?.size)\n ? { markerSize: series.marker.size[i] }\n : typeof series.marker?.size === 'number'\n ? { markerSize: series.marker.size }\n : {}),\n })),\n color: lineColor,\n ...(lineOptions ? { lineOptions } : {}),\n useSecondaryYScale: usesSecondaryYScale(series),\n } as ILineChartPoints;\n });\n\n const yMinMaxValues = findNumericMinMaxOfY(chartData);\n const { chartTitle, xAxisTitle, yAxisTitle } = getTitles(input.layout);\n\n const chartProps: IChartProps = {\n chartTitle,\n lineChartData: chartData,\n };\n\n if (isAreaChart) {\n return {\n data: chartProps,\n supportNegativeData: true,\n xAxisTitle,\n yAxisTitle,\n ...secondaryYAxisValues,\n mode,\n width: input.layout?.width,\n height: input.layout?.height ?? 350,\n hideTickOverlap: true,\n hideLegend,\n useUTC: false,\n } as IAreaChartProps;\n } else {\n return {\n data: chartProps,\n supportNegativeData: true,\n xAxisTitle,\n yAxisTitle,\n ...secondaryYAxisValues,\n roundedTicks: true,\n yMinValue: yMinMaxValues.startValue,\n yMaxValue: yMinMaxValues.endValue,\n width: input.layout?.width,\n height: input.layout?.height ?? 350,\n hideTickOverlap: true,\n enableReflow: false,\n hideLegend,\n useUTC: false,\n } as ILineChartProps;\n }\n};\n\nexport const transformPlotlyJsonToHorizontalBarWithAxisProps = (\n input: PlotlySchema,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): IHorizontalBarChartWithAxisProps => {\n const { legends, hideLegend } = getLegendProps(input.data, input.layout);\n const chartData: IHorizontalBarChartWithAxisDataPoint[] = input.data\n .map((series: PlotData, index: number) => {\n const legend = legends[index];\n const color = getColor(legend, colorMap, isDarkTheme);\n return (series.y as Datum[]).map((yValue: string, i: number) => {\n return {\n x: series.x[i],\n y: yValue,\n legend,\n color,\n } as IHorizontalBarChartWithAxisDataPoint;\n });\n })\n .reverse()\n .flat()\n //reversing the order to invert the Y bars order as required by plotly.\n .reverse();\n\n const chartHeight: number = input.layout?.height ?? 450;\n const margin: number = input.layout?.margin?.l ?? 0;\n const padding: number = input.layout?.margin?.pad ?? 0;\n const availableHeight: number = chartHeight - margin - padding;\n const numberOfBars = input.data.reduce((total: number, item: PlotData) => {\n return total + (item.y?.length || 0);\n }, 0);\n const scalingFactor = 0.01;\n const gapFactor = 1 / (1 + scalingFactor * numberOfBars);\n const barHeight = availableHeight / (numberOfBars * (1 + gapFactor));\n\n const { chartTitle, xAxisTitle, yAxisTitle } = getTitles(input.layout);\n\n return {\n data: chartData,\n chartTitle,\n xAxisTitle,\n yAxisTitle,\n secondaryYAxistitle:\n typeof input.layout?.yaxis2?.title === 'string'\n ? input.layout?.yaxis2?.title\n : input.layout?.yaxis2?.title?.text || '',\n barHeight,\n showYAxisLables: true,\n height: chartHeight,\n width: input.layout?.width,\n hideTickOverlap: true,\n hideLegend,\n noOfCharsToTruncate: 20,\n showYAxisLablesTooltip: true,\n };\n};\n\nexport const transformPlotlyJsonToHeatmapProps = (input: PlotlySchema): IHeatMapChartProps => {\n const firstData = input.data[0] as Partial<PlotData>;\n const heatmapDataPoints: IHeatMapChartDataPoint[] = [];\n let zMin = Number.POSITIVE_INFINITY;\n let zMax = Number.NEGATIVE_INFINITY;\n\n if (firstData.type === 'histogram2d') {\n const isXString = isStringArray(firstData.x);\n const isYString = isStringArray(firstData.y);\n const xBins = createBins(firstData.x, firstData.xbins?.start, firstData.xbins?.end, firstData.xbins?.size);\n const yBins = createBins(firstData.y, firstData.ybins?.start, firstData.ybins?.end, firstData.ybins?.size);\n const zBins: number[][][] = yBins.map(() => xBins.map(() => []));\n let total = 0;\n\n firstData.x?.forEach((xVal, index) => {\n const xBinIdx = findBinIndex(xBins, xVal as string | number | null, isXString);\n const yBinIdx = findBinIndex(yBins, firstData.y?.[index] as string | number | null | undefined, isYString);\n if (xBinIdx !== -1 && yBinIdx !== -1) {\n zBins[yBinIdx][xBinIdx].push((firstData.z?.[index] as number | null | undefined) ?? 1);\n }\n });\n\n const z = zBins.map(row => {\n return row.map(bin => {\n const zVal = calculateHistFunc(firstData.histfunc, bin);\n total += zVal;\n return zVal;\n });\n });\n\n xBins.forEach((xBin, xIdx) => {\n yBins.forEach((yBin, yIdx) => {\n const zVal = calculateHistNorm(\n firstData.histnorm,\n z[yIdx][xIdx],\n total,\n isXString ? xBin.length : getBinSize(xBin as Bin<number, number>),\n isYString ? yBin.length : getBinSize(yBin as Bin<number, number>),\n );\n\n heatmapDataPoints.push({\n x: isXString ? xBin.join(', ') : getBinCenter(xBin as Bin<number, number>),\n y: isYString ? yBin.join(', ') : getBinCenter(yBin as Bin<number, number>),\n value: zVal,\n rectText: zVal,\n });\n\n if (typeof zVal === 'number') {\n zMin = Math.min(zMin, zVal);\n zMax = Math.max(zMax, zVal);\n }\n });\n });\n } else {\n (firstData.x as Datum[])?.forEach((xVal, xIdx: number) => {\n firstData.y?.forEach((yVal: any, yIdx: number) => {\n const zVal = (firstData.z as number[][])?.[yIdx]?.[xIdx];\n\n heatmapDataPoints.push({\n x: input.layout?.xaxis?.type === 'date' ? (xVal as Date) : xVal ?? 0,\n y: input.layout?.yaxis?.type === 'date' ? (yVal as Date) : yVal,\n value: zVal,\n rectText: zVal,\n });\n\n if (typeof zVal === 'number') {\n zMin = Math.min(zMin, zVal);\n zMax = Math.max(zMax, zVal);\n }\n });\n });\n }\n\n const heatmapData: IHeatMapChartData = {\n legend: firstData.name ?? '',\n data: heatmapDataPoints,\n value: 0,\n };\n\n // Initialize domain and range to default values\n const defaultDomain = [zMin, (zMax + zMin) / 2, zMax];\n const defaultRange = [\n getColorFromToken(DataVizPalette.color1),\n getColorFromToken(DataVizPalette.color2),\n getColorFromToken(DataVizPalette.color3),\n ];\n const domainValuesForColorScale: number[] = Array.isArray(firstData.colorscale)\n ? (firstData.colorscale as Array<[number, string]>).map(arr => arr[0] * (zMax - zMin) + zMin)\n : defaultDomain;\n\n const rangeValuesForColorScale: string[] = Array.isArray(firstData.colorscale)\n ? (firstData.colorscale as Array<[number, string]>).map(arr => arr[1])\n : defaultRange;\n\n const { chartTitle, xAxisTitle, yAxisTitle } = getTitles(input.layout);\n\n return {\n data: [heatmapData],\n domainValuesForColorScale,\n rangeValuesForColorScale,\n hideLegend: true,\n showYAxisLables: true,\n chartTitle,\n xAxisTitle,\n yAxisTitle,\n sortOrder: 'none',\n width: input.layout?.width,\n height: input.layout?.height ?? 350,\n hideTickOverlap: true,\n noOfCharsToTruncate: 20,\n showYAxisLablesTooltip: true,\n };\n};\n\nexport const transformPlotlyJsonToSankeyProps = (\n input: PlotlySchema,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): ISankeyChartProps => {\n const { link, node } = input.data[0] as SankeyData;\n const validLinks = (link?.value ?? [])\n .map((val: number, index: number) => ({\n value: val,\n source: link?.source![index],\n target: link?.target![index],\n }))\n // eslint-disable-next-line @typescript-eslint/no-shadow\n // Filter out negative nodes, unequal nodes and self-references (circular links)\n .filter(x => x.source >= 0 && x.target >= 0 && x.source !== x.target);\n\n const sankeyChartData = {\n nodes: node.label?.map((label: string, index: number) => {\n const color = getColor(label, colorMap, isDarkTheme);\n\n return {\n nodeId: index,\n name: label,\n color,\n };\n }),\n links: validLinks.map((validLink: any, index: number) => {\n return {\n ...validLink,\n };\n }),\n } as ISankeyChartData;\n\n const styles: ISankeyChartProps['styles'] = {\n root: {\n ...(input.layout?.font?.size ? { fontSize: input.layout.font?.size } : {}),\n },\n };\n\n const { chartTitle } = getTitles(input.layout);\n\n return {\n data: {\n chartTitle,\n SankeyChartData: sankeyChartData,\n },\n width: input.layout?.width,\n height: input.layout?.height ?? 468,\n styles,\n enableReflow: true,\n };\n};\n\nexport const transformPlotlyJsonToGaugeProps = (\n input: PlotlySchema,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): IGaugeChartProps => {\n const firstData = input.data[0] as PlotData;\n\n const segments = firstData.gauge?.steps?.length\n ? firstData.gauge.steps.map((step: any, index: number): IGaugeChartSegment => {\n const legend = step.name || `Segment ${index + 1}`;\n const color = getColor(legend, colorMap, isDarkTheme);\n return {\n legend,\n size: step.range?.[1] - step.range?.[0],\n color,\n };\n })\n : [\n {\n legend: 'Current',\n size: firstData.value ?? 0 - (firstData.gauge?.axis?.range?.[0] ?? 0),\n color: getColor('Current', colorMap, isDarkTheme),\n },\n {\n legend: 'Target',\n size: (firstData.gauge?.axis?.range?.[1] ?? 100) - (firstData.value ?? 0),\n color: DataVizPalette.disabled,\n },\n ];\n\n let sublabel: string | undefined;\n let sublabelColor: string | undefined;\n if (firstData.delta?.reference) {\n const diff = firstData.value - firstData.delta.reference;\n if (diff >= 0) {\n sublabel = `\\u25B2 ${diff}`;\n const color = getColorFromToken(DataVizPalette.success, isDarkTheme);\n sublabelColor = color;\n } else {\n sublabel = `\\u25BC ${Math.abs(diff)}`;\n const color = getColorFromToken(DataVizPalette.error, isDarkTheme);\n sublabelColor = color;\n }\n }\n\n const styles: IGaugeChartProps['styles'] = {\n sublabel: {\n fill: sublabelColor,\n },\n };\n\n const { chartTitle } = getTitles(input.layout);\n\n return {\n segments,\n chartValue: firstData.value ?? 0,\n chartTitle,\n sublabel,\n // range values can be null\n minValue: typeof firstData.gauge?.axis?.range?.[0] === 'number' ? firstData.gauge?.axis?.range?.[0] : undefined,\n maxValue: typeof firstData.gauge?.axis?.range?.[1] === 'number' ? firstData.gauge?.axis?.range?.[1] : undefined,\n chartValueFormat: () => firstData.value?.toString() ?? '',\n width: input.layout?.width,\n height: input.layout?.height ?? 220,\n styles,\n variant: firstData.gauge?.steps?.length ? GaugeChartVariant.MultipleSegments : GaugeChartVariant.SingleSegment,\n };\n};\n\nexport const projectPolarToCartesian = (input: PlotlySchema): PlotlySchema => {\n const projection: PlotlySchema = { ...input };\n for (let sindex = 0; sindex < input.data.length; sindex++) {\n const series: PlotData = input.data[sindex] as PlotData;\n series.x = [];\n series.y = [];\n for (let ptindex = 0; ptindex < series.r.length; ptindex++) {\n const thetaRad = ((series.theta[ptindex] as number) * Math.PI) / 180;\n const radius = series.r[ptindex] as number;\n series.x[ptindex] = radius * Math.cos(thetaRad);\n series.y[ptindex] = radius * Math.sin(thetaRad);\n }\n projection.data[sindex] = series;\n }\n\n return projection;\n};\n\nfunction isPlainObject(obj: any) {\n if (window && window.process && window.process.versions) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n }\n\n return (\n Object.prototype.toString.call(obj) === '[object Object]' &&\n Object.getPrototypeOf(obj).hasOwnProperty('hasOwnProperty')\n );\n}\n\nvar arrayAttributes: any[] = [];\nvar stack: any[] = [];\nvar isArrayStack: any[] = [];\nvar baseContainer: any, baseAttrName: any;\n/**\n * Interate iteratively through the trace object and find all the array attributes.\n * 1 trace record = 1 series of data\n * @param trace\n */\nexport function findArrayAttributes(trace: any) {\n // Init basecontainer and baseAttrName\n crawlIntoTrace(baseContainer, 0, '');\n}\n\nfunction crawlIntoTrace(container: any, i: number, astrPartial: any) {\n var item = container[stack[i]];\n var newAstrPartial = astrPartial + stack[i];\n if (i === stack.length - 1) {\n if (isArrayOrTypedArray(item)) {\n arrayAttributes.push(baseAttrName + newAstrPartial);\n }\n } else {\n if (isArrayStack[i]) {\n if (Array.isArray(item)) {\n for (var j = 0; j < item.length; j++) {\n if (isPlainObject(item[j])) {\n crawlIntoTrace(item[j], i + 1, newAstrPartial + '[' + j + '].');\n }\n }\n }\n } else if (isPlainObject(item)) {\n crawlIntoTrace(item, i + 1, newAstrPartial + '.');\n }\n }\n}\n\nfunction getLineOptions(line: Partial<ScatterLine> | undefined): ILineChartLineOptions | undefined {\n if (!line) {\n return;\n }\n\n let lineOptions: ILineChartLineOptions = {};\n if (line.dash) {\n lineOptions = { ...lineOptions, ...dashOptions[line.dash] };\n }\n\n switch (line.shape) {\n case 'spline':\n const smoothing = typeof line.smoothing === 'number' ? line.smoothing : 1;\n lineOptions.curve = d3CurveCardinal.tension(1 - smoothing / 1.3);\n break;\n case 'hv':\n lineOptions.curve = 'stepAfter';\n break;\n case 'vh':\n lineOptions.curve = 'stepBefore';\n break;\n case 'hvh':\n lineOptions.curve = 'step';\n break;\n default:\n lineOptions.curve = 'linear';\n }\n\n return Object.keys(lineOptions).length > 0 ? lineOptions : undefined;\n}\n\nconst isStringArray = (arr: any) => {\n return isArrayOfType(arr, (value: any) => typeof value === 'string');\n};\n\n// TODO: Use binary search to find the appropriate bin for numeric value.\nconst findBinIndex = (\n bins: string[][] | Bin<number, number>[],\n value: string | number | null | undefined,\n isString: boolean,\n) => {\n if (typeof value === 'undefined' || value === null) {\n return -1;\n }\n\n return isString\n ? (bins as string[][]).findIndex(bin => bin.includes(value as string))\n : (bins as Bin<number, number>[]).findIndex(\n (bin, index) =>\n (value as number) >= bin.x0! &&\n (index === bins.length - 1 ? (value as number) <= bin.x1! : (value as number) < bin.x1!),\n );\n};\n\nconst getBinSize = (bin: Bin<number, number>) => {\n return bin.x1! - bin.x0!;\n};\n\nconst getBinCenter = (bin: Bin<number, number>) => {\n return (bin.x1! + bin.x0!) / 2;\n};\n\n// TODO: Add support for date axes\nconst createBins = (\n data: TypedArray | Datum[] | Datum[][] | undefined,\n binStart?: number | string,\n binEnd?: number | string,\n binSize?: number | string,\n) => {\n if (!data || data.length === 0) {\n return [];\n }\n\n if (isStringArray(data)) {\n const categories = Array.from(new Set(data as string[]));\n const start = typeof binStart === 'number' ? Math.ceil(binStart) : 0;\n const stop = typeof binEnd === 'number' ? Math.floor(binEnd) + 1 : categories.length;\n const step = typeof binSize === 'number' ? binSize : 1;\n\n return d3Range(start, stop, step).map(i => categories.slice(i, i + step));\n }\n\n const scale = d3ScaleLinear()\n .domain(d3Extent<number>(data as number[]) as [number, number])\n .nice();\n let [minVal, maxVal] = scale.domain();\n\n minVal = typeof binStart === 'number' ? binStart : minVal;\n maxVal = typeof binEnd === 'number' ? binEnd : maxVal;\n\n const binGenerator = d3Bin().domain([minVal, maxVal]);\n\n if (typeof binSize === 'number' && binSize > 0) {\n const thresholds: number[] = [];\n const precision = Math.max(getPrecision(minVal), getPrecision(binSize));\n let th = precisionRound(minVal, precision);\n\n while (th < precisionRound(maxVal + binSize, precision)) {\n thresholds.push(th);\n th = precisionRound(th + binSize, precision);\n }\n\n minVal = thresholds[0];\n maxVal = thresholds[thresholds.length - 1];\n binGenerator.domain([minVal, maxVal]).thresholds(thresholds);\n\n // When the domain ends at the last threshold (maxVal), d3Bin creates an extra final bin where\n // both x0 and x1 are equal to maxVal and inclusive. The previous bin also has x1 equal to maxVal,\n // but it is exclusive. To maintain consistent bin widths, remove the final bin,\n // making the previous bin the last one, with both x0 and x1 inclusive.\n return binGenerator(data as number[]).slice(0, -1);\n }\n\n return binGenerator(data as number[]);\n};\n\nconst calculateHistFunc = (histfunc: PlotData['histfunc'] | undefined, bin: number[]) => {\n switch (histfunc) {\n case 'sum':\n return d3Sum(bin);\n case 'avg':\n return bin.length === 0 ? 0 : d3Sum(bin) / bin.length;\n case 'min':\n return d3Min(bin) ?? 0;\n case 'max':\n return d3Max(bin) ?? 0;\n default:\n return bin.length;\n }\n};\n\nconst calculateHistNorm = (\n histnorm: PlotData['histnorm'] | undefined,\n value: number,\n total: number,\n dx: number,\n dy: number = 1,\n) => {\n switch (histnorm) {\n case 'percent':\n return total === 0 ? 0 : (value / total) * 100;\n case 'probability':\n return total === 0 ? 0 : value / total;\n case 'density':\n return dx * dy === 0 ? 0 : value / (dx * dy);\n case 'probability density':\n return total * dx * dy === 0 ? 0 : value / (total * dx * dy);\n default:\n return value;\n }\n};\n\nconst getPrecision = (value: number) => {\n return value.toString().split('.')[1]?.length ?? 0;\n};\n\nconst precisionRound = (value: number, precision: number) => {\n const factor = Math.pow(10, precision);\n return Math.round(value * factor) / factor;\n};\n\nconst getLegendProps = (data: Data[], layout: Partial<Layout> | undefined) => {\n const legends: string[] = [];\n if (data.length === 1) {\n legends.push(data[0].name || '');\n } else {\n data.forEach((series, index) => {\n legends.push(series.name || `Series ${index + 1}`);\n });\n }\n\n const hideLegends = data.every((series: Partial<PlotData>) => series.showlegend === false);\n\n return {\n legends,\n hideLegend:\n layout?.showlegend === false || (layout?.showlegend !== true && legends.length < 2) ? true : hideLegends,\n };\n};\n"]}
1
+ {"version":3,"file":"PlotlySchemaAdapter.js","sourceRoot":"../src/","sources":["components/DeclarativeChart/PlotlySchemaAdapter.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable one-var */\n/* eslint-disable vars-on-top */\n/* eslint-disable no-var */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport * as React from 'react';\nimport {\n bin as d3Bin,\n extent as d3Extent,\n sum as d3Sum,\n min as d3Min,\n max as d3Max,\n range as d3Range,\n Bin,\n} from 'd3-array';\nimport { scaleLinear as d3ScaleLinear } from 'd3-scale';\nimport { IDonutChartProps } from '../DonutChart/index';\nimport {\n IChartDataPoint,\n IChartProps,\n IHorizontalBarChartWithAxisDataPoint,\n ILineChartPoints,\n IVerticalStackedChartProps,\n IHeatMapChartData,\n IHeatMapChartDataPoint,\n IGroupedVerticalBarChartData,\n IVerticalBarChartDataPoint,\n ISankeyChartData,\n ILineChartLineOptions,\n} from '../../types/IDataPoint';\nimport { ISankeyChartProps } from '../SankeyChart/index';\nimport { IVerticalStackedBarChartProps } from '../VerticalStackedBarChart/index';\nimport { IHorizontalBarChartWithAxisProps } from '../HorizontalBarChartWithAxis/index';\nimport { ILineChartProps } from '../LineChart/index';\nimport { IAreaChartProps } from '../AreaChart/index';\nimport { IHeatMapChartProps } from '../HeatMapChart/index';\nimport { DataVizPalette, getColorFromToken, getNextColor } from '../../utilities/colors';\nimport { GaugeChartVariant, IGaugeChartProps, IGaugeChartSegment } from '../GaugeChart/index';\nimport { IGroupedVerticalBarChartProps } from '../GroupedVerticalBarChart/index';\nimport { IVerticalBarChartProps } from '../VerticalBarChart/index';\nimport { findNumericMinMaxOfY } from '../../utilities/utilities';\nimport type {\n Datum,\n Layout,\n PlotlySchema,\n PieData,\n PlotData,\n SankeyData,\n ScatterLine,\n TypedArray,\n Data,\n PieColors,\n Color,\n} from '@fluentui/chart-utilities';\nimport {\n isArrayOfType,\n isArrayOrTypedArray,\n isDate,\n isDateArray,\n isNumberArray,\n isYearArray,\n} from '@fluentui/chart-utilities';\nimport { timeParse } from 'd3-time-format';\nimport { curveCardinal as d3CurveCardinal } from 'd3-shape';\nimport { color as d3Color } from 'd3-color';\n\ninterface ISecondaryYAxisValues {\n secondaryYAxistitle?: string;\n secondaryYScaleOptions?: { yMinValue?: number; yMaxValue?: number };\n}\n\nconst dashOptions = {\n dot: {\n strokeDasharray: '1, 5',\n strokeLinecap: 'round',\n strokeWidth: '2',\n lineBorderWidth: '4',\n },\n dash: {\n strokeDasharray: '5, 5',\n strokeLinecap: 'butt',\n strokeWidth: '2',\n lineBorderWidth: '4',\n },\n longdash: {\n strokeDasharray: '10, 5',\n strokeLinecap: 'butt',\n strokeWidth: '2',\n lineBorderWidth: '4',\n },\n dashdot: {\n strokeDasharray: '5, 5, 1, 5',\n strokeLinecap: 'butt',\n strokeWidth: '2',\n lineBorderWidth: '4',\n },\n longdashdot: {\n strokeDasharray: '10, 5, 1, 5',\n strokeLinecap: 'butt',\n strokeWidth: '2',\n lineBorderWidth: '4',\n },\n solid: {\n strokeDasharray: '0',\n strokeLinecap: 'butt',\n strokeWidth: '2',\n lineBorderWidth: '4',\n },\n} as const;\n\nconst isMonth = (possiblyMonthValue: any): boolean => {\n const parseFullMonth = timeParse('%B');\n const parseShortMonth = timeParse('%b');\n return parseFullMonth(possiblyMonthValue) !== null || parseShortMonth(possiblyMonthValue) !== null;\n};\n\nexport const isMonthArray = (data: Datum[] | Datum[][] | TypedArray): boolean => {\n return isArrayOfType(data, isMonth);\n};\n\nfunction getTitles(layout: Partial<Layout> | undefined) {\n const titles = {\n chartTitle: typeof layout?.title === 'string' ? layout.title : layout?.title?.text ?? '',\n xAxisTitle: typeof layout?.xaxis?.title === 'string' ? layout?.xaxis?.title : layout?.xaxis?.title?.text ?? '',\n yAxisTitle: typeof layout?.yaxis?.title === 'string' ? layout?.yaxis?.title : layout?.yaxis?.title?.text ?? '',\n };\n return titles;\n}\n\nexport const correctYearMonth = (xValues: Datum[] | Datum[][] | TypedArray): any[] => {\n const presentYear = new Date().getFullYear();\n if (xValues.length > 0 && Array.isArray(xValues[0])) {\n throw new Error('updateXValues:: 2D array not supported');\n }\n const dates = (xValues as Datum[]).map(possiblyMonthValue => {\n const parsedDate = `${possiblyMonthValue} 01, ${presentYear}`;\n return isDate(parsedDate) ? new Date(parsedDate) : null;\n });\n for (let i = dates.length - 1; i > 0; i--) {\n const currentMonth = dates[i]!.getMonth();\n const previousMonth = dates[i - 1]!.getMonth();\n const currentYear = dates[i]!.getFullYear();\n const previousYear = dates[i - 1]!.getFullYear();\n if (previousMonth >= currentMonth) {\n dates[i - 1]!.setFullYear(dates[i]!.getFullYear() - 1);\n } else if (previousYear > currentYear) {\n dates[i - 1]!.setFullYear(currentYear);\n }\n }\n xValues = (xValues as Datum[]).map((month, index) => {\n return `${month} 01, ${dates[index]!.getFullYear()}`;\n });\n return xValues;\n};\n\nexport const getColor = (\n legendLabel: string,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): string => {\n if (!colorMap.current.has(legendLabel)) {\n const nextColor = getNextColor(colorMap.current.size + 1, 0, isDarkTheme);\n colorMap.current.set(legendLabel, nextColor);\n return nextColor;\n }\n\n return colorMap.current.get(legendLabel) as string;\n};\n\nconst usesSecondaryYScale = (series: Partial<PlotData>): boolean => {\n return series.yaxis === 'y2';\n};\n\nconst getSecondaryYAxisValues = (\n data: Data[],\n layout: Partial<Layout> | undefined,\n maxAllowedMinY?: number,\n minAllowedMaxY?: number,\n): ISecondaryYAxisValues => {\n let containsSecondaryYAxis = false;\n let yMinValue: number | undefined;\n let yMaxValue: number | undefined;\n\n data.forEach((series: Partial<PlotData>) => {\n if (usesSecondaryYScale(series)) {\n containsSecondaryYAxis = true;\n\n const yValues = series.y as number[];\n if (yValues) {\n yMinValue = Math.min(...yValues);\n yMaxValue = Math.max(...yValues);\n }\n }\n });\n\n if (!containsSecondaryYAxis) {\n return {};\n }\n\n if (typeof yMinValue === 'number' && typeof maxAllowedMinY === 'number') {\n yMinValue = Math.min(yMinValue, maxAllowedMinY);\n }\n if (typeof yMaxValue === 'number' && typeof minAllowedMaxY === 'number') {\n yMaxValue = Math.max(yMaxValue, minAllowedMaxY);\n }\n if (layout?.yaxis2?.range) {\n yMinValue = layout.yaxis2.range[0];\n yMaxValue = layout.yaxis2.range[1];\n }\n\n return {\n secondaryYAxistitle:\n typeof layout?.yaxis2?.title === 'string'\n ? layout.yaxis2.title\n : typeof layout?.yaxis2?.title?.text === 'string'\n ? layout.yaxis2.title.text\n : undefined,\n secondaryYScaleOptions: {\n yMinValue,\n yMaxValue,\n },\n };\n};\n\nexport const getSchemaColors = (\n colors: PieColors | Color | Color[] | string | null | undefined,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): string[] | string | undefined => {\n const hexColors: string[] = [];\n if (!colors) {\n return undefined;\n }\n if (isArrayOrTypedArray(colors)) {\n (colors as any[]).forEach((element, index) => {\n const colorString = element?.toString().trim();\n const nextFluentColor = getColor(`Label_${index}`, colorMap, isDarkTheme);\n if (colorString) {\n const parsedColor = d3Color(colorString);\n hexColors.push(parsedColor ? parsedColor.formatHex() : nextFluentColor);\n } else {\n hexColors.push(nextFluentColor);\n }\n });\n } else if (typeof colors === 'string') {\n const parsedColor = d3Color(colors);\n return parsedColor ? parsedColor.formatHex() : getColor('Label_0', colorMap, isDarkTheme);\n }\n return hexColors;\n};\n\nexport const _extractColor = (\n useFluentVizColorPalette: boolean,\n colors: PieColors | Color | Color[] | string | null | undefined,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): string | string[] | undefined => {\n return !useFluentVizColorPalette && colors ? getSchemaColors(colors, colorMap, isDarkTheme) : undefined;\n};\n\nexport const _resolveColor = (\n extractedColors: string[] | string | null | undefined,\n index: number,\n legend: string,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): string => {\n let color = '';\n if (extractedColors && isArrayOrTypedArray(extractedColors) && extractedColors[index]) {\n color = extractedColors[index % extractedColors.length];\n } else if (typeof extractedColors === 'string') {\n color = extractedColors;\n } else {\n color = getColor(legend, colorMap, isDarkTheme);\n }\n return color;\n};\n\nexport const transformPlotlyJsonToDonutProps = (\n input: PlotlySchema,\n colorMap: React.MutableRefObject<Map<string, string>>,\n useFluentVizColorPalette: boolean,\n isDarkTheme?: boolean,\n): IDonutChartProps => {\n const firstData = input.data[0] as PieData;\n // extract colors for each series only once\n const colors: string[] | string | null | undefined = _extractColor(\n useFluentVizColorPalette,\n firstData?.marker?.colors,\n colorMap,\n isDarkTheme,\n );\n\n const mapLegendToDataPoint: Record<string, IChartDataPoint> = {};\n firstData.labels?.forEach((label: string, index: number) => {\n // resolve color for each legend from the extracted colors\n const color: string = _resolveColor(colors, index, label, colorMap, isDarkTheme);\n //ToDo how to handle string data?\n const value = typeof firstData.values?.[index] === 'number' ? (firstData.values[index] as number) : 1;\n\n if (!mapLegendToDataPoint[label]) {\n mapLegendToDataPoint[label] = {\n legend: label,\n data: value,\n color,\n };\n } else {\n mapLegendToDataPoint[label].data! += value;\n }\n });\n\n const width: number = input.layout?.width ?? 440;\n const height: number = input.layout?.height ?? 220;\n const hideLabels: boolean = firstData.textinfo\n ? !['value', 'percent', 'label+percent'].includes(firstData.textinfo)\n : false;\n const donutMarginHorizontal: number = hideLabels ? 0 : 80;\n const donutMarginVertical: number = 40 + (hideLabels ? 0 : 40);\n const innerRadius: number = firstData.hole\n ? firstData.hole * (Math.min(width - donutMarginHorizontal, height - donutMarginVertical) / 2)\n : 0;\n const { chartTitle } = getTitles(input.layout);\n\n return {\n data: {\n chartTitle,\n chartData: Object.values(mapLegendToDataPoint),\n },\n hideLegend: input.layout?.showlegend === false ? true : false,\n width: input.layout?.width,\n height,\n innerRadius,\n hideLabels,\n showLabelsInPercent: firstData.textinfo ? ['percent', 'label+percent'].includes(firstData.textinfo) : true,\n };\n};\n\nexport const transformPlotlyJsonToVSBCProps = (\n input: PlotlySchema,\n colorMap: React.MutableRefObject<Map<string, string>>,\n useFluentVizColorPalette: boolean,\n isDarkTheme?: boolean,\n fallbackVSBC?: boolean,\n): IVerticalStackedBarChartProps => {\n const mapXToDataPoints: { [key: string]: IVerticalStackedChartProps } = {};\n let yMaxValue = 0;\n const secondaryYAxisValues = getSecondaryYAxisValues(input.data, input.layout);\n const { legends, hideLegend } = getLegendProps(input.data, input.layout);\n input.data.forEach((series: PlotData, index1: number) => {\n const isXYearCategory = isYearArray(series.x); // Consider year as categorical not numeric continuous axis\n // extract bar colors for each series only once\n const extractedBarColors = _extractColor(useFluentVizColorPalette, series.marker?.color, colorMap, isDarkTheme) as\n | string[]\n | string\n | undefined;\n // extract line colors for each series only once\n const extractedLineColors = _extractColor(useFluentVizColorPalette, series.line?.color, colorMap, isDarkTheme) as\n | string[]\n | string\n | undefined;\n (series.x as Datum[])?.forEach((x: string | number, index2: number) => {\n if (!mapXToDataPoints[x]) {\n mapXToDataPoints[x] = { xAxisPoint: isXYearCategory ? x.toString() : x, chartData: [], lineData: [] };\n }\n const legend: string = legends[index1];\n // resolve color for each legend's bars from the extracted colors\n const color = _resolveColor(extractedBarColors, index1, legend, colorMap, isDarkTheme);\n const yVal: number = (series.y?.[index2] as number) ?? 0;\n if (series.type === 'bar') {\n mapXToDataPoints[x].chartData.push({\n legend,\n data: yVal,\n color,\n });\n yMaxValue = Math.max(yMaxValue, yVal);\n } else if (series.type === 'scatter' || !!fallbackVSBC) {\n const lineColor = _resolveColor(extractedLineColors, index1, legend, colorMap, isDarkTheme);\n const lineOptions = getLineOptions(series.line);\n const dashType = series.line?.dash || 'solid';\n const legendShape =\n dashType === 'dot' || dashType === 'dash' || dashType === 'dashdot' ? 'dottedLine' : 'default';\n mapXToDataPoints[x].lineData!.push({\n legend,\n legendShape,\n y: yVal,\n color: lineColor,\n ...(lineOptions ? { lineOptions } : {}),\n useSecondaryYScale: usesSecondaryYScale(series),\n });\n if (!usesSecondaryYScale(series)) {\n yMaxValue = Math.max(yMaxValue, yVal);\n }\n }\n });\n });\n\n const { chartTitle, xAxisTitle, yAxisTitle } = getTitles(input.layout);\n\n return {\n data: Object.values(mapXToDataPoints),\n width: input.layout?.width,\n height: input.layout?.height ?? 350,\n barWidth: 'auto',\n yMaxValue,\n chartTitle,\n xAxisTitle,\n yAxisTitle,\n mode: 'plotly',\n ...secondaryYAxisValues,\n hideTickOverlap: true,\n hideLegend,\n };\n};\n\nexport const transformPlotlyJsonToGVBCProps = (\n input: PlotlySchema,\n colorMap: React.MutableRefObject<Map<string, string>>,\n useFluentVizColorPalette: boolean,\n isDarkTheme?: boolean,\n): IGroupedVerticalBarChartProps => {\n const mapXToDataPoints: Record<string, IGroupedVerticalBarChartData> = {};\n const secondaryYAxisValues = getSecondaryYAxisValues(input.data, input.layout, 0, 0);\n const { legends, hideLegend } = getLegendProps(input.data, input.layout);\n\n input.data.forEach((series: PlotData, index1: number) => {\n // extract colors for each series only once\n const extractedColors = _extractColor(useFluentVizColorPalette, series.marker?.color, colorMap, isDarkTheme) as\n | string[]\n | string\n | undefined;\n (series.x as Datum[])?.forEach((x: string | number, xIndex: number) => {\n if (!mapXToDataPoints[x]) {\n mapXToDataPoints[x] = { name: x.toString(), series: [] };\n }\n\n if (series.type === 'bar') {\n const legend: string = legends[index1];\n // resolve color for each legend's bars from the extracted colors\n const color = _resolveColor(extractedColors, index1, legend, colorMap, isDarkTheme);\n mapXToDataPoints[x].series.push({\n key: legend,\n data: (series.y?.[xIndex] as number) ?? 0,\n xAxisCalloutData: x as string,\n color,\n legend,\n useSecondaryYScale: usesSecondaryYScale(series),\n });\n }\n });\n });\n\n const { chartTitle, xAxisTitle, yAxisTitle } = getTitles(input.layout);\n\n return {\n data: Object.values(mapXToDataPoints),\n width: input.layout?.width,\n height: input.layout?.height ?? 350,\n barwidth: 'auto',\n chartTitle,\n xAxisTitle,\n yAxisTitle,\n mode: 'plotly',\n ...secondaryYAxisValues,\n hideTickOverlap: true,\n hideLegend,\n };\n};\n\nexport const transformPlotlyJsonToVBCProps = (\n input: PlotlySchema,\n colorMap: React.MutableRefObject<Map<string, string>>,\n useFluentVizColorPalette: boolean,\n isDarkTheme?: boolean,\n): IVerticalBarChartProps => {\n const vbcData: IVerticalBarChartDataPoint[] = [];\n const { legends, hideLegend } = getLegendProps(input.data, input.layout);\n\n input.data.forEach((series: Partial<PlotData>, seriesIdx: number) => {\n if (!series.x) {\n return;\n }\n // extract colors for each series only once\n const extractedColors = _extractColor(useFluentVizColorPalette, series.marker?.color, colorMap, isDarkTheme) as\n | string[]\n | string\n | undefined;\n const isXString = isStringArray(series.x);\n // TODO: In case of a single bin, add an empty bin of the same size to prevent the\n // default bar width from being used and ensure the bar spans the full intended range.\n const xBins = createBins(series.x, series.xbins?.start, series.xbins?.end, series.xbins?.size);\n const yBins: number[][] = xBins.map(() => []);\n let total = 0;\n\n series.x.forEach((xVal, index) => {\n const binIdx = findBinIndex(xBins, xVal as string | number | null, isXString);\n if (binIdx !== -1) {\n yBins[binIdx].push((series.y?.[index] as number | null | undefined) ?? 1);\n }\n });\n\n const y = yBins.map(bin => {\n const yVal = calculateHistFunc(series.histfunc, bin);\n total += yVal;\n return yVal;\n });\n\n xBins.forEach((bin, index) => {\n const legend: string = legends[seriesIdx];\n // resolve color for each legend's bars from the extracted colors\n const color = _resolveColor(extractedColors, seriesIdx, legend, colorMap, isDarkTheme);\n const yVal = calculateHistNorm(\n series.histnorm,\n y[index],\n total,\n isXString ? bin.length : getBinSize(bin as Bin<number, number>),\n );\n\n vbcData.push({\n x: isXString ? bin.join(', ') : getBinCenter(bin as Bin<number, number>),\n y: yVal,\n legend,\n color,\n ...(isXString\n ? {}\n : { xAxisCalloutData: `[${(bin as Bin<number, number>).x0} - ${(bin as Bin<number, number>).x1})` }),\n });\n });\n });\n\n const { chartTitle, xAxisTitle, yAxisTitle } = getTitles(input.layout);\n\n return {\n data: vbcData,\n width: input.layout?.width,\n height: input.layout?.height ?? 350,\n supportNegativeData: true,\n chartTitle,\n xAxisTitle,\n yAxisTitle,\n mode: 'histogram',\n hideTickOverlap: true,\n maxBarWidth: 50,\n hideLegend,\n };\n};\n\nexport const transformPlotlyJsonToScatterChartProps = (\n input: PlotlySchema,\n isAreaChart: boolean,\n colorMap: React.MutableRefObject<Map<string, string>>,\n useFluentVizColorPalette: boolean,\n isDarkTheme?: boolean,\n): ILineChartProps | IAreaChartProps => {\n const secondaryYAxisValues = getSecondaryYAxisValues(\n input.data,\n input.layout,\n isAreaChart ? 0 : undefined,\n isAreaChart ? 0 : undefined,\n );\n let mode: string = 'tonexty';\n const { legends, hideLegend } = getLegendProps(input.data, input.layout);\n const chartData: ILineChartPoints[] = input.data.map((series: PlotData, index: number) => {\n // extract colors for each series only once\n const extractedColors = _extractColor(useFluentVizColorPalette, series.line?.color, colorMap, isDarkTheme) as\n | string[]\n | string\n | undefined;\n const xValues = series.x as Datum[];\n const isString = typeof xValues[0] === 'string';\n const isXDate = isDateArray(xValues);\n const isXNumber = isNumberArray(xValues);\n const legend: string = legends[index];\n // resolve color for each legend's lines from the extracted colors\n const lineColor = _resolveColor(extractedColors, index, legend, colorMap, isDarkTheme);\n mode = series.fill === 'tozeroy' ? 'tozeroy' : 'tonexty';\n const lineOptions = getLineOptions(series.line);\n const dashType = series.line?.dash || 'solid';\n const legendShape = dashType === 'dot' || dashType === 'dash' || dashType === 'dashdot' ? 'dottedLine' : 'default';\n\n return {\n legend,\n legendShape,\n data: xValues.map((x, i: number) => ({\n x: isString ? (isXDate ? new Date(x as string) : isXNumber ? parseFloat(x as string) : x) : x,\n y: series.y[i],\n ...(Array.isArray(series.marker?.size)\n ? { markerSize: series.marker.size[i] }\n : typeof series.marker?.size === 'number'\n ? { markerSize: series.marker.size }\n : {}),\n })),\n color: lineColor,\n ...(lineOptions ? { lineOptions } : {}),\n useSecondaryYScale: usesSecondaryYScale(series),\n } as ILineChartPoints;\n });\n\n const yMinMaxValues = findNumericMinMaxOfY(chartData);\n const { chartTitle, xAxisTitle, yAxisTitle } = getTitles(input.layout);\n\n const chartProps: IChartProps = {\n chartTitle,\n lineChartData: chartData,\n };\n\n if (isAreaChart) {\n return {\n data: chartProps,\n supportNegativeData: true,\n xAxisTitle,\n yAxisTitle,\n ...secondaryYAxisValues,\n mode,\n width: input.layout?.width,\n height: input.layout?.height ?? 350,\n hideTickOverlap: true,\n hideLegend,\n useUTC: false,\n } as IAreaChartProps;\n } else {\n return {\n data: chartProps,\n supportNegativeData: true,\n xAxisTitle,\n yAxisTitle,\n ...secondaryYAxisValues,\n roundedTicks: true,\n yMinValue: yMinMaxValues.startValue,\n yMaxValue: yMinMaxValues.endValue,\n width: input.layout?.width,\n height: input.layout?.height ?? 350,\n hideTickOverlap: true,\n enableReflow: false,\n hideLegend,\n useUTC: false,\n } as ILineChartProps;\n }\n};\n\nexport const transformPlotlyJsonToHorizontalBarWithAxisProps = (\n input: PlotlySchema,\n colorMap: React.MutableRefObject<Map<string, string>>,\n useFluentVizColorPalette: boolean,\n isDarkTheme?: boolean,\n): IHorizontalBarChartWithAxisProps => {\n const { legends, hideLegend } = getLegendProps(input.data, input.layout);\n const chartData: IHorizontalBarChartWithAxisDataPoint[] = input.data\n .map((series: PlotData, index: number) => {\n // extract colors for each series only once\n const extractedColors = _extractColor(useFluentVizColorPalette, series.marker?.color, colorMap, isDarkTheme) as\n | string[]\n | string\n | undefined;\n const legend = legends[index];\n // resolve color for each legend's bars from the extracted colors\n const color = _resolveColor(extractedColors, index, legend, colorMap, isDarkTheme);\n return (series.y as Datum[]).map((yValue: string, i: number) => {\n return {\n x: series.x[i],\n y: yValue,\n legend,\n color,\n } as IHorizontalBarChartWithAxisDataPoint;\n });\n })\n .reverse()\n .flat()\n //reversing the order to invert the Y bars order as required by plotly.\n .reverse();\n\n const chartHeight: number = input.layout?.height ?? 450;\n const margin: number = input.layout?.margin?.l ?? 0;\n const padding: number = input.layout?.margin?.pad ?? 0;\n const availableHeight: number = chartHeight - margin - padding;\n const numberOfBars = input.data.reduce((total: number, item: PlotData) => {\n return total + (item.y?.length || 0);\n }, 0);\n const scalingFactor = 0.01;\n const gapFactor = 1 / (1 + scalingFactor * numberOfBars);\n const barHeight = availableHeight / (numberOfBars * (1 + gapFactor));\n\n const { chartTitle, xAxisTitle, yAxisTitle } = getTitles(input.layout);\n\n return {\n data: chartData,\n chartTitle,\n xAxisTitle,\n yAxisTitle,\n secondaryYAxistitle:\n typeof input.layout?.yaxis2?.title === 'string'\n ? input.layout?.yaxis2?.title\n : input.layout?.yaxis2?.title?.text || '',\n barHeight,\n showYAxisLables: true,\n height: chartHeight,\n width: input.layout?.width,\n hideTickOverlap: true,\n hideLegend,\n noOfCharsToTruncate: 20,\n showYAxisLablesTooltip: true,\n };\n};\n\nexport const transformPlotlyJsonToHeatmapProps = (input: PlotlySchema): IHeatMapChartProps => {\n const firstData = input.data[0] as Partial<PlotData>;\n const heatmapDataPoints: IHeatMapChartDataPoint[] = [];\n let zMin = Number.POSITIVE_INFINITY;\n let zMax = Number.NEGATIVE_INFINITY;\n\n if (firstData.type === 'histogram2d') {\n const isXString = isStringArray(firstData.x);\n const isYString = isStringArray(firstData.y);\n const xBins = createBins(firstData.x, firstData.xbins?.start, firstData.xbins?.end, firstData.xbins?.size);\n const yBins = createBins(firstData.y, firstData.ybins?.start, firstData.ybins?.end, firstData.ybins?.size);\n const zBins: number[][][] = yBins.map(() => xBins.map(() => []));\n let total = 0;\n\n firstData.x?.forEach((xVal, index) => {\n const xBinIdx = findBinIndex(xBins, xVal as string | number | null, isXString);\n const yBinIdx = findBinIndex(yBins, firstData.y?.[index] as string | number | null | undefined, isYString);\n if (xBinIdx !== -1 && yBinIdx !== -1) {\n zBins[yBinIdx][xBinIdx].push((firstData.z?.[index] as number | null | undefined) ?? 1);\n }\n });\n\n const z = zBins.map(row => {\n return row.map(bin => {\n const zVal = calculateHistFunc(firstData.histfunc, bin);\n total += zVal;\n return zVal;\n });\n });\n\n xBins.forEach((xBin, xIdx) => {\n yBins.forEach((yBin, yIdx) => {\n const zVal = calculateHistNorm(\n firstData.histnorm,\n z[yIdx][xIdx],\n total,\n isXString ? xBin.length : getBinSize(xBin as Bin<number, number>),\n isYString ? yBin.length : getBinSize(yBin as Bin<number, number>),\n );\n\n heatmapDataPoints.push({\n x: isXString ? xBin.join(', ') : getBinCenter(xBin as Bin<number, number>),\n y: isYString ? yBin.join(', ') : getBinCenter(yBin as Bin<number, number>),\n value: zVal,\n rectText: zVal,\n });\n\n if (typeof zVal === 'number') {\n zMin = Math.min(zMin, zVal);\n zMax = Math.max(zMax, zVal);\n }\n });\n });\n } else {\n (firstData.x as Datum[])?.forEach((xVal, xIdx: number) => {\n firstData.y?.forEach((yVal: any, yIdx: number) => {\n const zVal = (firstData.z as number[][])?.[yIdx]?.[xIdx];\n\n heatmapDataPoints.push({\n x: input.layout?.xaxis?.type === 'date' ? (xVal as Date) : xVal ?? 0,\n y: input.layout?.yaxis?.type === 'date' ? (yVal as Date) : yVal,\n value: zVal,\n rectText: zVal,\n });\n\n if (typeof zVal === 'number') {\n zMin = Math.min(zMin, zVal);\n zMax = Math.max(zMax, zVal);\n }\n });\n });\n }\n\n const heatmapData: IHeatMapChartData = {\n legend: firstData.name ?? '',\n data: heatmapDataPoints,\n value: 0,\n };\n\n // Initialize domain and range to default values\n const defaultDomain = [zMin, (zMax + zMin) / 2, zMax];\n const defaultRange = [\n getColorFromToken(DataVizPalette.color1),\n getColorFromToken(DataVizPalette.color2),\n getColorFromToken(DataVizPalette.color3),\n ];\n const domainValuesForColorScale: number[] = Array.isArray(firstData.colorscale)\n ? (firstData.colorscale as Array<[number, string]>).map(arr => arr[0] * (zMax - zMin) + zMin)\n : defaultDomain;\n\n const rangeValuesForColorScale: string[] = Array.isArray(firstData.colorscale)\n ? (firstData.colorscale as Array<[number, string]>).map(arr => arr[1])\n : defaultRange;\n\n const { chartTitle, xAxisTitle, yAxisTitle } = getTitles(input.layout);\n\n return {\n data: [heatmapData],\n domainValuesForColorScale,\n rangeValuesForColorScale,\n hideLegend: true,\n showYAxisLables: true,\n chartTitle,\n xAxisTitle,\n yAxisTitle,\n sortOrder: 'none',\n width: input.layout?.width,\n height: input.layout?.height ?? 350,\n hideTickOverlap: true,\n noOfCharsToTruncate: 20,\n showYAxisLablesTooltip: true,\n };\n};\n\nexport const transformPlotlyJsonToSankeyProps = (\n input: PlotlySchema,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): ISankeyChartProps => {\n const { link, node } = input.data[0] as SankeyData;\n const validLinks = (link?.value ?? [])\n .map((val: number, index: number) => ({\n value: val,\n source: link?.source![index],\n target: link?.target![index],\n }))\n // Filter out negative nodes, unequal nodes and self-references (circular links)\n .filter(x => x.source >= 0 && x.target >= 0 && x.source !== x.target);\n\n const sankeyChartData = {\n nodes: node.label?.map((label: string, index: number) => {\n const color = getColor(label, colorMap, isDarkTheme);\n\n return {\n nodeId: index,\n name: label,\n color,\n };\n }),\n links: validLinks.map((validLink: any, index: number) => {\n return {\n ...validLink,\n };\n }),\n } as ISankeyChartData;\n\n const styles: ISankeyChartProps['styles'] = {\n root: {\n ...(input.layout?.font?.size ? { fontSize: input.layout.font?.size } : {}),\n },\n };\n\n const { chartTitle } = getTitles(input.layout);\n\n return {\n data: {\n chartTitle,\n SankeyChartData: sankeyChartData,\n },\n width: input.layout?.width,\n height: input.layout?.height ?? 468,\n styles,\n enableReflow: true,\n };\n};\n\nexport const transformPlotlyJsonToGaugeProps = (\n input: PlotlySchema,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): IGaugeChartProps => {\n const firstData = input.data[0] as PlotData;\n\n const segments = firstData.gauge?.steps?.length\n ? firstData.gauge.steps.map((step: any, index: number): IGaugeChartSegment => {\n const legend = step.name || `Segment ${index + 1}`;\n const color = getColor(legend, colorMap, isDarkTheme);\n return {\n legend,\n size: step.range?.[1] - step.range?.[0],\n color,\n };\n })\n : [\n {\n legend: 'Current',\n size: firstData.value ?? 0 - (firstData.gauge?.axis?.range?.[0] ?? 0),\n color: getColor('Current', colorMap, isDarkTheme),\n },\n {\n legend: 'Target',\n size: (firstData.gauge?.axis?.range?.[1] ?? 100) - (firstData.value ?? 0),\n color: DataVizPalette.disabled,\n },\n ];\n\n let sublabel: string | undefined;\n let sublabelColor: string | undefined;\n if (firstData.delta?.reference) {\n const diff = firstData.value - firstData.delta.reference;\n if (diff >= 0) {\n sublabel = `\\u25B2 ${diff}`;\n const color = getColorFromToken(DataVizPalette.success, isDarkTheme);\n sublabelColor = color;\n } else {\n sublabel = `\\u25BC ${Math.abs(diff)}`;\n const color = getColorFromToken(DataVizPalette.error, isDarkTheme);\n sublabelColor = color;\n }\n }\n\n const styles: IGaugeChartProps['styles'] = {\n sublabel: {\n fill: sublabelColor,\n },\n };\n\n const { chartTitle } = getTitles(input.layout);\n\n return {\n segments,\n chartValue: firstData.value ?? 0,\n chartTitle,\n sublabel,\n // range values can be null\n minValue: typeof firstData.gauge?.axis?.range?.[0] === 'number' ? firstData.gauge?.axis?.range?.[0] : undefined,\n maxValue: typeof firstData.gauge?.axis?.range?.[1] === 'number' ? firstData.gauge?.axis?.range?.[1] : undefined,\n chartValueFormat: () => firstData.value?.toString() ?? '',\n width: input.layout?.width,\n height: input.layout?.height ?? 220,\n styles,\n variant: firstData.gauge?.steps?.length ? GaugeChartVariant.MultipleSegments : GaugeChartVariant.SingleSegment,\n };\n};\n\nexport const projectPolarToCartesian = (input: PlotlySchema): PlotlySchema => {\n const projection: PlotlySchema = { ...input };\n for (let sindex = 0; sindex < input.data.length; sindex++) {\n const series: PlotData = input.data[sindex] as PlotData;\n series.x = [];\n series.y = [];\n for (let ptindex = 0; ptindex < series.r.length; ptindex++) {\n const thetaRad = ((series.theta[ptindex] as number) * Math.PI) / 180;\n const radius = series.r[ptindex] as number;\n series.x[ptindex] = radius * Math.cos(thetaRad);\n series.y[ptindex] = radius * Math.sin(thetaRad);\n }\n projection.data[sindex] = series;\n }\n\n return projection;\n};\n\nfunction isPlainObject(obj: any) {\n if (window && window.process && window.process.versions) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n }\n\n return (\n Object.prototype.toString.call(obj) === '[object Object]' &&\n Object.getPrototypeOf(obj).hasOwnProperty('hasOwnProperty')\n );\n}\n\nvar arrayAttributes: any[] = [];\nvar stack: any[] = [];\nvar isArrayStack: any[] = [];\nvar baseContainer: any, baseAttrName: any;\n/**\n * Interate iteratively through the trace object and find all the array attributes.\n * 1 trace record = 1 series of data\n * @param trace\n */\nexport function findArrayAttributes(trace: any) {\n // Init basecontainer and baseAttrName\n crawlIntoTrace(baseContainer, 0, '');\n}\n\nfunction crawlIntoTrace(container: any, i: number, astrPartial: any) {\n var item = container[stack[i]];\n var newAstrPartial = astrPartial + stack[i];\n if (i === stack.length - 1) {\n if (isArrayOrTypedArray(item)) {\n arrayAttributes.push(baseAttrName + newAstrPartial);\n }\n } else {\n if (isArrayStack[i]) {\n if (Array.isArray(item)) {\n for (var j = 0; j < item.length; j++) {\n if (isPlainObject(item[j])) {\n crawlIntoTrace(item[j], i + 1, newAstrPartial + '[' + j + '].');\n }\n }\n }\n } else if (isPlainObject(item)) {\n crawlIntoTrace(item, i + 1, newAstrPartial + '.');\n }\n }\n}\n\nfunction getLineOptions(line: Partial<ScatterLine> | undefined): ILineChartLineOptions | undefined {\n if (!line) {\n return;\n }\n\n let lineOptions: ILineChartLineOptions = {};\n if (line.dash) {\n lineOptions = { ...lineOptions, ...dashOptions[line.dash] };\n }\n\n switch (line.shape) {\n case 'spline':\n const smoothing = typeof line.smoothing === 'number' ? line.smoothing : 1;\n lineOptions.curve = d3CurveCardinal.tension(1 - smoothing / 1.3);\n break;\n case 'hv':\n lineOptions.curve = 'stepAfter';\n break;\n case 'vh':\n lineOptions.curve = 'stepBefore';\n break;\n case 'hvh':\n lineOptions.curve = 'step';\n break;\n default:\n lineOptions.curve = 'linear';\n }\n\n return Object.keys(lineOptions).length > 0 ? lineOptions : undefined;\n}\n\nconst isStringArray = (arr: any) => {\n return isArrayOfType(arr, (value: any) => typeof value === 'string');\n};\n\n// TODO: Use binary search to find the appropriate bin for numeric value.\nconst findBinIndex = (\n bins: string[][] | Bin<number, number>[],\n value: string | number | null | undefined,\n isString: boolean,\n) => {\n if (typeof value === 'undefined' || value === null) {\n return -1;\n }\n\n return isString\n ? (bins as string[][]).findIndex(bin => bin.includes(value as string))\n : (bins as Bin<number, number>[]).findIndex(\n (bin, index) =>\n (value as number) >= bin.x0! &&\n (index === bins.length - 1 ? (value as number) <= bin.x1! : (value as number) < bin.x1!),\n );\n};\n\nconst getBinSize = (bin: Bin<number, number>) => {\n return bin.x1! - bin.x0!;\n};\n\nconst getBinCenter = (bin: Bin<number, number>) => {\n return (bin.x1! + bin.x0!) / 2;\n};\n\n// TODO: Add support for date axes\nconst createBins = (\n data: TypedArray | Datum[] | Datum[][] | undefined,\n binStart?: number | string,\n binEnd?: number | string,\n binSize?: number | string,\n) => {\n if (!data || data.length === 0) {\n return [];\n }\n\n if (isStringArray(data)) {\n const categories = Array.from(new Set(data as string[]));\n const start = typeof binStart === 'number' ? Math.ceil(binStart) : 0;\n const stop = typeof binEnd === 'number' ? Math.floor(binEnd) + 1 : categories.length;\n const step = typeof binSize === 'number' ? binSize : 1;\n\n return d3Range(start, stop, step).map(i => categories.slice(i, i + step));\n }\n\n const scale = d3ScaleLinear()\n .domain(d3Extent<number>(data as number[]) as [number, number])\n .nice();\n let [minVal, maxVal] = scale.domain();\n\n minVal = typeof binStart === 'number' ? binStart : minVal;\n maxVal = typeof binEnd === 'number' ? binEnd : maxVal;\n\n const binGenerator = d3Bin().domain([minVal, maxVal]);\n\n if (typeof binSize === 'number' && binSize > 0) {\n const thresholds: number[] = [];\n const precision = Math.max(getPrecision(minVal), getPrecision(binSize));\n let th = precisionRound(minVal, precision);\n\n while (th < precisionRound(maxVal + binSize, precision)) {\n thresholds.push(th);\n th = precisionRound(th + binSize, precision);\n }\n\n minVal = thresholds[0];\n maxVal = thresholds[thresholds.length - 1];\n binGenerator.domain([minVal, maxVal]).thresholds(thresholds);\n\n // When the domain ends at the last threshold (maxVal), d3Bin creates an extra final bin where\n // both x0 and x1 are equal to maxVal and inclusive. The previous bin also has x1 equal to maxVal,\n // but it is exclusive. To maintain consistent bin widths, remove the final bin,\n // making the previous bin the last one, with both x0 and x1 inclusive.\n return binGenerator(data as number[]).slice(0, -1);\n }\n\n return binGenerator(data as number[]);\n};\n\nconst calculateHistFunc = (histfunc: PlotData['histfunc'] | undefined, bin: number[]) => {\n switch (histfunc) {\n case 'sum':\n return d3Sum(bin);\n case 'avg':\n return bin.length === 0 ? 0 : d3Sum(bin) / bin.length;\n case 'min':\n return d3Min(bin) ?? 0;\n case 'max':\n return d3Max(bin) ?? 0;\n default:\n return bin.length;\n }\n};\n\nconst calculateHistNorm = (\n histnorm: PlotData['histnorm'] | undefined,\n value: number,\n total: number,\n dx: number,\n dy: number = 1,\n) => {\n switch (histnorm) {\n case 'percent':\n return total === 0 ? 0 : (value / total) * 100;\n case 'probability':\n return total === 0 ? 0 : value / total;\n case 'density':\n return dx * dy === 0 ? 0 : value / (dx * dy);\n case 'probability density':\n return total * dx * dy === 0 ? 0 : value / (total * dx * dy);\n default:\n return value;\n }\n};\n\nconst getPrecision = (value: number) => {\n return value.toString().split('.')[1]?.length ?? 0;\n};\n\nconst precisionRound = (value: number, precision: number) => {\n const factor = Math.pow(10, precision);\n return Math.round(value * factor) / factor;\n};\n\nconst getLegendProps = (data: Data[], layout: Partial<Layout> | undefined) => {\n const legends: string[] = [];\n if (data.length === 1) {\n legends.push(data[0].name || '');\n } else {\n data.forEach((series, index) => {\n legends.push(series.name || `Series ${index + 1}`);\n });\n }\n\n const hideLegends = data.every((series: Partial<PlotData>) => series.showlegend === false);\n\n return {\n legends,\n hideLegend:\n layout?.showlegend === false || (layout?.showlegend !== true && legends.length < 2) ? true : hideLegends,\n };\n};\n"]}
@@ -30,10 +30,13 @@ export interface DeclarativeChartProps extends React.RefAttributes<HTMLDivElemen
30
30
  */
31
31
  componentRef?: IRefObject<IDeclarativeChart>;
32
32
  /**
33
- * Optional prop to use Fluent UI color palette for the chart or not.
34
- * @default true
33
+ * Optional prop to specify the color palette for the chart.
34
+ * - 'default': Do not use Fluent UI color palette.
35
+ * - 'builtin': Use Fluent UI color palette.
36
+ * - 'override': Reserved for future use.
37
+ * @default 'builtin'
35
38
  */
36
- useFluentVizColorPalette?: boolean;
39
+ fluentDataVizColorPalette?: 'default' | 'builtin' | 'override';
37
40
  }
38
41
  /**
39
42
  * {@docCategory DeclarativeChart}
@@ -84,10 +84,11 @@ exports.DeclarativeChart = React.forwardRef(function (props, forwardedRef) {
84
84
  componentRef: chartRef,
85
85
  calloutProps: { layerProps: { eventBubblingEnabled: true } },
86
86
  };
87
+ var useFluentVizColorPalette = props.fluentDataVizColorPalette === 'builtin';
87
88
  var renderLineArea = function (plotlyData, isAreaChart) {
88
89
  var _a;
89
90
  var isScatterMarkers = ['markers', 'text+markers', 'markers+text'].includes((_a = plotlyData[0]) === null || _a === void 0 ? void 0 : _a.mode);
90
- var chartProps = tslib_1.__assign(tslib_1.__assign({}, (0, PlotlySchemaAdapter_1.transformPlotlyJsonToScatterChartProps)({ data: plotlyData, layout: plotlyInput.layout }, isAreaChart, colorMap, props.useFluentVizColorPalette, isDarkTheme)), commonProps);
91
+ var chartProps = tslib_1.__assign(tslib_1.__assign({}, (0, PlotlySchemaAdapter_1.transformPlotlyJsonToScatterChartProps)({ data: plotlyData, layout: plotlyInput.layout }, isAreaChart, colorMap, useFluentVizColorPalette, isDarkTheme)), commonProps);
91
92
  if (isAreaChart) {
92
93
  return React.createElement(ResponsiveAreaChart, tslib_1.__assign({}, chartProps));
93
94
  }
@@ -117,7 +118,7 @@ exports.DeclarativeChart = React.forwardRef(function (props, forwardedRef) {
117
118
  if (isAreaChart) {
118
119
  throw new Error('Fallback to VerticalStackedBarChart is not allowed for Area Charts.');
119
120
  }
120
- return (React.createElement(ResponsiveVerticalStackedBarChart, tslib_1.__assign({}, (0, PlotlySchemaAdapter_1.transformPlotlyJsonToVSBCProps)(plotlyInputWithValidData, colorMap, isDarkTheme, fallbackVSBC), commonProps)));
121
+ return (React.createElement(ResponsiveVerticalStackedBarChart, tslib_1.__assign({}, (0, PlotlySchemaAdapter_1.transformPlotlyJsonToVSBCProps)(plotlyInputWithValidData, colorMap, useFluentVizColorPalette, isDarkTheme, fallbackVSBC), commonProps)));
121
122
  };
122
123
  var exportAsImage = React.useCallback(function (opts) {
123
124
  return new Promise(function (resolve, reject) {
@@ -135,13 +136,13 @@ exports.DeclarativeChart = React.forwardRef(function (props, forwardedRef) {
135
136
  }); }, [exportAsImage]);
136
137
  switch (chart.type) {
137
138
  case 'donut':
138
- return (React.createElement(ResponsiveDonutChart, tslib_1.__assign({}, (0, PlotlySchemaAdapter_1.transformPlotlyJsonToDonutProps)(plotlyInputWithValidData, colorMap, props.useFluentVizColorPalette, isDarkTheme), commonProps)));
139
+ return (React.createElement(ResponsiveDonutChart, tslib_1.__assign({}, (0, PlotlySchemaAdapter_1.transformPlotlyJsonToDonutProps)(plotlyInputWithValidData, colorMap, useFluentVizColorPalette, isDarkTheme), commonProps)));
139
140
  case 'horizontalbar':
140
- return (React.createElement(ResponsiveHorizontalBarChartWithAxis, tslib_1.__assign({}, (0, PlotlySchemaAdapter_1.transformPlotlyJsonToHorizontalBarWithAxisProps)(plotlyInputWithValidData, colorMap, isDarkTheme), commonProps)));
141
+ return (React.createElement(ResponsiveHorizontalBarChartWithAxis, tslib_1.__assign({}, (0, PlotlySchemaAdapter_1.transformPlotlyJsonToHorizontalBarWithAxisProps)(plotlyInputWithValidData, colorMap, useFluentVizColorPalette, isDarkTheme), commonProps)));
141
142
  case 'groupedverticalbar':
142
- return (React.createElement(ResponsiveGroupedVerticalBarChart, tslib_1.__assign({}, (0, PlotlySchemaAdapter_1.transformPlotlyJsonToGVBCProps)(plotlyInputWithValidData, colorMap, isDarkTheme), commonProps)));
143
+ return (React.createElement(ResponsiveGroupedVerticalBarChart, tslib_1.__assign({}, (0, PlotlySchemaAdapter_1.transformPlotlyJsonToGVBCProps)(plotlyInputWithValidData, colorMap, useFluentVizColorPalette, isDarkTheme), commonProps)));
143
144
  case 'verticalstackedbar':
144
- return (React.createElement(ResponsiveVerticalStackedBarChart, tslib_1.__assign({}, (0, PlotlySchemaAdapter_1.transformPlotlyJsonToVSBCProps)(plotlyInputWithValidData, colorMap, isDarkTheme), commonProps)));
145
+ return (React.createElement(ResponsiveVerticalStackedBarChart, tslib_1.__assign({}, (0, PlotlySchemaAdapter_1.transformPlotlyJsonToVSBCProps)(plotlyInputWithValidData, colorMap, useFluentVizColorPalette, isDarkTheme), commonProps)));
145
146
  case 'heatmap':
146
147
  return (React.createElement(ResponsiveHeatMapChart, tslib_1.__assign({}, (0, PlotlySchemaAdapter_1.transformPlotlyJsonToHeatmapProps)(plotlyInputWithValidData), commonProps, { legendProps: {} })));
147
148
  case 'sankey':
@@ -149,7 +150,7 @@ exports.DeclarativeChart = React.forwardRef(function (props, forwardedRef) {
149
150
  case 'gauge':
150
151
  return (React.createElement(ResponsiveGaugeChart, tslib_1.__assign({}, (0, PlotlySchemaAdapter_1.transformPlotlyJsonToGaugeProps)(plotlyInputWithValidData, colorMap, isDarkTheme), commonProps)));
151
152
  case 'verticalbar':
152
- return (React.createElement(ResponsiveVerticalBarChart, tslib_1.__assign({}, (0, PlotlySchemaAdapter_1.transformPlotlyJsonToVBCProps)(plotlyInputWithValidData, colorMap, isDarkTheme), commonProps)));
153
+ return (React.createElement(ResponsiveVerticalBarChart, tslib_1.__assign({}, (0, PlotlySchemaAdapter_1.transformPlotlyJsonToVBCProps)(plotlyInputWithValidData, colorMap, useFluentVizColorPalette, isDarkTheme), commonProps)));
153
154
  case 'area':
154
155
  case 'line':
155
156
  case 'fallback':
@@ -167,6 +168,6 @@ exports.DeclarativeChart = React.forwardRef(function (props, forwardedRef) {
167
168
  });
168
169
  exports.DeclarativeChart.displayName = 'DeclarativeChart';
169
170
  exports.DeclarativeChart.defaultProps = {
170
- useFluentVizColorPalette: true,
171
+ fluentDataVizColorPalette: 'builtin',
171
172
  };
172
173
  //# sourceMappingURL=DeclarativeChart.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DeclarativeChart.js","sourceRoot":"../src/","sources":["components/DeclarativeChart/DeclarativeChart.tsx"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\nimport * as React from 'react';\nimport { useTheme } from '@fluentui/react';\nimport { IRefObject } from '@fluentui/react/lib/Utilities';\nimport { DonutChart } from '../DonutChart/index';\nimport { VerticalStackedBarChart } from '../VerticalStackedBarChart/index';\nimport { decodeBase64Fields } from '@fluentui/chart-utilities';\nimport type { Data, PlotData, PlotlySchema, OutputChartType } from '@fluentui/chart-utilities';\nimport {\n isArrayOrTypedArray,\n isDateArray,\n isNumberArray,\n isYearArray,\n mapFluentChart,\n sanitizeJson,\n} from '@fluentui/chart-utilities';\n\nimport {\n isMonthArray,\n correctYearMonth,\n transformPlotlyJsonToDonutProps,\n transformPlotlyJsonToVSBCProps,\n transformPlotlyJsonToScatterChartProps,\n transformPlotlyJsonToHorizontalBarWithAxisProps,\n transformPlotlyJsonToHeatmapProps,\n transformPlotlyJsonToSankeyProps,\n transformPlotlyJsonToGaugeProps,\n transformPlotlyJsonToGVBCProps,\n transformPlotlyJsonToVBCProps,\n projectPolarToCartesian,\n} from './PlotlySchemaAdapter';\nimport { LineChart, ILineChartProps } from '../LineChart/index';\nimport { HorizontalBarChartWithAxis } from '../HorizontalBarChartWithAxis/index';\nimport { AreaChart, IAreaChartProps } from '../AreaChart/index';\nimport { HeatMapChart } from '../HeatMapChart/index';\nimport { SankeyChart } from '../SankeyChart/SankeyChart';\nimport { GaugeChart } from '../GaugeChart/index';\nimport { GroupedVerticalBarChart } from '../GroupedVerticalBarChart/index';\nimport { VerticalBarChart } from '../VerticalBarChart/index';\nimport { IChart, IImageExportOptions } from '../../types/index';\nimport { withResponsiveContainer } from '../ResponsiveContainer/withResponsiveContainer';\n\nconst ResponsiveDonutChart = withResponsiveContainer(DonutChart);\nconst ResponsiveVerticalStackedBarChart = withResponsiveContainer(VerticalStackedBarChart);\nconst ResponsiveLineChart = withResponsiveContainer(LineChart);\nconst ResponsiveHorizontalBarChartWithAxis = withResponsiveContainer(HorizontalBarChartWithAxis);\nconst ResponsiveAreaChart = withResponsiveContainer(AreaChart);\nconst ResponsiveHeatMapChart = withResponsiveContainer(HeatMapChart);\nconst ResponsiveSankeyChart = withResponsiveContainer(SankeyChart);\nconst ResponsiveGaugeChart = withResponsiveContainer(GaugeChart);\nconst ResponsiveGroupedVerticalBarChart = withResponsiveContainer(GroupedVerticalBarChart);\nconst ResponsiveVerticalBarChart = withResponsiveContainer(VerticalBarChart);\n\n/**\n * DeclarativeChart schema.\n * {@docCategory DeclarativeChart}\n */\nexport interface Schema {\n /**\n * Plotly schema represented as JSON object\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n plotlySchema: any;\n}\n\n/**\n * DeclarativeChart props.\n * {@docCategory DeclarativeChart}\n */\nexport interface DeclarativeChartProps extends React.RefAttributes<HTMLDivElement> {\n /**\n * The schema representing the chart data, layout and configuration\n */\n chartSchema: Schema;\n\n /**\n * Callback when an event occurs\n */\n onSchemaChange?: (eventData: Schema) => void;\n\n /**\n * Optional callback to access the IDeclarativeChart interface. Use this instead of ref for accessing\n * the public methods and properties of the component.\n */\n componentRef?: IRefObject<IDeclarativeChart>;\n\n /**\n * Optional prop to use Fluent UI color palette for the chart or not.\n * @default true\n */\n useFluentVizColorPalette?: boolean;\n}\n\n/**\n * {@docCategory DeclarativeChart}\n */\nexport interface IDeclarativeChart {\n exportAsImage: (opts?: IImageExportOptions) => Promise<string>;\n}\n\nconst useColorMapping = () => {\n const colorMap = React.useRef(new Map<string, string>());\n return colorMap;\n};\n\n/**\n * DeclarativeChart component.\n * {@docCategory DeclarativeChart}\n */\nexport const DeclarativeChart: React.FunctionComponent<DeclarativeChartProps> = React.forwardRef<\n HTMLDivElement,\n DeclarativeChartProps\n>((props, forwardedRef) => {\n const { plotlySchema } = sanitizeJson(props.chartSchema);\n const chart: OutputChartType = mapFluentChart(plotlySchema);\n if (!chart.isValid) {\n throw new Error(`Invalid chart schema: ${chart.errorMessage}`);\n }\n let plotlyInput = plotlySchema as PlotlySchema;\n try {\n plotlyInput = decodeBase64Fields(plotlyInput);\n } catch (error) {\n throw new Error(`Failed to decode plotly schema: ${error}`);\n }\n const plotlyInputWithValidData: PlotlySchema = {\n ...plotlyInput,\n data: chart.validTracesInfo!.map(trace => plotlyInput.data[trace[0]]),\n };\n\n let { selectedLegends } = plotlySchema;\n const colorMap = useColorMapping();\n const theme = useTheme();\n const isDarkTheme = theme?.isInverted ?? false;\n const chartRef = React.useRef<IChart>(null);\n\n if (!isArrayOrTypedArray(selectedLegends)) {\n selectedLegends = [];\n }\n\n const [activeLegends, setActiveLegends] = React.useState<string[]>(selectedLegends);\n const onActiveLegendsChange = (keys: string[]) => {\n setActiveLegends(keys);\n if (props.onSchemaChange) {\n props.onSchemaChange({ plotlySchema: { plotlyInput, selectedLegends: keys } });\n }\n };\n\n React.useEffect(() => {\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const { plotlySchema } = sanitizeJson(props.chartSchema);\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const { selectedLegends } = plotlySchema;\n setActiveLegends(selectedLegends ?? []);\n }, [props.chartSchema]);\n\n const multiSelectLegendProps = {\n canSelectMultipleLegends: true,\n onChange: onActiveLegendsChange,\n selectedLegends: activeLegends,\n };\n\n const commonProps = {\n legendProps: multiSelectLegendProps,\n componentRef: chartRef,\n calloutProps: { layerProps: { eventBubblingEnabled: true } },\n };\n\n const renderLineArea = (plotlyData: Data[], isAreaChart: boolean): JSX.Element => {\n const isScatterMarkers = ['markers', 'text+markers', 'markers+text'].includes((plotlyData[0] as PlotData)?.mode);\n const chartProps: ILineChartProps | IAreaChartProps = {\n ...transformPlotlyJsonToScatterChartProps(\n { data: plotlyData, layout: plotlyInput.layout },\n isAreaChart,\n colorMap,\n props.useFluentVizColorPalette!,\n isDarkTheme,\n ),\n ...commonProps,\n };\n if (isAreaChart) {\n return <ResponsiveAreaChart {...chartProps} />;\n }\n return <ResponsiveLineChart {...chartProps} lineMode={isScatterMarkers ? 'scatter' : 'default'} />;\n };\n\n const checkAndRenderChart = (isAreaChart: boolean = false) => {\n let fallbackVSBC = false;\n const xValues = (plotlyInputWithValidData.data[0] as PlotData).x;\n const isXDate = isDateArray(xValues);\n const isXNumber = isNumberArray(xValues);\n const isXMonth = isMonthArray(xValues);\n\n // Consider year as categorical variable not numeric continuous variable\n // Also year is not considered a date variable as it is represented as a point\n // in time and brings additional complexity of handling timezone and locale\n // formatting given the current design of the charting library\n const isXYear = isYearArray(xValues);\n\n if ((isXDate || isXNumber) && !isXYear) {\n return renderLineArea(plotlyInputWithValidData.data, isAreaChart);\n } else if (isXMonth) {\n const updatedData = plotlyInputWithValidData.data.map((dataPoint: PlotData) => ({\n ...dataPoint,\n x: correctYearMonth(dataPoint.x),\n }));\n return renderLineArea(updatedData, isAreaChart);\n }\n // Unsupported schema, render as VerticalStackedBarChart\n fallbackVSBC = true;\n if (isAreaChart) {\n throw new Error('Fallback to VerticalStackedBarChart is not allowed for Area Charts.');\n }\n return (\n <ResponsiveVerticalStackedBarChart\n {...transformPlotlyJsonToVSBCProps(plotlyInputWithValidData, colorMap, isDarkTheme, fallbackVSBC)}\n {...commonProps}\n />\n );\n };\n\n const exportAsImage = React.useCallback(\n (opts?: IImageExportOptions): Promise<string> => {\n return new Promise((resolve, reject) => {\n if (!chartRef.current || typeof chartRef.current.toImage !== 'function') {\n return reject(Error('Chart cannot be exported as image'));\n }\n\n chartRef.current\n .toImage({\n background: theme.semanticColors.bodyBackground,\n scale: 5,\n ...opts,\n })\n .then(resolve)\n .catch(reject);\n });\n },\n [theme],\n );\n\n React.useImperativeHandle(\n props.componentRef,\n () => ({\n exportAsImage,\n }),\n [exportAsImage],\n );\n\n switch (chart.type) {\n case 'donut':\n return (\n <ResponsiveDonutChart\n {...transformPlotlyJsonToDonutProps(\n plotlyInputWithValidData,\n colorMap,\n props.useFluentVizColorPalette!,\n isDarkTheme,\n )}\n {...commonProps}\n />\n );\n case 'horizontalbar':\n return (\n <ResponsiveHorizontalBarChartWithAxis\n {...transformPlotlyJsonToHorizontalBarWithAxisProps(plotlyInputWithValidData, colorMap, isDarkTheme)}\n {...commonProps}\n />\n );\n case 'groupedverticalbar':\n return (\n <ResponsiveGroupedVerticalBarChart\n {...transformPlotlyJsonToGVBCProps(plotlyInputWithValidData, colorMap, isDarkTheme)}\n {...commonProps}\n />\n );\n case 'verticalstackedbar':\n return (\n <ResponsiveVerticalStackedBarChart\n {...transformPlotlyJsonToVSBCProps(plotlyInputWithValidData, colorMap, isDarkTheme)}\n {...commonProps}\n />\n );\n case 'heatmap':\n return (\n <ResponsiveHeatMapChart\n {...transformPlotlyJsonToHeatmapProps(plotlyInputWithValidData)}\n {...commonProps}\n legendProps={{}}\n />\n );\n case 'sankey':\n return (\n <ResponsiveSankeyChart\n {...transformPlotlyJsonToSankeyProps(plotlyInputWithValidData, colorMap, isDarkTheme)}\n {...commonProps}\n />\n );\n case 'gauge':\n return (\n <ResponsiveGaugeChart\n {...transformPlotlyJsonToGaugeProps(plotlyInputWithValidData, colorMap, isDarkTheme)}\n {...commonProps}\n />\n );\n case 'verticalbar':\n return (\n <ResponsiveVerticalBarChart\n {...transformPlotlyJsonToVBCProps(plotlyInputWithValidData, colorMap, isDarkTheme)}\n {...commonProps}\n />\n );\n case 'area':\n case 'line':\n case 'fallback':\n case 'scatterpolar':\n if (chart.type === 'scatterpolar') {\n const cartesianProjection = projectPolarToCartesian(plotlyInputWithValidData);\n plotlyInputWithValidData.data = cartesianProjection.data;\n }\n // Need recheck for area chart as we don't have ability to check for valid months in previous step\n const isAreaChart = plotlyInputWithValidData.data.some(\n (series: PlotData) => series.fill === 'tonexty' || series.fill === 'tozeroy' || !!series.stackgroup,\n );\n return checkAndRenderChart(isAreaChart);\n default:\n throw new Error(`Unsupported chart type :${plotlyInputWithValidData.data[0]?.type}`);\n }\n});\nDeclarativeChart.displayName = 'DeclarativeChart';\nDeclarativeChart.defaultProps = {\n useFluentVizColorPalette: true,\n};\n"]}
1
+ {"version":3,"file":"DeclarativeChart.js","sourceRoot":"../src/","sources":["components/DeclarativeChart/DeclarativeChart.tsx"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\nimport * as React from 'react';\nimport { useTheme } from '@fluentui/react';\nimport { IRefObject } from '@fluentui/react/lib/Utilities';\nimport { DonutChart } from '../DonutChart/index';\nimport { VerticalStackedBarChart } from '../VerticalStackedBarChart/index';\nimport { decodeBase64Fields } from '@fluentui/chart-utilities';\nimport type { Data, PlotData, PlotlySchema, OutputChartType } from '@fluentui/chart-utilities';\nimport {\n isArrayOrTypedArray,\n isDateArray,\n isNumberArray,\n isYearArray,\n mapFluentChart,\n sanitizeJson,\n} from '@fluentui/chart-utilities';\n\nimport {\n isMonthArray,\n correctYearMonth,\n transformPlotlyJsonToDonutProps,\n transformPlotlyJsonToVSBCProps,\n transformPlotlyJsonToScatterChartProps,\n transformPlotlyJsonToHorizontalBarWithAxisProps,\n transformPlotlyJsonToHeatmapProps,\n transformPlotlyJsonToSankeyProps,\n transformPlotlyJsonToGaugeProps,\n transformPlotlyJsonToGVBCProps,\n transformPlotlyJsonToVBCProps,\n projectPolarToCartesian,\n} from './PlotlySchemaAdapter';\nimport { LineChart, ILineChartProps } from '../LineChart/index';\nimport { HorizontalBarChartWithAxis } from '../HorizontalBarChartWithAxis/index';\nimport { AreaChart, IAreaChartProps } from '../AreaChart/index';\nimport { HeatMapChart } from '../HeatMapChart/index';\nimport { SankeyChart } from '../SankeyChart/SankeyChart';\nimport { GaugeChart } from '../GaugeChart/index';\nimport { GroupedVerticalBarChart } from '../GroupedVerticalBarChart/index';\nimport { VerticalBarChart } from '../VerticalBarChart/index';\nimport { IChart, IImageExportOptions } from '../../types/index';\nimport { withResponsiveContainer } from '../ResponsiveContainer/withResponsiveContainer';\n\nconst ResponsiveDonutChart = withResponsiveContainer(DonutChart);\nconst ResponsiveVerticalStackedBarChart = withResponsiveContainer(VerticalStackedBarChart);\nconst ResponsiveLineChart = withResponsiveContainer(LineChart);\nconst ResponsiveHorizontalBarChartWithAxis = withResponsiveContainer(HorizontalBarChartWithAxis);\nconst ResponsiveAreaChart = withResponsiveContainer(AreaChart);\nconst ResponsiveHeatMapChart = withResponsiveContainer(HeatMapChart);\nconst ResponsiveSankeyChart = withResponsiveContainer(SankeyChart);\nconst ResponsiveGaugeChart = withResponsiveContainer(GaugeChart);\nconst ResponsiveGroupedVerticalBarChart = withResponsiveContainer(GroupedVerticalBarChart);\nconst ResponsiveVerticalBarChart = withResponsiveContainer(VerticalBarChart);\n\n/**\n * DeclarativeChart schema.\n * {@docCategory DeclarativeChart}\n */\nexport interface Schema {\n /**\n * Plotly schema represented as JSON object\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n plotlySchema: any;\n}\n\n/**\n * DeclarativeChart props.\n * {@docCategory DeclarativeChart}\n */\nexport interface DeclarativeChartProps extends React.RefAttributes<HTMLDivElement> {\n /**\n * The schema representing the chart data, layout and configuration\n */\n chartSchema: Schema;\n\n /**\n * Callback when an event occurs\n */\n onSchemaChange?: (eventData: Schema) => void;\n\n /**\n * Optional callback to access the IDeclarativeChart interface. Use this instead of ref for accessing\n * the public methods and properties of the component.\n */\n componentRef?: IRefObject<IDeclarativeChart>;\n\n /**\n * Optional prop to specify the color palette for the chart.\n * - 'default': Do not use Fluent UI color palette.\n * - 'builtin': Use Fluent UI color palette.\n * - 'override': Reserved for future use.\n * @default 'builtin'\n */\n fluentDataVizColorPalette?: 'default' | 'builtin' | 'override';\n}\n\n/**\n * {@docCategory DeclarativeChart}\n */\nexport interface IDeclarativeChart {\n exportAsImage: (opts?: IImageExportOptions) => Promise<string>;\n}\n\nconst useColorMapping = () => {\n const colorMap = React.useRef(new Map<string, string>());\n return colorMap;\n};\n\n/**\n * DeclarativeChart component.\n * {@docCategory DeclarativeChart}\n */\nexport const DeclarativeChart: React.FunctionComponent<DeclarativeChartProps> = React.forwardRef<\n HTMLDivElement,\n DeclarativeChartProps\n>((props, forwardedRef) => {\n const { plotlySchema } = sanitizeJson(props.chartSchema);\n const chart: OutputChartType = mapFluentChart(plotlySchema);\n if (!chart.isValid) {\n throw new Error(`Invalid chart schema: ${chart.errorMessage}`);\n }\n let plotlyInput = plotlySchema as PlotlySchema;\n try {\n plotlyInput = decodeBase64Fields(plotlyInput);\n } catch (error) {\n throw new Error(`Failed to decode plotly schema: ${error}`);\n }\n const plotlyInputWithValidData: PlotlySchema = {\n ...plotlyInput,\n data: chart.validTracesInfo!.map(trace => plotlyInput.data[trace[0]]),\n };\n\n let { selectedLegends } = plotlySchema;\n const colorMap = useColorMapping();\n const theme = useTheme();\n const isDarkTheme = theme?.isInverted ?? false;\n const chartRef = React.useRef<IChart>(null);\n\n if (!isArrayOrTypedArray(selectedLegends)) {\n selectedLegends = [];\n }\n\n const [activeLegends, setActiveLegends] = React.useState<string[]>(selectedLegends);\n const onActiveLegendsChange = (keys: string[]) => {\n setActiveLegends(keys);\n if (props.onSchemaChange) {\n props.onSchemaChange({ plotlySchema: { plotlyInput, selectedLegends: keys } });\n }\n };\n\n React.useEffect(() => {\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const { plotlySchema } = sanitizeJson(props.chartSchema);\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const { selectedLegends } = plotlySchema;\n setActiveLegends(selectedLegends ?? []);\n }, [props.chartSchema]);\n\n const multiSelectLegendProps = {\n canSelectMultipleLegends: true,\n onChange: onActiveLegendsChange,\n selectedLegends: activeLegends,\n };\n\n const commonProps = {\n legendProps: multiSelectLegendProps,\n componentRef: chartRef,\n calloutProps: { layerProps: { eventBubblingEnabled: true } },\n };\n\n const useFluentVizColorPalette = props.fluentDataVizColorPalette === 'builtin';\n\n const renderLineArea = (plotlyData: Data[], isAreaChart: boolean): JSX.Element => {\n const isScatterMarkers = ['markers', 'text+markers', 'markers+text'].includes((plotlyData[0] as PlotData)?.mode);\n const chartProps: ILineChartProps | IAreaChartProps = {\n ...transformPlotlyJsonToScatterChartProps(\n { data: plotlyData, layout: plotlyInput.layout },\n isAreaChart,\n colorMap,\n useFluentVizColorPalette!,\n isDarkTheme,\n ),\n ...commonProps,\n };\n if (isAreaChart) {\n return <ResponsiveAreaChart {...chartProps} />;\n }\n return <ResponsiveLineChart {...chartProps} lineMode={isScatterMarkers ? 'scatter' : 'default'} />;\n };\n\n const checkAndRenderChart = (isAreaChart: boolean = false) => {\n let fallbackVSBC = false;\n const xValues = (plotlyInputWithValidData.data[0] as PlotData).x;\n const isXDate = isDateArray(xValues);\n const isXNumber = isNumberArray(xValues);\n const isXMonth = isMonthArray(xValues);\n\n // Consider year as categorical variable not numeric continuous variable\n // Also year is not considered a date variable as it is represented as a point\n // in time and brings additional complexity of handling timezone and locale\n // formatting given the current design of the charting library\n const isXYear = isYearArray(xValues);\n\n if ((isXDate || isXNumber) && !isXYear) {\n return renderLineArea(plotlyInputWithValidData.data, isAreaChart);\n } else if (isXMonth) {\n const updatedData = plotlyInputWithValidData.data.map((dataPoint: PlotData) => ({\n ...dataPoint,\n x: correctYearMonth(dataPoint.x),\n }));\n return renderLineArea(updatedData, isAreaChart);\n }\n // Unsupported schema, render as VerticalStackedBarChart\n fallbackVSBC = true;\n if (isAreaChart) {\n throw new Error('Fallback to VerticalStackedBarChart is not allowed for Area Charts.');\n }\n return (\n <ResponsiveVerticalStackedBarChart\n {...transformPlotlyJsonToVSBCProps(\n plotlyInputWithValidData,\n colorMap,\n useFluentVizColorPalette,\n isDarkTheme,\n fallbackVSBC,\n )}\n {...commonProps}\n />\n );\n };\n\n const exportAsImage = React.useCallback(\n (opts?: IImageExportOptions): Promise<string> => {\n return new Promise((resolve, reject) => {\n if (!chartRef.current || typeof chartRef.current.toImage !== 'function') {\n return reject(Error('Chart cannot be exported as image'));\n }\n\n chartRef.current\n .toImage({\n background: theme.semanticColors.bodyBackground,\n scale: 5,\n ...opts,\n })\n .then(resolve)\n .catch(reject);\n });\n },\n [theme],\n );\n\n React.useImperativeHandle(\n props.componentRef,\n () => ({\n exportAsImage,\n }),\n [exportAsImage],\n );\n\n switch (chart.type) {\n case 'donut':\n return (\n <ResponsiveDonutChart\n {...transformPlotlyJsonToDonutProps(\n plotlyInputWithValidData,\n colorMap,\n useFluentVizColorPalette,\n isDarkTheme,\n )}\n {...commonProps}\n />\n );\n case 'horizontalbar':\n return (\n <ResponsiveHorizontalBarChartWithAxis\n {...transformPlotlyJsonToHorizontalBarWithAxisProps(\n plotlyInputWithValidData,\n colorMap,\n useFluentVizColorPalette,\n isDarkTheme,\n )}\n {...commonProps}\n />\n );\n case 'groupedverticalbar':\n return (\n <ResponsiveGroupedVerticalBarChart\n {...transformPlotlyJsonToGVBCProps(plotlyInputWithValidData, colorMap, useFluentVizColorPalette, isDarkTheme)}\n {...commonProps}\n />\n );\n case 'verticalstackedbar':\n return (\n <ResponsiveVerticalStackedBarChart\n {...transformPlotlyJsonToVSBCProps(plotlyInputWithValidData, colorMap, useFluentVizColorPalette, isDarkTheme)}\n {...commonProps}\n />\n );\n case 'heatmap':\n return (\n <ResponsiveHeatMapChart\n {...transformPlotlyJsonToHeatmapProps(plotlyInputWithValidData)}\n {...commonProps}\n legendProps={{}}\n />\n );\n case 'sankey':\n return (\n <ResponsiveSankeyChart\n {...transformPlotlyJsonToSankeyProps(plotlyInputWithValidData, colorMap, isDarkTheme)}\n {...commonProps}\n />\n );\n case 'gauge':\n return (\n <ResponsiveGaugeChart\n {...transformPlotlyJsonToGaugeProps(plotlyInputWithValidData, colorMap, isDarkTheme)}\n {...commonProps}\n />\n );\n case 'verticalbar':\n return (\n <ResponsiveVerticalBarChart\n {...transformPlotlyJsonToVBCProps(plotlyInputWithValidData, colorMap, useFluentVizColorPalette, isDarkTheme)}\n {...commonProps}\n />\n );\n case 'area':\n case 'line':\n case 'fallback':\n case 'scatterpolar':\n if (chart.type === 'scatterpolar') {\n const cartesianProjection = projectPolarToCartesian(plotlyInputWithValidData);\n plotlyInputWithValidData.data = cartesianProjection.data;\n }\n // Need recheck for area chart as we don't have ability to check for valid months in previous step\n const isAreaChart = plotlyInputWithValidData.data.some(\n (series: PlotData) => series.fill === 'tonexty' || series.fill === 'tozeroy' || !!series.stackgroup,\n );\n return checkAndRenderChart(isAreaChart);\n default:\n throw new Error(`Unsupported chart type :${plotlyInputWithValidData.data[0]?.type}`);\n }\n});\nDeclarativeChart.displayName = 'DeclarativeChart';\nDeclarativeChart.defaultProps = {\n fluentDataVizColorPalette: 'builtin',\n};\n"]}
@@ -13,13 +13,15 @@ import type { Datum, PlotlySchema, TypedArray, PieColors, Color } from '@fluentu
13
13
  export declare const isMonthArray: (data: Datum[] | Datum[][] | TypedArray) => boolean;
14
14
  export declare const correctYearMonth: (xValues: Datum[] | Datum[][] | TypedArray) => any[];
15
15
  export declare const getColor: (legendLabel: string, colorMap: React.MutableRefObject<Map<string, string>>, isDarkTheme?: boolean) => string;
16
- export declare const getSchemaColors: (colors: PieColors | Color | null | undefined, colorMap: React.MutableRefObject<Map<string, string>>, isDarkTheme?: boolean) => string[] | string | undefined;
16
+ export declare const getSchemaColors: (colors: PieColors | Color | Color[] | string | null | undefined, colorMap: React.MutableRefObject<Map<string, string>>, isDarkTheme?: boolean) => string[] | string | undefined;
17
+ export declare const _extractColor: (useFluentVizColorPalette: boolean, colors: PieColors | Color | Color[] | string | null | undefined, colorMap: React.MutableRefObject<Map<string, string>>, isDarkTheme?: boolean) => string | string[] | undefined;
18
+ export declare const _resolveColor: (extractedColors: string[] | string | null | undefined, index: number, legend: string, colorMap: React.MutableRefObject<Map<string, string>>, isDarkTheme?: boolean) => string;
17
19
  export declare const transformPlotlyJsonToDonutProps: (input: PlotlySchema, colorMap: React.MutableRefObject<Map<string, string>>, useFluentVizColorPalette: boolean, isDarkTheme?: boolean) => IDonutChartProps;
18
- export declare const transformPlotlyJsonToVSBCProps: (input: PlotlySchema, colorMap: React.MutableRefObject<Map<string, string>>, isDarkTheme?: boolean, fallbackVSBC?: boolean) => IVerticalStackedBarChartProps;
19
- export declare const transformPlotlyJsonToGVBCProps: (input: PlotlySchema, colorMap: React.MutableRefObject<Map<string, string>>, isDarkTheme?: boolean) => IGroupedVerticalBarChartProps;
20
- export declare const transformPlotlyJsonToVBCProps: (input: PlotlySchema, colorMap: React.MutableRefObject<Map<string, string>>, isDarkTheme?: boolean) => IVerticalBarChartProps;
20
+ export declare const transformPlotlyJsonToVSBCProps: (input: PlotlySchema, colorMap: React.MutableRefObject<Map<string, string>>, useFluentVizColorPalette: boolean, isDarkTheme?: boolean, fallbackVSBC?: boolean) => IVerticalStackedBarChartProps;
21
+ export declare const transformPlotlyJsonToGVBCProps: (input: PlotlySchema, colorMap: React.MutableRefObject<Map<string, string>>, useFluentVizColorPalette: boolean, isDarkTheme?: boolean) => IGroupedVerticalBarChartProps;
22
+ export declare const transformPlotlyJsonToVBCProps: (input: PlotlySchema, colorMap: React.MutableRefObject<Map<string, string>>, useFluentVizColorPalette: boolean, isDarkTheme?: boolean) => IVerticalBarChartProps;
21
23
  export declare const transformPlotlyJsonToScatterChartProps: (input: PlotlySchema, isAreaChart: boolean, colorMap: React.MutableRefObject<Map<string, string>>, useFluentVizColorPalette: boolean, isDarkTheme?: boolean) => ILineChartProps | IAreaChartProps;
22
- export declare const transformPlotlyJsonToHorizontalBarWithAxisProps: (input: PlotlySchema, colorMap: React.MutableRefObject<Map<string, string>>, isDarkTheme?: boolean) => IHorizontalBarChartWithAxisProps;
24
+ export declare const transformPlotlyJsonToHorizontalBarWithAxisProps: (input: PlotlySchema, colorMap: React.MutableRefObject<Map<string, string>>, useFluentVizColorPalette: boolean, isDarkTheme?: boolean) => IHorizontalBarChartWithAxisProps;
23
25
  export declare const transformPlotlyJsonToHeatmapProps: (input: PlotlySchema) => IHeatMapChartProps;
24
26
  export declare const transformPlotlyJsonToSankeyProps: (input: PlotlySchema, colorMap: React.MutableRefObject<Map<string, string>>, isDarkTheme?: boolean) => ISankeyChartProps;
25
27
  export declare const transformPlotlyJsonToGaugeProps: (input: PlotlySchema, colorMap: React.MutableRefObject<Map<string, string>>, isDarkTheme?: boolean) => IGaugeChartProps;