@fluentui/react-charting 5.9.54 → 5.9.55

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.
@@ -217,7 +217,7 @@ var LegendsBase = /** @class */ (function (_super) {
217
217
  return (React.createElement("button", __assign({}, (allowFocusOnLegends && {
218
218
  'aria-selected': _this.state.selectedLegend === legend.title,
219
219
  role: 'option',
220
- 'aria-label': legend.title,
220
+ 'aria-label': legend.title + " selected",
221
221
  'aria-setsize': data['aria-setsize'],
222
222
  'aria-posinset': data['aria-posinset'],
223
223
  }), (data.nativeButtonProps && __assign({}, data.nativeButtonProps)), { key: index, className: classNames.legend, onClick: onClickHandler, onMouseOver: onHoverHandler, onMouseOut: onMouseOut, onFocus: onHoverHandler, onBlur: onMouseOut, "data-is-focusable": allowFocusOnLegends }),
@@ -1 +1 @@
1
- {"version":3,"file":"Legends.base.js","sourceRoot":"../src/","sources":["components/Legends/Legends.base.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,SAAS,EAAE,aAAa,EAAuB,MAAM,+BAA+B,CAAC;AAC9F,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAC3G,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAE9D,OAAO,EAAE,WAAW,EAAyB,MAAM,iCAAiC,CAAC;AACrF,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAStE,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,IAAM,aAAa,GAAG,kBAAkB,EAAqC,CAAC;AAyB9E;IAAiC,+BAA4C;IAI3E,qBAAmB,KAAoB;QAAvC,YACE,kBAAM,KAAK,CAAC,SASb;QA6DO,mBAAa,GAAG,UAAC,IAAiD;YAClE,IAAA,KAAgD,KAAI,CAAC,KAAK,EAAxD,aAAa,mBAAA,EAAE,2BAA0B,EAA1B,mBAAmB,mBAAG,IAAI,KAAe,CAAC;YACjE,IAAM,UAAU,GAAG;gBACjB,IAAI,EAAE;oBACJ,cAAc,EAAE,KAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO;oBAC7D,QAAQ,EAAE,MAAM;iBACjB;aACF,CAAC;YACF,OAAO,CACL,oBAAC,WAAW,eACN,CAAC,mBAAmB,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,IACzE,KAAK,EAAE,IAAI,CAAC,OAAO,EACnB,aAAa,EAAE,IAAI,CAAC,QAAQ,EAC5B,YAAY,EAAE,KAAI,CAAC,aAAa,EAChC,sBAAsB,EAAE,KAAI,CAAC,oBAAoB,IAC7C,aAAa,IACjB,MAAM,wBAAO,UAAU,GAAK,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM,KACjD,CACH,CAAC;QACJ,CAAC,CAAC;QAEM,mBAAa,GAAG,UAAC,WAAkC;YACzD,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;gBACpC,OAAO;aACR;YACD,IAAM,QAAQ,mCAAO,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAK,WAAW,CAAC,QAAQ,CAAC,CAAC;YAC7E,IAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACjD,OAAO,EAAE,OAAO,SAAA,EAAE,QAAQ,UAAA,EAAE,CAAC;QAC/B,CAAC,CAAC;QAEM,iBAAW,GAAG,UAAC,WAAkC;YACvD,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;gBACrC,OAAO;aACR;YACD,IAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC/C,IAAM,OAAO,mCAAO,WAAW,CAAC,OAAO,GAAK,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC9E,OAAO,EAAE,OAAO,SAAA,EAAE,QAAQ,UAAA,EAAE,CAAC;QAC/B,CAAC,CAAC;QAEF;;;;WAIG;QACK,+BAAyB,GAAG,UAAC,MAAe;YAClD,IAAM,eAAe,GAAG,oBAAoB,CAAC,KAAI,CAAC,KAAK,CAAC,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YACvF,KAAI,CAAC,QAAQ,CAAC;gBACZ,4EAA4E;gBAC5E,eAAe,EAAE,eAAe,CAAC,MAAM,KAAK,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe;gBAC5F,kEAAkE;gBAClE,aAAa,EACX,eAAe,CAAC,MAAM,KAAK,CAAC,IAAI,eAAe,CAAC,MAAM,KAAK,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;gBACrG,0BAA0B,EAAE,KAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM;gBACjF,cAAc,EAAE,MAAM;gBACtB,UAAU,EAAE,KAAK;aAClB,CAAC,CAAC;QACL,CAAC,CAAC;QAEF;;;;WAIG;QAEK,gCAA0B,GAAG,UAAC,MAAe;YACnD,IAAI,KAAI,CAAC,KAAK,CAAC,aAAa,KAAK,IAAI,IAAI,KAAI,CAAC,KAAK,CAAC,cAAc,KAAK,MAAM,CAAC,KAAK,EAAE;gBACnF,KAAI,CAAC,QAAQ,CAAC;oBACZ,cAAc,EAAE,MAAM;oBACtB,aAAa,EAAE,KAAK;oBACpB,0BAA0B,EAAE,KAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM;iBAClF,CAAC,CAAC;aACJ;iBAAM;gBACL,KAAI,CAAC,QAAQ,CAAC;oBACZ,UAAU,EAAE,IAAI;oBAChB,aAAa,EAAE,IAAI;oBACnB,cAAc,EAAE,MAAM,CAAC,KAAK;oBAC5B,0BAA0B,EAAE,KAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM;iBAClF,CAAC,CAAC;aACJ;QACH,CAAC,CAAC;QAEM,cAAQ,GAAG,UAAC,MAAe;YACjC,IAAI,MAAM,CAAC,MAAM,EAAE;gBACT,IAAA,KAAqC,KAAI,CAAC,KAAK,yBAAf,EAAhC,wBAAwB,mBAAG,KAAK,KAAA,CAAgB;gBACxD,IAAI,wBAAwB,EAAE;oBAC5B,KAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;iBACxC;qBAAM;oBACL,KAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;iBACzC;gBACD,MAAM,CAAC,MAAM,EAAE,CAAC;aACjB;QACH,CAAC,CAAC;QAEM,0BAAoB,GAAG,UAAC,aAAkC;YAC1D,IAAA,KAA2D,KAAI,CAAC,KAAK,EAAnE,2BAA0B,EAA1B,mBAAmB,mBAAG,IAAI,KAAA,EAAE,SAAS,eAAA,EAAE,MAAM,YAAA,EAAE,KAAK,WAAe,CAAC;YAC5E,IAAM,wBAAwB,GAAkB,EAAE,CAAC;YACnD,IAAM,UAAU,GAAG,aAAa,CAAC,MAAO,EAAE;gBACxC,KAAK,EAAE,KAAM;gBACb,SAAS,WAAA;aACV,CAAC,CAAC;YACH,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,UAAC,MAA6B,EAAE,KAAa;gBAC5E,IAAM,gBAAgB,GAAG,KAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;gBACjE,wBAAwB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAClD,CAAC,CAAC,CAAC;YACH,IAAM,aAAa,GAAG,CACpB,oBAAC,SAAS,eACJ,CAAC,mBAAmB,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,IAChD,SAAS,EAAE,kBAAkB,CAAC,QAAQ,IAClC,KAAI,CAAC,KAAK,CAAC,yBAAyB,IACxC,SAAS,EAAE,UAAU,CAAC,aAAa,KAElC,wBAAwB,CACf,CACb,CAAC;YACF,OAAO,aAAa,CAAC;QACvB,CAAC,CAAC;QAEM,0BAAoB,GAAG,UAAC,OAAkB;YACxC,IAAA,KAA+B,KAAI,CAAC,KAAK,oBAAf,EAA1B,mBAAmB,mBAAG,IAAI,KAAA,CAAgB;YAClD,IAAM,KAAK,GAA0B,EAAE,CAAC;YACxC,OAAO,CAAC,OAAO,CAAC,UAAC,MAAe,EAAE,CAAS;gBACzC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAChF,CAAC,CAAC,CAAC;YACH,IAAM,kBAAkB,GAAwB,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;YAClE,IAAA,KAA6C,KAAI,CAAC,KAAK,EAArD,KAAK,WAAA,EAAE,SAAS,eAAA,EAAE,MAAM,YAAA,EAAE,YAAY,kBAAe,CAAC;YAC9D,IAAM,UAAU,GAAG,aAAa,CAAC,MAAO,EAAE;gBACxC,KAAK,EAAE,KAAM;gBACb,SAAS,WAAA;aACV,CAAC,CAAC;YACH,IAAM,cAAc,GAAG;gBACrB,iBAAiB,EAAE,KAAI,CAAC,oBAAoB;gBAC5C,UAAU,EAAE,kBAAkB;aAC/B,CAAC;YAEF,IAAM,cAAc,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC;YAC5D,mFAAmF;YACnF,IAAM,sBAAsB,GAAG;gBACrB,IAAA,KAAqC,KAAI,CAAC,KAAK,yBAAf,EAAhC,wBAAwB,mBAAG,KAAK,KAAA,CAAgB;gBACxD,IAAM,oBAAoB,GAAG,IAAI,CAC/B,OAAO,EACP,UAAC,MAAe;oBACd,OAAA,MAAM,CAAC,KAAK,KAAK,KAAI,CAAC,KAAK,CAAC,0BAA0B,IAAI,MAAM,CAAC,KAAK,KAAK,KAAI,CAAC,KAAK,CAAC,cAAc;gBAApG,CAAoG,CACvG,CAAC;gBACF,KAAI,CAAC,QAAQ,CACX;oBACE,kBAAkB,EAAE,KAAK;oBACzB,0BAA0B,EAAE,MAAM;oBAClC,eAAe,EAAE,EAAE;iBACpB,EACD;oBACE,IAAI,oBAAoB,EAAE;wBACxB,KAAI,CAAC,QAAQ,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE;4BAC9D,IAAI,oBAAoB,CAAC,MAAM,IAAI,CAAC,wBAAwB,EAAE;gCAC5D,oBAAoB,CAAC,MAAM,EAAE,CAAC;6BAC/B;4BACD,IAAI,KAAI,CAAC,KAAK,CAAC,sBAAsB,IAAI,wBAAwB,EAAE;gCACjE,KAAI,CAAC,KAAK,CAAC,sBAAsB,EAAE,CAAC;6BACrC;4BACD,KAAI,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE;gCACnC,IAAI,oBAAoB,CAAC,gBAAgB,EAAE;oCACzC,oBAAoB,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;iCAC7C;4BACH,CAAC,CAAC,CAAC;wBACL,CAAC,CAAC,CAAC;qBACJ;gBACH,CAAC,CACF,CAAC;YACJ,CAAC,CAAC;YACF,OAAO,CACL,oBAAC,SAAS,IACR,IAAI,EAAE,aAAa,CAAC,KAAK,EACzB,cAAc,EAAE,cAAc,EAC9B,kBAAkB,EAAE,IAAI;gBACxB,6CAA6C;gBAC7C,UAAU,EAAE,sBAAsB,EAClC,eAAe,EAAE,IAAI,EACrB,SAAS,EAAE,IAAI,EACf,aAAa,EAAE,KAAI,CAAC,iBAAiB,EACrC,MAAM,EAAE,UAAU,CAAC,kBAAkB,CAAC,eAAe,EACrD,gBAAgB,EAAE,GAAG,EACrB,MAAM,EAAE,KAAI,CAAC,aAAa;gBAE1B,sCACE,SAAS,EAAE,UAAU,CAAC,2BAA2B,EACjD,GAAG,EAAE,UAAC,QAAwB,IAAK,OAAA,CAAC,KAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,EAA/B,CAA+B,IAC9D,CAAC,mBAAmB,IAAI;oBAC1B,IAAI,EAAE,MAAM;oBACZ,eAAe,EAAE,KAAI,CAAC,KAAK,CAAC,kBAAkB;oBAC9C,YAAY,EAAK,KAAK,CAAC,MAAM,SAAI,cAAgB;iBAClD,CAAC,yBACiB,mBAAmB;oBAErC,KAAK,CAAC,MAAM;;oBAAG,cAAc,CAC1B,CACI,CACb,CAAC;QACJ,CAAC,CAAC;QAEM,uBAAiB,GAAG;YAC1B,KAAI,CAAC,QAAQ,CAAC,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,CAAC,CAAC;QAEM,wBAAkB,GAAG,UAAC,MAAe;YAC3C,IAAI,CAAC,KAAI,CAAC,KAAK,CAAC,aAAa,EAAE;gBAC7B,IAAI,MAAM,CAAC,WAAW,EAAE;oBACtB,KAAI,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;oBAClE,MAAM,CAAC,WAAW,EAAE,CAAC;iBACtB;aACF;QACH,CAAC,CAAC;QAEM,cAAQ,GAAG,UAAC,MAAe;YACjC,IAAI,CAAC,KAAI,CAAC,KAAK,CAAC,aAAa,EAAE;gBAC7B,IAAI,MAAM,CAAC,gBAAgB,EAAE;oBAC3B,KAAI,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC;oBAC7D,MAAM,CAAC,gBAAgB,EAAE,CAAC;iBAC3B;aACF;QACH,CAAC,CAAC;QAEM,mBAAa,GAAG,UAAC,IAA2B,EAAE,KAAc,EAAE,QAAkB;YAC9E,IAAA,KAA+B,KAAI,CAAC,KAAK,oBAAf,EAA1B,mBAAmB,mBAAG,IAAI,KAAA,CAAgB;YAClD,IAAM,MAAM,GAAY;gBACtB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;gBACvC,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;gBACnD,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC;YACF,IAAM,KAAK,GAAG,KAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YACnD,IAAA,KAA+B,KAAI,CAAC,KAAK,EAAvC,KAAK,WAAA,EAAE,SAAS,eAAA,EAAE,MAAM,YAAe,CAAC;YAChD,IAAM,UAAU,GAAG,aAAa,CAAC,MAAO,EAAE;gBACxC,KAAK,EAAE,KAAM;gBACb,SAAS,WAAA;gBACT,oBAAoB,EAAE,KAAK;gBAC3B,WAAW,EAAE,MAAM,CAAC,KAAK;gBACzB,QAAQ,EAAE,QAAQ;gBAClB,aAAa,EAAE,MAAM,CAAC,aAAa;gBACnC,sBAAsB,EAAE,MAAM,CAAC,sBAAsB;gBACrD,OAAO,EAAE,MAAM,CAAC,OAAO;aACxB,CAAC,CAAC;YACH,IAAM,cAAc,GAAG;gBACrB,KAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACxB,CAAC,CAAC;YACF,IAAM,cAAc,GAAG;gBACrB,KAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAClC,CAAC,CAAC;YACF,IAAM,UAAU,GAAG;gBACjB,KAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACxB,CAAC,CAAC;YACF,IAAM,KAAK,GAAG,KAAI,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;YACxD,OAAO,CACL,2CACM,CAAC,mBAAmB,IAAI;gBAC1B,eAAe,EAAE,KAAI,CAAC,KAAK,CAAC,cAAc,KAAK,MAAM,CAAC,KAAK;gBAC3D,IAAI,EAAE,QAAQ;gBACd,YAAY,EAAE,MAAM,CAAC,KAAK;gBAC1B,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC;gBACpC,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC;aACvC,CAAC,EACE,CAAC,IAAI,CAAC,iBAAiB,iBAAS,IAAI,CAAC,iBAAiB,CAAE,CAAC,IAC7D,GAAG,EAAE,KAAK,EACV,SAAS,EAAE,UAAU,CAAC,MAAM,EAC5B,OAAO,EAAE,cAAc,EACvB,WAAW,EAAE,cAAc,EAC3B,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,UAAU,uBACC,mBAAmB;gBAGrC,KAAK;gBACN,6BAAK,SAAS,EAAE,UAAU,CAAC,IAAI,IAAG,MAAM,CAAC,KAAK,CAAO,CAC9C,CACV,CAAC;QACJ,CAAC,CAAC;QA5VA,KAAI,CAAC,KAAK,GAAG;YACX,cAAc,EAAE,MAAM;YACtB,aAAa,EAAE,KAAK;YACpB,UAAU,EAAE,KAAK;YACjB,kBAAkB,EAAE,KAAK;YACzB,0BAA0B,EAAE,MAAM;YAClC,eAAe,EAAE,EAAE;SACpB,CAAC;;IACJ,CAAC;IAEM,wCAAkB,GAAzB,UAA0B,SAAwB;QAChD,IAAI,SAAS,CAAC,cAAc,KAAK,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE;YAC1D,IAAI,CAAC,QAAQ,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,cAAe,EAAE,CAAC,CAAC;SAC/D;IACH,CAAC;IAEM,4BAAM,GAAb;QACQ,IAAA,KAA+B,IAAI,CAAC,KAAK,EAAvC,KAAK,WAAA,EAAE,SAAS,eAAA,EAAE,MAAM,YAAe,CAAC;QAChD,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC,MAAO,EAAE;YACxC,KAAK,EAAE,KAAM;YACb,SAAS,WAAA;SACV,CAAC,CAAC;QACH,IAAM,YAAY,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAC1C,OAAO,CACL,6BAAK,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,IAClC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAC7B,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CACjC,CAAC,CAAC,CAAC,CACF,oBAAC,WAAW,IACV,IAAI,EAAE,YAAY,EAClB,YAAY,EAAE,IAAI,CAAC,aAAa,EAChC,YAAY,EAAE,IAAI,CAAC,aAAa,EAChC,UAAU,EAAE,IAAI,CAAC,WAAW,GAC5B,CACH,CACG,CACP,CAAC;IACJ,CAAC;IAEO,mCAAa,GAArB;QAAA,iBA4BC;QA3BS,IAAA,KAA+B,IAAI,CAAC,KAAK,oBAAf,EAA1B,mBAAmB,mBAAG,IAAI,KAAA,CAAgB;QAClD,IAAM,SAAS,GAAkB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAC,MAAe,EAAE,KAAa;YACrF,6BACK,CAAC,mBAAmB,IAAI;gBACzB,iBAAiB,EAAE,cAAc,CAA0C,MAAM,EAAE,gBAAgB,EAAE;oBACnG,OAAO;iBACR,CAAC;gBACF,cAAc,EAAE,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM;gBACzC,eAAe,EAAE,KAAK,GAAG,CAAC;aAC3B,CAAC,KACF,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,MAAM,EAAE,MAAM,CAAC,MAAO,EACtB,WAAW,EAAE,MAAM,CAAC,WAAY,EAChC,gBAAgB,EAAE,MAAM,CAAC,gBAAiB,EAC1C,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,aAAa,EAAE,MAAM,CAAC,aAAa,EACnC,sBAAsB,EAAE,MAAM,CAAC,sBAAsB,EACrD,OAAO,EAAE,MAAM,CAAC,OAAO,EACvB,GAAG,EAAE,KAAK,IACV;QACJ,CAAC,CAAC,CAAC;QACH,IAAM,MAAM,GAAwB;YAClC,OAAO,EAAE,SAAS;YAClB,QAAQ,EAAE,EAAE;SACb,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IA2RO,+BAAS,GAAjB,UACE,UAA8C,EAC9C,MAAe,EACf,KAAa;QAEb,IAAM,cAAc,GAAoC;YACtD,SAAS,EAAE,UAAU,CAAC,KAAK;SAC5B,CAAC;QACF,IAAM,aAAa,GAAoC;YACrD,IAAI,EAAE,KAAK;YACX,WAAW,EAAE,CAAC;YACd,MAAM,EAAE,MAAM,CAAC,KAAK;SACrB,CAAC;QACF,OAAO,CACL,oBAAC,KAAK,IACJ,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,aAAa,EACxB,KAAK,EAAE,MAAM,CAAC,KAAoB,EAClC,kBAAkB,EAAE,UAAU,CAAC,IAAI,GACnC,CACH,CAAC;IACJ,CAAC;IAEO,+BAAS,GAAjB,UAAkB,KAAa,EAAE,KAAa;QACtC,IAAA,KAA8C,IAAI,CAAC,KAAK,EAAtD,KAAK,WAAA,EAAE,gCAAgC,EAAhC,wBAAwB,mBAAG,KAAK,KAAe,CAAC;QACvD,IAAA,OAAO,GAAK,KAAM,QAAX,CAAY;QAC3B,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,gEAAgE;QAChE,sEAAsE;QACtE,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,KAAK,KAAK,EAAE;YAChE,WAAW,GAAG,KAAK,CAAC;SACrB,CAAC,0FAA0F;aACvF,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,KAAK,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,KAAK,KAAK,EAAE;YAC7G,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC;SAC7B,CAAC,qFAAqF;QACvF,kFAAkF;aAC7E,IAAI,CAAC,CAAC,wBAAwB,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE;YACjH,WAAW,GAAG,KAAK,CAAC;SACrB,CAAC,mFAAmF;QACrF,2CAA2C;aACtC,IACH,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,KAAK,MAAM,CAAC;YACnE,IAAI,CAAC,KAAK,CAAC,cAAc,KAAK,KAAK;YACnC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,IAAI,CAAC,EACtC;YACA,WAAW,GAAG,KAAK,CAAC;SACrB;aAAM;YACL,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC;SAC7B;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IACH,kBAAC;AAAD,CAAC,AAvZD,CAAiC,KAAK,CAAC,SAAS,GAuZ/C","sourcesContent":["import * as React from 'react';\n\nimport { IContextualMenuItem } from '@fluentui/react/lib/ContextualMenu';\nimport { HoverCard, HoverCardType, IExpandingCardProps } from '@fluentui/react/lib/HoverCard';\nimport { classNamesFunction, find, getNativeProps, buttonProperties } from '@fluentui/react/lib/Utilities';\nimport { ResizeGroup } from '@fluentui/react/lib/ResizeGroup';\nimport { IProcessedStyleSet } from '@fluentui/react/lib/Styling';\nimport { OverflowSet, IOverflowSetItemProps } from '@fluentui/react/lib/OverflowSet';\nimport { FocusZone, FocusZoneDirection } from '@fluentui/react-focus';\nimport {\n ILegend,\n ILegendsProps,\n LegendShape,\n ILegendsStyles,\n ILegendStyleProps,\n ILegendOverflowData,\n} from './Legends.types';\nimport { Shape } from './shape';\n\nimport { silceOrAppendToArray } from '../../utilities/utilities';\n\nconst getClassNames = classNamesFunction<ILegendStyleProps, ILegendsStyles>();\n\n// This is an internal interface used for rendering the legends with unique key\ninterface ILegendItem extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n name?: string;\n title: string;\n action: VoidFunction;\n hoverAction: VoidFunction;\n onMouseOutAction: VoidFunction;\n color: string;\n shape?: LegendShape;\n key: number;\n opacity?: number;\n stripePattern?: boolean;\n isLineLegendInBarChart?: boolean;\n}\n\nexport interface ILegendState {\n selectedLegend: string;\n selecetedLegendInHoverCard: string;\n selectedState: boolean;\n hoverState: boolean;\n isHoverCardVisible: boolean;\n selectedLegends: string[];\n}\nexport class LegendsBase extends React.Component<ILegendsProps, ILegendState> {\n private _hoverCardRef: HTMLDivElement;\n private _classNames: IProcessedStyleSet<ILegendsStyles>;\n\n public constructor(props: ILegendsProps) {\n super(props);\n this.state = {\n selectedLegend: 'none',\n selectedState: false,\n hoverState: false,\n isHoverCardVisible: false,\n selecetedLegendInHoverCard: 'none',\n selectedLegends: [],\n };\n }\n\n public componentDidUpdate(prevProps: ILegendsProps) {\n if (prevProps.selectedLegend !== this.props.selectedLegend) {\n this.setState({ selectedLegend: this.props.selectedLegend! });\n }\n }\n\n public render(): JSX.Element {\n const { theme, className, styles } = this.props;\n this._classNames = getClassNames(styles!, {\n theme: theme!,\n className,\n });\n const dataToRender = this._generateData();\n return (\n <div className={this._classNames.root}>\n {this.props.enabledWrapLines ? (\n this._onRenderData(dataToRender)\n ) : (\n <ResizeGroup\n data={dataToRender}\n onReduceData={this._onReduceData}\n onRenderData={this._onRenderData}\n onGrowData={this._onGrowData}\n />\n )}\n </div>\n );\n }\n\n private _generateData(): ILegendOverflowData {\n const { allowFocusOnLegends = true } = this.props;\n const dataItems: ILegendItem[] = this.props.legends.map((legend: ILegend, index: number) => {\n return {\n ...(allowFocusOnLegends && {\n nativeButtonProps: getNativeProps<React.HTMLAttributes<HTMLButtonElement>>(legend, buttonProperties, [\n 'title',\n ]),\n 'aria-setsize': this.props.legends.length,\n 'aria-posinset': index + 1,\n }),\n title: legend.title,\n action: legend.action!,\n hoverAction: legend.hoverAction!,\n onMouseOutAction: legend.onMouseOutAction!,\n color: legend.color,\n shape: legend.shape,\n stripePattern: legend.stripePattern,\n isLineLegendInBarChart: legend.isLineLegendInBarChart,\n opacity: legend.opacity,\n key: index,\n };\n });\n const result: ILegendOverflowData = {\n primary: dataItems,\n overflow: [],\n };\n return result;\n }\n\n private _onRenderData = (data: IOverflowSetItemProps | ILegendOverflowData): JSX.Element => {\n const { overflowProps, allowFocusOnLegends = true } = this.props;\n const rootStyles = {\n root: {\n justifyContent: this.props.centerLegends ? 'center' : 'unset',\n flexWrap: 'wrap',\n },\n };\n return (\n <OverflowSet\n {...(allowFocusOnLegends && { role: 'listbox', 'aria-label': 'Legends' })}\n items={data.primary}\n overflowItems={data.overflow}\n onRenderItem={this._renderButton}\n onRenderOverflowButton={this._renderOverflowItems}\n {...overflowProps}\n styles={{ ...rootStyles, ...overflowProps?.styles }}\n />\n );\n };\n\n private _onReduceData = (currentdata: IOverflowSetItemProps): {} | void => {\n if (currentdata.primary.length === 0) {\n return;\n }\n const overflow = [...currentdata.primary.slice(-1), ...currentdata.overflow];\n const primary = currentdata.primary.slice(0, -1);\n return { primary, overflow };\n };\n\n private _onGrowData = (currentdata: IOverflowSetItemProps): {} | void => {\n if (currentdata.overflow.length === 0) {\n return;\n }\n const overflow = currentdata.overflow.slice(1);\n const primary = [...currentdata.primary, ...currentdata.overflow.slice(0, 1)];\n return { primary, overflow };\n };\n\n /**\n * This function will get called when there is an ability to\n * select multiple legends\n * @param legend ILegend\n */\n private _canSelectMultipleLegends = (legend: ILegend): void => {\n const selectedLegends = silceOrAppendToArray(this.state.selectedLegends, legend.title);\n this.setState({\n //check if user selected all legends then empty it get the default behaviour\n selectedLegends: selectedLegends.length === this.props.legends.length ? [] : selectedLegends,\n // make selectedState to false if none or all the legends selected\n selectedState:\n selectedLegends.length === 0 || selectedLegends.length === this.props.legends.length ? false : true,\n selecetedLegendInHoverCard: this.state.isHoverCardVisible ? legend.title : 'none',\n selectedLegend: 'none',\n hoverState: false,\n });\n };\n\n /**\n * This function will get called when there is\n * ability to select only single legend\n * @param legend ILegend\n */\n\n private _canSelectOnlySingleLegend = (legend: ILegend): void => {\n if (this.state.selectedState === true && this.state.selectedLegend === legend.title) {\n this.setState({\n selectedLegend: 'none',\n selectedState: false,\n selecetedLegendInHoverCard: this.state.isHoverCardVisible ? legend.title : 'none',\n });\n } else {\n this.setState({\n hoverState: true,\n selectedState: true,\n selectedLegend: legend.title,\n selecetedLegendInHoverCard: this.state.isHoverCardVisible ? legend.title : 'none',\n });\n }\n };\n\n private _onClick = (legend: ILegend): void => {\n if (legend.action) {\n const { canSelectMultipleLegends = false } = this.props;\n if (canSelectMultipleLegends) {\n this._canSelectMultipleLegends(legend);\n } else {\n this._canSelectOnlySingleLegend(legend);\n }\n legend.action();\n }\n };\n\n private _onRenderCompactCard = (expandingCard: IExpandingCardProps): JSX.Element => {\n const { allowFocusOnLegends = true, className, styles, theme } = this.props;\n const overflowHoverCardLegends: JSX.Element[] = [];\n const classNames = getClassNames(styles!, {\n theme: theme!,\n className,\n });\n expandingCard.renderData.forEach((legend: IOverflowSetItemProps, index: number) => {\n const hoverCardElement = this._renderButton(legend, index, true);\n overflowHoverCardLegends.push(hoverCardElement);\n });\n const hoverCardData = (\n <FocusZone\n {...(allowFocusOnLegends && { role: 'listbox' })}\n direction={FocusZoneDirection.vertical}\n {...this.props.focusZonePropsInHoverCard}\n className={classNames.hoverCardRoot}\n >\n {overflowHoverCardLegends}\n </FocusZone>\n );\n return hoverCardData;\n };\n\n private _renderOverflowItems = (legends: ILegend[]) => {\n const { allowFocusOnLegends = true } = this.props;\n const items: IContextualMenuItem[] = [];\n legends.forEach((legend: ILegend, i: number) => {\n items.push({ key: i.toString(), name: legend.title, onClick: legend.action });\n });\n const renderOverflowData: IExpandingCardProps = { renderData: legends };\n const { theme, className, styles, overflowText } = this.props;\n const classNames = getClassNames(styles!, {\n theme: theme!,\n className,\n });\n const plainCardProps = {\n onRenderPlainCard: this._onRenderCompactCard,\n renderData: renderOverflowData,\n };\n\n const overflowString = overflowText ? overflowText : 'more';\n // execute similar to \"_onClick\" and \"_onLeave\" logic at HoverCard onCardHide event\n const onHoverCardHideHandler = () => {\n const { canSelectMultipleLegends = false } = this.props;\n const selectedOverflowItem = find(\n legends,\n (legend: ILegend) =>\n legend.title === this.state.selecetedLegendInHoverCard || legend.title === this.state.selectedLegend,\n );\n this.setState(\n {\n isHoverCardVisible: false,\n selecetedLegendInHoverCard: 'none',\n selectedLegends: [],\n },\n () => {\n if (selectedOverflowItem) {\n this.setState({ selectedLegend: 'none', selectedState: false }, () => {\n if (selectedOverflowItem.action && !canSelectMultipleLegends) {\n selectedOverflowItem.action();\n }\n if (this.props.onLegendHoverCardLeave && canSelectMultipleLegends) {\n this.props.onLegendHoverCardLeave();\n }\n this.setState({ hoverState: false }, () => {\n if (selectedOverflowItem.onMouseOutAction) {\n selectedOverflowItem.onMouseOutAction(true);\n }\n });\n });\n }\n },\n );\n };\n return (\n <HoverCard\n type={HoverCardType.plain}\n plainCardProps={plainCardProps}\n instantOpenOnClick={true}\n // eslint-disable-next-line react/jsx-no-bind\n onCardHide={onHoverCardHideHandler}\n setInitialFocus={true}\n trapFocus={true}\n onCardVisible={this._hoverCardVisible}\n styles={classNames.subComponentStyles.hoverCardStyles}\n cardDismissDelay={300}\n target={this._hoverCardRef}\n >\n <div\n className={classNames.overflowIndicationTextStyle}\n ref={(rootElem: HTMLDivElement) => (this._hoverCardRef = rootElem)}\n {...(allowFocusOnLegends && {\n role: 'link',\n 'aria-expanded': this.state.isHoverCardVisible,\n 'aria-label': `${items.length} ${overflowString}`,\n })}\n data-is-focusable={allowFocusOnLegends}\n >\n {items.length} {overflowString}\n </div>\n </HoverCard>\n );\n };\n\n private _hoverCardVisible = () => {\n this.setState({ isHoverCardVisible: true });\n };\n\n private _onHoverOverLegend = (legend: ILegend) => {\n if (!this.state.selectedState) {\n if (legend.hoverAction) {\n this.setState({ hoverState: true, selectedLegend: legend.title });\n legend.hoverAction();\n }\n }\n };\n\n private _onLeave = (legend: ILegend) => {\n if (!this.state.selectedState) {\n if (legend.onMouseOutAction) {\n this.setState({ hoverState: false, selectedLegend: 'none' });\n legend.onMouseOutAction();\n }\n }\n };\n\n private _renderButton = (data: IOverflowSetItemProps, index?: number, overflow?: boolean) => {\n const { allowFocusOnLegends = true } = this.props;\n const legend: ILegend = {\n title: data.title,\n color: data.color,\n shape: data.shape,\n action: data.action,\n hoverAction: data.hoverAction,\n onMouseOutAction: data.onMouseOutAction,\n stripePattern: data.stripePattern,\n isLineLegendInBarChart: data.isLineLegendInBarChart,\n opacity: data.opacity,\n };\n const color = this._getColor(legend.title, legend.color);\n const { theme, className, styles } = this.props;\n const classNames = getClassNames(styles!, {\n theme: theme!,\n className,\n colorOnSelectedState: color,\n borderColor: legend.color,\n overflow: overflow,\n stripePattern: legend.stripePattern,\n isLineLegendInBarChart: legend.isLineLegendInBarChart,\n opacity: legend.opacity,\n });\n const onClickHandler = () => {\n this._onClick(legend);\n };\n const onHoverHandler = () => {\n this._onHoverOverLegend(legend);\n };\n const onMouseOut = () => {\n this._onLeave(legend);\n };\n const shape = this._getShape(classNames, legend, color);\n return (\n <button\n {...(allowFocusOnLegends && {\n 'aria-selected': this.state.selectedLegend === legend.title,\n role: 'option',\n 'aria-label': legend.title,\n 'aria-setsize': data['aria-setsize'],\n 'aria-posinset': data['aria-posinset'],\n })}\n {...(data.nativeButtonProps && { ...data.nativeButtonProps })}\n key={index}\n className={classNames.legend}\n onClick={onClickHandler}\n onMouseOver={onHoverHandler}\n onMouseOut={onMouseOut}\n onFocus={onHoverHandler}\n onBlur={onMouseOut}\n data-is-focusable={allowFocusOnLegends}\n /* eslint-enable react/jsx-no-bind */\n >\n {shape}\n <div className={classNames.text}>{legend.title}</div>\n </button>\n );\n };\n\n private _getShape(\n classNames: IProcessedStyleSet<ILegendsStyles>,\n legend: ILegend,\n color: string,\n ): React.ReactNode | string {\n const svgParentProps: React.SVGAttributes<SVGElement> = {\n className: classNames.shape,\n };\n const svgChildProps: React.SVGAttributes<SVGElement> = {\n fill: color,\n strokeWidth: 2,\n stroke: legend.color,\n };\n return (\n <Shape\n svgProps={svgParentProps}\n pathProps={svgChildProps}\n shape={legend.shape as LegendShape}\n classNameForNonSvg={classNames.rect}\n />\n );\n }\n\n private _getColor(title: string, color: string): string {\n const { theme, canSelectMultipleLegends = false } = this.props;\n const { palette } = theme!;\n let legendColor = color;\n // below if statement will get executed for the hovered legend.\n // (which is also the slected legend see fucntion:-_onHoverOverLegend)\n if (this.state.hoverState && this.state.selectedLegend === title) {\n legendColor = color;\n } // below esle if statement will get executed for the unselected-legend which is hovered\n else if (this.state.hoverState && this.state.selectedLegend !== 'none' && this.state.selectedLegend !== title) {\n legendColor = palette.white;\n } // below else if statement will get executed if the legends are in the selected state\n // this is will only get executed when we have ability to select multiple legends\n else if (!!canSelectMultipleLegends && this.state.selectedState && this.state.selectedLegends.indexOf(title) > -1) {\n legendColor = color;\n } // below else if statement will get executed when no legend is selected and hovered\n //(for example:- initial render of legends)\n else if (\n (!this.state.selectedState && this.state.selectedLegend === 'none') ||\n this.state.selectedLegend === title ||\n this.state.selectedLegends.length <= 0\n ) {\n legendColor = color;\n } else {\n legendColor = palette.white;\n }\n return legendColor;\n }\n}\n"]}
1
+ {"version":3,"file":"Legends.base.js","sourceRoot":"../src/","sources":["components/Legends/Legends.base.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\n\nimport { IContextualMenuItem } from '@fluentui/react/lib/ContextualMenu';\nimport { HoverCard, HoverCardType, IExpandingCardProps } from '@fluentui/react/lib/HoverCard';\nimport { classNamesFunction, find, getNativeProps, buttonProperties } from '@fluentui/react/lib/Utilities';\nimport { ResizeGroup } from '@fluentui/react/lib/ResizeGroup';\nimport { IProcessedStyleSet } from '@fluentui/react/lib/Styling';\nimport { OverflowSet, IOverflowSetItemProps } from '@fluentui/react/lib/OverflowSet';\nimport { FocusZone, FocusZoneDirection } from '@fluentui/react-focus';\nimport {\n ILegend,\n ILegendsProps,\n LegendShape,\n ILegendsStyles,\n ILegendStyleProps,\n ILegendOverflowData,\n} from './Legends.types';\nimport { Shape } from './shape';\n\nimport { silceOrAppendToArray } from '../../utilities/utilities';\n\nconst getClassNames = classNamesFunction<ILegendStyleProps, ILegendsStyles>();\n\n// This is an internal interface used for rendering the legends with unique key\ninterface ILegendItem extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n name?: string;\n title: string;\n action: VoidFunction;\n hoverAction: VoidFunction;\n onMouseOutAction: VoidFunction;\n color: string;\n shape?: LegendShape;\n key: number;\n opacity?: number;\n stripePattern?: boolean;\n isLineLegendInBarChart?: boolean;\n}\n\nexport interface ILegendState {\n selectedLegend: string;\n selecetedLegendInHoverCard: string;\n selectedState: boolean;\n hoverState: boolean;\n isHoverCardVisible: boolean;\n selectedLegends: string[];\n}\nexport class LegendsBase extends React.Component<ILegendsProps, ILegendState> {\n private _hoverCardRef: HTMLDivElement;\n private _classNames: IProcessedStyleSet<ILegendsStyles>;\n\n public constructor(props: ILegendsProps) {\n super(props);\n this.state = {\n selectedLegend: 'none',\n selectedState: false,\n hoverState: false,\n isHoverCardVisible: false,\n selecetedLegendInHoverCard: 'none',\n selectedLegends: [],\n };\n }\n\n public componentDidUpdate(prevProps: ILegendsProps) {\n if (prevProps.selectedLegend !== this.props.selectedLegend) {\n this.setState({ selectedLegend: this.props.selectedLegend! });\n }\n }\n\n public render(): JSX.Element {\n const { theme, className, styles } = this.props;\n this._classNames = getClassNames(styles!, {\n theme: theme!,\n className,\n });\n const dataToRender = this._generateData();\n return (\n <div className={this._classNames.root}>\n {this.props.enabledWrapLines ? (\n this._onRenderData(dataToRender)\n ) : (\n <ResizeGroup\n data={dataToRender}\n onReduceData={this._onReduceData}\n onRenderData={this._onRenderData}\n onGrowData={this._onGrowData}\n />\n )}\n </div>\n );\n }\n\n private _generateData(): ILegendOverflowData {\n const { allowFocusOnLegends = true } = this.props;\n const dataItems: ILegendItem[] = this.props.legends.map((legend: ILegend, index: number) => {\n return {\n ...(allowFocusOnLegends && {\n nativeButtonProps: getNativeProps<React.HTMLAttributes<HTMLButtonElement>>(legend, buttonProperties, [\n 'title',\n ]),\n 'aria-setsize': this.props.legends.length,\n 'aria-posinset': index + 1,\n }),\n title: legend.title,\n action: legend.action!,\n hoverAction: legend.hoverAction!,\n onMouseOutAction: legend.onMouseOutAction!,\n color: legend.color,\n shape: legend.shape,\n stripePattern: legend.stripePattern,\n isLineLegendInBarChart: legend.isLineLegendInBarChart,\n opacity: legend.opacity,\n key: index,\n };\n });\n const result: ILegendOverflowData = {\n primary: dataItems,\n overflow: [],\n };\n return result;\n }\n\n private _onRenderData = (data: IOverflowSetItemProps | ILegendOverflowData): JSX.Element => {\n const { overflowProps, allowFocusOnLegends = true } = this.props;\n const rootStyles = {\n root: {\n justifyContent: this.props.centerLegends ? 'center' : 'unset',\n flexWrap: 'wrap',\n },\n };\n return (\n <OverflowSet\n {...(allowFocusOnLegends && { role: 'listbox', 'aria-label': 'Legends' })}\n items={data.primary}\n overflowItems={data.overflow}\n onRenderItem={this._renderButton}\n onRenderOverflowButton={this._renderOverflowItems}\n {...overflowProps}\n styles={{ ...rootStyles, ...overflowProps?.styles }}\n />\n );\n };\n\n private _onReduceData = (currentdata: IOverflowSetItemProps): {} | void => {\n if (currentdata.primary.length === 0) {\n return;\n }\n const overflow = [...currentdata.primary.slice(-1), ...currentdata.overflow];\n const primary = currentdata.primary.slice(0, -1);\n return { primary, overflow };\n };\n\n private _onGrowData = (currentdata: IOverflowSetItemProps): {} | void => {\n if (currentdata.overflow.length === 0) {\n return;\n }\n const overflow = currentdata.overflow.slice(1);\n const primary = [...currentdata.primary, ...currentdata.overflow.slice(0, 1)];\n return { primary, overflow };\n };\n\n /**\n * This function will get called when there is an ability to\n * select multiple legends\n * @param legend ILegend\n */\n private _canSelectMultipleLegends = (legend: ILegend): void => {\n const selectedLegends = silceOrAppendToArray(this.state.selectedLegends, legend.title);\n this.setState({\n //check if user selected all legends then empty it get the default behaviour\n selectedLegends: selectedLegends.length === this.props.legends.length ? [] : selectedLegends,\n // make selectedState to false if none or all the legends selected\n selectedState:\n selectedLegends.length === 0 || selectedLegends.length === this.props.legends.length ? false : true,\n selecetedLegendInHoverCard: this.state.isHoverCardVisible ? legend.title : 'none',\n selectedLegend: 'none',\n hoverState: false,\n });\n };\n\n /**\n * This function will get called when there is\n * ability to select only single legend\n * @param legend ILegend\n */\n\n private _canSelectOnlySingleLegend = (legend: ILegend): void => {\n if (this.state.selectedState === true && this.state.selectedLegend === legend.title) {\n this.setState({\n selectedLegend: 'none',\n selectedState: false,\n selecetedLegendInHoverCard: this.state.isHoverCardVisible ? legend.title : 'none',\n });\n } else {\n this.setState({\n hoverState: true,\n selectedState: true,\n selectedLegend: legend.title,\n selecetedLegendInHoverCard: this.state.isHoverCardVisible ? legend.title : 'none',\n });\n }\n };\n\n private _onClick = (legend: ILegend): void => {\n if (legend.action) {\n const { canSelectMultipleLegends = false } = this.props;\n if (canSelectMultipleLegends) {\n this._canSelectMultipleLegends(legend);\n } else {\n this._canSelectOnlySingleLegend(legend);\n }\n legend.action();\n }\n };\n\n private _onRenderCompactCard = (expandingCard: IExpandingCardProps): JSX.Element => {\n const { allowFocusOnLegends = true, className, styles, theme } = this.props;\n const overflowHoverCardLegends: JSX.Element[] = [];\n const classNames = getClassNames(styles!, {\n theme: theme!,\n className,\n });\n expandingCard.renderData.forEach((legend: IOverflowSetItemProps, index: number) => {\n const hoverCardElement = this._renderButton(legend, index, true);\n overflowHoverCardLegends.push(hoverCardElement);\n });\n const hoverCardData = (\n <FocusZone\n {...(allowFocusOnLegends && { role: 'listbox' })}\n direction={FocusZoneDirection.vertical}\n {...this.props.focusZonePropsInHoverCard}\n className={classNames.hoverCardRoot}\n >\n {overflowHoverCardLegends}\n </FocusZone>\n );\n return hoverCardData;\n };\n\n private _renderOverflowItems = (legends: ILegend[]) => {\n const { allowFocusOnLegends = true } = this.props;\n const items: IContextualMenuItem[] = [];\n legends.forEach((legend: ILegend, i: number) => {\n items.push({ key: i.toString(), name: legend.title, onClick: legend.action });\n });\n const renderOverflowData: IExpandingCardProps = { renderData: legends };\n const { theme, className, styles, overflowText } = this.props;\n const classNames = getClassNames(styles!, {\n theme: theme!,\n className,\n });\n const plainCardProps = {\n onRenderPlainCard: this._onRenderCompactCard,\n renderData: renderOverflowData,\n };\n\n const overflowString = overflowText ? overflowText : 'more';\n // execute similar to \"_onClick\" and \"_onLeave\" logic at HoverCard onCardHide event\n const onHoverCardHideHandler = () => {\n const { canSelectMultipleLegends = false } = this.props;\n const selectedOverflowItem = find(\n legends,\n (legend: ILegend) =>\n legend.title === this.state.selecetedLegendInHoverCard || legend.title === this.state.selectedLegend,\n );\n this.setState(\n {\n isHoverCardVisible: false,\n selecetedLegendInHoverCard: 'none',\n selectedLegends: [],\n },\n () => {\n if (selectedOverflowItem) {\n this.setState({ selectedLegend: 'none', selectedState: false }, () => {\n if (selectedOverflowItem.action && !canSelectMultipleLegends) {\n selectedOverflowItem.action();\n }\n if (this.props.onLegendHoverCardLeave && canSelectMultipleLegends) {\n this.props.onLegendHoverCardLeave();\n }\n this.setState({ hoverState: false }, () => {\n if (selectedOverflowItem.onMouseOutAction) {\n selectedOverflowItem.onMouseOutAction(true);\n }\n });\n });\n }\n },\n );\n };\n return (\n <HoverCard\n type={HoverCardType.plain}\n plainCardProps={plainCardProps}\n instantOpenOnClick={true}\n // eslint-disable-next-line react/jsx-no-bind\n onCardHide={onHoverCardHideHandler}\n setInitialFocus={true}\n trapFocus={true}\n onCardVisible={this._hoverCardVisible}\n styles={classNames.subComponentStyles.hoverCardStyles}\n cardDismissDelay={300}\n target={this._hoverCardRef}\n >\n <div\n className={classNames.overflowIndicationTextStyle}\n ref={(rootElem: HTMLDivElement) => (this._hoverCardRef = rootElem)}\n {...(allowFocusOnLegends && {\n role: 'link',\n 'aria-expanded': this.state.isHoverCardVisible,\n 'aria-label': `${items.length} ${overflowString}`,\n })}\n data-is-focusable={allowFocusOnLegends}\n >\n {items.length} {overflowString}\n </div>\n </HoverCard>\n );\n };\n\n private _hoverCardVisible = () => {\n this.setState({ isHoverCardVisible: true });\n };\n\n private _onHoverOverLegend = (legend: ILegend) => {\n if (!this.state.selectedState) {\n if (legend.hoverAction) {\n this.setState({ hoverState: true, selectedLegend: legend.title });\n legend.hoverAction();\n }\n }\n };\n\n private _onLeave = (legend: ILegend) => {\n if (!this.state.selectedState) {\n if (legend.onMouseOutAction) {\n this.setState({ hoverState: false, selectedLegend: 'none' });\n legend.onMouseOutAction();\n }\n }\n };\n\n private _renderButton = (data: IOverflowSetItemProps, index?: number, overflow?: boolean) => {\n const { allowFocusOnLegends = true } = this.props;\n const legend: ILegend = {\n title: data.title,\n color: data.color,\n shape: data.shape,\n action: data.action,\n hoverAction: data.hoverAction,\n onMouseOutAction: data.onMouseOutAction,\n stripePattern: data.stripePattern,\n isLineLegendInBarChart: data.isLineLegendInBarChart,\n opacity: data.opacity,\n };\n const color = this._getColor(legend.title, legend.color);\n const { theme, className, styles } = this.props;\n const classNames = getClassNames(styles!, {\n theme: theme!,\n className,\n colorOnSelectedState: color,\n borderColor: legend.color,\n overflow: overflow,\n stripePattern: legend.stripePattern,\n isLineLegendInBarChart: legend.isLineLegendInBarChart,\n opacity: legend.opacity,\n });\n const onClickHandler = () => {\n this._onClick(legend);\n };\n const onHoverHandler = () => {\n this._onHoverOverLegend(legend);\n };\n const onMouseOut = () => {\n this._onLeave(legend);\n };\n const shape = this._getShape(classNames, legend, color);\n return (\n <button\n {...(allowFocusOnLegends && {\n 'aria-selected': this.state.selectedLegend === legend.title,\n role: 'option',\n 'aria-label': `${legend.title} selected`,\n 'aria-setsize': data['aria-setsize'],\n 'aria-posinset': data['aria-posinset'],\n })}\n {...(data.nativeButtonProps && { ...data.nativeButtonProps })}\n key={index}\n className={classNames.legend}\n onClick={onClickHandler}\n onMouseOver={onHoverHandler}\n onMouseOut={onMouseOut}\n onFocus={onHoverHandler}\n onBlur={onMouseOut}\n data-is-focusable={allowFocusOnLegends}\n /* eslint-enable react/jsx-no-bind */\n >\n {shape}\n <div className={classNames.text}>{legend.title}</div>\n </button>\n );\n };\n\n private _getShape(\n classNames: IProcessedStyleSet<ILegendsStyles>,\n legend: ILegend,\n color: string,\n ): React.ReactNode | string {\n const svgParentProps: React.SVGAttributes<SVGElement> = {\n className: classNames.shape,\n };\n const svgChildProps: React.SVGAttributes<SVGElement> = {\n fill: color,\n strokeWidth: 2,\n stroke: legend.color,\n };\n return (\n <Shape\n svgProps={svgParentProps}\n pathProps={svgChildProps}\n shape={legend.shape as LegendShape}\n classNameForNonSvg={classNames.rect}\n />\n );\n }\n\n private _getColor(title: string, color: string): string {\n const { theme, canSelectMultipleLegends = false } = this.props;\n const { palette } = theme!;\n let legendColor = color;\n // below if statement will get executed for the hovered legend.\n // (which is also the slected legend see fucntion:-_onHoverOverLegend)\n if (this.state.hoverState && this.state.selectedLegend === title) {\n legendColor = color;\n } // below esle if statement will get executed for the unselected-legend which is hovered\n else if (this.state.hoverState && this.state.selectedLegend !== 'none' && this.state.selectedLegend !== title) {\n legendColor = palette.white;\n } // below else if statement will get executed if the legends are in the selected state\n // this is will only get executed when we have ability to select multiple legends\n else if (!!canSelectMultipleLegends && this.state.selectedState && this.state.selectedLegends.indexOf(title) > -1) {\n legendColor = color;\n } // below else if statement will get executed when no legend is selected and hovered\n //(for example:- initial render of legends)\n else if (\n (!this.state.selectedState && this.state.selectedLegend === 'none') ||\n this.state.selectedLegend === title ||\n this.state.selectedLegends.length <= 0\n ) {\n legendColor = color;\n } else {\n legendColor = palette.white;\n }\n return legendColor;\n }\n}\n"]}
@@ -32,6 +32,7 @@ export var getStyles = function (props) {
32
32
  border: 'none',
33
33
  padding: '8px',
34
34
  background: 'none',
35
+ textTransform: 'capitalize',
35
36
  },
36
37
  ],
37
38
  rect: {
@@ -1 +1 @@
1
- {"version":3,"file":"Legends.styles.js","sourceRoot":"../src/","sources":["components/Legends/Legends.styles.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAkC,MAAM,6BAA6B,CAAC;AAElH,MAAM,CAAC,IAAM,SAAS,GAAG,UAAC,KAAwB;;IACxC,IAAA,SAAS,GAA4C,KAAK,UAAjD,EAAE,KAAK,GAAqC,KAAK,MAA1C,EAAE,KAAmC,KAAK,uBAAV,EAA9B,sBAAsB,mBAAG,KAAK,KAAA,CAAW;IAC7D,IAAA,KAAqB,KAAM,EAAzB,OAAO,aAAA,EAAE,KAAK,WAAW,CAAC;IAClC,IAAM,OAAO,GAA2B;QACtC,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,SAAS;QACnB,iBAAiB,EAAE;YACjB,YAAY,EAAE,KAAM,CAAC,cAAc,CAAC,WAAW;SAChD;QACD,WAAW,EAAE,aAAa;QAC1B,YAAY,EAAE,SAAS;KACxB,CAAC;IACF,OAAO;QACL,IAAI,EAAE;YACJ;gBACE,UAAU,EAAE,QAAQ;gBACpB,KAAK,EAAE,MAAM;gBACb,UAAU,EAAE,QAAQ;gBACpB,MAAM,EAAE,eAAe;aACxB;YACD,SAAS;SACV;QACD,MAAM,EAAE;YACN,aAAa,CAAC,KAAM,EAAE,OAAO,CAAC;YAC9B;gBACE,OAAO,EAAE,MAAM;gBACf,UAAU,EAAE,QAAQ;gBACpB,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,KAAK;gBACd,UAAU,EAAE,MAAM;aACnB;SACF;QACD,IAAI,EAAE;YACJ,SAAS;gBACP,GAAC,oBAAoB,IAAG;oBACtB,OAAO,EAAE,+BAA6B,KAAK,CAAC,oBAAoB,UAAK,KAAK,CAAC,oBAAoB,MAAG;oBAClG,OAAO,EAAE,KAAK,CAAC,oBAAoB,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;iBACnE;mBACF;YACD,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,sBAAsB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM;YAC/C,eAAe,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,oBAAoB;YACtE,WAAW,EAAE,KAAK;YAClB,MAAM,EAAE,WAAW;YACnB,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,cAAc,CAAC,YAAY;YACvF,OAAO,EAAE,KAAK,CAAC,aAAa;gBAC1B,CAAC,CAAC,6CAA6C;oBAC7C,qEAAmE,KAAK,CAAC,oBAAoB,cAAS,KAAK,CAAC,oBAAoB,UAAO;gBACzI,CAAC,CAAC,EAAE;SACP;QACD,KAAK,EAAE;YACL;gBACE,WAAW,EAAE,KAAK;aACnB;SACF;QACD,QAAQ,EAAE;YACR,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,GAAG;YACX,UAAU,EAAE,uBAAuB;YACnC,WAAW,EAAE,uBAAuB;YACpC,SAAS,EAAE,cAAc;YACzB,cAAc,EAAE,KAAK,CAAC,oBAAoB;YAC1C,WAAW,EAAE,KAAK;YAClB,OAAO,EAAE,KAAK,CAAC,oBAAoB,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAClG,SAAS;gBACP,GAAC,oBAAoB,IAAG;oBACtB,MAAM,EAAE,KAAK;oBACb,MAAM,EAAE,QAAQ;oBAChB,KAAK,EAAE,QAAQ;oBACf,QAAQ,EAAE,gCAAgC;oBAC1C,eAAe,EAAE,+BAA6B,KAAK,CAAC,oBAAoB,UAAK,KAAK,CAAC,oBAAoB,MAAG;iBACjG;mBACZ;SACF;QACD,IAAI,wBACC,KAAK,CAAC,KAAK,KACd,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,cAAc,CAAC,QAAQ,EACrC,OAAO,EAAE,KAAK,CAAC,oBAAoB,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GACnE;QACD,WAAW,EAAE;YACX,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,MAAM;YACd,eAAe,EAAE,OAAO;YACxB,WAAW,EAAE,KAAK;YAClB,MAAM,EAAE,WAAW;YACnB,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK;SACnE;QACD,2BAA2B,EAAE;YAC3B,aAAa,CAAC,KAAM,EAAE,OAAO,CAAC;gCAE5B,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,cAAc,CAAC,QAAQ,IAClC,KAAK,CAAC,KAAK,KACd,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,KAAK;SAEjB;QACD,aAAa,EAAE;YACb,OAAO,EAAE,KAAK;SACf;QACD,kBAAkB,EAAE;YAClB,eAAe,EAAE;gBACf,IAAI,EAAE,CAAC,aAAa,CAAC,KAAM,EAAE,OAAO,CAAC,CAAC;aACvC;SACF;KACF,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { ILegendsStyles, ILegendStyleProps } from './Legends.types';\nimport { HighContrastSelector, getFocusStyle, IGetFocusStylesOptions, IStyle } from '@fluentui/react/lib/Styling';\n\nexport const getStyles = (props: ILegendStyleProps): ILegendsStyles => {\n const { className, theme, isLineLegendInBarChart = false } = props;\n const { palette, fonts } = theme!;\n const options: IGetFocusStylesOptions = {\n inset: undefined,\n position: undefined,\n highContrastStyle: {\n outlineColor: theme!.semanticColors.focusBorder,\n },\n borderColor: 'transparent',\n outlineColor: undefined,\n };\n return {\n root: [\n {\n whiteSpace: 'nowrap',\n width: '100%',\n alignItems: 'center',\n margin: '-8px 0 0 -8px',\n },\n className,\n ],\n legend: [\n getFocusStyle(theme!, options),\n {\n display: 'flex',\n alignItems: 'center',\n cursor: 'pointer',\n border: 'none',\n padding: '8px',\n background: 'none',\n },\n ],\n rect: {\n selectors: {\n [HighContrastSelector]: {\n content: `linear-gradient(to right, ${props.colorOnSelectedState}, ${props.colorOnSelectedState})`,\n opacity: props.colorOnSelectedState === palette.white ? '0.6' : '',\n },\n },\n width: '12px',\n height: isLineLegendInBarChart ? '4px' : '12px',\n backgroundColor: props.stripePattern ? '' : props.colorOnSelectedState,\n marginRight: '8px',\n border: '1px solid',\n borderColor: props.borderColor ? props.borderColor : theme?.semanticColors.buttonBorder,\n content: props.stripePattern\n ? // eslint-disable-next-line @fluentui/max-len\n `repeating-linear-gradient(135deg, transparent, transparent 3px, ${props.colorOnSelectedState} 1px, ${props.colorOnSelectedState} 4px)`\n : '',\n },\n shape: [\n {\n marginRight: '8px',\n },\n ],\n triangle: {\n width: '0',\n height: '0',\n borderLeft: '6px solid transparent',\n borderRight: '6px solid transparent',\n borderTop: '10.4px solid',\n borderTopColor: props.colorOnSelectedState,\n marginRight: '8px',\n opacity: props.colorOnSelectedState === palette.white ? '0.6' : props.opacity ? props.opacity : '',\n selectors: {\n [HighContrastSelector]: {\n border: '0px',\n height: '10.4px',\n width: '10.4px',\n clipPath: 'polygon(50% 100%, 0 0, 100% 0)',\n backgroundImage: `linear-gradient(to right, ${props.colorOnSelectedState}, ${props.colorOnSelectedState})`,\n } as IStyle,\n },\n },\n text: {\n ...fonts.small,\n lineHeight: '16px',\n color: theme?.semanticColors.bodyText,\n opacity: props.colorOnSelectedState === palette.white ? '0.6' : '',\n },\n hoverChange: {\n width: '12px',\n height: '12px',\n backgroundColor: 'white',\n marginRight: '8px',\n border: '1px solid',\n borderColor: props.borderColor ? props.borderColor : palette.black,\n },\n overflowIndicationTextStyle: [\n getFocusStyle(theme!, options),\n {\n cursor: 'pointer',\n color: theme?.semanticColors.bodyText,\n ...fonts.small,\n lineHeight: '16px',\n padding: '8px',\n },\n ],\n hoverCardRoot: {\n padding: '8px',\n },\n subComponentStyles: {\n hoverCardStyles: {\n host: [getFocusStyle(theme!, options)],\n },\n },\n };\n};\n"]}
1
+ {"version":3,"file":"Legends.styles.js","sourceRoot":"../src/","sources":["components/Legends/Legends.styles.ts"],"names":[],"mappings":"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","sourcesContent":["import { ILegendsStyles, ILegendStyleProps } from './Legends.types';\nimport { HighContrastSelector, getFocusStyle, IGetFocusStylesOptions, IStyle } from '@fluentui/react/lib/Styling';\n\nexport const getStyles = (props: ILegendStyleProps): ILegendsStyles => {\n const { className, theme, isLineLegendInBarChart = false } = props;\n const { palette, fonts } = theme!;\n const options: IGetFocusStylesOptions = {\n inset: undefined,\n position: undefined,\n highContrastStyle: {\n outlineColor: theme!.semanticColors.focusBorder,\n },\n borderColor: 'transparent',\n outlineColor: undefined,\n };\n return {\n root: [\n {\n whiteSpace: 'nowrap',\n width: '100%',\n alignItems: 'center',\n margin: '-8px 0 0 -8px',\n },\n className,\n ],\n legend: [\n getFocusStyle(theme!, options),\n {\n display: 'flex',\n alignItems: 'center',\n cursor: 'pointer',\n border: 'none',\n padding: '8px',\n background: 'none',\n textTransform: 'capitalize',\n },\n ],\n rect: {\n selectors: {\n [HighContrastSelector]: {\n content: `linear-gradient(to right, ${props.colorOnSelectedState}, ${props.colorOnSelectedState})`,\n opacity: props.colorOnSelectedState === palette.white ? '0.6' : '',\n },\n },\n width: '12px',\n height: isLineLegendInBarChart ? '4px' : '12px',\n backgroundColor: props.stripePattern ? '' : props.colorOnSelectedState,\n marginRight: '8px',\n border: '1px solid',\n borderColor: props.borderColor ? props.borderColor : theme?.semanticColors.buttonBorder,\n content: props.stripePattern\n ? // eslint-disable-next-line @fluentui/max-len\n `repeating-linear-gradient(135deg, transparent, transparent 3px, ${props.colorOnSelectedState} 1px, ${props.colorOnSelectedState} 4px)`\n : '',\n },\n shape: [\n {\n marginRight: '8px',\n },\n ],\n triangle: {\n width: '0',\n height: '0',\n borderLeft: '6px solid transparent',\n borderRight: '6px solid transparent',\n borderTop: '10.4px solid',\n borderTopColor: props.colorOnSelectedState,\n marginRight: '8px',\n opacity: props.colorOnSelectedState === palette.white ? '0.6' : props.opacity ? props.opacity : '',\n selectors: {\n [HighContrastSelector]: {\n border: '0px',\n height: '10.4px',\n width: '10.4px',\n clipPath: 'polygon(50% 100%, 0 0, 100% 0)',\n backgroundImage: `linear-gradient(to right, ${props.colorOnSelectedState}, ${props.colorOnSelectedState})`,\n } as IStyle,\n },\n },\n text: {\n ...fonts.small,\n lineHeight: '16px',\n color: theme?.semanticColors.bodyText,\n opacity: props.colorOnSelectedState === palette.white ? '0.6' : '',\n },\n hoverChange: {\n width: '12px',\n height: '12px',\n backgroundColor: 'white',\n marginRight: '8px',\n border: '1px solid',\n borderColor: props.borderColor ? props.borderColor : palette.black,\n },\n overflowIndicationTextStyle: [\n getFocusStyle(theme!, options),\n {\n cursor: 'pointer',\n color: theme?.semanticColors.bodyText,\n ...fonts.small,\n lineHeight: '16px',\n padding: '8px',\n },\n ],\n hoverCardRoot: {\n padding: '8px',\n },\n subComponentStyles: {\n hoverCardStyles: {\n host: [getFocusStyle(theme!, options)],\n },\n },\n };\n};\n"]}
package/lib/version.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // Do not modify this file; it is generated as part of publish.
2
2
  // The checked in version is a placeholder only and will not be updated.
3
3
  import { setVersion } from '@fluentui/set-version';
4
- setVersion('@fluentui/react-charting', '5.9.54');
4
+ setVersion('@fluentui/react-charting', '5.9.55');
5
5
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"../src/","sources":["version.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,wEAAwE;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,UAAU,CAAC,0BAA0B,EAAE,QAAQ,CAAC,CAAC","sourcesContent":["// Do not modify this file; it is generated as part of publish.\n// The checked in version is a placeholder only and will not be updated.\nimport { setVersion } from '@fluentui/set-version';\nsetVersion('@fluentui/react-charting', '5.9.54');"]}
1
+ {"version":3,"file":"version.js","sourceRoot":"../src/","sources":["version.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,wEAAwE;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,UAAU,CAAC,0BAA0B,EAAE,QAAQ,CAAC,CAAC","sourcesContent":["// Do not modify this file; it is generated as part of publish.\n// The checked in version is a placeholder only and will not be updated.\nimport { setVersion } from '@fluentui/set-version';\nsetVersion('@fluentui/react-charting', '5.9.55');"]}
@@ -212,7 +212,7 @@ define(["require", "exports", "tslib", "react", "@fluentui/react/lib/HoverCard",
212
212
  return (React.createElement("button", tslib_1.__assign({}, (allowFocusOnLegends && {
213
213
  'aria-selected': _this.state.selectedLegend === legend.title,
214
214
  role: 'option',
215
- 'aria-label': legend.title,
215
+ 'aria-label': legend.title + " selected",
216
216
  'aria-setsize': data['aria-setsize'],
217
217
  'aria-posinset': data['aria-posinset'],
218
218
  }), (data.nativeButtonProps && tslib_1.__assign({}, data.nativeButtonProps)), { key: index, className: classNames.legend, onClick: onClickHandler, onMouseOver: onHoverHandler, onMouseOut: onMouseOut, onFocus: onHoverHandler, onBlur: onMouseOut, "data-is-focusable": allowFocusOnLegends }),
@@ -1 +1 @@
1
- {"version":3,"file":"Legends.base.js","sourceRoot":"../src/","sources":["components/Legends/Legends.base.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\n\nimport { IContextualMenuItem } from '@fluentui/react/lib/ContextualMenu';\nimport { HoverCard, HoverCardType, IExpandingCardProps } from '@fluentui/react/lib/HoverCard';\nimport { classNamesFunction, find, getNativeProps, buttonProperties } from '@fluentui/react/lib/Utilities';\nimport { ResizeGroup } from '@fluentui/react/lib/ResizeGroup';\nimport { IProcessedStyleSet } from '@fluentui/react/lib/Styling';\nimport { OverflowSet, IOverflowSetItemProps } from '@fluentui/react/lib/OverflowSet';\nimport { FocusZone, FocusZoneDirection } from '@fluentui/react-focus';\nimport {\n ILegend,\n ILegendsProps,\n LegendShape,\n ILegendsStyles,\n ILegendStyleProps,\n ILegendOverflowData,\n} from './Legends.types';\nimport { Shape } from './shape';\n\nimport { silceOrAppendToArray } from '../../utilities/utilities';\n\nconst getClassNames = classNamesFunction<ILegendStyleProps, ILegendsStyles>();\n\n// This is an internal interface used for rendering the legends with unique key\ninterface ILegendItem extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n name?: string;\n title: string;\n action: VoidFunction;\n hoverAction: VoidFunction;\n onMouseOutAction: VoidFunction;\n color: string;\n shape?: LegendShape;\n key: number;\n opacity?: number;\n stripePattern?: boolean;\n isLineLegendInBarChart?: boolean;\n}\n\nexport interface ILegendState {\n selectedLegend: string;\n selecetedLegendInHoverCard: string;\n selectedState: boolean;\n hoverState: boolean;\n isHoverCardVisible: boolean;\n selectedLegends: string[];\n}\nexport class LegendsBase extends React.Component<ILegendsProps, ILegendState> {\n private _hoverCardRef: HTMLDivElement;\n private _classNames: IProcessedStyleSet<ILegendsStyles>;\n\n public constructor(props: ILegendsProps) {\n super(props);\n this.state = {\n selectedLegend: 'none',\n selectedState: false,\n hoverState: false,\n isHoverCardVisible: false,\n selecetedLegendInHoverCard: 'none',\n selectedLegends: [],\n };\n }\n\n public componentDidUpdate(prevProps: ILegendsProps) {\n if (prevProps.selectedLegend !== this.props.selectedLegend) {\n this.setState({ selectedLegend: this.props.selectedLegend! });\n }\n }\n\n public render(): JSX.Element {\n const { theme, className, styles } = this.props;\n this._classNames = getClassNames(styles!, {\n theme: theme!,\n className,\n });\n const dataToRender = this._generateData();\n return (\n <div className={this._classNames.root}>\n {this.props.enabledWrapLines ? (\n this._onRenderData(dataToRender)\n ) : (\n <ResizeGroup\n data={dataToRender}\n onReduceData={this._onReduceData}\n onRenderData={this._onRenderData}\n onGrowData={this._onGrowData}\n />\n )}\n </div>\n );\n }\n\n private _generateData(): ILegendOverflowData {\n const { allowFocusOnLegends = true } = this.props;\n const dataItems: ILegendItem[] = this.props.legends.map((legend: ILegend, index: number) => {\n return {\n ...(allowFocusOnLegends && {\n nativeButtonProps: getNativeProps<React.HTMLAttributes<HTMLButtonElement>>(legend, buttonProperties, [\n 'title',\n ]),\n 'aria-setsize': this.props.legends.length,\n 'aria-posinset': index + 1,\n }),\n title: legend.title,\n action: legend.action!,\n hoverAction: legend.hoverAction!,\n onMouseOutAction: legend.onMouseOutAction!,\n color: legend.color,\n shape: legend.shape,\n stripePattern: legend.stripePattern,\n isLineLegendInBarChart: legend.isLineLegendInBarChart,\n opacity: legend.opacity,\n key: index,\n };\n });\n const result: ILegendOverflowData = {\n primary: dataItems,\n overflow: [],\n };\n return result;\n }\n\n private _onRenderData = (data: IOverflowSetItemProps | ILegendOverflowData): JSX.Element => {\n const { overflowProps, allowFocusOnLegends = true } = this.props;\n const rootStyles = {\n root: {\n justifyContent: this.props.centerLegends ? 'center' : 'unset',\n flexWrap: 'wrap',\n },\n };\n return (\n <OverflowSet\n {...(allowFocusOnLegends && { role: 'listbox', 'aria-label': 'Legends' })}\n items={data.primary}\n overflowItems={data.overflow}\n onRenderItem={this._renderButton}\n onRenderOverflowButton={this._renderOverflowItems}\n {...overflowProps}\n styles={{ ...rootStyles, ...overflowProps?.styles }}\n />\n );\n };\n\n private _onReduceData = (currentdata: IOverflowSetItemProps): {} | void => {\n if (currentdata.primary.length === 0) {\n return;\n }\n const overflow = [...currentdata.primary.slice(-1), ...currentdata.overflow];\n const primary = currentdata.primary.slice(0, -1);\n return { primary, overflow };\n };\n\n private _onGrowData = (currentdata: IOverflowSetItemProps): {} | void => {\n if (currentdata.overflow.length === 0) {\n return;\n }\n const overflow = currentdata.overflow.slice(1);\n const primary = [...currentdata.primary, ...currentdata.overflow.slice(0, 1)];\n return { primary, overflow };\n };\n\n /**\n * This function will get called when there is an ability to\n * select multiple legends\n * @param legend ILegend\n */\n private _canSelectMultipleLegends = (legend: ILegend): void => {\n const selectedLegends = silceOrAppendToArray(this.state.selectedLegends, legend.title);\n this.setState({\n //check if user selected all legends then empty it get the default behaviour\n selectedLegends: selectedLegends.length === this.props.legends.length ? [] : selectedLegends,\n // make selectedState to false if none or all the legends selected\n selectedState:\n selectedLegends.length === 0 || selectedLegends.length === this.props.legends.length ? false : true,\n selecetedLegendInHoverCard: this.state.isHoverCardVisible ? legend.title : 'none',\n selectedLegend: 'none',\n hoverState: false,\n });\n };\n\n /**\n * This function will get called when there is\n * ability to select only single legend\n * @param legend ILegend\n */\n\n private _canSelectOnlySingleLegend = (legend: ILegend): void => {\n if (this.state.selectedState === true && this.state.selectedLegend === legend.title) {\n this.setState({\n selectedLegend: 'none',\n selectedState: false,\n selecetedLegendInHoverCard: this.state.isHoverCardVisible ? legend.title : 'none',\n });\n } else {\n this.setState({\n hoverState: true,\n selectedState: true,\n selectedLegend: legend.title,\n selecetedLegendInHoverCard: this.state.isHoverCardVisible ? legend.title : 'none',\n });\n }\n };\n\n private _onClick = (legend: ILegend): void => {\n if (legend.action) {\n const { canSelectMultipleLegends = false } = this.props;\n if (canSelectMultipleLegends) {\n this._canSelectMultipleLegends(legend);\n } else {\n this._canSelectOnlySingleLegend(legend);\n }\n legend.action();\n }\n };\n\n private _onRenderCompactCard = (expandingCard: IExpandingCardProps): JSX.Element => {\n const { allowFocusOnLegends = true, className, styles, theme } = this.props;\n const overflowHoverCardLegends: JSX.Element[] = [];\n const classNames = getClassNames(styles!, {\n theme: theme!,\n className,\n });\n expandingCard.renderData.forEach((legend: IOverflowSetItemProps, index: number) => {\n const hoverCardElement = this._renderButton(legend, index, true);\n overflowHoverCardLegends.push(hoverCardElement);\n });\n const hoverCardData = (\n <FocusZone\n {...(allowFocusOnLegends && { role: 'listbox' })}\n direction={FocusZoneDirection.vertical}\n {...this.props.focusZonePropsInHoverCard}\n className={classNames.hoverCardRoot}\n >\n {overflowHoverCardLegends}\n </FocusZone>\n );\n return hoverCardData;\n };\n\n private _renderOverflowItems = (legends: ILegend[]) => {\n const { allowFocusOnLegends = true } = this.props;\n const items: IContextualMenuItem[] = [];\n legends.forEach((legend: ILegend, i: number) => {\n items.push({ key: i.toString(), name: legend.title, onClick: legend.action });\n });\n const renderOverflowData: IExpandingCardProps = { renderData: legends };\n const { theme, className, styles, overflowText } = this.props;\n const classNames = getClassNames(styles!, {\n theme: theme!,\n className,\n });\n const plainCardProps = {\n onRenderPlainCard: this._onRenderCompactCard,\n renderData: renderOverflowData,\n };\n\n const overflowString = overflowText ? overflowText : 'more';\n // execute similar to \"_onClick\" and \"_onLeave\" logic at HoverCard onCardHide event\n const onHoverCardHideHandler = () => {\n const { canSelectMultipleLegends = false } = this.props;\n const selectedOverflowItem = find(\n legends,\n (legend: ILegend) =>\n legend.title === this.state.selecetedLegendInHoverCard || legend.title === this.state.selectedLegend,\n );\n this.setState(\n {\n isHoverCardVisible: false,\n selecetedLegendInHoverCard: 'none',\n selectedLegends: [],\n },\n () => {\n if (selectedOverflowItem) {\n this.setState({ selectedLegend: 'none', selectedState: false }, () => {\n if (selectedOverflowItem.action && !canSelectMultipleLegends) {\n selectedOverflowItem.action();\n }\n if (this.props.onLegendHoverCardLeave && canSelectMultipleLegends) {\n this.props.onLegendHoverCardLeave();\n }\n this.setState({ hoverState: false }, () => {\n if (selectedOverflowItem.onMouseOutAction) {\n selectedOverflowItem.onMouseOutAction(true);\n }\n });\n });\n }\n },\n );\n };\n return (\n <HoverCard\n type={HoverCardType.plain}\n plainCardProps={plainCardProps}\n instantOpenOnClick={true}\n // eslint-disable-next-line react/jsx-no-bind\n onCardHide={onHoverCardHideHandler}\n setInitialFocus={true}\n trapFocus={true}\n onCardVisible={this._hoverCardVisible}\n styles={classNames.subComponentStyles.hoverCardStyles}\n cardDismissDelay={300}\n target={this._hoverCardRef}\n >\n <div\n className={classNames.overflowIndicationTextStyle}\n ref={(rootElem: HTMLDivElement) => (this._hoverCardRef = rootElem)}\n {...(allowFocusOnLegends && {\n role: 'link',\n 'aria-expanded': this.state.isHoverCardVisible,\n 'aria-label': `${items.length} ${overflowString}`,\n })}\n data-is-focusable={allowFocusOnLegends}\n >\n {items.length} {overflowString}\n </div>\n </HoverCard>\n );\n };\n\n private _hoverCardVisible = () => {\n this.setState({ isHoverCardVisible: true });\n };\n\n private _onHoverOverLegend = (legend: ILegend) => {\n if (!this.state.selectedState) {\n if (legend.hoverAction) {\n this.setState({ hoverState: true, selectedLegend: legend.title });\n legend.hoverAction();\n }\n }\n };\n\n private _onLeave = (legend: ILegend) => {\n if (!this.state.selectedState) {\n if (legend.onMouseOutAction) {\n this.setState({ hoverState: false, selectedLegend: 'none' });\n legend.onMouseOutAction();\n }\n }\n };\n\n private _renderButton = (data: IOverflowSetItemProps, index?: number, overflow?: boolean) => {\n const { allowFocusOnLegends = true } = this.props;\n const legend: ILegend = {\n title: data.title,\n color: data.color,\n shape: data.shape,\n action: data.action,\n hoverAction: data.hoverAction,\n onMouseOutAction: data.onMouseOutAction,\n stripePattern: data.stripePattern,\n isLineLegendInBarChart: data.isLineLegendInBarChart,\n opacity: data.opacity,\n };\n const color = this._getColor(legend.title, legend.color);\n const { theme, className, styles } = this.props;\n const classNames = getClassNames(styles!, {\n theme: theme!,\n className,\n colorOnSelectedState: color,\n borderColor: legend.color,\n overflow: overflow,\n stripePattern: legend.stripePattern,\n isLineLegendInBarChart: legend.isLineLegendInBarChart,\n opacity: legend.opacity,\n });\n const onClickHandler = () => {\n this._onClick(legend);\n };\n const onHoverHandler = () => {\n this._onHoverOverLegend(legend);\n };\n const onMouseOut = () => {\n this._onLeave(legend);\n };\n const shape = this._getShape(classNames, legend, color);\n return (\n <button\n {...(allowFocusOnLegends && {\n 'aria-selected': this.state.selectedLegend === legend.title,\n role: 'option',\n 'aria-label': legend.title,\n 'aria-setsize': data['aria-setsize'],\n 'aria-posinset': data['aria-posinset'],\n })}\n {...(data.nativeButtonProps && { ...data.nativeButtonProps })}\n key={index}\n className={classNames.legend}\n onClick={onClickHandler}\n onMouseOver={onHoverHandler}\n onMouseOut={onMouseOut}\n onFocus={onHoverHandler}\n onBlur={onMouseOut}\n data-is-focusable={allowFocusOnLegends}\n /* eslint-enable react/jsx-no-bind */\n >\n {shape}\n <div className={classNames.text}>{legend.title}</div>\n </button>\n );\n };\n\n private _getShape(\n classNames: IProcessedStyleSet<ILegendsStyles>,\n legend: ILegend,\n color: string,\n ): React.ReactNode | string {\n const svgParentProps: React.SVGAttributes<SVGElement> = {\n className: classNames.shape,\n };\n const svgChildProps: React.SVGAttributes<SVGElement> = {\n fill: color,\n strokeWidth: 2,\n stroke: legend.color,\n };\n return (\n <Shape\n svgProps={svgParentProps}\n pathProps={svgChildProps}\n shape={legend.shape as LegendShape}\n classNameForNonSvg={classNames.rect}\n />\n );\n }\n\n private _getColor(title: string, color: string): string {\n const { theme, canSelectMultipleLegends = false } = this.props;\n const { palette } = theme!;\n let legendColor = color;\n // below if statement will get executed for the hovered legend.\n // (which is also the slected legend see fucntion:-_onHoverOverLegend)\n if (this.state.hoverState && this.state.selectedLegend === title) {\n legendColor = color;\n } // below esle if statement will get executed for the unselected-legend which is hovered\n else if (this.state.hoverState && this.state.selectedLegend !== 'none' && this.state.selectedLegend !== title) {\n legendColor = palette.white;\n } // below else if statement will get executed if the legends are in the selected state\n // this is will only get executed when we have ability to select multiple legends\n else if (!!canSelectMultipleLegends && this.state.selectedState && this.state.selectedLegends.indexOf(title) > -1) {\n legendColor = color;\n } // below else if statement will get executed when no legend is selected and hovered\n //(for example:- initial render of legends)\n else if (\n (!this.state.selectedState && this.state.selectedLegend === 'none') ||\n this.state.selectedLegend === title ||\n this.state.selectedLegends.length <= 0\n ) {\n legendColor = color;\n } else {\n legendColor = palette.white;\n }\n return legendColor;\n }\n}\n"]}
1
+ {"version":3,"file":"Legends.base.js","sourceRoot":"../src/","sources":["components/Legends/Legends.base.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\n\nimport { IContextualMenuItem } from '@fluentui/react/lib/ContextualMenu';\nimport { HoverCard, HoverCardType, IExpandingCardProps } from '@fluentui/react/lib/HoverCard';\nimport { classNamesFunction, find, getNativeProps, buttonProperties } from '@fluentui/react/lib/Utilities';\nimport { ResizeGroup } from '@fluentui/react/lib/ResizeGroup';\nimport { IProcessedStyleSet } from '@fluentui/react/lib/Styling';\nimport { OverflowSet, IOverflowSetItemProps } from '@fluentui/react/lib/OverflowSet';\nimport { FocusZone, FocusZoneDirection } from '@fluentui/react-focus';\nimport {\n ILegend,\n ILegendsProps,\n LegendShape,\n ILegendsStyles,\n ILegendStyleProps,\n ILegendOverflowData,\n} from './Legends.types';\nimport { Shape } from './shape';\n\nimport { silceOrAppendToArray } from '../../utilities/utilities';\n\nconst getClassNames = classNamesFunction<ILegendStyleProps, ILegendsStyles>();\n\n// This is an internal interface used for rendering the legends with unique key\ninterface ILegendItem extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n name?: string;\n title: string;\n action: VoidFunction;\n hoverAction: VoidFunction;\n onMouseOutAction: VoidFunction;\n color: string;\n shape?: LegendShape;\n key: number;\n opacity?: number;\n stripePattern?: boolean;\n isLineLegendInBarChart?: boolean;\n}\n\nexport interface ILegendState {\n selectedLegend: string;\n selecetedLegendInHoverCard: string;\n selectedState: boolean;\n hoverState: boolean;\n isHoverCardVisible: boolean;\n selectedLegends: string[];\n}\nexport class LegendsBase extends React.Component<ILegendsProps, ILegendState> {\n private _hoverCardRef: HTMLDivElement;\n private _classNames: IProcessedStyleSet<ILegendsStyles>;\n\n public constructor(props: ILegendsProps) {\n super(props);\n this.state = {\n selectedLegend: 'none',\n selectedState: false,\n hoverState: false,\n isHoverCardVisible: false,\n selecetedLegendInHoverCard: 'none',\n selectedLegends: [],\n };\n }\n\n public componentDidUpdate(prevProps: ILegendsProps) {\n if (prevProps.selectedLegend !== this.props.selectedLegend) {\n this.setState({ selectedLegend: this.props.selectedLegend! });\n }\n }\n\n public render(): JSX.Element {\n const { theme, className, styles } = this.props;\n this._classNames = getClassNames(styles!, {\n theme: theme!,\n className,\n });\n const dataToRender = this._generateData();\n return (\n <div className={this._classNames.root}>\n {this.props.enabledWrapLines ? (\n this._onRenderData(dataToRender)\n ) : (\n <ResizeGroup\n data={dataToRender}\n onReduceData={this._onReduceData}\n onRenderData={this._onRenderData}\n onGrowData={this._onGrowData}\n />\n )}\n </div>\n );\n }\n\n private _generateData(): ILegendOverflowData {\n const { allowFocusOnLegends = true } = this.props;\n const dataItems: ILegendItem[] = this.props.legends.map((legend: ILegend, index: number) => {\n return {\n ...(allowFocusOnLegends && {\n nativeButtonProps: getNativeProps<React.HTMLAttributes<HTMLButtonElement>>(legend, buttonProperties, [\n 'title',\n ]),\n 'aria-setsize': this.props.legends.length,\n 'aria-posinset': index + 1,\n }),\n title: legend.title,\n action: legend.action!,\n hoverAction: legend.hoverAction!,\n onMouseOutAction: legend.onMouseOutAction!,\n color: legend.color,\n shape: legend.shape,\n stripePattern: legend.stripePattern,\n isLineLegendInBarChart: legend.isLineLegendInBarChart,\n opacity: legend.opacity,\n key: index,\n };\n });\n const result: ILegendOverflowData = {\n primary: dataItems,\n overflow: [],\n };\n return result;\n }\n\n private _onRenderData = (data: IOverflowSetItemProps | ILegendOverflowData): JSX.Element => {\n const { overflowProps, allowFocusOnLegends = true } = this.props;\n const rootStyles = {\n root: {\n justifyContent: this.props.centerLegends ? 'center' : 'unset',\n flexWrap: 'wrap',\n },\n };\n return (\n <OverflowSet\n {...(allowFocusOnLegends && { role: 'listbox', 'aria-label': 'Legends' })}\n items={data.primary}\n overflowItems={data.overflow}\n onRenderItem={this._renderButton}\n onRenderOverflowButton={this._renderOverflowItems}\n {...overflowProps}\n styles={{ ...rootStyles, ...overflowProps?.styles }}\n />\n );\n };\n\n private _onReduceData = (currentdata: IOverflowSetItemProps): {} | void => {\n if (currentdata.primary.length === 0) {\n return;\n }\n const overflow = [...currentdata.primary.slice(-1), ...currentdata.overflow];\n const primary = currentdata.primary.slice(0, -1);\n return { primary, overflow };\n };\n\n private _onGrowData = (currentdata: IOverflowSetItemProps): {} | void => {\n if (currentdata.overflow.length === 0) {\n return;\n }\n const overflow = currentdata.overflow.slice(1);\n const primary = [...currentdata.primary, ...currentdata.overflow.slice(0, 1)];\n return { primary, overflow };\n };\n\n /**\n * This function will get called when there is an ability to\n * select multiple legends\n * @param legend ILegend\n */\n private _canSelectMultipleLegends = (legend: ILegend): void => {\n const selectedLegends = silceOrAppendToArray(this.state.selectedLegends, legend.title);\n this.setState({\n //check if user selected all legends then empty it get the default behaviour\n selectedLegends: selectedLegends.length === this.props.legends.length ? [] : selectedLegends,\n // make selectedState to false if none or all the legends selected\n selectedState:\n selectedLegends.length === 0 || selectedLegends.length === this.props.legends.length ? false : true,\n selecetedLegendInHoverCard: this.state.isHoverCardVisible ? legend.title : 'none',\n selectedLegend: 'none',\n hoverState: false,\n });\n };\n\n /**\n * This function will get called when there is\n * ability to select only single legend\n * @param legend ILegend\n */\n\n private _canSelectOnlySingleLegend = (legend: ILegend): void => {\n if (this.state.selectedState === true && this.state.selectedLegend === legend.title) {\n this.setState({\n selectedLegend: 'none',\n selectedState: false,\n selecetedLegendInHoverCard: this.state.isHoverCardVisible ? legend.title : 'none',\n });\n } else {\n this.setState({\n hoverState: true,\n selectedState: true,\n selectedLegend: legend.title,\n selecetedLegendInHoverCard: this.state.isHoverCardVisible ? legend.title : 'none',\n });\n }\n };\n\n private _onClick = (legend: ILegend): void => {\n if (legend.action) {\n const { canSelectMultipleLegends = false } = this.props;\n if (canSelectMultipleLegends) {\n this._canSelectMultipleLegends(legend);\n } else {\n this._canSelectOnlySingleLegend(legend);\n }\n legend.action();\n }\n };\n\n private _onRenderCompactCard = (expandingCard: IExpandingCardProps): JSX.Element => {\n const { allowFocusOnLegends = true, className, styles, theme } = this.props;\n const overflowHoverCardLegends: JSX.Element[] = [];\n const classNames = getClassNames(styles!, {\n theme: theme!,\n className,\n });\n expandingCard.renderData.forEach((legend: IOverflowSetItemProps, index: number) => {\n const hoverCardElement = this._renderButton(legend, index, true);\n overflowHoverCardLegends.push(hoverCardElement);\n });\n const hoverCardData = (\n <FocusZone\n {...(allowFocusOnLegends && { role: 'listbox' })}\n direction={FocusZoneDirection.vertical}\n {...this.props.focusZonePropsInHoverCard}\n className={classNames.hoverCardRoot}\n >\n {overflowHoverCardLegends}\n </FocusZone>\n );\n return hoverCardData;\n };\n\n private _renderOverflowItems = (legends: ILegend[]) => {\n const { allowFocusOnLegends = true } = this.props;\n const items: IContextualMenuItem[] = [];\n legends.forEach((legend: ILegend, i: number) => {\n items.push({ key: i.toString(), name: legend.title, onClick: legend.action });\n });\n const renderOverflowData: IExpandingCardProps = { renderData: legends };\n const { theme, className, styles, overflowText } = this.props;\n const classNames = getClassNames(styles!, {\n theme: theme!,\n className,\n });\n const plainCardProps = {\n onRenderPlainCard: this._onRenderCompactCard,\n renderData: renderOverflowData,\n };\n\n const overflowString = overflowText ? overflowText : 'more';\n // execute similar to \"_onClick\" and \"_onLeave\" logic at HoverCard onCardHide event\n const onHoverCardHideHandler = () => {\n const { canSelectMultipleLegends = false } = this.props;\n const selectedOverflowItem = find(\n legends,\n (legend: ILegend) =>\n legend.title === this.state.selecetedLegendInHoverCard || legend.title === this.state.selectedLegend,\n );\n this.setState(\n {\n isHoverCardVisible: false,\n selecetedLegendInHoverCard: 'none',\n selectedLegends: [],\n },\n () => {\n if (selectedOverflowItem) {\n this.setState({ selectedLegend: 'none', selectedState: false }, () => {\n if (selectedOverflowItem.action && !canSelectMultipleLegends) {\n selectedOverflowItem.action();\n }\n if (this.props.onLegendHoverCardLeave && canSelectMultipleLegends) {\n this.props.onLegendHoverCardLeave();\n }\n this.setState({ hoverState: false }, () => {\n if (selectedOverflowItem.onMouseOutAction) {\n selectedOverflowItem.onMouseOutAction(true);\n }\n });\n });\n }\n },\n );\n };\n return (\n <HoverCard\n type={HoverCardType.plain}\n plainCardProps={plainCardProps}\n instantOpenOnClick={true}\n // eslint-disable-next-line react/jsx-no-bind\n onCardHide={onHoverCardHideHandler}\n setInitialFocus={true}\n trapFocus={true}\n onCardVisible={this._hoverCardVisible}\n styles={classNames.subComponentStyles.hoverCardStyles}\n cardDismissDelay={300}\n target={this._hoverCardRef}\n >\n <div\n className={classNames.overflowIndicationTextStyle}\n ref={(rootElem: HTMLDivElement) => (this._hoverCardRef = rootElem)}\n {...(allowFocusOnLegends && {\n role: 'link',\n 'aria-expanded': this.state.isHoverCardVisible,\n 'aria-label': `${items.length} ${overflowString}`,\n })}\n data-is-focusable={allowFocusOnLegends}\n >\n {items.length} {overflowString}\n </div>\n </HoverCard>\n );\n };\n\n private _hoverCardVisible = () => {\n this.setState({ isHoverCardVisible: true });\n };\n\n private _onHoverOverLegend = (legend: ILegend) => {\n if (!this.state.selectedState) {\n if (legend.hoverAction) {\n this.setState({ hoverState: true, selectedLegend: legend.title });\n legend.hoverAction();\n }\n }\n };\n\n private _onLeave = (legend: ILegend) => {\n if (!this.state.selectedState) {\n if (legend.onMouseOutAction) {\n this.setState({ hoverState: false, selectedLegend: 'none' });\n legend.onMouseOutAction();\n }\n }\n };\n\n private _renderButton = (data: IOverflowSetItemProps, index?: number, overflow?: boolean) => {\n const { allowFocusOnLegends = true } = this.props;\n const legend: ILegend = {\n title: data.title,\n color: data.color,\n shape: data.shape,\n action: data.action,\n hoverAction: data.hoverAction,\n onMouseOutAction: data.onMouseOutAction,\n stripePattern: data.stripePattern,\n isLineLegendInBarChart: data.isLineLegendInBarChart,\n opacity: data.opacity,\n };\n const color = this._getColor(legend.title, legend.color);\n const { theme, className, styles } = this.props;\n const classNames = getClassNames(styles!, {\n theme: theme!,\n className,\n colorOnSelectedState: color,\n borderColor: legend.color,\n overflow: overflow,\n stripePattern: legend.stripePattern,\n isLineLegendInBarChart: legend.isLineLegendInBarChart,\n opacity: legend.opacity,\n });\n const onClickHandler = () => {\n this._onClick(legend);\n };\n const onHoverHandler = () => {\n this._onHoverOverLegend(legend);\n };\n const onMouseOut = () => {\n this._onLeave(legend);\n };\n const shape = this._getShape(classNames, legend, color);\n return (\n <button\n {...(allowFocusOnLegends && {\n 'aria-selected': this.state.selectedLegend === legend.title,\n role: 'option',\n 'aria-label': `${legend.title} selected`,\n 'aria-setsize': data['aria-setsize'],\n 'aria-posinset': data['aria-posinset'],\n })}\n {...(data.nativeButtonProps && { ...data.nativeButtonProps })}\n key={index}\n className={classNames.legend}\n onClick={onClickHandler}\n onMouseOver={onHoverHandler}\n onMouseOut={onMouseOut}\n onFocus={onHoverHandler}\n onBlur={onMouseOut}\n data-is-focusable={allowFocusOnLegends}\n /* eslint-enable react/jsx-no-bind */\n >\n {shape}\n <div className={classNames.text}>{legend.title}</div>\n </button>\n );\n };\n\n private _getShape(\n classNames: IProcessedStyleSet<ILegendsStyles>,\n legend: ILegend,\n color: string,\n ): React.ReactNode | string {\n const svgParentProps: React.SVGAttributes<SVGElement> = {\n className: classNames.shape,\n };\n const svgChildProps: React.SVGAttributes<SVGElement> = {\n fill: color,\n strokeWidth: 2,\n stroke: legend.color,\n };\n return (\n <Shape\n svgProps={svgParentProps}\n pathProps={svgChildProps}\n shape={legend.shape as LegendShape}\n classNameForNonSvg={classNames.rect}\n />\n );\n }\n\n private _getColor(title: string, color: string): string {\n const { theme, canSelectMultipleLegends = false } = this.props;\n const { palette } = theme!;\n let legendColor = color;\n // below if statement will get executed for the hovered legend.\n // (which is also the slected legend see fucntion:-_onHoverOverLegend)\n if (this.state.hoverState && this.state.selectedLegend === title) {\n legendColor = color;\n } // below esle if statement will get executed for the unselected-legend which is hovered\n else if (this.state.hoverState && this.state.selectedLegend !== 'none' && this.state.selectedLegend !== title) {\n legendColor = palette.white;\n } // below else if statement will get executed if the legends are in the selected state\n // this is will only get executed when we have ability to select multiple legends\n else if (!!canSelectMultipleLegends && this.state.selectedState && this.state.selectedLegends.indexOf(title) > -1) {\n legendColor = color;\n } // below else if statement will get executed when no legend is selected and hovered\n //(for example:- initial render of legends)\n else if (\n (!this.state.selectedState && this.state.selectedLegend === 'none') ||\n this.state.selectedLegend === title ||\n this.state.selectedLegends.length <= 0\n ) {\n legendColor = color;\n } else {\n legendColor = palette.white;\n }\n return legendColor;\n }\n}\n"]}
@@ -34,6 +34,7 @@ define(["require", "exports", "tslib", "@fluentui/react/lib/Styling"], function
34
34
  border: 'none',
35
35
  padding: '8px',
36
36
  background: 'none',
37
+ textTransform: 'capitalize',
37
38
  },
38
39
  ],
39
40
  rect: {
@@ -1 +1 @@
1
- {"version":3,"file":"Legends.styles.js","sourceRoot":"../src/","sources":["components/Legends/Legends.styles.ts"],"names":[],"mappings":"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","sourcesContent":["import { ILegendsStyles, ILegendStyleProps } from './Legends.types';\nimport { HighContrastSelector, getFocusStyle, IGetFocusStylesOptions, IStyle } from '@fluentui/react/lib/Styling';\n\nexport const getStyles = (props: ILegendStyleProps): ILegendsStyles => {\n const { className, theme, isLineLegendInBarChart = false } = props;\n const { palette, fonts } = theme!;\n const options: IGetFocusStylesOptions = {\n inset: undefined,\n position: undefined,\n highContrastStyle: {\n outlineColor: theme!.semanticColors.focusBorder,\n },\n borderColor: 'transparent',\n outlineColor: undefined,\n };\n return {\n root: [\n {\n whiteSpace: 'nowrap',\n width: '100%',\n alignItems: 'center',\n margin: '-8px 0 0 -8px',\n },\n className,\n ],\n legend: [\n getFocusStyle(theme!, options),\n {\n display: 'flex',\n alignItems: 'center',\n cursor: 'pointer',\n border: 'none',\n padding: '8px',\n background: 'none',\n },\n ],\n rect: {\n selectors: {\n [HighContrastSelector]: {\n content: `linear-gradient(to right, ${props.colorOnSelectedState}, ${props.colorOnSelectedState})`,\n opacity: props.colorOnSelectedState === palette.white ? '0.6' : '',\n },\n },\n width: '12px',\n height: isLineLegendInBarChart ? '4px' : '12px',\n backgroundColor: props.stripePattern ? '' : props.colorOnSelectedState,\n marginRight: '8px',\n border: '1px solid',\n borderColor: props.borderColor ? props.borderColor : theme?.semanticColors.buttonBorder,\n content: props.stripePattern\n ? // eslint-disable-next-line @fluentui/max-len\n `repeating-linear-gradient(135deg, transparent, transparent 3px, ${props.colorOnSelectedState} 1px, ${props.colorOnSelectedState} 4px)`\n : '',\n },\n shape: [\n {\n marginRight: '8px',\n },\n ],\n triangle: {\n width: '0',\n height: '0',\n borderLeft: '6px solid transparent',\n borderRight: '6px solid transparent',\n borderTop: '10.4px solid',\n borderTopColor: props.colorOnSelectedState,\n marginRight: '8px',\n opacity: props.colorOnSelectedState === palette.white ? '0.6' : props.opacity ? props.opacity : '',\n selectors: {\n [HighContrastSelector]: {\n border: '0px',\n height: '10.4px',\n width: '10.4px',\n clipPath: 'polygon(50% 100%, 0 0, 100% 0)',\n backgroundImage: `linear-gradient(to right, ${props.colorOnSelectedState}, ${props.colorOnSelectedState})`,\n } as IStyle,\n },\n },\n text: {\n ...fonts.small,\n lineHeight: '16px',\n color: theme?.semanticColors.bodyText,\n opacity: props.colorOnSelectedState === palette.white ? '0.6' : '',\n },\n hoverChange: {\n width: '12px',\n height: '12px',\n backgroundColor: 'white',\n marginRight: '8px',\n border: '1px solid',\n borderColor: props.borderColor ? props.borderColor : palette.black,\n },\n overflowIndicationTextStyle: [\n getFocusStyle(theme!, options),\n {\n cursor: 'pointer',\n color: theme?.semanticColors.bodyText,\n ...fonts.small,\n lineHeight: '16px',\n padding: '8px',\n },\n ],\n hoverCardRoot: {\n padding: '8px',\n },\n subComponentStyles: {\n hoverCardStyles: {\n host: [getFocusStyle(theme!, options)],\n },\n },\n };\n};\n"]}
1
+ {"version":3,"file":"Legends.styles.js","sourceRoot":"../src/","sources":["components/Legends/Legends.styles.ts"],"names":[],"mappings":"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","sourcesContent":["import { ILegendsStyles, ILegendStyleProps } from './Legends.types';\nimport { HighContrastSelector, getFocusStyle, IGetFocusStylesOptions, IStyle } from '@fluentui/react/lib/Styling';\n\nexport const getStyles = (props: ILegendStyleProps): ILegendsStyles => {\n const { className, theme, isLineLegendInBarChart = false } = props;\n const { palette, fonts } = theme!;\n const options: IGetFocusStylesOptions = {\n inset: undefined,\n position: undefined,\n highContrastStyle: {\n outlineColor: theme!.semanticColors.focusBorder,\n },\n borderColor: 'transparent',\n outlineColor: undefined,\n };\n return {\n root: [\n {\n whiteSpace: 'nowrap',\n width: '100%',\n alignItems: 'center',\n margin: '-8px 0 0 -8px',\n },\n className,\n ],\n legend: [\n getFocusStyle(theme!, options),\n {\n display: 'flex',\n alignItems: 'center',\n cursor: 'pointer',\n border: 'none',\n padding: '8px',\n background: 'none',\n textTransform: 'capitalize',\n },\n ],\n rect: {\n selectors: {\n [HighContrastSelector]: {\n content: `linear-gradient(to right, ${props.colorOnSelectedState}, ${props.colorOnSelectedState})`,\n opacity: props.colorOnSelectedState === palette.white ? '0.6' : '',\n },\n },\n width: '12px',\n height: isLineLegendInBarChart ? '4px' : '12px',\n backgroundColor: props.stripePattern ? '' : props.colorOnSelectedState,\n marginRight: '8px',\n border: '1px solid',\n borderColor: props.borderColor ? props.borderColor : theme?.semanticColors.buttonBorder,\n content: props.stripePattern\n ? // eslint-disable-next-line @fluentui/max-len\n `repeating-linear-gradient(135deg, transparent, transparent 3px, ${props.colorOnSelectedState} 1px, ${props.colorOnSelectedState} 4px)`\n : '',\n },\n shape: [\n {\n marginRight: '8px',\n },\n ],\n triangle: {\n width: '0',\n height: '0',\n borderLeft: '6px solid transparent',\n borderRight: '6px solid transparent',\n borderTop: '10.4px solid',\n borderTopColor: props.colorOnSelectedState,\n marginRight: '8px',\n opacity: props.colorOnSelectedState === palette.white ? '0.6' : props.opacity ? props.opacity : '',\n selectors: {\n [HighContrastSelector]: {\n border: '0px',\n height: '10.4px',\n width: '10.4px',\n clipPath: 'polygon(50% 100%, 0 0, 100% 0)',\n backgroundImage: `linear-gradient(to right, ${props.colorOnSelectedState}, ${props.colorOnSelectedState})`,\n } as IStyle,\n },\n },\n text: {\n ...fonts.small,\n lineHeight: '16px',\n color: theme?.semanticColors.bodyText,\n opacity: props.colorOnSelectedState === palette.white ? '0.6' : '',\n },\n hoverChange: {\n width: '12px',\n height: '12px',\n backgroundColor: 'white',\n marginRight: '8px',\n border: '1px solid',\n borderColor: props.borderColor ? props.borderColor : palette.black,\n },\n overflowIndicationTextStyle: [\n getFocusStyle(theme!, options),\n {\n cursor: 'pointer',\n color: theme?.semanticColors.bodyText,\n ...fonts.small,\n lineHeight: '16px',\n padding: '8px',\n },\n ],\n hoverCardRoot: {\n padding: '8px',\n },\n subComponentStyles: {\n hoverCardStyles: {\n host: [getFocusStyle(theme!, options)],\n },\n },\n };\n};\n"]}
@@ -1,6 +1,6 @@
1
1
  define(["require", "exports", "@fluentui/set-version"], function (require, exports, set_version_1) {
2
2
  "use strict";
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- set_version_1.setVersion('@fluentui/react-charting', '5.9.54');
4
+ set_version_1.setVersion('@fluentui/react-charting', '5.9.55');
5
5
  });
6
6
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"../src/","sources":["version.ts"],"names":[],"mappings":";;;IAGA,wBAAU,CAAC,0BAA0B,EAAE,QAAQ,CAAC,CAAC","sourcesContent":["// Do not modify this file; it is generated as part of publish.\n// The checked in version is a placeholder only and will not be updated.\nimport { setVersion } from '@fluentui/set-version';\nsetVersion('@fluentui/react-charting', '5.9.54');"]}
1
+ {"version":3,"file":"version.js","sourceRoot":"../src/","sources":["version.ts"],"names":[],"mappings":";;;IAGA,wBAAU,CAAC,0BAA0B,EAAE,QAAQ,CAAC,CAAC","sourcesContent":["// Do not modify this file; it is generated as part of publish.\n// The checked in version is a placeholder only and will not be updated.\nimport { setVersion } from '@fluentui/set-version';\nsetVersion('@fluentui/react-charting', '5.9.55');"]}
@@ -220,7 +220,7 @@ var LegendsBase = /** @class */ (function (_super) {
220
220
  return (React.createElement("button", tslib_1.__assign({}, (allowFocusOnLegends && {
221
221
  'aria-selected': _this.state.selectedLegend === legend.title,
222
222
  role: 'option',
223
- 'aria-label': legend.title,
223
+ 'aria-label': legend.title + " selected",
224
224
  'aria-setsize': data['aria-setsize'],
225
225
  'aria-posinset': data['aria-posinset'],
226
226
  }), (data.nativeButtonProps && tslib_1.__assign({}, data.nativeButtonProps)), { key: index, className: classNames.legend, onClick: onClickHandler, onMouseOver: onHoverHandler, onMouseOut: onMouseOut, onFocus: onHoverHandler, onBlur: onMouseOut, "data-is-focusable": allowFocusOnLegends }),
@@ -1 +1 @@
1
- {"version":3,"file":"Legends.base.js","sourceRoot":"../src/","sources":["components/Legends/Legends.base.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\n\nimport { IContextualMenuItem } from '@fluentui/react/lib/ContextualMenu';\nimport { HoverCard, HoverCardType, IExpandingCardProps } from '@fluentui/react/lib/HoverCard';\nimport { classNamesFunction, find, getNativeProps, buttonProperties } from '@fluentui/react/lib/Utilities';\nimport { ResizeGroup } from '@fluentui/react/lib/ResizeGroup';\nimport { IProcessedStyleSet } from '@fluentui/react/lib/Styling';\nimport { OverflowSet, IOverflowSetItemProps } from '@fluentui/react/lib/OverflowSet';\nimport { FocusZone, FocusZoneDirection } from '@fluentui/react-focus';\nimport {\n ILegend,\n ILegendsProps,\n LegendShape,\n ILegendsStyles,\n ILegendStyleProps,\n ILegendOverflowData,\n} from './Legends.types';\nimport { Shape } from './shape';\n\nimport { silceOrAppendToArray } from '../../utilities/utilities';\n\nconst getClassNames = classNamesFunction<ILegendStyleProps, ILegendsStyles>();\n\n// This is an internal interface used for rendering the legends with unique key\ninterface ILegendItem extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n name?: string;\n title: string;\n action: VoidFunction;\n hoverAction: VoidFunction;\n onMouseOutAction: VoidFunction;\n color: string;\n shape?: LegendShape;\n key: number;\n opacity?: number;\n stripePattern?: boolean;\n isLineLegendInBarChart?: boolean;\n}\n\nexport interface ILegendState {\n selectedLegend: string;\n selecetedLegendInHoverCard: string;\n selectedState: boolean;\n hoverState: boolean;\n isHoverCardVisible: boolean;\n selectedLegends: string[];\n}\nexport class LegendsBase extends React.Component<ILegendsProps, ILegendState> {\n private _hoverCardRef: HTMLDivElement;\n private _classNames: IProcessedStyleSet<ILegendsStyles>;\n\n public constructor(props: ILegendsProps) {\n super(props);\n this.state = {\n selectedLegend: 'none',\n selectedState: false,\n hoverState: false,\n isHoverCardVisible: false,\n selecetedLegendInHoverCard: 'none',\n selectedLegends: [],\n };\n }\n\n public componentDidUpdate(prevProps: ILegendsProps) {\n if (prevProps.selectedLegend !== this.props.selectedLegend) {\n this.setState({ selectedLegend: this.props.selectedLegend! });\n }\n }\n\n public render(): JSX.Element {\n const { theme, className, styles } = this.props;\n this._classNames = getClassNames(styles!, {\n theme: theme!,\n className,\n });\n const dataToRender = this._generateData();\n return (\n <div className={this._classNames.root}>\n {this.props.enabledWrapLines ? (\n this._onRenderData(dataToRender)\n ) : (\n <ResizeGroup\n data={dataToRender}\n onReduceData={this._onReduceData}\n onRenderData={this._onRenderData}\n onGrowData={this._onGrowData}\n />\n )}\n </div>\n );\n }\n\n private _generateData(): ILegendOverflowData {\n const { allowFocusOnLegends = true } = this.props;\n const dataItems: ILegendItem[] = this.props.legends.map((legend: ILegend, index: number) => {\n return {\n ...(allowFocusOnLegends && {\n nativeButtonProps: getNativeProps<React.HTMLAttributes<HTMLButtonElement>>(legend, buttonProperties, [\n 'title',\n ]),\n 'aria-setsize': this.props.legends.length,\n 'aria-posinset': index + 1,\n }),\n title: legend.title,\n action: legend.action!,\n hoverAction: legend.hoverAction!,\n onMouseOutAction: legend.onMouseOutAction!,\n color: legend.color,\n shape: legend.shape,\n stripePattern: legend.stripePattern,\n isLineLegendInBarChart: legend.isLineLegendInBarChart,\n opacity: legend.opacity,\n key: index,\n };\n });\n const result: ILegendOverflowData = {\n primary: dataItems,\n overflow: [],\n };\n return result;\n }\n\n private _onRenderData = (data: IOverflowSetItemProps | ILegendOverflowData): JSX.Element => {\n const { overflowProps, allowFocusOnLegends = true } = this.props;\n const rootStyles = {\n root: {\n justifyContent: this.props.centerLegends ? 'center' : 'unset',\n flexWrap: 'wrap',\n },\n };\n return (\n <OverflowSet\n {...(allowFocusOnLegends && { role: 'listbox', 'aria-label': 'Legends' })}\n items={data.primary}\n overflowItems={data.overflow}\n onRenderItem={this._renderButton}\n onRenderOverflowButton={this._renderOverflowItems}\n {...overflowProps}\n styles={{ ...rootStyles, ...overflowProps?.styles }}\n />\n );\n };\n\n private _onReduceData = (currentdata: IOverflowSetItemProps): {} | void => {\n if (currentdata.primary.length === 0) {\n return;\n }\n const overflow = [...currentdata.primary.slice(-1), ...currentdata.overflow];\n const primary = currentdata.primary.slice(0, -1);\n return { primary, overflow };\n };\n\n private _onGrowData = (currentdata: IOverflowSetItemProps): {} | void => {\n if (currentdata.overflow.length === 0) {\n return;\n }\n const overflow = currentdata.overflow.slice(1);\n const primary = [...currentdata.primary, ...currentdata.overflow.slice(0, 1)];\n return { primary, overflow };\n };\n\n /**\n * This function will get called when there is an ability to\n * select multiple legends\n * @param legend ILegend\n */\n private _canSelectMultipleLegends = (legend: ILegend): void => {\n const selectedLegends = silceOrAppendToArray(this.state.selectedLegends, legend.title);\n this.setState({\n //check if user selected all legends then empty it get the default behaviour\n selectedLegends: selectedLegends.length === this.props.legends.length ? [] : selectedLegends,\n // make selectedState to false if none or all the legends selected\n selectedState:\n selectedLegends.length === 0 || selectedLegends.length === this.props.legends.length ? false : true,\n selecetedLegendInHoverCard: this.state.isHoverCardVisible ? legend.title : 'none',\n selectedLegend: 'none',\n hoverState: false,\n });\n };\n\n /**\n * This function will get called when there is\n * ability to select only single legend\n * @param legend ILegend\n */\n\n private _canSelectOnlySingleLegend = (legend: ILegend): void => {\n if (this.state.selectedState === true && this.state.selectedLegend === legend.title) {\n this.setState({\n selectedLegend: 'none',\n selectedState: false,\n selecetedLegendInHoverCard: this.state.isHoverCardVisible ? legend.title : 'none',\n });\n } else {\n this.setState({\n hoverState: true,\n selectedState: true,\n selectedLegend: legend.title,\n selecetedLegendInHoverCard: this.state.isHoverCardVisible ? legend.title : 'none',\n });\n }\n };\n\n private _onClick = (legend: ILegend): void => {\n if (legend.action) {\n const { canSelectMultipleLegends = false } = this.props;\n if (canSelectMultipleLegends) {\n this._canSelectMultipleLegends(legend);\n } else {\n this._canSelectOnlySingleLegend(legend);\n }\n legend.action();\n }\n };\n\n private _onRenderCompactCard = (expandingCard: IExpandingCardProps): JSX.Element => {\n const { allowFocusOnLegends = true, className, styles, theme } = this.props;\n const overflowHoverCardLegends: JSX.Element[] = [];\n const classNames = getClassNames(styles!, {\n theme: theme!,\n className,\n });\n expandingCard.renderData.forEach((legend: IOverflowSetItemProps, index: number) => {\n const hoverCardElement = this._renderButton(legend, index, true);\n overflowHoverCardLegends.push(hoverCardElement);\n });\n const hoverCardData = (\n <FocusZone\n {...(allowFocusOnLegends && { role: 'listbox' })}\n direction={FocusZoneDirection.vertical}\n {...this.props.focusZonePropsInHoverCard}\n className={classNames.hoverCardRoot}\n >\n {overflowHoverCardLegends}\n </FocusZone>\n );\n return hoverCardData;\n };\n\n private _renderOverflowItems = (legends: ILegend[]) => {\n const { allowFocusOnLegends = true } = this.props;\n const items: IContextualMenuItem[] = [];\n legends.forEach((legend: ILegend, i: number) => {\n items.push({ key: i.toString(), name: legend.title, onClick: legend.action });\n });\n const renderOverflowData: IExpandingCardProps = { renderData: legends };\n const { theme, className, styles, overflowText } = this.props;\n const classNames = getClassNames(styles!, {\n theme: theme!,\n className,\n });\n const plainCardProps = {\n onRenderPlainCard: this._onRenderCompactCard,\n renderData: renderOverflowData,\n };\n\n const overflowString = overflowText ? overflowText : 'more';\n // execute similar to \"_onClick\" and \"_onLeave\" logic at HoverCard onCardHide event\n const onHoverCardHideHandler = () => {\n const { canSelectMultipleLegends = false } = this.props;\n const selectedOverflowItem = find(\n legends,\n (legend: ILegend) =>\n legend.title === this.state.selecetedLegendInHoverCard || legend.title === this.state.selectedLegend,\n );\n this.setState(\n {\n isHoverCardVisible: false,\n selecetedLegendInHoverCard: 'none',\n selectedLegends: [],\n },\n () => {\n if (selectedOverflowItem) {\n this.setState({ selectedLegend: 'none', selectedState: false }, () => {\n if (selectedOverflowItem.action && !canSelectMultipleLegends) {\n selectedOverflowItem.action();\n }\n if (this.props.onLegendHoverCardLeave && canSelectMultipleLegends) {\n this.props.onLegendHoverCardLeave();\n }\n this.setState({ hoverState: false }, () => {\n if (selectedOverflowItem.onMouseOutAction) {\n selectedOverflowItem.onMouseOutAction(true);\n }\n });\n });\n }\n },\n );\n };\n return (\n <HoverCard\n type={HoverCardType.plain}\n plainCardProps={plainCardProps}\n instantOpenOnClick={true}\n // eslint-disable-next-line react/jsx-no-bind\n onCardHide={onHoverCardHideHandler}\n setInitialFocus={true}\n trapFocus={true}\n onCardVisible={this._hoverCardVisible}\n styles={classNames.subComponentStyles.hoverCardStyles}\n cardDismissDelay={300}\n target={this._hoverCardRef}\n >\n <div\n className={classNames.overflowIndicationTextStyle}\n ref={(rootElem: HTMLDivElement) => (this._hoverCardRef = rootElem)}\n {...(allowFocusOnLegends && {\n role: 'link',\n 'aria-expanded': this.state.isHoverCardVisible,\n 'aria-label': `${items.length} ${overflowString}`,\n })}\n data-is-focusable={allowFocusOnLegends}\n >\n {items.length} {overflowString}\n </div>\n </HoverCard>\n );\n };\n\n private _hoverCardVisible = () => {\n this.setState({ isHoverCardVisible: true });\n };\n\n private _onHoverOverLegend = (legend: ILegend) => {\n if (!this.state.selectedState) {\n if (legend.hoverAction) {\n this.setState({ hoverState: true, selectedLegend: legend.title });\n legend.hoverAction();\n }\n }\n };\n\n private _onLeave = (legend: ILegend) => {\n if (!this.state.selectedState) {\n if (legend.onMouseOutAction) {\n this.setState({ hoverState: false, selectedLegend: 'none' });\n legend.onMouseOutAction();\n }\n }\n };\n\n private _renderButton = (data: IOverflowSetItemProps, index?: number, overflow?: boolean) => {\n const { allowFocusOnLegends = true } = this.props;\n const legend: ILegend = {\n title: data.title,\n color: data.color,\n shape: data.shape,\n action: data.action,\n hoverAction: data.hoverAction,\n onMouseOutAction: data.onMouseOutAction,\n stripePattern: data.stripePattern,\n isLineLegendInBarChart: data.isLineLegendInBarChart,\n opacity: data.opacity,\n };\n const color = this._getColor(legend.title, legend.color);\n const { theme, className, styles } = this.props;\n const classNames = getClassNames(styles!, {\n theme: theme!,\n className,\n colorOnSelectedState: color,\n borderColor: legend.color,\n overflow: overflow,\n stripePattern: legend.stripePattern,\n isLineLegendInBarChart: legend.isLineLegendInBarChart,\n opacity: legend.opacity,\n });\n const onClickHandler = () => {\n this._onClick(legend);\n };\n const onHoverHandler = () => {\n this._onHoverOverLegend(legend);\n };\n const onMouseOut = () => {\n this._onLeave(legend);\n };\n const shape = this._getShape(classNames, legend, color);\n return (\n <button\n {...(allowFocusOnLegends && {\n 'aria-selected': this.state.selectedLegend === legend.title,\n role: 'option',\n 'aria-label': legend.title,\n 'aria-setsize': data['aria-setsize'],\n 'aria-posinset': data['aria-posinset'],\n })}\n {...(data.nativeButtonProps && { ...data.nativeButtonProps })}\n key={index}\n className={classNames.legend}\n onClick={onClickHandler}\n onMouseOver={onHoverHandler}\n onMouseOut={onMouseOut}\n onFocus={onHoverHandler}\n onBlur={onMouseOut}\n data-is-focusable={allowFocusOnLegends}\n /* eslint-enable react/jsx-no-bind */\n >\n {shape}\n <div className={classNames.text}>{legend.title}</div>\n </button>\n );\n };\n\n private _getShape(\n classNames: IProcessedStyleSet<ILegendsStyles>,\n legend: ILegend,\n color: string,\n ): React.ReactNode | string {\n const svgParentProps: React.SVGAttributes<SVGElement> = {\n className: classNames.shape,\n };\n const svgChildProps: React.SVGAttributes<SVGElement> = {\n fill: color,\n strokeWidth: 2,\n stroke: legend.color,\n };\n return (\n <Shape\n svgProps={svgParentProps}\n pathProps={svgChildProps}\n shape={legend.shape as LegendShape}\n classNameForNonSvg={classNames.rect}\n />\n );\n }\n\n private _getColor(title: string, color: string): string {\n const { theme, canSelectMultipleLegends = false } = this.props;\n const { palette } = theme!;\n let legendColor = color;\n // below if statement will get executed for the hovered legend.\n // (which is also the slected legend see fucntion:-_onHoverOverLegend)\n if (this.state.hoverState && this.state.selectedLegend === title) {\n legendColor = color;\n } // below esle if statement will get executed for the unselected-legend which is hovered\n else if (this.state.hoverState && this.state.selectedLegend !== 'none' && this.state.selectedLegend !== title) {\n legendColor = palette.white;\n } // below else if statement will get executed if the legends are in the selected state\n // this is will only get executed when we have ability to select multiple legends\n else if (!!canSelectMultipleLegends && this.state.selectedState && this.state.selectedLegends.indexOf(title) > -1) {\n legendColor = color;\n } // below else if statement will get executed when no legend is selected and hovered\n //(for example:- initial render of legends)\n else if (\n (!this.state.selectedState && this.state.selectedLegend === 'none') ||\n this.state.selectedLegend === title ||\n this.state.selectedLegends.length <= 0\n ) {\n legendColor = color;\n } else {\n legendColor = palette.white;\n }\n return legendColor;\n }\n}\n"]}
1
+ {"version":3,"file":"Legends.base.js","sourceRoot":"../src/","sources":["components/Legends/Legends.base.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\n\nimport { IContextualMenuItem } from '@fluentui/react/lib/ContextualMenu';\nimport { HoverCard, HoverCardType, IExpandingCardProps } from '@fluentui/react/lib/HoverCard';\nimport { classNamesFunction, find, getNativeProps, buttonProperties } from '@fluentui/react/lib/Utilities';\nimport { ResizeGroup } from '@fluentui/react/lib/ResizeGroup';\nimport { IProcessedStyleSet } from '@fluentui/react/lib/Styling';\nimport { OverflowSet, IOverflowSetItemProps } from '@fluentui/react/lib/OverflowSet';\nimport { FocusZone, FocusZoneDirection } from '@fluentui/react-focus';\nimport {\n ILegend,\n ILegendsProps,\n LegendShape,\n ILegendsStyles,\n ILegendStyleProps,\n ILegendOverflowData,\n} from './Legends.types';\nimport { Shape } from './shape';\n\nimport { silceOrAppendToArray } from '../../utilities/utilities';\n\nconst getClassNames = classNamesFunction<ILegendStyleProps, ILegendsStyles>();\n\n// This is an internal interface used for rendering the legends with unique key\ninterface ILegendItem extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n name?: string;\n title: string;\n action: VoidFunction;\n hoverAction: VoidFunction;\n onMouseOutAction: VoidFunction;\n color: string;\n shape?: LegendShape;\n key: number;\n opacity?: number;\n stripePattern?: boolean;\n isLineLegendInBarChart?: boolean;\n}\n\nexport interface ILegendState {\n selectedLegend: string;\n selecetedLegendInHoverCard: string;\n selectedState: boolean;\n hoverState: boolean;\n isHoverCardVisible: boolean;\n selectedLegends: string[];\n}\nexport class LegendsBase extends React.Component<ILegendsProps, ILegendState> {\n private _hoverCardRef: HTMLDivElement;\n private _classNames: IProcessedStyleSet<ILegendsStyles>;\n\n public constructor(props: ILegendsProps) {\n super(props);\n this.state = {\n selectedLegend: 'none',\n selectedState: false,\n hoverState: false,\n isHoverCardVisible: false,\n selecetedLegendInHoverCard: 'none',\n selectedLegends: [],\n };\n }\n\n public componentDidUpdate(prevProps: ILegendsProps) {\n if (prevProps.selectedLegend !== this.props.selectedLegend) {\n this.setState({ selectedLegend: this.props.selectedLegend! });\n }\n }\n\n public render(): JSX.Element {\n const { theme, className, styles } = this.props;\n this._classNames = getClassNames(styles!, {\n theme: theme!,\n className,\n });\n const dataToRender = this._generateData();\n return (\n <div className={this._classNames.root}>\n {this.props.enabledWrapLines ? (\n this._onRenderData(dataToRender)\n ) : (\n <ResizeGroup\n data={dataToRender}\n onReduceData={this._onReduceData}\n onRenderData={this._onRenderData}\n onGrowData={this._onGrowData}\n />\n )}\n </div>\n );\n }\n\n private _generateData(): ILegendOverflowData {\n const { allowFocusOnLegends = true } = this.props;\n const dataItems: ILegendItem[] = this.props.legends.map((legend: ILegend, index: number) => {\n return {\n ...(allowFocusOnLegends && {\n nativeButtonProps: getNativeProps<React.HTMLAttributes<HTMLButtonElement>>(legend, buttonProperties, [\n 'title',\n ]),\n 'aria-setsize': this.props.legends.length,\n 'aria-posinset': index + 1,\n }),\n title: legend.title,\n action: legend.action!,\n hoverAction: legend.hoverAction!,\n onMouseOutAction: legend.onMouseOutAction!,\n color: legend.color,\n shape: legend.shape,\n stripePattern: legend.stripePattern,\n isLineLegendInBarChart: legend.isLineLegendInBarChart,\n opacity: legend.opacity,\n key: index,\n };\n });\n const result: ILegendOverflowData = {\n primary: dataItems,\n overflow: [],\n };\n return result;\n }\n\n private _onRenderData = (data: IOverflowSetItemProps | ILegendOverflowData): JSX.Element => {\n const { overflowProps, allowFocusOnLegends = true } = this.props;\n const rootStyles = {\n root: {\n justifyContent: this.props.centerLegends ? 'center' : 'unset',\n flexWrap: 'wrap',\n },\n };\n return (\n <OverflowSet\n {...(allowFocusOnLegends && { role: 'listbox', 'aria-label': 'Legends' })}\n items={data.primary}\n overflowItems={data.overflow}\n onRenderItem={this._renderButton}\n onRenderOverflowButton={this._renderOverflowItems}\n {...overflowProps}\n styles={{ ...rootStyles, ...overflowProps?.styles }}\n />\n );\n };\n\n private _onReduceData = (currentdata: IOverflowSetItemProps): {} | void => {\n if (currentdata.primary.length === 0) {\n return;\n }\n const overflow = [...currentdata.primary.slice(-1), ...currentdata.overflow];\n const primary = currentdata.primary.slice(0, -1);\n return { primary, overflow };\n };\n\n private _onGrowData = (currentdata: IOverflowSetItemProps): {} | void => {\n if (currentdata.overflow.length === 0) {\n return;\n }\n const overflow = currentdata.overflow.slice(1);\n const primary = [...currentdata.primary, ...currentdata.overflow.slice(0, 1)];\n return { primary, overflow };\n };\n\n /**\n * This function will get called when there is an ability to\n * select multiple legends\n * @param legend ILegend\n */\n private _canSelectMultipleLegends = (legend: ILegend): void => {\n const selectedLegends = silceOrAppendToArray(this.state.selectedLegends, legend.title);\n this.setState({\n //check if user selected all legends then empty it get the default behaviour\n selectedLegends: selectedLegends.length === this.props.legends.length ? [] : selectedLegends,\n // make selectedState to false if none or all the legends selected\n selectedState:\n selectedLegends.length === 0 || selectedLegends.length === this.props.legends.length ? false : true,\n selecetedLegendInHoverCard: this.state.isHoverCardVisible ? legend.title : 'none',\n selectedLegend: 'none',\n hoverState: false,\n });\n };\n\n /**\n * This function will get called when there is\n * ability to select only single legend\n * @param legend ILegend\n */\n\n private _canSelectOnlySingleLegend = (legend: ILegend): void => {\n if (this.state.selectedState === true && this.state.selectedLegend === legend.title) {\n this.setState({\n selectedLegend: 'none',\n selectedState: false,\n selecetedLegendInHoverCard: this.state.isHoverCardVisible ? legend.title : 'none',\n });\n } else {\n this.setState({\n hoverState: true,\n selectedState: true,\n selectedLegend: legend.title,\n selecetedLegendInHoverCard: this.state.isHoverCardVisible ? legend.title : 'none',\n });\n }\n };\n\n private _onClick = (legend: ILegend): void => {\n if (legend.action) {\n const { canSelectMultipleLegends = false } = this.props;\n if (canSelectMultipleLegends) {\n this._canSelectMultipleLegends(legend);\n } else {\n this._canSelectOnlySingleLegend(legend);\n }\n legend.action();\n }\n };\n\n private _onRenderCompactCard = (expandingCard: IExpandingCardProps): JSX.Element => {\n const { allowFocusOnLegends = true, className, styles, theme } = this.props;\n const overflowHoverCardLegends: JSX.Element[] = [];\n const classNames = getClassNames(styles!, {\n theme: theme!,\n className,\n });\n expandingCard.renderData.forEach((legend: IOverflowSetItemProps, index: number) => {\n const hoverCardElement = this._renderButton(legend, index, true);\n overflowHoverCardLegends.push(hoverCardElement);\n });\n const hoverCardData = (\n <FocusZone\n {...(allowFocusOnLegends && { role: 'listbox' })}\n direction={FocusZoneDirection.vertical}\n {...this.props.focusZonePropsInHoverCard}\n className={classNames.hoverCardRoot}\n >\n {overflowHoverCardLegends}\n </FocusZone>\n );\n return hoverCardData;\n };\n\n private _renderOverflowItems = (legends: ILegend[]) => {\n const { allowFocusOnLegends = true } = this.props;\n const items: IContextualMenuItem[] = [];\n legends.forEach((legend: ILegend, i: number) => {\n items.push({ key: i.toString(), name: legend.title, onClick: legend.action });\n });\n const renderOverflowData: IExpandingCardProps = { renderData: legends };\n const { theme, className, styles, overflowText } = this.props;\n const classNames = getClassNames(styles!, {\n theme: theme!,\n className,\n });\n const plainCardProps = {\n onRenderPlainCard: this._onRenderCompactCard,\n renderData: renderOverflowData,\n };\n\n const overflowString = overflowText ? overflowText : 'more';\n // execute similar to \"_onClick\" and \"_onLeave\" logic at HoverCard onCardHide event\n const onHoverCardHideHandler = () => {\n const { canSelectMultipleLegends = false } = this.props;\n const selectedOverflowItem = find(\n legends,\n (legend: ILegend) =>\n legend.title === this.state.selecetedLegendInHoverCard || legend.title === this.state.selectedLegend,\n );\n this.setState(\n {\n isHoverCardVisible: false,\n selecetedLegendInHoverCard: 'none',\n selectedLegends: [],\n },\n () => {\n if (selectedOverflowItem) {\n this.setState({ selectedLegend: 'none', selectedState: false }, () => {\n if (selectedOverflowItem.action && !canSelectMultipleLegends) {\n selectedOverflowItem.action();\n }\n if (this.props.onLegendHoverCardLeave && canSelectMultipleLegends) {\n this.props.onLegendHoverCardLeave();\n }\n this.setState({ hoverState: false }, () => {\n if (selectedOverflowItem.onMouseOutAction) {\n selectedOverflowItem.onMouseOutAction(true);\n }\n });\n });\n }\n },\n );\n };\n return (\n <HoverCard\n type={HoverCardType.plain}\n plainCardProps={plainCardProps}\n instantOpenOnClick={true}\n // eslint-disable-next-line react/jsx-no-bind\n onCardHide={onHoverCardHideHandler}\n setInitialFocus={true}\n trapFocus={true}\n onCardVisible={this._hoverCardVisible}\n styles={classNames.subComponentStyles.hoverCardStyles}\n cardDismissDelay={300}\n target={this._hoverCardRef}\n >\n <div\n className={classNames.overflowIndicationTextStyle}\n ref={(rootElem: HTMLDivElement) => (this._hoverCardRef = rootElem)}\n {...(allowFocusOnLegends && {\n role: 'link',\n 'aria-expanded': this.state.isHoverCardVisible,\n 'aria-label': `${items.length} ${overflowString}`,\n })}\n data-is-focusable={allowFocusOnLegends}\n >\n {items.length} {overflowString}\n </div>\n </HoverCard>\n );\n };\n\n private _hoverCardVisible = () => {\n this.setState({ isHoverCardVisible: true });\n };\n\n private _onHoverOverLegend = (legend: ILegend) => {\n if (!this.state.selectedState) {\n if (legend.hoverAction) {\n this.setState({ hoverState: true, selectedLegend: legend.title });\n legend.hoverAction();\n }\n }\n };\n\n private _onLeave = (legend: ILegend) => {\n if (!this.state.selectedState) {\n if (legend.onMouseOutAction) {\n this.setState({ hoverState: false, selectedLegend: 'none' });\n legend.onMouseOutAction();\n }\n }\n };\n\n private _renderButton = (data: IOverflowSetItemProps, index?: number, overflow?: boolean) => {\n const { allowFocusOnLegends = true } = this.props;\n const legend: ILegend = {\n title: data.title,\n color: data.color,\n shape: data.shape,\n action: data.action,\n hoverAction: data.hoverAction,\n onMouseOutAction: data.onMouseOutAction,\n stripePattern: data.stripePattern,\n isLineLegendInBarChart: data.isLineLegendInBarChart,\n opacity: data.opacity,\n };\n const color = this._getColor(legend.title, legend.color);\n const { theme, className, styles } = this.props;\n const classNames = getClassNames(styles!, {\n theme: theme!,\n className,\n colorOnSelectedState: color,\n borderColor: legend.color,\n overflow: overflow,\n stripePattern: legend.stripePattern,\n isLineLegendInBarChart: legend.isLineLegendInBarChart,\n opacity: legend.opacity,\n });\n const onClickHandler = () => {\n this._onClick(legend);\n };\n const onHoverHandler = () => {\n this._onHoverOverLegend(legend);\n };\n const onMouseOut = () => {\n this._onLeave(legend);\n };\n const shape = this._getShape(classNames, legend, color);\n return (\n <button\n {...(allowFocusOnLegends && {\n 'aria-selected': this.state.selectedLegend === legend.title,\n role: 'option',\n 'aria-label': `${legend.title} selected`,\n 'aria-setsize': data['aria-setsize'],\n 'aria-posinset': data['aria-posinset'],\n })}\n {...(data.nativeButtonProps && { ...data.nativeButtonProps })}\n key={index}\n className={classNames.legend}\n onClick={onClickHandler}\n onMouseOver={onHoverHandler}\n onMouseOut={onMouseOut}\n onFocus={onHoverHandler}\n onBlur={onMouseOut}\n data-is-focusable={allowFocusOnLegends}\n /* eslint-enable react/jsx-no-bind */\n >\n {shape}\n <div className={classNames.text}>{legend.title}</div>\n </button>\n );\n };\n\n private _getShape(\n classNames: IProcessedStyleSet<ILegendsStyles>,\n legend: ILegend,\n color: string,\n ): React.ReactNode | string {\n const svgParentProps: React.SVGAttributes<SVGElement> = {\n className: classNames.shape,\n };\n const svgChildProps: React.SVGAttributes<SVGElement> = {\n fill: color,\n strokeWidth: 2,\n stroke: legend.color,\n };\n return (\n <Shape\n svgProps={svgParentProps}\n pathProps={svgChildProps}\n shape={legend.shape as LegendShape}\n classNameForNonSvg={classNames.rect}\n />\n );\n }\n\n private _getColor(title: string, color: string): string {\n const { theme, canSelectMultipleLegends = false } = this.props;\n const { palette } = theme!;\n let legendColor = color;\n // below if statement will get executed for the hovered legend.\n // (which is also the slected legend see fucntion:-_onHoverOverLegend)\n if (this.state.hoverState && this.state.selectedLegend === title) {\n legendColor = color;\n } // below esle if statement will get executed for the unselected-legend which is hovered\n else if (this.state.hoverState && this.state.selectedLegend !== 'none' && this.state.selectedLegend !== title) {\n legendColor = palette.white;\n } // below else if statement will get executed if the legends are in the selected state\n // this is will only get executed when we have ability to select multiple legends\n else if (!!canSelectMultipleLegends && this.state.selectedState && this.state.selectedLegends.indexOf(title) > -1) {\n legendColor = color;\n } // below else if statement will get executed when no legend is selected and hovered\n //(for example:- initial render of legends)\n else if (\n (!this.state.selectedState && this.state.selectedLegend === 'none') ||\n this.state.selectedLegend === title ||\n this.state.selectedLegends.length <= 0\n ) {\n legendColor = color;\n } else {\n legendColor = palette.white;\n }\n return legendColor;\n }\n}\n"]}
@@ -35,6 +35,7 @@ var getStyles = function (props) {
35
35
  border: 'none',
36
36
  padding: '8px',
37
37
  background: 'none',
38
+ textTransform: 'capitalize',
38
39
  },
39
40
  ],
40
41
  rect: {