@cloudscape-design/components-themeable 3.0.332 → 3.0.334

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 (111) hide show
  1. package/lib/internal/manifest.json +1 -1
  2. package/lib/internal/scss/cards/styles.scss +5 -0
  3. package/lib/internal/scss/flashbar/styles.scss +2 -4
  4. package/lib/internal/scss/table/sticky-scrollbar/styles.scss +1 -0
  5. package/lib/internal/scss/table/styles.scss +12 -0
  6. package/lib/internal/template/area-chart/chart-container.d.ts +2 -2
  7. package/lib/internal/template/area-chart/chart-container.d.ts.map +1 -1
  8. package/lib/internal/template/area-chart/chart-container.js +6 -3
  9. package/lib/internal/template/area-chart/chart-container.js.map +1 -1
  10. package/lib/internal/template/area-chart/elements/chart-popover.d.ts +3 -2
  11. package/lib/internal/template/area-chart/elements/chart-popover.d.ts.map +1 -1
  12. package/lib/internal/template/area-chart/elements/chart-popover.js +4 -2
  13. package/lib/internal/template/area-chart/elements/chart-popover.js.map +1 -1
  14. package/lib/internal/template/area-chart/internal.d.ts +1 -1
  15. package/lib/internal/template/area-chart/internal.d.ts.map +1 -1
  16. package/lib/internal/template/area-chart/internal.js +4 -4
  17. package/lib/internal/template/area-chart/internal.js.map +1 -1
  18. package/lib/internal/template/cards/index.d.ts.map +1 -1
  19. package/lib/internal/template/cards/index.js +1 -1
  20. package/lib/internal/template/cards/index.js.map +1 -1
  21. package/lib/internal/template/cards/styles.css.js +38 -37
  22. package/lib/internal/template/cards/styles.scoped.css +56 -51
  23. package/lib/internal/template/cards/styles.selectors.js +38 -37
  24. package/lib/internal/template/flashbar/flash.d.ts.map +1 -1
  25. package/lib/internal/template/flashbar/flash.js +1 -0
  26. package/lib/internal/template/flashbar/flash.js.map +1 -1
  27. package/lib/internal/template/flashbar/interfaces.d.ts +2 -3
  28. package/lib/internal/template/flashbar/interfaces.d.ts.map +1 -1
  29. package/lib/internal/template/flashbar/interfaces.js.map +1 -1
  30. package/lib/internal/template/flashbar/styles.css.js +46 -45
  31. package/lib/internal/template/flashbar/styles.scoped.css +145 -147
  32. package/lib/internal/template/flashbar/styles.selectors.js +46 -45
  33. package/lib/internal/template/flashbar/utils.d.ts +4 -4
  34. package/lib/internal/template/flashbar/utils.d.ts.map +1 -1
  35. package/lib/internal/template/flashbar/utils.js +4 -4
  36. package/lib/internal/template/flashbar/utils.js.map +1 -1
  37. package/lib/internal/template/internal/base-component/styles.scoped.css +2 -2
  38. package/lib/internal/template/internal/components/cartesian-chart/interfaces.d.ts +7 -0
  39. package/lib/internal/template/internal/components/cartesian-chart/interfaces.d.ts.map +1 -1
  40. package/lib/internal/template/internal/components/cartesian-chart/interfaces.js.map +1 -1
  41. package/lib/internal/template/internal/components/chart-popover/index.d.ts.map +1 -1
  42. package/lib/internal/template/internal/components/chart-popover/index.js +3 -2
  43. package/lib/internal/template/internal/components/chart-popover/index.js.map +1 -1
  44. package/lib/internal/template/internal/components/dropdown/index.d.ts.map +1 -1
  45. package/lib/internal/template/internal/components/dropdown/index.js +6 -4
  46. package/lib/internal/template/internal/components/dropdown/index.js.map +1 -1
  47. package/lib/internal/template/internal/environment.js +1 -1
  48. package/lib/internal/template/internal/generated/styles/tokens.d.ts +2 -0
  49. package/lib/internal/template/internal/generated/styles/tokens.js +2 -0
  50. package/lib/internal/template/internal/generated/theming/index.cjs +4 -0
  51. package/lib/internal/template/internal/generated/theming/index.cjs.d.ts +14 -0
  52. package/lib/internal/template/internal/generated/theming/index.d.ts +14 -0
  53. package/lib/internal/template/internal/generated/theming/index.js +4 -0
  54. package/lib/internal/template/internal/utils/dom.js +1 -1
  55. package/lib/internal/template/internal/utils/dom.js.map +1 -1
  56. package/lib/internal/template/internal/utils/node-belongs.d.ts +9 -0
  57. package/lib/internal/template/internal/utils/node-belongs.d.ts.map +1 -0
  58. package/lib/internal/template/internal/utils/node-belongs.js +17 -0
  59. package/lib/internal/template/internal/utils/node-belongs.js.map +1 -0
  60. package/lib/internal/template/mixed-line-bar-chart/chart-container.d.ts +2 -1
  61. package/lib/internal/template/mixed-line-bar-chart/chart-container.d.ts.map +1 -1
  62. package/lib/internal/template/mixed-line-bar-chart/chart-container.js +5 -4
  63. package/lib/internal/template/mixed-line-bar-chart/chart-container.js.map +1 -1
  64. package/lib/internal/template/mixed-line-bar-chart/chart-popover.d.ts +1 -0
  65. package/lib/internal/template/mixed-line-bar-chart/chart-popover.d.ts.map +1 -1
  66. package/lib/internal/template/mixed-line-bar-chart/chart-popover.js +4 -2
  67. package/lib/internal/template/mixed-line-bar-chart/chart-popover.js.map +1 -1
  68. package/lib/internal/template/mixed-line-bar-chart/internal.d.ts +1 -1
  69. package/lib/internal/template/mixed-line-bar-chart/internal.d.ts.map +1 -1
  70. package/lib/internal/template/mixed-line-bar-chart/internal.js +4 -4
  71. package/lib/internal/template/mixed-line-bar-chart/internal.js.map +1 -1
  72. package/lib/internal/template/pie-chart/index.js +2 -2
  73. package/lib/internal/template/pie-chart/index.js.map +1 -1
  74. package/lib/internal/template/pie-chart/interfaces.d.ts +7 -0
  75. package/lib/internal/template/pie-chart/interfaces.d.ts.map +1 -1
  76. package/lib/internal/template/pie-chart/interfaces.js.map +1 -1
  77. package/lib/internal/template/pie-chart/pie-chart.d.ts +1 -1
  78. package/lib/internal/template/pie-chart/pie-chart.d.ts.map +1 -1
  79. package/lib/internal/template/pie-chart/pie-chart.js +7 -4
  80. package/lib/internal/template/pie-chart/pie-chart.js.map +1 -1
  81. package/lib/internal/template/popover/internal.d.ts.map +1 -1
  82. package/lib/internal/template/popover/internal.js +5 -3
  83. package/lib/internal/template/popover/internal.js.map +1 -1
  84. package/lib/internal/template/segmented-control/styles.css.js +14 -14
  85. package/lib/internal/template/segmented-control/styles.scoped.css +38 -38
  86. package/lib/internal/template/segmented-control/styles.selectors.js +14 -14
  87. package/lib/internal/template/table/body-cell/click-away.d.ts +2 -8
  88. package/lib/internal/template/table/body-cell/click-away.d.ts.map +1 -1
  89. package/lib/internal/template/table/body-cell/click-away.js +3 -17
  90. package/lib/internal/template/table/body-cell/click-away.js.map +1 -1
  91. package/lib/internal/template/table/header-cell/index.d.ts +2 -1
  92. package/lib/internal/template/table/header-cell/index.d.ts.map +1 -1
  93. package/lib/internal/template/table/header-cell/index.js +4 -2
  94. package/lib/internal/template/table/header-cell/index.js.map +1 -1
  95. package/lib/internal/template/table/internal.d.ts.map +1 -1
  96. package/lib/internal/template/table/internal.js +19 -10
  97. package/lib/internal/template/table/internal.js.map +1 -1
  98. package/lib/internal/template/table/sticky-scrollbar/styles.css.js +4 -4
  99. package/lib/internal/template/table/sticky-scrollbar/styles.scoped.css +5 -4
  100. package/lib/internal/template/table/sticky-scrollbar/styles.selectors.js +4 -4
  101. package/lib/internal/template/table/styles.css.js +34 -32
  102. package/lib/internal/template/table/styles.scoped.css +51 -40
  103. package/lib/internal/template/table/styles.selectors.js +34 -32
  104. package/lib/internal/template/table/thead.d.ts.map +1 -1
  105. package/lib/internal/template/table/thead.js +5 -5
  106. package/lib/internal/template/table/thead.js.map +1 -1
  107. package/lib/internal/template/table/use-column-widths.d.ts +8 -8
  108. package/lib/internal/template/table/use-column-widths.d.ts.map +1 -1
  109. package/lib/internal/template/table/use-column-widths.js +23 -9
  110. package/lib/internal/template/table/use-column-widths.js.map +1 -1
  111. package/package.json +1 -1
