@carbon/charts 0.52.1 → 0.53.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +38 -0
- package/build/demo/data/alluvial.d.ts +34 -2
- package/build/demo/data/meter.d.ts +22 -0
- package/build/src/components/graphs/alluvial.d.ts +1 -0
- package/build/src/configuration-non-customizable.d.ts +1 -0
- package/bundle.js +1 -1
- package/components/axes/zoom-bar.js +1 -1
- package/components/axes/zoom-bar.js.map +1 -1
- package/components/essentials/title-meter.js +7 -4
- package/components/essentials/title-meter.js.map +1 -1
- package/components/graphs/alluvial.d.ts +1 -0
- package/components/graphs/alluvial.js +46 -4
- package/components/graphs/alluvial.js.map +1 -1
- package/components/graphs/meter.js +9 -5
- package/components/graphs/meter.js.map +1 -1
- package/configuration-non-customizable.d.ts +1 -0
- package/configuration-non-customizable.js +1 -0
- package/configuration-non-customizable.js.map +1 -1
- package/demo/data/alluvial.d.ts +34 -2
- package/demo/data/alluvial.js +175 -17
- package/demo/data/alluvial.js.map +1 -1
- package/demo/data/bundle.js +1 -1
- package/demo/data/index.js +11 -1
- package/demo/data/index.js.map +1 -1
- package/demo/data/meter.d.ts +22 -0
- package/demo/data/meter.js +32 -0
- package/demo/data/meter.js.map +1 -1
- package/demo/tsconfig.tsbuildinfo +5 -5
- package/model/meter.js +11 -2
- package/model/meter.js.map +1 -1
- package/package.json +1 -1
- package/tsconfig.tsbuildinfo +8 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alluvial.js","sourceRoot":"","sources":["alluvial.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,mBAAmB;AACnB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE5E,aAAa;AACb,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAErE;IAA8B,4BAAS;IAAvC;QAAA,qEAonBC;QAnnBA,UAAI,GAAG,UAAU,CAAC;QAClB,gBAAU,GAAG,WAAW,CAAC,GAAG,CAAC;;IAknB9B,CAAC;IA9mBA,yBAAM,GAAN,UAAO,OAAc;QAArB,iBA4PC;QA5PM,wBAAA,EAAA,cAAc;QACpB,2BAA2B;QAC3B,IAAM,GAAG,GAAG,IAAI,CAAC,qBAAqB,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;QAClE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEP,IAAA;;UAEJ,EAFM,gBAAK,EAAE,kBAEb,CAAC;QAEH,8DAA8D;QAC9D,oDAAoD;QACpD,kDAAkD;QAClD,IAAI,KAAK,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE;YAC5B,OAAO;SACP;QACD,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QACxC,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;QAEzC,0CAA0C;QAC1C,IAAI,WAAW,GAAG,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC;QACxD,IACC,OAAO,CAAC,QAAQ,CAAC,WAAW,GAAG,aAAa,CAAC,QAAQ,CAAC,cAAc,EACnE;YACD,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;SAC3C;QAED,IAAM,MAAM,GAAG,QAAQ,EAAE;aACvB,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,EAAN,CAAM,CAAC;aACrB,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC;YAC5C,2CAA2C;aAC1C,WAAW,CAAC,WAAW,CAAC;YACzB,oCAAoC;YACpC,oFAAoF;YACpF,2DAA2D;aAC1D,MAAM,CAAC;YACP,CAAC,CAAC,EAAE,EAAE,CAAC;YACP,CAAC,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC;SACnB,CAAC,CAAC;QAEJ,gDAAgD;QAChD,uFAAuF;QACvF,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;YACnB,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,EAApB,CAAoB,CAAC;YAC9D,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,EAApB,CAAoB,CAAC;SAC5C,CAAC,CAAC;QAEH,mDAAmD;QACnD,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,KAAK,KAAK,CAAC,EAAhB,CAAgB,CAAC,CAAC;QAEvE,mDAAmD;QACnD,IAAM,eAAe,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,UAAC,OAAO;;YAChC,IAAM,KAAK,GAAG,OAAO,CAAC,EAAE,CAAC;YAEzB,8BAA8B;YAC9B,IAAI,OAAO,CAAC,QAAQ,EAAE;gBACrB,eAAe,CAAC,KAAK,CAAC,SAAG,OAAO,0CAAE,QAAQ,CAAC;aAC3C;QACF,CAAC,CAAC,CAAC;QAEH,yBAAyB;QACzB,IAAM,gBAAgB,GAAG,GAAG;aAC1B,MAAM,CAAC,GAAG,CAAC;aACX,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC;aAC9B,SAAS,CAAC,GAAG,CAAC;aACd,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;aAClC,IAAI,CAAC,GAAG,CAAC;aACT,IAAI,CAAC,WAAW,EAAE,UAAC,CAAC;YACpB,OAAO,eAAa,CAAC,SAAM,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEJ,wBAAwB;QACxB,gBAAgB;aACd,MAAM,CAAC,MAAM,CAAC;aACd,IAAI,CAAC,IAAI,EAAE,UAAC,CAAC,EAAE,CAAC;YAChB,OAAA,KAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,CAC7C,uBAAqB,CAAG,CACxB;QAFD,CAEC,CACD;aACA,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC;aAC1B,IAAI,CAAC,UAAC,CAAC;YACP,IAAI,eAAe,CAAC,CAAC,CAAC,EAAE;gBACvB,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC;aAC1B;YACD,OAAO,EAAE,CAAC;QACX,CAAC,CAAC;aACD,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;aACb,IAAI,CAAC,GAAG,EAAE,UAAC,CAAC,EAAE,CAAC;YACf,IAAM,SAAS,GAAG,KAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,CAC/D,uBAAqB,CAAG,CACxB,CAAC;YAEM,IAAA,wFAAK,CAGX;YAEF,gEAAgE;YAChE,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,EAAE;gBACnB,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;aACf;YACD,OAAO,CAAC,CAAC;QACV,CAAC,CAAC,CAAC;QAEJ,0BAA0B;QAC1B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC;aACb,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;aACpB,SAAS,CAAC,GAAG,CAAC;aACd,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;aACtB,IAAI,CAAC,MAAM,CAAC;aACZ,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;aACrB,IAAI,CAAC,GAAG,EAAE,oBAAoB,EAAE,CAAC;aACjC,IAAI,CAAC,IAAI,EAAE,UAAC,CAAC;YACb,OAAA,KAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,CAC7C,mBAAiB,CAAC,CAAC,KAAO,CAC1B;QAFD,CAEC,CACD;aACA,IAAI,CAAC,OAAO,EAAE,UAAC,CAAC;YAChB,mCAAmC;YACnC,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE;gBAChC,OAAO,KAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC;oBACnC,cAAc,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC;oBAC5C,aAAa,EAAE,CAAC;oBAChB,iBAAiB,EAAE,MAAM;iBACzB,CAAC,CAAC;aACH;YAED,OAAO,KAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC;gBACnC,cAAc,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC;gBAC5C,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK;gBAC7B,iBAAiB,EAAE,MAAM;aACzB,CAAC,CAAC;QACJ,CAAC,CAAC;aACD,KAAK,CAAC,QAAQ,EAAE,UAAC,CAAC,IAAK,OAAA,KAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAtC,CAAsC,CAAC;aAC9D,IAAI,CAAC,cAAc,EAAE,UAAC,CAAC,IAAK,OAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAApB,CAAoB,CAAC;aACjD,KAAK,CAAC,gBAAgB,EAAE,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC;aAC/D,IAAI,CACJ,YAAY,EACZ,UAAC,CAAC;YACD,OAAG,CAAC,CAAC,MAAM,CAAC,IAAI,gBAAM,CAAC,CAAC,MAAM,CAAC,IAAI,UAAK,CAAC,CAAC,KAAK,IAC9C,OAAO,CAAC,QAAQ,CAAC,KAAK;gBACrB,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAC9B,CAAC,CAAC,EAAE,OACH;QAJH,CAIG,CACJ,CAAC;QAEH,sBAAsB;QACtB,IAAM,IAAI,GAAG,GAAG;aACd,MAAM,CAAC,GAAG,CAAC;aACX,SAAS,CAAC,GAAG,CAAC;aACd,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;aACtB,KAAK,EAAE;aACP,MAAM,CAAC,GAAG,CAAC;aACX,IAAI,CAAC,IAAI,EAAE,UAAC,CAAC;YACb,OAAA,KAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,CAC7C,mBAAiB,CAAC,CAAC,KAAO,CAC1B;QAFD,CAEC,CACD;aACA,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC;aAC3B,IAAI,CAAC,WAAW,EAAE,UAAC,CAAC,IAAK,OAAA,eAAa,CAAC,CAAC,EAAE,UAAK,CAAC,CAAC,EAAE,MAAG,EAA7B,CAA6B,CAAC,CAAC;QAE1D,qBAAqB;QACrB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;aACjB,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;aACrB,IAAI,CAAC,QAAQ,EAAE,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAX,CAAW,CAAC;aAClC,IAAI,CAAC,OAAO,EAAE,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAX,CAAW,CAAC;aACjC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAExB,gDAAgD;QAChD,IAAM,QAAQ,GAAG,IAAI;aACnB,MAAM,CAAC,GAAG,CAAC;aACX,IAAI,CAAC,IAAI,EAAE,UAAC,CAAC;YACb,OAAA,KAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,CAC7C,yBAAuB,CAAC,CAAC,KAAO,CAChC;QAFD,CAEC,CACD,CAAC;QAEH,oBAAoB;QACpB,QAAQ;aACN,MAAM,CAAC,MAAM,CAAC;aACd,IAAI,CAAC,IAAI,EAAE,UAAC,CAAC;YACb,OAAA,KAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,CAC7C,wBAAsB,CAAC,CAAC,KAAO,CAC/B;QAFD,CAEC,CACD;aACA,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC;aAC1B,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC;aAC1B,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC;aAC5B,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;YACtB,kBAAkB;aACjB,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YACb,mDAAmD;aAClD,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;aACd,IAAI,CAAC,UAAC,CAAC;YACP,OAAU,CAAC,CAAC,IAAI,UAAK,CAAC,CAAC,KAAK,MAAG,CAAC;QACjC,CAAC,CAAC;aACD,IAAI,CAAC,YAAY,EAAE,UAAC,CAAC;YACrB,OAAU,CAAC,CAAC,IAAI,UAAK,CAAC,CAAC,KAAK,MAAG,CAAC;QACjC,CAAC,CAAC,CAAC;QAEJ,kBAAkB;QAClB,QAAQ;aACN,MAAM,CAAC,MAAM,CAAC;aACd,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC;aAC7B,IAAI,CAAC,OAAO,EAAE,UAAC,CAAC,EAAE,CAAC;YACnB,IAAM,SAAS,GAAG,KAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,CAC/D,wBAAsB,CAAG,CACzB,CAAC;YAEF,gDAAgD;YACxC,IAAA,wFAAK,CAGX;YAEF,OAAO,KAAK,GAAG,CAAC,CAAC;QAClB,CAAC,CAAC;aACD,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;aAClB,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;aACvB,KAAK,EAAE,CAAC;QAEV,qCAAqC;QACrC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,UAAC,CAAC,EAAE,CAAC;YAC/B,IAAM,SAAS,GAAG,KAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,CAC/D,wBAAsB,CAAG,CACzB,CAAC;YAEM,IAAA,wFAAK,CAGX;YAEF,sDAAsD;YACtD,IAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAChC,aAAa;YACb,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;YAEpB,wDAAwD;YACxD,IAAI,CAAC,CAAC,EAAE,IAAI,KAAK,EAAE;gBAClB,kGAAkG;gBAClG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;aACrB;iBAAM;gBACN,iCAAiC;gBACjC,CAAC,IAAI,CAAC,CAAC;aACP;YAED,OAAO,eAAa,CAAC,UAAK,CAAC,MAAG,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC7B,CAAC;IAED,uCAAoB,GAApB;QACC,IAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,IAAM,IAAI,GAAG,IAAI,CAAC;QAElB,wCAAwC;QACxC,IAAM,sBAAsB,GAAG,KAAK,CAAC,QAAQ,CAC5C,UAAC,IAAI,EAAE,KAAmB;YAAnB,sBAAA,EAAA,mBAAmB;YACzB,IAAM,QAAQ,GAAG,IAAI,CAAC,MAAM;iBAC1B,SAAS,CAAC,WAAW,CAAC;iBACtB,UAAU,EAAE;iBACZ,IAAI,CAAC,UAAC,CAAC;gBACP,OAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,eAAe,CAAC;oBACzC,UAAU,EAAE,CAAC;oBACb,IAAI,EAAE,gCAAgC;iBACtC,CAAC;YAHF,CAGE,CACF,CAAC;YAEH,IAAI,KAAK,KAAK,UAAU,EAAE;gBACzB,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;gBACrB,QAAQ,CAAC,KAAK,CACb,gBAAgB,EAChB,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CACtC,CAAC;aACF;iBAAM;gBACN,QAAQ,CAAC,KAAK,CAAC,gBAAgB,EAAE;oBAChC,sCAAsC;oBACtC,IAAI,IAAI,KAAK,IAAI,EAAE;wBAClB,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;wBACrB,OAAO,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC;qBAC/C;oBAED,OAAO,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC;gBAC/C,CAAC,CAAC,CAAC;aACH;QACF,CAAC,EACD,EAAE,CACF,CAAC;QAEF,IAAI,CAAC,MAAM;aACT,SAAS,CAAC,WAAW,CAAC;aACtB,EAAE,CAAC,WAAW,EAAE,UAAU,KAAK,EAAE,KAAK;YACtC,IAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YACpC,sBAAsB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YAC1C,cAAc,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;YAE7C,IAAM,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAC1D,QAAQ,CACR,CAAC;YAEF,4BAA4B;YAC5B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CACjC,MAAM,CAAC,QAAQ,CAAC,cAAc,EAC9B;gBACC,KAAK,OAAA;gBACL,OAAO,EAAE,cAAc;gBACvB,KAAK,OAAA;aACL,CACD,CAAC;YAEF,8BAA8B;YAC9B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE;gBACvD,KAAK,OAAA;gBACL,cAAc,gBAAA;gBACd,KAAK,EAAE;oBACN;wBACC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;wBACxB,KAAK,EACJ,KAAK,CAAC,KAAK;4BACX,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK;gCACtB,CAAC,CAAC,MAAI,OAAO,CAAC,QAAQ,CAAC,KAAO;gCAC9B,CAAC,CAAC,EAAE,CAAC;wBACP,KAAK,EAAE,WAAW;wBAClB,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE;qBACnC;iBACD;aACD,CAAC,CAAC;QACJ,CAAC,CAAC;aACD,EAAE,CAAC,WAAW,EAAE,UAAU,KAAK,EAAE,KAAK;YACtC,4BAA4B;YAC5B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CACjC,MAAM,CAAC,QAAQ,CAAC,cAAc,EAC9B;gBACC,KAAK,OAAA;gBACL,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC;gBACrB,KAAK,OAAA;aACL,CACD,CAAC;YACF,8BAA8B;YAC9B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE;gBACvD,KAAK,OAAA;aACL,CAAC,CAAC;QACJ,CAAC,CAAC;aACD,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,EAAE,KAAK;YAClC,6BAA6B;YAC7B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE;gBAC9D,KAAK,OAAA;gBACL,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC;gBACrB,KAAK,OAAA;aACL,CAAC,CAAC;QACJ,CAAC,CAAC;aACD,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,EAAE,KAAK;YACrC,IAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YACpC,sBAAsB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACzC,cAAc,CAAC,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;YAE9C,2BAA2B;YAC3B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CACjC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAC7B;gBACC,KAAK,OAAA;gBACL,OAAO,EAAE,cAAc;gBACvB,KAAK,OAAA;aACL,CACD,CAAC;YAEF,8BAA8B;YAC9B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE;gBACvD,KAAK,OAAA;gBACL,cAAc,gBAAA;aACd,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,uCAAoB,GAApB;QAAA,iBAiNC;QAhNA,IAAM,IAAI,GAAG,IAAI,CAAC;QAElB,wCAAwC;QACxC,IAAM,sBAAsB,GAAG,KAAK,CAAC,QAAQ,CAC5C,UAAC,KAAU,EAAE,KAAmB;YAA/B,sBAAA,EAAA,UAAU;YAAE,sBAAA,EAAA,mBAAmB;YAC/B,IAAI,KAAK,KAAK,UAAU,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC/C,uDAAuD;gBACvD,IAAI,CAAC,MAAM;qBACT,SAAS,CAAC,WAAW,CAAC;qBACtB,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC;qBAC9B,IAAI,CAAC,KAAI,CAAC,KAAK,CAAC,KAAK,EAAE,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,KAAK,EAAP,CAAO,CAAC;qBACtC,KAAK,EAAE;qBACP,KAAK,CACL,gBAAgB,EAChB,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CACtC,CAAC;gBAEH,OAAO;aACP;YAED,sBAAsB;YACtB,IAAM,QAAQ,GAAG,IAAI,CAAC,MAAM;iBAC1B,SAAS,CAAC,WAAW,CAAC;iBACtB,UAAU,EAAE;iBACZ,IAAI,CAAC,UAAC,CAAC;gBACP,OAAA,KAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,eAAe,CAAC;oBACzC,UAAU,EAAE,CAAC;oBACb,IAAI,EAAE,+BAA+B;iBACrC,CAAC;YAHF,CAGE,CACF,CAAC;YAEH,QAAQ,CAAC,KAAK,CAAC,gBAAgB,EAAE,UAAU,CAAC;gBAC3C,wDAAwD;gBACxD,IAAI,KAAK,CAAC,IAAI,CAAC,UAAC,OAAO,IAAK,OAAA,OAAO,KAAK,CAAC,CAAC,KAAK,EAAnB,CAAmB,CAAC,EAAE;oBACjD,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;oBACnD,OAAO,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC;iBAC/C;gBAED,OAAO,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC;YAC/C,CAAC,CAAC,CAAC;QACJ,CAAC,EACD,EAAE,CACF,CAAC;QAEF,IAAI,CAAC,MAAM;aACT,SAAS,CAAC,aAAa,CAAC;aACxB,EAAE,CAAC,WAAW,EAAE,UAAU,KAAK,EAAE,KAAK;YACtC,IAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YAEpC,6CAA6C;YAC7C,IAAM,KAAK,GAAG,EAAE,CAAC;YAEjB,iBAAiB;YACjB,IAAI,CAAC,QAAQ,CACZ,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,EACvC,KAAK,EACL,KAAK,CACL,CAAC;YAEF,gBAAgB;YAChB,IAAI,CAAC,QAAQ,CACZ,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,EACvC,KAAK,EACL,KAAK,CACL,CAAC;YAEF,yDAAyD;YACzD,IAAI,KAAK,CAAC,MAAM,EAAE;gBACjB,mCAAmC;gBACnC,IAAM,UAAU,GAAG,KAAK,CAAC,kBAAkB,CAC1C,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAChC,CAAC;gBAEF,0DAA0D;gBAC1D,cAAc,CAAC,IAAI,CAClB,WAAW,EACX,gBAAa,UAAU,CAAC,CAAC,GAAG,CAAC,WAAK,UAAU,CAAC,CAAC,MAAG,CACjD,CAAC;gBAEF,cAAc;qBACZ,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC;qBAC7B,SAAS,CAAC,WAAW,CAAC;qBACtB,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBAEnB,+CAA+C;gBAC/C,gDAAgD;gBAChD,IAAI,KAAK,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE;oBACvB,IAAM,WAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,CAC/D,yBAAuB,KAAK,CAAC,KAAO,CACpC,CAAC;oBAEF,IAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CACxC,OAAK,WAAW,CAChB,CAAC;oBACF,IAAM,WAAW,GAAG,KAAK,CAAC,kBAAkB,CAC3C,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAChC,CAAC;oBAEF,cAAc,CAAC,IAAI,CAClB,WAAW,EACX,gBAAa,WAAW,CAAC,CAAC,GAAG,CAAC,UAAI,WAAW,CAAC,CAAC,MAAG,CAClD,CAAC;iBACF;gBAED,IAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,CAC/D,wBAAsB,KAAK,CAAC,KAAO,CACnC,CAAC;gBAEF,IAAI,CAAC,MAAM;qBACT,MAAM,CAAC,UAAQ,SAAW,CAAC;qBAC3B,KAAK,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;gBAE/B,sBAAsB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;gBAE3C,4BAA4B;gBAC5B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CACjC,MAAM,CAAC,QAAQ,CAAC,cAAc,EAC9B;oBACC,KAAK,OAAA;oBACL,OAAO,EAAE,cAAc;oBACvB,KAAK,OAAA;iBACL,CACD,CAAC;aACF;QACF,CAAC,CAAC;aACD,EAAE,CAAC,WAAW,EAAE,UAAU,KAAK,EAAE,KAAK;YACtC,4BAA4B;YAC5B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CACjC,MAAM,CAAC,QAAQ,CAAC,cAAc,EAC9B;gBACC,KAAK,OAAA;gBACL,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC;gBACrB,KAAK,OAAA;aACL,CACD,CAAC;YAEF,8BAA8B;YAC9B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE;gBACvD,KAAK,OAAA;aACL,CAAC,CAAC;QACJ,CAAC,CAAC;aACD,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,EAAE,KAAK;YAClC,6BAA6B;YAC7B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE;gBAC9D,KAAK,OAAA;gBACL,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC;gBACrB,KAAK,OAAA;aACL,CAAC,CAAC;QACJ,CAAC,CAAC;aACD,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,EAAE,KAAK;YACrC,IAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YAEpC,sDAAsD;YACtD,IAAM,UAAU,GAAG,KAAK,CAAC,kBAAkB,CAC1C,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAChC,CAAC;YAEF,cAAc;iBACZ,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC;iBAC9B,IAAI,CACJ,WAAW,EACX,gBAAa,UAAU,CAAC,CAAC,GAAG,CAAC,WAAK,UAAU,CAAC,CAAC,MAAG,CACjD;iBACA,MAAM,CAAC,WAAW,CAAC;iBACnB,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAElD,iDAAiD;YACjD,IAAI,KAAK,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE;gBACvB,IAAM,WAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,CAC/D,yBAAuB,KAAK,CAAC,KAAO,CACpC,CAAC;gBAEF,IAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAK,WAAW,CAAC,CAAC;gBAC5D,IAAM,WAAW,GAAG,KAAK,CAAC,kBAAkB,CAC3C,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAChC,CAAC;gBAEF,cAAc,CAAC,IAAI,CAClB,WAAW,EACX,gBAAa,WAAW,CAAC,CAAC,GAAG,CAAC,UAAI,WAAW,CAAC,CAAC,MAAG,CAClD,CAAC;aACF;YAED,IAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,CAC/D,wBAAsB,KAAK,CAAC,KAAO,CACnC,CAAC;YAEF,IAAI,CAAC,MAAM;iBACT,MAAM,CAAC,UAAQ,SAAW,CAAC;iBAC3B,KAAK,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;YAEjC,sBAAsB,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;YAEvC,2BAA2B;YAC3B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CACjC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAC7B;gBACC,KAAK,OAAA;gBACL,OAAO,EAAE,cAAc;gBACvB,KAAK,OAAA;aACL,CACD,CAAC;YAEF,8BAA8B;YAC9B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE;gBACvD,cAAc,gBAAA;aACd,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,qDAAqD;IAC7C,2BAAQ,GAAhB,UACC,SAE0C,EAC1C,IAAI,EACJ,OAAY;QALb,iBAcC;QATA,wBAAA,EAAA,YAAY;QAEZ,IAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,UAAC,OAAO;YAC9C,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC5B,OAAO,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,2BAA2B;QAC3B,KAAK,CAAC,OAAO,CAAC,UAAC,OAAO,IAAK,OAAA,KAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,EAA1C,CAA0C,CAAC,CAAC;IACxE,CAAC;IAED,oCAAiB,GAAjB;QACC,OAAO,oUAIA,CAAC;IACT,CAAC;IAED,yBAAyB;IACzB,0BAAO,GAAP;QACC,IAAI,CAAC,MAAM;aACT,SAAS,CAAC,uBAAuB,CAAC;aAClC,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC;aACrB,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC;aACrB,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC;aACjB,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACxB,CAAC;IACF,eAAC;AAAD,CAAC,AApnBD,CAA8B,SAAS,GAonBtC","sourcesContent":["// Internal imports\nimport { Component } from '../component';\nimport { DOMUtils } from '../../services';\nimport { Tools } from '../../tools';\nimport * as Configuration from '../../configuration';\nimport { Events, ColorClassNameTypes, RenderTypes } from '../../interfaces';\n\n// D3 imports\nimport { select } from 'd3-selection';\nimport { sankey as d3Sankey, sankeyLinkHorizontal } from 'd3-sankey';\n\nexport class Alluvial extends Component {\n\ttype = 'alluvial';\n\trenderType = RenderTypes.SVG;\n\n\tprivate graph: any;\n\n\trender(animate = true) {\n\t\t// svg and container widths\n\t\tconst svg = this.getComponentContainer({ withinChartClip: true });\n\t\tsvg.html('');\n\n\t\tconst { width, height } = DOMUtils.getSVGElementSize(svg, {\n\t\t\tuseAttrs: true,\n\t\t});\n\n\t\t// Because of a Firefox bug with regards to sizing & d3 packs,\n\t\t// rather than checking if height or width aren't 0,\n\t\t// we have to make sure they're not smaller than 1\n\t\tif (width < 1 || height < 1) {\n\t\t\treturn;\n\t\t}\n\t\tconst options = this.model.getOptions();\n\t\tconst data = this.model.getDisplayData();\n\n\t\t// Set the custom node padding if provided\n\t\tlet nodePadding = Configuration.alluvial.minNodePadding;\n\t\tif (\n\t\t\toptions.alluvial.nodePadding > Configuration.alluvial.minNodePadding\n\t\t) {\n\t\t\tnodePadding = options.alluvial.nodePadding;\n\t\t}\n\n\t\tconst sankey = d3Sankey()\n\t\t\t.nodeId((d) => d.name)\n\t\t\t.nodeWidth(Configuration.alluvial.nodeWidth)\n\t\t\t// Distance nodes are apart from each other\n\t\t\t.nodePadding(nodePadding)\n\t\t\t// Size of the chart and its padding\n\t\t\t// Chart starts at 2 and ends at width - 2 so the outer nodes can expand from center\n\t\t\t// Chart starts from 30 so node categories can be displayed\n\t\t\t.extent([\n\t\t\t\t[2, 30],\n\t\t\t\t[width - 2, height],\n\t\t\t]);\n\n\t\t// Construct a graph with the provided user data\n\t\t// Data must be deep cloned to ensure user passed data isn't deleted when themes change\n\t\tthis.graph = sankey({\n\t\t\tnodes: options.alluvial.nodes.map((d) => Object.assign({}, d)),\n\t\t\tlinks: data.map((d) => Object.assign({}, d)),\n\t\t});\n\n\t\t// Filter out unused nodes so they are not rendered\n\t\tthis.graph.nodes = this.graph.nodes.filter((node) => node.value !== 0);\n\n\t\t// Determine the category name placement x position\n\t\tconst nodeCoordinates = {};\n\t\tthis.graph.nodes.forEach((element) => {\n\t\t\tconst point = element.x0;\n\n\t\t\t// Only 1 category per x-value\n\t\t\tif (element.category) {\n\t\t\t\tnodeCoordinates[point] = element?.category;\n\t\t\t}\n\t\t});\n\n\t\t// Add node category text\n\t\tconst alluvialCategory = svg\n\t\t\t.append('g')\n\t\t\t.classed('header-arrows', true)\n\t\t\t.selectAll('g')\n\t\t\t.data(Object.keys(nodeCoordinates))\n\t\t\t.join('g')\n\t\t\t.attr('transform', (d) => {\n\t\t\t\treturn `translate(${d}, 0)`;\n\t\t\t});\n\n\t\t// Add the category text\n\t\talluvialCategory\n\t\t\t.append('text')\n\t\t\t.attr('id', (d, i) =>\n\t\t\t\tthis.services.domUtils.generateElementIDString(\n\t\t\t\t\t`alluvial-category-${i}`\n\t\t\t\t)\n\t\t\t)\n\t\t\t.style('font-size', '14px')\n\t\t\t.text((d) => {\n\t\t\t\tif (nodeCoordinates[d]) {\n\t\t\t\t\treturn nodeCoordinates[d];\n\t\t\t\t}\n\t\t\t\treturn '';\n\t\t\t})\n\t\t\t.attr('y', 20)\n\t\t\t.attr('x', (d, i) => {\n\t\t\t\tconst elementID = this.services.domUtils.generateElementIDString(\n\t\t\t\t\t`alluvial-category-${i}`\n\t\t\t\t);\n\n\t\t\t\tconst { width } = DOMUtils.getSVGElementSize(\n\t\t\t\t\tselect(`text#${elementID}`),\n\t\t\t\t\t{ useBBox: true }\n\t\t\t\t);\n\n\t\t\t\t// Make the text on the left on node group (except first column)\n\t\t\t\tlet x = 0;\n\t\t\t\tif (d + x >= width) {\n\t\t\t\t\tx = -width + 4;\n\t\t\t\t}\n\t\t\t\treturn x;\n\t\t\t});\n\n\t\t// Draws the links (Waves)\n\t\tsvg.append('g')\n\t\t\t.attr('fill', 'none')\n\t\t\t.selectAll('g')\n\t\t\t.data(this.graph.links)\n\t\t\t.join('path')\n\t\t\t.classed('link', true)\n\t\t\t.attr('d', sankeyLinkHorizontal())\n\t\t\t.attr('id', (d) =>\n\t\t\t\tthis.services.domUtils.generateElementIDString(\n\t\t\t\t\t`alluvial-line-${d.index}`\n\t\t\t\t)\n\t\t\t)\n\t\t\t.attr('class', (d) => {\n\t\t\t\t// Use a single color for the lines\n\t\t\t\tif (options.alluvial.monochrome) {\n\t\t\t\t\treturn this.model.getColorClassName({\n\t\t\t\t\t\tclassNameTypes: [ColorClassNameTypes.STROKE],\n\t\t\t\t\t\tdataGroupName: 0,\n\t\t\t\t\t\toriginalClassName: 'link',\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn this.model.getColorClassName({\n\t\t\t\t\tclassNameTypes: [ColorClassNameTypes.STROKE],\n\t\t\t\t\tdataGroupName: d.source.index,\n\t\t\t\t\toriginalClassName: 'link',\n\t\t\t\t});\n\t\t\t})\n\t\t\t.style('stroke', (d) => this.model.getFillColor(d.source.name))\n\t\t\t.attr('stroke-width', (d) => Math.max(1, d.width))\n\t\t\t.style('stroke-opacity', Configuration.alluvial.opacity.default)\n\t\t\t.attr(\n\t\t\t\t'aria-label',\n\t\t\t\t(d) =>\n\t\t\t\t\t`${d.source.name} → ${d.target.name} (${d.value}${\n\t\t\t\t\t\toptions.alluvial.units\n\t\t\t\t\t\t\t? ' ' + options.alluvial.units\n\t\t\t\t\t\t\t: ''\n\t\t\t\t\t})`\n\t\t\t);\n\n\t\t// Creating the groups\n\t\tconst node = svg\n\t\t\t.append('g')\n\t\t\t.selectAll('g')\n\t\t\t.data(this.graph.nodes)\n\t\t\t.enter()\n\t\t\t.append('g')\n\t\t\t.attr('id', (d) =>\n\t\t\t\tthis.services.domUtils.generateElementIDString(\n\t\t\t\t\t`alluvial-node-${d.index}`\n\t\t\t\t)\n\t\t\t)\n\t\t\t.classed('node-group', true)\n\t\t\t.attr('transform', (d) => `translate(${d.x0}, ${d.y0})`);\n\n\t\t// Creating the nodes\n\t\tnode.append('rect')\n\t\t\t.classed('node', true)\n\t\t\t.attr('height', (d) => d.y1 - d.y0)\n\t\t\t.attr('width', (d) => d.x1 - d.x0)\n\t\t\t.attr('fill', 'black');\n\n\t\t// Group to hold the text & rectangle background\n\t\tconst textNode = node\n\t\t\t.append('g')\n\t\t\t.attr('id', (d) =>\n\t\t\t\tthis.services.domUtils.generateElementIDString(\n\t\t\t\t\t`alluvial-node-title-${d.index}`\n\t\t\t\t)\n\t\t\t);\n\n\t\t// Node title - text\n\t\ttextNode\n\t\t\t.append('text')\n\t\t\t.attr('id', (d) =>\n\t\t\t\tthis.services.domUtils.generateElementIDString(\n\t\t\t\t\t`alluvial-node-text-${d.index}`\n\t\t\t\t)\n\t\t\t)\n\t\t\t.attr('class', 'node-text')\n\t\t\t.style('font-size', '12px')\n\t\t\t.attr('text-anchor', 'start')\n\t\t\t.attr('fill', 'white')\n\t\t\t// Padding to text\n\t\t\t.attr('x', 4)\n\t\t\t// shift 13 pixels down to fit background container\n\t\t\t.attr('dy', 13)\n\t\t\t.text((d) => {\n\t\t\t\treturn `${d.name} (${d.value})`;\n\t\t\t})\n\t\t\t.attr('aria-label', (d) => {\n\t\t\t\treturn `${d.name} (${d.value})`;\n\t\t\t});\n\n\t\t// Text background\n\t\ttextNode\n\t\t\t.append('rect')\n\t\t\t.classed('node-text-bg', true)\n\t\t\t.attr('width', (d, i) => {\n\t\t\t\tconst elementID = this.services.domUtils.generateElementIDString(\n\t\t\t\t\t`alluvial-node-text-${i}`\n\t\t\t\t);\n\n\t\t\t\t// Determine rectangle width based on text width\n\t\t\t\tconst { width } = DOMUtils.getSVGElementSize(\n\t\t\t\t\tselect(`text#${elementID}`),\n\t\t\t\t\t{ useBBox: true }\n\t\t\t\t);\n\n\t\t\t\treturn width + 8;\n\t\t\t})\n\t\t\t.attr('height', 18)\n\t\t\t.attr('stroke-width', 2)\n\t\t\t.lower();\n\n\t\t// Position group based on text width\n\t\ttextNode.attr('transform', (d, i) => {\n\t\t\tconst elementID = this.services.domUtils.generateElementIDString(\n\t\t\t\t`alluvial-node-text-${i}`\n\t\t\t);\n\n\t\t\tconst { width } = DOMUtils.getSVGElementSize(\n\t\t\t\tselect(`text#${elementID}`),\n\t\t\t\t{ useBBox: true }\n\t\t\t);\n\n\t\t\t// Subtracting 9 since text background is 18 to center\n\t\t\tconst y = (d.y1 - d.y0) / 2 - 9;\n\t\t\t// Node width\n\t\t\tlet x = d.x1 - d.x0;\n\n\t\t\t// Display bars on the right instead of left of the node\n\t\t\tif (d.x1 >= width) {\n\t\t\t\t// 16 = node width (4) + text container padding (8) + distance between node and text container (4)\n\t\t\t\tx = x - (width + 16);\n\t\t\t} else {\n\t\t\t\t// Add padding to text containers\n\t\t\t\tx += 4;\n\t\t\t}\n\n\t\t\treturn `translate(${x}, ${y})`;\n\t\t});\n\n\t\tthis.addLineEventListener();\n\t\tthis.addNodeEventListener();\n\t}\n\n\taddLineEventListener() {\n\t\tconst options = this.getOptions();\n\t\tconst self = this;\n\n\t\t// Set delay to counter flashy behaviour\n\t\tconst debouncedLineHighlight = Tools.debounce(\n\t\t\t(link, event = 'mouseover') => {\n\t\t\t\tconst allLinks = self.parent\n\t\t\t\t\t.selectAll('path.link')\n\t\t\t\t\t.transition()\n\t\t\t\t\t.call((t) =>\n\t\t\t\t\t\tself.services.transitions.setupTransition({\n\t\t\t\t\t\t\ttransition: t,\n\t\t\t\t\t\t\tname: 'alluvial-links-mouse-highlight',\n\t\t\t\t\t\t})\n\t\t\t\t\t);\n\n\t\t\t\tif (event === 'mouseout') {\n\t\t\t\t\tselect(link).lower();\n\t\t\t\t\tallLinks.style(\n\t\t\t\t\t\t'stroke-opacity',\n\t\t\t\t\t\tConfiguration.alluvial.opacity.default\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tallLinks.style('stroke-opacity', function () {\n\t\t\t\t\t\t// highlight and raise if link is this\n\t\t\t\t\t\tif (link === this) {\n\t\t\t\t\t\t\tselect(this).raise();\n\t\t\t\t\t\t\treturn Configuration.alluvial.opacity.selected;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn Configuration.alluvial.opacity.unfocus;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t},\n\t\t\t33\n\t\t);\n\n\t\tthis.parent\n\t\t\t.selectAll('path.link')\n\t\t\t.on('mouseover', function (event, datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\t\t\t\tdebouncedLineHighlight(this, 'mouseover');\n\t\t\t\thoveredElement.classed('link-hovered', true);\n\n\t\t\t\tconst strokeColor = getComputedStyle(this).getPropertyValue(\n\t\t\t\t\t'stroke'\n\t\t\t\t);\n\n\t\t\t\t// Dispatch mouse over event\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.Alluvial.LINE_MOUSEOVER,\n\t\t\t\t\t{\n\t\t\t\t\t\tevent,\n\t\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\t\tdatum,\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\t// Dispatch tooltip show event\n\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.SHOW, {\n\t\t\t\t\tevent,\n\t\t\t\t\thoveredElement,\n\t\t\t\t\titems: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: datum.target.name,\n\t\t\t\t\t\t\tvalue:\n\t\t\t\t\t\t\t\tdatum.value +\n\t\t\t\t\t\t\t\t(options.alluvial.units\n\t\t\t\t\t\t\t\t\t? ` ${options.alluvial.units}`\n\t\t\t\t\t\t\t\t\t: ''),\n\t\t\t\t\t\t\tcolor: strokeColor,\n\t\t\t\t\t\t\tlabelIcon: self.getRightArrowIcon(),\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t})\n\t\t\t.on('mousemove', function (event, datum) {\n\t\t\t\t// Dispatch mouse move event\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.Alluvial.LINE_MOUSEMOVE,\n\t\t\t\t\t{\n\t\t\t\t\t\tevent,\n\t\t\t\t\t\telement: select(this),\n\t\t\t\t\t\tdatum,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\t// Dispatch tooltip move event\n\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.MOVE, {\n\t\t\t\t\tevent,\n\t\t\t\t});\n\t\t\t})\n\t\t\t.on('click', function (event, datum) {\n\t\t\t\t// Dispatch mouse click event\n\t\t\t\tself.services.events.dispatchEvent(Events.Alluvial.LINE_CLICK, {\n\t\t\t\t\tevent,\n\t\t\t\t\telement: select(this),\n\t\t\t\t\tdatum,\n\t\t\t\t});\n\t\t\t})\n\t\t\t.on('mouseout', function (event, datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\t\t\t\tdebouncedLineHighlight(this, 'mouseout');\n\t\t\t\thoveredElement.classed('link-hovered', false);\n\n\t\t\t\t// Dispatch mouse out event\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.Alluvial.LINE_MOUSEOUT,\n\t\t\t\t\t{\n\t\t\t\t\t\tevent,\n\t\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\t\tdatum,\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\t// Dispatch hide tooltip event\n\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.HIDE, {\n\t\t\t\t\tevent,\n\t\t\t\t\thoveredElement,\n\t\t\t\t});\n\t\t\t});\n\t}\n\n\taddNodeEventListener() {\n\t\tconst self = this;\n\n\t\t// Set delay to counter flashy behaviour\n\t\tconst debouncedLineHighlight = Tools.debounce(\n\t\t\t(links = [], event = 'mouseover') => {\n\t\t\t\tif (event === 'mouseout' || links.length === 0) {\n\t\t\t\t\t// set all links to default opacity & corret link order\n\t\t\t\t\tself.parent\n\t\t\t\t\t\t.selectAll('path.link')\n\t\t\t\t\t\t.classed('link-hovered', false)\n\t\t\t\t\t\t.data(this.graph.links, (d) => d.index)\n\t\t\t\t\t\t.order()\n\t\t\t\t\t\t.style(\n\t\t\t\t\t\t\t'stroke-opacity',\n\t\t\t\t\t\t\tConfiguration.alluvial.opacity.default\n\t\t\t\t\t\t);\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Highlight all nodes\n\t\t\t\tconst allLinks = self.parent\n\t\t\t\t\t.selectAll('path.link')\n\t\t\t\t\t.transition()\n\t\t\t\t\t.call((t) =>\n\t\t\t\t\t\tthis.services.transitions.setupTransition({\n\t\t\t\t\t\t\ttransition: t,\n\t\t\t\t\t\t\tname: 'alluvial-link-mouse-highlight',\n\t\t\t\t\t\t})\n\t\t\t\t\t);\n\n\t\t\t\tallLinks.style('stroke-opacity', function (d) {\n\t\t\t\t\t// Raise the links & increase stroke-opacity to selected\n\t\t\t\t\tif (links.some((element) => element === d.index)) {\n\t\t\t\t\t\tselect(this).classed('link-hovered', true).raise();\n\t\t\t\t\t\treturn Configuration.alluvial.opacity.selected;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn Configuration.alluvial.opacity.unfocus;\n\t\t\t\t});\n\t\t\t},\n\t\t\t66\n\t\t);\n\n\t\tself.parent\n\t\t\t.selectAll('.node-group')\n\t\t\t.on('mouseover', function (event, datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\n\t\t\t\t// Highlight all links that pass through node\n\t\t\t\tconst paths = [];\n\n\t\t\t\t// Outgoing links\n\t\t\t\tself.traverse(\n\t\t\t\t\t{ link: 'sourceLinks', node: 'target' },\n\t\t\t\t\tdatum,\n\t\t\t\t\tpaths\n\t\t\t\t);\n\n\t\t\t\t//Incoming links\n\t\t\t\tself.traverse(\n\t\t\t\t\t{ link: 'targetLinks', node: 'source' },\n\t\t\t\t\tdatum,\n\t\t\t\t\tpaths\n\t\t\t\t);\n\n\t\t\t\t// Highlight all linked lines in the graph data structure\n\t\t\t\tif (paths.length) {\n\t\t\t\t\t// Get transformation value of node\n\t\t\t\t\tconst nodeMatrix = Tools.getTranformOffsets(\n\t\t\t\t\t\thoveredElement.attr('transform')\n\t\t\t\t\t);\n\n\t\t\t\t\t// Move node to the left by 2 to grow node from the center\n\t\t\t\t\thoveredElement.attr(\n\t\t\t\t\t\t'transform',\n\t\t\t\t\t\t`translate(${nodeMatrix.x - 2}, ${nodeMatrix.y})`\n\t\t\t\t\t);\n\n\t\t\t\t\thoveredElement\n\t\t\t\t\t\t.classed('node-hovered', true)\n\t\t\t\t\t\t.selectAll('rect.node')\n\t\t\t\t\t\t.attr('width', 8);\n\n\t\t\t\t\t// Translate first column text container to the\n\t\t\t\t\t// right so it doesn't clash with expanding node\n\t\t\t\t\tif (datum.x0 - 2 === 0) {\n\t\t\t\t\t\tconst elementID = self.services.domUtils.generateElementIDString(\n\t\t\t\t\t\t\t`alluvial-node-title-${datum.index}`\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tconst titleContainer = self.parent.select(\n\t\t\t\t\t\t\t`g#${elementID}`\n\t\t\t\t\t\t);\n\t\t\t\t\t\tconst titleMatrix = Tools.getTranformOffsets(\n\t\t\t\t\t\t\ttitleContainer.attr('transform')\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\ttitleContainer.attr(\n\t\t\t\t\t\t\t'transform',\n\t\t\t\t\t\t\t`translate(${titleMatrix.x + 4},${titleMatrix.y})`\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tconst elementID = self.services.domUtils.generateElementIDString(\n\t\t\t\t\t\t`alluvial-node-text-${datum.index}`\n\t\t\t\t\t);\n\n\t\t\t\t\tself.parent\n\t\t\t\t\t\t.select(`text#${elementID}`)\n\t\t\t\t\t\t.style('font-weight', 'bold');\n\n\t\t\t\t\tdebouncedLineHighlight(paths, 'mouseover');\n\n\t\t\t\t\t// Dispatch mouse over event\n\t\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\t\tEvents.Alluvial.NODE_MOUSEOVER,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tevent,\n\t\t\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\t\t\tdatum,\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.on('mousemove', function (event, datum) {\n\t\t\t\t// Dispatch mouse move event\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.Alluvial.NODE_MOUSEMOVE,\n\t\t\t\t\t{\n\t\t\t\t\t\tevent,\n\t\t\t\t\t\telement: select(this),\n\t\t\t\t\t\tdatum,\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\t// Dispatch tooltip move event\n\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.MOVE, {\n\t\t\t\t\tevent,\n\t\t\t\t});\n\t\t\t})\n\t\t\t.on('click', function (event, datum) {\n\t\t\t\t// Dispatch mouse click event\n\t\t\t\tself.services.events.dispatchEvent(Events.Alluvial.NODE_CLICK, {\n\t\t\t\t\tevent,\n\t\t\t\t\telement: select(this),\n\t\t\t\t\tdatum,\n\t\t\t\t});\n\t\t\t})\n\t\t\t.on('mouseout', function (event, datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\n\t\t\t\t// Set the node position to initial state (unexpanded)\n\t\t\t\tconst nodeMatrix = Tools.getTranformOffsets(\n\t\t\t\t\thoveredElement.attr('transform')\n\t\t\t\t);\n\n\t\t\t\thoveredElement\n\t\t\t\t\t.classed('node-hovered', false)\n\t\t\t\t\t.attr(\n\t\t\t\t\t\t'transform',\n\t\t\t\t\t\t`translate(${nodeMatrix.x + 2}, ${nodeMatrix.y})`\n\t\t\t\t\t)\n\t\t\t\t\t.select('rect.node')\n\t\t\t\t\t.attr('width', Configuration.alluvial.nodeWidth);\n\n\t\t\t\t// Translate text container back to initial state\n\t\t\t\tif (datum.x0 - 2 === 0) {\n\t\t\t\t\tconst elementID = self.services.domUtils.generateElementIDString(\n\t\t\t\t\t\t`alluvial-node-title-${datum.index}`\n\t\t\t\t\t);\n\n\t\t\t\t\tconst titleContainer = self.parent.select(`g#${elementID}`);\n\t\t\t\t\tconst titleMatrix = Tools.getTranformOffsets(\n\t\t\t\t\t\ttitleContainer.attr('transform')\n\t\t\t\t\t);\n\n\t\t\t\t\ttitleContainer.attr(\n\t\t\t\t\t\t'transform',\n\t\t\t\t\t\t`translate(${titleMatrix.x - 4},${titleMatrix.y})`\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tconst elementID = self.services.domUtils.generateElementIDString(\n\t\t\t\t\t`alluvial-node-text-${datum.index}`\n\t\t\t\t);\n\n\t\t\t\tself.parent\n\t\t\t\t\t.select(`text#${elementID}`)\n\t\t\t\t\t.style('font-weight', 'normal');\n\n\t\t\t\tdebouncedLineHighlight([], 'mouseout');\n\n\t\t\t\t// Dispatch mouse out event\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.Alluvial.NODE_MOUSEOUT,\n\t\t\t\t\t{\n\t\t\t\t\t\tevent,\n\t\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\t\tdatum,\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\t// Dispatch hide tooltip event\n\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.HIDE, {\n\t\t\t\t\thoveredElement,\n\t\t\t\t});\n\t\t\t});\n\t}\n\n\t// Traverse graph and get all connected links to node\n\tprivate traverse(\n\t\tdirection:\n\t\t\t| { link: 'sourceLinks'; node: 'target' }\n\t\t\t| { link: 'targetLinks'; node: 'source' },\n\t\tnode,\n\t\tvisited = []\n\t) {\n\t\tconst links = node[direction.link].map((element) => {\n\t\t\tvisited.push(element.index);\n\t\t\treturn element[direction.node];\n\t\t});\n\n\t\t// Retrieve the child nodes\n\t\tlinks.forEach((element) => this.traverse(direction, element, visited));\n\t}\n\n\tgetRightArrowIcon() {\n\t\treturn `\n\t\t<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\">\n\t\t\t<polygon points=\"18 6 16.57 7.393 24.15 15 4 15 4 17 24.15 17 16.57 24.573 18 26 28 16 18 6\"/>\n\t\t\t<rect data-name=\"<Transparent Rectangle>\" style=\"fill: none;\" width=\"32\" height=\"32\"/>\n\t\t</svg>`;\n\t}\n\n\t// Remove event listeners\n\tdestroy() {\n\t\tthis.parent\n\t\t\t.selectAll('path.line,.node-group')\n\t\t\t.on('mouseover', null)\n\t\t\t.on('mousemove', null)\n\t\t\t.on('click', null)\n\t\t\t.on('mouseout', null);\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"alluvial.js","sourceRoot":"","sources":["alluvial.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,mBAAmB;AACnB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE5E,aAAa;AACb,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAErE;IAA8B,4BAAS;IAAvC;QAAA,qEA6qBC;QA5qBA,UAAI,GAAG,UAAU,CAAC;QAClB,gBAAU,GAAG,WAAW,CAAC,GAAG,CAAC;QAG7B,iBAAW,GAAG,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC;;IAwqBxE,CAAC;IAtqBA,yBAAM,GAAN,UAAO,OAAc;QAArB,iBAoTC;QApTM,wBAAA,EAAA,cAAc;QACpB,2BAA2B;QAC3B,IAAM,GAAG,GAAG,IAAI,CAAC,qBAAqB,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;QAClE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEP,IAAA;;UAEJ,EAFM,gBAAK,EAAE,kBAEb,CAAC;QAEH,8DAA8D;QAC9D,oDAAoD;QACpD,kDAAkD;QAClD,IAAI,KAAK,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE;YAC5B,OAAO;SACP;QACD,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QACxC,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;QAEzC,6BAA6B;QAC7B,IAAM,iBAAiB,GAAG,KAAK,CAAC,WAAW,CAC1C,IAAI,CAAC,UAAU,EAAE,EACjB,OAAO,EACP,UAAU,EACV,SAAS,CACT,CAAC;QAEF,0CAA0C;QAC1C,IAAI,WAAW,GAAG,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC;QACxD,IACC,OAAO,CAAC,QAAQ,CAAC,WAAW,GAAG,aAAa,CAAC,QAAQ,CAAC,cAAc,EACnE;YACD,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;SAC3C;QAED,IAAM,MAAM,GAAG,QAAQ,EAAE;aACvB,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,EAAN,CAAM,CAAC;aACrB,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC;YAC5C,2CAA2C;aAC1C,WAAW,CAAC,WAAW,CAAC;YACzB,oCAAoC;YACpC,oFAAoF;YACpF,2DAA2D;aAC1D,MAAM,CAAC;YACP,CAAC,CAAC,EAAE,EAAE,CAAC;YACP,CAAC,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC;SACnB,CAAC,CAAC;QAEJ,gDAAgD;QAChD,uFAAuF;QACvF,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;YACnB,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,EAApB,CAAoB,CAAC;YAC9D,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,EAApB,CAAoB,CAAC;SAC5C,CAAC,CAAC;QAEH,mDAAmD;QACnD,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,KAAK,KAAK,CAAC,EAAhB,CAAgB,CAAC,CAAC;QAEvE,mDAAmD;QACnD,IAAM,eAAe,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,UAAC,OAAO;;YAChC,IAAM,KAAK,GAAG,OAAO,CAAC,EAAE,CAAC;YAEzB,8BAA8B;YAC9B,IAAI,OAAO,CAAC,QAAQ,EAAE;gBACrB,eAAe,CAAC,KAAK,CAAC,SAAG,OAAO,0CAAE,QAAQ,CAAC;aAC3C;QACF,CAAC,CAAC,CAAC;QAEH,yBAAyB;QACzB,IAAM,gBAAgB,GAAG,GAAG;aAC1B,MAAM,CAAC,GAAG,CAAC;aACX,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC;aAC9B,SAAS,CAAC,GAAG,CAAC;aACd,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;aAClC,IAAI,CAAC,GAAG,CAAC;aACT,IAAI,CAAC,WAAW,EAAE,UAAC,CAAC;YACpB,OAAO,eAAa,CAAC,SAAM,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEJ,wBAAwB;QACxB,gBAAgB;aACd,MAAM,CAAC,MAAM,CAAC;aACd,IAAI,CAAC,IAAI,EAAE,UAAC,CAAC,EAAE,CAAC;YAChB,OAAA,KAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,CAC7C,uBAAqB,CAAG,CACxB;QAFD,CAEC,CACD;aACA,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC;aAC1B,IAAI,CAAC,UAAC,CAAC;YACP,IAAI,eAAe,CAAC,CAAC,CAAC,EAAE;gBACvB,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC;aAC1B;YACD,OAAO,EAAE,CAAC;QACX,CAAC,CAAC;aACD,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;aACb,IAAI,CAAC,GAAG,EAAE,UAAC,CAAC,EAAE,CAAC;YACf,IAAM,SAAS,GAAG,KAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,CAC/D,uBAAqB,CAAG,CACxB,CAAC;YAEM,IAAA,wFAAK,CAGX;YAEF,gEAAgE;YAChE,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,EAAE;gBACnB,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;aACf;YACD,OAAO,CAAC,CAAC;QACV,CAAC,CAAC,CAAC;QAEJ,0BAA0B;QAC1B,IAAM,KAAK,GAAG,GAAG;aACf,MAAM,CAAC,GAAG,CAAC;aACX,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;aACpB,SAAS,CAAC,GAAG,CAAC;aACd,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEzB,gDAAgD;QAChD,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;QAEtB,2BAA2B;QAC3B,IAAI,iBAAiB,EAAE;YACtB,IAAM,OAAK,GAAG,KAAK,CAAC,WAAW,CAC9B,IAAI,CAAC,UAAU,EAAE,EACjB,OAAO,EACP,OAAO,CACP,CAAC;YAEF,IAAI,OAAK,EAAE;gBACV,KAAK;qBACH,KAAK,EAAE;qBACP,MAAM,CAAC,gBAAgB,CAAC;qBACxB,IAAI,CAAC,IAAI,EAAE,UAAC,CAAC,IAAK,OAAG,KAAI,CAAC,WAAW,cAAS,CAAC,CAAC,KAAO,EAArC,CAAqC,CAAC;qBACxD,IAAI,CAAC,eAAe,EAAE,gBAAgB,CAAC;qBACvC,IAAI,CAAC,UAAC,QAAQ;oBACd,OAAA,QAAQ;yBACN,MAAM,CAAC,MAAM,CAAC;yBACd,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC;yBACpB,IAAI,CAAC,YAAY,EAAE,UAAC,CAAC;wBACrB,OAAO,OAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBAC7B,CAAC,CAAC;gBALH,CAKG,CACH;qBACA,IAAI,CAAC,UAAC,QAAQ;oBACd,OAAA,QAAQ;yBACN,MAAM,CAAC,MAAM,CAAC;yBACd,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC;yBACtB,IAAI,CAAC,YAAY,EAAE,UAAC,CAAC;wBACrB,OAAO,OAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBAC7B,CAAC,CAAC;gBALH,CAKG,CACH,CAAC;aACH;YACD,4CAA4C;YAC5C,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;SACtB;QAED,KAAK;aACH,KAAK,EAAE;aACP,MAAM,CAAC,MAAM,CAAC;aACd,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;aACrB,IAAI,CAAC,GAAG,EAAE,oBAAoB,EAAE,CAAC;aACjC,IAAI,CAAC,IAAI,EAAE,UAAC,CAAC;YACb,OAAA,KAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,CAC7C,mBAAiB,CAAC,CAAC,KAAO,CAC1B;QAFD,CAEC,CACD;aACA,IAAI,CAAC,OAAO,EAAE,UAAC,CAAC;YAChB,mCAAmC;YACnC,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE;gBAChC,OAAO,KAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC;oBACnC,cAAc,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC;oBAC5C,aAAa,EAAE,CAAC;oBAChB,iBAAiB,EAAE,MAAM;iBACzB,CAAC,CAAC;aACH;YAED,OAAO,KAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC;gBACnC,cAAc,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC;gBAC5C,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK;gBAC7B,iBAAiB,EAAE,MAAM;aACzB,CAAC,CAAC;QACJ,CAAC,CAAC;aACD,KAAK,CAAC,QAAQ,EAAE,UAAC,CAAC;YAClB,IAAI,iBAAiB,EAAE;gBACtB,OAAO,UAAQ,KAAI,CAAC,WAAW,cAAS,CAAC,CAAC,KAAK,MAAG,CAAC;aACnD;YAED,OAAO,KAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC/C,CAAC,CAAC;aACD,IAAI,CAAC,cAAc,EAAE,UAAC,CAAC,IAAK,OAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAApB,CAAoB,CAAC;aACjD,KAAK,CAAC,gBAAgB,EAAE,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC;aAC/D,IAAI,CACJ,YAAY,EACZ,UAAC,CAAC;YACD,OAAG,CAAC,CAAC,MAAM,CAAC,IAAI,gBAAM,CAAC,CAAC,MAAM,CAAC,IAAI,UAAK,CAAC,CAAC,KAAK,IAC9C,OAAO,CAAC,QAAQ,CAAC,KAAK;gBACrB,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAC9B,CAAC,CAAC,EAAE,OACH;QAJH,CAIG,CACJ,CAAC;QAEH,sBAAsB;QACtB,IAAM,IAAI,GAAG,GAAG;aACd,MAAM,CAAC,GAAG,CAAC;aACX,SAAS,CAAC,GAAG,CAAC;aACd,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;aACtB,KAAK,EAAE;aACP,MAAM,CAAC,GAAG,CAAC;aACX,IAAI,CAAC,IAAI,EAAE,UAAC,CAAC;YACb,OAAA,KAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,CAC7C,mBAAiB,CAAC,CAAC,KAAO,CAC1B;QAFD,CAEC,CACD;aACA,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC;aAC3B,IAAI,CAAC,WAAW,EAAE,UAAC,CAAC,IAAK,OAAA,eAAa,CAAC,CAAC,EAAE,UAAK,CAAC,CAAC,EAAE,MAAG,EAA7B,CAA6B,CAAC,CAAC;QAE1D,qBAAqB;QACrB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;aACjB,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;aACrB,IAAI,CAAC,QAAQ,EAAE,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAX,CAAW,CAAC;aAClC,IAAI,CAAC,OAAO,EAAE,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAX,CAAW,CAAC;aACjC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAExB,gDAAgD;QAChD,IAAM,QAAQ,GAAG,IAAI;aACnB,MAAM,CAAC,GAAG,CAAC;aACX,IAAI,CAAC,IAAI,EAAE,UAAC,CAAC;YACb,OAAA,KAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,CAC7C,yBAAuB,CAAC,CAAC,KAAO,CAChC;QAFD,CAEC,CACD,CAAC;QAEH,oBAAoB;QACpB,QAAQ;aACN,MAAM,CAAC,MAAM,CAAC;aACd,IAAI,CAAC,IAAI,EAAE,UAAC,CAAC;YACb,OAAA,KAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,CAC7C,wBAAsB,CAAC,CAAC,KAAO,CAC/B;QAFD,CAEC,CACD;aACA,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC;aAC1B,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC;aAC1B,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC;aAC5B,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;YACtB,kBAAkB;aACjB,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YACb,mDAAmD;aAClD,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;aACd,IAAI,CAAC,UAAC,CAAC;YACP,OAAU,CAAC,CAAC,IAAI,UAAK,CAAC,CAAC,KAAK,MAAG,CAAC;QACjC,CAAC,CAAC;aACD,IAAI,CAAC,YAAY,EAAE,UAAC,CAAC;YACrB,OAAU,CAAC,CAAC,IAAI,UAAK,CAAC,CAAC,KAAK,MAAG,CAAC;QACjC,CAAC,CAAC,CAAC;QAEJ,kBAAkB;QAClB,QAAQ;aACN,MAAM,CAAC,MAAM,CAAC;aACd,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC;aAC7B,IAAI,CAAC,OAAO,EAAE,UAAC,CAAC,EAAE,CAAC;YACnB,IAAM,SAAS,GAAG,KAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,CAC/D,wBAAsB,CAAG,CACzB,CAAC;YAEF,gDAAgD;YACxC,IAAA,wFAAK,CAGX;YAEF,OAAO,KAAK,GAAG,CAAC,CAAC;QAClB,CAAC,CAAC;aACD,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;aAClB,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;aACvB,KAAK,EAAE,CAAC;QAEV,qCAAqC;QACrC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,UAAC,CAAC,EAAE,CAAC;YAC/B,IAAM,SAAS,GAAG,KAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,CAC/D,wBAAsB,CAAG,CACzB,CAAC;YAEM,IAAA,wFAAK,CAGX;YAEF,sDAAsD;YACtD,IAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAChC,aAAa;YACb,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;YAEpB,wDAAwD;YACxD,IAAI,CAAC,CAAC,EAAE,IAAI,KAAK,EAAE;gBAClB,kGAAkG;gBAClG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;aACrB;iBAAM;gBACN,iCAAiC;gBACjC,CAAC,IAAI,CAAC,CAAC;aACP;YAED,OAAO,eAAa,CAAC,UAAK,CAAC,MAAG,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC7B,CAAC;IAED,uCAAoB,GAApB;QACC,IAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,IAAM,IAAI,GAAG,IAAI,CAAC;QAElB,wCAAwC;QACxC,IAAM,sBAAsB,GAAG,KAAK,CAAC,QAAQ,CAC5C,UAAC,IAAI,EAAE,KAAmB;YAAnB,sBAAA,EAAA,mBAAmB;YACzB,IAAM,QAAQ,GAAG,IAAI,CAAC,MAAM;iBAC1B,SAAS,CAAC,WAAW,CAAC;iBACtB,UAAU,EAAE;iBACZ,IAAI,CAAC,UAAC,CAAC;gBACP,OAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,eAAe,CAAC;oBACzC,UAAU,EAAE,CAAC;oBACb,IAAI,EAAE,gCAAgC;iBACtC,CAAC;YAHF,CAGE,CACF,CAAC;YAEH,IAAI,KAAK,KAAK,UAAU,EAAE;gBACzB,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;gBACrB,QAAQ,CAAC,KAAK,CACb,gBAAgB,EAChB,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CACtC,CAAC;aACF;iBAAM;gBACN,QAAQ,CAAC,KAAK,CAAC,gBAAgB,EAAE;oBAChC,sCAAsC;oBACtC,IAAI,IAAI,KAAK,IAAI,EAAE;wBAClB,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;wBACrB,OAAO,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC;qBAC/C;oBAED,OAAO,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC;gBAC/C,CAAC,CAAC,CAAC;aACH;QACF,CAAC,EACD,EAAE,CACF,CAAC;QAEF,IAAI,CAAC,MAAM;aACT,SAAS,CAAC,WAAW,CAAC;aACtB,EAAE,CAAC,WAAW,EAAE,UAAU,KAAK,EAAE,KAAK;YACtC,IAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YACpC,sBAAsB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YAC1C,cAAc,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;YAE7C,IAAM,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAC1D,QAAQ,CACR,CAAC;YAEF,4BAA4B;YAC5B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CACjC,MAAM,CAAC,QAAQ,CAAC,cAAc,EAC9B;gBACC,KAAK,OAAA;gBACL,OAAO,EAAE,cAAc;gBACvB,KAAK,OAAA;aACL,CACD,CAAC;YAEF,8BAA8B;YAC9B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE;gBACvD,KAAK,OAAA;gBACL,cAAc,gBAAA;gBACd,KAAK,EAAE;oBACN;wBACC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;wBACxB,KAAK,EACJ,KAAK,CAAC,KAAK;4BACX,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK;gCACtB,CAAC,CAAC,MAAI,OAAO,CAAC,QAAQ,CAAC,KAAO;gCAC9B,CAAC,CAAC,EAAE,CAAC;wBACP,KAAK,EAAE,WAAW;wBAClB,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE;qBACnC;iBACD;aACD,CAAC,CAAC;QACJ,CAAC,CAAC;aACD,EAAE,CAAC,WAAW,EAAE,UAAU,KAAK,EAAE,KAAK;YACtC,4BAA4B;YAC5B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CACjC,MAAM,CAAC,QAAQ,CAAC,cAAc,EAC9B;gBACC,KAAK,OAAA;gBACL,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC;gBACrB,KAAK,OAAA;aACL,CACD,CAAC;YACF,8BAA8B;YAC9B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE;gBACvD,KAAK,OAAA;aACL,CAAC,CAAC;QACJ,CAAC,CAAC;aACD,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,EAAE,KAAK;YAClC,6BAA6B;YAC7B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE;gBAC9D,KAAK,OAAA;gBACL,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC;gBACrB,KAAK,OAAA;aACL,CAAC,CAAC;QACJ,CAAC,CAAC;aACD,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,EAAE,KAAK;YACrC,IAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YACpC,sBAAsB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACzC,cAAc,CAAC,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;YAE9C,2BAA2B;YAC3B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CACjC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAC7B;gBACC,KAAK,OAAA;gBACL,OAAO,EAAE,cAAc;gBACvB,KAAK,OAAA;aACL,CACD,CAAC;YAEF,8BAA8B;YAC9B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE;gBACvD,KAAK,OAAA;gBACL,cAAc,gBAAA;aACd,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,uCAAoB,GAApB;QAAA,iBAiNC;QAhNA,IAAM,IAAI,GAAG,IAAI,CAAC;QAElB,wCAAwC;QACxC,IAAM,sBAAsB,GAAG,KAAK,CAAC,QAAQ,CAC5C,UAAC,KAAU,EAAE,KAAmB;YAA/B,sBAAA,EAAA,UAAU;YAAE,sBAAA,EAAA,mBAAmB;YAC/B,IAAI,KAAK,KAAK,UAAU,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC/C,uDAAuD;gBACvD,IAAI,CAAC,MAAM;qBACT,SAAS,CAAC,WAAW,CAAC;qBACtB,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC;qBAC9B,IAAI,CAAC,KAAI,CAAC,KAAK,CAAC,KAAK,EAAE,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,KAAK,EAAP,CAAO,CAAC;qBACtC,KAAK,EAAE;qBACP,KAAK,CACL,gBAAgB,EAChB,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CACtC,CAAC;gBAEH,OAAO;aACP;YAED,sBAAsB;YACtB,IAAM,QAAQ,GAAG,IAAI,CAAC,MAAM;iBAC1B,SAAS,CAAC,WAAW,CAAC;iBACtB,UAAU,EAAE;iBACZ,IAAI,CAAC,UAAC,CAAC;gBACP,OAAA,KAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,eAAe,CAAC;oBACzC,UAAU,EAAE,CAAC;oBACb,IAAI,EAAE,+BAA+B;iBACrC,CAAC;YAHF,CAGE,CACF,CAAC;YAEH,QAAQ,CAAC,KAAK,CAAC,gBAAgB,EAAE,UAAU,CAAC;gBAC3C,wDAAwD;gBACxD,IAAI,KAAK,CAAC,IAAI,CAAC,UAAC,OAAO,IAAK,OAAA,OAAO,KAAK,CAAC,CAAC,KAAK,EAAnB,CAAmB,CAAC,EAAE;oBACjD,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;oBACnD,OAAO,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC;iBAC/C;gBAED,OAAO,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC;YAC/C,CAAC,CAAC,CAAC;QACJ,CAAC,EACD,EAAE,CACF,CAAC;QAEF,IAAI,CAAC,MAAM;aACT,SAAS,CAAC,aAAa,CAAC;aACxB,EAAE,CAAC,WAAW,EAAE,UAAU,KAAK,EAAE,KAAK;YACtC,IAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YAEpC,6CAA6C;YAC7C,IAAM,KAAK,GAAG,EAAE,CAAC;YAEjB,iBAAiB;YACjB,IAAI,CAAC,QAAQ,CACZ,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,EACvC,KAAK,EACL,KAAK,CACL,CAAC;YAEF,gBAAgB;YAChB,IAAI,CAAC,QAAQ,CACZ,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,EACvC,KAAK,EACL,KAAK,CACL,CAAC;YAEF,yDAAyD;YACzD,IAAI,KAAK,CAAC,MAAM,EAAE;gBACjB,mCAAmC;gBACnC,IAAM,UAAU,GAAG,KAAK,CAAC,kBAAkB,CAC1C,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAChC,CAAC;gBAEF,0DAA0D;gBAC1D,cAAc,CAAC,IAAI,CAClB,WAAW,EACX,gBAAa,UAAU,CAAC,CAAC,GAAG,CAAC,WAAK,UAAU,CAAC,CAAC,MAAG,CACjD,CAAC;gBAEF,cAAc;qBACZ,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC;qBAC7B,SAAS,CAAC,WAAW,CAAC;qBACtB,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBAEnB,+CAA+C;gBAC/C,gDAAgD;gBAChD,IAAI,KAAK,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE;oBACvB,IAAM,WAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,CAC/D,yBAAuB,KAAK,CAAC,KAAO,CACpC,CAAC;oBAEF,IAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CACxC,OAAK,WAAW,CAChB,CAAC;oBACF,IAAM,WAAW,GAAG,KAAK,CAAC,kBAAkB,CAC3C,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAChC,CAAC;oBAEF,cAAc,CAAC,IAAI,CAClB,WAAW,EACX,gBAAa,WAAW,CAAC,CAAC,GAAG,CAAC,UAAI,WAAW,CAAC,CAAC,MAAG,CAClD,CAAC;iBACF;gBAED,IAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,CAC/D,wBAAsB,KAAK,CAAC,KAAO,CACnC,CAAC;gBAEF,IAAI,CAAC,MAAM;qBACT,MAAM,CAAC,UAAQ,SAAW,CAAC;qBAC3B,KAAK,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;gBAE/B,sBAAsB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;gBAE3C,4BAA4B;gBAC5B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CACjC,MAAM,CAAC,QAAQ,CAAC,cAAc,EAC9B;oBACC,KAAK,OAAA;oBACL,OAAO,EAAE,cAAc;oBACvB,KAAK,OAAA;iBACL,CACD,CAAC;aACF;QACF,CAAC,CAAC;aACD,EAAE,CAAC,WAAW,EAAE,UAAU,KAAK,EAAE,KAAK;YACtC,4BAA4B;YAC5B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CACjC,MAAM,CAAC,QAAQ,CAAC,cAAc,EAC9B;gBACC,KAAK,OAAA;gBACL,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC;gBACrB,KAAK,OAAA;aACL,CACD,CAAC;YAEF,8BAA8B;YAC9B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE;gBACvD,KAAK,OAAA;aACL,CAAC,CAAC;QACJ,CAAC,CAAC;aACD,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,EAAE,KAAK;YAClC,6BAA6B;YAC7B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE;gBAC9D,KAAK,OAAA;gBACL,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC;gBACrB,KAAK,OAAA;aACL,CAAC,CAAC;QACJ,CAAC,CAAC;aACD,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,EAAE,KAAK;YACrC,IAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YAEpC,sDAAsD;YACtD,IAAM,UAAU,GAAG,KAAK,CAAC,kBAAkB,CAC1C,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAChC,CAAC;YAEF,cAAc;iBACZ,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC;iBAC9B,IAAI,CACJ,WAAW,EACX,gBAAa,UAAU,CAAC,CAAC,GAAG,CAAC,WAAK,UAAU,CAAC,CAAC,MAAG,CACjD;iBACA,MAAM,CAAC,WAAW,CAAC;iBACnB,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAElD,iDAAiD;YACjD,IAAI,KAAK,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE;gBACvB,IAAM,WAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,CAC/D,yBAAuB,KAAK,CAAC,KAAO,CACpC,CAAC;gBAEF,IAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAK,WAAW,CAAC,CAAC;gBAC5D,IAAM,WAAW,GAAG,KAAK,CAAC,kBAAkB,CAC3C,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAChC,CAAC;gBAEF,cAAc,CAAC,IAAI,CAClB,WAAW,EACX,gBAAa,WAAW,CAAC,CAAC,GAAG,CAAC,UAAI,WAAW,CAAC,CAAC,MAAG,CAClD,CAAC;aACF;YAED,IAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,CAC/D,wBAAsB,KAAK,CAAC,KAAO,CACnC,CAAC;YAEF,IAAI,CAAC,MAAM;iBACT,MAAM,CAAC,UAAQ,SAAW,CAAC;iBAC3B,KAAK,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;YAEjC,sBAAsB,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;YAEvC,2BAA2B;YAC3B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CACjC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAC7B;gBACC,KAAK,OAAA;gBACL,OAAO,EAAE,cAAc;gBACvB,KAAK,OAAA;aACL,CACD,CAAC;YAEF,8BAA8B;YAC9B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE;gBACvD,cAAc,gBAAA;aACd,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,qDAAqD;IAC7C,2BAAQ,GAAhB,UACC,SAE0C,EAC1C,IAAI,EACJ,OAAY;QALb,iBAcC;QATA,wBAAA,EAAA,YAAY;QAEZ,IAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,UAAC,OAAO;YAC9C,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC5B,OAAO,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,2BAA2B;QAC3B,KAAK,CAAC,OAAO,CAAC,UAAC,OAAO,IAAK,OAAA,KAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,EAA1C,CAA0C,CAAC,CAAC;IACxE,CAAC;IAED,oCAAiB,GAAjB;QACC,OAAO,oUAIA,CAAC;IACT,CAAC;IAED,yBAAyB;IACzB,0BAAO,GAAP;QACC,IAAI,CAAC,MAAM;aACT,SAAS,CAAC,uBAAuB,CAAC;aAClC,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC;aACrB,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC;aACrB,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC;aACjB,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACxB,CAAC;IACF,eAAC;AAAD,CAAC,AA7qBD,CAA8B,SAAS,GA6qBtC","sourcesContent":["// Internal imports\nimport { Component } from '../component';\nimport { DOMUtils } from '../../services';\nimport { Tools } from '../../tools';\nimport * as Configuration from '../../configuration';\nimport { Events, ColorClassNameTypes, RenderTypes } from '../../interfaces';\n\n// D3 imports\nimport { select } from 'd3-selection';\nimport { sankey as d3Sankey, sankeyLinkHorizontal } from 'd3-sankey';\n\nexport class Alluvial extends Component {\n\ttype = 'alluvial';\n\trenderType = RenderTypes.SVG;\n\n\tprivate graph: any;\n\tgradient_id = 'gradient-id-' + Math.floor(Math.random() * 99999999999);\n\n\trender(animate = true) {\n\t\t// svg and container widths\n\t\tconst svg = this.getComponentContainer({ withinChartClip: true });\n\t\tsvg.html('');\n\n\t\tconst { width, height } = DOMUtils.getSVGElementSize(svg, {\n\t\t\tuseAttrs: true,\n\t\t});\n\n\t\t// Because of a Firefox bug with regards to sizing & d3 packs,\n\t\t// rather than checking if height or width aren't 0,\n\t\t// we have to make sure they're not smaller than 1\n\t\tif (width < 1 || height < 1) {\n\t\t\treturn;\n\t\t}\n\t\tconst options = this.model.getOptions();\n\t\tconst data = this.model.getDisplayData();\n\n\t\t// Is gradient enabled or not\n\t\tconst isGradientAllowed = Tools.getProperty(\n\t\t\tthis.getOptions(),\n\t\t\t'color',\n\t\t\t'gradient',\n\t\t\t'enabled'\n\t\t);\n\n\t\t// Set the custom node padding if provided\n\t\tlet nodePadding = Configuration.alluvial.minNodePadding;\n\t\tif (\n\t\t\toptions.alluvial.nodePadding > Configuration.alluvial.minNodePadding\n\t\t) {\n\t\t\tnodePadding = options.alluvial.nodePadding;\n\t\t}\n\n\t\tconst sankey = d3Sankey()\n\t\t\t.nodeId((d) => d.name)\n\t\t\t.nodeWidth(Configuration.alluvial.nodeWidth)\n\t\t\t// Distance nodes are apart from each other\n\t\t\t.nodePadding(nodePadding)\n\t\t\t// Size of the chart and its padding\n\t\t\t// Chart starts at 2 and ends at width - 2 so the outer nodes can expand from center\n\t\t\t// Chart starts from 30 so node categories can be displayed\n\t\t\t.extent([\n\t\t\t\t[2, 30],\n\t\t\t\t[width - 2, height],\n\t\t\t]);\n\n\t\t// Construct a graph with the provided user data\n\t\t// Data must be deep cloned to ensure user passed data isn't deleted when themes change\n\t\tthis.graph = sankey({\n\t\t\tnodes: options.alluvial.nodes.map((d) => Object.assign({}, d)),\n\t\t\tlinks: data.map((d) => Object.assign({}, d)),\n\t\t});\n\n\t\t// Filter out unused nodes so they are not rendered\n\t\tthis.graph.nodes = this.graph.nodes.filter((node) => node.value !== 0);\n\n\t\t// Determine the category name placement x position\n\t\tconst nodeCoordinates = {};\n\t\tthis.graph.nodes.forEach((element) => {\n\t\t\tconst point = element.x0;\n\n\t\t\t// Only 1 category per x-value\n\t\t\tif (element.category) {\n\t\t\t\tnodeCoordinates[point] = element?.category;\n\t\t\t}\n\t\t});\n\n\t\t// Add node category text\n\t\tconst alluvialCategory = svg\n\t\t\t.append('g')\n\t\t\t.classed('header-arrows', true)\n\t\t\t.selectAll('g')\n\t\t\t.data(Object.keys(nodeCoordinates))\n\t\t\t.join('g')\n\t\t\t.attr('transform', (d) => {\n\t\t\t\treturn `translate(${d}, 0)`;\n\t\t\t});\n\n\t\t// Add the category text\n\t\talluvialCategory\n\t\t\t.append('text')\n\t\t\t.attr('id', (d, i) =>\n\t\t\t\tthis.services.domUtils.generateElementIDString(\n\t\t\t\t\t`alluvial-category-${i}`\n\t\t\t\t)\n\t\t\t)\n\t\t\t.style('font-size', '14px')\n\t\t\t.text((d) => {\n\t\t\t\tif (nodeCoordinates[d]) {\n\t\t\t\t\treturn nodeCoordinates[d];\n\t\t\t\t}\n\t\t\t\treturn '';\n\t\t\t})\n\t\t\t.attr('y', 20)\n\t\t\t.attr('x', (d, i) => {\n\t\t\t\tconst elementID = this.services.domUtils.generateElementIDString(\n\t\t\t\t\t`alluvial-category-${i}`\n\t\t\t\t);\n\n\t\t\t\tconst { width } = DOMUtils.getSVGElementSize(\n\t\t\t\t\tselect(`text#${elementID}`),\n\t\t\t\t\t{ useBBox: true }\n\t\t\t\t);\n\n\t\t\t\t// Make the text on the left on node group (except first column)\n\t\t\t\tlet x = 0;\n\t\t\t\tif (d + x >= width) {\n\t\t\t\t\tx = -width + 4;\n\t\t\t\t}\n\t\t\t\treturn x;\n\t\t\t});\n\n\t\t// Draws the links (Waves)\n\t\tconst links = svg\n\t\t\t.append('g')\n\t\t\t.attr('fill', 'none')\n\t\t\t.selectAll('g')\n\t\t\t.data(this.graph.links);\n\n\t\t// Exit so we can have multiple appends in group\n\t\tlinks.exit().remove();\n\n\t\t// Add gradient if requsted\n\t\tif (isGradientAllowed) {\n\t\t\tconst scale = Tools.getProperty(\n\t\t\t\tthis.getOptions(),\n\t\t\t\t'color',\n\t\t\t\t'scale'\n\t\t\t);\n\n\t\t\tif (scale) {\n\t\t\t\tlinks\n\t\t\t\t\t.enter()\n\t\t\t\t\t.append('linearGradient')\n\t\t\t\t\t.attr('id', (d) => `${this.gradient_id}-link-${d.index}`)\n\t\t\t\t\t.attr('gradientUnits', 'userSpaceOnUse')\n\t\t\t\t\t.call((gradient) =>\n\t\t\t\t\t\tgradient\n\t\t\t\t\t\t\t.append('stop')\n\t\t\t\t\t\t\t.attr('offset', '0%')\n\t\t\t\t\t\t\t.attr('stop-color', (d) => {\n\t\t\t\t\t\t\t\treturn scale[d.source.name];\n\t\t\t\t\t\t\t})\n\t\t\t\t\t)\n\t\t\t\t\t.call((gradient) =>\n\t\t\t\t\t\tgradient\n\t\t\t\t\t\t\t.append('stop')\n\t\t\t\t\t\t\t.attr('offset', '100%')\n\t\t\t\t\t\t\t.attr('stop-color', (d) => {\n\t\t\t\t\t\t\t\treturn scale[d.target.name];\n\t\t\t\t\t\t\t})\n\t\t\t\t\t);\n\t\t\t}\n\t\t\t// Exit so path can be appended to the group\n\t\t\tlinks.exit().remove();\n\t\t}\n\n\t\tlinks\n\t\t\t.enter()\n\t\t\t.append('path')\n\t\t\t.classed('link', true)\n\t\t\t.attr('d', sankeyLinkHorizontal())\n\t\t\t.attr('id', (d) =>\n\t\t\t\tthis.services.domUtils.generateElementIDString(\n\t\t\t\t\t`alluvial-line-${d.index}`\n\t\t\t\t)\n\t\t\t)\n\t\t\t.attr('class', (d) => {\n\t\t\t\t// Use a single color for the lines\n\t\t\t\tif (options.alluvial.monochrome) {\n\t\t\t\t\treturn this.model.getColorClassName({\n\t\t\t\t\t\tclassNameTypes: [ColorClassNameTypes.STROKE],\n\t\t\t\t\t\tdataGroupName: 0,\n\t\t\t\t\t\toriginalClassName: 'link',\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn this.model.getColorClassName({\n\t\t\t\t\tclassNameTypes: [ColorClassNameTypes.STROKE],\n\t\t\t\t\tdataGroupName: d.source.index,\n\t\t\t\t\toriginalClassName: 'link',\n\t\t\t\t});\n\t\t\t})\n\t\t\t.style('stroke', (d) => {\n\t\t\t\tif (isGradientAllowed) {\n\t\t\t\t\treturn `url(#${this.gradient_id}-link-${d.index})`;\n\t\t\t\t}\n\n\t\t\t\treturn this.model.getFillColor(d.source.name);\n\t\t\t})\n\t\t\t.attr('stroke-width', (d) => Math.max(1, d.width))\n\t\t\t.style('stroke-opacity', Configuration.alluvial.opacity.default)\n\t\t\t.attr(\n\t\t\t\t'aria-label',\n\t\t\t\t(d) =>\n\t\t\t\t\t`${d.source.name} → ${d.target.name} (${d.value}${\n\t\t\t\t\t\toptions.alluvial.units\n\t\t\t\t\t\t\t? ' ' + options.alluvial.units\n\t\t\t\t\t\t\t: ''\n\t\t\t\t\t})`\n\t\t\t);\n\n\t\t// Creating the groups\n\t\tconst node = svg\n\t\t\t.append('g')\n\t\t\t.selectAll('g')\n\t\t\t.data(this.graph.nodes)\n\t\t\t.enter()\n\t\t\t.append('g')\n\t\t\t.attr('id', (d) =>\n\t\t\t\tthis.services.domUtils.generateElementIDString(\n\t\t\t\t\t`alluvial-node-${d.index}`\n\t\t\t\t)\n\t\t\t)\n\t\t\t.classed('node-group', true)\n\t\t\t.attr('transform', (d) => `translate(${d.x0}, ${d.y0})`);\n\n\t\t// Creating the nodes\n\t\tnode.append('rect')\n\t\t\t.classed('node', true)\n\t\t\t.attr('height', (d) => d.y1 - d.y0)\n\t\t\t.attr('width', (d) => d.x1 - d.x0)\n\t\t\t.attr('fill', 'black');\n\n\t\t// Group to hold the text & rectangle background\n\t\tconst textNode = node\n\t\t\t.append('g')\n\t\t\t.attr('id', (d) =>\n\t\t\t\tthis.services.domUtils.generateElementIDString(\n\t\t\t\t\t`alluvial-node-title-${d.index}`\n\t\t\t\t)\n\t\t\t);\n\n\t\t// Node title - text\n\t\ttextNode\n\t\t\t.append('text')\n\t\t\t.attr('id', (d) =>\n\t\t\t\tthis.services.domUtils.generateElementIDString(\n\t\t\t\t\t`alluvial-node-text-${d.index}`\n\t\t\t\t)\n\t\t\t)\n\t\t\t.attr('class', 'node-text')\n\t\t\t.style('font-size', '12px')\n\t\t\t.attr('text-anchor', 'start')\n\t\t\t.attr('fill', 'white')\n\t\t\t// Padding to text\n\t\t\t.attr('x', 4)\n\t\t\t// shift 13 pixels down to fit background container\n\t\t\t.attr('dy', 13)\n\t\t\t.text((d) => {\n\t\t\t\treturn `${d.name} (${d.value})`;\n\t\t\t})\n\t\t\t.attr('aria-label', (d) => {\n\t\t\t\treturn `${d.name} (${d.value})`;\n\t\t\t});\n\n\t\t// Text background\n\t\ttextNode\n\t\t\t.append('rect')\n\t\t\t.classed('node-text-bg', true)\n\t\t\t.attr('width', (d, i) => {\n\t\t\t\tconst elementID = this.services.domUtils.generateElementIDString(\n\t\t\t\t\t`alluvial-node-text-${i}`\n\t\t\t\t);\n\n\t\t\t\t// Determine rectangle width based on text width\n\t\t\t\tconst { width } = DOMUtils.getSVGElementSize(\n\t\t\t\t\tselect(`text#${elementID}`),\n\t\t\t\t\t{ useBBox: true }\n\t\t\t\t);\n\n\t\t\t\treturn width + 8;\n\t\t\t})\n\t\t\t.attr('height', 18)\n\t\t\t.attr('stroke-width', 2)\n\t\t\t.lower();\n\n\t\t// Position group based on text width\n\t\ttextNode.attr('transform', (d, i) => {\n\t\t\tconst elementID = this.services.domUtils.generateElementIDString(\n\t\t\t\t`alluvial-node-text-${i}`\n\t\t\t);\n\n\t\t\tconst { width } = DOMUtils.getSVGElementSize(\n\t\t\t\tselect(`text#${elementID}`),\n\t\t\t\t{ useBBox: true }\n\t\t\t);\n\n\t\t\t// Subtracting 9 since text background is 18 to center\n\t\t\tconst y = (d.y1 - d.y0) / 2 - 9;\n\t\t\t// Node width\n\t\t\tlet x = d.x1 - d.x0;\n\n\t\t\t// Display bars on the right instead of left of the node\n\t\t\tif (d.x1 >= width) {\n\t\t\t\t// 16 = node width (4) + text container padding (8) + distance between node and text container (4)\n\t\t\t\tx = x - (width + 16);\n\t\t\t} else {\n\t\t\t\t// Add padding to text containers\n\t\t\t\tx += 4;\n\t\t\t}\n\n\t\t\treturn `translate(${x}, ${y})`;\n\t\t});\n\n\t\tthis.addLineEventListener();\n\t\tthis.addNodeEventListener();\n\t}\n\n\taddLineEventListener() {\n\t\tconst options = this.getOptions();\n\t\tconst self = this;\n\n\t\t// Set delay to counter flashy behaviour\n\t\tconst debouncedLineHighlight = Tools.debounce(\n\t\t\t(link, event = 'mouseover') => {\n\t\t\t\tconst allLinks = self.parent\n\t\t\t\t\t.selectAll('path.link')\n\t\t\t\t\t.transition()\n\t\t\t\t\t.call((t) =>\n\t\t\t\t\t\tself.services.transitions.setupTransition({\n\t\t\t\t\t\t\ttransition: t,\n\t\t\t\t\t\t\tname: 'alluvial-links-mouse-highlight',\n\t\t\t\t\t\t})\n\t\t\t\t\t);\n\n\t\t\t\tif (event === 'mouseout') {\n\t\t\t\t\tselect(link).lower();\n\t\t\t\t\tallLinks.style(\n\t\t\t\t\t\t'stroke-opacity',\n\t\t\t\t\t\tConfiguration.alluvial.opacity.default\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tallLinks.style('stroke-opacity', function () {\n\t\t\t\t\t\t// highlight and raise if link is this\n\t\t\t\t\t\tif (link === this) {\n\t\t\t\t\t\t\tselect(this).raise();\n\t\t\t\t\t\t\treturn Configuration.alluvial.opacity.selected;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn Configuration.alluvial.opacity.unfocus;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t},\n\t\t\t33\n\t\t);\n\n\t\tthis.parent\n\t\t\t.selectAll('path.link')\n\t\t\t.on('mouseover', function (event, datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\t\t\t\tdebouncedLineHighlight(this, 'mouseover');\n\t\t\t\thoveredElement.classed('link-hovered', true);\n\n\t\t\t\tconst strokeColor = getComputedStyle(this).getPropertyValue(\n\t\t\t\t\t'stroke'\n\t\t\t\t);\n\n\t\t\t\t// Dispatch mouse over event\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.Alluvial.LINE_MOUSEOVER,\n\t\t\t\t\t{\n\t\t\t\t\t\tevent,\n\t\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\t\tdatum,\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\t// Dispatch tooltip show event\n\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.SHOW, {\n\t\t\t\t\tevent,\n\t\t\t\t\thoveredElement,\n\t\t\t\t\titems: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: datum.target.name,\n\t\t\t\t\t\t\tvalue:\n\t\t\t\t\t\t\t\tdatum.value +\n\t\t\t\t\t\t\t\t(options.alluvial.units\n\t\t\t\t\t\t\t\t\t? ` ${options.alluvial.units}`\n\t\t\t\t\t\t\t\t\t: ''),\n\t\t\t\t\t\t\tcolor: strokeColor,\n\t\t\t\t\t\t\tlabelIcon: self.getRightArrowIcon(),\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t})\n\t\t\t.on('mousemove', function (event, datum) {\n\t\t\t\t// Dispatch mouse move event\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.Alluvial.LINE_MOUSEMOVE,\n\t\t\t\t\t{\n\t\t\t\t\t\tevent,\n\t\t\t\t\t\telement: select(this),\n\t\t\t\t\t\tdatum,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\t// Dispatch tooltip move event\n\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.MOVE, {\n\t\t\t\t\tevent,\n\t\t\t\t});\n\t\t\t})\n\t\t\t.on('click', function (event, datum) {\n\t\t\t\t// Dispatch mouse click event\n\t\t\t\tself.services.events.dispatchEvent(Events.Alluvial.LINE_CLICK, {\n\t\t\t\t\tevent,\n\t\t\t\t\telement: select(this),\n\t\t\t\t\tdatum,\n\t\t\t\t});\n\t\t\t})\n\t\t\t.on('mouseout', function (event, datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\t\t\t\tdebouncedLineHighlight(this, 'mouseout');\n\t\t\t\thoveredElement.classed('link-hovered', false);\n\n\t\t\t\t// Dispatch mouse out event\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.Alluvial.LINE_MOUSEOUT,\n\t\t\t\t\t{\n\t\t\t\t\t\tevent,\n\t\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\t\tdatum,\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\t// Dispatch hide tooltip event\n\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.HIDE, {\n\t\t\t\t\tevent,\n\t\t\t\t\thoveredElement,\n\t\t\t\t});\n\t\t\t});\n\t}\n\n\taddNodeEventListener() {\n\t\tconst self = this;\n\n\t\t// Set delay to counter flashy behaviour\n\t\tconst debouncedLineHighlight = Tools.debounce(\n\t\t\t(links = [], event = 'mouseover') => {\n\t\t\t\tif (event === 'mouseout' || links.length === 0) {\n\t\t\t\t\t// set all links to default opacity & corret link order\n\t\t\t\t\tself.parent\n\t\t\t\t\t\t.selectAll('path.link')\n\t\t\t\t\t\t.classed('link-hovered', false)\n\t\t\t\t\t\t.data(this.graph.links, (d) => d.index)\n\t\t\t\t\t\t.order()\n\t\t\t\t\t\t.style(\n\t\t\t\t\t\t\t'stroke-opacity',\n\t\t\t\t\t\t\tConfiguration.alluvial.opacity.default\n\t\t\t\t\t\t);\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Highlight all nodes\n\t\t\t\tconst allLinks = self.parent\n\t\t\t\t\t.selectAll('path.link')\n\t\t\t\t\t.transition()\n\t\t\t\t\t.call((t) =>\n\t\t\t\t\t\tthis.services.transitions.setupTransition({\n\t\t\t\t\t\t\ttransition: t,\n\t\t\t\t\t\t\tname: 'alluvial-link-mouse-highlight',\n\t\t\t\t\t\t})\n\t\t\t\t\t);\n\n\t\t\t\tallLinks.style('stroke-opacity', function (d) {\n\t\t\t\t\t// Raise the links & increase stroke-opacity to selected\n\t\t\t\t\tif (links.some((element) => element === d.index)) {\n\t\t\t\t\t\tselect(this).classed('link-hovered', true).raise();\n\t\t\t\t\t\treturn Configuration.alluvial.opacity.selected;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn Configuration.alluvial.opacity.unfocus;\n\t\t\t\t});\n\t\t\t},\n\t\t\t66\n\t\t);\n\n\t\tself.parent\n\t\t\t.selectAll('.node-group')\n\t\t\t.on('mouseover', function (event, datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\n\t\t\t\t// Highlight all links that pass through node\n\t\t\t\tconst paths = [];\n\n\t\t\t\t// Outgoing links\n\t\t\t\tself.traverse(\n\t\t\t\t\t{ link: 'sourceLinks', node: 'target' },\n\t\t\t\t\tdatum,\n\t\t\t\t\tpaths\n\t\t\t\t);\n\n\t\t\t\t//Incoming links\n\t\t\t\tself.traverse(\n\t\t\t\t\t{ link: 'targetLinks', node: 'source' },\n\t\t\t\t\tdatum,\n\t\t\t\t\tpaths\n\t\t\t\t);\n\n\t\t\t\t// Highlight all linked lines in the graph data structure\n\t\t\t\tif (paths.length) {\n\t\t\t\t\t// Get transformation value of node\n\t\t\t\t\tconst nodeMatrix = Tools.getTranformOffsets(\n\t\t\t\t\t\thoveredElement.attr('transform')\n\t\t\t\t\t);\n\n\t\t\t\t\t// Move node to the left by 2 to grow node from the center\n\t\t\t\t\thoveredElement.attr(\n\t\t\t\t\t\t'transform',\n\t\t\t\t\t\t`translate(${nodeMatrix.x - 2}, ${nodeMatrix.y})`\n\t\t\t\t\t);\n\n\t\t\t\t\thoveredElement\n\t\t\t\t\t\t.classed('node-hovered', true)\n\t\t\t\t\t\t.selectAll('rect.node')\n\t\t\t\t\t\t.attr('width', 8);\n\n\t\t\t\t\t// Translate first column text container to the\n\t\t\t\t\t// right so it doesn't clash with expanding node\n\t\t\t\t\tif (datum.x0 - 2 === 0) {\n\t\t\t\t\t\tconst elementID = self.services.domUtils.generateElementIDString(\n\t\t\t\t\t\t\t`alluvial-node-title-${datum.index}`\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tconst titleContainer = self.parent.select(\n\t\t\t\t\t\t\t`g#${elementID}`\n\t\t\t\t\t\t);\n\t\t\t\t\t\tconst titleMatrix = Tools.getTranformOffsets(\n\t\t\t\t\t\t\ttitleContainer.attr('transform')\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\ttitleContainer.attr(\n\t\t\t\t\t\t\t'transform',\n\t\t\t\t\t\t\t`translate(${titleMatrix.x + 4},${titleMatrix.y})`\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tconst elementID = self.services.domUtils.generateElementIDString(\n\t\t\t\t\t\t`alluvial-node-text-${datum.index}`\n\t\t\t\t\t);\n\n\t\t\t\t\tself.parent\n\t\t\t\t\t\t.select(`text#${elementID}`)\n\t\t\t\t\t\t.style('font-weight', 'bold');\n\n\t\t\t\t\tdebouncedLineHighlight(paths, 'mouseover');\n\n\t\t\t\t\t// Dispatch mouse over event\n\t\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\t\tEvents.Alluvial.NODE_MOUSEOVER,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tevent,\n\t\t\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\t\t\tdatum,\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.on('mousemove', function (event, datum) {\n\t\t\t\t// Dispatch mouse move event\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.Alluvial.NODE_MOUSEMOVE,\n\t\t\t\t\t{\n\t\t\t\t\t\tevent,\n\t\t\t\t\t\telement: select(this),\n\t\t\t\t\t\tdatum,\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\t// Dispatch tooltip move event\n\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.MOVE, {\n\t\t\t\t\tevent,\n\t\t\t\t});\n\t\t\t})\n\t\t\t.on('click', function (event, datum) {\n\t\t\t\t// Dispatch mouse click event\n\t\t\t\tself.services.events.dispatchEvent(Events.Alluvial.NODE_CLICK, {\n\t\t\t\t\tevent,\n\t\t\t\t\telement: select(this),\n\t\t\t\t\tdatum,\n\t\t\t\t});\n\t\t\t})\n\t\t\t.on('mouseout', function (event, datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\n\t\t\t\t// Set the node position to initial state (unexpanded)\n\t\t\t\tconst nodeMatrix = Tools.getTranformOffsets(\n\t\t\t\t\thoveredElement.attr('transform')\n\t\t\t\t);\n\n\t\t\t\thoveredElement\n\t\t\t\t\t.classed('node-hovered', false)\n\t\t\t\t\t.attr(\n\t\t\t\t\t\t'transform',\n\t\t\t\t\t\t`translate(${nodeMatrix.x + 2}, ${nodeMatrix.y})`\n\t\t\t\t\t)\n\t\t\t\t\t.select('rect.node')\n\t\t\t\t\t.attr('width', Configuration.alluvial.nodeWidth);\n\n\t\t\t\t// Translate text container back to initial state\n\t\t\t\tif (datum.x0 - 2 === 0) {\n\t\t\t\t\tconst elementID = self.services.domUtils.generateElementIDString(\n\t\t\t\t\t\t`alluvial-node-title-${datum.index}`\n\t\t\t\t\t);\n\n\t\t\t\t\tconst titleContainer = self.parent.select(`g#${elementID}`);\n\t\t\t\t\tconst titleMatrix = Tools.getTranformOffsets(\n\t\t\t\t\t\ttitleContainer.attr('transform')\n\t\t\t\t\t);\n\n\t\t\t\t\ttitleContainer.attr(\n\t\t\t\t\t\t'transform',\n\t\t\t\t\t\t`translate(${titleMatrix.x - 4},${titleMatrix.y})`\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tconst elementID = self.services.domUtils.generateElementIDString(\n\t\t\t\t\t`alluvial-node-text-${datum.index}`\n\t\t\t\t);\n\n\t\t\t\tself.parent\n\t\t\t\t\t.select(`text#${elementID}`)\n\t\t\t\t\t.style('font-weight', 'normal');\n\n\t\t\t\tdebouncedLineHighlight([], 'mouseout');\n\n\t\t\t\t// Dispatch mouse out event\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.Alluvial.NODE_MOUSEOUT,\n\t\t\t\t\t{\n\t\t\t\t\t\tevent,\n\t\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\t\tdatum,\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\t// Dispatch hide tooltip event\n\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.HIDE, {\n\t\t\t\t\thoveredElement,\n\t\t\t\t});\n\t\t\t});\n\t}\n\n\t// Traverse graph and get all connected links to node\n\tprivate traverse(\n\t\tdirection:\n\t\t\t| { link: 'sourceLinks'; node: 'target' }\n\t\t\t| { link: 'targetLinks'; node: 'source' },\n\t\tnode,\n\t\tvisited = []\n\t) {\n\t\tconst links = node[direction.link].map((element) => {\n\t\t\tvisited.push(element.index);\n\t\t\treturn element[direction.node];\n\t\t});\n\n\t\t// Retrieve the child nodes\n\t\tlinks.forEach((element) => this.traverse(direction, element, visited));\n\t}\n\n\tgetRightArrowIcon() {\n\t\treturn `\n\t\t<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\">\n\t\t\t<polygon points=\"18 6 16.57 7.393 24.15 15 4 15 4 17 24.15 17 16.57 24.573 18 26 28 16 18 6\"/>\n\t\t\t<rect data-name=\"<Transparent Rectangle>\" style=\"fill: none;\" width=\"32\" height=\"32\"/>\n\t\t</svg>`;\n\t}\n\n\t// Remove event listeners\n\tdestroy() {\n\t\tthis.parent\n\t\t\t.selectAll('path.line,.node-group')\n\t\t\t.on('mouseover', null)\n\t\t\t.on('mousemove', null)\n\t\t\t.on('click', null)\n\t\t\t.on('mouseout', null);\n\t}\n}\n"]}
|
|
@@ -103,7 +103,9 @@ var Meter = /** @class */ (function (_super) {
|
|
|
103
103
|
// rect with the value binded
|
|
104
104
|
var valued = svg.selectAll('rect.value').data(stackedData);
|
|
105
105
|
// if user provided a color for the bar, we dont want to attach a status class
|
|
106
|
-
var className = status != null &&
|
|
106
|
+
var className = status != null &&
|
|
107
|
+
!self.model.isUserProvidedColorScaleValid() &&
|
|
108
|
+
!proportional
|
|
107
109
|
? "value status--" + status
|
|
108
110
|
: 'value';
|
|
109
111
|
// draw the value bar
|
|
@@ -149,9 +151,7 @@ var Meter = /** @class */ (function (_super) {
|
|
|
149
151
|
.attr('aria-label', function (d) { return d.value; });
|
|
150
152
|
valued.exit().remove();
|
|
151
153
|
// draw the peak
|
|
152
|
-
var peakValue =
|
|
153
|
-
? null
|
|
154
|
-
: Tools.getProperty(options, 'meter', 'peak');
|
|
154
|
+
var peakValue = Tools.getProperty(options, 'meter', 'peak');
|
|
155
155
|
var peakData = peakValue;
|
|
156
156
|
if (peakValue !== null) {
|
|
157
157
|
if (peakValue > domainMax) {
|
|
@@ -173,7 +173,11 @@ var Meter = /** @class */ (function (_super) {
|
|
|
173
173
|
.attr('y1', 0)
|
|
174
174
|
.attr('y2', function () {
|
|
175
175
|
var userProvidedHeight = Tools.getProperty(options, 'meter', 'height');
|
|
176
|
-
return userProvidedHeight
|
|
176
|
+
return userProvidedHeight
|
|
177
|
+
? userProvidedHeight
|
|
178
|
+
: proportional
|
|
179
|
+
? Configuration.meter.height.proportional
|
|
180
|
+
: Configuration.meter.height.default;
|
|
177
181
|
})
|
|
178
182
|
.transition()
|
|
179
183
|
.call(function (t) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meter.js","sourceRoot":"","sources":["meter.ts"],"names":[],"mappings":"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","sourcesContent":["// Internal Imports\nimport { Component } from '../component';\nimport { DOMUtils } from '../../services';\nimport { Tools } from '../../tools';\nimport {\n\tRoles,\n\tColorClassNameTypes,\n\tEvents,\n\tRenderTypes,\n} from '../../interfaces';\nimport * as Configuration from '../../configuration';\n\n// D3 Imports\nimport { scaleLinear } from 'd3-scale';\nimport { select } from 'd3-selection';\n\nexport class Meter extends Component {\n\ttype = 'meter';\n\trenderType = RenderTypes.SVG;\n\n\tgetStackedBounds(data, scale) {\n\t\tlet prevX = 0;\n\t\tconst stackedData = data.map((d, i) => {\n\t\t\tif (i !== 0) {\n\t\t\t\tprevX += scale(d.value);\n\t\t\t\treturn {\n\t\t\t\t\t...d,\n\t\t\t\t\twidth: Math.abs(\n\t\t\t\t\t\tscale(d.value) - Configuration.meter.dividerWidth\n\t\t\t\t\t),\n\t\t\t\t\tx: prevX - scale(d.value),\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tprevX = scale(d.value);\n\t\t\t\treturn {\n\t\t\t\t\t...d,\n\t\t\t\t\twidth: Math.abs(\n\t\t\t\t\t\tscale(d.value) - Configuration.meter.dividerWidth\n\t\t\t\t\t),\n\t\t\t\t\tx: 0,\n\t\t\t\t};\n\t\t\t}\n\t\t});\n\n\t\treturn stackedData;\n\t}\n\n\trender(animate = true) {\n\t\tconst self = this;\n\t\tconst svg = this.getComponentContainer();\n\t\tconst options = this.getOptions();\n\t\tconst proportional = Tools.getProperty(\n\t\t\toptions,\n\t\t\t'meter',\n\t\t\t'proportional'\n\t\t);\n\t\tconst data = this.model.getDisplayData();\n\t\tconst status = this.model.getStatus();\n\n\t\tconst { width } = DOMUtils.getSVGElementSize(svg, {\n\t\t\tuseAttrs: true,\n\t\t});\n\n\t\tconst { groupMapsTo } = options.data;\n\n\t\tlet domainMax;\n\t\tif (Tools.getProperty(options, 'meter', 'proportional') === null) {\n\t\t\tdomainMax = 100;\n\t\t} else {\n\t\t\tconst total = Tools.getProperty(\n\t\t\t\toptions,\n\t\t\t\t'meter',\n\t\t\t\t'proportional',\n\t\t\t\t'total'\n\t\t\t);\n\t\t\tdomainMax = total\n\t\t\t\t? total\n\t\t\t\t: this.model.getMaximumDomain(this.model.getDisplayData());\n\t\t}\n\n\t\t// each meter has a scale for the value but no visual axis\n\t\tconst xScale = scaleLinear().domain([0, domainMax]).range([0, width]);\n\t\tconst stackedData = this.getStackedBounds(data, xScale);\n\n\t\tconst userProvidedHeight = Tools.getProperty(\n\t\t\toptions,\n\t\t\t'meter',\n\t\t\t'height'\n\t\t);\n\n\t\t// draw the container to hold the value\n\t\tDOMUtils.appendOrSelect(svg, 'rect.container')\n\t\t\t.attr('x', 0)\n\t\t\t.attr('y', 0)\n\t\t\t.attr('width', width)\n\t\t\t.attr(\n\t\t\t\t'height',\n\t\t\t\tuserProvidedHeight\n\t\t\t\t\t? userProvidedHeight\n\t\t\t\t\t: proportional\n\t\t\t\t\t? Configuration.meter.height.proportional\n\t\t\t\t\t: Configuration.meter.height.default\n\t\t\t);\n\n\t\t// draw the container max range value indicator\n\t\tDOMUtils.appendOrSelect(svg, 'line.rangeIndicator')\n\t\t\t.attr('x1', width)\n\t\t\t.attr('x2', width)\n\t\t\t.attr('y1', 0)\n\t\t\t.attr(\n\t\t\t\t'y2',\n\t\t\t\tuserProvidedHeight\n\t\t\t\t\t? userProvidedHeight\n\t\t\t\t\t: proportional\n\t\t\t\t\t? Configuration.meter.height.proportional\n\t\t\t\t\t: Configuration.meter.height.default\n\t\t\t);\n\n\t\t// rect with the value binded\n\t\tconst valued = svg.selectAll('rect.value').data(stackedData);\n\n\t\t// if user provided a color for the bar, we dont want to attach a status class\n\t\tconst className =\n\t\t\tstatus != null && !self.model.isUserProvidedColorScaleValid()\n\t\t\t\t? `value status--${status}`\n\t\t\t\t: 'value';\n\n\t\t// draw the value bar\n\t\tvalued\n\t\t\t.enter()\n\t\t\t.append('rect')\n\t\t\t.classed('value', true)\n\t\t\t.merge(valued)\n\t\t\t.attr('x', (d) => {\n\t\t\t\treturn d.x;\n\t\t\t})\n\t\t\t.attr('y', 0)\n\t\t\t.attr('height', () => {\n\t\t\t\tconst userProvidedHeight = Tools.getProperty(\n\t\t\t\t\toptions,\n\t\t\t\t\t'meter',\n\t\t\t\t\t'height'\n\t\t\t\t);\n\t\t\t\treturn userProvidedHeight\n\t\t\t\t\t? userProvidedHeight\n\t\t\t\t\t: proportional\n\t\t\t\t\t? Configuration.meter.height.proportional\n\t\t\t\t\t: Configuration.meter.height.default;\n\t\t\t})\n\t\t\t.attr('class', (d) =>\n\t\t\t\tthis.model.getColorClassName({\n\t\t\t\t\tclassNameTypes: [ColorClassNameTypes.FILL],\n\t\t\t\t\tdataGroupName: d[groupMapsTo],\n\t\t\t\t\toriginalClassName: className,\n\t\t\t\t})\n\t\t\t)\n\t\t\t.transition()\n\t\t\t.call((t) =>\n\t\t\t\tthis.services.transitions.setupTransition({\n\t\t\t\t\ttransition: t,\n\t\t\t\t\tname: 'meter-bar-update',\n\t\t\t\t\tanimate,\n\t\t\t\t})\n\t\t\t)\n\t\t\t.attr('width', (d, i) => {\n\t\t\t\treturn d.value > domainMax ? xScale(domainMax) : d.width;\n\t\t\t})\n\t\t\t.style('fill', (d) => self.model.getFillColor(d[groupMapsTo]))\n\t\t\t// a11y\n\t\t\t.attr('role', Roles.GRAPHICS_SYMBOL)\n\t\t\t.attr('aria-roledescription', 'value')\n\t\t\t.attr('aria-label', (d) => d.value);\n\n\t\tvalued.exit().remove();\n\n\t\t// draw the peak\n\t\tconst peakValue = proportional\n\t\t\t? null\n\t\t\t: Tools.getProperty(options, 'meter', 'peak');\n\n\t\tlet peakData = peakValue;\n\t\tif (peakValue !== null) {\n\t\t\tif (peakValue > domainMax) {\n\t\t\t\tpeakData = domainMax;\n\t\t\t} else if (peakValue < data[0].value) {\n\t\t\t\tpeakData =\n\t\t\t\t\tdata[0].value > domainMax ? domainMax : data[0].value;\n\t\t\t}\n\t\t}\n\n\t\t// if a peak is supplied within the domain, we want to render it\n\t\tconst peak = svg\n\t\t\t.selectAll('line.peak')\n\t\t\t.data(peakData == null ? [] : [peakData]);\n\n\t\tpeak.enter()\n\t\t\t.append('line')\n\t\t\t.classed('peak', true)\n\t\t\t.merge(peak)\n\t\t\t.attr('y1', 0)\n\t\t\t.attr('y2', () => {\n\t\t\t\tconst userProvidedHeight = Tools.getProperty(\n\t\t\t\t\toptions,\n\t\t\t\t\t'meter',\n\t\t\t\t\t'height'\n\t\t\t\t);\n\t\t\t\treturn userProvidedHeight ? userProvidedHeight : 8;\n\t\t\t})\n\t\t\t.transition()\n\t\t\t.call((t) =>\n\t\t\t\tthis.services.transitions.setupTransition({\n\t\t\t\t\ttransition: t,\n\t\t\t\t\tname: 'peak-line-update',\n\t\t\t\t\tanimate,\n\t\t\t\t})\n\t\t\t)\n\t\t\t.attr('x1', (d) => xScale(d))\n\t\t\t.attr('x2', (d) => xScale(d))\n\t\t\t// a11y\n\t\t\t.attr('role', Roles.GRAPHICS_SYMBOL)\n\t\t\t.attr('aria-roledescription', 'peak')\n\t\t\t.attr('aria-label', (d) => d);\n\n\t\tpeak.exit().remove();\n\n\t\t// this forces the meter chart to only take up as much height as needed (if no height is provided)\n\t\tthis.services.domUtils.setSVGMaxHeight();\n\n\t\t// Add event listeners to elements and legend\n\t\tthis.addEventListeners();\n\t}\n\n\t// add event listeners for tooltips on proportional meter bars\n\taddEventListeners() {\n\t\tconst options = this.getOptions();\n\t\tconst { groupMapsTo } = options.data;\n\t\tconst self = this;\n\t\tconst proportional = Tools.getProperty(\n\t\t\toptions,\n\t\t\t'meter',\n\t\t\t'proportional'\n\t\t);\n\n\t\tthis.parent\n\t\t\t.selectAll('rect.value')\n\t\t\t.on('mouseover', function (event, datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.Meter.METER_MOUSEOVER,\n\t\t\t\t\t{\n\t\t\t\t\t\tevent,\n\t\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\t\tdatum,\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tif (proportional) {\n\t\t\t\t\thoveredElement.classed('hovered', true);\n\n\t\t\t\t\t// Show tooltip\n\t\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.SHOW, {\n\t\t\t\t\t\tevent,\n\t\t\t\t\t\thoveredElement,\n\t\t\t\t\t\titems: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: datum[groupMapsTo],\n\t\t\t\t\t\t\t\tvalue: datum.value,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t})\n\t\t\t.on('mousemove', function (event, datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.Meter.METER_MOUSEMOVE,\n\t\t\t\t\t{\n\t\t\t\t\t\tevent,\n\t\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\t\tdatum,\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tif (proportional) {\n\t\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.MOVE, {\n\t\t\t\t\t\tevent,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t})\n\t\t\t.on('click', function (event, datum) {\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(Events.Meter.METER_CLICK, {\n\t\t\t\t\tevent,\n\t\t\t\t\telement: select(this),\n\t\t\t\t\tdatum,\n\t\t\t\t});\n\t\t\t})\n\t\t\t.on('mouseout', function (event, datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.Meter.METER_MOUSEOUT,\n\t\t\t\t\t{\n\t\t\t\t\t\tevent,\n\t\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\t\tdatum,\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tif (proportional) {\n\t\t\t\t\thoveredElement.classed('hovered', false);\n\n\t\t\t\t\t// Hide tooltip\n\t\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.HIDE, {\n\t\t\t\t\t\thoveredElement,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t}\n\n\tdestroy() {\n\t\t// Remove event listeners\n\t\tthis.parent\n\t\t\t.selectAll('rect.value')\n\t\t\t.on('mouseover', null)\n\t\t\t.on('mousemove', null)\n\t\t\t.on('mouseout', null)\n\t\t\t.on('click', null);\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"meter.js","sourceRoot":"","sources":["meter.ts"],"names":[],"mappings":"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","sourcesContent":["// Internal Imports\nimport { Component } from '../component';\nimport { DOMUtils } from '../../services';\nimport { Tools } from '../../tools';\nimport {\n\tRoles,\n\tColorClassNameTypes,\n\tEvents,\n\tRenderTypes,\n} from '../../interfaces';\nimport * as Configuration from '../../configuration';\n\n// D3 Imports\nimport { scaleLinear } from 'd3-scale';\nimport { select } from 'd3-selection';\n\nexport class Meter extends Component {\n\ttype = 'meter';\n\trenderType = RenderTypes.SVG;\n\n\tgetStackedBounds(data, scale) {\n\t\tlet prevX = 0;\n\t\tconst stackedData = data.map((d, i) => {\n\t\t\tif (i !== 0) {\n\t\t\t\tprevX += scale(d.value);\n\t\t\t\treturn {\n\t\t\t\t\t...d,\n\t\t\t\t\twidth: Math.abs(\n\t\t\t\t\t\tscale(d.value) - Configuration.meter.dividerWidth\n\t\t\t\t\t),\n\t\t\t\t\tx: prevX - scale(d.value),\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tprevX = scale(d.value);\n\t\t\t\treturn {\n\t\t\t\t\t...d,\n\t\t\t\t\twidth: Math.abs(\n\t\t\t\t\t\tscale(d.value) - Configuration.meter.dividerWidth\n\t\t\t\t\t),\n\t\t\t\t\tx: 0,\n\t\t\t\t};\n\t\t\t}\n\t\t});\n\n\t\treturn stackedData;\n\t}\n\n\trender(animate = true) {\n\t\tconst self = this;\n\t\tconst svg = this.getComponentContainer();\n\t\tconst options = this.getOptions();\n\t\tconst proportional = Tools.getProperty(\n\t\t\toptions,\n\t\t\t'meter',\n\t\t\t'proportional'\n\t\t);\n\t\tconst data = this.model.getDisplayData();\n\t\tconst status = this.model.getStatus();\n\n\t\tconst { width } = DOMUtils.getSVGElementSize(svg, {\n\t\t\tuseAttrs: true,\n\t\t});\n\n\t\tconst { groupMapsTo } = options.data;\n\n\t\tlet domainMax;\n\t\tif (Tools.getProperty(options, 'meter', 'proportional') === null) {\n\t\t\tdomainMax = 100;\n\t\t} else {\n\t\t\tconst total = Tools.getProperty(\n\t\t\t\toptions,\n\t\t\t\t'meter',\n\t\t\t\t'proportional',\n\t\t\t\t'total'\n\t\t\t);\n\t\t\tdomainMax = total\n\t\t\t\t? total\n\t\t\t\t: this.model.getMaximumDomain(this.model.getDisplayData());\n\t\t}\n\n\t\t// each meter has a scale for the value but no visual axis\n\t\tconst xScale = scaleLinear().domain([0, domainMax]).range([0, width]);\n\t\tconst stackedData = this.getStackedBounds(data, xScale);\n\n\t\tconst userProvidedHeight = Tools.getProperty(\n\t\t\toptions,\n\t\t\t'meter',\n\t\t\t'height'\n\t\t);\n\n\t\t// draw the container to hold the value\n\t\tDOMUtils.appendOrSelect(svg, 'rect.container')\n\t\t\t.attr('x', 0)\n\t\t\t.attr('y', 0)\n\t\t\t.attr('width', width)\n\t\t\t.attr(\n\t\t\t\t'height',\n\t\t\t\tuserProvidedHeight\n\t\t\t\t\t? userProvidedHeight\n\t\t\t\t\t: proportional\n\t\t\t\t\t? Configuration.meter.height.proportional\n\t\t\t\t\t: Configuration.meter.height.default\n\t\t\t);\n\n\t\t// draw the container max range value indicator\n\t\tDOMUtils.appendOrSelect(svg, 'line.rangeIndicator')\n\t\t\t.attr('x1', width)\n\t\t\t.attr('x2', width)\n\t\t\t.attr('y1', 0)\n\t\t\t.attr(\n\t\t\t\t'y2',\n\t\t\t\tuserProvidedHeight\n\t\t\t\t\t? userProvidedHeight\n\t\t\t\t\t: proportional\n\t\t\t\t\t? Configuration.meter.height.proportional\n\t\t\t\t\t: Configuration.meter.height.default\n\t\t\t);\n\n\t\t// rect with the value binded\n\t\tconst valued = svg.selectAll('rect.value').data(stackedData);\n\n\t\t// if user provided a color for the bar, we dont want to attach a status class\n\t\tconst className =\n\t\t\tstatus != null &&\n\t\t\t!self.model.isUserProvidedColorScaleValid() &&\n\t\t\t!proportional\n\t\t\t\t? `value status--${status}`\n\t\t\t\t: 'value';\n\n\t\t// draw the value bar\n\t\tvalued\n\t\t\t.enter()\n\t\t\t.append('rect')\n\t\t\t.classed('value', true)\n\t\t\t.merge(valued)\n\t\t\t.attr('x', (d) => {\n\t\t\t\treturn d.x;\n\t\t\t})\n\t\t\t.attr('y', 0)\n\t\t\t.attr('height', () => {\n\t\t\t\tconst userProvidedHeight = Tools.getProperty(\n\t\t\t\t\toptions,\n\t\t\t\t\t'meter',\n\t\t\t\t\t'height'\n\t\t\t\t);\n\t\t\t\treturn userProvidedHeight\n\t\t\t\t\t? userProvidedHeight\n\t\t\t\t\t: proportional\n\t\t\t\t\t? Configuration.meter.height.proportional\n\t\t\t\t\t: Configuration.meter.height.default;\n\t\t\t})\n\t\t\t.attr('class', (d) =>\n\t\t\t\tthis.model.getColorClassName({\n\t\t\t\t\tclassNameTypes: [ColorClassNameTypes.FILL],\n\t\t\t\t\tdataGroupName: d[groupMapsTo],\n\t\t\t\t\toriginalClassName: className,\n\t\t\t\t})\n\t\t\t)\n\t\t\t.transition()\n\t\t\t.call((t) =>\n\t\t\t\tthis.services.transitions.setupTransition({\n\t\t\t\t\ttransition: t,\n\t\t\t\t\tname: 'meter-bar-update',\n\t\t\t\t\tanimate,\n\t\t\t\t})\n\t\t\t)\n\t\t\t.attr('width', (d, i) => {\n\t\t\t\treturn d.value > domainMax ? xScale(domainMax) : d.width;\n\t\t\t})\n\t\t\t.style('fill', (d) => self.model.getFillColor(d[groupMapsTo]))\n\t\t\t// a11y\n\t\t\t.attr('role', Roles.GRAPHICS_SYMBOL)\n\t\t\t.attr('aria-roledescription', 'value')\n\t\t\t.attr('aria-label', (d) => d.value);\n\n\t\tvalued.exit().remove();\n\n\t\t// draw the peak\n\t\tconst peakValue = Tools.getProperty(options, 'meter', 'peak');\n\n\t\tlet peakData = peakValue;\n\t\tif (peakValue !== null) {\n\t\t\tif (peakValue > domainMax) {\n\t\t\t\tpeakData = domainMax;\n\t\t\t} else if (peakValue < data[0].value) {\n\t\t\t\tpeakData =\n\t\t\t\t\tdata[0].value > domainMax ? domainMax : data[0].value;\n\t\t\t}\n\t\t}\n\n\t\t// if a peak is supplied within the domain, we want to render it\n\t\tconst peak = svg\n\t\t\t.selectAll('line.peak')\n\t\t\t.data(peakData == null ? [] : [peakData]);\n\n\t\tpeak.enter()\n\t\t\t.append('line')\n\t\t\t.classed('peak', true)\n\t\t\t.merge(peak)\n\t\t\t.attr('y1', 0)\n\t\t\t.attr('y2', () => {\n\t\t\t\tconst userProvidedHeight = Tools.getProperty(\n\t\t\t\t\toptions,\n\t\t\t\t\t'meter',\n\t\t\t\t\t'height'\n\t\t\t\t);\n\n\t\t\t\treturn userProvidedHeight\n\t\t\t\t\t? userProvidedHeight\n\t\t\t\t\t: proportional\n\t\t\t\t\t? Configuration.meter.height.proportional\n\t\t\t\t\t: Configuration.meter.height.default;\n\t\t\t})\n\t\t\t.transition()\n\t\t\t.call((t) =>\n\t\t\t\tthis.services.transitions.setupTransition({\n\t\t\t\t\ttransition: t,\n\t\t\t\t\tname: 'peak-line-update',\n\t\t\t\t\tanimate,\n\t\t\t\t})\n\t\t\t)\n\t\t\t.attr('x1', (d) => xScale(d))\n\t\t\t.attr('x2', (d) => xScale(d))\n\t\t\t// a11y\n\t\t\t.attr('role', Roles.GRAPHICS_SYMBOL)\n\t\t\t.attr('aria-roledescription', 'peak')\n\t\t\t.attr('aria-label', (d) => d);\n\n\t\tpeak.exit().remove();\n\n\t\t// this forces the meter chart to only take up as much height as needed (if no height is provided)\n\t\tthis.services.domUtils.setSVGMaxHeight();\n\n\t\t// Add event listeners to elements and legend\n\t\tthis.addEventListeners();\n\t}\n\n\t// add event listeners for tooltips on proportional meter bars\n\taddEventListeners() {\n\t\tconst options = this.getOptions();\n\t\tconst { groupMapsTo } = options.data;\n\t\tconst self = this;\n\t\tconst proportional = Tools.getProperty(\n\t\t\toptions,\n\t\t\t'meter',\n\t\t\t'proportional'\n\t\t);\n\n\t\tthis.parent\n\t\t\t.selectAll('rect.value')\n\t\t\t.on('mouseover', function (event, datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.Meter.METER_MOUSEOVER,\n\t\t\t\t\t{\n\t\t\t\t\t\tevent,\n\t\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\t\tdatum,\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tif (proportional) {\n\t\t\t\t\thoveredElement.classed('hovered', true);\n\n\t\t\t\t\t// Show tooltip\n\t\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.SHOW, {\n\t\t\t\t\t\tevent,\n\t\t\t\t\t\thoveredElement,\n\t\t\t\t\t\titems: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: datum[groupMapsTo],\n\t\t\t\t\t\t\t\tvalue: datum.value,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t})\n\t\t\t.on('mousemove', function (event, datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.Meter.METER_MOUSEMOVE,\n\t\t\t\t\t{\n\t\t\t\t\t\tevent,\n\t\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\t\tdatum,\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tif (proportional) {\n\t\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.MOVE, {\n\t\t\t\t\t\tevent,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t})\n\t\t\t.on('click', function (event, datum) {\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(Events.Meter.METER_CLICK, {\n\t\t\t\t\tevent,\n\t\t\t\t\telement: select(this),\n\t\t\t\t\tdatum,\n\t\t\t\t});\n\t\t\t})\n\t\t\t.on('mouseout', function (event, datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.Meter.METER_MOUSEOUT,\n\t\t\t\t\t{\n\t\t\t\t\t\tevent,\n\t\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\t\tdatum,\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tif (proportional) {\n\t\t\t\t\thoveredElement.classed('hovered', false);\n\n\t\t\t\t\t// Hide tooltip\n\t\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.HIDE, {\n\t\t\t\t\t\thoveredElement,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t}\n\n\tdestroy() {\n\t\t// Remove event listeners\n\t\tthis.parent\n\t\t\t.selectAll('rect.value')\n\t\t\t.on('mouseover', null)\n\t\t\t.on('mousemove', null)\n\t\t\t.on('mouseout', null)\n\t\t\t.on('click', null);\n\t}\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configuration-non-customizable.js","sourceRoot":"","sources":["configuration-non-customizable.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"configuration-non-customizable.js","sourceRoot":"","sources":["configuration-non-customizable.ts"],"names":[],"mappings":"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","sourcesContent":["import { ZoomBarTypes, LegendItemType } from './interfaces';\nimport { easeCubicInOut } from 'd3-ease';\n\nexport const area = {\n\topacity: {\n\t\tunselected: 0.05,\n\t\tselected: 0.4,\n\t},\n};\n\nexport const axis = {\n\tticks: {\n\t\tnumber: 7,\n\t\trotateIfSmallerThan: 30,\n\t\tverticalSpaceRatio: 2.5,\n\t\thorizontalSpaceRatio: 3.5,\n\t},\n\tratio: {\n\t\treference: 'value',\n\t\tcompareTo: 'marker',\n\t},\n\tpaddingRatio: 0.1,\n};\n\nexport const canvasZoomSettings = {\n\tduration: 1000,\n\tease: easeCubicInOut,\n\tzoomLevel: 3,\n};\n\nexport const circlePack = {\n\tcircles: {\n\t\tfillOpacity: 0.3,\n\t\thover: {\n\t\t\tstroke: '#FFF',\n\t\t},\n\t},\n\tpadding: {\n\t\tmainGroup: 4,\n\t\tchildren: 2,\n\t},\n\thierarchyLevel: 2,\n};\n\nexport const color = {\n\tpairingOptions: {\n\t\t'1-color': 4,\n\t\t'2-color': 5,\n\t\t'3-color': 5,\n\t\t'4-color': 3,\n\t\t'5-color': 2,\n\t\t'14-color': 1,\n\t},\n};\n\nexport const boxplot = {\n\tcircle: {\n\t\tradius: 4,\n\t\topacity: {\n\t\t\thovered: 1,\n\t\t\tdefault: 0.3,\n\t\t},\n\t},\n\tbox: {\n\t\topacity: {\n\t\t\thovered: 0.5,\n\t\t\tdefault: 0.3,\n\t\t},\n\t},\n\tstrokeWidth: {\n\t\tdefault: 1,\n\t\tthicker: 2,\n\t},\n};\n\nexport const histogram = {\n\tdefaultBins: 10,\n};\n\nexport const legend = {\n\titems: {\n\t\tstatus: {\n\t\t\tACTIVE: 1,\n\t\t\tDISABLED: 0,\n\t\t},\n\t\thorizontalSpace: 12,\n\t\tverticalSpace: 24,\n\t\ttextYOffset: 8,\n\t\tspaceAfter: 4,\n\t},\n\tcheckbox: {\n\t\tradius: 6.5,\n\t},\n\tradius: {\n\t\ticonData: [\n\t\t\t{ cx: 7, cy: 7, r: 6.5 },\n\t\t\t{ cx: 7, cy: 10, r: 3.5 },\n\t\t],\n\t\tfill: null,\n\t\tstroke: '#8c8c8c',\n\t},\n\tline: {\n\t\tyPosition: 6,\n\t\twidth: 24,\n\t\tstrokeWidth: 1.4,\n\t\tfill: null,\n\t\tstroke: '#999999',\n\t},\n\tarea: {\n\t\twidth: 24,\n\t\theight: 14,\n\t\tfill: '#6f6f6f',\n\t\tstroke: null,\n\t},\n\tsize: {\n\t\ticonData: [\n\t\t\t{ width: 23, height: 12 },\n\t\t\t{ width: 13, height: 6 },\n\t\t],\n\t\tfill: null,\n\t\tstroke: '#8D8D8D',\n\t},\n\tquartile: {\n\t\ticonData: [\n\t\t\t{ x: 0, y: 0, width: 24, height: 13 },\n\t\t\t{ x: 11, y: 4, width: 1, height: 4 },\n\t\t],\n\t},\n\tzoom: {\n\t\ticonData: [{ x: 0, y: 0, width: 12, height: 12 }],\n\t\tcolor: '#8D8D8D',\n\t},\n};\n\nexport const lines = {\n\topacity: {\n\t\tunselected: 0.3,\n\t\tselected: 1,\n\t},\n\tweight: {\n\t\tselected: 2,\n\t\tunselected: 1,\n\t},\n};\n\nexport const meter = {\n\tstatusBar: {\n\t\tpaddingRight: 5,\n\t},\n\tstatus: {\n\t\tindicatorSize: 16,\n\t\tpaddingLeft: 15,\n\t},\n\ttotal: {\n\t\tpaddingLeft: 36,\n\t\tpaddingRight: 24,\n\t},\n\theight: {\n\t\tdefault: 8,\n\t\tproportional: 16,\n\t},\n\tdividerWidth: 2,\n};\n\nexport const pie = {\n\tradiusOffset: -15,\n\tinnerRadius: 2,\n\tpadAngle: 0.007,\n\thoverArc: {\n\t\touterRadiusOffset: 3,\n\t},\n\txOffset: 30,\n\tyOffset: 20,\n\tyOffsetCallout: 10,\n\tcallout: {\n\t\tminSliceDegree: 5,\n\t\toffsetX: 15,\n\t\toffsetY: 12,\n\t\thorizontalLineLength: 8,\n\t\ttextMargin: 2,\n\t},\n};\n\nexport const radar = {\n\topacity: {\n\t\tunselected: 0.1,\n\t\tselected: 0.3,\n\t},\n\txLabelPadding: 10,\n\tyLabelPadding: 8,\n\tyTicksNumber: 4,\n\tminRange: 10,\n\txAxisRectHeight: 50,\n\tdotsRadius: 5,\n};\n\nexport const alluvial = {\n\tnodeWidth: 4,\n\tnodeHoveredWidth: 8,\n\tminNodePadding: 24,\n\topacity: {\n\t\tunfocus: 0.3,\n\t\tdefault: 0.8,\n\t\tselected: 1,\n\t},\n};\n\nexport const spacers = {\n\tdefault: {\n\t\tsize: 24,\n\t},\n};\n\nexport const tooltips = {\n\thorizontalOffset: 10,\n};\n\n/**\n * Base transition configuration\n */\nexport const transitions = {\n\tdefault: {\n\t\tduration: 300,\n\t},\n\tpie_slice_mouseover: {\n\t\tduration: 100,\n\t},\n\tpie_chart_titles: {\n\t\tduration: 375,\n\t},\n\tgraph_element_mouseover_fill_update: {\n\t\tduration: 100,\n\t},\n\tgraph_element_mouseout_fill_update: {\n\t\tduration: 100,\n\t},\n};\n\nexport const toolbar = {\n\tbuttonSize: 32,\n\ticonSize: 20,\n\theight: 32,\n\tspacerHeight: 10,\n\ticonPadding: 6,\n};\n\nexport const zoomBar = {\n\theight: {\n\t\t[ZoomBarTypes.GRAPH_VIEW]: 32,\n\t\t[ZoomBarTypes.SLIDER_VIEW]: 10,\n\t},\n\tspacerHeight: 8,\n\thandleWidth: 5,\n\thandleBarWidth: 1,\n\thandleBarHeight: 12,\n};\n\nexport const defaultLegendAdditionalItems = [\n\t{\n\t\ttype: LegendItemType.RADIUS,\n\t\tname: 'Radius',\n\t},\n\t{\n\t\ttype: LegendItemType.AREA,\n\t\tname: 'Poor area',\n\t},\n\t{\n\t\ttype: LegendItemType.AREA,\n\t\tname: 'Satisfactory area',\n\t},\n\t{\n\t\ttype: LegendItemType.AREA,\n\t\tname: 'Great area',\n\t},\n\t{\n\t\ttype: LegendItemType.QUARTILE,\n\t\tname: 'Quartiles',\n\t},\n];\n"]}
|
package/demo/data/alluvial.d.ts
CHANGED
|
@@ -6,12 +6,12 @@ export declare const alluvialSimpleData: {
|
|
|
6
6
|
export declare const alluvialSimpleOptions: {
|
|
7
7
|
title: string;
|
|
8
8
|
alluvial: {
|
|
9
|
-
units: string;
|
|
10
9
|
nodes: {
|
|
11
10
|
name: string;
|
|
12
11
|
category: string;
|
|
13
12
|
}[];
|
|
14
13
|
};
|
|
14
|
+
height: string;
|
|
15
15
|
};
|
|
16
16
|
export declare const alluvialSimpleCustomColorOptions: {
|
|
17
17
|
title: string;
|
|
@@ -23,12 +23,44 @@ export declare const alluvialSimpleCustomColorOptions: {
|
|
|
23
23
|
};
|
|
24
24
|
};
|
|
25
25
|
alluvial: {
|
|
26
|
-
units: string;
|
|
27
26
|
nodes: {
|
|
28
27
|
name: string;
|
|
29
28
|
category: string;
|
|
30
29
|
}[];
|
|
31
30
|
};
|
|
31
|
+
height: string;
|
|
32
|
+
};
|
|
33
|
+
export declare const alluvialGradientData: {
|
|
34
|
+
source: string;
|
|
35
|
+
target: string;
|
|
36
|
+
value: number;
|
|
37
|
+
}[];
|
|
38
|
+
export declare const alluvialSimpleGradientOptions: {
|
|
39
|
+
title: string;
|
|
40
|
+
color: {
|
|
41
|
+
scale: {
|
|
42
|
+
Cards: string;
|
|
43
|
+
'About Modal': string;
|
|
44
|
+
'Create Flow': string;
|
|
45
|
+
'Page Header': string;
|
|
46
|
+
Notifications: string;
|
|
47
|
+
'Data and AI, AI Apps': string;
|
|
48
|
+
'Data and AI, Info Architecture': string;
|
|
49
|
+
Security: string;
|
|
50
|
+
Automation: string;
|
|
51
|
+
'Public Cloud': string;
|
|
52
|
+
};
|
|
53
|
+
gradient: {
|
|
54
|
+
enabled: boolean;
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
alluvial: {
|
|
58
|
+
nodes: {
|
|
59
|
+
name: string;
|
|
60
|
+
category: string;
|
|
61
|
+
}[];
|
|
62
|
+
};
|
|
63
|
+
height: string;
|
|
32
64
|
};
|
|
33
65
|
export declare const alluvialMultipleCategoryOptions: {
|
|
34
66
|
title: string;
|