@fluentui/react-charts 0.0.0-nightly-20251212-0406.1 → 0.0.0-nightly-20251216-0407.1

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 (51) hide show
  1. package/CHANGELOG.md +13 -13
  2. package/dist/index.d.ts +18 -0
  3. package/lib/components/CommonComponents/Annotations/ChartAnnotationLayer.js +20 -18
  4. package/lib/components/CommonComponents/Annotations/ChartAnnotationLayer.js.map +1 -1
  5. package/lib/components/CommonComponents/Annotations/useChartAnnotationLayer.styles.js +7 -1
  6. package/lib/components/CommonComponents/Annotations/useChartAnnotationLayer.styles.js.map +1 -1
  7. package/lib/components/CommonComponents/Annotations/useChartAnnotationLayer.styles.raw.js +7 -1
  8. package/lib/components/CommonComponents/Annotations/useChartAnnotationLayer.styles.raw.js.map +1 -1
  9. package/lib/components/CommonComponents/CartesianChart.js +8 -1
  10. package/lib/components/CommonComponents/CartesianChart.js.map +1 -1
  11. package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js +165 -19
  12. package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  13. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js +15 -0
  14. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js.map +1 -1
  15. package/lib/components/LineChart/LineChart.js +5 -1
  16. package/lib/components/LineChart/LineChart.js.map +1 -1
  17. package/lib/components/ScatterChart/ScatterChart.js +11 -1
  18. package/lib/components/ScatterChart/ScatterChart.js.map +1 -1
  19. package/lib/components/ScatterChart/ScatterChart.types.js.map +1 -1
  20. package/lib/components/VerticalBarChart/VerticalBarChart.js +12 -5
  21. package/lib/components/VerticalBarChart/VerticalBarChart.js.map +1 -1
  22. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.js +13 -4
  23. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.js.map +1 -1
  24. package/lib/types/DataPoint.js.map +1 -1
  25. package/lib/utilities/utilities.js +2 -2
  26. package/lib/utilities/utilities.js.map +1 -1
  27. package/lib-commonjs/components/CommonComponents/Annotations/ChartAnnotationLayer.js +20 -18
  28. package/lib-commonjs/components/CommonComponents/Annotations/ChartAnnotationLayer.js.map +1 -1
  29. package/lib-commonjs/components/CommonComponents/Annotations/useChartAnnotationLayer.styles.js +7 -1
  30. package/lib-commonjs/components/CommonComponents/Annotations/useChartAnnotationLayer.styles.js.map +1 -1
  31. package/lib-commonjs/components/CommonComponents/Annotations/useChartAnnotationLayer.styles.raw.js +7 -1
  32. package/lib-commonjs/components/CommonComponents/Annotations/useChartAnnotationLayer.styles.raw.js.map +1 -1
  33. package/lib-commonjs/components/CommonComponents/CartesianChart.js +8 -1
  34. package/lib-commonjs/components/CommonComponents/CartesianChart.js.map +1 -1
  35. package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js +165 -18
  36. package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  37. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js +15 -0
  38. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js.map +1 -1
  39. package/lib-commonjs/components/LineChart/LineChart.js +5 -1
  40. package/lib-commonjs/components/LineChart/LineChart.js.map +1 -1
  41. package/lib-commonjs/components/ScatterChart/ScatterChart.js +11 -1
  42. package/lib-commonjs/components/ScatterChart/ScatterChart.js.map +1 -1
  43. package/lib-commonjs/components/ScatterChart/ScatterChart.types.js.map +1 -1
  44. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.js +12 -5
  45. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.js.map +1 -1
  46. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.js +13 -4
  47. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.js.map +1 -1
  48. package/lib-commonjs/types/DataPoint.js.map +1 -1
  49. package/lib-commonjs/utilities/utilities.js +2 -2
  50. package/lib-commonjs/utilities/utilities.js.map +1 -1
  51. package/package.json +12 -12
