@cloudscape-design/components-themeable 3.0.352 → 3.0.353

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/lib/internal/manifest.json +1 -1
  2. package/lib/internal/scss/internal/components/cartesian-chart/styles.scss +38 -3
  3. package/lib/internal/scss/internal/components/chart-wrapper/styles.scss +17 -0
  4. package/lib/internal/scss/mixed-line-bar-chart/styles.scss +0 -1
  5. package/lib/internal/scss/pie-chart/styles.scss +22 -0
  6. package/lib/internal/template/area-chart/chart-container.d.ts +3 -1
  7. package/lib/internal/template/area-chart/chart-container.d.ts.map +1 -1
  8. package/lib/internal/template/area-chart/chart-container.js +3 -2
  9. package/lib/internal/template/area-chart/chart-container.js.map +1 -1
  10. package/lib/internal/template/area-chart/internal.d.ts +1 -1
  11. package/lib/internal/template/area-chart/internal.d.ts.map +1 -1
  12. package/lib/internal/template/area-chart/internal.js +3 -2
  13. package/lib/internal/template/area-chart/internal.js.map +1 -1
  14. package/lib/internal/template/area-chart/model/index.d.ts +1 -0
  15. package/lib/internal/template/area-chart/model/index.d.ts.map +1 -1
  16. package/lib/internal/template/area-chart/model/index.js.map +1 -1
  17. package/lib/internal/template/area-chart/model/use-chart-model.d.ts +2 -1
  18. package/lib/internal/template/area-chart/model/use-chart-model.d.ts.map +1 -1
  19. package/lib/internal/template/area-chart/model/use-chart-model.js +8 -2
  20. package/lib/internal/template/area-chart/model/use-chart-model.js.map +1 -1
  21. package/lib/internal/template/internal/analytics/index.d.ts.map +1 -1
  22. package/lib/internal/template/internal/analytics/index.js +1 -0
  23. package/lib/internal/template/internal/analytics/index.js.map +1 -1
  24. package/lib/internal/template/internal/analytics/interfaces.d.ts +13 -2
  25. package/lib/internal/template/internal/analytics/interfaces.d.ts.map +1 -1
  26. package/lib/internal/template/internal/analytics/interfaces.js.map +1 -1
  27. package/lib/internal/template/internal/components/cartesian-chart/chart-container.d.ts +2 -0
  28. package/lib/internal/template/internal/components/cartesian-chart/chart-container.d.ts.map +1 -1
  29. package/lib/internal/template/internal/components/cartesian-chart/chart-container.js +16 -3
  30. package/lib/internal/template/internal/components/cartesian-chart/chart-container.js.map +1 -1
  31. package/lib/internal/template/internal/components/cartesian-chart/interfaces.d.ts +5 -0
  32. package/lib/internal/template/internal/components/cartesian-chart/interfaces.d.ts.map +1 -1
  33. package/lib/internal/template/internal/components/cartesian-chart/interfaces.js.map +1 -1
  34. package/lib/internal/template/internal/components/cartesian-chart/styles.css.js +27 -23
  35. package/lib/internal/template/internal/components/cartesian-chart/styles.scoped.css +54 -27
  36. package/lib/internal/template/internal/components/cartesian-chart/styles.selectors.js +27 -23
  37. package/lib/internal/template/internal/components/chart-plot/index.d.ts +2 -2
  38. package/lib/internal/template/internal/components/chart-plot/index.d.ts.map +1 -1
  39. package/lib/internal/template/internal/components/chart-plot/index.js +3 -1
  40. package/lib/internal/template/internal/components/chart-plot/index.js.map +1 -1
  41. package/lib/internal/template/internal/components/chart-wrapper/index.d.ts +1 -0
  42. package/lib/internal/template/internal/components/chart-wrapper/index.d.ts.map +1 -1
  43. package/lib/internal/template/internal/components/chart-wrapper/index.js +21 -6
  44. package/lib/internal/template/internal/components/chart-wrapper/index.js.map +1 -1
  45. package/lib/internal/template/internal/components/chart-wrapper/styles.css.js +9 -6
  46. package/lib/internal/template/internal/components/chart-wrapper/styles.scoped.css +20 -6
  47. package/lib/internal/template/internal/components/chart-wrapper/styles.selectors.js +9 -6
  48. package/lib/internal/template/internal/environment.js +1 -1
  49. package/lib/internal/template/mixed-line-bar-chart/chart-container.d.ts +2 -1
  50. package/lib/internal/template/mixed-line-bar-chart/chart-container.d.ts.map +1 -1
  51. package/lib/internal/template/mixed-line-bar-chart/chart-container.js +8 -2
  52. package/lib/internal/template/mixed-line-bar-chart/chart-container.js.map +1 -1
  53. package/lib/internal/template/mixed-line-bar-chart/internal.d.ts +1 -1
  54. package/lib/internal/template/mixed-line-bar-chart/internal.d.ts.map +1 -1
  55. package/lib/internal/template/mixed-line-bar-chart/internal.js +3 -3
  56. package/lib/internal/template/mixed-line-bar-chart/internal.js.map +1 -1
  57. package/lib/internal/template/pie-chart/index.d.ts +1 -1
  58. package/lib/internal/template/pie-chart/index.d.ts.map +1 -1
  59. package/lib/internal/template/pie-chart/index.js +10 -3
  60. package/lib/internal/template/pie-chart/index.js.map +1 -1
  61. package/lib/internal/template/pie-chart/interfaces.d.ts +5 -0
  62. package/lib/internal/template/pie-chart/interfaces.d.ts.map +1 -1
  63. package/lib/internal/template/pie-chart/interfaces.js.map +1 -1
  64. package/lib/internal/template/pie-chart/labels.d.ts +3 -2
  65. package/lib/internal/template/pie-chart/labels.d.ts.map +1 -1
  66. package/lib/internal/template/pie-chart/labels.js +4 -4
  67. package/lib/internal/template/pie-chart/labels.js.map +1 -1
  68. package/lib/internal/template/pie-chart/pie-chart.d.ts +2 -1
  69. package/lib/internal/template/pie-chart/pie-chart.d.ts.map +1 -1
  70. package/lib/internal/template/pie-chart/pie-chart.js +18 -14
  71. package/lib/internal/template/pie-chart/pie-chart.js.map +1 -1
  72. package/lib/internal/template/pie-chart/segments.d.ts +3 -2
  73. package/lib/internal/template/pie-chart/segments.d.ts.map +1 -1
  74. package/lib/internal/template/pie-chart/segments.js +2 -6
  75. package/lib/internal/template/pie-chart/segments.js.map +1 -1
  76. package/lib/internal/template/pie-chart/styles.css.js +27 -23
  77. package/lib/internal/template/pie-chart/styles.scoped.css +58 -38
  78. package/lib/internal/template/pie-chart/styles.selectors.js +27 -23
  79. package/lib/internal/template/pie-chart/utils.d.ts +12 -2
  80. package/lib/internal/template/pie-chart/utils.d.ts.map +1 -1
  81. package/lib/internal/template/pie-chart/utils.js +37 -9
  82. package/lib/internal/template/pie-chart/utils.js.map +1 -1
  83. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"pie-chart.js","sourceRoot":"lib/default/","sources":["pie-chart/pie-chart.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjF,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,YAAY,MAAM,sCAAsC,CAAC;AAChE,OAAO,aAAa,MAAM,6CAA6C,CAAC;AACxE,OAAO,YAAY,MAAM,4CAA4C,CAAC;AACtE,OAAO,WAAW,MAAM,iBAAiB,CAAC;AAE1C,OAAO,MAAM,MAAM,UAAU,CAAC;AAE9B,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AACpF,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,SAA2B,MAAM,mCAAmC,CAAC;AAE5E,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAiC7D,eAAe,CAAgC,EAC7C,OAAO,EACP,IAAI,EACJ,WAAW,EACX,SAAS,EACT,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACtB,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,KAAK,EACL,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,OAAO,EACP,OAAO,GACkB,EAAE,EAAE;;IAC7B,MAAM,OAAO,GAAG,MAAM,CAAe,IAAI,CAAC,CAAC;IAC3C,MAAM,YAAY,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAClD,MAAM,iBAAiB,GAAG,MAAM,CAAc,IAAI,CAAC,CAAC;IACpD,MAAM,eAAe,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,MAAM,CAAqB,IAAI,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,gBAAgB,EAAE,CAAC;IAErC,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACtF,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC;IAEtC,MAAM,SAAS,GAAG,CAAC,CAAC,UAAU,IAAI,gBAAgB,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,UAAU,CAAC,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE9F,+GAA+G;IAC/G,MAAM,eAAe,GAAG,OAAO,KAAK,OAAO,IAAI,CAAC,gBAAgB,IAAI,CAAC,sBAAsB,IAAI,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC;IAElH,MAAM,aAAa,GAAG,WAAW,CAAC,wBAAwB,CAAC,CAAC;IAE5D,MAAM,CAAC,aAAa,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAC;IACjE,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,EAAkB,CAAC;IAEjE,MAAM,uBAAuB,GAAG,OAAO,CAAC,GAAG,EAAE;QAC3C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACnD,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,kBAAkB,EAAE;gBACpD,OAAO,KAAK,CAAC;aACd;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAElC,MAAM,0BAA0B,GAAG,OAAO,CACxC,GAAG,EAAE,CAAC,CAAC,mBAAmB,IAAI,kBAAkB,CAAC,CAAC,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAClG,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,CAC1C,CAAC;IAEF,MAAM,IAAI,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;IAC1C,MAAM,cAAc,GAAG,oBAAoB,IAAI,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACjF,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9E,MAAM,cAAc,GAAG,WAAW,IAAI,oBAAC,aAAa,IAAC,OAAO,EAAE,OAAO,GAAI,CAAC;IAE1E,MAAM,wBAAwB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAEpC,MAAM,gBAAgB,GAAG,WAAW,CAClC,CAAC,aAAoC,EAAE,EAAE;QACvC,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC;QACpC,IAAI,OAAO,KAAK,kBAAkB,EAAE;YAClC,iBAAiB,CAAC,OAAO,CAAC,CAAC;SAC5B;QAED,IAAI,eAAe,CAAC,OAAO,EAAE;YAC3B,cAAc,CAAC;gBACb,KAAK,EAAE,aAAa,CAAC,KAAK;gBAC1B,MAAM,EAAE;oBACN,KAAK,EAAE,aAAa,CAAC,KAAK;oBAC1B,KAAK,EAAE,aAAa,CAAC,KAAK;oBAC1B,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,KAAK;oBAChC,UAAU,EAAE,WAAW;iBACxB;gBACD,QAAQ,EAAE,eAAe;aAC1B,CAAC,CAAC;YACH,cAAc,CAAC,IAAI,CAAC,CAAC;SACtB;IACH,CAAC,EACD,CAAC,kBAAkB,EAAE,cAAc,EAAE,iBAAiB,CAAC,CACxD,CAAC;IAEF,MAAM,uBAAuB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC/C,cAAc,CAAC,KAAK,CAAC,CAAC;QACtB,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,EAAE,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC,CAAC;IAExC,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,SAAS,GAAG,CAAC,KAAoB,EAAE,EAAE;YACzC,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;gBAC1B,uBAAuB,EAAE,CAAC;gBAC1B,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;aAC9B;QACH,CAAC,CAAC;QACF,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAChD,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAClE,CAAC,EAAE,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAE9B,MAAM,WAAW,GAAG,WAAW,CAC7B,CAAC,aAAoC,EAAE,EAAE;QACvC,IAAI,aAAa,KAAK,aAAa,CAAC,KAAK,EAAE;YACzC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACvB,uBAAuB,EAAE,CAAC;SAC3B;aAAM;YACL,gBAAgB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACtC,gBAAgB,CAAC,aAAa,CAAC,CAAC;SACjC;IACH,CAAC,EACD,CAAC,aAAa,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAC7E,CAAC;IACF,MAAM,WAAW,GAAG,WAAW,CAC7B,CAAC,aAAoC,EAAE,EAAE;QACvC,IAAI,aAAa,CAAC,OAAO,EAAE;YACzB,aAAa,CAAC,OAAO,GAAG,KAAK,CAAC;YAC9B,OAAO;SACR;QACD,IAAI,aAAa,KAAK,IAAI,EAAE;YAC1B,OAAO;SACR;QACD,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAClC,CAAC,EACD,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAClC,CAAC;IACF,MAAM,UAAU,GAAG,WAAW,CAC5B,CAAC,KAA+C,EAAE,EAAE;;QAClD,IAAI,aAAa,KAAK,IAAI,KAAI,MAAA,UAAU,CAAC,OAAO,0CAAE,QAAQ,CAAC,KAAK,CAAC,aAAqB,CAAC,CAAA,EAAE;YACvF,OAAO;SACR;QAED,uBAAuB,EAAE,CAAC;IAC5B,CAAC,EACD,CAAC,aAAa,EAAE,uBAAuB,CAAC,CACzC,CAAC;IACF,MAAM,SAAS,GAAG,WAAW,CAC3B,CAAC,KAA0B,EAAE,EAAE;QAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC9B,IACE,OAAO,KAAK,OAAO,CAAC,KAAK;YACzB,OAAO,KAAK,OAAO,CAAC,IAAI;YACxB,OAAO,KAAK,OAAO,CAAC,KAAK;YACzB,OAAO,KAAK,OAAO,CAAC,KAAK,EACzB;YACA,OAAO;SACR;QAED,KAAK,CAAC,cAAc,EAAE,CAAC;QAEvB,IAAI,SAAS,GAAG,uBAAuB,IAAI,CAAC,CAAC;QAC7C,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QAC/B,IAAI,OAAO,KAAK,OAAO,CAAC,KAAK,EAAE;YAC7B,SAAS,EAAE,CAAC;YACZ,IAAI,SAAS,GAAG,GAAG,EAAE;gBACnB,SAAS,GAAG,CAAC,CAAC;aACf;SACF;aAAM,IAAI,OAAO,KAAK,OAAO,CAAC,IAAI,EAAE;YACnC,SAAS,EAAE,CAAC;YACZ,IAAI,SAAS,GAAG,CAAC,EAAE;gBACjB,SAAS,GAAG,GAAG,CAAC;aACjB;SACF;QACD,IAAI,OAAO,KAAK,OAAO,CAAC,KAAK,IAAI,OAAO,KAAK,OAAO,CAAC,KAAK,EAAE;YAC1D,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACjD;QACD,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC,EACD,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,OAAO,EAAE,uBAAuB,CAAC,CACvE,CAAC;IACF,MAAM,OAAO,GAAG,WAAW,CACzB,CAAC,MAAW,EAAE,MAA4B,EAAE,EAAE;QAC5C,oHAAoH;QACpH,oFAAoF;QACpF,6GAA6G;QAC7G,IAAI,aAAa,KAAK,IAAI,IAAI,wBAAwB,CAAC,OAAO,IAAI,MAAM,KAAK,OAAO,EAAE;YACpF,OAAO;SACR;QAED,MAAM,OAAO,GAAG,kBAAkB,IAAI,aAAa,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QAC7E,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC;QAC9D,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC,EACD,CAAC,aAAa,EAAE,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,aAAa,CAAC,CAC9E,CAAC;IAEF,MAAM,MAAM,GAAG,WAAW,CACxB,CAAC,KAAuB,EAAE,EAAE;QAC1B,MAAM,UAAU,GAAG,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,MAAM,CAAC;QACvD,IAAI,UAAU,KAAK,IAAI,IAAI,CAAC,CAAC,UAAU,YAAY,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE;YAC7G,uGAAuG;YACvG,6GAA6G;YAC7G,0FAA0F;YAC1F,cAAc,CAAC,KAAK,CAAC,CAAC;YACtB,gBAAgB,CAAC,IAAI,CAAC,CAAC;SACxB;IACH,CAAC,EACD,CAAC,gBAAgB,CAAC,CACnB,CAAC;IACF,MAAM,gBAAgB,GAAG,CAAC,YAAsB,EAAE,EAAE;QAClD,cAAc,CAAC,KAAK,CAAC,CAAC;QACtB,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAEvB,IAAI,CAAC,YAAY,EAAE;YACjB,sGAAsG;YACtG,UAAU,CAAC,GAAG,EAAE;gBACd,wBAAwB,CAAC,OAAO,GAAG,IAAI,CAAC;gBACxC,OAAO,CAAC,OAAQ,CAAC,gBAAgB,EAAE,CAAC;gBACpC,wBAAwB,CAAC,OAAO,GAAG,KAAK,CAAC;YAC3C,CAAC,EAAE,CAAC,CAAC,CAAC;SACP;aAAM;YACL,iBAAiB,CAAC,IAAI,CAAC,CAAC;SACzB;IACH,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,CAAC,KAAuB,EAAE,EAAE;QACjD,IAAI,aAAa,KAAK,IAAI,IAAI,iBAAiB,CAAC,OAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAqB,CAAC,EAAE;YAC9F,OAAO;SACR;QACD,uBAAuB,EAAE,CAAC;IAC5B,CAAC,CAAC;IAEF,OAAO,CACL,6BAAK,SAAS,EAAE,MAAM,CAAC,iBAAiB,CAAC,EAAE,GAAG,EAAE,YAAY;QAC1D,oBAAC,SAAS,IACR,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,aAAa,KAAK,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,GAAG,EAClD,SAAS,EAAE,IAAI,EACf,WAAW,EAAE,CAAC,aAAa,EAC3B,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,cAAc,EAC9B,eAAe,EAAE,eAAe,EAChC,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,EAC5D,mBAAmB,EAAE,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,wBAAwB,EAC1D,cAAc,EAAE,cAAc,EAC9B,gBAAgB,EAAE,iBAAiB,EACnC,gBAAgB,EAAE,uBAAuB,aAAvB,uBAAuB,uBAAvB,uBAAuB,CAAE,QAAQ,EAAE,EACrD,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU;YAEtB,oBAAC,QAAQ,IACP,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,iBAAiB,EAAE,iBAAiB,EACpC,eAAe,EAAE,eAAe,EAChC,kBAAkB,EAAE,kBAAkB,EACtC,0BAA0B,EAAE,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,0BAA0B,EACnE,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,UAAU,GACtB;YACD,SAAS,IAAI,CACZ,oBAAC,MAAM,IACL,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,kBAAkB,EAAE,kBAAkB,EACtC,cAAc,EAAE,OAAO,EACvB,UAAU,EAAE,UAAU,EACtB,gBAAgB,EAAE,gBAAgB,EAClC,kBAAkB,EAAE,kBAAkB,EACtC,YAAY,EAAE,YAAY,GAC1B,CACH,CACS;QACX,eAAe,IAAI,CAClB,6BAAK,SAAS,EAAE,MAAM,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,aAAa;YACvD,gBAAgB,IAAI,CACnB,oBAAC,WAAW,IAAC,OAAO,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,EAAC,KAAK,EAAC,KAAK,EAAC,SAAS,EAAC,OAAO,EAAC,GAAG,IAChG,gBAAgB,CACL,CACf;YACA,sBAAsB,IAAI,IAAI,KAAK,OAAO,IAAI,CAC7C,oBAAC,WAAW,IAAC,OAAO,EAAC,IAAI,EAAC,KAAK,EAAC,qBAAqB,EAAC,WAAW,EAAC,KAAK,EAAC,OAAO,EAAC,GAAG,IAChF,sBAAsB,CACX,CACf,CACG,CACP;QACA,aAAa,IAAI,WAAW,IAAI,CAC/B,oBAAC,YAAY,IACX,GAAG,EAAE,UAAU,EACf,KAAK,EACH,WAAW,CAAC,MAAM,IAAI,CACpB,oBAAC,WAAW,IAAC,SAAS,EAAE,MAAM,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAC,QAAQ;gBAChE,oBAAC,YAAY,IAAC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,UAAU,GAAI;gBAAC,GAAG;gBACzF,WAAW,CAAC,MAAM,CAAC,KAAK,CACb,CACf,EAEH,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAC9B,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,EAClC,aAAa,EAAE,aAAa,KAAK,IAAI,EACrC,gBAAgB,EAAE,WAAW,CAAC,6BAA6B,EAC3D,SAAS,EAAE,gBAAgB,EAC3B,SAAS,EAAE,CAAA,MAAA,OAAO,CAAC,OAAO,0CAAE,GAAG,KAAI,IAAI,EACvC,IAAI,EAAE,iBAAiB,EACvB,YAAY,EAAE,cAAc;YAE3B,cAAc;YACd,0BAA0B,IAAI,oBAAC,WAAW,IAAC,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,IAAG,0BAA0B,CAAe,CAC/F,CAChB,CACG,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { PieArcDatum } from 'd3-shape';\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { KeyCode } from '../internal/keycode';\nimport { useUniqueId } from '../internal/hooks/use-unique-id';\nimport ChartPopover from '../internal/components/chart-popover';\nimport SeriesDetails from '../internal/components/chart-series-details';\nimport SeriesMarker from '../internal/components/chart-series-marker';\nimport InternalBox from '../box/internal';\n\nimport Labels from './labels';\nimport { PieChartProps, SeriesInfo } from './interfaces';\nimport styles from './styles.css.js';\nimport { defaultDetails, dimensionsBySize, refreshDimensionsBySize } from './utils';\nimport Segments from './segments';\nimport { useVisualRefresh } from '../internal/hooks/use-visual-mode';\nimport ChartPlot, { ChartPlotRef } from '../internal/components/chart-plot';\nimport { SomeRequired } from '../internal/types';\nimport { useInternalI18n } from '../internal/i18n/context';\nimport { nodeBelongs } from '../internal/utils/node-belongs';\n\nexport interface InternalChartDatum<T> {\n index: number;\n color: string;\n datum: Readonly<T>;\n}\n\ninterface InternalPieChartProps<T extends PieChartProps.Datum>\n extends SomeRequired<\n Omit<PieChartProps<T>, 'onHighlightChange' | 'statusType'>,\n 'variant' | 'size' | 'i18nStrings' | 'hideTitles' | 'hideDescriptions'\n > {\n width: number;\n\n highlightedSegment: T | null;\n onHighlightChange: (segment: null | T) => void;\n\n legendSegment: T | null;\n\n pinnedSegment: T | null;\n setPinnedSegment: React.Dispatch<React.SetStateAction<T | null>>;\n\n pieData: PieArcDatum<InternalChartDatum<T>>[];\n dataSum: number;\n}\n\nexport interface TooltipData<T> {\n datum: T;\n trackRef: React.RefObject<SVGElement>;\n series: SeriesInfo;\n}\n\nexport default <T extends PieChartProps.Datum>({\n variant,\n size,\n i18nStrings,\n ariaLabel,\n ariaLabelledby,\n ariaDescription,\n innerMetricValue,\n innerMetricDescription,\n hideTitles,\n hideDescriptions,\n detailPopoverContent,\n detailPopoverSize,\n detailPopoverFooter,\n width,\n segmentDescription,\n highlightedSegment,\n onHighlightChange,\n legendSegment,\n pinnedSegment,\n setPinnedSegment,\n pieData,\n dataSum,\n}: InternalPieChartProps<T>) => {\n const plotRef = useRef<ChartPlotRef>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n const focusedSegmentRef = useRef<SVGGElement>(null);\n const popoverTrackRef = useRef<SVGCircleElement>(null);\n const popoverRef = useRef<HTMLElement | null>(null);\n const isRefresh = useVisualRefresh();\n\n const dimensions = isRefresh ? refreshDimensionsBySize[size] : dimensionsBySize[size];\n const radius = dimensions.outerRadius;\n\n const hasLabels = !(hideTitles && hideDescriptions);\n const height = 2 * (radius + dimensions.padding + (hasLabels ? dimensions.paddingLabels : 0));\n\n // Inner content is only available for donut charts and the inner description is not displayed for small charts\n const hasInnerContent = variant === 'donut' && (innerMetricValue || (innerMetricDescription && size !== 'small'));\n\n const innerMetricId = useUniqueId('awsui-pie-chart__inner');\n\n const [isTooltipOpen, setTooltipOpen] = useState<boolean>(false);\n const [tooltipData, setTooltipData] = useState<TooltipData<T>>();\n\n const highlightedSegmentIndex = useMemo(() => {\n for (let index = 0; index < pieData.length; index++) {\n if (pieData[index].data.datum === highlightedSegment) {\n return index;\n }\n }\n return null;\n }, [pieData, highlightedSegment]);\n\n const detailPopoverFooterContent = useMemo(\n () => (detailPopoverFooter && highlightedSegment ? detailPopoverFooter(highlightedSegment) : null),\n [detailPopoverFooter, highlightedSegment]\n );\n\n const i18n = useInternalI18n('pie-chart');\n const detailFunction = detailPopoverContent || defaultDetails(i18n, i18nStrings);\n const details = tooltipData ? detailFunction(tooltipData.datum, dataSum) : [];\n const tooltipContent = tooltipData && <SeriesDetails details={details} />;\n\n const popoverDismissedRecently = useRef(false);\n const escapePressed = useRef(false);\n\n const highlightSegment = useCallback(\n (internalDatum: InternalChartDatum<T>) => {\n const segment = internalDatum.datum;\n if (segment !== highlightedSegment) {\n onHighlightChange(segment);\n }\n\n if (popoverTrackRef.current) {\n setTooltipData({\n datum: internalDatum.datum,\n series: {\n color: internalDatum.color,\n index: internalDatum.index,\n label: internalDatum.datum.title,\n markerType: 'rectangle',\n },\n trackRef: popoverTrackRef,\n });\n setTooltipOpen(true);\n }\n },\n [highlightedSegment, setTooltipOpen, onHighlightChange]\n );\n\n const clearHighlightedSegment = useCallback(() => {\n setTooltipOpen(false);\n onHighlightChange(null);\n }, [onHighlightChange, setTooltipOpen]);\n\n useEffect(() => {\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n clearHighlightedSegment();\n escapePressed.current = true;\n }\n };\n document.addEventListener('keydown', onKeyDown);\n return () => document.removeEventListener('keydown', onKeyDown);\n }, [clearHighlightedSegment]);\n\n const onMouseDown = useCallback(\n (internalDatum: InternalChartDatum<T>) => {\n if (pinnedSegment === internalDatum.datum) {\n setPinnedSegment(null);\n clearHighlightedSegment();\n } else {\n setPinnedSegment(internalDatum.datum);\n highlightSegment(internalDatum);\n }\n },\n [pinnedSegment, clearHighlightedSegment, setPinnedSegment, highlightSegment]\n );\n const onMouseOver = useCallback(\n (internalDatum: InternalChartDatum<T>) => {\n if (escapePressed.current) {\n escapePressed.current = false;\n return;\n }\n if (pinnedSegment !== null) {\n return;\n }\n highlightSegment(internalDatum);\n },\n [pinnedSegment, highlightSegment]\n );\n const onMouseOut = useCallback(\n (event: React.MouseEvent<SVGElement, MouseEvent>) => {\n if (pinnedSegment !== null || popoverRef.current?.contains(event.relatedTarget as Node)) {\n return;\n }\n\n clearHighlightedSegment();\n },\n [pinnedSegment, clearHighlightedSegment]\n );\n const onKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n const keyCode = event.keyCode;\n if (\n keyCode !== KeyCode.right &&\n keyCode !== KeyCode.left &&\n keyCode !== KeyCode.enter &&\n keyCode !== KeyCode.space\n ) {\n return;\n }\n\n event.preventDefault();\n\n let nextIndex = highlightedSegmentIndex || 0;\n const MAX = pieData.length - 1;\n if (keyCode === KeyCode.right) {\n nextIndex++;\n if (nextIndex > MAX) {\n nextIndex = 0;\n }\n } else if (keyCode === KeyCode.left) {\n nextIndex--;\n if (nextIndex < 0) {\n nextIndex = MAX;\n }\n }\n if (keyCode === KeyCode.enter || keyCode === KeyCode.space) {\n setPinnedSegment(pieData[nextIndex].data.datum);\n }\n highlightSegment(pieData[nextIndex].data);\n },\n [setPinnedSegment, highlightSegment, pieData, highlightedSegmentIndex]\n );\n const onFocus = useCallback(\n (_event: any, target: 'keyboard' | 'mouse') => {\n // We need to make sure that we do not re-show the popover when we focus the segment after the popover is dismissed.\n // Normally we would check `event.relatedTarget` for the previously focused element,\n // but this is not supported for SVG elements in IE11. The workaround is this `popoverDismissedRecently` ref.\n if (pinnedSegment !== null || popoverDismissedRecently.current || target === 'mouse') {\n return;\n }\n\n const segment = highlightedSegment || legendSegment || pieData[0].data.datum;\n const matched = pieData.filter(d => d.data.datum === segment);\n highlightSegment(matched[0].data);\n },\n [pinnedSegment, pieData, highlightSegment, highlightedSegment, legendSegment]\n );\n\n const onBlur = useCallback(\n (event: React.FocusEvent) => {\n const blurTarget = event.relatedTarget || event.target;\n if (blurTarget === null || !(blurTarget instanceof Element) || !nodeBelongs(containerRef.current, blurTarget)) {\n // We only need to close the tooltip and remove the pinned segment so that we keep track of the current\n // highlighted legendSeries. using clearHighlightedSegment() would set the legendSeries to null, in that case\n // using Keyboard Tab will always highlight the first legend item in the legend component.\n setTooltipOpen(false);\n setPinnedSegment(null);\n }\n },\n [setPinnedSegment]\n );\n const onPopoverDismiss = (outsideClick?: boolean) => {\n setTooltipOpen(false);\n setPinnedSegment(null);\n\n if (!outsideClick) {\n // The delay is needed to bypass focus events caused by click or keypress needed to unpin the popover.\n setTimeout(() => {\n popoverDismissedRecently.current = true;\n plotRef.current!.focusApplication();\n popoverDismissedRecently.current = false;\n }, 0);\n } else {\n onHighlightChange(null);\n }\n };\n\n const onPopoverLeave = (event: React.MouseEvent) => {\n if (pinnedSegment !== null || focusedSegmentRef.current!.contains(event.relatedTarget as Node)) {\n return;\n }\n clearHighlightedSegment();\n };\n\n return (\n <div className={styles['chart-container']} ref={containerRef}>\n <ChartPlot\n ref={plotRef}\n width={width}\n height={height}\n transform={`translate(${width / 2} ${height / 2})`}\n isPrecise={true}\n isClickable={!isTooltipOpen}\n ariaLabel={ariaLabel}\n ariaLabelledby={ariaLabelledby}\n ariaDescription={ariaDescription}\n ariaDescribedby={hasInnerContent ? innerMetricId : undefined}\n ariaRoleDescription={i18nStrings?.chartAriaRoleDescription}\n ariaLiveRegion={tooltipContent}\n activeElementRef={focusedSegmentRef}\n activeElementKey={highlightedSegmentIndex?.toString()}\n onFocus={onFocus}\n onBlur={onBlur}\n onKeyDown={onKeyDown}\n onMouseOut={onMouseOut}\n >\n <Segments\n pieData={pieData}\n size={size}\n variant={variant}\n focusedSegmentRef={focusedSegmentRef}\n popoverTrackRef={popoverTrackRef}\n highlightedSegment={highlightedSegment}\n segmentAriaRoleDescription={i18nStrings?.segmentAriaRoleDescription}\n onMouseDown={onMouseDown}\n onMouseOver={onMouseOver}\n onMouseOut={onMouseOut}\n />\n {hasLabels && (\n <Labels\n pieData={pieData}\n size={size}\n segmentDescription={segmentDescription}\n visibleDataSum={dataSum}\n hideTitles={hideTitles}\n hideDescriptions={hideDescriptions}\n highlightedSegment={highlightedSegment}\n containerRef={containerRef}\n />\n )}\n </ChartPlot>\n {hasInnerContent && (\n <div className={styles['inner-content']} id={innerMetricId}>\n {innerMetricValue && (\n <InternalBox variant={size === 'small' ? 'h3' : 'h1'} tagOverride=\"div\" color=\"inherit\" padding=\"n\">\n {innerMetricValue}\n </InternalBox>\n )}\n {innerMetricDescription && size !== 'small' && (\n <InternalBox variant=\"h3\" color=\"text-body-secondary\" tagOverride=\"div\" padding=\"n\">\n {innerMetricDescription}\n </InternalBox>\n )}\n </div>\n )}\n {isTooltipOpen && tooltipData && (\n <ChartPopover\n ref={popoverRef}\n title={\n tooltipData.series && (\n <InternalBox className={styles['popover-header']} variant=\"strong\">\n <SeriesMarker color={tooltipData.series.color} type={tooltipData.series.markerType} />{' '}\n {tooltipData.series.label}\n </InternalBox>\n )\n }\n trackRef={tooltipData.trackRef}\n trackKey={tooltipData.series.index}\n dismissButton={pinnedSegment !== null}\n dismissAriaLabel={i18nStrings.detailPopoverDismissAriaLabel}\n onDismiss={onPopoverDismiss}\n container={plotRef.current?.svg || null}\n size={detailPopoverSize}\n onMouseLeave={onPopoverLeave}\n >\n {tooltipContent}\n {detailPopoverFooterContent && <InternalBox margin={{ top: 's' }}>{detailPopoverFooterContent}</InternalBox>}\n </ChartPopover>\n )}\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"pie-chart.js","sourceRoot":"lib/default/","sources":["pie-chart/pie-chart.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { PieArcDatum } from 'd3-shape';\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { KeyCode } from '../internal/keycode';\nimport { useUniqueId } from '../internal/hooks/use-unique-id';\nimport ChartPopover from '../internal/components/chart-popover';\nimport SeriesDetails from '../internal/components/chart-series-details';\nimport SeriesMarker from '../internal/components/chart-series-marker';\nimport InternalBox from '../box/internal';\n\nimport Labels from './labels';\nimport { PieChartProps, SeriesInfo } from './interfaces';\nimport styles from './styles.css.js';\nimport { defaultDetails, getDimensionsBySize } from './utils';\nimport Segments from './segments';\nimport ChartPlot, { ChartPlotRef } from '../internal/components/chart-plot';\nimport { SomeRequired } from '../internal/types';\nimport { useInternalI18n } from '../internal/i18n/context';\nimport { nodeBelongs } from '../internal/utils/node-belongs';\nimport clsx from 'clsx';\nimport { useResizeObserver } from '../internal/hooks/container-queries';\nimport { useVisualRefresh } from '../internal/hooks/use-visual-mode';\n\nexport interface InternalChartDatum<T> {\n index: number;\n color: string;\n datum: Readonly<T>;\n}\n\ninterface InternalPieChartProps<T extends PieChartProps.Datum>\n extends SomeRequired<\n Omit<PieChartProps<T>, 'onHighlightChange' | 'statusType'>,\n 'variant' | 'size' | 'i18nStrings' | 'hideTitles' | 'hideDescriptions'\n > {\n width: number;\n height: number;\n\n highlightedSegment: T | null;\n onHighlightChange: (segment: null | T) => void;\n\n legendSegment: T | null;\n\n pinnedSegment: T | null;\n setPinnedSegment: React.Dispatch<React.SetStateAction<T | null>>;\n\n pieData: PieArcDatum<InternalChartDatum<T>>[];\n dataSum: number;\n}\n\nexport interface TooltipData<T> {\n datum: T;\n trackRef: React.RefObject<SVGElement>;\n series: SeriesInfo;\n}\n\nexport default <T extends PieChartProps.Datum>({\n fitHeight,\n height: explicitHeight,\n variant,\n size,\n width,\n i18nStrings,\n ariaLabel,\n ariaLabelledby,\n ariaDescription,\n innerMetricValue,\n innerMetricDescription,\n hideTitles,\n hideDescriptions,\n detailPopoverContent,\n detailPopoverSize,\n detailPopoverFooter,\n segmentDescription,\n highlightedSegment,\n onHighlightChange,\n legendSegment,\n pinnedSegment,\n setPinnedSegment,\n pieData,\n dataSum,\n}: InternalPieChartProps<T>) => {\n const plotRef = useRef<ChartPlotRef>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n const focusedSegmentRef = useRef<SVGGElement>(null);\n const popoverTrackRef = useRef<SVGCircleElement>(null);\n const popoverRef = useRef<HTMLElement | null>(null);\n\n const hasLabels = !(hideTitles && hideDescriptions);\n const isRefresh = useVisualRefresh();\n\n const [measuredHeight, setHeight] = useState(0);\n useResizeObserver(\n () => plotRef.current?.svg ?? null,\n entry => fitHeight && setHeight(entry.borderBoxHeight)\n );\n const height = fitHeight ? measuredHeight : explicitHeight;\n\n const dimensions = useMemo(\n () =>\n getDimensionsBySize({ size: fitHeight ? Math.min(height, width) : size, hasLabels, visualRefresh: isRefresh }),\n [fitHeight, height, width, size, hasLabels, isRefresh]\n );\n\n // Inner content is only available for donut charts and the inner description is not displayed for small charts\n const hasInnerContent =\n variant === 'donut' && (innerMetricValue || (innerMetricDescription && dimensions.size !== 'small'));\n\n const innerMetricId = useUniqueId('awsui-pie-chart__inner');\n\n const [isTooltipOpen, setTooltipOpen] = useState<boolean>(false);\n const [tooltipData, setTooltipData] = useState<TooltipData<T>>();\n\n const highlightedSegmentIndex = useMemo(() => {\n for (let index = 0; index < pieData.length; index++) {\n if (pieData[index].data.datum === highlightedSegment) {\n return index;\n }\n }\n return null;\n }, [pieData, highlightedSegment]);\n\n const detailPopoverFooterContent = useMemo(\n () => (detailPopoverFooter && highlightedSegment ? detailPopoverFooter(highlightedSegment) : null),\n [detailPopoverFooter, highlightedSegment]\n );\n\n const i18n = useInternalI18n('pie-chart');\n const detailFunction = detailPopoverContent || defaultDetails(i18n, i18nStrings);\n const details = tooltipData ? detailFunction(tooltipData.datum, dataSum) : [];\n const tooltipContent = tooltipData && <SeriesDetails details={details} />;\n\n const popoverDismissedRecently = useRef(false);\n const escapePressed = useRef(false);\n\n const highlightSegment = useCallback(\n (internalDatum: InternalChartDatum<T>) => {\n const segment = internalDatum.datum;\n if (segment !== highlightedSegment) {\n onHighlightChange(segment);\n }\n\n if (popoverTrackRef.current) {\n setTooltipData({\n datum: internalDatum.datum,\n series: {\n color: internalDatum.color,\n index: internalDatum.index,\n label: internalDatum.datum.title,\n markerType: 'rectangle',\n },\n trackRef: popoverTrackRef,\n });\n setTooltipOpen(true);\n }\n },\n [highlightedSegment, setTooltipOpen, onHighlightChange]\n );\n\n const clearHighlightedSegment = useCallback(() => {\n setTooltipOpen(false);\n onHighlightChange(null);\n }, [onHighlightChange, setTooltipOpen]);\n\n useEffect(() => {\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n clearHighlightedSegment();\n escapePressed.current = true;\n }\n };\n document.addEventListener('keydown', onKeyDown);\n return () => document.removeEventListener('keydown', onKeyDown);\n }, [clearHighlightedSegment]);\n\n const onMouseDown = useCallback(\n (internalDatum: InternalChartDatum<T>) => {\n if (pinnedSegment === internalDatum.datum) {\n setPinnedSegment(null);\n clearHighlightedSegment();\n } else {\n setPinnedSegment(internalDatum.datum);\n highlightSegment(internalDatum);\n }\n },\n [pinnedSegment, clearHighlightedSegment, setPinnedSegment, highlightSegment]\n );\n const onMouseOver = useCallback(\n (internalDatum: InternalChartDatum<T>) => {\n if (escapePressed.current) {\n escapePressed.current = false;\n return;\n }\n if (pinnedSegment !== null) {\n return;\n }\n highlightSegment(internalDatum);\n },\n [pinnedSegment, highlightSegment]\n );\n const onMouseOut = useCallback(\n (event: React.MouseEvent<SVGElement, MouseEvent>) => {\n if (pinnedSegment !== null || popoverRef.current?.contains(event.relatedTarget as Node)) {\n return;\n }\n\n clearHighlightedSegment();\n },\n [pinnedSegment, clearHighlightedSegment]\n );\n const onKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n const keyCode = event.keyCode;\n if (\n keyCode !== KeyCode.right &&\n keyCode !== KeyCode.left &&\n keyCode !== KeyCode.enter &&\n keyCode !== KeyCode.space\n ) {\n return;\n }\n\n event.preventDefault();\n\n let nextIndex = highlightedSegmentIndex || 0;\n const MAX = pieData.length - 1;\n if (keyCode === KeyCode.right) {\n nextIndex++;\n if (nextIndex > MAX) {\n nextIndex = 0;\n }\n } else if (keyCode === KeyCode.left) {\n nextIndex--;\n if (nextIndex < 0) {\n nextIndex = MAX;\n }\n }\n if (keyCode === KeyCode.enter || keyCode === KeyCode.space) {\n setPinnedSegment(pieData[nextIndex].data.datum);\n }\n highlightSegment(pieData[nextIndex].data);\n },\n [setPinnedSegment, highlightSegment, pieData, highlightedSegmentIndex]\n );\n const onFocus = useCallback(\n (_event: any, target: 'keyboard' | 'mouse') => {\n // We need to make sure that we do not re-show the popover when we focus the segment after the popover is dismissed.\n // Normally we would check `event.relatedTarget` for the previously focused element,\n // but this is not supported for SVG elements in IE11. The workaround is this `popoverDismissedRecently` ref.\n if (pinnedSegment !== null || popoverDismissedRecently.current || target === 'mouse') {\n return;\n }\n\n const segment = highlightedSegment || legendSegment || pieData[0].data.datum;\n const matched = pieData.filter(d => d.data.datum === segment);\n highlightSegment(matched[0].data);\n },\n [pinnedSegment, pieData, highlightSegment, highlightedSegment, legendSegment]\n );\n\n const onBlur = useCallback(\n (event: React.FocusEvent) => {\n const blurTarget = event.relatedTarget || event.target;\n if (blurTarget === null || !(blurTarget instanceof Element) || !nodeBelongs(containerRef.current, blurTarget)) {\n // We only need to close the tooltip and remove the pinned segment so that we keep track of the current\n // highlighted legendSeries. using clearHighlightedSegment() would set the legendSeries to null, in that case\n // using Keyboard Tab will always highlight the first legend item in the legend component.\n setTooltipOpen(false);\n setPinnedSegment(null);\n }\n },\n [setPinnedSegment]\n );\n const onPopoverDismiss = (outsideClick?: boolean) => {\n setTooltipOpen(false);\n setPinnedSegment(null);\n\n if (!outsideClick) {\n // The delay is needed to bypass focus events caused by click or keypress needed to unpin the popover.\n setTimeout(() => {\n popoverDismissedRecently.current = true;\n plotRef.current!.focusApplication();\n popoverDismissedRecently.current = false;\n }, 0);\n } else {\n onHighlightChange(null);\n }\n };\n\n const onPopoverLeave = (event: React.MouseEvent) => {\n if (pinnedSegment !== null || focusedSegmentRef.current!.contains(event.relatedTarget as Node)) {\n return;\n }\n clearHighlightedSegment();\n };\n\n return (\n <div\n className={clsx(styles['chart-container'], fitHeight && styles['chart-container--fit-height'])}\n ref={containerRef}\n >\n <div\n className={clsx(\n styles['chart-container-chart-plot'],\n fitHeight && styles['chart-container-chart-plot--fit-height']\n )}\n >\n <ChartPlot\n ref={plotRef}\n width=\"100%\"\n height={fitHeight ? '100%' : height}\n transform={`translate(${width / 2} ${height / 2})`}\n isPrecise={true}\n isClickable={!isTooltipOpen}\n ariaLabel={ariaLabel}\n ariaLabelledby={ariaLabelledby}\n ariaDescription={ariaDescription}\n ariaDescribedby={hasInnerContent ? innerMetricId : undefined}\n ariaRoleDescription={i18nStrings?.chartAriaRoleDescription}\n ariaLiveRegion={tooltipContent}\n activeElementRef={focusedSegmentRef}\n activeElementKey={highlightedSegmentIndex?.toString()}\n onFocus={onFocus}\n onBlur={onBlur}\n onKeyDown={onKeyDown}\n onMouseOut={onMouseOut}\n >\n <Segments\n pieData={pieData}\n dimensions={dimensions}\n variant={variant}\n focusedSegmentRef={focusedSegmentRef}\n popoverTrackRef={popoverTrackRef}\n highlightedSegment={highlightedSegment}\n segmentAriaRoleDescription={i18nStrings?.segmentAriaRoleDescription}\n onMouseDown={onMouseDown}\n onMouseOver={onMouseOver}\n onMouseOut={onMouseOut}\n />\n {hasLabels && (\n <Labels\n pieData={pieData}\n dimensions={dimensions}\n segmentDescription={segmentDescription}\n visibleDataSum={dataSum}\n hideTitles={hideTitles}\n hideDescriptions={hideDescriptions}\n highlightedSegment={highlightedSegment}\n containerRef={containerRef}\n />\n )}\n </ChartPlot>\n </div>\n\n {hasInnerContent && (\n <div className={styles['inner-content']} id={innerMetricId}>\n {innerMetricValue && (\n <InternalBox\n variant={dimensions.size === 'small' ? 'h3' : 'h1'}\n tagOverride=\"div\"\n color=\"inherit\"\n padding=\"n\"\n >\n {innerMetricValue}\n </InternalBox>\n )}\n {innerMetricDescription && dimensions.size !== 'small' && (\n <InternalBox variant=\"h3\" color=\"text-body-secondary\" tagOverride=\"div\" padding=\"n\">\n {innerMetricDescription}\n </InternalBox>\n )}\n </div>\n )}\n {isTooltipOpen && tooltipData && (\n <ChartPopover\n ref={popoverRef}\n title={\n tooltipData.series && (\n <InternalBox className={styles['popover-header']} variant=\"strong\">\n <SeriesMarker color={tooltipData.series.color} type={tooltipData.series.markerType} />{' '}\n {tooltipData.series.label}\n </InternalBox>\n )\n }\n trackRef={tooltipData.trackRef}\n trackKey={tooltipData.series.index}\n dismissButton={pinnedSegment !== null}\n dismissAriaLabel={i18nStrings.detailPopoverDismissAriaLabel}\n onDismiss={onPopoverDismiss}\n container={plotRef.current?.svg || null}\n size={detailPopoverSize}\n onMouseLeave={onPopoverLeave}\n >\n {tooltipContent}\n {detailPopoverFooterContent && <InternalBox margin={{ top: 's' }}>{detailPopoverFooterContent}</InternalBox>}\n </ChartPopover>\n )}\n </div>\n );\n};\n"]}
@@ -1,11 +1,12 @@
1
1
  import React from 'react';
2
2
  import { PieArcDatum } from 'd3-shape';
3
3
  import { PieChartProps } from './interfaces';
4
+ import { Dimension } from './utils';
4
5
  import { InternalChartDatum } from './pie-chart';
5
6
  interface SegmentsProps<T> {
6
7
  pieData: Array<PieArcDatum<InternalChartDatum<T>>>;
7
8
  highlightedSegment: T | null;
8
- size: NonNullable<PieChartProps['size']>;
9
+ dimensions: Dimension;
9
10
  variant: PieChartProps['variant'];
10
11
  focusedSegmentRef: React.RefObject<SVGGElement>;
11
12
  popoverTrackRef: React.RefObject<SVGCircleElement>;
@@ -14,6 +15,6 @@ interface SegmentsProps<T> {
14
15
  onMouseOver: (datum: InternalChartDatum<T>) => void;
15
16
  onMouseOut: (event: React.MouseEvent<SVGElement>) => void;
16
17
  }
17
- export default function Segments<T extends PieChartProps.Datum>({ pieData, highlightedSegment, size, variant, focusedSegmentRef, popoverTrackRef, segmentAriaRoleDescription, onMouseDown, onMouseOver, onMouseOut, }: SegmentsProps<T>): JSX.Element;
18
+ export default function Segments<T extends PieChartProps.Datum>({ pieData, highlightedSegment, dimensions, variant, focusedSegmentRef, popoverTrackRef, segmentAriaRoleDescription, onMouseDown, onMouseOver, onMouseOut, }: SegmentsProps<T>): JSX.Element;
18
19
  export {};
19
20
  //# sourceMappingURL=segments.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"segments.d.ts","sourceRoot":"lib/default/","sources":["pie-chart/segments.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAkB,MAAM,OAAO,CAAC;AACvC,OAAO,EAAO,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAMjD,UAAU,aAAa,CAAC,CAAC;IACvB,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,kBAAkB,EAAE,CAAC,GAAG,IAAI,CAAC;IAC7B,IAAI,EAAE,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;IACzC,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IAClC,iBAAiB,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAChD,eAAe,EAAE,KAAK,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IACnD,0BAA0B,CAAC,EAAE,MAAM,CAAC;IAEpC,WAAW,EAAE,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IACpD,WAAW,EAAE,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IACpD,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;CAC3D;AAED,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,CAAC,SAAS,aAAa,CAAC,KAAK,EAAE,EAC9D,OAAO,EACP,kBAAkB,EAClB,IAAI,EACJ,OAAO,EACP,iBAAiB,EACjB,eAAe,EACf,0BAA0B,EAC1B,WAAW,EACX,WAAW,EACX,UAAU,GACX,EAAE,aAAa,CAAC,CAAC,CAAC,eAyElB"}
1
+ {"version":3,"file":"segments.d.ts","sourceRoot":"lib/default/","sources":["pie-chart/segments.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAkB,MAAM,OAAO,CAAC;AACvC,OAAO,EAAO,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAKjD,UAAU,aAAa,CAAC,CAAC;IACvB,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,kBAAkB,EAAE,CAAC,GAAG,IAAI,CAAC;IAC7B,UAAU,EAAE,SAAS,CAAC;IACtB,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IAClC,iBAAiB,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAChD,eAAe,EAAE,KAAK,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IACnD,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,WAAW,EAAE,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IACpD,WAAW,EAAE,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IACpD,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;CAC3D;AAED,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,CAAC,SAAS,aAAa,CAAC,KAAK,EAAE,EAC9D,OAAO,EACP,kBAAkB,EAClB,UAAU,EACV,OAAO,EACP,iBAAiB,EACjB,eAAe,EACf,0BAA0B,EAC1B,WAAW,EACX,WAAW,EACX,UAAU,GACX,EAAE,aAAa,CAAC,CAAC,CAAC,eAuElB"}
@@ -2,16 +2,12 @@
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
  import React, { useMemo } from 'react';
4
4
  import { arc } from 'd3-shape';
5
- import { dimensionsBySize, refreshDimensionsBySize } from './utils';
6
- import { useVisualRefresh } from '../internal/hooks/use-visual-mode';
7
5
  import styles from './styles.css.js';
8
6
  import clsx from 'clsx';
9
7
  import { useInternalI18n } from '../internal/i18n/context';
10
- export default function Segments({ pieData, highlightedSegment, size, variant, focusedSegmentRef, popoverTrackRef, segmentAriaRoleDescription, onMouseDown, onMouseOver, onMouseOut, }) {
8
+ export default function Segments({ pieData, highlightedSegment, dimensions, variant, focusedSegmentRef, popoverTrackRef, segmentAriaRoleDescription, onMouseDown, onMouseOver, onMouseOut, }) {
11
9
  const i18n = useInternalI18n('pie-chart');
12
- const isRefresh = useVisualRefresh();
13
10
  const { arcFactory, highlightedArcFactory } = useMemo(() => {
14
- const dimensions = isRefresh ? refreshDimensionsBySize[size] : dimensionsBySize[size];
15
11
  const radius = dimensions.outerRadius;
16
12
  const innerRadius = variant === 'pie' ? 0 : dimensions.innerRadius;
17
13
  const cornerRadius = dimensions.cornerRadius || 0;
@@ -26,7 +22,7 @@ export default function Segments({ pieData, highlightedSegment, size, variant, f
26
22
  arcFactory,
27
23
  highlightedArcFactory,
28
24
  };
29
- }, [size, variant, isRefresh]);
25
+ }, [dimensions, variant]);
30
26
  const centroid = useMemo(() => {
31
27
  for (const datum of pieData) {
32
28
  if (datum.data.datum === highlightedSegment) {
@@ -1 +1 @@
1
- {"version":3,"file":"segments.js","sourceRoot":"lib/default/","sources":["pie-chart/segments.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useMemo } from 'react';\nimport { arc, PieArcDatum } from 'd3-shape';\n\nimport { PieChartProps } from './interfaces';\nimport { dimensionsBySize, refreshDimensionsBySize } from './utils';\nimport { InternalChartDatum } from './pie-chart';\nimport { useVisualRefresh } from '../internal/hooks/use-visual-mode';\nimport styles from './styles.css.js';\nimport clsx from 'clsx';\nimport { useInternalI18n } from '../internal/i18n/context';\n\ninterface SegmentsProps<T> {\n pieData: Array<PieArcDatum<InternalChartDatum<T>>>;\n highlightedSegment: T | null;\n size: NonNullable<PieChartProps['size']>;\n variant: PieChartProps['variant'];\n focusedSegmentRef: React.RefObject<SVGGElement>;\n popoverTrackRef: React.RefObject<SVGCircleElement>;\n segmentAriaRoleDescription?: string;\n\n onMouseDown: (datum: InternalChartDatum<T>) => void;\n onMouseOver: (datum: InternalChartDatum<T>) => void;\n onMouseOut: (event: React.MouseEvent<SVGElement>) => void;\n}\n\nexport default function Segments<T extends PieChartProps.Datum>({\n pieData,\n highlightedSegment,\n size,\n variant,\n focusedSegmentRef,\n popoverTrackRef,\n segmentAriaRoleDescription,\n onMouseDown,\n onMouseOver,\n onMouseOut,\n}: SegmentsProps<T>) {\n const i18n = useInternalI18n('pie-chart');\n const isRefresh = useVisualRefresh();\n\n const { arcFactory, highlightedArcFactory } = useMemo(() => {\n const dimensions = isRefresh ? refreshDimensionsBySize[size] : dimensionsBySize[size];\n const radius = dimensions.outerRadius;\n const innerRadius = variant === 'pie' ? 0 : dimensions.innerRadius;\n const cornerRadius = dimensions.cornerRadius || 0;\n\n const arcFactory = arc<PieArcDatum<InternalChartDatum<any>>>()\n .innerRadius(innerRadius)\n .outerRadius(radius)\n .cornerRadius(cornerRadius);\n\n const highlightedArcFactory = arc<PieArcDatum<InternalChartDatum<any>>>()\n .innerRadius(radius + 4)\n .outerRadius(radius + 6);\n\n return {\n arcFactory,\n highlightedArcFactory,\n };\n }, [size, variant, isRefresh]);\n\n const centroid = useMemo(() => {\n for (const datum of pieData) {\n if (datum.data.datum === highlightedSegment) {\n const [centroidLeft, centroidTop] = arcFactory.centroid(datum);\n return { cx: centroidLeft, cy: centroidTop };\n }\n }\n return null;\n }, [highlightedSegment, pieData, arcFactory]);\n\n return (\n <g onMouseLeave={event => onMouseOut(event)}>\n {pieData.map(datum => {\n const isHighlighted = highlightedSegment === datum.data.datum;\n const isDimmed = highlightedSegment !== null && !isHighlighted;\n const arcPath = arcFactory(datum) || undefined;\n const highlightedPath = highlightedArcFactory(datum) || undefined;\n return (\n <g\n key={datum.data.index}\n onMouseDown={e => {\n onMouseDown(datum.data);\n e.preventDefault();\n }}\n onMouseOver={() => onMouseOver(datum.data)}\n className={clsx(styles.segment, {\n [styles['segment--highlighted']]: isHighlighted,\n [styles['segment--dimmed']]: isDimmed,\n })}\n ref={isHighlighted ? focusedSegmentRef : undefined}\n aria-label={`${datum.data.datum.title} (${datum.data.datum.value})`}\n role=\"button\"\n aria-roledescription={i18n('i18nStrings.segmentAriaRoleDescription', segmentAriaRoleDescription)}\n >\n <path d={arcPath} fill={datum.data.color} className={styles.segment__path} aria-hidden=\"true\" />\n <path\n d={highlightedPath}\n fill={datum.data.color}\n className={clsx(styles.segment__path, styles.segment__highlight)}\n aria-hidden=\"true\"\n />\n </g>\n );\n })}\n\n <circle {...centroid} ref={popoverTrackRef} r=\"1\" opacity=\"0\" aria-hidden=\"true\" />\n </g>\n );\n}\n"]}
1
+ {"version":3,"file":"segments.js","sourceRoot":"lib/default/","sources":["pie-chart/segments.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useMemo } from 'react';\nimport { arc, PieArcDatum } from 'd3-shape';\n\nimport { PieChartProps } from './interfaces';\nimport { Dimension } from './utils';\nimport { InternalChartDatum } from './pie-chart';\nimport styles from './styles.css.js';\nimport clsx from 'clsx';\nimport { useInternalI18n } from '../internal/i18n/context';\n\ninterface SegmentsProps<T> {\n pieData: Array<PieArcDatum<InternalChartDatum<T>>>;\n highlightedSegment: T | null;\n dimensions: Dimension;\n variant: PieChartProps['variant'];\n focusedSegmentRef: React.RefObject<SVGGElement>;\n popoverTrackRef: React.RefObject<SVGCircleElement>;\n segmentAriaRoleDescription?: string;\n onMouseDown: (datum: InternalChartDatum<T>) => void;\n onMouseOver: (datum: InternalChartDatum<T>) => void;\n onMouseOut: (event: React.MouseEvent<SVGElement>) => void;\n}\n\nexport default function Segments<T extends PieChartProps.Datum>({\n pieData,\n highlightedSegment,\n dimensions,\n variant,\n focusedSegmentRef,\n popoverTrackRef,\n segmentAriaRoleDescription,\n onMouseDown,\n onMouseOver,\n onMouseOut,\n}: SegmentsProps<T>) {\n const i18n = useInternalI18n('pie-chart');\n\n const { arcFactory, highlightedArcFactory } = useMemo(() => {\n const radius = dimensions.outerRadius;\n const innerRadius = variant === 'pie' ? 0 : dimensions.innerRadius;\n const cornerRadius = dimensions.cornerRadius || 0;\n\n const arcFactory = arc<PieArcDatum<InternalChartDatum<any>>>()\n .innerRadius(innerRadius)\n .outerRadius(radius)\n .cornerRadius(cornerRadius);\n\n const highlightedArcFactory = arc<PieArcDatum<InternalChartDatum<any>>>()\n .innerRadius(radius + 4)\n .outerRadius(radius + 6);\n\n return {\n arcFactory,\n highlightedArcFactory,\n };\n }, [dimensions, variant]);\n\n const centroid = useMemo(() => {\n for (const datum of pieData) {\n if (datum.data.datum === highlightedSegment) {\n const [centroidLeft, centroidTop] = arcFactory.centroid(datum);\n return { cx: centroidLeft, cy: centroidTop };\n }\n }\n return null;\n }, [highlightedSegment, pieData, arcFactory]);\n\n return (\n <g onMouseLeave={event => onMouseOut(event)}>\n {pieData.map(datum => {\n const isHighlighted = highlightedSegment === datum.data.datum;\n const isDimmed = highlightedSegment !== null && !isHighlighted;\n const arcPath = arcFactory(datum) || undefined;\n const highlightedPath = highlightedArcFactory(datum) || undefined;\n return (\n <g\n key={datum.data.index}\n onMouseDown={e => {\n onMouseDown(datum.data);\n e.preventDefault();\n }}\n onMouseOver={() => onMouseOver(datum.data)}\n className={clsx(styles.segment, {\n [styles['segment--highlighted']]: isHighlighted,\n [styles['segment--dimmed']]: isDimmed,\n })}\n ref={isHighlighted ? focusedSegmentRef : undefined}\n aria-label={`${datum.data.datum.title} (${datum.data.datum.value})`}\n role=\"button\"\n aria-roledescription={i18n('i18nStrings.segmentAriaRoleDescription', segmentAriaRoleDescription)}\n >\n <path d={arcPath} fill={datum.data.color} className={styles.segment__path} aria-hidden=\"true\" />\n <path\n d={highlightedPath}\n fill={datum.data.color}\n className={clsx(styles.segment__path, styles.segment__highlight)}\n aria-hidden=\"true\"\n />\n </g>\n );\n })}\n\n <circle {...centroid} ref={popoverTrackRef} r=\"1\" opacity=\"0\" aria-hidden=\"true\" />\n </g>\n );\n}\n"]}
@@ -1,28 +1,32 @@
1
1
 
2
2
  import './styles.scoped.css';
3
3
  export default {
4
- "segment__path": "awsui_segment__path_1edmh_1wlu5_97",
5
- "segment": "awsui_segment_1edmh_1wlu5_97",
6
- "segment__hover": "awsui_segment__hover_1edmh_1wlu5_124",
7
- "label": "awsui_label_1edmh_1wlu5_138",
8
- "root": "awsui_root_1edmh_1wlu5_156",
9
- "content": "awsui_content_1edmh_1wlu5_160",
10
- "content--small": "awsui_content--small_1edmh_1wlu5_160",
11
- "content--without-labels": "awsui_content--without-labels_1edmh_1wlu5_163",
12
- "content--medium": "awsui_content--medium_1edmh_1wlu5_166",
13
- "content--large": "awsui_content--large_1edmh_1wlu5_172",
14
- "status-container": "awsui_status-container_1edmh_1wlu5_179",
15
- "chart-container": "awsui_chart-container_1edmh_1wlu5_183",
16
- "inner-content": "awsui_inner-content_1edmh_1wlu5_188",
17
- "segment__highlight": "awsui_segment__highlight_1edmh_1wlu5_202",
18
- "segment--dimmed": "awsui_segment--dimmed_1edmh_1wlu5_217",
19
- "segment--highlighted": "awsui_segment--highlighted_1edmh_1wlu5_220",
20
- "label--dimmed": "awsui_label--dimmed_1edmh_1wlu5_237",
21
- "label--align-right": "awsui_label--align-right_1edmh_1wlu5_240",
22
- "label-text": "awsui_label-text_1edmh_1wlu5_248",
23
- "label__description": "awsui_label__description_1edmh_1wlu5_256",
24
- "label-line": "awsui_label-line_1edmh_1wlu5_263",
25
- "label--highlighted": "awsui_label--highlighted_1edmh_1wlu5_267",
26
- "popover-header": "awsui_popover-header_1edmh_1wlu5_271"
4
+ "segment__path": "awsui_segment__path_1edmh_eu9tp_97",
5
+ "segment": "awsui_segment_1edmh_eu9tp_97",
6
+ "segment__hover": "awsui_segment__hover_1edmh_eu9tp_124",
7
+ "label": "awsui_label_1edmh_eu9tp_138",
8
+ "root": "awsui_root_1edmh_eu9tp_156",
9
+ "content": "awsui_content_1edmh_eu9tp_160",
10
+ "content--small": "awsui_content--small_1edmh_eu9tp_160",
11
+ "content--without-labels": "awsui_content--without-labels_1edmh_eu9tp_163",
12
+ "content--medium": "awsui_content--medium_1edmh_eu9tp_166",
13
+ "content--large": "awsui_content--large_1edmh_eu9tp_172",
14
+ "content--fit-height": "awsui_content--fit-height_1edmh_eu9tp_179",
15
+ "status-container": "awsui_status-container_1edmh_eu9tp_183",
16
+ "chart-container": "awsui_chart-container_1edmh_eu9tp_187",
17
+ "chart-container--fit-height": "awsui_chart-container--fit-height_1edmh_eu9tp_191",
18
+ "chart-container-chart-plot": "awsui_chart-container-chart-plot_1edmh_eu9tp_196",
19
+ "chart-container-chart-plot--fit-height": "awsui_chart-container-chart-plot--fit-height_1edmh_eu9tp_199",
20
+ "inner-content": "awsui_inner-content_1edmh_eu9tp_208",
21
+ "segment__highlight": "awsui_segment__highlight_1edmh_eu9tp_222",
22
+ "segment--dimmed": "awsui_segment--dimmed_1edmh_eu9tp_237",
23
+ "segment--highlighted": "awsui_segment--highlighted_1edmh_eu9tp_240",
24
+ "label--dimmed": "awsui_label--dimmed_1edmh_eu9tp_257",
25
+ "label--align-right": "awsui_label--align-right_1edmh_eu9tp_260",
26
+ "label-text": "awsui_label-text_1edmh_eu9tp_268",
27
+ "label__description": "awsui_label__description_1edmh_eu9tp_276",
28
+ "label-line": "awsui_label-line_1edmh_eu9tp_283",
29
+ "label--highlighted": "awsui_label--highlighted_1edmh_eu9tp_287",
30
+ "popover-header": "awsui_popover-header_1edmh_eu9tp_291"
27
31
  };
28
32
 
@@ -94,57 +94,57 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
94
94
  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
95
95
  SPDX-License-Identifier: Apache-2.0
96
96
  */
97
- .awsui_segment__path_1edmh_1wlu5_97:not(#\9) {
97
+ .awsui_segment__path_1edmh_eu9tp_97:not(#\9) {
98
98
  transition: opacity var(--motion-duration-transition-quick-s6zxev, 90ms) var(--motion-easing-transition-quick-1rczl6, linear);
99
99
  }
100
100
  @media (prefers-reduced-motion: reduce) {
101
- .awsui_segment__path_1edmh_1wlu5_97:not(#\9) {
101
+ .awsui_segment__path_1edmh_eu9tp_97:not(#\9) {
102
102
  animation: none;
103
103
  transition: none;
104
104
  }
105
105
  }
106
- .awsui-motion-disabled .awsui_segment__path_1edmh_1wlu5_97:not(#\9), .awsui-mode-entering .awsui_segment__path_1edmh_1wlu5_97:not(#\9) {
106
+ .awsui-motion-disabled .awsui_segment__path_1edmh_eu9tp_97:not(#\9), .awsui-mode-entering .awsui_segment__path_1edmh_eu9tp_97:not(#\9) {
107
107
  animation: none;
108
108
  transition: none;
109
109
  }
110
110
 
111
- .awsui_segment_1edmh_1wlu5_97:not(#\9) {
111
+ .awsui_segment_1edmh_eu9tp_97:not(#\9) {
112
112
  transition: opacity var(--motion-duration-transition-quick-s6zxev, 90ms) var(--motion-easing-transition-quick-1rczl6, linear);
113
113
  }
114
114
  @media (prefers-reduced-motion: reduce) {
115
- .awsui_segment_1edmh_1wlu5_97:not(#\9) {
115
+ .awsui_segment_1edmh_eu9tp_97:not(#\9) {
116
116
  animation: none;
117
117
  transition: none;
118
118
  }
119
119
  }
120
- .awsui-motion-disabled .awsui_segment_1edmh_1wlu5_97:not(#\9), .awsui-mode-entering .awsui_segment_1edmh_1wlu5_97:not(#\9) {
120
+ .awsui-motion-disabled .awsui_segment_1edmh_eu9tp_97:not(#\9), .awsui-mode-entering .awsui_segment_1edmh_eu9tp_97:not(#\9) {
121
121
  animation: none;
122
122
  transition: none;
123
123
  }
124
- .awsui_segment_1edmh_1wlu5_97 > .awsui_segment__hover_1edmh_1wlu5_124:not(#\9) {
124
+ .awsui_segment_1edmh_eu9tp_97 > .awsui_segment__hover_1edmh_eu9tp_124:not(#\9) {
125
125
  transition: opacity var(--motion-duration-transition-quick-s6zxev, 90ms) var(--motion-easing-transition-quick-1rczl6, linear);
126
126
  }
127
127
  @media (prefers-reduced-motion: reduce) {
128
- .awsui_segment_1edmh_1wlu5_97 > .awsui_segment__hover_1edmh_1wlu5_124:not(#\9) {
128
+ .awsui_segment_1edmh_eu9tp_97 > .awsui_segment__hover_1edmh_eu9tp_124:not(#\9) {
129
129
  animation: none;
130
130
  transition: none;
131
131
  }
132
132
  }
133
- .awsui-motion-disabled .awsui_segment_1edmh_1wlu5_97 > .awsui_segment__hover_1edmh_1wlu5_124:not(#\9), .awsui-mode-entering .awsui_segment_1edmh_1wlu5_97 > .awsui_segment__hover_1edmh_1wlu5_124:not(#\9) {
133
+ .awsui-motion-disabled .awsui_segment_1edmh_eu9tp_97 > .awsui_segment__hover_1edmh_eu9tp_124:not(#\9), .awsui-mode-entering .awsui_segment_1edmh_eu9tp_97 > .awsui_segment__hover_1edmh_eu9tp_124:not(#\9) {
134
134
  animation: none;
135
135
  transition: none;
136
136
  }
137
137
 
138
- .awsui_label_1edmh_1wlu5_138:not(#\9) {
138
+ .awsui_label_1edmh_eu9tp_138:not(#\9) {
139
139
  transition: opacity var(--motion-duration-transition-quick-s6zxev, 90ms) var(--motion-easing-transition-quick-1rczl6, linear);
140
140
  }
141
141
  @media (prefers-reduced-motion: reduce) {
142
- .awsui_label_1edmh_1wlu5_138:not(#\9) {
142
+ .awsui_label_1edmh_eu9tp_138:not(#\9) {
143
143
  animation: none;
144
144
  transition: none;
145
145
  }
146
146
  }
147
- .awsui-motion-disabled .awsui_label_1edmh_1wlu5_138:not(#\9), .awsui-mode-entering .awsui_label_1edmh_1wlu5_138:not(#\9) {
147
+ .awsui-motion-disabled .awsui_label_1edmh_eu9tp_138:not(#\9), .awsui-mode-entering .awsui_label_1edmh_eu9tp_138:not(#\9) {
148
148
  animation: none;
149
149
  transition: none;
150
150
  }
@@ -153,39 +153,59 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
153
153
  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
154
154
  SPDX-License-Identifier: Apache-2.0
155
155
  */
156
- .awsui_root_1edmh_1wlu5_156:not(#\9) {
156
+ .awsui_root_1edmh_eu9tp_156:not(#\9) {
157
157
  /* used in test-utils */
158
158
  }
159
159
 
160
- .awsui_content_1edmh_1wlu5_160.awsui_content--small_1edmh_1wlu5_160:not(#\9) {
160
+ .awsui_content_1edmh_eu9tp_160.awsui_content--small_1edmh_eu9tp_160:not(#\9) {
161
161
  min-height: calc(2 * (50px + var(--space-xs-7veqkr, 8px) + calc(2 * var(--font-body-m-line-height-43ichb, 22px))));
162
162
  }
163
- .awsui_content_1edmh_1wlu5_160.awsui_content--small_1edmh_1wlu5_160.awsui_content--without-labels_1edmh_1wlu5_163:not(#\9) {
163
+ .awsui_content_1edmh_eu9tp_160.awsui_content--small_1edmh_eu9tp_160.awsui_content--without-labels_1edmh_eu9tp_163:not(#\9) {
164
164
  min-height: calc(2 * (50px + var(--space-xs-7veqkr, 8px)));
165
165
  }
166
- .awsui_content_1edmh_1wlu5_160.awsui_content--medium_1edmh_1wlu5_166:not(#\9) {
166
+ .awsui_content_1edmh_eu9tp_160.awsui_content--medium_1edmh_eu9tp_166:not(#\9) {
167
167
  min-height: calc(2 * (100px + var(--space-s-o95p2n, 12px) + calc(2 * var(--font-body-m-line-height-43ichb, 22px))));
168
168
  }
169
- .awsui_content_1edmh_1wlu5_160.awsui_content--medium_1edmh_1wlu5_166.awsui_content--without-labels_1edmh_1wlu5_163:not(#\9) {
169
+ .awsui_content_1edmh_eu9tp_160.awsui_content--medium_1edmh_eu9tp_166.awsui_content--without-labels_1edmh_eu9tp_163:not(#\9) {
170
170
  min-height: calc(2 * (100px + var(--space-s-o95p2n, 12px)));
171
171
  }
172
- .awsui_content_1edmh_1wlu5_160.awsui_content--large_1edmh_1wlu5_172:not(#\9) {
172
+ .awsui_content_1edmh_eu9tp_160.awsui_content--large_1edmh_eu9tp_172:not(#\9) {
173
173
  min-height: calc(2 * (140px + var(--space-s-o95p2n, 12px) + calc(2 * var(--font-body-m-line-height-43ichb, 22px))));
174
174
  }
175
- .awsui_content_1edmh_1wlu5_160.awsui_content--large_1edmh_1wlu5_172.awsui_content--without-labels_1edmh_1wlu5_163:not(#\9) {
175
+ .awsui_content_1edmh_eu9tp_160.awsui_content--large_1edmh_eu9tp_172.awsui_content--without-labels_1edmh_eu9tp_163:not(#\9) {
176
176
  min-height: calc(2 * (140px + var(--space-s-o95p2n, 12px)));
177
177
  }
178
178
 
179
- .awsui_status-container_1edmh_1wlu5_179:not(#\9) {
179
+ .awsui_content--fit-height_1edmh_eu9tp_179:not(#\9) {
180
+ flex: 1;
181
+ }
182
+
183
+ .awsui_status-container_1edmh_eu9tp_183:not(#\9) {
180
184
  /* used in test utils */
181
185
  }
182
186
 
183
- .awsui_chart-container_1edmh_1wlu5_183:not(#\9) {
187
+ .awsui_chart-container_1edmh_eu9tp_187:not(#\9) {
184
188
  display: flex;
185
189
  flex: 1;
186
190
  }
191
+ .awsui_chart-container--fit-height_1edmh_eu9tp_191:not(#\9) {
192
+ height: 100%;
193
+ min-height: inherit;
194
+ }
195
+
196
+ .awsui_chart-container-chart-plot_1edmh_eu9tp_196:not(#\9) {
197
+ display: contents;
198
+ }
199
+ .awsui_chart-container-chart-plot--fit-height_1edmh_eu9tp_199:not(#\9) {
200
+ display: block;
201
+ position: absolute;
202
+ top: 0;
203
+ right: 0;
204
+ bottom: 0;
205
+ left: 0;
206
+ }
187
207
 
188
- .awsui_inner-content_1edmh_1wlu5_188:not(#\9) {
208
+ .awsui_inner-content_1edmh_eu9tp_208:not(#\9) {
189
209
  display: flex;
190
210
  position: absolute;
191
211
  flex-direction: column;
@@ -199,53 +219,53 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
199
219
  pointer-events: none;
200
220
  }
201
221
 
202
- .awsui_segment__highlight_1edmh_1wlu5_202:not(#\9) {
222
+ .awsui_segment__highlight_1edmh_eu9tp_222:not(#\9) {
203
223
  stroke: none;
204
224
  opacity: 0;
205
225
  }
206
226
 
207
- .awsui_segment_1edmh_1wlu5_97:not(#\9) {
227
+ .awsui_segment_1edmh_eu9tp_97:not(#\9) {
208
228
  stroke: var(--color-background-container-content-xlzim4, #ffffff);
209
229
  stroke-width: 2px;
210
230
  stroke-linejoin: round;
211
231
  opacity: 1;
212
232
  cursor: pointer;
213
233
  }
214
- .awsui_segment_1edmh_1wlu5_97:not(#\9):focus {
234
+ .awsui_segment_1edmh_eu9tp_97:not(#\9):focus {
215
235
  outline: none;
216
236
  }
217
- .awsui_segment_1edmh_1wlu5_97.awsui_segment--dimmed_1edmh_1wlu5_217:not(#\9) {
237
+ .awsui_segment_1edmh_eu9tp_97.awsui_segment--dimmed_1edmh_eu9tp_237:not(#\9) {
218
238
  opacity: 0.35;
219
239
  }
220
- .awsui_segment_1edmh_1wlu5_97.awsui_segment--highlighted_1edmh_1wlu5_220 > .awsui_segment__highlight_1edmh_1wlu5_202:not(#\9), .awsui_segment_1edmh_1wlu5_97:not(#\9):hover:not(.awsui_segment--dimmed_1edmh_1wlu5_217) > .awsui_segment__highlight_1edmh_1wlu5_202 {
240
+ .awsui_segment_1edmh_eu9tp_97.awsui_segment--highlighted_1edmh_eu9tp_240 > .awsui_segment__highlight_1edmh_eu9tp_222:not(#\9), .awsui_segment_1edmh_eu9tp_97:not(#\9):hover:not(.awsui_segment--dimmed_1edmh_eu9tp_237) > .awsui_segment__highlight_1edmh_eu9tp_222 {
221
241
  opacity: 1;
222
242
  }
223
243
 
224
- .awsui_label_1edmh_1wlu5_138:not(#\9) {
244
+ .awsui_label_1edmh_eu9tp_138:not(#\9) {
225
245
  color: var(--color-text-heading-default-pytdm8, #16191f);
226
246
  opacity: 1;
227
247
  /* stylelint-disable-next-line selector-max-type */
228
248
  /* stylelint-disable-next-line selector-max-type */
229
249
  }
230
- .awsui_label_1edmh_1wlu5_138 > line:not(#\9) {
250
+ .awsui_label_1edmh_eu9tp_138 > line:not(#\9) {
231
251
  stroke: var(--color-stroke-chart-line-sahr4b, #879596);
232
252
  stroke-width: var(--border-divider-section-width-p0xg84, 1px);
233
253
  }
234
- .awsui_label_1edmh_1wlu5_138 > div:not(#\9) {
254
+ .awsui_label_1edmh_eu9tp_138 > div:not(#\9) {
235
255
  margin-top: -0.75em;
236
256
  }
237
- .awsui_label_1edmh_1wlu5_138.awsui_label--dimmed_1edmh_1wlu5_237:not(#\9) {
257
+ .awsui_label_1edmh_eu9tp_138.awsui_label--dimmed_1edmh_eu9tp_257:not(#\9) {
238
258
  opacity: 0.35;
239
259
  }
240
- .awsui_label_1edmh_1wlu5_138.awsui_label--align-right_1edmh_1wlu5_240:not(#\9) {
260
+ .awsui_label_1edmh_eu9tp_138.awsui_label--align-right_1edmh_eu9tp_260:not(#\9) {
241
261
  /* stylelint-disable-next-line selector-max-type */
242
262
  }
243
- .awsui_label_1edmh_1wlu5_138.awsui_label--align-right_1edmh_1wlu5_240 > div:not(#\9) {
263
+ .awsui_label_1edmh_eu9tp_138.awsui_label--align-right_1edmh_eu9tp_260 > div:not(#\9) {
244
264
  text-align: right;
245
265
  }
246
266
 
247
267
  /* stylelint-disable-next-line selector-max-type */
248
- .awsui_label-text_1edmh_1wlu5_248 > text:not(#\9) {
268
+ .awsui_label-text_1edmh_eu9tp_268 > text:not(#\9) {
249
269
  font-size: var(--font-body-m-size-0qqejn, 14px);
250
270
  line-height: var(--font-body-m-line-height-43ichb, 22px);
251
271
  font-weight: var(--font-display-label-weight-udcxbe, 400);
@@ -253,22 +273,22 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
253
273
  dominant-baseline: middle;
254
274
  }
255
275
 
256
- text.awsui_label__description_1edmh_1wlu5_256:not(#\9) {
276
+ text.awsui_label__description_1edmh_eu9tp_276:not(#\9) {
257
277
  font-size: var(--font-chart-detail-size-32v9jd, 14px);
258
278
  font-weight: 400;
259
279
  color: var(--color-text-group-label-it5ws2, #545b64);
260
280
  fill: var(--color-text-group-label-it5ws2, #545b64);
261
281
  }
262
282
 
263
- .awsui_label-line_1edmh_1wlu5_263:not(#\9) {
283
+ .awsui_label-line_1edmh_eu9tp_283:not(#\9) {
264
284
  /* used in component code */
265
285
  }
266
286
 
267
- .awsui_label--highlighted_1edmh_1wlu5_267:not(#\9) {
287
+ .awsui_label--highlighted_1edmh_eu9tp_287:not(#\9) {
268
288
  /* used in test-utils */
269
289
  }
270
290
 
271
- .awsui_popover-header_1edmh_1wlu5_271:not(#\9) {
291
+ .awsui_popover-header_1edmh_eu9tp_291:not(#\9) {
272
292
  display: inline-flex;
273
293
  align-items: flex-start;
274
294
  }
@@ -2,28 +2,32 @@
2
2
  // es-module interop with Babel and Typescript
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  module.exports.default = {
5
- "segment__path": "awsui_segment__path_1edmh_1wlu5_97",
6
- "segment": "awsui_segment_1edmh_1wlu5_97",
7
- "segment__hover": "awsui_segment__hover_1edmh_1wlu5_124",
8
- "label": "awsui_label_1edmh_1wlu5_138",
9
- "root": "awsui_root_1edmh_1wlu5_156",
10
- "content": "awsui_content_1edmh_1wlu5_160",
11
- "content--small": "awsui_content--small_1edmh_1wlu5_160",
12
- "content--without-labels": "awsui_content--without-labels_1edmh_1wlu5_163",
13
- "content--medium": "awsui_content--medium_1edmh_1wlu5_166",
14
- "content--large": "awsui_content--large_1edmh_1wlu5_172",
15
- "status-container": "awsui_status-container_1edmh_1wlu5_179",
16
- "chart-container": "awsui_chart-container_1edmh_1wlu5_183",
17
- "inner-content": "awsui_inner-content_1edmh_1wlu5_188",
18
- "segment__highlight": "awsui_segment__highlight_1edmh_1wlu5_202",
19
- "segment--dimmed": "awsui_segment--dimmed_1edmh_1wlu5_217",
20
- "segment--highlighted": "awsui_segment--highlighted_1edmh_1wlu5_220",
21
- "label--dimmed": "awsui_label--dimmed_1edmh_1wlu5_237",
22
- "label--align-right": "awsui_label--align-right_1edmh_1wlu5_240",
23
- "label-text": "awsui_label-text_1edmh_1wlu5_248",
24
- "label__description": "awsui_label__description_1edmh_1wlu5_256",
25
- "label-line": "awsui_label-line_1edmh_1wlu5_263",
26
- "label--highlighted": "awsui_label--highlighted_1edmh_1wlu5_267",
27
- "popover-header": "awsui_popover-header_1edmh_1wlu5_271"
5
+ "segment__path": "awsui_segment__path_1edmh_eu9tp_97",
6
+ "segment": "awsui_segment_1edmh_eu9tp_97",
7
+ "segment__hover": "awsui_segment__hover_1edmh_eu9tp_124",
8
+ "label": "awsui_label_1edmh_eu9tp_138",
9
+ "root": "awsui_root_1edmh_eu9tp_156",
10
+ "content": "awsui_content_1edmh_eu9tp_160",
11
+ "content--small": "awsui_content--small_1edmh_eu9tp_160",
12
+ "content--without-labels": "awsui_content--without-labels_1edmh_eu9tp_163",
13
+ "content--medium": "awsui_content--medium_1edmh_eu9tp_166",
14
+ "content--large": "awsui_content--large_1edmh_eu9tp_172",
15
+ "content--fit-height": "awsui_content--fit-height_1edmh_eu9tp_179",
16
+ "status-container": "awsui_status-container_1edmh_eu9tp_183",
17
+ "chart-container": "awsui_chart-container_1edmh_eu9tp_187",
18
+ "chart-container--fit-height": "awsui_chart-container--fit-height_1edmh_eu9tp_191",
19
+ "chart-container-chart-plot": "awsui_chart-container-chart-plot_1edmh_eu9tp_196",
20
+ "chart-container-chart-plot--fit-height": "awsui_chart-container-chart-plot--fit-height_1edmh_eu9tp_199",
21
+ "inner-content": "awsui_inner-content_1edmh_eu9tp_208",
22
+ "segment__highlight": "awsui_segment__highlight_1edmh_eu9tp_222",
23
+ "segment--dimmed": "awsui_segment--dimmed_1edmh_eu9tp_237",
24
+ "segment--highlighted": "awsui_segment--highlighted_1edmh_eu9tp_240",
25
+ "label--dimmed": "awsui_label--dimmed_1edmh_eu9tp_257",
26
+ "label--align-right": "awsui_label--align-right_1edmh_eu9tp_260",
27
+ "label-text": "awsui_label-text_1edmh_eu9tp_268",
28
+ "label__description": "awsui_label__description_1edmh_eu9tp_276",
29
+ "label-line": "awsui_label-line_1edmh_eu9tp_283",
30
+ "label--highlighted": "awsui_label--highlighted_1edmh_eu9tp_287",
31
+ "popover-header": "awsui_popover-header_1edmh_eu9tp_291"
28
32
  };
29
33
 
@@ -1,6 +1,6 @@
1
1
  import { ComponentFormatFunction } from '../internal/i18n/context';
2
2
  import { PieChartProps } from './interfaces';
3
- interface Dimension {
3
+ export interface Dimension {
4
4
  innerRadius: number;
5
5
  outerRadius: number;
6
6
  padding: number;
@@ -10,6 +10,17 @@ interface Dimension {
10
10
  }
11
11
  export declare const dimensionsBySize: Record<NonNullable<PieChartProps['size']>, Dimension>;
12
12
  export declare const refreshDimensionsBySize: Record<NonNullable<PieChartProps['size']>, Dimension>;
13
+ /**
14
+ * When `size` is a string ("small", "medium" or "large") the predefined pie chart element dimensions for classic and visual refresh are used.
15
+ * When `size` is a number the outer and inner radii are computed and the rest of the dimensions are taken from the closest predefined size.
16
+ */
17
+ export declare function getDimensionsBySize({ size, hasLabels, visualRefresh, }: {
18
+ size: NonNullable<PieChartProps['size']> | number;
19
+ hasLabels: boolean;
20
+ visualRefresh?: boolean;
21
+ }): Dimension & {
22
+ size: NonNullable<PieChartProps['size']>;
23
+ };
13
24
  export declare const defaultDetails: (i18n: ComponentFormatFunction<'pie-chart'>, i18nStrings: PieChartProps.I18nStrings) => (datum: PieChartProps.Datum, dataSum: number) => ({
14
25
  key: string;
15
26
  value: number;
@@ -26,5 +37,4 @@ export declare const defaultDetails: (i18n: ComponentFormatFunction<'pie-chart'>
26
37
  export declare const balanceLabelNodes: (nodes: NodeListOf<SVGGElement>, markers: Array<{
27
38
  endY: number;
28
39
  }>, leftSide: boolean) => void;
29
- export {};
30
40
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"lib/default/","sources":["pie-chart/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7C,UAAU,SAAS;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAsBlF,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAgBzF,CAAC;AAEF,eAAO,MAAM,cAAc,SAClB,wBAAwB,WAAW,CAAC,eAAe,cAAc,WAAW,aAC3E,cAAc,KAAK,WAAW,MAAM;;;;;;IAOzC,CAAC;AAEN;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,UACrB,WAAW,WAAW,CAAC,WACrB,MAAM;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,YACtB,OAAO,SAkElB,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"lib/default/","sources":["pie-chart/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7C,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAMD,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAsBlF,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAgBzF,CAAC;AAEF;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,IAAI,EACJ,SAAS,EACT,aAAa,GACd,EAAE;IACD,IAAI,EAAE,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC;IAClD,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,GAAG,SAAS,GAAG;IAAE,IAAI,EAAE,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAA;CAAE,CAuB3D;AAED,eAAO,MAAM,cAAc,SAClB,wBAAwB,WAAW,CAAC,eAAe,cAAc,WAAW,aAC3E,cAAc,KAAK,WAAW,MAAM;;;;;;IAOzC,CAAC;AAEN;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,UACrB,WAAW,WAAW,CAAC,WACrB,MAAM;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,YACtB,OAAO,SAkElB,CAAC"}