@@ -120,6 +120,8 @@ export declare interface TypedOverride {
120
120
  colorTextAccent?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
121
121
  colorTextBodyDefault?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
122
122
  colorTextBodySecondary?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
123
+ colorTextBreadcrumbCurrent?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
124
+ colorTextBreadcrumbIcon?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
123
125
  colorTextButtonNormalActive?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
124
126
  colorTextButtonNormalDefault?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
125
127
  colorTextButtonNormalHover?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
@@ -302,6 +304,8 @@ export declare interface TypedOverride {
302
304
  colorTextAccent?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
303
305
  colorTextBodyDefault?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
304
306
  colorTextBodySecondary?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
307
+ colorTextBreadcrumbCurrent?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
308
+ colorTextBreadcrumbIcon?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
305
309
  colorTextButtonNormalActive?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
306
310
  colorTextButtonNormalDefault?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
307
311
  colorTextButtonNormalHover?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
@@ -484,6 +488,8 @@ export declare interface TypedOverride {
484
488
  colorTextAccent?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
485
489
  colorTextBodyDefault?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
486
490
  colorTextBodySecondary?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
491
+ colorTextBreadcrumbCurrent?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
492
+ colorTextBreadcrumbIcon?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
487
493
  colorTextButtonNormalActive?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
488
494
  colorTextButtonNormalDefault?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
489
495
  colorTextButtonNormalHover?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
@@ -666,6 +672,8 @@ export declare interface TypedOverride {
666
672
  colorTextAccent?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
667
673
  colorTextBodyDefault?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
668
674
  colorTextBodySecondary?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
675
+ colorTextBreadcrumbCurrent?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
676
+ colorTextBreadcrumbIcon?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
669
677
  colorTextButtonNormalActive?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
670
678
  colorTextButtonNormalDefault?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
671
679
  colorTextButtonNormalHover?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
@@ -848,6 +856,8 @@ export declare interface TypedOverride {
848
856
  colorTextAccent?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
849
857
  colorTextBodyDefault?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
850
858
  colorTextBodySecondary?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
859
+ colorTextBreadcrumbCurrent?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
860
+ colorTextBreadcrumbIcon?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
851
861
  colorTextButtonNormalActive?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
852
862
  colorTextButtonNormalDefault?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
853
863
  colorTextButtonNormalHover?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
@@ -1030,6 +1040,8 @@ export declare interface TypedOverride {
1030
1040
  colorTextAccent?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
1031
1041
  colorTextBodyDefault?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
1032
1042
  colorTextBodySecondary?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
1043
+ colorTextBreadcrumbCurrent?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
1044
+ colorTextBreadcrumbIcon?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
1033
1045
  colorTextButtonNormalActive?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
1034
1046
  colorTextButtonNormalDefault?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
1035
1047
  colorTextButtonNormalHover?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
@@ -1212,6 +1224,8 @@ export declare interface TypedOverride {
1212
1224
  colorTextAccent?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
1213
1225
  colorTextBodyDefault?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
1214
1226
  colorTextBodySecondary?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
1227
+ colorTextBreadcrumbCurrent?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
1228
+ colorTextBreadcrumbIcon?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
1215
1229
  colorTextButtonNormalActive?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
1216
1230
  colorTextButtonNormalDefault?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
1217
1231
  colorTextButtonNormalHover?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
@@ -120,6 +120,8 @@ export declare interface TypedOverride {
120
120
  colorTextAccent?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
121
121
  colorTextBodyDefault?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
122
122
  colorTextBodySecondary?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
123
+ colorTextBreadcrumbCurrent?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
124
+ colorTextBreadcrumbIcon?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
123
125
  colorTextButtonNormalActive?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
124
126
  colorTextButtonNormalDefault?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
125
127
  colorTextButtonNormalHover?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
@@ -302,6 +304,8 @@ export declare interface TypedOverride {
302
304
  colorTextAccent?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
303
305
  colorTextBodyDefault?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
304
306
  colorTextBodySecondary?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
307
+ colorTextBreadcrumbCurrent?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
308
+ colorTextBreadcrumbIcon?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
305
309
  colorTextButtonNormalActive?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
306
310
  colorTextButtonNormalDefault?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
307
311
  colorTextButtonNormalHover?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
@@ -484,6 +488,8 @@ export declare interface TypedOverride {
484
488
  colorTextAccent?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
485
489
  colorTextBodyDefault?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
486
490
  colorTextBodySecondary?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
491
+ colorTextBreadcrumbCurrent?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
492
+ colorTextBreadcrumbIcon?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
487
493
  colorTextButtonNormalActive?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
488
494
  colorTextButtonNormalDefault?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
489
495
  colorTextButtonNormalHover?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
@@ -666,6 +672,8 @@ export declare interface TypedOverride {
666
672
  colorTextAccent?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
667
673
  colorTextBodyDefault?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
668
674
  colorTextBodySecondary?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
675
+ colorTextBreadcrumbCurrent?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
676
+ colorTextBreadcrumbIcon?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
669
677
  colorTextButtonNormalActive?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
670
678
  colorTextButtonNormalDefault?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
671
679
  colorTextButtonNormalHover?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
@@ -848,6 +856,8 @@ export declare interface TypedOverride {
848
856
  colorTextAccent?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
849
857
  colorTextBodyDefault?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
850
858
  colorTextBodySecondary?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
859
+ colorTextBreadcrumbCurrent?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
860
+ colorTextBreadcrumbIcon?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
851
861
  colorTextButtonNormalActive?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
852
862
  colorTextButtonNormalDefault?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
853
863
  colorTextButtonNormalHover?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
@@ -1030,6 +1040,8 @@ export declare interface TypedOverride {
1030
1040
  colorTextAccent?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
1031
1041
  colorTextBodyDefault?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
1032
1042
  colorTextBodySecondary?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
1043
+ colorTextBreadcrumbCurrent?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
1044
+ colorTextBreadcrumbIcon?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
1033
1045
  colorTextButtonNormalActive?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
1034
1046
  colorTextButtonNormalDefault?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
1035
1047
  colorTextButtonNormalHover?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
@@ -1212,6 +1224,8 @@ export declare interface TypedOverride {
1212
1224
  colorTextAccent?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
1213
1225
  colorTextBodyDefault?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
1214
1226
  colorTextBodySecondary?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
1227
+ colorTextBreadcrumbCurrent?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
1228
+ colorTextBreadcrumbIcon?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
1215
1229
  colorTextButtonNormalActive?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
1216
1230
  colorTextButtonNormalDefault?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
1217
1231
  colorTextButtonNormalHover?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
@@ -8071,6 +8071,8 @@ export var preset = {
8071
8071
  "colorTextAccent",
8072
8072
  "colorTextBodyDefault",
8073
8073
  "colorTextBodySecondary",
8074
+ "colorTextBreadcrumbCurrent",
8075
+ "colorTextBreadcrumbIcon",
8074
8076
  "colorTextButtonNormalActive",
8075
8077
  "colorTextButtonNormalDefault",
8076
8078
  "colorTextButtonNormalHover",
@@ -8344,6 +8346,8 @@ export var preset = {
8344
8346
  "colorTextAccent",
8345
8347
  "colorTextBodyDefault",
8346
8348
  "colorTextBodySecondary",
8349
+ "colorTextBreadcrumbCurrent",
8350
+ "colorTextBreadcrumbIcon",
8347
8351
  "colorTextButtonNormalActive",
8348
8352
  "colorTextButtonNormalDefault",
8349
8353
  "colorTextButtonNormalHover",
@@ -8,7 +8,7 @@ export function findUpUntil(node, callback) {
8
8
  current = current.parentElement;
9
9
  // If a component is used within an svg (i.e. as foreignObject), then it will
10
10
  // have some ancestor nodes that are SVGElement. We want to skip those,
11
- // as they have very different properties to HTLMElements.
11
+ // as they have very different properties to HTMLElements.
12
12
  while (current && !(current instanceof HTMLElement)) {
13
13
  current = current.parentElement;
14
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dom.js","sourceRoot":"lib/default/","sources":["internal/utils/dom.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,UAAU,WAAW,CAAC,IAAiB,EAAE,QAA2C;IACxF,IAAI,OAAO,GAAuB,IAAI,CAAC;IACvC,OAAO,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;QACpC,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;QAChC,6EAA6E;QAC7E,uEAAuE;QACvE,0DAA0D;QAC1D,OAAO,OAAO,IAAI,CAAC,CAAC,OAAO,YAAY,WAAW,CAAC,EAAE;YACnD,OAAO,GAAI,OAAmB,CAAC,aAAa,CAAC;SAC9C;KACF;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB;;IACpC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;QACjC,qCAAqC;QACrC,OAAO,KAAK,CAAC;KACd;IACD,OAAO,MAAA,MAAA,MAAA,MAAM,CAAC,GAAG,0CAAE,QAAQ,mDAAG,UAAU,EAAE,QAAQ,CAAC,mCAAI,KAAK,CAAC;AAC/D,CAAC;AAED;;;;GAIG;AACH,MAAM,kCAAkC,GAAG,aAAa,CAAC,GAAG,EAAE;IAC5D,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,iBAAiB,CAAC;IAC3C,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAElC,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC5C,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC/B,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;IACtB,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAE1B,MAAM,MAAM,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC,GAAG,KAAK,KAAK,CAAC,qBAAqB,EAAE,CAAC,GAAG,CAAC;IACxF,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,YAAyB;IAC1D,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE;QAC/B,OAAO,IAAI,CAAC;KACb;IAED,OAAO,kCAAkC,EAAE;QACzC,CAAC,CAAE,WAAW,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,EAAE;YACjD,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAChD,OAAO,CACL,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,IAAI,aAAa,CAAC,SAAS,KAAK,MAAM,CAAC;gBACjE,CAAC,CAAC,CAAC,aAAa,CAAC,WAAW,IAAI,aAAa,CAAC,WAAW,KAAK,MAAM,CAAC,CACtE,CAAC;QACJ,CAAC,CAAiB;QACpB,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED,MAAM,qBAAqB,GAAG,kBAAkB,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa;;IAC5C,IAAI,MAAA,MAAA,MAAA,MAAM,CAAC,GAAG,0CAAE,QAAQ,mDAAG,OAAO,EAAE,oBAAoB,CAAC,mCAAI,KAAK,EAAE;QAClE,OAAO,KAAK,CAAC;KACd;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE;QACnB,OAAO,KAAK,CAAC;KACd;IAED,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IACxD,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,KAAK,CAAC;KACd;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACrD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAClC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,MAAmB,EAAE,UAAuB;IACvE,IAAI,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE;QAC1B,OAAO,KAAK,CAAC;KACd;IAED,kDAAkD;IAClD,IAAI,MAAM,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY,EAAE;QAChE,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;KAC7D;IAED,+CAA+C;IAC/C,IAAI,SAAS,GAAgB,UAAU,CAAC;IACxC,OAAO,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE;QACxC,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC;KAClC;IACD,OAAO,SAAS,KAAK,MAAM,CAAC;AAC9B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,SAAsB,EAAE,IAAU;IAChE,IAAI,SAAS,KAAK,IAAI,EAAE;QACtB,OAAO,KAAK,CAAC;KACd;IACD,OAAO,SAAS,KAAK,IAAI,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACxD,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport balanced from 'balanced-match';\nimport { calculateOnce } from './calculate-once';\n\nexport function findUpUntil(node: HTMLElement, callback: (element: HTMLElement) => boolean): HTMLElement | null {\n let current: HTMLElement | null = node;\n while (current && !callback(current)) {\n current = current.parentElement;\n // If a component is used within an svg (i.e. as foreignObject), then it will\n // have some ancestor nodes that are SVGElement. We want to skip those,\n // as they have very different properties to HTLMElements.\n while (current && !(current instanceof HTMLElement)) {\n current = (current as Element).parentElement;\n }\n }\n return current;\n}\n\n/**\n * Returns whether the browser supports CSS position sticky.\n * In our list of supported browsers, only returns false for IE11.\n */\nexport function supportsStickyPosition() {\n if (typeof window === 'undefined') {\n // render no-sticky UI on server-side\n return false;\n }\n return window.CSS?.supports?.('position', 'sticky') ?? false;\n}\n\n/**\n * Returns whether `position: fixed` can be relative to transformed parents or\n * whether it's always relative to the viewport. Returns `true` on all browsers\n * except IE.\n */\nconst supportsContainingBlockPositioning = calculateOnce(() => {\n const parent = document.createElement('div');\n parent.style.transform = 'translateY(5px)';\n document.body.appendChild(parent);\n\n const child = document.createElement('div');\n child.style.position = 'fixed';\n child.style.top = '0';\n parent.appendChild(child);\n\n const result = parent.getBoundingClientRect().top === child.getBoundingClientRect().top;\n document.body.removeChild(parent);\n return result;\n});\n\n/**\n * Returns an element that is used to position the given element.\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block\n */\nexport function getContainingBlock(startElement: HTMLElement): HTMLElement | null {\n if (!startElement.parentElement) {\n return null;\n }\n\n return supportsContainingBlockPositioning()\n ? (findUpUntil(startElement.parentElement, element => {\n const computedStyle = getComputedStyle(element);\n return (\n (!!computedStyle.transform && computedStyle.transform !== 'none') ||\n (!!computedStyle.perspective && computedStyle.perspective !== 'none')\n );\n }) as HTMLElement)\n : null;\n}\n\nconst cssVariableExpression = /--.+?\\s*,\\s*(.+)/;\n\n/**\n * Parses a CSS color value that might contain CSS Custom Properties\n * and returns a value that will be understood by the browser, no matter of support level.\n * If the browser support CSS Custom Properties, the value will be return as is. Otherwise,\n * the fallback value will be extracted and returned instead.\n */\nexport function parseCssVariable(value: string) {\n if (window.CSS?.supports?.('color', 'var(--dummy, #000)') ?? false) {\n return value;\n }\n\n const varIndex = value.lastIndexOf('var(');\n if (varIndex === -1) {\n return value;\n }\n\n const expr = balanced('(', ')', value.substr(varIndex));\n if (!expr) {\n return value;\n }\n\n const match = expr.body.match(cssVariableExpression);\n return match ? match[1] : value;\n}\n\n/**\n * Checks whether the given node is a parent of the other descendant node.\n * This utility is helpful when the parent might be an SVG element,\n * which doesn't have a native `contains` implementation on some browsers like IE11.\n * @param parent Parent node\n * @param descendant Node that is checked to be a descendant of the parent node\n */\nexport function nodeContains(parent: Node | null, descendant: Node | null) {\n if (!parent || !descendant) {\n return false;\n }\n\n // Use the native `contains` method when available\n if (parent.contains && descendant.nodeType === Node.ELEMENT_NODE) {\n return parent === descendant || parent.contains(descendant);\n }\n\n // Fall back to a simple upwards tree traversal\n let upperNode: Node | null = descendant;\n while (upperNode && parent !== upperNode) {\n upperNode = upperNode.parentNode;\n }\n return upperNode === parent;\n}\n\n/**\n * Checks whether the given node is a descendant of a container.\n * @param container Container node\n * @param node Node that is checked to be a descendant of the container\n */\nexport function containsOrEqual(container: Node | null, node: Node): boolean {\n if (container === null) {\n return false;\n }\n return container === node || container.contains(node);\n}\n"]}
1
+ {"version":3,"file":"dom.js","sourceRoot":"lib/default/","sources":["internal/utils/dom.ts"],"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 balanced from 'balanced-match';\nimport { calculateOnce } from './calculate-once';\n\nexport function findUpUntil(node: HTMLElement, callback: (element: HTMLElement) => boolean): HTMLElement | null {\n let current: HTMLElement | null = node;\n while (current && !callback(current)) {\n current = current.parentElement;\n // If a component is used within an svg (i.e. as foreignObject), then it will\n // have some ancestor nodes that are SVGElement. We want to skip those,\n // as they have very different properties to HTMLElements.\n while (current && !(current instanceof HTMLElement)) {\n current = (current as Element).parentElement;\n }\n }\n return current;\n}\n\n/**\n * Returns whether the browser supports CSS position sticky.\n * In our list of supported browsers, only returns false for IE11.\n */\nexport function supportsStickyPosition() {\n if (typeof window === 'undefined') {\n // render no-sticky UI on server-side\n return false;\n }\n return window.CSS?.supports?.('position', 'sticky') ?? false;\n}\n\n/**\n * Returns whether `position: fixed` can be relative to transformed parents or\n * whether it's always relative to the viewport. Returns `true` on all browsers\n * except IE.\n */\nconst supportsContainingBlockPositioning = calculateOnce(() => {\n const parent = document.createElement('div');\n parent.style.transform = 'translateY(5px)';\n document.body.appendChild(parent);\n\n const child = document.createElement('div');\n child.style.position = 'fixed';\n child.style.top = '0';\n parent.appendChild(child);\n\n const result = parent.getBoundingClientRect().top === child.getBoundingClientRect().top;\n document.body.removeChild(parent);\n return result;\n});\n\n/**\n * Returns an element that is used to position the given element.\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block\n */\nexport function getContainingBlock(startElement: HTMLElement): HTMLElement | null {\n if (!startElement.parentElement) {\n return null;\n }\n\n return supportsContainingBlockPositioning()\n ? (findUpUntil(startElement.parentElement, element => {\n const computedStyle = getComputedStyle(element);\n return (\n (!!computedStyle.transform && computedStyle.transform !== 'none') ||\n (!!computedStyle.perspective && computedStyle.perspective !== 'none')\n );\n }) as HTMLElement)\n : null;\n}\n\nconst cssVariableExpression = /--.+?\\s*,\\s*(.+)/;\n\n/**\n * Parses a CSS color value that might contain CSS Custom Properties\n * and returns a value that will be understood by the browser, no matter of support level.\n * If the browser support CSS Custom Properties, the value will be return as is. Otherwise,\n * the fallback value will be extracted and returned instead.\n */\nexport function parseCssVariable(value: string) {\n if (window.CSS?.supports?.('color', 'var(--dummy, #000)') ?? false) {\n return value;\n }\n\n const varIndex = value.lastIndexOf('var(');\n if (varIndex === -1) {\n return value;\n }\n\n const expr = balanced('(', ')', value.substr(varIndex));\n if (!expr) {\n return value;\n }\n\n const match = expr.body.match(cssVariableExpression);\n return match ? match[1] : value;\n}\n\n/**\n * Checks whether the given node is a parent of the other descendant node.\n * This utility is helpful when the parent might be an SVG element,\n * which doesn't have a native `contains` implementation on some browsers like IE11.\n * @param parent Parent node\n * @param descendant Node that is checked to be a descendant of the parent node\n */\nexport function nodeContains(parent: Node | null, descendant: Node | null) {\n if (!parent || !descendant) {\n return false;\n }\n\n // Use the native `contains` method when available\n if (parent.contains && descendant.nodeType === Node.ELEMENT_NODE) {\n return parent === descendant || parent.contains(descendant);\n }\n\n // Fall back to a simple upwards tree traversal\n let upperNode: Node | null = descendant;\n while (upperNode && parent !== upperNode) {\n upperNode = upperNode.parentNode;\n }\n return upperNode === parent;\n}\n\n/**\n * Checks whether the given node is a descendant of a container.\n * @param container Container node\n * @param node Node that is checked to be a descendant of the container\n */\nexport function containsOrEqual(container: Node | null, node: Node): boolean {\n if (container === null) {\n return false;\n }\n return container === node || container.contains(node);\n}\n"]}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Checks whether the given node (target) belongs to the container.
3
+ * The function is similar to containsOrEqual but also accounts for dropdowns with expandToViewport=true.
4
+ *
5
+ * @param container Container node
6
+ * @param target Node that is checked to be a descendant of the container
7
+ */
8
+ export declare function nodeBelongs(container: Node | null, target: Node): boolean;
9
+ //# sourceMappingURL=node-belongs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-belongs.d.ts","sourceRoot":"lib/default/","sources":["internal/utils/node-belongs.ts"],"names":[],"mappings":"AAKA;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,IAAI,GAAG,IAAI,EAAE,MAAM,EAAE,IAAI,GAAG,OAAO,CAOzE"}
@@ -0,0 +1,17 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ import { containsOrEqual, findUpUntil } from './dom';
4
+ /**
5
+ * Checks whether the given node (target) belongs to the container.
6
+ * The function is similar to containsOrEqual but also accounts for dropdowns with expandToViewport=true.
7
+ *
8
+ * @param container Container node
9
+ * @param target Node that is checked to be a descendant of the container
10
+ */
11
+ export function nodeBelongs(container, target) {
12
+ var _a;
13
+ const portal = findUpUntil(target, node => node instanceof HTMLElement && !!node.dataset.awsuiReferrerId);
14
+ const referrer = portal instanceof HTMLElement ? document.getElementById((_a = portal.dataset.awsuiReferrerId) !== null && _a !== void 0 ? _a : '') : null;
15
+ return referrer ? containsOrEqual(container, referrer) : containsOrEqual(container, target);
16
+ }
17
+ //# sourceMappingURL=node-belongs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-belongs.js","sourceRoot":"lib/default/","sources":["internal/utils/node-belongs.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAEtC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAErD;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,SAAsB,EAAE,MAAY;;IAC9D,MAAM,MAAM,GAAG,WAAW,CACxB,MAAqB,EACrB,IAAI,CAAC,EAAE,CAAC,IAAI,YAAY,WAAW,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CACtE,CAAC;IACF,MAAM,QAAQ,GAAG,MAAM,YAAY,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAA,MAAM,CAAC,OAAO,CAAC,eAAe,mCAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACtH,OAAO,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AAC9F,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { containsOrEqual, findUpUntil } from './dom';\n\n/**\n * Checks whether the given node (target) belongs to the container.\n * The function is similar to containsOrEqual but also accounts for dropdowns with expandToViewport=true.\n *\n * @param container Container node\n * @param target Node that is checked to be a descendant of the container\n */\nexport function nodeBelongs(container: Node | null, target: Node): boolean {\n const portal = findUpUntil(\n target as HTMLElement,\n node => node instanceof HTMLElement && !!node.dataset.awsuiReferrerId\n );\n const referrer = portal instanceof HTMLElement ? document.getElementById(portal.dataset.awsuiReferrerId ?? '') : null;\n return referrer ? containsOrEqual(container, referrer) : containsOrEqual(container, target);\n}\n"]}
@@ -7,6 +7,7 @@ export interface ChartContainerProps<T extends ChartDataTypes> {
7
7
  visibleSeries: ReadonlyArray<InternalChartSeries<T>>;
8
8
  height: number;
9
9
  detailPopoverSize: MixedLineBarChartProps<T>['detailPopoverSize'];
10
+ detailPopoverFooter: MixedLineBarChartProps<T>['detailPopoverFooter'];
10
11
  xScaleType: ScaleType;
11
12
  yScaleType: 'linear' | 'log';
12
13
  xDomain: MixedLineBarChartProps<T>['xDomain'];
@@ -30,5 +31,5 @@ export interface ChartContainerProps<T extends ChartDataTypes> {
30
31
  i18nStrings: MixedLineBarChartProps<T>['i18nStrings'];
31
32
  plotContainerRef: React.RefObject<HTMLDivElement>;
32
33
  }
33
- export default function ChartContainer<T extends ChartDataTypes>({ height: plotHeight, series, visibleSeries, highlightedSeries, onHighlightChange, highlightedPoint, setHighlightedPoint, highlightedGroupIndex, setHighlightedGroupIndex, detailPopoverSize, stackedBars, horizontalBars, xScaleType, yScaleType, xTickFormatter, yTickFormatter, emphasizeBaselineAxis, xTitle, yTitle, ariaLabel, ariaLabelledby, ariaDescription, i18nStrings, plotContainerRef, ...props }: ChartContainerProps<T>): JSX.Element;
34
+ export default function ChartContainer<T extends ChartDataTypes>({ height: plotHeight, series, visibleSeries, highlightedSeries, onHighlightChange, highlightedPoint, setHighlightedPoint, highlightedGroupIndex, setHighlightedGroupIndex, detailPopoverFooter, detailPopoverSize, stackedBars, horizontalBars, xScaleType, yScaleType, xTickFormatter, yTickFormatter, emphasizeBaselineAxis, xTitle, yTitle, ariaLabel, ariaLabelledby, ariaDescription, i18nStrings, plotContainerRef, ...props }: ChartContainerProps<T>): JSX.Element;
34
35
  //# sourceMappingURL=chart-container.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chart-container.d.ts","sourceRoot":"lib/default/","sources":["mixed-line-bar-chart/chart-container.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA6E,MAAM,OAAO,CAAC;AAiBlG,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,SAAS,EAAmB,MAAM,cAAc,CAAC;AAGvH,OAAyB,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAUrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mDAAmD,CAAC;AASxF,MAAM,WAAW,mBAAmB,CAAC,CAAC,SAAS,cAAc;IAC3D,MAAM,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,aAAa,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;IAErD,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAElE,UAAU,EAAE,SAAS,CAAC;IACtB,UAAU,EAAE,QAAQ,GAAG,KAAK,CAAC;IAE7B,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC9C,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAE9C,cAAc,CAAC,EAAE,mBAAmB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IACtD,cAAc,CAAC,EAAE,mBAAmB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAE3D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,iBAAiB,CAAC,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;IACnE,iBAAiB,EAAE,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;IAC7E,gBAAgB,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACxC,mBAAmB,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;IAC5D,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,wBAAwB,EAAE,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAE9D,SAAS,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAClD,cAAc,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAC5D,eAAe,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;IAC9D,WAAW,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IAEtD,gBAAgB,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;CACnD;AAED,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,CAAC,SAAS,cAAc,EAAE,EAC/D,MAAM,EAAE,UAAU,EAClB,MAAM,EACN,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,EACxB,iBAA4B,EAC5B,WAAmB,EACnB,cAAsB,EACtB,UAAU,EACV,UAAU,EACV,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,MAAM,EACN,MAAM,EACN,SAAS,EACT,cAAc,EACd,eAAe,EACf,WAAgB,EAChB,gBAAgB,EAChB,GAAG,KAAK,EACT,EAAE,mBAAmB,CAAC,CAAC,CAAC,eAmdxB"}
1
+ {"version":3,"file":"chart-container.d.ts","sourceRoot":"lib/default/","sources":["mixed-line-bar-chart/chart-container.tsx"],"names":[],"mappings":"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"}
@@ -2,7 +2,6 @@ import { __rest } from "tslib";
2
2
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
3
  // SPDX-License-Identifier: Apache-2.0
4
4
  import React, { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react';
5
- import { nodeContains } from '../internal/utils/dom';
6
5
  import { useVisualRefresh } from '../internal/hooks/use-visual-mode';
7
6
  import { getXTickCount, getYTickCount, createXTicks, createYTicks } from '../internal/components/cartesian-chart/ticks';
8
7
  import ChartPlot from '../internal/components/chart-plot';
@@ -29,11 +28,12 @@ import { usePopover } from './hooks/use-popover';
29
28
  import styles from './styles.css.js';
30
29
  import useContainerWidth from '../internal/utils/use-container-width';
31
30
  import { useMergeRefs } from '../internal/hooks/use-merge-refs';
31
+ import { nodeBelongs } from '../internal/utils/node-belongs';
32
32
  const LEFT_LABELS_MARGIN = 16;
33
33
  const BOTTOM_LABELS_OFFSET = 12;
34
34
  export default function ChartContainer(_a) {
35
35
  var _b, _c;
36
- var { height: plotHeight, series, visibleSeries, highlightedSeries, onHighlightChange, highlightedPoint, setHighlightedPoint, highlightedGroupIndex, setHighlightedGroupIndex, detailPopoverSize = 'medium', stackedBars = false, horizontalBars = false, xScaleType, yScaleType, xTickFormatter, yTickFormatter, emphasizeBaselineAxis, xTitle, yTitle, ariaLabel, ariaLabelledby, ariaDescription, i18nStrings = {}, plotContainerRef } = _a, props = __rest(_a, ["height", "series", "visibleSeries", "highlightedSeries", "onHighlightChange", "highlightedPoint", "setHighlightedPoint", "highlightedGroupIndex", "setHighlightedGroupIndex", "detailPopoverSize", "stackedBars", "horizontalBars", "xScaleType", "yScaleType", "xTickFormatter", "yTickFormatter", "emphasizeBaselineAxis", "xTitle", "yTitle", "ariaLabel", "ariaLabelledby", "ariaDescription", "i18nStrings", "plotContainerRef"]);
36
+ var { height: plotHeight, series, visibleSeries, highlightedSeries, onHighlightChange, highlightedPoint, setHighlightedPoint, highlightedGroupIndex, setHighlightedGroupIndex, detailPopoverFooter, detailPopoverSize = 'medium', stackedBars = false, horizontalBars = false, xScaleType, yScaleType, xTickFormatter, yTickFormatter, emphasizeBaselineAxis, xTitle, yTitle, ariaLabel, ariaLabelledby, ariaDescription, i18nStrings = {}, plotContainerRef } = _a, props = __rest(_a, ["height", "series", "visibleSeries", "highlightedSeries", "onHighlightChange", "highlightedPoint", "setHighlightedPoint", "highlightedGroupIndex", "setHighlightedGroupIndex", "detailPopoverFooter", "detailPopoverSize", "stackedBars", "horizontalBars", "xScaleType", "yScaleType", "xTickFormatter", "yTickFormatter", "emphasizeBaselineAxis", "xTitle", "yTitle", "ariaLabel", "ariaLabelledby", "ariaDescription", "i18nStrings", "plotContainerRef"]);
37
37
  const plotRef = useRef(null);
38
38
  const verticalMarkerRef = useRef(null);
39
39
  const [leftLabelsWidth, setLeftLabelsWidth] = useState(0);
@@ -233,7 +233,7 @@ export default function ChartContainer(_a) {
233
233
  const blurTarget = event.relatedTarget || event.target;
234
234
  if (blurTarget === null ||
235
235
  !(blurTarget instanceof Element) ||
236
- !nodeContains(containerRefObject.current, blurTarget)) {
236
+ !nodeBelongs(containerRefObject.current, blurTarget)) {
237
237
  setHighlightedPoint(null);
238
238
  setVerticalMarkerX(null);
239
239
  if (!((_a = plotContainerRef === null || plotContainerRef === void 0 ? void 0 : plotContainerRef.current) === null || _a === void 0 ? void 0 : _a.contains(blurTarget))) {
@@ -291,6 +291,7 @@ export default function ChartContainer(_a) {
291
291
  // Otherwise - show all visible series details.
292
292
  return formatHighlighted(highlightedX, visibleSeries, xTickFormatter);
293
293
  }, [highlightedX, highlightedPoint, visibleSeries, xTickFormatter]);
294
+ const detailPopoverFooterContent = useMemo(() => (detailPopoverFooter && highlightedX ? detailPopoverFooter(highlightedX) : null), [detailPopoverFooter, highlightedX]);
294
295
  const activeAriaLabel = useMemo(() => highlightDetails
295
296
  ? `${highlightDetails.position}, ${highlightDetails.details.map(d => d.key + ' ' + d.value).join(',')}`
296
297
  : '', [highlightDetails]);
@@ -314,6 +315,6 @@ export default function ChartContainer(_a) {
314
315
  isGroupNavigation && xScale.isCategorical() && (React.createElement(BarGroups, { ariaLabel: activeAriaLabel, isRefresh: isRefresh, isPopoverPinned: isPopoverPinned, barGroups: barGroups, highlightedGroupIndex: highlightedGroupIndex, highlightedGroupRef: highlightedGroupRef })),
315
316
  React.createElement(BottomLabels, { axis: x, ticks: xy.ticks[x], scale: xy.scale[x], tickFormatter: xy.tickFormatter[x], title: xy.title[x], ariaRoleDescription: xy.ariaRoleDescription[x], height: plotHeight, width: plotWidth, offsetLeft: leftLabelsWidth + BOTTOM_LABELS_OFFSET, offsetRight: BOTTOM_LABELS_OFFSET, autoHeight: setBottomLabelsHeight })),
316
317
  React.createElement(AxisLabel, { axis: x, position: "bottom", title: xy.title[x] })),
317
- React.createElement(ChartPopover, { ref: popoverRef, containerRef: containerRefObject, trackRef: highlightedElementRef, isOpen: isPopoverOpen, isPinned: isPopoverPinned, highlightDetails: highlightDetails, onDismiss: onPopoverDismiss, size: detailPopoverSize, dismissAriaLabel: i18nStrings.detailPopoverDismissAriaLabel, onMouseLeave: onPopoverLeave }))));
318
+ React.createElement(ChartPopover, { ref: popoverRef, containerRef: containerRefObject, trackRef: highlightedElementRef, isOpen: isPopoverOpen, isPinned: isPopoverPinned, highlightDetails: highlightDetails, onDismiss: onPopoverDismiss, size: detailPopoverSize, footer: detailPopoverFooterContent, dismissAriaLabel: i18nStrings.detailPopoverDismissAriaLabel, onMouseLeave: onPopoverLeave }))));
318
319
  }
319
320
  //# sourceMappingURL=chart-container.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chart-container.js","sourceRoot":"lib/default/","sources":["mixed-line-bar-chart/chart-container.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, { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react';\n\nimport { nodeContains } from '../internal/utils/dom';\nimport { useVisualRefresh } from '../internal/hooks/use-visual-mode';\n\nimport { getXTickCount, getYTickCount, createXTicks, createYTicks } from '../internal/components/cartesian-chart/ticks';\nimport ChartPlot, { ChartPlotRef } from '../internal/components/chart-plot';\nimport AxisLabel from '../internal/components/cartesian-chart/axis-label';\nimport LabelsMeasure from '../internal/components/cartesian-chart/labels-measure';\nimport LeftLabels from '../internal/components/cartesian-chart/left-labels';\nimport BottomLabels from '../internal/components/cartesian-chart/bottom-labels';\nimport VerticalGridLines from '../internal/components/cartesian-chart/vertical-grid-lines';\nimport EmphasizedBaseline from '../internal/components/cartesian-chart/emphasized-baseline';\nimport HighlightedPoint from '../internal/components/cartesian-chart/highlighted-point';\nimport VerticalMarker from '../internal/components/cartesian-chart/vertical-marker';\nimport { ChartScale, NumericChartScale } from '../internal/components/cartesian-chart/scales';\nimport ChartPopover from './chart-popover';\nimport { ChartDataTypes, InternalChartSeries, MixedLineBarChartProps, ScaleType, VerticalMarkerX } from './interfaces';\nimport { computeDomainX, computeDomainY } from './domain';\nimport { isXThreshold } from './utils';\nimport makeScaledSeries, { ScaledPoint } from './make-scaled-series';\nimport makeScaledBarGroups, { ScaledBarGroup } from './make-scaled-bar-groups';\nimport formatHighlighted from './format-highlighted';\nimport DataSeries from './data-series';\nimport BarGroups from './bar-groups';\nimport { useMouseHover } from './hooks/use-mouse-hover';\nimport { useNavigation } from './hooks/use-navigation';\nimport { usePopover } from './hooks/use-popover';\n\nimport styles from './styles.css.js';\nimport { CartesianChartProps } from '../internal/components/cartesian-chart/interfaces';\nimport useContainerWidth from '../internal/utils/use-container-width';\nimport { useMergeRefs } from '../internal/hooks/use-merge-refs';\n\nconst LEFT_LABELS_MARGIN = 16;\nconst BOTTOM_LABELS_OFFSET = 12;\n\ntype TickFormatter = undefined | ((value: ChartDataTypes) => string);\n\nexport interface ChartContainerProps<T extends ChartDataTypes> {\n series: ReadonlyArray<InternalChartSeries<T>>;\n visibleSeries: ReadonlyArray<InternalChartSeries<T>>;\n\n height: number;\n detailPopoverSize: MixedLineBarChartProps<T>['detailPopoverSize'];\n\n xScaleType: ScaleType;\n yScaleType: 'linear' | 'log';\n\n xDomain: MixedLineBarChartProps<T>['xDomain'];\n yDomain: MixedLineBarChartProps<T>['yDomain'];\n\n xTickFormatter?: CartesianChartProps.TickFormatter<T>;\n yTickFormatter?: CartesianChartProps.TickFormatter<number>;\n\n xTitle?: string;\n yTitle?: string;\n\n stackedBars?: boolean;\n emphasizeBaselineAxis: boolean;\n horizontalBars?: boolean;\n\n highlightedSeries?: MixedLineBarChartProps<T>['highlightedSeries'];\n onHighlightChange: (series: InternalChartSeries<T>['series'] | null) => void;\n highlightedPoint: ScaledPoint<T> | null;\n setHighlightedPoint: (point: ScaledPoint<T> | null) => void;\n highlightedGroupIndex: number | null;\n setHighlightedGroupIndex: (groupIndex: number | null) => void;\n\n ariaLabel: MixedLineBarChartProps<T>['ariaLabel'];\n ariaLabelledby: MixedLineBarChartProps<T>['ariaLabelledby'];\n ariaDescription: MixedLineBarChartProps<T>['ariaDescription'];\n i18nStrings: MixedLineBarChartProps<T>['i18nStrings'];\n\n plotContainerRef: React.RefObject<HTMLDivElement>;\n}\n\nexport default function ChartContainer<T extends ChartDataTypes>({\n height: plotHeight,\n series,\n visibleSeries,\n highlightedSeries,\n onHighlightChange,\n highlightedPoint,\n setHighlightedPoint,\n highlightedGroupIndex,\n setHighlightedGroupIndex,\n detailPopoverSize = 'medium',\n stackedBars = false,\n horizontalBars = false,\n xScaleType,\n yScaleType,\n xTickFormatter,\n yTickFormatter,\n emphasizeBaselineAxis,\n xTitle,\n yTitle,\n ariaLabel,\n ariaLabelledby,\n ariaDescription,\n i18nStrings = {},\n plotContainerRef,\n ...props\n}: ChartContainerProps<T>) {\n const plotRef = useRef<ChartPlotRef>(null);\n const verticalMarkerRef = useRef<SVGLineElement>(null);\n\n const [leftLabelsWidth, setLeftLabelsWidth] = useState(0);\n const [bottomLabelsHeight, setBottomLabelsHeight] = useState(0);\n const [verticalMarkerX, setVerticalMarkerX] = useState<VerticalMarkerX<T> | null>(null);\n const [containerWidth, containerMeasureRef] = useContainerWidth(500);\n const plotWidth = containerWidth ? containerWidth - leftLabelsWidth - LEFT_LABELS_MARGIN : 500;\n const containerRefObject = useRef(null);\n const containerRef = useMergeRefs(containerMeasureRef, containerRefObject);\n const popoverRef = useRef<HTMLElement | null>(null);\n\n const isRefresh = useVisualRefresh();\n\n const linesOnly = series.every(({ series }) => series.type === 'line' || series.type === 'threshold');\n\n const xDomain = (props.xDomain || computeDomainX(series, xScaleType)) as\n | readonly number[]\n | readonly string[]\n | readonly Date[];\n const yDomain = (props.yDomain || computeDomainY(series, yScaleType, stackedBars)) as readonly number[];\n\n const xTickCount = getXTickCount(plotWidth);\n const yTickCount = getYTickCount(plotHeight);\n\n const rangeBottomTop: [number, number] = [0, plotHeight];\n const rangeTopBottom: [number, number] = [plotHeight, 0];\n const rangeLeftRight: [number, number] = [0, plotWidth];\n const xScale = new ChartScale(xScaleType, xDomain, horizontalBars ? rangeBottomTop : rangeLeftRight, linesOnly);\n const yScale = new NumericChartScale(\n yScaleType,\n yDomain,\n horizontalBars ? rangeLeftRight : rangeTopBottom,\n props.yDomain ? null : yTickCount\n );\n\n const xTicks = createXTicks(xScale, xTickCount);\n const yTicks = createYTicks(yScale, yTickCount);\n\n /**\n * Interactions\n */\n const highlightedPointRef = useRef<SVGGElement>(null);\n const highlightedGroupRef = useRef<SVGRectElement>(null);\n const [isPlotFocused, setPlotFocused] = useState(false);\n\n // Some chart components are rendered against \"x\" or \"y\" axes,\n // When \"horizontalBars\" is enabled, the axes are inverted.\n const x = !horizontalBars ? 'x' : 'y';\n const y = !horizontalBars ? 'y' : 'x';\n const xy = {\n ticks: { x: xTicks, y: yTicks },\n scale: { x: xScale, y: yScale },\n tickFormatter: { x: xTickFormatter, y: yTickFormatter },\n title: { x: xTitle, y: yTitle },\n ariaRoleDescription: { x: i18nStrings.xAxisAriaRoleDescription, y: i18nStrings.yAxisAriaRoleDescription },\n };\n\n const scaledSeries = makeScaledSeries(visibleSeries, xScale, yScale);\n const barGroups: ScaledBarGroup<T>[] = makeScaledBarGroups(visibleSeries, xScale, plotWidth, plotHeight, y);\n\n const { isPopoverOpen, isPopoverPinned, showPopover, pinPopover, dismissPopover } = usePopover();\n\n // Allows to add a delay between popover is dismissed and handlers are enabled to prevent immediate popover reopening.\n const [isHandlersDisabled, setHandlersDisabled] = useState(!isPopoverPinned);\n useEffect(() => {\n if (isPopoverPinned) {\n setHandlersDisabled(true);\n } else {\n const timeoutId = setTimeout(() => setHandlersDisabled(false), 25);\n return () => clearTimeout(timeoutId);\n }\n }, [isPopoverPinned]);\n\n const highlightSeries = useCallback(\n (series: MixedLineBarChartProps.ChartSeries<T> | null) => {\n if (series !== highlightedSeries) {\n onHighlightChange(series);\n }\n },\n [highlightedSeries, onHighlightChange]\n );\n\n const highlightPoint = useCallback(\n (point: ScaledPoint<T> | null) => {\n setHighlightedGroupIndex(null);\n setHighlightedPoint(point);\n if (point) {\n highlightSeries(point.series);\n setVerticalMarkerX({\n scaledX: point.x,\n label: point.datum?.x ?? null,\n });\n }\n },\n [setHighlightedGroupIndex, setHighlightedPoint, highlightSeries]\n );\n\n const clearAllHighlights = useCallback(() => {\n setHighlightedPoint(null);\n highlightSeries(null);\n setHighlightedGroupIndex(null);\n }, [highlightSeries, setHighlightedGroupIndex, setHighlightedPoint]);\n\n // Highlight all points at a given X in a line chart\n const highlightX = useCallback(\n (marker: VerticalMarkerX<T> | null) => {\n if (marker) {\n clearAllHighlights();\n }\n setVerticalMarkerX(marker);\n },\n [clearAllHighlights]\n );\n\n // Highlight all points and bars at a given X index in a mixed line and bar chart\n const highlightGroup = useCallback(\n (groupIndex: number) => {\n highlightSeries(null);\n setHighlightedPoint(null);\n setHighlightedGroupIndex(groupIndex);\n },\n [highlightSeries, setHighlightedPoint, setHighlightedGroupIndex]\n );\n\n const clearHighlightedSeries = useCallback(() => {\n clearAllHighlights();\n dismissPopover();\n }, [dismissPopover, clearAllHighlights]);\n\n const { isGroupNavigation, ...handlers } = useNavigation({\n series,\n visibleSeries,\n scaledSeries,\n barGroups,\n xScale,\n yScale,\n highlightedPoint,\n highlightedGroupIndex,\n highlightedSeries,\n isHandlersDisabled,\n pinPopover,\n highlightSeries,\n highlightGroup,\n highlightPoint,\n highlightX,\n clearHighlightedSeries,\n verticalMarkerX,\n });\n\n const { onSVGMouseMove, onSVGMouseOut, onPopoverLeave } = useMouseHover<T>({\n scaledSeries,\n barGroups,\n plotRef,\n popoverRef,\n highlightPoint,\n highlightGroup,\n clearHighlightedSeries,\n isGroupNavigation,\n isHandlersDisabled,\n highlightX,\n });\n\n // There are multiple ways to indicate what X is selected.\n // TODO: make a uniform verticalMarkerX state to fit all use-cases.\n const highlightedX = useMemo(() => {\n if (highlightedGroupIndex !== null) {\n return barGroups[highlightedGroupIndex].x;\n }\n if (verticalMarkerX !== null) {\n return verticalMarkerX.label;\n }\n return highlightedPoint?.datum?.x ?? null;\n }, [highlightedPoint, verticalMarkerX, highlightedGroupIndex, barGroups]);\n\n useEffect(() => {\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n dismissPopover();\n }\n };\n document.addEventListener('keydown', onKeyDown);\n return () => document.removeEventListener('keydown', onKeyDown);\n }, [dismissPopover]);\n\n useLayoutEffect(() => {\n if (highlightedX !== null || highlightedPoint !== null) {\n showPopover();\n }\n }, [highlightedX, highlightedPoint, showPopover]);\n\n const onPopoverDismiss = (outsideClick?: boolean) => {\n dismissPopover();\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 const isSomeInnerElementFocused = highlightedPoint || highlightedGroupIndex !== null || verticalMarkerX;\n if (isSomeInnerElementFocused) {\n plotRef.current?.focusApplication();\n } else {\n plotRef.current?.focusPlot();\n }\n }, 0);\n } else {\n clearAllHighlights();\n setVerticalMarkerX(null);\n }\n };\n\n const onSVGMouseDown = (e: React.MouseEvent<SVGSVGElement, MouseEvent>) => {\n if (isPopoverOpen) {\n if (isPopoverPinned) {\n dismissPopover();\n } else {\n pinPopover();\n e.preventDefault();\n }\n } else {\n showPopover();\n }\n };\n\n const onSVGFocus = (event: React.FocusEvent, trigger: 'mouse' | 'keyboard') => {\n setPlotFocused(true);\n if (trigger === 'keyboard') {\n handlers.onFocus();\n } else {\n // noop: clicks are handled separately\n }\n };\n\n const onSVGBlur = (event: React.FocusEvent<Element>) => {\n setPlotFocused(false);\n const blurTarget = event.relatedTarget || event.target;\n if (\n blurTarget === null ||\n !(blurTarget instanceof Element) ||\n !nodeContains(containerRefObject.current, blurTarget)\n ) {\n setHighlightedPoint(null);\n setVerticalMarkerX(null);\n if (!plotContainerRef?.current?.contains(blurTarget)) {\n clearHighlightedSeries();\n }\n\n if (isPopoverOpen && !isPopoverPinned) {\n dismissPopover();\n }\n }\n };\n\n const onSVGKeyDown = handlers.onKeyDown;\n\n const xOffset = xScale.isCategorical() ? Math.max(0, xScale.d3Scale.bandwidth() - 1) / 2 : 0;\n\n let verticalLineX: number | null = null;\n if (verticalMarkerX !== null) {\n verticalLineX = verticalMarkerX.scaledX;\n } else if (isGroupNavigation && highlightedGroupIndex !== null) {\n const x = xScale.d3Scale(barGroups[highlightedGroupIndex].x as any) ?? null;\n if (x !== null) {\n verticalLineX = xOffset + x;\n }\n }\n\n const point = useMemo(\n () =>\n highlightedPoint\n ? {\n key: `${highlightedPoint.x}-${highlightedPoint.y}`,\n x: highlightedPoint.x,\n y: highlightedPoint.y,\n color: highlightedPoint.color,\n }\n : null,\n [highlightedPoint]\n );\n\n const verticalMarkers = useMemo(\n () =>\n verticalLineX !== null\n ? scaledSeries\n .filter(({ x, y }) => (x === verticalLineX || isNaN(x)) && !isNaN(y))\n .map(({ x, y, color }, index) => ({\n key: `${index}-${x}-${y}`,\n x: !horizontalBars ? verticalLineX || 0 : y,\n y: !horizontalBars ? y : verticalLineX || 0,\n color: color,\n }))\n : [],\n [scaledSeries, verticalLineX, horizontalBars]\n );\n\n const highlightedElementRef = isGroupNavigation\n ? highlightedGroupRef\n : highlightedPoint\n ? highlightedPointRef\n : verticalMarkerRef;\n\n const highlightDetails = useMemo(() => {\n if (highlightedX === null) {\n return null;\n }\n\n // When series point is highlighted show the corresponding series and matching x-thresholds.\n if (highlightedPoint) {\n const seriesToShow = visibleSeries.filter(\n series => series.series === highlightedPoint?.series || isXThreshold(series.series)\n );\n return formatHighlighted(highlightedX, seriesToShow, xTickFormatter);\n }\n\n // Otherwise - show all visible series details.\n return formatHighlighted(highlightedX, visibleSeries, xTickFormatter);\n }, [highlightedX, highlightedPoint, visibleSeries, xTickFormatter]);\n\n const activeAriaLabel = useMemo(\n () =>\n highlightDetails\n ? `${highlightDetails.position}, ${highlightDetails.details.map(d => d.key + ' ' + d.value).join(',')}`\n : '',\n [highlightDetails]\n );\n\n // Live region is used when nothing is focused e.g. when hovering.\n const activeLiveRegion =\n activeAriaLabel && !highlightedPoint && highlightedGroupIndex === null ? activeAriaLabel : '';\n\n const isLineXKeyboardFocused = isPlotFocused && !highlightedPoint && verticalMarkerX;\n\n return (\n <div className={styles['chart-container']} ref={containerRef}>\n <AxisLabel axis={y} position=\"left\" title={xy.title[y]} />\n <div className={styles['chart-container__horizontal']}>\n <LabelsMeasure\n ticks={xy.ticks[y]}\n scale={xy.scale[y]}\n tickFormatter={xy.tickFormatter[y] as TickFormatter}\n autoWidth={setLeftLabelsWidth}\n />\n\n <div className={styles['chart-container__vertical']}>\n <ChartPlot\n ref={plotRef}\n width={plotWidth}\n height={plotHeight}\n offsetBottom={bottomLabelsHeight}\n isClickable={isPopoverOpen && !isPopoverPinned}\n ariaLabel={ariaLabel}\n ariaLabelledby={ariaLabelledby}\n ariaDescription={ariaDescription}\n ariaRoleDescription={i18nStrings?.chartAriaRoleDescription}\n ariaLiveRegion={activeLiveRegion}\n activeElementRef={highlightedElementRef}\n activeElementKey={\n isPlotFocused &&\n (highlightedGroupIndex?.toString() ??\n (isLineXKeyboardFocused ? `point-index-${handlers.xIndex}` : point?.key))\n }\n activeElementFocusOffset={isGroupNavigation ? 0 : isLineXKeyboardFocused ? { x: 8, y: 0 } : 3}\n onMouseMove={onSVGMouseMove}\n onMouseOut={onSVGMouseOut}\n onMouseDown={onSVGMouseDown}\n onFocus={onSVGFocus}\n onBlur={onSVGBlur}\n onKeyDown={onSVGKeyDown}\n >\n <LeftLabels\n axis={y}\n ticks={xy.ticks[y]}\n scale={xy.scale[y]}\n tickFormatter={xy.tickFormatter[y] as TickFormatter}\n title={xy.title[y]}\n ariaRoleDescription={xy.ariaRoleDescription[y]}\n width={plotWidth}\n height={plotHeight}\n />\n\n {horizontalBars && <VerticalGridLines scale={yScale} ticks={yTicks} height={plotHeight} />}\n\n {emphasizeBaselineAxis && linesOnly && (\n <EmphasizedBaseline axis={x} scale={yScale} width={plotWidth} height={plotHeight} />\n )}\n\n <DataSeries\n axis={x}\n plotWidth={plotWidth}\n plotHeight={plotHeight}\n highlightedSeries={highlightedSeries ?? null}\n highlightedGroupIndex={highlightedGroupIndex}\n stackedBars={stackedBars}\n isGroupNavigation={isGroupNavigation}\n visibleSeries={visibleSeries}\n xScale={xScale}\n yScale={yScale}\n />\n\n {emphasizeBaselineAxis && !linesOnly && (\n <EmphasizedBaseline axis={x} scale={yScale} width={plotWidth} height={plotHeight} />\n )}\n\n <VerticalMarker\n key={verticalLineX || ''}\n height={plotHeight}\n showPoints={highlightedPoint === null}\n showLine={!isGroupNavigation}\n points={verticalMarkers}\n ref={verticalMarkerRef}\n />\n\n {highlightedPoint && (\n <HighlightedPoint\n ref={highlightedPointRef}\n point={point}\n role=\"button\"\n ariaLabel={activeAriaLabel}\n ariaHasPopup={true}\n ariaExpanded={isPopoverPinned}\n />\n )}\n\n {isGroupNavigation && xScale.isCategorical() && (\n <BarGroups\n ariaLabel={activeAriaLabel}\n isRefresh={isRefresh}\n isPopoverPinned={isPopoverPinned}\n barGroups={barGroups}\n highlightedGroupIndex={highlightedGroupIndex}\n highlightedGroupRef={highlightedGroupRef}\n />\n )}\n\n <BottomLabels\n axis={x}\n ticks={xy.ticks[x]}\n scale={xy.scale[x]}\n tickFormatter={xy.tickFormatter[x] as TickFormatter}\n title={xy.title[x]}\n ariaRoleDescription={xy.ariaRoleDescription[x]}\n height={plotHeight}\n width={plotWidth}\n offsetLeft={leftLabelsWidth + BOTTOM_LABELS_OFFSET}\n offsetRight={BOTTOM_LABELS_OFFSET}\n autoHeight={setBottomLabelsHeight}\n />\n </ChartPlot>\n\n <AxisLabel axis={x} position=\"bottom\" title={xy.title[x]} />\n </div>\n\n <ChartPopover\n ref={popoverRef}\n containerRef={containerRefObject}\n trackRef={highlightedElementRef}\n isOpen={isPopoverOpen}\n isPinned={isPopoverPinned}\n highlightDetails={highlightDetails}\n onDismiss={onPopoverDismiss}\n size={detailPopoverSize}\n dismissAriaLabel={i18nStrings.detailPopoverDismissAriaLabel}\n onMouseLeave={onPopoverLeave}\n />\n </div>\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"chart-container.js","sourceRoot":"lib/default/","sources":["mixed-line-bar-chart/chart-container.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, { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react';\n\nimport { useVisualRefresh } from '../internal/hooks/use-visual-mode';\n\nimport { getXTickCount, getYTickCount, createXTicks, createYTicks } from '../internal/components/cartesian-chart/ticks';\nimport ChartPlot, { ChartPlotRef } from '../internal/components/chart-plot';\nimport AxisLabel from '../internal/components/cartesian-chart/axis-label';\nimport LabelsMeasure from '../internal/components/cartesian-chart/labels-measure';\nimport LeftLabels from '../internal/components/cartesian-chart/left-labels';\nimport BottomLabels from '../internal/components/cartesian-chart/bottom-labels';\nimport VerticalGridLines from '../internal/components/cartesian-chart/vertical-grid-lines';\nimport EmphasizedBaseline from '../internal/components/cartesian-chart/emphasized-baseline';\nimport HighlightedPoint from '../internal/components/cartesian-chart/highlighted-point';\nimport VerticalMarker from '../internal/components/cartesian-chart/vertical-marker';\nimport { ChartScale, NumericChartScale } from '../internal/components/cartesian-chart/scales';\nimport ChartPopover from './chart-popover';\nimport { ChartDataTypes, InternalChartSeries, MixedLineBarChartProps, ScaleType, VerticalMarkerX } from './interfaces';\nimport { computeDomainX, computeDomainY } from './domain';\nimport { isXThreshold } from './utils';\nimport makeScaledSeries, { ScaledPoint } from './make-scaled-series';\nimport makeScaledBarGroups, { ScaledBarGroup } from './make-scaled-bar-groups';\nimport formatHighlighted from './format-highlighted';\nimport DataSeries from './data-series';\nimport BarGroups from './bar-groups';\nimport { useMouseHover } from './hooks/use-mouse-hover';\nimport { useNavigation } from './hooks/use-navigation';\nimport { usePopover } from './hooks/use-popover';\n\nimport styles from './styles.css.js';\nimport { CartesianChartProps } from '../internal/components/cartesian-chart/interfaces';\nimport useContainerWidth from '../internal/utils/use-container-width';\nimport { useMergeRefs } from '../internal/hooks/use-merge-refs';\nimport { nodeBelongs } from '../internal/utils/node-belongs';\n\nconst LEFT_LABELS_MARGIN = 16;\nconst BOTTOM_LABELS_OFFSET = 12;\n\ntype TickFormatter = undefined | ((value: ChartDataTypes) => string);\n\nexport interface ChartContainerProps<T extends ChartDataTypes> {\n series: ReadonlyArray<InternalChartSeries<T>>;\n visibleSeries: ReadonlyArray<InternalChartSeries<T>>;\n\n height: number;\n detailPopoverSize: MixedLineBarChartProps<T>['detailPopoverSize'];\n detailPopoverFooter: MixedLineBarChartProps<T>['detailPopoverFooter'];\n\n xScaleType: ScaleType;\n yScaleType: 'linear' | 'log';\n\n xDomain: MixedLineBarChartProps<T>['xDomain'];\n yDomain: MixedLineBarChartProps<T>['yDomain'];\n\n xTickFormatter?: CartesianChartProps.TickFormatter<T>;\n yTickFormatter?: CartesianChartProps.TickFormatter<number>;\n\n xTitle?: string;\n yTitle?: string;\n\n stackedBars?: boolean;\n emphasizeBaselineAxis: boolean;\n horizontalBars?: boolean;\n\n highlightedSeries?: MixedLineBarChartProps<T>['highlightedSeries'];\n onHighlightChange: (series: InternalChartSeries<T>['series'] | null) => void;\n highlightedPoint: ScaledPoint<T> | null;\n setHighlightedPoint: (point: ScaledPoint<T> | null) => void;\n highlightedGroupIndex: number | null;\n setHighlightedGroupIndex: (groupIndex: number | null) => void;\n\n ariaLabel: MixedLineBarChartProps<T>['ariaLabel'];\n ariaLabelledby: MixedLineBarChartProps<T>['ariaLabelledby'];\n ariaDescription: MixedLineBarChartProps<T>['ariaDescription'];\n i18nStrings: MixedLineBarChartProps<T>['i18nStrings'];\n\n plotContainerRef: React.RefObject<HTMLDivElement>;\n}\n\nexport default function ChartContainer<T extends ChartDataTypes>({\n height: plotHeight,\n series,\n visibleSeries,\n highlightedSeries,\n onHighlightChange,\n highlightedPoint,\n setHighlightedPoint,\n highlightedGroupIndex,\n setHighlightedGroupIndex,\n detailPopoverFooter,\n detailPopoverSize = 'medium',\n stackedBars = false,\n horizontalBars = false,\n xScaleType,\n yScaleType,\n xTickFormatter,\n yTickFormatter,\n emphasizeBaselineAxis,\n xTitle,\n yTitle,\n ariaLabel,\n ariaLabelledby,\n ariaDescription,\n i18nStrings = {},\n plotContainerRef,\n ...props\n}: ChartContainerProps<T>) {\n const plotRef = useRef<ChartPlotRef>(null);\n const verticalMarkerRef = useRef<SVGLineElement>(null);\n\n const [leftLabelsWidth, setLeftLabelsWidth] = useState(0);\n const [bottomLabelsHeight, setBottomLabelsHeight] = useState(0);\n const [verticalMarkerX, setVerticalMarkerX] = useState<VerticalMarkerX<T> | null>(null);\n const [containerWidth, containerMeasureRef] = useContainerWidth(500);\n const plotWidth = containerWidth ? containerWidth - leftLabelsWidth - LEFT_LABELS_MARGIN : 500;\n const containerRefObject = useRef(null);\n const containerRef = useMergeRefs(containerMeasureRef, containerRefObject);\n const popoverRef = useRef<HTMLElement | null>(null);\n\n const isRefresh = useVisualRefresh();\n\n const linesOnly = series.every(({ series }) => series.type === 'line' || series.type === 'threshold');\n\n const xDomain = (props.xDomain || computeDomainX(series, xScaleType)) as\n | readonly number[]\n | readonly string[]\n | readonly Date[];\n const yDomain = (props.yDomain || computeDomainY(series, yScaleType, stackedBars)) as readonly number[];\n\n const xTickCount = getXTickCount(plotWidth);\n const yTickCount = getYTickCount(plotHeight);\n\n const rangeBottomTop: [number, number] = [0, plotHeight];\n const rangeTopBottom: [number, number] = [plotHeight, 0];\n const rangeLeftRight: [number, number] = [0, plotWidth];\n const xScale = new ChartScale(xScaleType, xDomain, horizontalBars ? rangeBottomTop : rangeLeftRight, linesOnly);\n const yScale = new NumericChartScale(\n yScaleType,\n yDomain,\n horizontalBars ? rangeLeftRight : rangeTopBottom,\n props.yDomain ? null : yTickCount\n );\n\n const xTicks = createXTicks(xScale, xTickCount);\n const yTicks = createYTicks(yScale, yTickCount);\n\n /**\n * Interactions\n */\n const highlightedPointRef = useRef<SVGGElement>(null);\n const highlightedGroupRef = useRef<SVGRectElement>(null);\n const [isPlotFocused, setPlotFocused] = useState(false);\n\n // Some chart components are rendered against \"x\" or \"y\" axes,\n // When \"horizontalBars\" is enabled, the axes are inverted.\n const x = !horizontalBars ? 'x' : 'y';\n const y = !horizontalBars ? 'y' : 'x';\n const xy = {\n ticks: { x: xTicks, y: yTicks },\n scale: { x: xScale, y: yScale },\n tickFormatter: { x: xTickFormatter, y: yTickFormatter },\n title: { x: xTitle, y: yTitle },\n ariaRoleDescription: { x: i18nStrings.xAxisAriaRoleDescription, y: i18nStrings.yAxisAriaRoleDescription },\n };\n\n const scaledSeries = makeScaledSeries(visibleSeries, xScale, yScale);\n const barGroups: ScaledBarGroup<T>[] = makeScaledBarGroups(visibleSeries, xScale, plotWidth, plotHeight, y);\n\n const { isPopoverOpen, isPopoverPinned, showPopover, pinPopover, dismissPopover } = usePopover();\n\n // Allows to add a delay between popover is dismissed and handlers are enabled to prevent immediate popover reopening.\n const [isHandlersDisabled, setHandlersDisabled] = useState(!isPopoverPinned);\n useEffect(() => {\n if (isPopoverPinned) {\n setHandlersDisabled(true);\n } else {\n const timeoutId = setTimeout(() => setHandlersDisabled(false), 25);\n return () => clearTimeout(timeoutId);\n }\n }, [isPopoverPinned]);\n\n const highlightSeries = useCallback(\n (series: MixedLineBarChartProps.ChartSeries<T> | null) => {\n if (series !== highlightedSeries) {\n onHighlightChange(series);\n }\n },\n [highlightedSeries, onHighlightChange]\n );\n\n const highlightPoint = useCallback(\n (point: ScaledPoint<T> | null) => {\n setHighlightedGroupIndex(null);\n setHighlightedPoint(point);\n if (point) {\n highlightSeries(point.series);\n setVerticalMarkerX({\n scaledX: point.x,\n label: point.datum?.x ?? null,\n });\n }\n },\n [setHighlightedGroupIndex, setHighlightedPoint, highlightSeries]\n );\n\n const clearAllHighlights = useCallback(() => {\n setHighlightedPoint(null);\n highlightSeries(null);\n setHighlightedGroupIndex(null);\n }, [highlightSeries, setHighlightedGroupIndex, setHighlightedPoint]);\n\n // Highlight all points at a given X in a line chart\n const highlightX = useCallback(\n (marker: VerticalMarkerX<T> | null) => {\n if (marker) {\n clearAllHighlights();\n }\n setVerticalMarkerX(marker);\n },\n [clearAllHighlights]\n );\n\n // Highlight all points and bars at a given X index in a mixed line and bar chart\n const highlightGroup = useCallback(\n (groupIndex: number) => {\n highlightSeries(null);\n setHighlightedPoint(null);\n setHighlightedGroupIndex(groupIndex);\n },\n [highlightSeries, setHighlightedPoint, setHighlightedGroupIndex]\n );\n\n const clearHighlightedSeries = useCallback(() => {\n clearAllHighlights();\n dismissPopover();\n }, [dismissPopover, clearAllHighlights]);\n\n const { isGroupNavigation, ...handlers } = useNavigation({\n series,\n visibleSeries,\n scaledSeries,\n barGroups,\n xScale,\n yScale,\n highlightedPoint,\n highlightedGroupIndex,\n highlightedSeries,\n isHandlersDisabled,\n pinPopover,\n highlightSeries,\n highlightGroup,\n highlightPoint,\n highlightX,\n clearHighlightedSeries,\n verticalMarkerX,\n });\n\n const { onSVGMouseMove, onSVGMouseOut, onPopoverLeave } = useMouseHover<T>({\n scaledSeries,\n barGroups,\n plotRef,\n popoverRef,\n highlightPoint,\n highlightGroup,\n clearHighlightedSeries,\n isGroupNavigation,\n isHandlersDisabled,\n highlightX,\n });\n\n // There are multiple ways to indicate what X is selected.\n // TODO: make a uniform verticalMarkerX state to fit all use-cases.\n const highlightedX = useMemo(() => {\n if (highlightedGroupIndex !== null) {\n return barGroups[highlightedGroupIndex].x;\n }\n if (verticalMarkerX !== null) {\n return verticalMarkerX.label;\n }\n return highlightedPoint?.datum?.x ?? null;\n }, [highlightedPoint, verticalMarkerX, highlightedGroupIndex, barGroups]);\n\n useEffect(() => {\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n dismissPopover();\n }\n };\n document.addEventListener('keydown', onKeyDown);\n return () => document.removeEventListener('keydown', onKeyDown);\n }, [dismissPopover]);\n\n useLayoutEffect(() => {\n if (highlightedX !== null || highlightedPoint !== null) {\n showPopover();\n }\n }, [highlightedX, highlightedPoint, showPopover]);\n\n const onPopoverDismiss = (outsideClick?: boolean) => {\n dismissPopover();\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 const isSomeInnerElementFocused = highlightedPoint || highlightedGroupIndex !== null || verticalMarkerX;\n if (isSomeInnerElementFocused) {\n plotRef.current?.focusApplication();\n } else {\n plotRef.current?.focusPlot();\n }\n }, 0);\n } else {\n clearAllHighlights();\n setVerticalMarkerX(null);\n }\n };\n\n const onSVGMouseDown = (e: React.MouseEvent<SVGSVGElement, MouseEvent>) => {\n if (isPopoverOpen) {\n if (isPopoverPinned) {\n dismissPopover();\n } else {\n pinPopover();\n e.preventDefault();\n }\n } else {\n showPopover();\n }\n };\n\n const onSVGFocus = (event: React.FocusEvent, trigger: 'mouse' | 'keyboard') => {\n setPlotFocused(true);\n if (trigger === 'keyboard') {\n handlers.onFocus();\n } else {\n // noop: clicks are handled separately\n }\n };\n\n const onSVGBlur = (event: React.FocusEvent<Element>) => {\n setPlotFocused(false);\n const blurTarget = event.relatedTarget || event.target;\n if (\n blurTarget === null ||\n !(blurTarget instanceof Element) ||\n !nodeBelongs(containerRefObject.current, blurTarget)\n ) {\n setHighlightedPoint(null);\n setVerticalMarkerX(null);\n if (!plotContainerRef?.current?.contains(blurTarget)) {\n clearHighlightedSeries();\n }\n\n if (isPopoverOpen && !isPopoverPinned) {\n dismissPopover();\n }\n }\n };\n\n const onSVGKeyDown = handlers.onKeyDown;\n\n const xOffset = xScale.isCategorical() ? Math.max(0, xScale.d3Scale.bandwidth() - 1) / 2 : 0;\n\n let verticalLineX: number | null = null;\n if (verticalMarkerX !== null) {\n verticalLineX = verticalMarkerX.scaledX;\n } else if (isGroupNavigation && highlightedGroupIndex !== null) {\n const x = xScale.d3Scale(barGroups[highlightedGroupIndex].x as any) ?? null;\n if (x !== null) {\n verticalLineX = xOffset + x;\n }\n }\n\n const point = useMemo(\n () =>\n highlightedPoint\n ? {\n key: `${highlightedPoint.x}-${highlightedPoint.y}`,\n x: highlightedPoint.x,\n y: highlightedPoint.y,\n color: highlightedPoint.color,\n }\n : null,\n [highlightedPoint]\n );\n\n const verticalMarkers = useMemo(\n () =>\n verticalLineX !== null\n ? scaledSeries\n .filter(({ x, y }) => (x === verticalLineX || isNaN(x)) && !isNaN(y))\n .map(({ x, y, color }, index) => ({\n key: `${index}-${x}-${y}`,\n x: !horizontalBars ? verticalLineX || 0 : y,\n y: !horizontalBars ? y : verticalLineX || 0,\n color: color,\n }))\n : [],\n [scaledSeries, verticalLineX, horizontalBars]\n );\n\n const highlightedElementRef = isGroupNavigation\n ? highlightedGroupRef\n : highlightedPoint\n ? highlightedPointRef\n : verticalMarkerRef;\n\n const highlightDetails = useMemo(() => {\n if (highlightedX === null) {\n return null;\n }\n\n // When series point is highlighted show the corresponding series and matching x-thresholds.\n if (highlightedPoint) {\n const seriesToShow = visibleSeries.filter(\n series => series.series === highlightedPoint?.series || isXThreshold(series.series)\n );\n return formatHighlighted(highlightedX, seriesToShow, xTickFormatter);\n }\n\n // Otherwise - show all visible series details.\n return formatHighlighted(highlightedX, visibleSeries, xTickFormatter);\n }, [highlightedX, highlightedPoint, visibleSeries, xTickFormatter]);\n\n const detailPopoverFooterContent = useMemo(\n () => (detailPopoverFooter && highlightedX ? detailPopoverFooter(highlightedX) : null),\n [detailPopoverFooter, highlightedX]\n );\n\n const activeAriaLabel = useMemo(\n () =>\n highlightDetails\n ? `${highlightDetails.position}, ${highlightDetails.details.map(d => d.key + ' ' + d.value).join(',')}`\n : '',\n [highlightDetails]\n );\n\n // Live region is used when nothing is focused e.g. when hovering.\n const activeLiveRegion =\n activeAriaLabel && !highlightedPoint && highlightedGroupIndex === null ? activeAriaLabel : '';\n\n const isLineXKeyboardFocused = isPlotFocused && !highlightedPoint && verticalMarkerX;\n\n return (\n <div className={styles['chart-container']} ref={containerRef}>\n <AxisLabel axis={y} position=\"left\" title={xy.title[y]} />\n <div className={styles['chart-container__horizontal']}>\n <LabelsMeasure\n ticks={xy.ticks[y]}\n scale={xy.scale[y]}\n tickFormatter={xy.tickFormatter[y] as TickFormatter}\n autoWidth={setLeftLabelsWidth}\n />\n\n <div className={styles['chart-container__vertical']}>\n <ChartPlot\n ref={plotRef}\n width={plotWidth}\n height={plotHeight}\n offsetBottom={bottomLabelsHeight}\n isClickable={isPopoverOpen && !isPopoverPinned}\n ariaLabel={ariaLabel}\n ariaLabelledby={ariaLabelledby}\n ariaDescription={ariaDescription}\n ariaRoleDescription={i18nStrings?.chartAriaRoleDescription}\n ariaLiveRegion={activeLiveRegion}\n activeElementRef={highlightedElementRef}\n activeElementKey={\n isPlotFocused &&\n (highlightedGroupIndex?.toString() ??\n (isLineXKeyboardFocused ? `point-index-${handlers.xIndex}` : point?.key))\n }\n activeElementFocusOffset={isGroupNavigation ? 0 : isLineXKeyboardFocused ? { x: 8, y: 0 } : 3}\n onMouseMove={onSVGMouseMove}\n onMouseOut={onSVGMouseOut}\n onMouseDown={onSVGMouseDown}\n onFocus={onSVGFocus}\n onBlur={onSVGBlur}\n onKeyDown={onSVGKeyDown}\n >\n <LeftLabels\n axis={y}\n ticks={xy.ticks[y]}\n scale={xy.scale[y]}\n tickFormatter={xy.tickFormatter[y] as TickFormatter}\n title={xy.title[y]}\n ariaRoleDescription={xy.ariaRoleDescription[y]}\n width={plotWidth}\n height={plotHeight}\n />\n\n {horizontalBars && <VerticalGridLines scale={yScale} ticks={yTicks} height={plotHeight} />}\n\n {emphasizeBaselineAxis && linesOnly && (\n <EmphasizedBaseline axis={x} scale={yScale} width={plotWidth} height={plotHeight} />\n )}\n\n <DataSeries\n axis={x}\n plotWidth={plotWidth}\n plotHeight={plotHeight}\n highlightedSeries={highlightedSeries ?? null}\n highlightedGroupIndex={highlightedGroupIndex}\n stackedBars={stackedBars}\n isGroupNavigation={isGroupNavigation}\n visibleSeries={visibleSeries}\n xScale={xScale}\n yScale={yScale}\n />\n\n {emphasizeBaselineAxis && !linesOnly && (\n <EmphasizedBaseline axis={x} scale={yScale} width={plotWidth} height={plotHeight} />\n )}\n\n <VerticalMarker\n key={verticalLineX || ''}\n height={plotHeight}\n showPoints={highlightedPoint === null}\n showLine={!isGroupNavigation}\n points={verticalMarkers}\n ref={verticalMarkerRef}\n />\n\n {highlightedPoint && (\n <HighlightedPoint\n ref={highlightedPointRef}\n point={point}\n role=\"button\"\n ariaLabel={activeAriaLabel}\n ariaHasPopup={true}\n ariaExpanded={isPopoverPinned}\n />\n )}\n\n {isGroupNavigation && xScale.isCategorical() && (\n <BarGroups\n ariaLabel={activeAriaLabel}\n isRefresh={isRefresh}\n isPopoverPinned={isPopoverPinned}\n barGroups={barGroups}\n highlightedGroupIndex={highlightedGroupIndex}\n highlightedGroupRef={highlightedGroupRef}\n />\n )}\n\n <BottomLabels\n axis={x}\n ticks={xy.ticks[x]}\n scale={xy.scale[x]}\n tickFormatter={xy.tickFormatter[x] as TickFormatter}\n title={xy.title[x]}\n ariaRoleDescription={xy.ariaRoleDescription[x]}\n height={plotHeight}\n width={plotWidth}\n offsetLeft={leftLabelsWidth + BOTTOM_LABELS_OFFSET}\n offsetRight={BOTTOM_LABELS_OFFSET}\n autoHeight={setBottomLabelsHeight}\n />\n </ChartPlot>\n\n <AxisLabel axis={x} position=\"bottom\" title={xy.title[x]} />\n </div>\n\n <ChartPopover\n ref={popoverRef}\n containerRef={containerRefObject}\n trackRef={highlightedElementRef}\n isOpen={isPopoverOpen}\n isPinned={isPopoverPinned}\n highlightDetails={highlightDetails}\n onDismiss={onPopoverDismiss}\n size={detailPopoverSize}\n footer={detailPopoverFooterContent}\n dismissAriaLabel={i18nStrings.detailPopoverDismissAriaLabel}\n onMouseLeave={onPopoverLeave}\n />\n </div>\n </div>\n );\n}\n"]}
@@ -9,6 +9,7 @@ export interface MixedChartPopoverProps<T extends ChartDataTypes> {
9
9
  highlightDetails: null | HighlightDetails;
10
10
  onDismiss(): void;
11
11
  size: MixedLineBarChartProps<T>['detailPopoverSize'];
12
+ footer?: React.ReactNode;
12
13
  dismissAriaLabel?: string;
13
14
  onMouseEnter?: (event: React.MouseEvent) => void;
14
15
  onMouseLeave?: (event: React.MouseEvent) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"chart-popover.d.ts","sourceRoot":"lib/default/","sources":["mixed-line-bar-chart/chart-popover.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAItE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,MAAM,WAAW,sBAAsB,CAAC,CAAC,SAAS,cAAc;IAC9D,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC9C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACtC,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,gBAAgB,EAAE,IAAI,GAAG,gBAAgB,CAAC;IAC1C,SAAS,IAAI,IAAI,CAAC;IAClB,IAAI,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;IACrD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IACjD,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;CAClD;;AAED,wBAAmD"}
1
+ {"version":3,"file":"chart-popover.d.ts","sourceRoot":"lib/default/","sources":["mixed-line-bar-chart/chart-popover.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAItE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,MAAM,WAAW,sBAAsB,CAAC,CAAC,SAAS,cAAc;IAC9D,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC9C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACtC,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,gBAAgB,EAAE,IAAI,GAAG,gBAAgB,CAAC;IAC1C,SAAS,IAAI,IAAI,CAAC;IAClB,IAAI,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;IACrD,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IACjD,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;CAClD;;AAED,wBAAmD"}
@@ -4,11 +4,13 @@ import React from 'react';
4
4
  import clsx from 'clsx';
5
5
  import ChartPopover from '../internal/components/chart-popover';
6
6
  import ChartSeriesDetails from '../internal/components/chart-series-details';
7
+ import InternalBox from '../box/internal';
7
8
  import styles from './styles.css.js';
8
9
  import { Transition } from '../internal/components/transition';
9
10
  export default React.forwardRef(MixedChartPopover);
10
- function MixedChartPopover({ containerRef, trackRef, isOpen, isPinned, highlightDetails, onDismiss, size = 'medium', dismissAriaLabel, onMouseEnter, onMouseLeave, }, popoverRef) {
11
+ function MixedChartPopover({ containerRef, trackRef, isOpen, isPinned, highlightDetails, footer, onDismiss, size = 'medium', dismissAriaLabel, onMouseEnter, onMouseLeave, }, popoverRef) {
11
12
  return (React.createElement(Transition, { in: isOpen }, (state, ref) => (React.createElement("div", { ref: ref, className: clsx(state === 'exiting' && styles.exiting) }, (isOpen || state !== 'exited') && highlightDetails && (React.createElement(ChartPopover, { ref: popoverRef, title: highlightDetails.position, trackRef: trackRef, trackKey: highlightDetails.position, dismissButton: isPinned, dismissAriaLabel: dismissAriaLabel, onDismiss: onDismiss, container: containerRef.current, size: size, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave },
12
- React.createElement(ChartSeriesDetails, { details: highlightDetails.details })))))));
13
+ React.createElement(ChartSeriesDetails, { details: highlightDetails.details }),
14
+ footer && React.createElement(InternalBox, { margin: { top: 's' } }, footer)))))));
13
15
  }
14
16
  //# sourceMappingURL=chart-popover.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chart-popover.js","sourceRoot":"lib/default/","sources":["mixed-line-bar-chart/chart-popover.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,YAAY,MAAM,sCAAsC,CAAC;AAChE,OAAO,kBAAkB,MAAM,6CAA6C,CAAC;AAG7E,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAgB/D,eAAe,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;AAEnD,SAAS,iBAAiB,CACxB,EACE,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,gBAAgB,EAChB,SAAS,EACT,IAAI,GAAG,QAAQ,EACf,gBAAgB,EAChB,YAAY,EACZ,YAAY,GACc,EAC5B,UAAkC;IAElC,OAAO,CACL,oBAAC,UAAU,IAAC,EAAE,EAAE,MAAM,IACnB,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CACf,6BAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,CAAC,IAClE,CAAC,MAAM,IAAI,KAAK,KAAK,QAAQ,CAAC,IAAI,gBAAgB,IAAI,CACrD,oBAAC,YAAY,IACX,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,gBAAgB,CAAC,QAAQ,EAChC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,EACnC,aAAa,EAAE,QAAQ,EACvB,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,YAAY,CAAC,OAAO,EAC/B,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY;QAE1B,oBAAC,kBAAkB,IAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,GAAI,CAC5C,CAChB,CACG,CACP,CACU,CACd,CAAC;AACJ,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React from 'react';\nimport clsx from 'clsx';\n\nimport ChartPopover from '../internal/components/chart-popover';\nimport ChartSeriesDetails from '../internal/components/chart-series-details';\nimport { ChartDataTypes, MixedLineBarChartProps } from './interfaces';\n\nimport styles from './styles.css.js';\nimport { Transition } from '../internal/components/transition';\nimport { HighlightDetails } from './format-highlighted';\n\nexport interface MixedChartPopoverProps<T extends ChartDataTypes> {\n containerRef: React.RefObject<HTMLDivElement>;\n trackRef: React.RefObject<SVGElement>;\n isOpen: boolean;\n isPinned: boolean;\n highlightDetails: null | HighlightDetails;\n onDismiss(): void;\n size: MixedLineBarChartProps<T>['detailPopoverSize'];\n dismissAriaLabel?: string;\n onMouseEnter?: (event: React.MouseEvent) => void;\n onMouseLeave?: (event: React.MouseEvent) => void;\n}\n\nexport default React.forwardRef(MixedChartPopover);\n\nfunction MixedChartPopover<T extends ChartDataTypes>(\n {\n containerRef,\n trackRef,\n isOpen,\n isPinned,\n highlightDetails,\n onDismiss,\n size = 'medium',\n dismissAriaLabel,\n onMouseEnter,\n onMouseLeave,\n }: MixedChartPopoverProps<T>,\n popoverRef: React.Ref<HTMLElement>\n) {\n return (\n <Transition in={isOpen}>\n {(state, ref) => (\n <div ref={ref} className={clsx(state === 'exiting' && styles.exiting)}>\n {(isOpen || state !== 'exited') && highlightDetails && (\n <ChartPopover\n ref={popoverRef}\n title={highlightDetails.position}\n trackRef={trackRef}\n trackKey={highlightDetails.position}\n dismissButton={isPinned}\n dismissAriaLabel={dismissAriaLabel}\n onDismiss={onDismiss}\n container={containerRef.current}\n size={size}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n >\n <ChartSeriesDetails details={highlightDetails.details} />\n </ChartPopover>\n )}\n </div>\n )}\n </Transition>\n );\n}\n"]}
1
+ {"version":3,"file":"chart-popover.js","sourceRoot":"lib/default/","sources":["mixed-line-bar-chart/chart-popover.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,YAAY,MAAM,sCAAsC,CAAC;AAChE,OAAO,kBAAkB,MAAM,6CAA6C,CAAC;AAC7E,OAAO,WAAW,MAAM,iBAAiB,CAAC;AAG1C,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAiB/D,eAAe,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;AAEnD,SAAS,iBAAiB,CACxB,EACE,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,gBAAgB,EAChB,MAAM,EACN,SAAS,EACT,IAAI,GAAG,QAAQ,EACf,gBAAgB,EAChB,YAAY,EACZ,YAAY,GACc,EAC5B,UAAkC;IAElC,OAAO,CACL,oBAAC,UAAU,IAAC,EAAE,EAAE,MAAM,IACnB,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CACf,6BAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,CAAC,IAClE,CAAC,MAAM,IAAI,KAAK,KAAK,QAAQ,CAAC,IAAI,gBAAgB,IAAI,CACrD,oBAAC,YAAY,IACX,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,gBAAgB,CAAC,QAAQ,EAChC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,EACnC,aAAa,EAAE,QAAQ,EACvB,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,YAAY,CAAC,OAAO,EAC/B,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY;QAE1B,oBAAC,kBAAkB,IAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,GAAI;QACxD,MAAM,IAAI,oBAAC,WAAW,IAAC,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,IAAG,MAAM,CAAe,CACvD,CAChB,CACG,CACP,CACU,CACd,CAAC;AACJ,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React from 'react';\nimport clsx from 'clsx';\n\nimport ChartPopover from '../internal/components/chart-popover';\nimport ChartSeriesDetails from '../internal/components/chart-series-details';\nimport InternalBox from '../box/internal';\nimport { ChartDataTypes, MixedLineBarChartProps } from './interfaces';\n\nimport styles from './styles.css.js';\nimport { Transition } from '../internal/components/transition';\nimport { HighlightDetails } from './format-highlighted';\n\nexport interface MixedChartPopoverProps<T extends ChartDataTypes> {\n containerRef: React.RefObject<HTMLDivElement>;\n trackRef: React.RefObject<SVGElement>;\n isOpen: boolean;\n isPinned: boolean;\n highlightDetails: null | HighlightDetails;\n onDismiss(): void;\n size: MixedLineBarChartProps<T>['detailPopoverSize'];\n footer?: React.ReactNode;\n dismissAriaLabel?: string;\n onMouseEnter?: (event: React.MouseEvent) => void;\n onMouseLeave?: (event: React.MouseEvent) => void;\n}\n\nexport default React.forwardRef(MixedChartPopover);\n\nfunction MixedChartPopover<T extends ChartDataTypes>(\n {\n containerRef,\n trackRef,\n isOpen,\n isPinned,\n highlightDetails,\n footer,\n onDismiss,\n size = 'medium',\n dismissAriaLabel,\n onMouseEnter,\n onMouseLeave,\n }: MixedChartPopoverProps<T>,\n popoverRef: React.Ref<HTMLElement>\n) {\n return (\n <Transition in={isOpen}>\n {(state, ref) => (\n <div ref={ref} className={clsx(state === 'exiting' && styles.exiting)}>\n {(isOpen || state !== 'exited') && highlightDetails && (\n <ChartPopover\n ref={popoverRef}\n title={highlightDetails.position}\n trackRef={trackRef}\n trackKey={highlightDetails.position}\n dismissButton={isPinned}\n dismissAriaLabel={dismissAriaLabel}\n onDismiss={onDismiss}\n container={containerRef.current}\n size={size}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n >\n <ChartSeriesDetails details={highlightDetails.details} />\n {footer && <InternalBox margin={{ top: 's' }}>{footer}</InternalBox>}\n </ChartPopover>\n )}\n </div>\n )}\n </Transition>\n );\n}\n"]}
@@ -3,6 +3,6 @@ import { ChartDataTypes, MixedLineBarChartProps } from './interfaces';
3
3
  import { InternalBaseComponentProps } from '../internal/hooks/use-base-component';
4
4
  import { SomeRequired } from '../internal/types';
5
5
  type InternalMixedLineBarChartProps<T extends ChartDataTypes> = SomeRequired<MixedLineBarChartProps<T>, 'series' | 'height' | 'xScaleType' | 'yScaleType' | 'stackedBars' | 'horizontalBars' | 'statusType' | 'detailPopoverSize' | 'emphasizeBaselineAxis'> & InternalBaseComponentProps;
6
- export default function InternalMixedLineBarChart<T extends number | string | Date>({ height, xScaleType, yScaleType, xDomain, yDomain, highlightedSeries: controlledHighlightedSeries, visibleSeries: controlledVisibleSeries, series: externalSeries, onFilterChange, onHighlightChange: controlledOnHighlightChange, i18nStrings, ariaLabel, ariaLabelledby, ariaDescription, xTitle, yTitle, stackedBars, horizontalBars, hideFilter, additionalFilters, hideLegend, legendTitle, statusType, detailPopoverSize, emphasizeBaselineAxis, empty, noMatch, errorText, loadingText, recoveryText, onRecoveryClick, __internalRootRef, ...props }: InternalMixedLineBarChartProps<T>): JSX.Element;
6
+ export default function InternalMixedLineBarChart<T extends number | string | Date>({ height, xScaleType, yScaleType, xDomain, yDomain, highlightedSeries: controlledHighlightedSeries, visibleSeries: controlledVisibleSeries, series: externalSeries, onFilterChange, onHighlightChange: controlledOnHighlightChange, i18nStrings, ariaLabel, ariaLabelledby, ariaDescription, xTitle, yTitle, stackedBars, horizontalBars, hideFilter, additionalFilters, hideLegend, legendTitle, statusType, detailPopoverSize, detailPopoverFooter, emphasizeBaselineAxis, empty, noMatch, errorText, loadingText, recoveryText, onRecoveryClick, __internalRootRef, ...props }: InternalMixedLineBarChartProps<T>): JSX.Element;
7
7
  export {};
8
8
  //# sourceMappingURL=internal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"internal.d.ts","sourceRoot":"lib/default/","sources":["mixed-line-bar-chart/internal.tsx"],"names":[],"mappings":";AAaA,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAMtE,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAMlF,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,KAAK,8BAA8B,CAAC,CAAC,SAAS,cAAc,IAAI,YAAY,CAC1E,sBAAsB,CAAC,CAAC,CAAC,EACvB,QAAQ,GACR,QAAQ,GACR,YAAY,GACZ,YAAY,GACZ,aAAa,GACb,gBAAgB,GAChB,YAAY,GACZ,mBAAmB,GACnB,uBAAuB,CAC1B,GACC,0BAA0B,CAAC;AAE7B,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,IAAI,EAAE,EAClF,MAAM,EACN,UAAU,EACV,UAAU,EACV,OAAO,EACP,OAAO,EACP,iBAAiB,EAAE,2BAA2B,EAC9C,aAAa,EAAE,uBAAuB,EACtC,MAAM,EAAE,cAAc,EACtB,cAAc,EACd,iBAAiB,EAAE,2BAA2B,EAC9C,WAAW,EACX,SAAS,EACT,cAAc,EACd,eAAe,EACf,MAAM,EACN,MAAM,EACN,WAAW,EACX,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,UAAU,EACV,WAAW,EACX,UAAU,EACV,iBAAiB,EACjB,qBAAqB,EACrB,KAAK,EACL,OAAO,EACP,SAAS,EACT,WAAW,EACX,YAAY,EACZ,eAAe,EACf,iBAAwB,EACxB,GAAG,KAAK,EACT,EAAE,8BAA8B,CAAC,CAAC,CAAC,eAkNnC"}
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"lib/default/","sources":["mixed-line-bar-chart/internal.tsx"],"names":[],"mappings":";AAaA,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAMtE,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAKlF,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAIjD,KAAK,8BAA8B,CAAC,CAAC,SAAS,cAAc,IAAI,YAAY,CAC1E,sBAAsB,CAAC,CAAC,CAAC,EACvB,QAAQ,GACR,QAAQ,GACR,YAAY,GACZ,YAAY,GACZ,aAAa,GACb,gBAAgB,GAChB,YAAY,GACZ,mBAAmB,GACnB,uBAAuB,CAC1B,GACC,0BAA0B,CAAC;AAE7B,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,IAAI,EAAE,EAClF,MAAM,EACN,UAAU,EACV,UAAU,EACV,OAAO,EACP,OAAO,EACP,iBAAiB,EAAE,2BAA2B,EAC9C,aAAa,EAAE,uBAAuB,EACtC,MAAM,EAAE,cAAc,EACtB,cAAc,EACd,iBAAiB,EAAE,2BAA2B,EAC9C,WAAW,EACX,SAAS,EACT,cAAc,EACd,eAAe,EACf,MAAM,EACN,MAAM,EACN,WAAW,EACX,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,UAAU,EACV,WAAW,EACX,UAAU,EACV,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,KAAK,EACL,OAAO,EACP,SAAS,EACT,WAAW,EACX,YAAY,EACZ,eAAe,EACf,iBAAwB,EACxB,GAAG,KAAK,EACT,EAAE,8BAA8B,CAAC,CAAC,CAAC,eAmNnC"}