@@ -403,7 +403,7 @@ const ChartAnnotationLayer = /*#__PURE__*/ _react.memo((props)=>{
403
403
  const measurementElements = [];
404
404
  const connectors = [];
405
405
  resolvedAnnotations.forEach(({ annotation, key })=>{
406
- var _annotation_style, _annotation_style1, _annotation_style2, _annotation_style3, _annotation_style4, _annotation_style5, _annotation_style6, _annotation_style7, _annotation_style8, _annotation_style9, _annotation_style10, _annotation_style11, _annotation_style12, _annotation_style13, _annotation_style14, _annotation_style15, _annotation_style16, _annotation_style17, _annotation_accessibility, _annotation_accessibility1, _annotation_accessibility2;
406
+ var _annotation_style, _annotation_style1, _annotation_style2, _annotation_style3, _annotation_style4, _annotation_style5, _annotation_style6, _annotation_style7, _annotation_style8, _annotation_style9, _annotation_style10, _annotation_style11, _annotation_style12, _annotation_style13, _annotation_style14, _annotation_style15, _annotation_style16, _annotation_style17, _annotation_style18, _annotation_accessibility, _annotation_accessibility1, _annotation_accessibility2;
407
407
  const resolved = resolveCoordinates(annotation, context);
408
408
  if (!resolved) {
409
409
  return;
@@ -425,28 +425,30 @@ const ChartAnnotationLayer = /*#__PURE__*/ _react.memo((props)=>{
425
425
  const containerStyle = {
426
426
  maxWidth: layout === null || layout === void 0 ? void 0 : layout.maxWidth,
427
427
  ...hasCustomBackground ? {
428
- backgroundColor: (0, _useChartAnnotationLayerstyles.applyOpacityToColor)(baseBackgroundColor, backgroundOpacity)
428
+ backgroundColor: (0, _useChartAnnotationLayerstyles.applyOpacityToColor)(baseBackgroundColor, backgroundOpacity, {
429
+ preserveOriginalOpacity: ((_annotation_style4 = annotation.style) === null || _annotation_style4 === void 0 ? void 0 : _annotation_style4.opacity) === undefined
430
+ })
429
431
  } : {
430
432
  backgroundColor: (0, _useChartAnnotationLayerstyles.applyOpacityToColor)(_reacttheme.tokens.colorNeutralBackground1, _useChartAnnotationLayerstyles.DEFAULT_ANNOTATION_BACKGROUND_OPACITY)
431
433
  },
432
- borderColor: (_annotation_style4 = annotation.style) === null || _annotation_style4 === void 0 ? void 0 : _annotation_style4.borderColor,
433
- borderWidth: (_annotation_style5 = annotation.style) === null || _annotation_style5 === void 0 ? void 0 : _annotation_style5.borderWidth,
434
- borderStyle: (_annotation_style_borderStyle = (_annotation_style6 = annotation.style) === null || _annotation_style6 === void 0 ? void 0 : _annotation_style6.borderStyle) !== null && _annotation_style_borderStyle !== void 0 ? _annotation_style_borderStyle : ((_annotation_style7 = annotation.style) === null || _annotation_style7 === void 0 ? void 0 : _annotation_style7.borderColor) ? 'solid' : undefined,
435
- borderRadius: (_annotation_style8 = annotation.style) === null || _annotation_style8 === void 0 ? void 0 : _annotation_style8.borderRadius,
436
- padding: (_annotation_style9 = annotation.style) === null || _annotation_style9 === void 0 ? void 0 : _annotation_style9.padding,
437
- boxShadow: (_annotation_style10 = annotation.style) === null || _annotation_style10 === void 0 ? void 0 : _annotation_style10.boxShadow
434
+ borderColor: (_annotation_style5 = annotation.style) === null || _annotation_style5 === void 0 ? void 0 : _annotation_style5.borderColor,
435
+ borderWidth: (_annotation_style6 = annotation.style) === null || _annotation_style6 === void 0 ? void 0 : _annotation_style6.borderWidth,
436
+ borderStyle: (_annotation_style_borderStyle = (_annotation_style7 = annotation.style) === null || _annotation_style7 === void 0 ? void 0 : _annotation_style7.borderStyle) !== null && _annotation_style_borderStyle !== void 0 ? _annotation_style_borderStyle : ((_annotation_style8 = annotation.style) === null || _annotation_style8 === void 0 ? void 0 : _annotation_style8.borderColor) ? 'solid' : undefined,
437
+ borderRadius: (_annotation_style9 = annotation.style) === null || _annotation_style9 === void 0 ? void 0 : _annotation_style9.borderRadius,
438
+ padding: (_annotation_style10 = annotation.style) === null || _annotation_style10 === void 0 ? void 0 : _annotation_style10.padding,
439
+ boxShadow: (_annotation_style11 = annotation.style) === null || _annotation_style11 === void 0 ? void 0 : _annotation_style11.boxShadow
438
440
  };
439
441
  const contentStyle = {
440
- color: (_annotation_style11 = annotation.style) === null || _annotation_style11 === void 0 ? void 0 : _annotation_style11.textColor,
441
- fontSize: (_annotation_style12 = annotation.style) === null || _annotation_style12 === void 0 ? void 0 : _annotation_style12.fontSize,
442
- fontWeight: (_annotation_style13 = annotation.style) === null || _annotation_style13 === void 0 ? void 0 : _annotation_style13.fontWeight,
442
+ color: (_annotation_style12 = annotation.style) === null || _annotation_style12 === void 0 ? void 0 : _annotation_style12.textColor,
443
+ fontSize: (_annotation_style13 = annotation.style) === null || _annotation_style13 === void 0 ? void 0 : _annotation_style13.fontSize,
444
+ fontWeight: (_annotation_style14 = annotation.style) === null || _annotation_style14 === void 0 ? void 0 : _annotation_style14.fontWeight,
443
445
  opacity: 1
444
446
  };
445
- if (typeof ((_annotation_style14 = annotation.style) === null || _annotation_style14 === void 0 ? void 0 : _annotation_style14.rotation) === 'number' && !Number.isNaN(annotation.style.rotation)) {
447
+ if (typeof ((_annotation_style15 = annotation.style) === null || _annotation_style15 === void 0 ? void 0 : _annotation_style15.rotation) === 'number' && !Number.isNaN(annotation.style.rotation)) {
446
448
  containerStyle.transform = `rotate(${annotation.style.rotation}deg)`;
447
449
  containerStyle.transformOrigin = '50% 50%';
448
450
  }
449
- const measurementSignature = createMeasurementSignature(annotationMarkupSignature, containerStyle, contentStyle, layout === null || layout === void 0 ? void 0 : layout.className, (_annotation_style15 = annotation.style) === null || _annotation_style15 === void 0 ? void 0 : _annotation_style15.className);
451
+ const measurementSignature = createMeasurementSignature(annotationMarkupSignature, containerStyle, contentStyle, layout === null || layout === void 0 ? void 0 : layout.className, (_annotation_style16 = annotation.style) === null || _annotation_style16 === void 0 ? void 0 : _annotation_style16.className);
450
452
  const measurementEntry = measurements[key];
451
453
  const isMeasurementValid = (measurementEntry === null || measurementEntry === void 0 ? void 0 : measurementEntry.signature) === measurementSignature;
452
454
  const measuredSize = isMeasurementValid ? measurementEntry : undefined;
@@ -513,7 +515,7 @@ const ChartAnnotationLayer = /*#__PURE__*/ _react.memo((props)=>{
513
515
  ...containerStyle
514
516
  };
515
517
  if (!isMeasurementValid) {
516
- var _annotation_style18, _annotation_style19;
518
+ var _annotation_style19, _annotation_style20;
517
519
  measurementElements.push(/*#__PURE__*/ _react.createElement("div", {
518
520
  key: `${key}-measurement`,
519
521
  ref: (node)=>{
@@ -524,13 +526,13 @@ const ChartAnnotationLayer = /*#__PURE__*/ _react.memo((props)=>{
524
526
  }
525
527
  }
526
528
  },
527
- className: (0, _react1.mergeClasses)(classes.annotation, classes.measurement, layout === null || layout === void 0 ? void 0 : layout.className, (_annotation_style18 = annotation.style) === null || _annotation_style18 === void 0 ? void 0 : _annotation_style18.className),
529
+ className: (0, _react1.mergeClasses)(classes.annotation, classes.measurement, layout === null || layout === void 0 ? void 0 : layout.className, (_annotation_style19 = annotation.style) === null || _annotation_style19 === void 0 ? void 0 : _annotation_style19.className),
528
530
  style: measurementStyle,
529
531
  "aria-hidden": true,
530
532
  "data-annotation-key": key,
531
533
  "data-chart-annotation-measurement": "true"
532
534
  }, /*#__PURE__*/ _react.createElement("div", {
533
- className: (0, _react1.mergeClasses)(classes.annotationContent, layout === null || layout === void 0 ? void 0 : layout.className, (_annotation_style19 = annotation.style) === null || _annotation_style19 === void 0 ? void 0 : _annotation_style19.className),
535
+ className: (0, _react1.mergeClasses)(classes.annotationContent, layout === null || layout === void 0 ? void 0 : layout.className, (_annotation_style20 = annotation.style) === null || _annotation_style20 === void 0 ? void 0 : _annotation_style20.className),
534
536
  style: contentStyle
535
537
  }, renderSimpleMarkup(annotationMarkupNodes, `${key}-measurement`))));
536
538
  }
@@ -544,11 +546,11 @@ const ChartAnnotationLayer = /*#__PURE__*/ _react.memo((props)=>{
544
546
  className: (0, _react1.mergeClasses)(classes.annotationForeignObject),
545
547
  "data-annotation-key": key
546
548
  }, /*#__PURE__*/ _react.createElement("div", {
547
- className: (0, _react1.mergeClasses)(classes.annotation, layout === null || layout === void 0 ? void 0 : layout.className, (_annotation_style16 = annotation.style) === null || _annotation_style16 === void 0 ? void 0 : _annotation_style16.className),
549
+ className: (0, _react1.mergeClasses)(classes.annotation, layout === null || layout === void 0 ? void 0 : layout.className, (_annotation_style17 = annotation.style) === null || _annotation_style17 === void 0 ? void 0 : _annotation_style17.className),
548
550
  style: containerStyle,
549
551
  "data-annotation-key": key
550
552
  }, /*#__PURE__*/ _react.createElement("div", {
551
- className: (0, _react1.mergeClasses)(classes.annotationContent, (_annotation_style17 = annotation.style) === null || _annotation_style17 === void 0 ? void 0 : _annotation_style17.className),
553
+ className: (0, _react1.mergeClasses)(classes.annotationContent, (_annotation_style18 = annotation.style) === null || _annotation_style18 === void 0 ? void 0 : _annotation_style18.className),
552
554
  style: contentStyle,
553
555
  role: (_annotation_accessibility_role = (_annotation_accessibility = annotation.accessibility) === null || _annotation_accessibility === void 0 ? void 0 : _annotation_accessibility.role) !== null && _annotation_accessibility_role !== void 0 ? _annotation_accessibility_role : 'note',
554
556
  "aria-label": (_annotation_accessibility_ariaLabel = (_annotation_accessibility1 = annotation.accessibility) === null || _annotation_accessibility1 === void 0 ? void 0 : _annotation_accessibility1.ariaLabel) !== null && _annotation_accessibility_ariaLabel !== void 0 ? _annotation_accessibility_ariaLabel : annotationPlainText ? annotationPlainText : undefined,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/CommonComponents/Annotations/ChartAnnotationLayer.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { mergeClasses } from '@griffel/react';\nimport type { ChartAnnotation } from '../../../types/ChartAnnotation';\nimport type {\n AnnotationPoint,\n ChartAnnotationContext,\n ChartAnnotationLayerProps,\n ConnectorRenderData,\n ResolvedAnnotationPosition,\n} from './ChartAnnotationLayer.types';\nimport {\n applyOpacityToColor,\n DEFAULT_ANNOTATION_BACKGROUND_OPACITY,\n DEFAULT_CONNECTOR_ARROW,\n DEFAULT_CONNECTOR_END_PADDING,\n DEFAULT_CONNECTOR_START_PADDING,\n DEFAULT_CONNECTOR_STROKE_WIDTH,\n getDefaultConnectorStrokeColor,\n useChartAnnotationLayerStyles,\n} from './useChartAnnotationLayer.styles';\nimport { useId } from '@fluentui/react-utilities';\nimport { tokens } from '@fluentui/react-theme';\n\nconst DEFAULT_HORIZONTAL_ALIGN = 'center';\nconst DEFAULT_VERTICAL_ALIGN = 'middle';\nconst DEFAULT_FOREIGN_OBJECT_WIDTH = 180;\nconst DEFAULT_FOREIGN_OBJECT_HEIGHT = 60;\nconst MIN_ARROW_SIZE = 6;\nconst MAX_ARROW_SIZE = 24;\nconst ARROW_SIZE_SCALE = 0.35;\nconst MAX_SIMPLE_MARKUP_DEPTH = 5;\nconst CHAR_CODE_LESS_THAN = '<'.codePointAt(0)!;\nconst CHAR_CODE_GREATER_THAN = '>'.codePointAt(0)!;\ntype SimpleMarkupNode =\n | { type: 'text'; content: string }\n | { type: 'br' }\n | { type: 'element'; tag: 'b' | 'i'; children: SimpleMarkupNode[] };\n\ntype ElementMarkupNode = Extract<SimpleMarkupNode, { type: 'element' }>;\n\ntype StackFrame = {\n node: ElementMarkupNode | null;\n};\n\nconst decodeSimpleMarkupInput = (input: string): string => {\n const namedEntities: Record<string, string> = {\n amp: '&',\n quot: '\"',\n apos: \"'\",\n nbsp: '\\u00a0',\n };\n\n const withBasicEntitiesDecoded = input.replace(/&(#x?[0-9a-f]+|#\\d+|[a-z][\\w-]*);/gi, (match, entity) => {\n const lower = entity.toLowerCase();\n if (lower === 'lt' || lower === 'gt') {\n return `&${lower};`;\n }\n if (lower.startsWith('#')) {\n const isHex = lower[1] === 'x';\n const digits = lower.slice(isHex ? 2 : 1);\n const codePoint = Number.parseInt(digits, isHex ? 16 : 10);\n if (Number.isNaN(codePoint)) {\n return match;\n }\n if (codePoint === CHAR_CODE_LESS_THAN) {\n return '&lt;';\n }\n if (codePoint === CHAR_CODE_GREATER_THAN) {\n return '&gt;';\n }\n return String.fromCodePoint(codePoint);\n }\n return namedEntities[lower] ?? match;\n });\n\n return withBasicEntitiesDecoded.replace(/&lt;([^;]+)&gt;/gi, (match, inner) => {\n const normalized = inner.trim().replace(/\\s+/g, ' ');\n const lower = normalized.toLowerCase();\n\n switch (lower) {\n case 'b':\n return '<b>';\n case '/b':\n return '</b>';\n case 'i':\n return '<i>';\n case '/i':\n return '</i>';\n case 'br':\n case 'br/':\n case 'br /':\n return '<br />';\n default:\n return match;\n }\n });\n};\n\nconst appendTextNode = (nodes: SimpleMarkupNode[], text: string) => {\n if (text.length === 0) {\n return;\n }\n\n const last = nodes[nodes.length - 1];\n if (last && last.type === 'text') {\n last.content += text;\n } else {\n nodes.push({ type: 'text', content: text });\n }\n};\n\nconst serializeSimpleMarkup = (nodes: SimpleMarkupNode[]): string =>\n nodes\n .map(node => {\n if (node.type === 'text') {\n return node.content;\n }\n if (node.type === 'br') {\n return '<br />';\n }\n return `<${node.tag}>${serializeSimpleMarkup(node.children)}</${node.tag}>`;\n })\n .join('');\n\nconst parseSimpleMarkup = (input: string): SimpleMarkupNode[] => {\n if (!input) {\n return [];\n }\n\n const decodedInput = decodeSimpleMarkupInput(input);\n const rootChildren: SimpleMarkupNode[] = [];\n const stack: StackFrame[] = [{ node: null }];\n const currentChildren = () => stack[stack.length - 1].node?.children ?? rootChildren;\n const tagRegex = /<\\/?([a-z]+)\\s*\\/?\\s*>/gi;\n let lastIndex = 0;\n\n let match: RegExpExecArray | null;\n while ((match = tagRegex.exec(decodedInput)) !== null) {\n const [fullMatch, rawTagName] = match;\n const tagName = rawTagName.toLowerCase();\n const isClosing = fullMatch.startsWith('</');\n const isSelfClosing = /\\/\\s*>$/.test(fullMatch);\n\n appendTextNode(currentChildren(), decodedInput.slice(lastIndex, match.index));\n lastIndex = match.index + fullMatch.length;\n\n if (tagName === 'br' && !isClosing) {\n currentChildren().push({ type: 'br' });\n continue;\n }\n\n if ((tagName === 'b' || tagName === 'i') && !isSelfClosing) {\n if (isClosing) {\n const top = stack[stack.length - 1].node;\n if (stack.length > 1 && top?.tag === tagName) {\n stack.pop();\n } else {\n appendTextNode(currentChildren(), fullMatch);\n }\n } else {\n if (stack.length - 1 >= MAX_SIMPLE_MARKUP_DEPTH) {\n appendTextNode(currentChildren(), fullMatch);\n continue;\n }\n const elementNode: ElementMarkupNode = {\n type: 'element',\n tag: tagName as 'b' | 'i',\n children: [],\n };\n currentChildren().push(elementNode);\n stack.push({ node: elementNode });\n }\n continue;\n }\n\n appendTextNode(currentChildren(), fullMatch);\n }\n\n appendTextNode(currentChildren(), decodedInput.slice(lastIndex));\n\n while (stack.length > 1) {\n const unclosed = stack.pop()!;\n const elementNode = unclosed.node;\n if (!elementNode) {\n continue;\n }\n\n const parentChildren = stack[stack.length - 1].node?.children ?? rootChildren;\n const lastChild = parentChildren[parentChildren.length - 1];\n if (lastChild === elementNode) {\n parentChildren.pop();\n } else {\n const nodeIndex = parentChildren.indexOf(elementNode);\n if (nodeIndex !== -1) {\n parentChildren.splice(nodeIndex, 1);\n }\n }\n\n appendTextNode(\n parentChildren,\n `<${elementNode.tag}>${serializeSimpleMarkup(elementNode.children)}</${elementNode.tag}>`,\n );\n }\n\n return rootChildren;\n};\n\nconst simpleMarkupNodesToPlainText = (nodes: SimpleMarkupNode[]): string =>\n nodes\n .map(node => {\n if (node.type === 'text') {\n return node.content;\n }\n if (node.type === 'br') {\n return '\\n';\n }\n return simpleMarkupNodesToPlainText(node.children);\n })\n .join('');\n\nconst renderSimpleMarkupNodeList = (nodes: SimpleMarkupNode[], keyPrefix: string): React.ReactNode[] =>\n nodes.map((node, index) => {\n const key = `${keyPrefix}-${index}`;\n\n if (node.type === 'text') {\n return <React.Fragment key={key}>{node.content}</React.Fragment>;\n }\n\n if (node.type === 'br') {\n return <br key={key} />;\n }\n\n const Tag = node.tag === 'b' ? 'strong' : 'em';\n return React.createElement(Tag, { key }, ...renderSimpleMarkupNodeList(node.children, key));\n });\nconst renderSimpleMarkup = (nodes: SimpleMarkupNode[], keyPrefix: string): React.ReactNode => {\n const rendered = renderSimpleMarkupNodeList(nodes, keyPrefix);\n return rendered.length <= 1 ? rendered[0] ?? null : rendered;\n};\n\nconst normalizeBandOffset = (\n scale: (((value: unknown) => number) & { bandwidth?: () => number }) | undefined,\n value: unknown,\n) => {\n const position = scale?.(value as never);\n if (typeof position !== 'number' || Number.isNaN(position)) {\n return undefined;\n }\n if (scale && typeof scale.bandwidth === 'function') {\n return position + scale.bandwidth() / 2;\n }\n return position;\n};\n\nconst clamp = (value: number, min: number, max: number) => Math.max(min, Math.min(max, value));\n\ntype AxisCoordinateType = 'data' | 'relative' | 'pixel';\n\nconst resolveDataCoordinate = (\n axis: 'x' | 'y',\n value: number | string | Date,\n context: ChartAnnotationContext,\n yAxis: 'primary' | 'secondary' = 'primary',\n): number | undefined => {\n if (axis === 'x') {\n const xScale = context.xScale;\n if (!xScale) {\n return undefined;\n }\n const parsedValue = value instanceof Date ? value.getTime() : value;\n return normalizeBandOffset(xScale, parsedValue);\n }\n\n const yScale = yAxis === 'secondary' ? context.yScaleSecondary : context.yScalePrimary;\n if (!yScale) {\n return undefined;\n }\n const parsedValue = value instanceof Date ? value.getTime() : value;\n return normalizeBandOffset(yScale, parsedValue);\n};\n\nconst resolveAxisCoordinate = (\n axis: 'x' | 'y',\n coordinateType: AxisCoordinateType,\n value: number | string | Date,\n context: ChartAnnotationContext,\n options: { yAxis?: 'primary' | 'secondary' } = {},\n): number | undefined => {\n switch (coordinateType) {\n case 'data':\n return resolveDataCoordinate(axis, value, context, options.yAxis);\n case 'relative':\n if (typeof value !== 'number' || Number.isNaN(value)) {\n return undefined;\n }\n return axis === 'x'\n ? context.plotRect.x + context.plotRect.width * value\n : context.plotRect.y + context.plotRect.height * value;\n case 'pixel':\n if (typeof value !== 'number' || Number.isNaN(value)) {\n return undefined;\n }\n return axis === 'x' ? context.plotRect.x + value : context.plotRect.y + value;\n default:\n return undefined;\n }\n};\n\nconst createMeasurementSignature = (\n annotationContentSignature: string,\n containerStyle: React.CSSProperties,\n contentStyle: React.CSSProperties,\n layoutClassName?: string,\n styleClassName?: string,\n) =>\n JSON.stringify({\n annotationContentSignature,\n containerStyle,\n contentStyle,\n layoutClassName: layoutClassName ?? '',\n styleClassName: styleClassName ?? '',\n });\n\ntype MeasurementEntry = { width: number; height: number; signature: string };\n\ntype CoordinateDescriptor = {\n xType: AxisCoordinateType;\n yType: AxisCoordinateType;\n yAxis?: 'primary' | 'secondary';\n};\n\nconst getCoordinateDescriptor = (coordinates: ChartAnnotation['coordinates']): CoordinateDescriptor | undefined => {\n switch (coordinates.type) {\n case 'data':\n return { xType: 'data', yType: 'data', yAxis: coordinates.yAxis };\n case 'relative':\n return { xType: 'relative', yType: 'relative' };\n case 'pixel':\n return { xType: 'pixel', yType: 'pixel' };\n case 'mixed':\n return {\n xType: coordinates.xCoordinateType,\n yType: coordinates.yCoordinateType,\n yAxis: coordinates.yAxis,\n };\n default:\n return undefined;\n }\n};\n\nconst resolveCoordinates = (\n annotation: ChartAnnotation,\n context: ChartAnnotationContext,\n): ResolvedAnnotationPosition | undefined => {\n const { coordinates, layout } = annotation;\n\n if (!coordinates) {\n return undefined;\n }\n\n const descriptor = getCoordinateDescriptor(coordinates);\n if (!descriptor) {\n return undefined;\n }\n\n const offsetX = layout?.offsetX ?? 0;\n const offsetY = layout?.offsetY ?? 0;\n\n const anchorX = resolveAxisCoordinate('x', descriptor.xType, coordinates.x, context);\n const anchorY = resolveAxisCoordinate('y', descriptor.yType, coordinates.y, context, {\n yAxis: descriptor.yAxis,\n });\n\n if (anchorX === undefined || anchorY === undefined) {\n return undefined;\n }\n\n const anchor: AnnotationPoint = { x: anchorX, y: anchorY };\n\n let left = anchor.x + offsetX;\n let top = anchor.y + offsetY;\n\n if (layout?.clipToBounds) {\n left = clamp(left, context.plotRect.x, context.plotRect.x + context.plotRect.width);\n top = clamp(top, context.plotRect.y, context.plotRect.y + context.plotRect.height);\n }\n\n return {\n anchor,\n point: { x: left, y: top },\n };\n};\n\nexport const ChartAnnotationLayer: React.FC<ChartAnnotationLayerProps> = React.memo(props => {\n const { annotations: annotationsProp, context } = props;\n\n const classes = useChartAnnotationLayerStyles(props);\n const idPrefix = useId('chart-annotation');\n const autoKeyPrefix = useId('chart-annotation-item');\n\n const [measurements, setMeasurements] = React.useState<Record<string, MeasurementEntry>>({});\n\n const resolvedAnnotations = React.useMemo(() => {\n let fallbackIndex = 0;\n return (annotationsProp ?? []).map(annotation => ({\n annotation,\n key: annotation.id ?? `${autoKeyPrefix}-${fallbackIndex++}`,\n }));\n }, [annotationsProp, autoKeyPrefix]);\n\n React.useEffect(() => {\n setMeasurements(prev => {\n if (resolvedAnnotations.length === 0) {\n if (Object.keys(prev).length === 0) {\n return prev;\n }\n return {} as Record<string, MeasurementEntry>;\n }\n\n const next: Record<string, MeasurementEntry> = {};\n resolvedAnnotations.forEach(({ key }) => {\n if (prev[key]) {\n next[key] = prev[key];\n }\n });\n\n if (Object.keys(next).length === Object.keys(prev).length) {\n let identical = true;\n for (const key of Object.keys(next)) {\n if (next[key] !== prev[key]) {\n identical = false;\n break;\n }\n }\n if (identical) {\n return prev;\n }\n }\n\n return next;\n });\n }, [resolvedAnnotations]);\n\n const updateMeasurement = React.useCallback((key: string, width: number, height: number, signature: string) => {\n setMeasurements(prev => {\n const prevEntry = prev[key];\n if (\n prevEntry &&\n prevEntry.signature === signature &&\n Math.abs(prevEntry.width - width) < 0.5 &&\n Math.abs(prevEntry.height - height) < 0.5\n ) {\n return prev;\n }\n\n if (width === 0 && height === 0) {\n return prev;\n }\n\n return {\n ...prev,\n [key]: { width, height, signature },\n };\n });\n }, []);\n\n const annotationForeignObjects: React.ReactNode[] = [];\n const measurementElements: React.ReactNode[] = [];\n const connectors: ConnectorRenderData[] = [];\n\n resolvedAnnotations.forEach(({ annotation, key }) => {\n const resolved = resolveCoordinates(annotation, context);\n if (!resolved) {\n return;\n }\n\n const rawAnnotationText = annotation.text === undefined || annotation.text === null ? '' : String(annotation.text);\n const annotationMarkupNodes = parseSimpleMarkup(rawAnnotationText);\n const annotationMarkupSignature = JSON.stringify(annotationMarkupNodes);\n const annotationPlainText = simpleMarkupNodesToPlainText(annotationMarkupNodes);\n\n const layout = annotation.layout;\n const horizontalAlign = layout?.align ?? DEFAULT_HORIZONTAL_ALIGN;\n const verticalAlign = layout?.verticalAlign ?? DEFAULT_VERTICAL_ALIGN;\n const backgroundOpacity = annotation.style?.opacity ?? DEFAULT_ANNOTATION_BACKGROUND_OPACITY;\n const baseBackgroundColor = annotation.style?.backgroundColor;\n const hasCustomBackground =\n annotation.style?.backgroundColor !== undefined || annotation.style?.opacity !== undefined;\n\n const containerStyle: React.CSSProperties = {\n maxWidth: layout?.maxWidth,\n ...(hasCustomBackground\n ? {\n backgroundColor: applyOpacityToColor(baseBackgroundColor, backgroundOpacity),\n }\n : {\n backgroundColor: applyOpacityToColor(tokens.colorNeutralBackground1, DEFAULT_ANNOTATION_BACKGROUND_OPACITY),\n }),\n borderColor: annotation.style?.borderColor,\n borderWidth: annotation.style?.borderWidth,\n borderStyle: annotation.style?.borderStyle ?? (annotation.style?.borderColor ? 'solid' : undefined),\n borderRadius: annotation.style?.borderRadius,\n padding: annotation.style?.padding,\n boxShadow: annotation.style?.boxShadow,\n };\n\n const contentStyle: React.CSSProperties = {\n color: annotation.style?.textColor,\n fontSize: annotation.style?.fontSize,\n fontWeight: annotation.style?.fontWeight,\n opacity: 1,\n };\n\n if (typeof annotation.style?.rotation === 'number' && !Number.isNaN(annotation.style.rotation)) {\n containerStyle.transform = `rotate(${annotation.style.rotation}deg)`;\n containerStyle.transformOrigin = '50% 50%';\n }\n\n const measurementSignature = createMeasurementSignature(\n annotationMarkupSignature,\n containerStyle,\n contentStyle,\n layout?.className,\n annotation.style?.className,\n );\n const measurementEntry = measurements[key];\n const isMeasurementValid = measurementEntry?.signature === measurementSignature;\n const measuredSize = isMeasurementValid ? measurementEntry : undefined;\n const width = Math.max(measuredSize?.width ?? layout?.maxWidth ?? DEFAULT_FOREIGN_OBJECT_WIDTH, 1);\n const height = Math.max(measuredSize?.height ?? DEFAULT_FOREIGN_OBJECT_HEIGHT, 1);\n\n const offsetX = horizontalAlign === 'center' ? -width / 2 : horizontalAlign === 'end' ? -width : 0;\n const offsetY = verticalAlign === 'middle' ? -height / 2 : verticalAlign === 'bottom' ? -height : 0;\n\n const baseTopLeftX = resolved.point.x + offsetX;\n const baseTopLeftY = resolved.point.y + offsetY;\n\n const usePlotBounds = layout?.clipToBounds !== false;\n const viewportX = usePlotBounds ? context.plotRect.x : 0;\n const viewportY = usePlotBounds ? context.plotRect.y : 0;\n const viewportWidth = usePlotBounds ? context.plotRect.width : context.svgRect.width ?? 0;\n const viewportHeight = usePlotBounds ? context.plotRect.height : context.svgRect.height ?? 0;\n\n const maxTopLeftX = viewportWidth > 0 ? viewportX + viewportWidth - width : baseTopLeftX;\n const maxTopLeftY = viewportHeight > 0 ? viewportY + viewportHeight - height : baseTopLeftY;\n\n let topLeftX = viewportWidth > 0 ? clamp(baseTopLeftX, viewportX, Math.max(viewportX, maxTopLeftX)) : baseTopLeftX;\n let topLeftY = viewportHeight > 0 ? clamp(baseTopLeftY, viewportY, Math.max(viewportY, maxTopLeftY)) : baseTopLeftY;\n\n let displayPoint = {\n x: topLeftX - offsetX,\n y: topLeftY - offsetY,\n };\n\n if (annotation.connector) {\n const startPadding = annotation.connector.startPadding ?? 12;\n const endPadding = annotation.connector.endPadding ?? 0;\n const minArrowClearance = 6;\n const minDistance = Math.max(startPadding + endPadding + minArrowClearance, startPadding);\n\n const dx = displayPoint.x - resolved.anchor.x;\n const dy = displayPoint.y - resolved.anchor.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n\n if (distance < minDistance) {\n const fallbackDirection: AnnotationPoint = { x: 0, y: -1 };\n const ux = distance === 0 ? fallbackDirection.x : dx / distance;\n const uy = distance === 0 ? fallbackDirection.y : dy / distance;\n\n const desiredDisplayX = resolved.anchor.x + ux * minDistance;\n const desiredDisplayY = resolved.anchor.y + uy * minDistance;\n\n let desiredTopLeftX = desiredDisplayX + offsetX;\n let desiredTopLeftY = desiredDisplayY + offsetY;\n\n desiredTopLeftX =\n viewportWidth > 0 ? clamp(desiredTopLeftX, viewportX, Math.max(viewportX, maxTopLeftX)) : desiredTopLeftX;\n desiredTopLeftY =\n viewportHeight > 0 ? clamp(desiredTopLeftY, viewportY, Math.max(viewportY, maxTopLeftY)) : desiredTopLeftY;\n\n topLeftX = desiredTopLeftX;\n topLeftY = desiredTopLeftY;\n displayPoint = {\n x: topLeftX - offsetX,\n y: topLeftY - offsetY,\n };\n }\n }\n\n const measurementStyle: React.CSSProperties = {\n position: 'absolute',\n left: topLeftX,\n top: topLeftY,\n pointerEvents: 'none',\n visibility: 'hidden',\n ...containerStyle,\n };\n\n if (!isMeasurementValid) {\n measurementElements.push(\n <div\n key={`${key}-measurement`}\n ref={node => {\n if (node) {\n const rect = node.getBoundingClientRect();\n if (rect.width !== 0 || rect.height !== 0) {\n updateMeasurement(key, rect.width, rect.height, measurementSignature);\n }\n }\n }}\n className={mergeClasses(\n classes.annotation,\n classes.measurement,\n layout?.className,\n annotation.style?.className,\n )}\n style={measurementStyle}\n aria-hidden={true}\n data-annotation-key={key}\n data-chart-annotation-measurement=\"true\"\n >\n <div\n className={mergeClasses(classes.annotationContent, layout?.className, annotation.style?.className)}\n style={contentStyle}\n >\n {renderSimpleMarkup(annotationMarkupNodes, `${key}-measurement`)}\n </div>\n </div>,\n );\n }\n\n annotationForeignObjects.push(\n <foreignObject\n key={`${key}-annotation`}\n x={topLeftX}\n y={topLeftY}\n width={width}\n height={height}\n className={mergeClasses(classes.annotationForeignObject)}\n data-annotation-key={key}\n >\n <div\n className={mergeClasses(classes.annotation, layout?.className, annotation.style?.className)}\n style={containerStyle}\n data-annotation-key={key}\n >\n <div\n className={mergeClasses(classes.annotationContent, annotation.style?.className)}\n style={contentStyle}\n role={annotation.accessibility?.role ?? 'note'}\n aria-label={annotation.accessibility?.ariaLabel ?? (annotationPlainText ? annotationPlainText : undefined)}\n aria-describedby={annotation.accessibility?.ariaDescribedBy}\n data-chart-annotation=\"true\"\n data-annotation-key={key}\n >\n {renderSimpleMarkup(annotationMarkupNodes, `${key}-content`)}\n </div>\n </div>\n </foreignObject>,\n );\n\n if (annotation.connector) {\n const {\n startPadding = DEFAULT_CONNECTOR_START_PADDING,\n endPadding = DEFAULT_CONNECTOR_END_PADDING,\n strokeColor = getDefaultConnectorStrokeColor(),\n strokeWidth = DEFAULT_CONNECTOR_STROKE_WIDTH,\n dashArray,\n arrow = DEFAULT_CONNECTOR_ARROW,\n } = annotation.connector;\n\n const dx = resolved.anchor.x - displayPoint.x;\n const dy = resolved.anchor.y - displayPoint.y;\n const distance = Math.sqrt(dx * dx + dy * dy) || 1;\n const ux = dx / distance;\n const uy = dy / distance;\n\n const sizeBasis = Math.max(1, Math.min(width, height));\n const proportionalSize = sizeBasis * ARROW_SIZE_SCALE;\n const maxByPadding = startPadding > 0 ? startPadding * 1.25 : MAX_ARROW_SIZE;\n const maxByDistance = distance * 0.6;\n const markerSize = clamp(proportionalSize, MIN_ARROW_SIZE, Math.min(MAX_ARROW_SIZE, maxByPadding, maxByDistance));\n const markerStrokeWidth = clamp(strokeWidth, 1, markerSize / 2);\n\n const start: AnnotationPoint = {\n x: displayPoint.x + ux * startPadding,\n y: displayPoint.y + uy * startPadding,\n };\n\n const end: AnnotationPoint = {\n x: resolved.anchor.x - ux * endPadding,\n y: resolved.anchor.y - uy * endPadding,\n };\n\n connectors.push({\n key: `${key}-connector`,\n start,\n end,\n strokeColor,\n strokeWidth,\n dashArray,\n arrow,\n markerSize,\n markerStrokeWidth,\n });\n }\n });\n\n if (annotationForeignObjects.length === 0 && connectors.length === 0) {\n return null;\n }\n\n const viewBoxWidth = context.svgRect.width || 1;\n const viewBoxHeight = context.svgRect.height || 1;\n\n const markerDefs: React.ReactNode[] = [];\n\n const createMarkerId = (color: string, position: 'start' | 'end', size: number, markerStrokeWidth: number) => {\n const id = `${idPrefix}-${position}-${markerDefs.length}`;\n const refY = size / 2;\n const refX = position === 'end' ? size : 0;\n const pathEnd = `M0 0 L ${size} ${refY} L0 ${size} Z`;\n const pathStart = `M ${size} 0 L0 ${refY} L ${size} ${size} Z`;\n const path = position === 'end' ? pathEnd : pathStart;\n\n markerDefs.push(\n <marker\n key={id}\n id={id}\n markerWidth={size}\n markerHeight={size}\n viewBox={`0 0 ${size} ${size}`}\n refX={refX}\n refY={refY}\n orient=\"auto\"\n markerUnits=\"userSpaceOnUse\"\n >\n <path\n d={path}\n fill={color}\n stroke={color}\n strokeWidth={markerStrokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </marker>,\n );\n\n return id;\n };\n\n const connectorElements = connectors.map(connector => {\n let markerStart: string | undefined;\n let markerEnd: string | undefined;\n\n if (connector.arrow === 'start' || connector.arrow === 'both') {\n markerStart = createMarkerId(connector.strokeColor, 'start', connector.markerSize, connector.markerStrokeWidth);\n }\n if (connector.arrow === 'end' || connector.arrow === 'both') {\n markerEnd = createMarkerId(connector.strokeColor, 'end', connector.markerSize, connector.markerStrokeWidth);\n }\n\n return (\n <line\n key={connector.key}\n x1={connector.start.x}\n y1={connector.start.y}\n x2={connector.end.x}\n y2={connector.end.y}\n stroke={connector.strokeColor}\n strokeWidth={connector.strokeWidth}\n strokeDasharray={connector.dashArray}\n strokeLinecap=\"round\"\n markerStart={markerStart ? `url(#${markerStart})` : undefined}\n markerEnd={markerEnd ? `url(#${markerEnd})` : undefined}\n />\n );\n });\n\n const shouldRenderSvg = connectors.length > 0 || annotationForeignObjects.length > 0;\n return (\n <div className={classes.root} role=\"presentation\" data-chart-annotation-layer=\"true\">\n {shouldRenderSvg && (\n <svg\n className={classes.connectorLayer}\n width=\"100%\"\n height=\"100%\"\n viewBox={`0 0 ${viewBoxWidth} ${viewBoxHeight}`}\n preserveAspectRatio=\"none\"\n data-chart-annotation-svg=\"true\"\n >\n {markerDefs.length > 0 && <defs>{markerDefs}</defs>}\n {connectorElements.length > 0 && (\n <g aria-hidden=\"true\" className={classes.connectorGroup}>\n {connectorElements}\n </g>\n )}\n {annotationForeignObjects}\n </svg>\n )}\n {measurementElements}\n </div>\n );\n});\n\nChartAnnotationLayer.displayName = 'ChartAnnotationLayer';\n"],"names":["React","mergeClasses","applyOpacityToColor","DEFAULT_ANNOTATION_BACKGROUND_OPACITY","DEFAULT_CONNECTOR_ARROW","DEFAULT_CONNECTOR_END_PADDING","DEFAULT_CONNECTOR_START_PADDING","DEFAULT_CONNECTOR_STROKE_WIDTH","getDefaultConnectorStrokeColor","useChartAnnotationLayerStyles","useId","tokens","DEFAULT_HORIZONTAL_ALIGN","DEFAULT_VERTICAL_ALIGN","DEFAULT_FOREIGN_OBJECT_WIDTH","DEFAULT_FOREIGN_OBJECT_HEIGHT","MIN_ARROW_SIZE","MAX_ARROW_SIZE","ARROW_SIZE_SCALE","MAX_SIMPLE_MARKUP_DEPTH","CHAR_CODE_LESS_THAN","codePointAt","CHAR_CODE_GREATER_THAN","decodeSimpleMarkupInput","input","namedEntities","amp","quot","apos","nbsp","withBasicEntitiesDecoded","replace","match","entity","lower","toLowerCase","startsWith","isHex","digits","slice","codePoint","Number","parseInt","isNaN","String","fromCodePoint","inner","normalized","trim","appendTextNode","nodes","text","length","last","type","content","push","serializeSimpleMarkup","map","node","tag","children","join","parseSimpleMarkup","decodedInput","rootChildren","stack","currentChildren","tagRegex","lastIndex","exec","fullMatch","rawTagName","tagName","isClosing","isSelfClosing","test","index","top","pop","elementNode","unclosed","parentChildren","lastChild","nodeIndex","indexOf","splice","simpleMarkupNodesToPlainText","renderSimpleMarkupNodeList","keyPrefix","key","Fragment","br","Tag","createElement","renderSimpleMarkup","rendered","normalizeBandOffset","scale","value","position","undefined","bandwidth","clamp","min","max","Math","resolveDataCoordinate","axis","context","yAxis","xScale","parsedValue","Date","getTime","yScale","yScaleSecondary","yScalePrimary","resolveAxisCoordinate","coordinateType","options","plotRect","x","width","y","height","createMeasurementSignature","annotationContentSignature","containerStyle","contentStyle","layoutClassName","styleClassName","JSON","stringify","getCoordinateDescriptor","coordinates","xType","yType","xCoordinateType","yCoordinateType","resolveCoordinates","annotation","layout","descriptor","offsetX","offsetY","anchorX","anchorY","anchor","left","clipToBounds","point","ChartAnnotationLayer","memo","props","annotations","annotationsProp","classes","idPrefix","autoKeyPrefix","measurements","setMeasurements","useState","resolvedAnnotations","useMemo","fallbackIndex","id","useEffect","prev","Object","keys","next","forEach","identical","updateMeasurement","useCallback","signature","prevEntry","abs","annotationForeignObjects","measurementElements","connectors","resolved","rawAnnotationText","annotationMarkupNodes","annotationMarkupSignature","annotationPlainText","horizontalAlign","align","verticalAlign","backgroundOpacity","style","opacity","baseBackgroundColor","backgroundColor","hasCustomBackground","maxWidth","colorNeutralBackground1","borderColor","borderWidth","borderStyle","borderRadius","padding","boxShadow","color","textColor","fontSize","fontWeight","rotation","transform","transformOrigin","measurementSignature","className","measurementEntry","isMeasurementValid","measuredSize","baseTopLeftX","baseTopLeftY","usePlotBounds","viewportX","viewportY","viewportWidth","svgRect","viewportHeight","maxTopLeftX","maxTopLeftY","topLeftX","topLeftY","displayPoint","connector","startPadding","endPadding","minArrowClearance","minDistance","dx","dy","distance","sqrt","fallbackDirection","ux","uy","desiredDisplayX","desiredDisplayY","desiredTopLeftX","desiredTopLeftY","measurementStyle","pointerEvents","visibility","div","ref","rect","getBoundingClientRect","measurement","aria-hidden","data-annotation-key","data-chart-annotation-measurement","annotationContent","foreignObject","annotationForeignObject","role","accessibility","aria-label","ariaLabel","aria-describedby","ariaDescribedBy","data-chart-annotation","strokeColor","strokeWidth","dashArray","arrow","sizeBasis","proportionalSize","maxByPadding","maxByDistance","markerSize","markerStrokeWidth","start","end","viewBoxWidth","viewBoxHeight","markerDefs","createMarkerId","size","refY","refX","pathEnd","pathStart","path","marker","markerWidth","markerHeight","viewBox","orient","markerUnits","d","fill","stroke","strokeLinecap","strokeLinejoin","connectorElements","markerStart","markerEnd","line","x1","y1","x2","y2","strokeDasharray","shouldRenderSvg","root","data-chart-annotation-layer","svg","connectorLayer","preserveAspectRatio","data-chart-annotation-svg","defs","g","connectorGroup","displayName"],"mappings":"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"}
1
+ {"version":3,"sources":["../src/components/CommonComponents/Annotations/ChartAnnotationLayer.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { mergeClasses } from '@griffel/react';\nimport type { ChartAnnotation } from '../../../types/ChartAnnotation';\nimport type {\n AnnotationPoint,\n ChartAnnotationContext,\n ChartAnnotationLayerProps,\n ConnectorRenderData,\n ResolvedAnnotationPosition,\n} from './ChartAnnotationLayer.types';\nimport {\n applyOpacityToColor,\n DEFAULT_ANNOTATION_BACKGROUND_OPACITY,\n DEFAULT_CONNECTOR_ARROW,\n DEFAULT_CONNECTOR_END_PADDING,\n DEFAULT_CONNECTOR_START_PADDING,\n DEFAULT_CONNECTOR_STROKE_WIDTH,\n getDefaultConnectorStrokeColor,\n useChartAnnotationLayerStyles,\n} from './useChartAnnotationLayer.styles';\nimport { useId } from '@fluentui/react-utilities';\nimport { tokens } from '@fluentui/react-theme';\n\nconst DEFAULT_HORIZONTAL_ALIGN = 'center';\nconst DEFAULT_VERTICAL_ALIGN = 'middle';\nconst DEFAULT_FOREIGN_OBJECT_WIDTH = 180;\nconst DEFAULT_FOREIGN_OBJECT_HEIGHT = 60;\nconst MIN_ARROW_SIZE = 6;\nconst MAX_ARROW_SIZE = 24;\nconst ARROW_SIZE_SCALE = 0.35;\nconst MAX_SIMPLE_MARKUP_DEPTH = 5;\nconst CHAR_CODE_LESS_THAN = '<'.codePointAt(0)!;\nconst CHAR_CODE_GREATER_THAN = '>'.codePointAt(0)!;\ntype SimpleMarkupNode =\n | { type: 'text'; content: string }\n | { type: 'br' }\n | { type: 'element'; tag: 'b' | 'i'; children: SimpleMarkupNode[] };\n\ntype ElementMarkupNode = Extract<SimpleMarkupNode, { type: 'element' }>;\n\ntype StackFrame = {\n node: ElementMarkupNode | null;\n};\n\nconst decodeSimpleMarkupInput = (input: string): string => {\n const namedEntities: Record<string, string> = {\n amp: '&',\n quot: '\"',\n apos: \"'\",\n nbsp: '\\u00a0',\n };\n\n const withBasicEntitiesDecoded = input.replace(/&(#x?[0-9a-f]+|#\\d+|[a-z][\\w-]*);/gi, (match, entity) => {\n const lower = entity.toLowerCase();\n if (lower === 'lt' || lower === 'gt') {\n return `&${lower};`;\n }\n if (lower.startsWith('#')) {\n const isHex = lower[1] === 'x';\n const digits = lower.slice(isHex ? 2 : 1);\n const codePoint = Number.parseInt(digits, isHex ? 16 : 10);\n if (Number.isNaN(codePoint)) {\n return match;\n }\n if (codePoint === CHAR_CODE_LESS_THAN) {\n return '&lt;';\n }\n if (codePoint === CHAR_CODE_GREATER_THAN) {\n return '&gt;';\n }\n return String.fromCodePoint(codePoint);\n }\n return namedEntities[lower] ?? match;\n });\n\n return withBasicEntitiesDecoded.replace(/&lt;([^;]+)&gt;/gi, (match, inner) => {\n const normalized = inner.trim().replace(/\\s+/g, ' ');\n const lower = normalized.toLowerCase();\n\n switch (lower) {\n case 'b':\n return '<b>';\n case '/b':\n return '</b>';\n case 'i':\n return '<i>';\n case '/i':\n return '</i>';\n case 'br':\n case 'br/':\n case 'br /':\n return '<br />';\n default:\n return match;\n }\n });\n};\n\nconst appendTextNode = (nodes: SimpleMarkupNode[], text: string) => {\n if (text.length === 0) {\n return;\n }\n\n const last = nodes[nodes.length - 1];\n if (last && last.type === 'text') {\n last.content += text;\n } else {\n nodes.push({ type: 'text', content: text });\n }\n};\n\nconst serializeSimpleMarkup = (nodes: SimpleMarkupNode[]): string =>\n nodes\n .map(node => {\n if (node.type === 'text') {\n return node.content;\n }\n if (node.type === 'br') {\n return '<br />';\n }\n return `<${node.tag}>${serializeSimpleMarkup(node.children)}</${node.tag}>`;\n })\n .join('');\n\nconst parseSimpleMarkup = (input: string): SimpleMarkupNode[] => {\n if (!input) {\n return [];\n }\n\n const decodedInput = decodeSimpleMarkupInput(input);\n const rootChildren: SimpleMarkupNode[] = [];\n const stack: StackFrame[] = [{ node: null }];\n const currentChildren = () => stack[stack.length - 1].node?.children ?? rootChildren;\n const tagRegex = /<\\/?([a-z]+)\\s*\\/?\\s*>/gi;\n let lastIndex = 0;\n\n let match: RegExpExecArray | null;\n while ((match = tagRegex.exec(decodedInput)) !== null) {\n const [fullMatch, rawTagName] = match;\n const tagName = rawTagName.toLowerCase();\n const isClosing = fullMatch.startsWith('</');\n const isSelfClosing = /\\/\\s*>$/.test(fullMatch);\n\n appendTextNode(currentChildren(), decodedInput.slice(lastIndex, match.index));\n lastIndex = match.index + fullMatch.length;\n\n if (tagName === 'br' && !isClosing) {\n currentChildren().push({ type: 'br' });\n continue;\n }\n\n if ((tagName === 'b' || tagName === 'i') && !isSelfClosing) {\n if (isClosing) {\n const top = stack[stack.length - 1].node;\n if (stack.length > 1 && top?.tag === tagName) {\n stack.pop();\n } else {\n appendTextNode(currentChildren(), fullMatch);\n }\n } else {\n if (stack.length - 1 >= MAX_SIMPLE_MARKUP_DEPTH) {\n appendTextNode(currentChildren(), fullMatch);\n continue;\n }\n const elementNode: ElementMarkupNode = {\n type: 'element',\n tag: tagName as 'b' | 'i',\n children: [],\n };\n currentChildren().push(elementNode);\n stack.push({ node: elementNode });\n }\n continue;\n }\n\n appendTextNode(currentChildren(), fullMatch);\n }\n\n appendTextNode(currentChildren(), decodedInput.slice(lastIndex));\n\n while (stack.length > 1) {\n const unclosed = stack.pop()!;\n const elementNode = unclosed.node;\n if (!elementNode) {\n continue;\n }\n\n const parentChildren = stack[stack.length - 1].node?.children ?? rootChildren;\n const lastChild = parentChildren[parentChildren.length - 1];\n if (lastChild === elementNode) {\n parentChildren.pop();\n } else {\n const nodeIndex = parentChildren.indexOf(elementNode);\n if (nodeIndex !== -1) {\n parentChildren.splice(nodeIndex, 1);\n }\n }\n\n appendTextNode(\n parentChildren,\n `<${elementNode.tag}>${serializeSimpleMarkup(elementNode.children)}</${elementNode.tag}>`,\n );\n }\n\n return rootChildren;\n};\n\nconst simpleMarkupNodesToPlainText = (nodes: SimpleMarkupNode[]): string =>\n nodes\n .map(node => {\n if (node.type === 'text') {\n return node.content;\n }\n if (node.type === 'br') {\n return '\\n';\n }\n return simpleMarkupNodesToPlainText(node.children);\n })\n .join('');\n\nconst renderSimpleMarkupNodeList = (nodes: SimpleMarkupNode[], keyPrefix: string): React.ReactNode[] =>\n nodes.map((node, index) => {\n const key = `${keyPrefix}-${index}`;\n\n if (node.type === 'text') {\n return <React.Fragment key={key}>{node.content}</React.Fragment>;\n }\n\n if (node.type === 'br') {\n return <br key={key} />;\n }\n\n const Tag = node.tag === 'b' ? 'strong' : 'em';\n return React.createElement(Tag, { key }, ...renderSimpleMarkupNodeList(node.children, key));\n });\nconst renderSimpleMarkup = (nodes: SimpleMarkupNode[], keyPrefix: string): React.ReactNode => {\n const rendered = renderSimpleMarkupNodeList(nodes, keyPrefix);\n return rendered.length <= 1 ? rendered[0] ?? null : rendered;\n};\n\nconst normalizeBandOffset = (\n scale: (((value: unknown) => number) & { bandwidth?: () => number }) | undefined,\n value: unknown,\n) => {\n const position = scale?.(value as never);\n if (typeof position !== 'number' || Number.isNaN(position)) {\n return undefined;\n }\n if (scale && typeof scale.bandwidth === 'function') {\n return position + scale.bandwidth() / 2;\n }\n return position;\n};\n\nconst clamp = (value: number, min: number, max: number) => Math.max(min, Math.min(max, value));\n\ntype AxisCoordinateType = 'data' | 'relative' | 'pixel';\n\nconst resolveDataCoordinate = (\n axis: 'x' | 'y',\n value: number | string | Date,\n context: ChartAnnotationContext,\n yAxis: 'primary' | 'secondary' = 'primary',\n): number | undefined => {\n if (axis === 'x') {\n const xScale = context.xScale;\n if (!xScale) {\n return undefined;\n }\n const parsedValue = value instanceof Date ? value.getTime() : value;\n return normalizeBandOffset(xScale, parsedValue);\n }\n\n const yScale = yAxis === 'secondary' ? context.yScaleSecondary : context.yScalePrimary;\n if (!yScale) {\n return undefined;\n }\n const parsedValue = value instanceof Date ? value.getTime() : value;\n return normalizeBandOffset(yScale, parsedValue);\n};\n\nconst resolveAxisCoordinate = (\n axis: 'x' | 'y',\n coordinateType: AxisCoordinateType,\n value: number | string | Date,\n context: ChartAnnotationContext,\n options: { yAxis?: 'primary' | 'secondary' } = {},\n): number | undefined => {\n switch (coordinateType) {\n case 'data':\n return resolveDataCoordinate(axis, value, context, options.yAxis);\n case 'relative':\n if (typeof value !== 'number' || Number.isNaN(value)) {\n return undefined;\n }\n return axis === 'x'\n ? context.plotRect.x + context.plotRect.width * value\n : context.plotRect.y + context.plotRect.height * value;\n case 'pixel':\n if (typeof value !== 'number' || Number.isNaN(value)) {\n return undefined;\n }\n return axis === 'x' ? context.plotRect.x + value : context.plotRect.y + value;\n default:\n return undefined;\n }\n};\n\nconst createMeasurementSignature = (\n annotationContentSignature: string,\n containerStyle: React.CSSProperties,\n contentStyle: React.CSSProperties,\n layoutClassName?: string,\n styleClassName?: string,\n) =>\n JSON.stringify({\n annotationContentSignature,\n containerStyle,\n contentStyle,\n layoutClassName: layoutClassName ?? '',\n styleClassName: styleClassName ?? '',\n });\n\ntype MeasurementEntry = { width: number; height: number; signature: string };\n\ntype CoordinateDescriptor = {\n xType: AxisCoordinateType;\n yType: AxisCoordinateType;\n yAxis?: 'primary' | 'secondary';\n};\n\nconst getCoordinateDescriptor = (coordinates: ChartAnnotation['coordinates']): CoordinateDescriptor | undefined => {\n switch (coordinates.type) {\n case 'data':\n return { xType: 'data', yType: 'data', yAxis: coordinates.yAxis };\n case 'relative':\n return { xType: 'relative', yType: 'relative' };\n case 'pixel':\n return { xType: 'pixel', yType: 'pixel' };\n case 'mixed':\n return {\n xType: coordinates.xCoordinateType,\n yType: coordinates.yCoordinateType,\n yAxis: coordinates.yAxis,\n };\n default:\n return undefined;\n }\n};\n\nconst resolveCoordinates = (\n annotation: ChartAnnotation,\n context: ChartAnnotationContext,\n): ResolvedAnnotationPosition | undefined => {\n const { coordinates, layout } = annotation;\n\n if (!coordinates) {\n return undefined;\n }\n\n const descriptor = getCoordinateDescriptor(coordinates);\n if (!descriptor) {\n return undefined;\n }\n\n const offsetX = layout?.offsetX ?? 0;\n const offsetY = layout?.offsetY ?? 0;\n\n const anchorX = resolveAxisCoordinate('x', descriptor.xType, coordinates.x, context);\n const anchorY = resolveAxisCoordinate('y', descriptor.yType, coordinates.y, context, {\n yAxis: descriptor.yAxis,\n });\n\n if (anchorX === undefined || anchorY === undefined) {\n return undefined;\n }\n\n const anchor: AnnotationPoint = { x: anchorX, y: anchorY };\n\n let left = anchor.x + offsetX;\n let top = anchor.y + offsetY;\n\n if (layout?.clipToBounds) {\n left = clamp(left, context.plotRect.x, context.plotRect.x + context.plotRect.width);\n top = clamp(top, context.plotRect.y, context.plotRect.y + context.plotRect.height);\n }\n\n return {\n anchor,\n point: { x: left, y: top },\n };\n};\n\nexport const ChartAnnotationLayer: React.FC<ChartAnnotationLayerProps> = React.memo(props => {\n const { annotations: annotationsProp, context } = props;\n\n const classes = useChartAnnotationLayerStyles(props);\n const idPrefix = useId('chart-annotation');\n const autoKeyPrefix = useId('chart-annotation-item');\n\n const [measurements, setMeasurements] = React.useState<Record<string, MeasurementEntry>>({});\n\n const resolvedAnnotations = React.useMemo(() => {\n let fallbackIndex = 0;\n return (annotationsProp ?? []).map(annotation => ({\n annotation,\n key: annotation.id ?? `${autoKeyPrefix}-${fallbackIndex++}`,\n }));\n }, [annotationsProp, autoKeyPrefix]);\n\n React.useEffect(() => {\n setMeasurements(prev => {\n if (resolvedAnnotations.length === 0) {\n if (Object.keys(prev).length === 0) {\n return prev;\n }\n return {} as Record<string, MeasurementEntry>;\n }\n\n const next: Record<string, MeasurementEntry> = {};\n resolvedAnnotations.forEach(({ key }) => {\n if (prev[key]) {\n next[key] = prev[key];\n }\n });\n\n if (Object.keys(next).length === Object.keys(prev).length) {\n let identical = true;\n for (const key of Object.keys(next)) {\n if (next[key] !== prev[key]) {\n identical = false;\n break;\n }\n }\n if (identical) {\n return prev;\n }\n }\n\n return next;\n });\n }, [resolvedAnnotations]);\n\n const updateMeasurement = React.useCallback((key: string, width: number, height: number, signature: string) => {\n setMeasurements(prev => {\n const prevEntry = prev[key];\n if (\n prevEntry &&\n prevEntry.signature === signature &&\n Math.abs(prevEntry.width - width) < 0.5 &&\n Math.abs(prevEntry.height - height) < 0.5\n ) {\n return prev;\n }\n\n if (width === 0 && height === 0) {\n return prev;\n }\n\n return {\n ...prev,\n [key]: { width, height, signature },\n };\n });\n }, []);\n\n const annotationForeignObjects: React.ReactNode[] = [];\n const measurementElements: React.ReactNode[] = [];\n const connectors: ConnectorRenderData[] = [];\n\n resolvedAnnotations.forEach(({ annotation, key }) => {\n const resolved = resolveCoordinates(annotation, context);\n if (!resolved) {\n return;\n }\n\n const rawAnnotationText = annotation.text === undefined || annotation.text === null ? '' : String(annotation.text);\n const annotationMarkupNodes = parseSimpleMarkup(rawAnnotationText);\n const annotationMarkupSignature = JSON.stringify(annotationMarkupNodes);\n const annotationPlainText = simpleMarkupNodesToPlainText(annotationMarkupNodes);\n\n const layout = annotation.layout;\n const horizontalAlign = layout?.align ?? DEFAULT_HORIZONTAL_ALIGN;\n const verticalAlign = layout?.verticalAlign ?? DEFAULT_VERTICAL_ALIGN;\n const backgroundOpacity = annotation.style?.opacity ?? DEFAULT_ANNOTATION_BACKGROUND_OPACITY;\n const baseBackgroundColor = annotation.style?.backgroundColor;\n const hasCustomBackground =\n annotation.style?.backgroundColor !== undefined || annotation.style?.opacity !== undefined;\n\n const containerStyle: React.CSSProperties = {\n maxWidth: layout?.maxWidth,\n ...(hasCustomBackground\n ? {\n backgroundColor: applyOpacityToColor(baseBackgroundColor, backgroundOpacity, {\n preserveOriginalOpacity: annotation.style?.opacity === undefined,\n }),\n }\n : {\n backgroundColor: applyOpacityToColor(tokens.colorNeutralBackground1, DEFAULT_ANNOTATION_BACKGROUND_OPACITY),\n }),\n borderColor: annotation.style?.borderColor,\n borderWidth: annotation.style?.borderWidth,\n borderStyle: annotation.style?.borderStyle ?? (annotation.style?.borderColor ? 'solid' : undefined),\n borderRadius: annotation.style?.borderRadius,\n padding: annotation.style?.padding,\n boxShadow: annotation.style?.boxShadow,\n };\n\n const contentStyle: React.CSSProperties = {\n color: annotation.style?.textColor,\n fontSize: annotation.style?.fontSize,\n fontWeight: annotation.style?.fontWeight,\n opacity: 1,\n };\n\n if (typeof annotation.style?.rotation === 'number' && !Number.isNaN(annotation.style.rotation)) {\n containerStyle.transform = `rotate(${annotation.style.rotation}deg)`;\n containerStyle.transformOrigin = '50% 50%';\n }\n\n const measurementSignature = createMeasurementSignature(\n annotationMarkupSignature,\n containerStyle,\n contentStyle,\n layout?.className,\n annotation.style?.className,\n );\n const measurementEntry = measurements[key];\n const isMeasurementValid = measurementEntry?.signature === measurementSignature;\n const measuredSize = isMeasurementValid ? measurementEntry : undefined;\n const width = Math.max(measuredSize?.width ?? layout?.maxWidth ?? DEFAULT_FOREIGN_OBJECT_WIDTH, 1);\n const height = Math.max(measuredSize?.height ?? DEFAULT_FOREIGN_OBJECT_HEIGHT, 1);\n\n const offsetX = horizontalAlign === 'center' ? -width / 2 : horizontalAlign === 'end' ? -width : 0;\n const offsetY = verticalAlign === 'middle' ? -height / 2 : verticalAlign === 'bottom' ? -height : 0;\n\n const baseTopLeftX = resolved.point.x + offsetX;\n const baseTopLeftY = resolved.point.y + offsetY;\n\n const usePlotBounds = layout?.clipToBounds !== false;\n const viewportX = usePlotBounds ? context.plotRect.x : 0;\n const viewportY = usePlotBounds ? context.plotRect.y : 0;\n const viewportWidth = usePlotBounds ? context.plotRect.width : context.svgRect.width ?? 0;\n const viewportHeight = usePlotBounds ? context.plotRect.height : context.svgRect.height ?? 0;\n\n const maxTopLeftX = viewportWidth > 0 ? viewportX + viewportWidth - width : baseTopLeftX;\n const maxTopLeftY = viewportHeight > 0 ? viewportY + viewportHeight - height : baseTopLeftY;\n\n let topLeftX = viewportWidth > 0 ? clamp(baseTopLeftX, viewportX, Math.max(viewportX, maxTopLeftX)) : baseTopLeftX;\n let topLeftY = viewportHeight > 0 ? clamp(baseTopLeftY, viewportY, Math.max(viewportY, maxTopLeftY)) : baseTopLeftY;\n\n let displayPoint = {\n x: topLeftX - offsetX,\n y: topLeftY - offsetY,\n };\n\n if (annotation.connector) {\n const startPadding = annotation.connector.startPadding ?? 12;\n const endPadding = annotation.connector.endPadding ?? 0;\n const minArrowClearance = 6;\n const minDistance = Math.max(startPadding + endPadding + minArrowClearance, startPadding);\n\n const dx = displayPoint.x - resolved.anchor.x;\n const dy = displayPoint.y - resolved.anchor.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n\n if (distance < minDistance) {\n const fallbackDirection: AnnotationPoint = { x: 0, y: -1 };\n const ux = distance === 0 ? fallbackDirection.x : dx / distance;\n const uy = distance === 0 ? fallbackDirection.y : dy / distance;\n\n const desiredDisplayX = resolved.anchor.x + ux * minDistance;\n const desiredDisplayY = resolved.anchor.y + uy * minDistance;\n\n let desiredTopLeftX = desiredDisplayX + offsetX;\n let desiredTopLeftY = desiredDisplayY + offsetY;\n\n desiredTopLeftX =\n viewportWidth > 0 ? clamp(desiredTopLeftX, viewportX, Math.max(viewportX, maxTopLeftX)) : desiredTopLeftX;\n desiredTopLeftY =\n viewportHeight > 0 ? clamp(desiredTopLeftY, viewportY, Math.max(viewportY, maxTopLeftY)) : desiredTopLeftY;\n\n topLeftX = desiredTopLeftX;\n topLeftY = desiredTopLeftY;\n displayPoint = {\n x: topLeftX - offsetX,\n y: topLeftY - offsetY,\n };\n }\n }\n\n const measurementStyle: React.CSSProperties = {\n position: 'absolute',\n left: topLeftX,\n top: topLeftY,\n pointerEvents: 'none',\n visibility: 'hidden',\n ...containerStyle,\n };\n\n if (!isMeasurementValid) {\n measurementElements.push(\n <div\n key={`${key}-measurement`}\n ref={node => {\n if (node) {\n const rect = node.getBoundingClientRect();\n if (rect.width !== 0 || rect.height !== 0) {\n updateMeasurement(key, rect.width, rect.height, measurementSignature);\n }\n }\n }}\n className={mergeClasses(\n classes.annotation,\n classes.measurement,\n layout?.className,\n annotation.style?.className,\n )}\n style={measurementStyle}\n aria-hidden={true}\n data-annotation-key={key}\n data-chart-annotation-measurement=\"true\"\n >\n <div\n className={mergeClasses(classes.annotationContent, layout?.className, annotation.style?.className)}\n style={contentStyle}\n >\n {renderSimpleMarkup(annotationMarkupNodes, `${key}-measurement`)}\n </div>\n </div>,\n );\n }\n\n annotationForeignObjects.push(\n <foreignObject\n key={`${key}-annotation`}\n x={topLeftX}\n y={topLeftY}\n width={width}\n height={height}\n className={mergeClasses(classes.annotationForeignObject)}\n data-annotation-key={key}\n >\n <div\n className={mergeClasses(classes.annotation, layout?.className, annotation.style?.className)}\n style={containerStyle}\n data-annotation-key={key}\n >\n <div\n className={mergeClasses(classes.annotationContent, annotation.style?.className)}\n style={contentStyle}\n role={annotation.accessibility?.role ?? 'note'}\n aria-label={annotation.accessibility?.ariaLabel ?? (annotationPlainText ? annotationPlainText : undefined)}\n aria-describedby={annotation.accessibility?.ariaDescribedBy}\n data-chart-annotation=\"true\"\n data-annotation-key={key}\n >\n {renderSimpleMarkup(annotationMarkupNodes, `${key}-content`)}\n </div>\n </div>\n </foreignObject>,\n );\n\n if (annotation.connector) {\n const {\n startPadding = DEFAULT_CONNECTOR_START_PADDING,\n endPadding = DEFAULT_CONNECTOR_END_PADDING,\n strokeColor = getDefaultConnectorStrokeColor(),\n strokeWidth = DEFAULT_CONNECTOR_STROKE_WIDTH,\n dashArray,\n arrow = DEFAULT_CONNECTOR_ARROW,\n } = annotation.connector;\n\n const dx = resolved.anchor.x - displayPoint.x;\n const dy = resolved.anchor.y - displayPoint.y;\n const distance = Math.sqrt(dx * dx + dy * dy) || 1;\n const ux = dx / distance;\n const uy = dy / distance;\n\n const sizeBasis = Math.max(1, Math.min(width, height));\n const proportionalSize = sizeBasis * ARROW_SIZE_SCALE;\n const maxByPadding = startPadding > 0 ? startPadding * 1.25 : MAX_ARROW_SIZE;\n const maxByDistance = distance * 0.6;\n const markerSize = clamp(proportionalSize, MIN_ARROW_SIZE, Math.min(MAX_ARROW_SIZE, maxByPadding, maxByDistance));\n const markerStrokeWidth = clamp(strokeWidth, 1, markerSize / 2);\n\n const start: AnnotationPoint = {\n x: displayPoint.x + ux * startPadding,\n y: displayPoint.y + uy * startPadding,\n };\n\n const end: AnnotationPoint = {\n x: resolved.anchor.x - ux * endPadding,\n y: resolved.anchor.y - uy * endPadding,\n };\n\n connectors.push({\n key: `${key}-connector`,\n start,\n end,\n strokeColor,\n strokeWidth,\n dashArray,\n arrow,\n markerSize,\n markerStrokeWidth,\n });\n }\n });\n\n if (annotationForeignObjects.length === 0 && connectors.length === 0) {\n return null;\n }\n\n const viewBoxWidth = context.svgRect.width || 1;\n const viewBoxHeight = context.svgRect.height || 1;\n\n const markerDefs: React.ReactNode[] = [];\n\n const createMarkerId = (color: string, position: 'start' | 'end', size: number, markerStrokeWidth: number) => {\n const id = `${idPrefix}-${position}-${markerDefs.length}`;\n const refY = size / 2;\n const refX = position === 'end' ? size : 0;\n const pathEnd = `M0 0 L ${size} ${refY} L0 ${size} Z`;\n const pathStart = `M ${size} 0 L0 ${refY} L ${size} ${size} Z`;\n const path = position === 'end' ? pathEnd : pathStart;\n\n markerDefs.push(\n <marker\n key={id}\n id={id}\n markerWidth={size}\n markerHeight={size}\n viewBox={`0 0 ${size} ${size}`}\n refX={refX}\n refY={refY}\n orient=\"auto\"\n markerUnits=\"userSpaceOnUse\"\n >\n <path\n d={path}\n fill={color}\n stroke={color}\n strokeWidth={markerStrokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </marker>,\n );\n\n return id;\n };\n\n const connectorElements = connectors.map(connector => {\n let markerStart: string | undefined;\n let markerEnd: string | undefined;\n\n if (connector.arrow === 'start' || connector.arrow === 'both') {\n markerStart = createMarkerId(connector.strokeColor, 'start', connector.markerSize, connector.markerStrokeWidth);\n }\n if (connector.arrow === 'end' || connector.arrow === 'both') {\n markerEnd = createMarkerId(connector.strokeColor, 'end', connector.markerSize, connector.markerStrokeWidth);\n }\n\n return (\n <line\n key={connector.key}\n x1={connector.start.x}\n y1={connector.start.y}\n x2={connector.end.x}\n y2={connector.end.y}\n stroke={connector.strokeColor}\n strokeWidth={connector.strokeWidth}\n strokeDasharray={connector.dashArray}\n strokeLinecap=\"round\"\n markerStart={markerStart ? `url(#${markerStart})` : undefined}\n markerEnd={markerEnd ? `url(#${markerEnd})` : undefined}\n />\n );\n });\n\n const shouldRenderSvg = connectors.length > 0 || annotationForeignObjects.length > 0;\n return (\n <div className={classes.root} role=\"presentation\" data-chart-annotation-layer=\"true\">\n {shouldRenderSvg && (\n <svg\n className={classes.connectorLayer}\n width=\"100%\"\n height=\"100%\"\n viewBox={`0 0 ${viewBoxWidth} ${viewBoxHeight}`}\n preserveAspectRatio=\"none\"\n data-chart-annotation-svg=\"true\"\n >\n {markerDefs.length > 0 && <defs>{markerDefs}</defs>}\n {connectorElements.length > 0 && (\n <g aria-hidden=\"true\" className={classes.connectorGroup}>\n {connectorElements}\n </g>\n )}\n {annotationForeignObjects}\n </svg>\n )}\n {measurementElements}\n </div>\n );\n});\n\nChartAnnotationLayer.displayName = 'ChartAnnotationLayer';\n"],"names":["React","mergeClasses","applyOpacityToColor","DEFAULT_ANNOTATION_BACKGROUND_OPACITY","DEFAULT_CONNECTOR_ARROW","DEFAULT_CONNECTOR_END_PADDING","DEFAULT_CONNECTOR_START_PADDING","DEFAULT_CONNECTOR_STROKE_WIDTH","getDefaultConnectorStrokeColor","useChartAnnotationLayerStyles","useId","tokens","DEFAULT_HORIZONTAL_ALIGN","DEFAULT_VERTICAL_ALIGN","DEFAULT_FOREIGN_OBJECT_WIDTH","DEFAULT_FOREIGN_OBJECT_HEIGHT","MIN_ARROW_SIZE","MAX_ARROW_SIZE","ARROW_SIZE_SCALE","MAX_SIMPLE_MARKUP_DEPTH","CHAR_CODE_LESS_THAN","codePointAt","CHAR_CODE_GREATER_THAN","decodeSimpleMarkupInput","input","namedEntities","amp","quot","apos","nbsp","withBasicEntitiesDecoded","replace","match","entity","lower","toLowerCase","startsWith","isHex","digits","slice","codePoint","Number","parseInt","isNaN","String","fromCodePoint","inner","normalized","trim","appendTextNode","nodes","text","length","last","type","content","push","serializeSimpleMarkup","map","node","tag","children","join","parseSimpleMarkup","decodedInput","rootChildren","stack","currentChildren","tagRegex","lastIndex","exec","fullMatch","rawTagName","tagName","isClosing","isSelfClosing","test","index","top","pop","elementNode","unclosed","parentChildren","lastChild","nodeIndex","indexOf","splice","simpleMarkupNodesToPlainText","renderSimpleMarkupNodeList","keyPrefix","key","Fragment","br","Tag","createElement","renderSimpleMarkup","rendered","normalizeBandOffset","scale","value","position","undefined","bandwidth","clamp","min","max","Math","resolveDataCoordinate","axis","context","yAxis","xScale","parsedValue","Date","getTime","yScale","yScaleSecondary","yScalePrimary","resolveAxisCoordinate","coordinateType","options","plotRect","x","width","y","height","createMeasurementSignature","annotationContentSignature","containerStyle","contentStyle","layoutClassName","styleClassName","JSON","stringify","getCoordinateDescriptor","coordinates","xType","yType","xCoordinateType","yCoordinateType","resolveCoordinates","annotation","layout","descriptor","offsetX","offsetY","anchorX","anchorY","anchor","left","clipToBounds","point","ChartAnnotationLayer","memo","props","annotations","annotationsProp","classes","idPrefix","autoKeyPrefix","measurements","setMeasurements","useState","resolvedAnnotations","useMemo","fallbackIndex","id","useEffect","prev","Object","keys","next","forEach","identical","updateMeasurement","useCallback","signature","prevEntry","abs","annotationForeignObjects","measurementElements","connectors","resolved","rawAnnotationText","annotationMarkupNodes","annotationMarkupSignature","annotationPlainText","horizontalAlign","align","verticalAlign","backgroundOpacity","style","opacity","baseBackgroundColor","backgroundColor","hasCustomBackground","maxWidth","preserveOriginalOpacity","colorNeutralBackground1","borderColor","borderWidth","borderStyle","borderRadius","padding","boxShadow","color","textColor","fontSize","fontWeight","rotation","transform","transformOrigin","measurementSignature","className","measurementEntry","isMeasurementValid","measuredSize","baseTopLeftX","baseTopLeftY","usePlotBounds","viewportX","viewportY","viewportWidth","svgRect","viewportHeight","maxTopLeftX","maxTopLeftY","topLeftX","topLeftY","displayPoint","connector","startPadding","endPadding","minArrowClearance","minDistance","dx","dy","distance","sqrt","fallbackDirection","ux","uy","desiredDisplayX","desiredDisplayY","desiredTopLeftX","desiredTopLeftY","measurementStyle","pointerEvents","visibility","div","ref","rect","getBoundingClientRect","measurement","aria-hidden","data-annotation-key","data-chart-annotation-measurement","annotationContent","foreignObject","annotationForeignObject","role","accessibility","aria-label","ariaLabel","aria-describedby","ariaDescribedBy","data-chart-annotation","strokeColor","strokeWidth","dashArray","arrow","sizeBasis","proportionalSize","maxByPadding","maxByDistance","markerSize","markerStrokeWidth","start","end","viewBoxWidth","viewBoxHeight","markerDefs","createMarkerId","size","refY","refX","pathEnd","pathStart","path","marker","markerWidth","markerHeight","viewBox","orient","markerUnits","d","fill","stroke","strokeLinecap","strokeLinejoin","connectorElements","markerStart","markerEnd","line","x1","y1","x2","y2","strokeDasharray","shouldRenderSvg","root","data-chart-annotation-layer","svg","connectorLayer","preserveAspectRatio","data-chart-annotation-svg","defs","g","connectorGroup","displayName"],"mappings":"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"}
@@ -53,7 +53,7 @@ const DEFAULT_CONNECTOR_START_PADDING = 12;
53
53
  const DEFAULT_CONNECTOR_END_PADDING = 0;
54
54
  const DEFAULT_CONNECTOR_STROKE_WIDTH = 2;
55
55
  const DEFAULT_CONNECTOR_ARROW = 'end';
56
- const applyOpacityToColor = (color, opacity)=>{
56
+ const applyOpacityToColor = (color, opacity, options)=>{
57
57
  if (!color) {
58
58
  return undefined;
59
59
  }
@@ -61,6 +61,12 @@ const applyOpacityToColor = (color, opacity)=>{
61
61
  if (!parsed) {
62
62
  return color;
63
63
  }
64
+ const originalOpacity = typeof parsed.opacity === 'number' ? parsed.opacity : 1;
65
+ var _options_preserveOriginalOpacity;
66
+ const preserveOriginalOpacity = (_options_preserveOriginalOpacity = options === null || options === void 0 ? void 0 : options.preserveOriginalOpacity) !== null && _options_preserveOriginalOpacity !== void 0 ? _options_preserveOriginalOpacity : true;
67
+ if (preserveOriginalOpacity && originalOpacity < 1) {
68
+ return parsed.toString();
69
+ }
64
70
  parsed.opacity = Math.max(0, Math.min(1, opacity));
65
71
  return parsed.toString();
66
72
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["useChartAnnotationLayer.styles.js"],"sourcesContent":["'use client';\nimport { makeStyles, mergeClasses } from '@griffel/react';\nimport { tokens, typographyStyles } from '@fluentui/react-theme';\nimport { color as d3Color } from 'd3-color';\nexport const DEFAULT_ANNOTATION_BACKGROUND_OPACITY = 0.8;\nexport const DEFAULT_ANNOTATION_PADDING = '4px 8px';\nexport const DEFAULT_CONNECTOR_START_PADDING = 12;\nexport const DEFAULT_CONNECTOR_END_PADDING = 0;\nexport const DEFAULT_CONNECTOR_STROKE_WIDTH = 2;\nexport const DEFAULT_CONNECTOR_ARROW = 'end';\nexport const applyOpacityToColor = (color, opacity)=>{\n if (!color) {\n return undefined;\n }\n const parsed = d3Color(color);\n if (!parsed) {\n return color;\n }\n parsed.opacity = Math.max(0, Math.min(1, opacity));\n return parsed.toString();\n};\n/**\n * Get default annotation background color with opacity applied\n * Updated for v9 - uses tokens instead of theme\n */ export const getDefaultAnnotationBackgroundColor = ()=>applyOpacityToColor(tokens.colorNeutralBackground1, DEFAULT_ANNOTATION_BACKGROUND_OPACITY);\n/**\n * Get default connector stroke color\n * Updated for v9 - uses tokens instead of theme\n */ export const getDefaultConnectorStrokeColor = ()=>tokens.colorNeutralForeground1;\n/**\n * @internal\n */ export const chartAnnotationLayerClassNames = {\n root: 'fui-chartAnnotationLayer__root',\n annotation: 'fui-chartAnnotationLayer__annotation',\n connectorLayer: 'fui-chartAnnotationLayer__connectorLayer',\n measurement: 'fui-chartAnnotationLayer__measurement',\n annotationContent: 'fui-chartAnnotationLayer__annotationContent',\n annotationForeignObject: 'fui-chartAnnotationLayer__annotationForeignObject',\n annotationContentInteractive: 'fui-chartAnnotationLayer__annotationContentInteractive',\n annotationForeignObjectInteractive: 'fui-chartAnnotationLayer__annotationForeignObjectInteractive',\n connectorGroup: 'fui-chartAnnotationLayer__connectorGroup'\n};\n/**\n * Base Styles\n */ const useStyles = makeStyles({\n root: {\n position: 'absolute',\n top: '0',\n left: '0',\n right: '0',\n bottom: '0',\n width: '100%',\n height: '100%',\n pointerEvents: 'none',\n overflow: 'visible',\n zIndex: 1\n },\n annotation: {\n ...typographyStyles.caption1,\n position: 'absolute',\n pointerEvents: 'none',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n textAlign: 'center',\n color: tokens.colorNeutralForeground1,\n paddingTop: '4px',\n paddingBottom: '4px',\n paddingLeft: '8px',\n paddingRight: '8px',\n borderRadius: tokens.borderRadiusMedium,\n boxShadow: tokens.shadow16,\n border: `1px solid ${tokens.colorNeutralStroke1}`,\n whiteSpace: 'pre-wrap',\n zIndex: 2\n },\n connectorLayer: {\n position: 'absolute',\n top: '0',\n left: '0',\n width: '100%',\n height: '100%',\n pointerEvents: 'none',\n overflow: 'visible'\n },\n measurement: {\n position: 'absolute',\n visibility: 'hidden',\n pointerEvents: 'none'\n },\n annotationContent: {\n width: '100%',\n height: '100%',\n pointerEvents: 'none'\n },\n annotationForeignObject: {\n overflow: 'visible',\n pointerEvents: 'none'\n },\n annotationContentInteractive: {\n pointerEvents: 'auto'\n },\n annotationForeignObjectInteractive: {\n pointerEvents: 'auto'\n },\n connectorGroup: {\n pointerEvents: 'none'\n }\n});\n/**\n * Apply styling to the ChartAnnotationLayer slots based on the state\n */ export const useChartAnnotationLayerStyles = (props)=>{\n var _props_styles, _props_styles1, _props_styles2, _props_styles3, _props_styles4, _props_styles5, _props_styles6, _props_styles7, _props_styles8;\n const baseStyles = useStyles();\n return {\n root: mergeClasses(chartAnnotationLayerClassNames.root, baseStyles.root, props.className, (_props_styles = props.styles) === null || _props_styles === void 0 ? void 0 : _props_styles.root),\n annotation: mergeClasses(chartAnnotationLayerClassNames.annotation, baseStyles.annotation, (_props_styles1 = props.styles) === null || _props_styles1 === void 0 ? void 0 : _props_styles1.annotation),\n connectorLayer: mergeClasses(chartAnnotationLayerClassNames.connectorLayer, baseStyles.connectorLayer, (_props_styles2 = props.styles) === null || _props_styles2 === void 0 ? void 0 : _props_styles2.connectorLayer),\n measurement: mergeClasses(chartAnnotationLayerClassNames.measurement, baseStyles.measurement, (_props_styles3 = props.styles) === null || _props_styles3 === void 0 ? void 0 : _props_styles3.measurement),\n annotationContent: mergeClasses(chartAnnotationLayerClassNames.annotationContent, baseStyles.annotationContent, (_props_styles4 = props.styles) === null || _props_styles4 === void 0 ? void 0 : _props_styles4.annotationContent),\n annotationForeignObject: mergeClasses(chartAnnotationLayerClassNames.annotationForeignObject, baseStyles.annotationForeignObject, (_props_styles5 = props.styles) === null || _props_styles5 === void 0 ? void 0 : _props_styles5.annotationForeignObject),\n annotationContentInteractive: mergeClasses(chartAnnotationLayerClassNames.annotationContentInteractive, baseStyles.annotationContentInteractive, (_props_styles6 = props.styles) === null || _props_styles6 === void 0 ? void 0 : _props_styles6.annotationContentInteractive),\n annotationForeignObjectInteractive: mergeClasses(chartAnnotationLayerClassNames.annotationForeignObjectInteractive, baseStyles.annotationForeignObjectInteractive, (_props_styles7 = props.styles) === null || _props_styles7 === void 0 ? void 0 : _props_styles7.annotationForeignObjectInteractive),\n connectorGroup: mergeClasses(chartAnnotationLayerClassNames.connectorGroup, baseStyles.connectorGroup, (_props_styles8 = props.styles) === null || _props_styles8 === void 0 ? void 0 : _props_styles8.connectorGroup)\n };\n};\n"],"names":["__styles","mergeClasses","tokens","typographyStyles","color","d3Color","DEFAULT_ANNOTATION_BACKGROUND_OPACITY","DEFAULT_ANNOTATION_PADDING","DEFAULT_CONNECTOR_START_PADDING","DEFAULT_CONNECTOR_END_PADDING","DEFAULT_CONNECTOR_STROKE_WIDTH","DEFAULT_CONNECTOR_ARROW","applyOpacityToColor","opacity","undefined","parsed","Math","max","min","toString","getDefaultAnnotationBackgroundColor","colorNeutralBackground1","getDefaultConnectorStrokeColor","colorNeutralForeground1","chartAnnotationLayerClassNames","root","annotation","connectorLayer","measurement","annotationContent","annotationForeignObject","annotationContentInteractive","annotationForeignObjectInteractive","connectorGroup","useStyles","qhf8xq","Bhzewxz","oyh7mz","j35jbq","B5kzvoi","a9b677","Bqenvij","Bkecrkj","B68tc82","Bmxbyg5","Bpg54ce","Bj3rh1h","Bahqtrf","Be2twd7","Bhrd7zp","Bg96gwp","mc9l5x","Bt984gj","Brf1p80","fsow6f","sj55zd","z8tnut","Byoj8tv","uwmqm3","z189sj","Beyfa6y","Bbmb7ep","Btl43ni","B7oj6ja","Dimara","E5pizo","Bgfg5da","B9xav0g","oivjwe","Bn0qgzm","B4g9neb","zhjwy3","wvpqe5","ibv6hh","u1mtju","h3c5rm","vrafjx","Bekrc4i","i8vvqc","g2u3we","icvyot","B4j52fo","irswps","Huce71","Bcdw1i0","d","p","useChartAnnotationLayerStyles","props","_props_styles","_props_styles1","_props_styles2","_props_styles3","_props_styles4","_props_styles5","_props_styles6","_props_styles7","_props_styles8","baseStyles","className","styles"],"mappings":"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"}
1
+ {"version":3,"sources":["useChartAnnotationLayer.styles.js"],"sourcesContent":["'use client';\nimport { makeStyles, mergeClasses } from '@griffel/react';\nimport { tokens, typographyStyles } from '@fluentui/react-theme';\nimport { color as d3Color } from 'd3-color';\nexport const DEFAULT_ANNOTATION_BACKGROUND_OPACITY = 0.8;\nexport const DEFAULT_ANNOTATION_PADDING = '4px 8px';\nexport const DEFAULT_CONNECTOR_START_PADDING = 12;\nexport const DEFAULT_CONNECTOR_END_PADDING = 0;\nexport const DEFAULT_CONNECTOR_STROKE_WIDTH = 2;\nexport const DEFAULT_CONNECTOR_ARROW = 'end';\nexport const applyOpacityToColor = (color, opacity, options)=>{\n if (!color) {\n return undefined;\n }\n const parsed = d3Color(color);\n if (!parsed) {\n return color;\n }\n const originalOpacity = typeof parsed.opacity === 'number' ? parsed.opacity : 1;\n var _options_preserveOriginalOpacity;\n const preserveOriginalOpacity = (_options_preserveOriginalOpacity = options === null || options === void 0 ? void 0 : options.preserveOriginalOpacity) !== null && _options_preserveOriginalOpacity !== void 0 ? _options_preserveOriginalOpacity : true;\n if (preserveOriginalOpacity && originalOpacity < 1) {\n return parsed.toString();\n }\n parsed.opacity = Math.max(0, Math.min(1, opacity));\n return parsed.toString();\n};\n/**\n * Get default annotation background color with opacity applied\n * Updated for v9 - uses tokens instead of theme\n */ export const getDefaultAnnotationBackgroundColor = ()=>applyOpacityToColor(tokens.colorNeutralBackground1, DEFAULT_ANNOTATION_BACKGROUND_OPACITY);\n/**\n * Get default connector stroke color\n * Updated for v9 - uses tokens instead of theme\n */ export const getDefaultConnectorStrokeColor = ()=>tokens.colorNeutralForeground1;\n/**\n * @internal\n */ export const chartAnnotationLayerClassNames = {\n root: 'fui-chartAnnotationLayer__root',\n annotation: 'fui-chartAnnotationLayer__annotation',\n connectorLayer: 'fui-chartAnnotationLayer__connectorLayer',\n measurement: 'fui-chartAnnotationLayer__measurement',\n annotationContent: 'fui-chartAnnotationLayer__annotationContent',\n annotationForeignObject: 'fui-chartAnnotationLayer__annotationForeignObject',\n annotationContentInteractive: 'fui-chartAnnotationLayer__annotationContentInteractive',\n annotationForeignObjectInteractive: 'fui-chartAnnotationLayer__annotationForeignObjectInteractive',\n connectorGroup: 'fui-chartAnnotationLayer__connectorGroup'\n};\n/**\n * Base Styles\n */ const useStyles = makeStyles({\n root: {\n position: 'absolute',\n top: '0',\n left: '0',\n right: '0',\n bottom: '0',\n width: '100%',\n height: '100%',\n pointerEvents: 'none',\n overflow: 'visible',\n zIndex: 1\n },\n annotation: {\n ...typographyStyles.caption1,\n position: 'absolute',\n pointerEvents: 'none',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n textAlign: 'center',\n color: tokens.colorNeutralForeground1,\n paddingTop: '4px',\n paddingBottom: '4px',\n paddingLeft: '8px',\n paddingRight: '8px',\n borderRadius: tokens.borderRadiusMedium,\n boxShadow: tokens.shadow16,\n border: `1px solid ${tokens.colorNeutralStroke1}`,\n whiteSpace: 'pre-wrap',\n zIndex: 2\n },\n connectorLayer: {\n position: 'absolute',\n top: '0',\n left: '0',\n width: '100%',\n height: '100%',\n pointerEvents: 'none',\n overflow: 'visible'\n },\n measurement: {\n position: 'absolute',\n visibility: 'hidden',\n pointerEvents: 'none'\n },\n annotationContent: {\n width: '100%',\n height: '100%',\n pointerEvents: 'none'\n },\n annotationForeignObject: {\n overflow: 'visible',\n pointerEvents: 'none'\n },\n annotationContentInteractive: {\n pointerEvents: 'auto'\n },\n annotationForeignObjectInteractive: {\n pointerEvents: 'auto'\n },\n connectorGroup: {\n pointerEvents: 'none'\n }\n});\n/**\n * Apply styling to the ChartAnnotationLayer slots based on the state\n */ export const useChartAnnotationLayerStyles = (props)=>{\n var _props_styles, _props_styles1, _props_styles2, _props_styles3, _props_styles4, _props_styles5, _props_styles6, _props_styles7, _props_styles8;\n const baseStyles = useStyles();\n return {\n root: mergeClasses(chartAnnotationLayerClassNames.root, baseStyles.root, props.className, (_props_styles = props.styles) === null || _props_styles === void 0 ? void 0 : _props_styles.root),\n annotation: mergeClasses(chartAnnotationLayerClassNames.annotation, baseStyles.annotation, (_props_styles1 = props.styles) === null || _props_styles1 === void 0 ? void 0 : _props_styles1.annotation),\n connectorLayer: mergeClasses(chartAnnotationLayerClassNames.connectorLayer, baseStyles.connectorLayer, (_props_styles2 = props.styles) === null || _props_styles2 === void 0 ? void 0 : _props_styles2.connectorLayer),\n measurement: mergeClasses(chartAnnotationLayerClassNames.measurement, baseStyles.measurement, (_props_styles3 = props.styles) === null || _props_styles3 === void 0 ? void 0 : _props_styles3.measurement),\n annotationContent: mergeClasses(chartAnnotationLayerClassNames.annotationContent, baseStyles.annotationContent, (_props_styles4 = props.styles) === null || _props_styles4 === void 0 ? void 0 : _props_styles4.annotationContent),\n annotationForeignObject: mergeClasses(chartAnnotationLayerClassNames.annotationForeignObject, baseStyles.annotationForeignObject, (_props_styles5 = props.styles) === null || _props_styles5 === void 0 ? void 0 : _props_styles5.annotationForeignObject),\n annotationContentInteractive: mergeClasses(chartAnnotationLayerClassNames.annotationContentInteractive, baseStyles.annotationContentInteractive, (_props_styles6 = props.styles) === null || _props_styles6 === void 0 ? void 0 : _props_styles6.annotationContentInteractive),\n annotationForeignObjectInteractive: mergeClasses(chartAnnotationLayerClassNames.annotationForeignObjectInteractive, baseStyles.annotationForeignObjectInteractive, (_props_styles7 = props.styles) === null || _props_styles7 === void 0 ? void 0 : _props_styles7.annotationForeignObjectInteractive),\n connectorGroup: mergeClasses(chartAnnotationLayerClassNames.connectorGroup, baseStyles.connectorGroup, (_props_styles8 = props.styles) === null || _props_styles8 === void 0 ? void 0 : _props_styles8.connectorGroup)\n };\n};\n"],"names":["__styles","mergeClasses","tokens","typographyStyles","color","d3Color","DEFAULT_ANNOTATION_BACKGROUND_OPACITY","DEFAULT_ANNOTATION_PADDING","DEFAULT_CONNECTOR_START_PADDING","DEFAULT_CONNECTOR_END_PADDING","DEFAULT_CONNECTOR_STROKE_WIDTH","DEFAULT_CONNECTOR_ARROW","applyOpacityToColor","opacity","options","undefined","parsed","originalOpacity","_options_preserveOriginalOpacity","preserveOriginalOpacity","toString","Math","max","min","getDefaultAnnotationBackgroundColor","colorNeutralBackground1","getDefaultConnectorStrokeColor","colorNeutralForeground1","chartAnnotationLayerClassNames","root","annotation","connectorLayer","measurement","annotationContent","annotationForeignObject","annotationContentInteractive","annotationForeignObjectInteractive","connectorGroup","useStyles","qhf8xq","Bhzewxz","oyh7mz","j35jbq","B5kzvoi","a9b677","Bqenvij","Bkecrkj","B68tc82","Bmxbyg5","Bpg54ce","Bj3rh1h","Bahqtrf","Be2twd7","Bhrd7zp","Bg96gwp","mc9l5x","Bt984gj","Brf1p80","fsow6f","sj55zd","z8tnut","Byoj8tv","uwmqm3","z189sj","Beyfa6y","Bbmb7ep","Btl43ni","B7oj6ja","Dimara","E5pizo","Bgfg5da","B9xav0g","oivjwe","Bn0qgzm","B4g9neb","zhjwy3","wvpqe5","ibv6hh","u1mtju","h3c5rm","vrafjx","Bekrc4i","i8vvqc","g2u3we","icvyot","B4j52fo","irswps","Huce71","Bcdw1i0","d","p","useChartAnnotationLayerStyles","props","_props_styles","_props_styles1","_props_styles2","_props_styles3","_props_styles4","_props_styles5","_props_styles6","_props_styles7","_props_styles8","baseStyles","className","styles"],"mappings":"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"}
@@ -53,7 +53,7 @@ const DEFAULT_CONNECTOR_START_PADDING = 12;
53
53
  const DEFAULT_CONNECTOR_END_PADDING = 0;
54
54
  const DEFAULT_CONNECTOR_STROKE_WIDTH = 2;
55
55
  const DEFAULT_CONNECTOR_ARROW = 'end';
56
- const applyOpacityToColor = (color, opacity)=>{
56
+ const applyOpacityToColor = (color, opacity, options)=>{
57
57
  if (!color) {
58
58
  return undefined;
59
59
  }
@@ -61,6 +61,12 @@ const applyOpacityToColor = (color, opacity)=>{
61
61
  if (!parsed) {
62
62
  return color;
63
63
  }
64
+ const originalOpacity = typeof parsed.opacity === 'number' ? parsed.opacity : 1;
65
+ var _options_preserveOriginalOpacity;
66
+ const preserveOriginalOpacity = (_options_preserveOriginalOpacity = options === null || options === void 0 ? void 0 : options.preserveOriginalOpacity) !== null && _options_preserveOriginalOpacity !== void 0 ? _options_preserveOriginalOpacity : true;
67
+ if (preserveOriginalOpacity && originalOpacity < 1) {
68
+ return parsed.toString();
69
+ }
64
70
  parsed.opacity = Math.max(0, Math.min(1, opacity));
65
71
  return parsed.toString();
66
72
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/CommonComponents/Annotations/useChartAnnotationLayer.styles.ts"],"sourcesContent":["'use client';\n\nimport { makeStyles, mergeClasses } from '@griffel/react';\nimport { SlotClassNames } from '@fluentui/react-utilities';\nimport { tokens, typographyStyles } from '@fluentui/react-theme';\nimport { color as d3Color } from 'd3-color';\nimport { ChartAnnotationArrowHead } from '../../../types/ChartAnnotation';\n\nexport interface ChartAnnotationLayerStyles {\n root?: string;\n annotation?: string;\n connectorLayer?: string;\n measurement?: string;\n annotationContent?: string;\n annotationForeignObject?: string;\n annotationContentInteractive?: string;\n annotationForeignObjectInteractive?: string;\n connectorGroup?: string;\n}\n\nexport interface ChartAnnotationLayerStyleProps {\n className?: string;\n styles?: Partial<ChartAnnotationLayerStyles>;\n}\n\nexport const DEFAULT_ANNOTATION_BACKGROUND_OPACITY = 0.8;\nexport const DEFAULT_ANNOTATION_PADDING = '4px 8px';\nexport const DEFAULT_CONNECTOR_START_PADDING = 12;\nexport const DEFAULT_CONNECTOR_END_PADDING = 0;\nexport const DEFAULT_CONNECTOR_STROKE_WIDTH = 2;\nexport const DEFAULT_CONNECTOR_ARROW: ChartAnnotationArrowHead = 'end';\n\nexport const applyOpacityToColor = (color: string | undefined, opacity: number): string | undefined => {\n if (!color) {\n return undefined;\n }\n\n const parsed = d3Color(color);\n if (!parsed) {\n return color;\n }\n\n parsed.opacity = Math.max(0, Math.min(1, opacity));\n return parsed.toString();\n};\n\n/**\n * Get default annotation background color with opacity applied\n * Updated for v9 - uses tokens instead of theme\n */\nexport const getDefaultAnnotationBackgroundColor = (): string | undefined =>\n applyOpacityToColor(tokens.colorNeutralBackground1, DEFAULT_ANNOTATION_BACKGROUND_OPACITY);\n\n/**\n * Get default connector stroke color\n * Updated for v9 - uses tokens instead of theme\n */\nexport const getDefaultConnectorStrokeColor = (): string => tokens.colorNeutralForeground1;\n\n/**\n * @internal\n */\nexport const chartAnnotationLayerClassNames: SlotClassNames<ChartAnnotationLayerStyles> = {\n root: 'fui-chartAnnotationLayer__root',\n annotation: 'fui-chartAnnotationLayer__annotation',\n connectorLayer: 'fui-chartAnnotationLayer__connectorLayer',\n measurement: 'fui-chartAnnotationLayer__measurement',\n annotationContent: 'fui-chartAnnotationLayer__annotationContent',\n annotationForeignObject: 'fui-chartAnnotationLayer__annotationForeignObject',\n annotationContentInteractive: 'fui-chartAnnotationLayer__annotationContentInteractive',\n annotationForeignObjectInteractive: 'fui-chartAnnotationLayer__annotationForeignObjectInteractive',\n connectorGroup: 'fui-chartAnnotationLayer__connectorGroup',\n};\n\n/**\n * Base Styles\n */\nconst useStyles = makeStyles({\n root: {\n position: 'absolute',\n top: '0',\n left: '0',\n right: '0',\n bottom: '0',\n width: '100%',\n height: '100%',\n pointerEvents: 'none',\n overflow: 'visible',\n zIndex: 1,\n },\n annotation: {\n ...typographyStyles.caption1,\n position: 'absolute',\n pointerEvents: 'none',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n textAlign: 'center',\n color: tokens.colorNeutralForeground1,\n paddingTop: '4px',\n paddingBottom: '4px',\n paddingLeft: '8px',\n paddingRight: '8px',\n borderRadius: tokens.borderRadiusMedium,\n boxShadow: tokens.shadow16,\n border: `1px solid ${tokens.colorNeutralStroke1}`,\n whiteSpace: 'pre-wrap',\n zIndex: 2,\n },\n connectorLayer: {\n position: 'absolute',\n top: '0',\n left: '0',\n width: '100%',\n height: '100%',\n pointerEvents: 'none',\n overflow: 'visible',\n },\n measurement: {\n position: 'absolute',\n visibility: 'hidden',\n pointerEvents: 'none',\n },\n annotationContent: {\n width: '100%',\n height: '100%',\n pointerEvents: 'none',\n },\n annotationForeignObject: {\n overflow: 'visible',\n pointerEvents: 'none',\n },\n annotationContentInteractive: {\n pointerEvents: 'auto',\n },\n annotationForeignObjectInteractive: {\n pointerEvents: 'auto',\n },\n connectorGroup: {\n pointerEvents: 'none',\n },\n});\n\n/**\n * Apply styling to the ChartAnnotationLayer slots based on the state\n */\nexport const useChartAnnotationLayerStyles = (props: ChartAnnotationLayerStyleProps): ChartAnnotationLayerStyles => {\n const baseStyles = useStyles();\n\n return {\n root: mergeClasses(chartAnnotationLayerClassNames.root, baseStyles.root, props.className, props.styles?.root),\n annotation: mergeClasses(\n chartAnnotationLayerClassNames.annotation,\n baseStyles.annotation,\n props.styles?.annotation,\n ),\n connectorLayer: mergeClasses(\n chartAnnotationLayerClassNames.connectorLayer,\n baseStyles.connectorLayer,\n props.styles?.connectorLayer,\n ),\n measurement: mergeClasses(\n chartAnnotationLayerClassNames.measurement,\n baseStyles.measurement,\n props.styles?.measurement,\n ),\n annotationContent: mergeClasses(\n chartAnnotationLayerClassNames.annotationContent,\n baseStyles.annotationContent,\n props.styles?.annotationContent,\n ),\n annotationForeignObject: mergeClasses(\n chartAnnotationLayerClassNames.annotationForeignObject,\n baseStyles.annotationForeignObject,\n props.styles?.annotationForeignObject,\n ),\n annotationContentInteractive: mergeClasses(\n chartAnnotationLayerClassNames.annotationContentInteractive,\n baseStyles.annotationContentInteractive,\n props.styles?.annotationContentInteractive,\n ),\n annotationForeignObjectInteractive: mergeClasses(\n chartAnnotationLayerClassNames.annotationForeignObjectInteractive,\n baseStyles.annotationForeignObjectInteractive,\n props.styles?.annotationForeignObjectInteractive,\n ),\n connectorGroup: mergeClasses(\n chartAnnotationLayerClassNames.connectorGroup,\n baseStyles.connectorGroup,\n props.styles?.connectorGroup,\n ),\n };\n};\n"],"names":["makeStyles","mergeClasses","tokens","typographyStyles","color","d3Color","DEFAULT_ANNOTATION_BACKGROUND_OPACITY","DEFAULT_ANNOTATION_PADDING","DEFAULT_CONNECTOR_START_PADDING","DEFAULT_CONNECTOR_END_PADDING","DEFAULT_CONNECTOR_STROKE_WIDTH","DEFAULT_CONNECTOR_ARROW","applyOpacityToColor","opacity","undefined","parsed","Math","max","min","toString","getDefaultAnnotationBackgroundColor","colorNeutralBackground1","getDefaultConnectorStrokeColor","colorNeutralForeground1","chartAnnotationLayerClassNames","root","annotation","connectorLayer","measurement","annotationContent","annotationForeignObject","annotationContentInteractive","annotationForeignObjectInteractive","connectorGroup","useStyles","position","top","left","right","bottom","width","height","pointerEvents","overflow","zIndex","caption1","display","alignItems","justifyContent","textAlign","paddingTop","paddingBottom","paddingLeft","paddingRight","borderRadius","borderRadiusMedium","boxShadow","shadow16","border","colorNeutralStroke1","whiteSpace","visibility","useChartAnnotationLayerStyles","props","baseStyles","className","styles"],"mappings":"AAAA;;;;;;;;;;;;IAyBaM,qCAAAA;;;8BACAC;;;2BAIAI;;;iCAFAF;;;mCADAD;eAAAA;;IAEAE,8BAAAA;;;uBAGAE;;;kCA8BAY;;;uCAZAJ;;;IAOAE,8BAAAA;;;iCAyFAwC;;;;uBAhJ4B,iBAAiB;4BAEjB,wBAAwB;yBAChC,WAAW;AAoBrC,8CAA8C,IAAI;AAClD,MAAMvD,6BAA6B,UAAU;AAC7C,wCAAwC,GAAG;AAC3C,MAAME,gCAAgC,EAAE;AACxC,uCAAuC,EAAE;AACzC,MAAME,0BAAoD,MAAM;AAEhE,MAAMC,sBAAsB,CAACR,OAA2BS;IAC7D,IAAI,CAACT,OAAO;QACV,OAAOU;IACT;IAEA,MAAMC,aAASV,cAAAA,EAAQD;IACvB,IAAI,CAACW,QAAQ;QACX,OAAOX;IACT;IAEAW,OAAOF,OAAO,GAAGG,KAAKC,GAAG,CAAC,GAAGD,KAAKE,GAAG,CAAC,GAAGL;IACzC,OAAOE,OAAOI,QAAQ;AACxB,EAAE;AAMK,MAAMC,sCAAsC,IACjDR,oBAAoBV,kBAAAA,CAAOmB,uBAAuB,EAAEf,uCAAuC;AAMtF,uCAAuC,IAAcJ,kBAAAA,CAAOqB,uBAAuB,CAAC;AAKpF,MAAMC,iCAA6E;IACxFC,MAAM;IACNC,YAAY;IACZC,gBAAgB;IAChBC,aAAa;IACbC,mBAAmB;IACnBC,yBAAyB;IACzBC,8BAA8B;IAC9BC,oCAAoC;IACpCC,gBAAgB;AAClB,EAAE;AAEF;;CAEC,GACD,MAAMC,gBAAYlC,iBAAAA,EAAW;IAC3ByB,MAAM;QACJU,UAAU;QACVC,KAAK;QACLC,MAAM;QACNC,OAAO;QACPC,QAAQ;QACRC,OAAO;QACPC,QAAQ;QACRC,eAAe;QACfC,UAAU;QACVC,QAAQ;IACV;IACAlB,YAAY;QACV,GAAGvB,4BAAAA,CAAiB0C,QAAQ;QAC5BV,UAAU;QACVO,eAAe;QACfI,SAAS;QACTC,YAAY;QACZC,gBAAgB;QAChBC,WAAW;QACX7C,OAAOF,kBAAAA,CAAOqB,uBAAuB;QACrC2B,YAAY;QACZC,eAAe;QACfC,aAAa;QACbC,cAAc;QACdC,cAAcpD,kBAAAA,CAAOqD,kBAAkB;QACvCC,WAAWtD,kBAAAA,CAAOuD,QAAQ;QAC1BC,QAAQ,CAAC,UAAU,EAAExD,kBAAAA,CAAOyD,mBAAmB,EAAE;QACjDC,YAAY;QACZhB,QAAQ;IACV;IACAjB,gBAAgB;QACdQ,UAAU;QACVC,KAAK;QACLC,MAAM;QACNG,OAAO;QACPC,QAAQ;QACRC,eAAe;QACfC,UAAU;IACZ;IACAf,aAAa;QACXO,UAAU;QACV0B,YAAY;QACZnB,eAAe;IACjB;IACAb,mBAAmB;QACjBW,OAAO;QACPC,QAAQ;QACRC,eAAe;IACjB;IACAZ,yBAAyB;QACvBa,UAAU;QACVD,eAAe;IACjB;IACAX,8BAA8B;QAC5BW,eAAe;IACjB;IACAV,oCAAoC;QAClCU,eAAe;IACjB;IACAT,gBAAgB;QACdS,eAAe;IACjB;AACF;AAKO,MAAMoB,gCAAgC,CAACC;QAIgDA,eAIxFA,gBAKAA,gBAKAA,gBAKAA,gBAKAA,gBAKAA,gBAKAA,gBAKAA;IA1CJ,MAAMC,aAAa9B;IAEnB,OAAO;QACLT,UAAMxB,mBAAAA,EAAauB,+BAA+BC,IAAI,EAAEuC,WAAWvC,IAAI,EAAEsC,MAAME,SAAS,EAAA,CAAEF,gBAAAA,MAAMG,MAAM,AAANA,MAAM,QAAZH,kBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,cAActC,IAAI;QAC5GC,gBAAYzB,mBAAAA,EACVuB,+BAA+BE,UAAU,EACzCsC,WAAWtC,UAAU,EAAA,CACrBqC,iBAAAA,MAAMG,MAAAA,AAAM,MAAA,QAAZH,mBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,eAAcrC,UAAU;QAE1BC,oBAAgB1B,mBAAAA,EACduB,+BAA+BG,cAAc,EAC7CqC,WAAWrC,cAAc,EAAA,CACzBoC,iBAAAA,MAAMG,MAAAA,AAAM,MAAA,QAAZH,mBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,eAAcpC,cAAc;QAE9BC,iBAAa3B,mBAAAA,EACXuB,+BAA+BI,WAAW,EAC1CoC,WAAWpC,WAAW,EAAA,CACtBmC,iBAAAA,MAAMG,MAAM,AAANA,MAAM,QAAZH,mBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,eAAcnC,WAAW;QAE3BC,uBAAmB5B,mBAAAA,EACjBuB,+BAA+BK,iBAAiB,EAChDmC,WAAWnC,iBAAiB,EAAA,CAC5BkC,iBAAAA,MAAMG,MAAAA,AAAM,MAAA,QAAZH,mBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,eAAclC,iBAAiB;QAEjCC,6BAAyB7B,mBAAAA,EACvBuB,+BAA+BM,uBAAuB,EACtDkC,WAAWlC,uBAAuB,EAAA,CAClCiC,iBAAAA,MAAMG,MAAAA,AAAM,MAAA,QAAZH,mBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,eAAcjC,uBAAuB;QAEvCC,kCAA8B9B,mBAAAA,EAC5BuB,+BAA+BO,4BAA4B,EAC3DiC,WAAWjC,4BAA4B,EAAA,CACvCgC,iBAAAA,MAAMG,MAAAA,AAAM,MAAA,QAAZH,mBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,eAAchC,4BAA4B;QAE5CC,wCAAoC/B,mBAAAA,EAClCuB,+BAA+BQ,kCAAkC,EACjEgC,WAAWhC,kCAAkC,EAAA,CAC7C+B,iBAAAA,MAAMG,MAAAA,AAAM,MAAA,QAAZH,mBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,eAAc/B,kCAAkC;QAElDC,oBAAgBhC,mBAAAA,EACduB,+BAA+BS,cAAc,EAC7C+B,WAAW/B,cAAc,EAAA,CACzB8B,iBAAAA,MAAMG,MAAAA,AAAM,MAAA,QAAZH,mBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,eAAc9B,cAAc;IAEhC;AACF,EAAE"}
1
+ {"version":3,"sources":["../src/components/CommonComponents/Annotations/useChartAnnotationLayer.styles.ts"],"sourcesContent":["'use client';\n\nimport { makeStyles, mergeClasses } from '@griffel/react';\nimport { SlotClassNames } from '@fluentui/react-utilities';\nimport { tokens, typographyStyles } from '@fluentui/react-theme';\nimport { color as d3Color } from 'd3-color';\nimport { ChartAnnotationArrowHead } from '../../../types/ChartAnnotation';\n\nexport interface ChartAnnotationLayerStyles {\n root?: string;\n annotation?: string;\n connectorLayer?: string;\n measurement?: string;\n annotationContent?: string;\n annotationForeignObject?: string;\n annotationContentInteractive?: string;\n annotationForeignObjectInteractive?: string;\n connectorGroup?: string;\n}\n\nexport interface ChartAnnotationLayerStyleProps {\n className?: string;\n styles?: Partial<ChartAnnotationLayerStyles>;\n}\n\nexport const DEFAULT_ANNOTATION_BACKGROUND_OPACITY = 0.8;\nexport const DEFAULT_ANNOTATION_PADDING = '4px 8px';\nexport const DEFAULT_CONNECTOR_START_PADDING = 12;\nexport const DEFAULT_CONNECTOR_END_PADDING = 0;\nexport const DEFAULT_CONNECTOR_STROKE_WIDTH = 2;\nexport const DEFAULT_CONNECTOR_ARROW: ChartAnnotationArrowHead = 'end';\n\nexport const applyOpacityToColor = (\n color: string | undefined,\n opacity: number,\n options?: {\n preserveOriginalOpacity?: boolean;\n },\n): string | undefined => {\n if (!color) {\n return undefined;\n }\n\n const parsed = d3Color(color);\n if (!parsed) {\n return color;\n }\n\n const originalOpacity = typeof parsed.opacity === 'number' ? parsed.opacity : 1;\n const preserveOriginalOpacity = options?.preserveOriginalOpacity ?? true;\n\n if (preserveOriginalOpacity && originalOpacity < 1) {\n return parsed.toString();\n }\n\n parsed.opacity = Math.max(0, Math.min(1, opacity));\n return parsed.toString();\n};\n\n/**\n * Get default annotation background color with opacity applied\n * Updated for v9 - uses tokens instead of theme\n */\nexport const getDefaultAnnotationBackgroundColor = (): string | undefined =>\n applyOpacityToColor(tokens.colorNeutralBackground1, DEFAULT_ANNOTATION_BACKGROUND_OPACITY);\n\n/**\n * Get default connector stroke color\n * Updated for v9 - uses tokens instead of theme\n */\nexport const getDefaultConnectorStrokeColor = (): string => tokens.colorNeutralForeground1;\n\n/**\n * @internal\n */\nexport const chartAnnotationLayerClassNames: SlotClassNames<ChartAnnotationLayerStyles> = {\n root: 'fui-chartAnnotationLayer__root',\n annotation: 'fui-chartAnnotationLayer__annotation',\n connectorLayer: 'fui-chartAnnotationLayer__connectorLayer',\n measurement: 'fui-chartAnnotationLayer__measurement',\n annotationContent: 'fui-chartAnnotationLayer__annotationContent',\n annotationForeignObject: 'fui-chartAnnotationLayer__annotationForeignObject',\n annotationContentInteractive: 'fui-chartAnnotationLayer__annotationContentInteractive',\n annotationForeignObjectInteractive: 'fui-chartAnnotationLayer__annotationForeignObjectInteractive',\n connectorGroup: 'fui-chartAnnotationLayer__connectorGroup',\n};\n\n/**\n * Base Styles\n */\nconst useStyles = makeStyles({\n root: {\n position: 'absolute',\n top: '0',\n left: '0',\n right: '0',\n bottom: '0',\n width: '100%',\n height: '100%',\n pointerEvents: 'none',\n overflow: 'visible',\n zIndex: 1,\n },\n annotation: {\n ...typographyStyles.caption1,\n position: 'absolute',\n pointerEvents: 'none',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n textAlign: 'center',\n color: tokens.colorNeutralForeground1,\n paddingTop: '4px',\n paddingBottom: '4px',\n paddingLeft: '8px',\n paddingRight: '8px',\n borderRadius: tokens.borderRadiusMedium,\n boxShadow: tokens.shadow16,\n border: `1px solid ${tokens.colorNeutralStroke1}`,\n whiteSpace: 'pre-wrap',\n zIndex: 2,\n },\n connectorLayer: {\n position: 'absolute',\n top: '0',\n left: '0',\n width: '100%',\n height: '100%',\n pointerEvents: 'none',\n overflow: 'visible',\n },\n measurement: {\n position: 'absolute',\n visibility: 'hidden',\n pointerEvents: 'none',\n },\n annotationContent: {\n width: '100%',\n height: '100%',\n pointerEvents: 'none',\n },\n annotationForeignObject: {\n overflow: 'visible',\n pointerEvents: 'none',\n },\n annotationContentInteractive: {\n pointerEvents: 'auto',\n },\n annotationForeignObjectInteractive: {\n pointerEvents: 'auto',\n },\n connectorGroup: {\n pointerEvents: 'none',\n },\n});\n\n/**\n * Apply styling to the ChartAnnotationLayer slots based on the state\n */\nexport const useChartAnnotationLayerStyles = (props: ChartAnnotationLayerStyleProps): ChartAnnotationLayerStyles => {\n const baseStyles = useStyles();\n\n return {\n root: mergeClasses(chartAnnotationLayerClassNames.root, baseStyles.root, props.className, props.styles?.root),\n annotation: mergeClasses(\n chartAnnotationLayerClassNames.annotation,\n baseStyles.annotation,\n props.styles?.annotation,\n ),\n connectorLayer: mergeClasses(\n chartAnnotationLayerClassNames.connectorLayer,\n baseStyles.connectorLayer,\n props.styles?.connectorLayer,\n ),\n measurement: mergeClasses(\n chartAnnotationLayerClassNames.measurement,\n baseStyles.measurement,\n props.styles?.measurement,\n ),\n annotationContent: mergeClasses(\n chartAnnotationLayerClassNames.annotationContent,\n baseStyles.annotationContent,\n props.styles?.annotationContent,\n ),\n annotationForeignObject: mergeClasses(\n chartAnnotationLayerClassNames.annotationForeignObject,\n baseStyles.annotationForeignObject,\n props.styles?.annotationForeignObject,\n ),\n annotationContentInteractive: mergeClasses(\n chartAnnotationLayerClassNames.annotationContentInteractive,\n baseStyles.annotationContentInteractive,\n props.styles?.annotationContentInteractive,\n ),\n annotationForeignObjectInteractive: mergeClasses(\n chartAnnotationLayerClassNames.annotationForeignObjectInteractive,\n baseStyles.annotationForeignObjectInteractive,\n props.styles?.annotationForeignObjectInteractive,\n ),\n connectorGroup: mergeClasses(\n chartAnnotationLayerClassNames.connectorGroup,\n baseStyles.connectorGroup,\n props.styles?.connectorGroup,\n ),\n };\n};\n"],"names":["makeStyles","mergeClasses","tokens","typographyStyles","color","d3Color","DEFAULT_ANNOTATION_BACKGROUND_OPACITY","DEFAULT_ANNOTATION_PADDING","DEFAULT_CONNECTOR_START_PADDING","DEFAULT_CONNECTOR_END_PADDING","DEFAULT_CONNECTOR_STROKE_WIDTH","DEFAULT_CONNECTOR_ARROW","applyOpacityToColor","opacity","options","undefined","parsed","originalOpacity","preserveOriginalOpacity","toString","Math","max","min","getDefaultAnnotationBackgroundColor","colorNeutralBackground1","getDefaultConnectorStrokeColor","colorNeutralForeground1","chartAnnotationLayerClassNames","root","annotation","connectorLayer","measurement","annotationContent","annotationForeignObject","annotationContentInteractive","annotationForeignObjectInteractive","connectorGroup","useStyles","position","top","left","right","bottom","width","height","pointerEvents","overflow","zIndex","caption1","display","alignItems","justifyContent","textAlign","paddingTop","paddingBottom","paddingLeft","paddingRight","borderRadius","borderRadiusMedium","boxShadow","shadow16","border","colorNeutralStroke1","whiteSpace","visibility","useChartAnnotationLayerStyles","props","baseStyles","className","styles"],"mappings":"AAAA;;;;;;;;;;;;IAyBaM,qCAAAA;;;8BACAC;;;2BAIAI;eAAAA;;iCAFAF;;;mCADAD;eAAAA;;kCAEAE;;;uBAGAE;eAAAA;;IA2CAe,8BAAAA;;;uCAZAJ;eAAAA;;IAOAE,8BAAAA;;;iCAyFAwC;eAAAA;;;uBA7J4B,iBAAiB;4BAEjB,wBAAwB;yBAChC,WAAW;AAoBrC,8CAA8C,IAAI;AAClD,MAAM1D,6BAA6B,UAAU;AAC7C,wCAAwC,GAAG;AAC3C,MAAME,gCAAgC,EAAE;AACxC,MAAMC,iCAAiC,EAAE;AACzC,gCAA0D,MAAM;AAEhE,4BAA4B,CACjCN,OACAS,SACAC;IAIA,IAAI,CAACV,OAAO;QACV,OAAOW;IACT;IAEA,MAAMC,aAASX,cAAAA,EAAQD;IACvB,IAAI,CAACY,QAAQ;QACX,OAAOZ;IACT;IAEA,MAAMa,kBAAkB,OAAOD,OAAOH,OAAO,KAAK,WAAWG,OAAOH,OAAO,GAAG;QAC9CC;IAAhC,MAAMI,0BAA0BJ,CAAAA,mCAAAA,YAAAA,QAAAA,YAAAA,KAAAA,IAAAA,KAAAA,IAAAA,QAASI,uBAAAA,AAAuB,MAAA,QAAhCJ,qCAAAA,KAAAA,IAAAA,mCAAoC;IAEpE,IAAII,2BAA2BD,kBAAkB,GAAG;QAClD,OAAOD,OAAOG,QAAQ;IACxB;IAEAH,OAAOH,OAAO,GAAGO,KAAKC,GAAG,CAAC,GAAGD,KAAKE,GAAG,CAAC,GAAGT;IACzC,OAAOG,OAAOG,QAAQ;AACxB,EAAE;AAMK,4CAA4C,IACjDP,oBAAoBV,kBAAAA,CAAOsB,uBAAuB,EAAElB,uCAAuC;AAMtF,uCAAuC,IAAcJ,kBAAAA,CAAOwB,uBAAuB,CAAC;AAKpF,uCAAmF;IACxFE,MAAM;IACNC,YAAY;IACZC,gBAAgB;IAChBC,aAAa;IACbC,mBAAmB;IACnBC,yBAAyB;IACzBC,8BAA8B;IAC9BC,oCAAoC;IACpCC,gBAAgB;AAClB,EAAE;AAEF;;CAEC,GACD,MAAMC,gBAAYrC,iBAAAA,EAAW;IAC3B4B,MAAM;QACJU,UAAU;QACVC,KAAK;QACLC,MAAM;QACNC,OAAO;QACPC,QAAQ;QACRC,OAAO;QACPC,QAAQ;QACRC,eAAe;QACfC,UAAU;QACVC,QAAQ;IACV;IACAlB,YAAY;QACV,GAAG1B,4BAAAA,CAAiB6C,QAAQ;QAC5BV,UAAU;QACVO,eAAe;QACfI,SAAS;QACTC,YAAY;QACZC,gBAAgB;QAChBC,WAAW;QACXhD,OAAOF,kBAAAA,CAAOwB,uBAAuB;QACrC2B,YAAY;QACZC,eAAe;QACfC,aAAa;QACbC,cAAc;QACdC,cAAcvD,kBAAAA,CAAOwD,kBAAkB;QACvCC,WAAWzD,kBAAAA,CAAO0D,QAAQ;QAC1BC,QAAQ,CAAC,UAAU,EAAE3D,kBAAAA,CAAO4D,mBAAmB,EAAE;QACjDC,YAAY;QACZhB,QAAQ;IACV;IACAjB,gBAAgB;QACdQ,UAAU;QACVC,KAAK;QACLC,MAAM;QACNG,OAAO;QACPC,QAAQ;QACRC,eAAe;QACfC,UAAU;IACZ;IACAf,aAAa;QACXO,UAAU;QACV0B,YAAY;QACZnB,eAAe;IACjB;IACAb,mBAAmB;QACjBW,OAAO;QACPC,QAAQ;QACRC,eAAe;IACjB;IACAZ,yBAAyB;QACvBa,UAAU;QACVD,eAAe;IACjB;IACAX,8BAA8B;QAC5BW,eAAe;IACjB;IACAV,oCAAoC;QAClCU,eAAe;IACjB;IACAT,gBAAgB;QACdS,eAAe;IACjB;AACF;AAKO,sCAAsC,CAACqB;QAIgDA,eAIxFA,gBAKAA,gBAKAA,gBAKAA,gBAKAA,gBAKAA,gBAKAA,gBAKAA;IA1CJ,MAAMC,aAAa9B;IAEnB,OAAO;QACLT,UAAM3B,mBAAAA,EAAa0B,+BAA+BC,IAAI,EAAEuC,WAAWvC,IAAI,EAAEsC,MAAME,SAAS,EAAA,AAAEF,iBAAAA,MAAMG,MAAAA,AAAM,MAAA,QAAZH,kBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,cAActC,IAAI;QAC5GC,gBAAY5B,mBAAAA,EACV0B,+BAA+BE,UAAU,EACzCsC,WAAWtC,UAAU,EAAA,CACrBqC,iBAAAA,MAAMG,MAAAA,AAAM,MAAA,QAAZH,mBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,eAAcrC,UAAU;QAE1BC,oBAAgB7B,mBAAAA,EACd0B,+BAA+BG,cAAc,EAC7CqC,WAAWrC,cAAc,EAAA,AACzBoC,kBAAAA,MAAMG,MAAAA,AAAM,MAAA,QAAZH,mBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,eAAcpC,cAAc;QAE9BC,iBAAa9B,mBAAAA,EACX0B,+BAA+BI,WAAW,EAC1CoC,WAAWpC,WAAW,EAAA,CACtBmC,iBAAAA,MAAMG,MAAAA,AAAM,MAAA,QAAZH,mBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,eAAcnC,WAAW;QAE3BC,uBAAmB/B,mBAAAA,EACjB0B,+BAA+BK,iBAAiB,EAChDmC,WAAWnC,iBAAiB,EAAA,CAC5BkC,iBAAAA,MAAMG,MAAAA,AAAM,MAAA,QAAZH,mBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,eAAclC,iBAAiB;QAEjCC,6BAAyBhC,mBAAAA,EACvB0B,+BAA+BM,uBAAuB,EACtDkC,WAAWlC,uBAAuB,EAAA,CAClCiC,iBAAAA,MAAMG,MAAAA,AAAM,MAAA,QAAZH,mBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,eAAcjC,uBAAuB;QAEvCC,kCAA8BjC,mBAAAA,EAC5B0B,+BAA+BO,4BAA4B,EAC3DiC,WAAWjC,4BAA4B,EAAA,CACvCgC,iBAAAA,MAAMG,MAAAA,AAAM,MAAA,QAAZH,mBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,eAAchC,4BAA4B;QAE5CC,oCAAoClC,uBAAAA,EAClC0B,+BAA+BQ,kCAAkC,EACjEgC,WAAWhC,kCAAkC,EAAA,CAC7C+B,iBAAAA,MAAMG,MAAAA,AAAM,MAAA,QAAZH,mBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,eAAc/B,kCAAkC;QAElDC,oBAAgBnC,mBAAAA,EACd0B,+BAA+BS,cAAc,EAC7C+B,WAAW/B,cAAc,EAAA,CACzB8B,iBAAAA,MAAMG,MAAAA,AAAM,MAAA,QAAZH,mBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,eAAc9B,cAAc;IAEhC;AACF,EAAE"}
@@ -376,6 +376,12 @@ const CartesianChart = /*#__PURE__*/ _react.forwardRef(({ hideTickOverlap = true
376
376
  }
377
377
  return minChartWidth;
378
378
  }
379
+ function _getChartDescription() {
380
+ return (props.chartTitle || 'Chart. ') + _getAxisTitle('X', props.xAxisTitle, props.xAxisType) + _getAxisTitle('Y', props.yAxisTitle, props.yAxisType || _index.YAxisType.NumericAxis) + (props.secondaryYScaleOptions ? _getAxisTitle('secondary Y', props.secondaryYAxistitle, _index.YAxisType.NumericAxis) : '');
381
+ }
382
+ function _getAxisTitle(axisLabel, axisTitle, axisType) {
383
+ return `The ${axisLabel} axis displays ` + (axisTitle || (axisType === _index.XAxisTypes.StringAxis || axisType === _index.YAxisType.StringAxis ? 'categories' : axisType === _index.XAxisTypes.DateAxis || axisType === _index.YAxisType.DateAxis ? 'time' : 'values')) + '. ';
384
+ }
379
385
  function _calcMaxLabelWidthWithTransform(x) {
380
386
  // Case: rotated labels
381
387
  if (!props.wrapXAxisLables && props.rotateXAxisLables && props.xAxisType === _index.XAxisTypes.StringAxis) {
@@ -537,7 +543,8 @@ const CartesianChart = /*#__PURE__*/ _react.forwardRef(({ hideTickOverlap = true
537
543
  }, _isFirstRender.current, /*#__PURE__*/ _react.createElement("svg", {
538
544
  width: svgDimensions.width,
539
545
  height: svgDimensions.height,
540
- "aria-label": props.chartTitle,
546
+ role: "region",
547
+ "aria-label": _getChartDescription(),
541
548
  style: {
542
549
  display: 'block'
543
550
  },