@servicetitan/marketing-ui 5.9.0 → 5.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. package/dist/components/ads/ads-stat.js +21 -10
  2. package/dist/components/ads/ads-stat.js.map +1 -1
  3. package/dist/components/charts/funnel-chart/components/funnel-chart.js +118 -6
  4. package/dist/components/charts/funnel-chart/components/funnel-chart.js.map +1 -1
  5. package/dist/components/charts/funnel-chart/components/funnel-chart.module.less.d.ts +9 -0
  6. package/dist/components/charts/funnel-chart/components/funnel-svg.js +62 -12
  7. package/dist/components/charts/funnel-chart/components/funnel-svg.js.map +1 -1
  8. package/dist/components/charts/funnel-chart/index.js +1 -0
  9. package/dist/components/charts/funnel-chart/index.js.map +1 -1
  10. package/dist/components/charts/funnel-chart/utils/const.js +1 -0
  11. package/dist/components/charts/funnel-chart/utils/const.js.map +1 -1
  12. package/dist/components/charts/funnel-chart/utils/interface.js +2 -1
  13. package/dist/components/charts/funnel-chart/utils/interface.js.map +1 -1
  14. package/dist/components/charts/line-chart/components/body.js +105 -16
  15. package/dist/components/charts/line-chart/components/body.js.map +1 -1
  16. package/dist/components/charts/line-chart/components/body.module.less.d.ts +4 -0
  17. package/dist/components/charts/line-chart/components/container.js +12 -4
  18. package/dist/components/charts/line-chart/components/container.js.map +1 -1
  19. package/dist/components/charts/line-chart/components/hover-popover.js +56 -13
  20. package/dist/components/charts/line-chart/components/hover-popover.js.map +1 -1
  21. package/dist/components/charts/line-chart/components/hover-popover.module.less.d.ts +5 -0
  22. package/dist/components/charts/line-chart/components/sidebar.js +35 -5
  23. package/dist/components/charts/line-chart/components/sidebar.js.map +1 -1
  24. package/dist/components/charts/line-chart/components/sidebar.module.less.d.ts +13 -0
  25. package/dist/components/charts/line-chart/components/stuff.js +73 -32
  26. package/dist/components/charts/line-chart/components/stuff.js.map +1 -1
  27. package/dist/components/charts/line-chart/components/stuff.module.less.d.ts +6 -0
  28. package/dist/components/charts/line-chart/components/svg-bars.js +58 -26
  29. package/dist/components/charts/line-chart/components/svg-bars.js.map +1 -1
  30. package/dist/components/charts/line-chart/components/svg-body.js +52 -11
  31. package/dist/components/charts/line-chart/components/svg-body.js.map +1 -1
  32. package/dist/components/charts/line-chart/components/svg-lines.js +46 -27
  33. package/dist/components/charts/line-chart/components/svg-lines.js.map +1 -1
  34. package/dist/components/charts/line-chart/components/svg.module.less.d.ts +5 -0
  35. package/dist/components/charts/line-chart/index.js +1 -0
  36. package/dist/components/charts/line-chart/index.js.map +1 -1
  37. package/dist/components/charts/line-chart/stores/line-chart.store.js +98 -137
  38. package/dist/components/charts/line-chart/stores/line-chart.store.js.map +1 -1
  39. package/dist/components/charts/line-chart/stores/svg.store.js +66 -108
  40. package/dist/components/charts/line-chart/stores/svg.store.js.map +1 -1
  41. package/dist/components/charts/line-chart/utils/const.js +8 -7
  42. package/dist/components/charts/line-chart/utils/const.js.map +1 -1
  43. package/dist/components/charts/line-chart/utils/formatters.js +13 -11
  44. package/dist/components/charts/line-chart/utils/formatters.js.map +1 -1
  45. package/dist/components/charts/line-chart/utils/interfaces.js +2 -1
  46. package/dist/components/charts/line-chart/utils/interfaces.js.map +1 -1
  47. package/dist/components/charts/line-chart/utils/internal-interfaces.js +2 -1
  48. package/dist/components/charts/line-chart/utils/internal-interfaces.js.map +1 -1
  49. package/dist/components/charts/line-chart/utils/key.js +2 -1
  50. package/dist/components/charts/line-chart/utils/key.js.map +1 -1
  51. package/dist/components/charts/line-chart/utils/labels.js +50 -46
  52. package/dist/components/charts/line-chart/utils/labels.js.map +1 -1
  53. package/dist/components/charts/pie-chart/components/pie-chart.js +60 -6
  54. package/dist/components/charts/pie-chart/components/pie-chart.js.map +1 -1
  55. package/dist/components/charts/pie-chart/components/pie-chart.module.less.d.ts +3 -0
  56. package/dist/components/charts/pie-chart/components/pie.js +176 -39
  57. package/dist/components/charts/pie-chart/components/pie.js.map +1 -1
  58. package/dist/components/charts/pie-chart/index.js +2 -0
  59. package/dist/components/charts/pie-chart/index.js.map +1 -1
  60. package/dist/components/charts/pie-chart/utils/const.js +55 -39
  61. package/dist/components/charts/pie-chart/utils/const.js.map +1 -1
  62. package/dist/components/charts/pie-chart/utils/interface.js +2 -1
  63. package/dist/components/charts/pie-chart/utils/interface.js.map +1 -1
  64. package/dist/components/image-cropper/image-cropper.js +74 -88
  65. package/dist/components/image-cropper/image-cropper.js.map +1 -1
  66. package/dist/components/stat/stat-card.js +68 -22
  67. package/dist/components/stat/stat-card.js.map +1 -1
  68. package/dist/components/stat/stat-card.module.less.d.ts +5 -0
  69. package/dist/components/stat/stat-extended-card.js +76 -4
  70. package/dist/components/stat/stat-extended-card.js.map +1 -1
  71. package/dist/components/ui/action-button/action-button.js +33 -7
  72. package/dist/components/ui/action-button/action-button.js.map +1 -1
  73. package/dist/components/ui/action-button/action-button.module.less.d.ts +9 -0
  74. package/dist/components/ui/action-button/index.js +1 -0
  75. package/dist/components/ui/action-button/index.js.map +1 -1
  76. package/dist/components/ui/centered-spinner/centered-spinner.js +20 -2
  77. package/dist/components/ui/centered-spinner/centered-spinner.js.map +1 -1
  78. package/dist/components/ui/date-range-picker/date-range-picker.js +71 -35
  79. package/dist/components/ui/date-range-picker/date-range-picker.js.map +1 -1
  80. package/dist/components/ui/date-range-picker/date-range-picker.module.less.d.ts +4 -0
  81. package/dist/components/ui/disabled-button.js +12 -3
  82. package/dist/components/ui/disabled-button.js.map +1 -1
  83. package/dist/components/ui/label-with-hint/label-with-hint.js +23 -1
  84. package/dist/components/ui/label-with-hint/label-with-hint.js.map +1 -1
  85. package/dist/components/ui/line-text/index.js +1 -0
  86. package/dist/components/ui/line-text/index.js.map +1 -1
  87. package/dist/components/ui/line-text/line-text.js +71 -12
  88. package/dist/components/ui/line-text/line-text.js.map +1 -1
  89. package/dist/components/ui/line-text/line-text.module.less.d.ts +6 -0
  90. package/dist/components/ui/title-popover/index.js +1 -0
  91. package/dist/components/ui/title-popover/index.js.map +1 -1
  92. package/dist/components/ui/title-popover/title-popover.js +78 -69
  93. package/dist/components/ui/title-popover/title-popover.js.map +1 -1
  94. package/dist/components/ui/title-popover/title-popover.module.less.d.ts +3 -0
  95. package/dist/index.js +3 -1
  96. package/dist/index.js.map +1 -1
  97. package/dist/utils/ads-texts.js +2 -1
  98. package/dist/utils/ads-texts.js.map +1 -1
  99. package/dist/utils/date/date-range-picker-options.js +90 -68
  100. package/dist/utils/date/date-range-picker-options.js.map +1 -1
  101. package/dist/utils/date/date-range-picker-state.js +42 -43
  102. package/dist/utils/date/date-range-picker-state.js.map +1 -1
  103. package/dist/utils/date/date-tenant.js +4 -6
  104. package/dist/utils/date/date-tenant.js.map +1 -1
  105. package/dist/utils/date/date.js +5 -9
  106. package/dist/utils/date/date.js.map +1 -1
  107. package/dist/utils/date/index.js +1 -0
  108. package/dist/utils/date/index.js.map +1 -1
  109. package/dist/utils/format-big-numbers.js +11 -6
  110. package/dist/utils/format-big-numbers.js.map +1 -1
  111. package/dist/utils/formatters.js +8 -7
  112. package/dist/utils/formatters.js.map +1 -1
  113. package/dist/utils/helpers.js +9 -12
  114. package/dist/utils/helpers.js.map +1 -1
  115. package/dist/utils/marketing-parner-handlers.js +9 -12
  116. package/dist/utils/marketing-parner-handlers.js.map +1 -1
  117. package/dist/utils/string-case.js +1 -0
  118. package/dist/utils/string-case.js.map +1 -1
  119. package/dist/utils/use-client-rect.js +19 -19
  120. package/dist/utils/use-client-rect.js.map +1 -1
  121. package/dist/utils/use-target-range-store.js +7 -6
  122. package/dist/utils/use-target-range-store.js.map +1 -1
  123. package/package.json +11 -11
  124. package/dist/components/charts/funnel-chart/funnel-chart.stories.js +0 -76
  125. package/dist/components/charts/funnel-chart/funnel-chart.stories.js.map +0 -1
  126. package/dist/components/charts/line-chart/line-chart.stories.js +0 -225
  127. package/dist/components/charts/line-chart/line-chart.stories.js.map +0 -1
  128. package/dist/components/charts/pie-chart/pie-chart.stories.js +0 -22
  129. package/dist/components/charts/pie-chart/pie-chart.stories.js.map +0 -1
  130. package/dist/components/image-cropper/image-cropper.stories.js +0 -39
  131. package/dist/components/image-cropper/image-cropper.stories.js.map +0 -1
  132. package/dist/components/stat/stat-cards.stories.js +0 -16
  133. package/dist/components/stat/stat-cards.stories.js.map +0 -1
  134. package/dist/components/stat/stat-extended-card.stories.js +0 -12
  135. package/dist/components/stat/stat-extended-card.stories.js.map +0 -1
  136. package/dist/components/ui/action-button/action-button.stories.js +0 -11
  137. package/dist/components/ui/action-button/action-button.stories.js.map +0 -1
  138. package/dist/components/ui/centered-spinner/centered-spinner.stories.js +0 -12
  139. package/dist/components/ui/centered-spinner/centered-spinner.stories.js.map +0 -1
  140. package/dist/components/ui/date-range-picker/date-range-picker.stories.js +0 -18
  141. package/dist/components/ui/date-range-picker/date-range-picker.stories.js.map +0 -1
  142. package/dist/components/ui/label-with-hint/label-with-hint.stories.js +0 -12
  143. package/dist/components/ui/label-with-hint/label-with-hint.stories.js.map +0 -1
  144. package/dist/components/ui/line-text/line-text-body.stories.js +0 -11
  145. package/dist/components/ui/line-text/line-text-body.stories.js.map +0 -1
  146. package/dist/components/ui/line-text/line-text-head.stories.js +0 -11
  147. package/dist/components/ui/line-text/line-text-head.stories.js.map +0 -1
  148. package/dist/components/ui/title-popover/title-popover.stories.js +0 -17
  149. package/dist/components/ui/title-popover/title-popover.stories.js.map +0 -1
  150. package/dist/utils/__tests__/format-big-numbers.test.js +0 -16
  151. package/dist/utils/__tests__/format-big-numbers.test.js.map +0 -1
  152. package/dist/utils/__tests__/formatters.test.js +0 -45
  153. package/dist/utils/__tests__/formatters.test.js.map +0 -1
  154. package/dist/utils/__tests__/helpers.test.js +0 -31
  155. package/dist/utils/__tests__/helpers.test.js.map +0 -1
  156. package/dist/utils/__tests__/string-case.test.js +0 -20
  157. package/dist/utils/__tests__/string-case.test.js.map +0 -1
  158. package/dist/utils/date/__mocks__/date-mock.js +0 -19
  159. package/dist/utils/date/__mocks__/date-mock.js.map +0 -1
  160. package/dist/utils/date/__tests__/date-range-picker.test.js +0 -93
  161. package/dist/utils/date/__tests__/date-range-picker.test.js.map +0 -1
  162. package/dist/utils/date/__tests__/date-tenant.test.js +0 -29
  163. package/dist/utils/date/__tests__/date-tenant.test.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"svg-bars.js","sourceRoot":"","sources":["../../../../../src/components/charts/line-chart/components/svg-bars.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/components/charts/line-chart/components/svg-bars.tsx"],"sourcesContent":["import { FC } from 'react';\nimport { observer } from 'mobx-react';\nimport { useDependencies } from '@servicetitan/react-ioc';\nimport { ChartMetric } from '../utils/internal-interfaces';\nimport { keyVal } from '../utils/key';\nimport { SvgStore } from '../stores/svg.store';\n\ninterface SvgBarsProps {\n metrics: ChartMetric[];\n isStackedBarChart?: boolean;\n isGroupedBarChart?: boolean;\n}\n\nexport const SvgBars: FC<SvgBarsProps> = observer(\n ({ metrics, isStackedBarChart, isGroupedBarChart }) => {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const [store] = useDependencies(SvgStore);\n const { fpx, fpy, barWidth, length } = store;\n const barWidthHalf = barWidth / 2;\n const paths = [];\n\n for (let i = 0; i < length; i++) {\n const x = store.periodX(i);\n const values = metrics.map(m => ({\n id: m.id,\n color: m.valuesOpts?.[i]?.color ?? m.color,\n opacity: m.opacity,\n val: store.periodY(m, i),\n }));\n\n if (isStackedBarChart) {\n let stackedBarHeight = values.reduce((sum, curr) => sum + curr.val, 0);\n\n for (const value of values) {\n paths.push(\n <rect\n key={keyVal(value.id, i)}\n x={fpx(x - barWidthHalf)}\n y={fpy(stackedBarHeight)}\n width={fpx(barWidth)}\n height={fpx(value.val)}\n fill={value.color}\n />\n );\n stackedBarHeight -= value.val;\n }\n } else if (isGroupedBarChart) {\n for (let j = 0; j < values.length; j++) {\n const groupedBarX = (j * barWidth) / values.length;\n const value = values[j];\n\n paths.push(\n <rect\n key={keyVal(value.id, i)}\n x={x + groupedBarX - barWidthHalf}\n y={fpy(value.val)}\n width={barWidth / values.length - 0.1}\n height={fpx(value.val)}\n fill={value.color}\n opacity={value.opacity}\n />\n );\n }\n } else {\n values.sort((a, b) => b.val - a.val);\n for (const value of values) {\n paths.push(\n <rect\n key={keyVal(value.id, i)}\n x={fpx(x - barWidthHalf)}\n y={fpy(value.val)}\n width={fpx(barWidth)}\n height={fpx(value.val)}\n fill={value.color}\n />\n );\n }\n }\n }\n\n return <g>{paths}</g>;\n }\n);\n\ninterface SvgBarsHoverProps {\n onHover(ind: number): void;\n onLeave(ind: number): void;\n}\n\nexport const SvgBarsHover: FC<SvgBarsHoverProps> = observer(({ onHover, onLeave }) => {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const [store] = useDependencies(SvgStore);\n const { fpx, fpy, barWidth, length } = store;\n const barWidthHalf = barWidth / 2;\n const paths = [];\n\n for (let i = 0; i < length; i++) {\n const x = store.periodX(i);\n\n paths.push(\n <rect\n key={keyVal('_', i)}\n onMouseEnter={() => onHover(i)}\n onMouseLeave={() => onLeave(i)}\n x={fpx(x - barWidthHalf)}\n y={fpy(100)}\n width={fpx(barWidth)}\n height=\"100%\"\n fill=\"white\"\n fillOpacity=\"0\"\n />\n );\n }\n\n return <g>{paths}</g>;\n});\n"],"names":["observer","useDependencies","keyVal","SvgStore","SvgBars","metrics","isStackedBarChart","isGroupedBarChart","store","fpx","fpy","barWidth","length","barWidthHalf","paths","i","x","periodX","values","map","m","id","color","valuesOpts","opacity","val","periodY","stackedBarHeight","reduce","sum","curr","value","push","rect","y","width","height","fill","j","groupedBarX","sort","a","b","g","SvgBarsHover","onHover","onLeave","onMouseEnter","onMouseLeave","fillOpacity"],"mappings":"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"}
@@ -7,21 +7,62 @@ import { keyVal } from '../utils/key';
7
7
  import { SvgBars, SvgBarsHover } from './svg-bars';
8
8
  import { SvgLines } from './svg-lines';
9
9
  import * as Styles from './svg.module.less';
10
- const SvgGrid = () => {
10
+ const SvgGrid = ()=>{
11
11
  const lines = [];
12
- for (let i = 1; i <= 10; i += 1) {
12
+ for(let i = 1; i <= 10; i += 1){
13
13
  const y = `${9.09 * i}%`;
14
- lines.push(_jsx("line", { className: Styles.line, x1: "0", y1: y, x2: "100%", y2: y, stroke: tokens.colorNeutral60, strokeWidth: "1" }, y));
14
+ lines.push(/*#__PURE__*/ _jsx("line", {
15
+ className: Styles.line,
16
+ x1: "0",
17
+ y1: y,
18
+ x2: "100%",
19
+ y2: y,
20
+ stroke: tokens.colorNeutral60,
21
+ strokeWidth: "1"
22
+ }, y));
15
23
  }
16
- return _jsx("g", { children: lines });
24
+ return /*#__PURE__*/ _jsx("g", {
25
+ children: lines
26
+ });
17
27
  };
18
- export const SvgBody = observer(({ horizontalGrid, metrics }) => {
28
+ export const SvgBody = observer(({ horizontalGrid, metrics })=>{
19
29
  const [{ key }] = useDependencies(SvgStore);
20
- const barMetrics = metrics.filter(m => m.type === 'bar');
21
- const stackedBarMetrics = metrics.filter(m => m.type === 'stacked-bar');
22
- const groupedBarMetrics = metrics.filter(m => m.type === 'grouped-bar');
23
- const lineMetrics = metrics.filter(m => m.type === 'line');
24
- return (_jsxs("svg", { className: Styles.svgBody, viewBox: "0 0 100 100", preserveAspectRatio: "none", vectorEffect: "non-scaling-stroke", children: [horizontalGrid && _jsx(SvgGrid, {}), !!barMetrics.length && _jsx(SvgBars, { metrics: barMetrics }, keyVal('bars', key)), !!stackedBarMetrics.length && (_jsx(SvgBars, { metrics: stackedBarMetrics, isStackedBarChart: true }, keyVal('stacked-bars', key))), !!groupedBarMetrics.length && (_jsx(SvgBars, { metrics: groupedBarMetrics, isGroupedBarChart: true }, keyVal('grouped-bars', key))), !!lineMetrics.length && _jsx(SvgLines, { metrics: lineMetrics }, keyVal('lines', key))] }));
30
+ const barMetrics = metrics.filter((m)=>m.type === 'bar');
31
+ const stackedBarMetrics = metrics.filter((m)=>m.type === 'stacked-bar');
32
+ const groupedBarMetrics = metrics.filter((m)=>m.type === 'grouped-bar');
33
+ const lineMetrics = metrics.filter((m)=>m.type === 'line');
34
+ return /*#__PURE__*/ _jsxs("svg", {
35
+ className: Styles.svgBody,
36
+ viewBox: "0 0 100 100",
37
+ preserveAspectRatio: "none",
38
+ vectorEffect: "non-scaling-stroke",
39
+ children: [
40
+ horizontalGrid && /*#__PURE__*/ _jsx(SvgGrid, {}),
41
+ !!barMetrics.length && /*#__PURE__*/ _jsx(SvgBars, {
42
+ metrics: barMetrics
43
+ }, keyVal('bars', key)),
44
+ !!stackedBarMetrics.length && /*#__PURE__*/ _jsx(SvgBars, {
45
+ metrics: stackedBarMetrics,
46
+ isStackedBarChart: true
47
+ }, keyVal('stacked-bars', key)),
48
+ !!groupedBarMetrics.length && /*#__PURE__*/ _jsx(SvgBars, {
49
+ metrics: groupedBarMetrics,
50
+ isGroupedBarChart: true
51
+ }, keyVal('grouped-bars', key)),
52
+ !!lineMetrics.length && /*#__PURE__*/ _jsx(SvgLines, {
53
+ metrics: lineMetrics
54
+ }, keyVal('lines', key))
55
+ ]
56
+ });
25
57
  });
26
- export const SvgBodyHover = ({ onValueHover, onValueLeave }) => (_jsx("svg", { className: Styles.svgHover, viewBox: "0 0 100 100", preserveAspectRatio: "none", children: _jsx(SvgBarsHover, { onHover: onValueHover, onLeave: onValueLeave }) }));
58
+ export const SvgBodyHover = ({ onValueHover, onValueLeave })=>/*#__PURE__*/ _jsx("svg", {
59
+ className: Styles.svgHover,
60
+ viewBox: "0 0 100 100",
61
+ preserveAspectRatio: "none",
62
+ children: /*#__PURE__*/ _jsx(SvgBarsHover, {
63
+ onHover: onValueHover,
64
+ onLeave: onValueLeave
65
+ })
66
+ });
67
+
27
68
  //# sourceMappingURL=svg-body.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"svg-body.js","sourceRoot":"","sources":["../../../../../src/components/charts/line-chart/components/svg-body.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/components/charts/line-chart/components/svg-body.tsx"],"sourcesContent":["import { FC } from 'react';\nimport { observer } from 'mobx-react';\nimport { tokens } from '@servicetitan/tokens/core';\nimport { useDependencies } from '@servicetitan/react-ioc';\n\nimport { SvgStore } from '../stores/svg.store';\nimport { ChartMetric } from '../utils/internal-interfaces';\nimport { keyVal } from '../utils/key';\n\nimport { SvgBars, SvgBarsHover } from './svg-bars';\nimport { SvgLines } from './svg-lines';\nimport * as Styles from './svg.module.less';\n\nconst SvgGrid: FC = () => {\n const lines = [];\n\n for (let i = 1; i <= 10; i += 1) {\n const y = `${9.09 * i}%`;\n\n lines.push(\n <line\n className={Styles.line}\n key={y}\n x1=\"0\"\n y1={y}\n x2=\"100%\"\n y2={y}\n stroke={tokens.colorNeutral60}\n strokeWidth=\"1\"\n />\n );\n }\n\n return <g>{lines}</g>;\n};\n\ninterface SvgBodyProps {\n horizontalGrid: boolean;\n metrics: ChartMetric[];\n}\n\nexport const SvgBody: FC<SvgBodyProps> = observer(({ horizontalGrid, metrics }) => {\n const [{ key }] = useDependencies(SvgStore);\n const barMetrics = metrics.filter(m => m.type === 'bar');\n const stackedBarMetrics = metrics.filter(m => m.type === 'stacked-bar');\n const groupedBarMetrics = metrics.filter(m => m.type === 'grouped-bar');\n const lineMetrics = metrics.filter(m => m.type === 'line');\n\n return (\n <svg\n className={Styles.svgBody}\n viewBox=\"0 0 100 100\"\n preserveAspectRatio=\"none\"\n vectorEffect=\"non-scaling-stroke\"\n >\n {horizontalGrid && <SvgGrid />}\n {!!barMetrics.length && <SvgBars key={keyVal('bars', key)} metrics={barMetrics} />}\n {!!stackedBarMetrics.length && (\n <SvgBars\n key={keyVal('stacked-bars', key)}\n metrics={stackedBarMetrics}\n isStackedBarChart\n />\n )}\n {!!groupedBarMetrics.length && (\n <SvgBars\n key={keyVal('grouped-bars', key)}\n metrics={groupedBarMetrics}\n isGroupedBarChart\n />\n )}\n {!!lineMetrics.length && <SvgLines key={keyVal('lines', key)} metrics={lineMetrics} />}\n </svg>\n );\n});\n\ninterface SvgBodyHoverProps {\n onValueHover(ind: number): void;\n onValueLeave(ind: number): void;\n}\n\nexport const SvgBodyHover: FC<SvgBodyHoverProps> = ({ onValueHover, onValueLeave }) => (\n <svg className={Styles.svgHover} viewBox=\"0 0 100 100\" preserveAspectRatio=\"none\">\n <SvgBarsHover onHover={onValueHover} onLeave={onValueLeave} />\n </svg>\n);\n"],"names":["observer","tokens","useDependencies","SvgStore","keyVal","SvgBars","SvgBarsHover","SvgLines","Styles","SvgGrid","lines","i","y","push","line","className","x1","y1","x2","y2","stroke","colorNeutral60","strokeWidth","g","SvgBody","horizontalGrid","metrics","key","barMetrics","filter","m","type","stackedBarMetrics","groupedBarMetrics","lineMetrics","svg","svgBody","viewBox","preserveAspectRatio","vectorEffect","length","isStackedBarChart","isGroupedBarChart","SvgBodyHover","onValueHover","onValueLeave","svgHover","onHover","onLeave"],"mappings":";AACA,SAASA,QAAQ,QAAQ,aAAa;AACtC,SAASC,MAAM,QAAQ,4BAA4B;AACnD,SAASC,eAAe,QAAQ,0BAA0B;AAE1D,SAASC,QAAQ,QAAQ,sBAAsB;AAE/C,SAASC,MAAM,QAAQ,eAAe;AAEtC,SAASC,OAAO,EAAEC,YAAY,QAAQ,aAAa;AACnD,SAASC,QAAQ,QAAQ,cAAc;AACvC,YAAYC,YAAY,oBAAoB;AAE5C,MAAMC,UAAc;IAChB,MAAMC,QAAQ,EAAE;IAEhB,IAAK,IAAIC,IAAI,GAAGA,KAAK,IAAIA,KAAK,EAAG;QAC7B,MAAMC,IAAI,GAAG,OAAOD,EAAE,CAAC,CAAC;QAExBD,MAAMG,IAAI,eACN,KAACC;YACGC,WAAWP,OAAOM,IAAI;YAEtBE,IAAG;YACHC,IAAIL;YACJM,IAAG;YACHC,IAAIP;YACJQ,QAAQnB,OAAOoB,cAAc;YAC7BC,aAAY;WANPV;IASjB;IAEA,qBAAO,KAACW;kBAAGb;;AACf;AAOA,OAAO,MAAMc,UAA4BxB,SAAS,CAAC,EAAEyB,cAAc,EAAEC,OAAO,EAAE;IAC1E,MAAM,CAAC,EAAEC,GAAG,EAAE,CAAC,GAAGzB,gBAAgBC;IAClC,MAAMyB,aAAaF,QAAQG,MAAM,CAACC,CAAAA,IAAKA,EAAEC,IAAI,KAAK;IAClD,MAAMC,oBAAoBN,QAAQG,MAAM,CAACC,CAAAA,IAAKA,EAAEC,IAAI,KAAK;IACzD,MAAME,oBAAoBP,QAAQG,MAAM,CAACC,CAAAA,IAAKA,EAAEC,IAAI,KAAK;IACzD,MAAMG,cAAcR,QAAQG,MAAM,CAACC,CAAAA,IAAKA,EAAEC,IAAI,KAAK;IAEnD,qBACI,MAACI;QACGpB,WAAWP,OAAO4B,OAAO;QACzBC,SAAQ;QACRC,qBAAoB;QACpBC,cAAa;;YAEZd,gCAAkB,KAAChB;YACnB,CAAC,CAACmB,WAAWY,MAAM,kBAAI,KAACnC;gBAAkCqB,SAASE;eAA9BxB,OAAO,QAAQuB;YACpD,CAAC,CAACK,kBAAkBQ,MAAM,kBACvB,KAACnC;gBAEGqB,SAASM;gBACTS,iBAAiB;eAFZrC,OAAO,gBAAgBuB;YAKnC,CAAC,CAACM,kBAAkBO,MAAM,kBACvB,KAACnC;gBAEGqB,SAASO;gBACTS,iBAAiB;eAFZtC,OAAO,gBAAgBuB;YAKnC,CAAC,CAACO,YAAYM,MAAM,kBAAI,KAACjC;gBAAoCmB,SAASQ;eAA/B9B,OAAO,SAASuB;;;AAGpE,GAAG;AAOH,OAAO,MAAMgB,eAAsC,CAAC,EAAEC,YAAY,EAAEC,YAAY,EAAE,iBAC9E,KAACV;QAAIpB,WAAWP,OAAOsC,QAAQ;QAAET,SAAQ;QAAcC,qBAAoB;kBACvE,cAAA,KAAChC;YAAayC,SAASH;YAAcI,SAASH;;OAEpD"}
@@ -4,33 +4,52 @@ import { observer } from 'mobx-react';
4
4
  import { useDependencies } from '@servicetitan/react-ioc';
5
5
  import { SvgStore } from '../stores/svg.store';
6
6
  import * as Styles from './svg.module.less';
7
- const SvgLine = ({ color, points, dashed }) => (_jsx("path", { className: Styles.line, d: points.map(([px, py], ind) => (ind === 0 ? 'M' : 'L') + `${px} ${py}`).join(' '), fill: "transparent", stroke: color, strokeWidth: "3", strokeDasharray: dashed ? '5,5' : undefined }));
8
- export const SvgLines = observer(({ metrics }) => {
7
+ const SvgLine = ({ color, points, dashed })=>/*#__PURE__*/ _jsx("path", {
8
+ className: Styles.line,
9
+ d: points.map(([px, py], ind)=>(ind === 0 ? 'M' : 'L') + `${px} ${py}`).join(' '),
10
+ fill: "transparent",
11
+ stroke: color,
12
+ strokeWidth: "3",
13
+ strokeDasharray: dashed ? '5,5' : undefined
14
+ });
15
+ export const SvgLines = observer(({ metrics })=>{
9
16
  const [store] = useDependencies(SvgStore);
10
- const lines = useMemo(() => metrics.map(m => {
11
- var _a, _b;
12
- const points = m.values.map((val, ind) => [
13
- store.periodX(ind),
14
- store.periodY(m, ind),
15
- ]);
16
- if (store.xOffset && points.length > 1) {
17
- points[0][1] =
18
- (points[1][0] * points[0][1] - points[0][0] * points[1][1]) /
19
- (points[1][0] - points[0][0]);
20
- points[0][0] = 0;
21
- const l = points.length - 1;
22
- const x1 = 100 - points[l - 1][0];
23
- const x2 = 100 - points[l][0];
24
- points[l][1] = (x1 * points[l][1] - x2 * points[l - 1][1]) / (x1 - x2);
25
- points[l][0] = 100;
26
- }
27
- return {
28
- id: m.id,
29
- color: m.color,
30
- points: points.map(([x, y]) => [store.fpx(x), store.fpy(y)]),
31
- dashed: (_b = (_a = m.opts) === null || _a === void 0 ? void 0 : _a.dashed) !== null && _b !== void 0 ? _b : false,
32
- };
33
- }), [store, metrics]);
34
- return (_jsx("g", { children: lines.map(({ id, color, points, dashed }) => (_jsx(SvgLine, { color: color, points: points, dashed: dashed }, id))) }));
17
+ const lines = useMemo(()=>metrics.map((m)=>{
18
+ var _m_opts;
19
+ const points = m.values.map((val, ind)=>[
20
+ store.periodX(ind),
21
+ store.periodY(m, ind)
22
+ ]);
23
+ if (store.xOffset && points.length > 1) {
24
+ points[0][1] = (points[1][0] * points[0][1] - points[0][0] * points[1][1]) / (points[1][0] - points[0][0]);
25
+ points[0][0] = 0;
26
+ const l = points.length - 1;
27
+ const x1 = 100 - points[l - 1][0];
28
+ const x2 = 100 - points[l][0];
29
+ points[l][1] = (x1 * points[l][1] - x2 * points[l - 1][1]) / (x1 - x2);
30
+ points[l][0] = 100;
31
+ }
32
+ var _m_opts_dashed;
33
+ return {
34
+ id: m.id,
35
+ color: m.color,
36
+ points: points.map(([x, y])=>[
37
+ store.fpx(x),
38
+ store.fpy(y)
39
+ ]),
40
+ dashed: (_m_opts_dashed = (_m_opts = m.opts) === null || _m_opts === void 0 ? void 0 : _m_opts.dashed) !== null && _m_opts_dashed !== void 0 ? _m_opts_dashed : false
41
+ };
42
+ }), [
43
+ store,
44
+ metrics
45
+ ]);
46
+ return /*#__PURE__*/ _jsx("g", {
47
+ children: lines.map(({ id, color, points, dashed })=>/*#__PURE__*/ _jsx(SvgLine, {
48
+ color: color,
49
+ points: points,
50
+ dashed: dashed
51
+ }, id))
52
+ });
35
53
  });
54
+
36
55
  //# sourceMappingURL=svg-lines.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"svg-lines.js","sourceRoot":"","sources":["../../../../../src/components/charts/line-chart/components/svg-lines.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/components/charts/line-chart/components/svg-lines.tsx"],"sourcesContent":["import { useMemo, FC } from 'react';\nimport { observer } from 'mobx-react';\nimport { useDependencies } from '@servicetitan/react-ioc';\nimport { ChartMetric } from '../utils/internal-interfaces';\nimport { SvgStore } from '../stores/svg.store';\nimport * as Styles from './svg.module.less';\n\ninterface SvgLineProps {\n color: string;\n points: string[][];\n dashed: boolean;\n}\n\nconst SvgLine: FC<SvgLineProps> = ({ color, points, dashed }) => (\n <path\n className={Styles.line}\n d={points.map(([px, py], ind) => (ind === 0 ? 'M' : 'L') + `${px} ${py}`).join(' ')}\n fill=\"transparent\"\n stroke={color}\n strokeWidth=\"3\"\n strokeDasharray={dashed ? '5,5' : undefined}\n />\n);\n\ninterface SvgLinesProps {\n metrics: ChartMetric[];\n}\n\nexport const SvgLines: FC<SvgLinesProps> = observer(({ metrics }) => {\n const [store] = useDependencies(SvgStore);\n\n const lines = useMemo(\n () =>\n metrics.map(m => {\n const points = m.values.map((val, ind) => [\n store.periodX(ind),\n store.periodY(m, ind),\n ]);\n\n if (store.xOffset && points.length > 1) {\n points[0][1] =\n (points[1][0] * points[0][1] - points[0][0] * points[1][1]) /\n (points[1][0] - points[0][0]);\n points[0][0] = 0;\n\n const l = points.length - 1;\n const x1 = 100 - points[l - 1][0];\n const x2 = 100 - points[l][0];\n\n points[l][1] = (x1 * points[l][1] - x2 * points[l - 1][1]) / (x1 - x2);\n points[l][0] = 100;\n }\n\n return {\n id: m.id,\n color: m.color,\n points: points.map(([x, y]) => [store.fpx(x), store.fpy(y)]),\n dashed: m.opts?.dashed ?? false,\n };\n }),\n [store, metrics]\n );\n\n return (\n <g>\n {lines.map(({ id, color, points, dashed }) => (\n <SvgLine key={id} color={color} points={points} dashed={dashed} />\n ))}\n </g>\n );\n});\n"],"names":["useMemo","observer","useDependencies","SvgStore","Styles","SvgLine","color","points","dashed","path","className","line","d","map","px","py","ind","join","fill","stroke","strokeWidth","strokeDasharray","undefined","SvgLines","metrics","store","lines","m","values","val","periodX","periodY","xOffset","length","l","x1","x2","id","x","y","fpx","fpy","opts","g"],"mappings":";AAAA,SAASA,OAAO,QAAY,QAAQ;AACpC,SAASC,QAAQ,QAAQ,aAAa;AACtC,SAASC,eAAe,QAAQ,0BAA0B;AAE1D,SAASC,QAAQ,QAAQ,sBAAsB;AAC/C,YAAYC,YAAY,oBAAoB;AAQ5C,MAAMC,UAA4B,CAAC,EAAEC,KAAK,EAAEC,MAAM,EAAEC,MAAM,EAAE,iBACxD,KAACC;QACGC,WAAWN,OAAOO,IAAI;QACtBC,GAAGL,OAAOM,GAAG,CAAC,CAAC,CAACC,IAAIC,GAAG,EAAEC,MAAQ,AAACA,CAAAA,QAAQ,IAAI,MAAM,GAAE,IAAK,GAAGF,GAAG,CAAC,EAAEC,IAAI,EAAEE,IAAI,CAAC;QAC/EC,MAAK;QACLC,QAAQb;QACRc,aAAY;QACZC,iBAAiBb,SAAS,QAAQc;;AAQ1C,OAAO,MAAMC,WAA8BtB,SAAS,CAAC,EAAEuB,OAAO,EAAE;IAC5D,MAAM,CAACC,MAAM,GAAGvB,gBAAgBC;IAEhC,MAAMuB,QAAQ1B,QACV,IACIwB,QAAQX,GAAG,CAACc,CAAAA;gBAwBIA;YAvBZ,MAAMpB,SAASoB,EAAEC,MAAM,CAACf,GAAG,CAAC,CAACgB,KAAKb,MAAQ;oBACtCS,MAAMK,OAAO,CAACd;oBACdS,MAAMM,OAAO,CAACJ,GAAGX;iBACpB;YAED,IAAIS,MAAMO,OAAO,IAAIzB,OAAO0B,MAAM,GAAG,GAAG;gBACpC1B,MAAM,CAAC,EAAE,CAAC,EAAE,GACR,AAACA,CAAAA,MAAM,CAAC,EAAE,CAAC,EAAE,GAAGA,MAAM,CAAC,EAAE,CAAC,EAAE,GAAGA,MAAM,CAAC,EAAE,CAAC,EAAE,GAAGA,MAAM,CAAC,EAAE,CAAC,EAAE,AAAD,IACxDA,CAAAA,MAAM,CAAC,EAAE,CAAC,EAAE,GAAGA,MAAM,CAAC,EAAE,CAAC,EAAE,AAAD;gBAC/BA,MAAM,CAAC,EAAE,CAAC,EAAE,GAAG;gBAEf,MAAM2B,IAAI3B,OAAO0B,MAAM,GAAG;gBAC1B,MAAME,KAAK,MAAM5B,MAAM,CAAC2B,IAAI,EAAE,CAAC,EAAE;gBACjC,MAAME,KAAK,MAAM7B,MAAM,CAAC2B,EAAE,CAAC,EAAE;gBAE7B3B,MAAM,CAAC2B,EAAE,CAAC,EAAE,GAAG,AAACC,CAAAA,KAAK5B,MAAM,CAAC2B,EAAE,CAAC,EAAE,GAAGE,KAAK7B,MAAM,CAAC2B,IAAI,EAAE,CAAC,EAAE,AAAD,IAAMC,CAAAA,KAAKC,EAAC;gBACpE7B,MAAM,CAAC2B,EAAE,CAAC,EAAE,GAAG;YACnB;gBAMYP;YAJZ,OAAO;gBACHU,IAAIV,EAAEU,EAAE;gBACR/B,OAAOqB,EAAErB,KAAK;gBACdC,QAAQA,OAAOM,GAAG,CAAC,CAAC,CAACyB,GAAGC,EAAE,GAAK;wBAACd,MAAMe,GAAG,CAACF;wBAAIb,MAAMgB,GAAG,CAACF;qBAAG;gBAC3D/B,QAAQmB,CAAAA,kBAAAA,UAAAA,EAAEe,IAAI,cAANf,8BAAAA,QAAQnB,MAAM,cAAdmB,4BAAAA,iBAAkB;YAC9B;QACJ,IACJ;QAACF;QAAOD;KAAQ;IAGpB,qBACI,KAACmB;kBACIjB,MAAMb,GAAG,CAAC,CAAC,EAAEwB,EAAE,EAAE/B,KAAK,EAAEC,MAAM,EAAEC,MAAM,EAAE,iBACrC,KAACH;gBAAiBC,OAAOA;gBAAOC,QAAQA;gBAAQC,QAAQA;eAA1C6B;;AAI9B,GAAG"}
@@ -0,0 +1,5 @@
1
+ export const __esModule: true;
2
+ export const line: string;
3
+ export const svgBody: string;
4
+ export const svgHover: string;
5
+
@@ -1,3 +1,4 @@
1
1
  export * from './utils/interfaces';
2
2
  export * from './components/container';
3
+
3
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/charts/line-chart/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"sources":["../../../../src/components/charts/line-chart/index.ts"],"sourcesContent":["export * from './utils/interfaces';\nexport * from './components/container';\n"],"names":[],"mappings":"AAAA,cAAc,qBAAqB;AACnC,cAAc,yBAAyB"}
@@ -1,33 +1,42 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
1
+ function _define_property(obj, key, value) {
2
+ if (key in obj) {
3
+ Object.defineProperty(obj, key, {
4
+ value: value,
5
+ enumerable: true,
6
+ configurable: true,
7
+ writable: true
8
+ });
9
+ } else {
10
+ obj[key] = value;
11
+ }
12
+ return obj;
13
+ }
14
+ function _ts_decorate(decorators, target, key, desc) {
2
15
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
16
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
17
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
18
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- var __metadata = (this && this.__metadata) || function (k, v) {
19
+ }
20
+ function _ts_metadata(k, v) {
8
21
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
- };
22
+ }
10
23
  import { injectable } from '@servicetitan/react-ioc';
11
24
  import { action, observable, makeObservable } from 'mobx';
25
+ import { LineChartDisplay, LineChartResolution } from '../utils/interfaces';
12
26
  import { defaultDisplay } from '../utils/const';
27
+ import { SideMetricsSettings } from '../utils/internal-interfaces';
13
28
  import { getFormatter } from '../utils/formatters';
14
- const getSideMetricsSettings = (metrics, values, range, title, format) => {
15
- var _a;
29
+ const getSideMetricsSettings = (metrics, values, range, title, format)=>{
16
30
  let maxRange = range !== null && range !== void 0 ? range : 0;
17
- const lineBarMetricIDs = metrics
18
- .filter(m => m.type === 'line' || m.type === 'bar' || m.type === 'grouped-bar')
19
- .map(m => m.id);
20
- const stackedBarMetricIDs = metrics.filter(m => m.type === 'stacked-bar').map(m => m.id);
31
+ const lineBarMetricIDs = metrics.filter((m)=>m.type === 'line' || m.type === 'bar' || m.type === 'grouped-bar').map((m)=>m.id);
32
+ const stackedBarMetricIDs = metrics.filter((m)=>m.type === 'stacked-bar').map((m)=>m.id);
21
33
  if (!maxRange) {
22
- maxRange = values.reduce((sum, metricValues) => lineBarMetricIDs.includes(metricValues.metricId)
23
- ? Math.max(sum, metricValues.values.reduce((acc, v) => Math.max(acc, v), 0))
24
- : sum, 0);
34
+ maxRange = values.reduce((sum, metricValues)=>lineBarMetricIDs.includes(metricValues.metricId) ? Math.max(sum, metricValues.values.reduce((acc, v)=>Math.max(acc, v), 0)) : sum, 0);
25
35
  }
26
36
  if (stackedBarMetricIDs.length) {
27
- const stackChartMetricValues = values
28
- .filter(metricValues => stackedBarMetricIDs.includes(metricValues.metricId))
29
- .map(metric => metric.values);
30
- const summedStackedMetrics = (_a = stackChartMetricValues[0]) === null || _a === void 0 ? void 0 : _a.map((value, i) => stackChartMetricValues.reduce((sum, metricValues) => sum + metricValues[i], 0));
37
+ var _stackChartMetricValues_;
38
+ const stackChartMetricValues = values.filter((metricValues)=>stackedBarMetricIDs.includes(metricValues.metricId)).map((metric)=>metric.values);
39
+ const summedStackedMetrics = (_stackChartMetricValues_ = stackChartMetricValues[0]) === null || _stackChartMetricValues_ === void 0 ? void 0 : _stackChartMetricValues_.map((value, i)=>stackChartMetricValues.reduce((sum, metricValues)=>sum + metricValues[i], 0));
31
40
  if (summedStackedMetrics === null || summedStackedMetrics === void 0 ? void 0 : summedStackedMetrics.length) {
32
41
  maxRange = Math.max(...summedStackedMetrics, maxRange);
33
42
  }
@@ -45,151 +54,103 @@ const getSideMetricsSettings = (metrics, values, range, title, format) => {
45
54
  const sums = [];
46
55
  const step = maxRange / 10;
47
56
  const formatter = getFormatter(format);
48
- for (let i = 0; i < 10; i++) {
57
+ for(let i = 0; i < 10; i++){
49
58
  sums.push(formatter(maxRange - i * step));
50
59
  }
51
60
  const width = title ? 64 : 48;
52
- return { maxRange, maxValue: 1.1 * maxRange, title: title !== null && title !== void 0 ? title : '', values: sums, width };
61
+ return {
62
+ maxRange,
63
+ maxValue: 1.1 * maxRange,
64
+ title: title !== null && title !== void 0 ? title : '',
65
+ values: sums,
66
+ width
67
+ };
53
68
  };
54
- let LineChartStore = class LineChartStore {
55
- constructor() {
56
- Object.defineProperty(this, "isInit", {
57
- enumerable: true,
58
- configurable: true,
59
- writable: true,
60
- value: false
61
- });
62
- Object.defineProperty(this, "display", {
63
- enumerable: true,
64
- configurable: true,
65
- writable: true,
66
- value: defaultDisplay()
67
- });
68
- Object.defineProperty(this, "metrics", {
69
- enumerable: true,
70
- configurable: true,
71
- writable: true,
72
- value: []
73
- });
74
- Object.defineProperty(this, "periods", {
75
- enumerable: true,
76
- configurable: true,
77
- writable: true,
78
- value: []
79
- });
80
- Object.defineProperty(this, "resolution", {
81
- enumerable: true,
82
- configurable: true,
83
- writable: true,
84
- value: 'day'
85
- });
86
- Object.defineProperty(this, "left", {
87
- enumerable: true,
88
- configurable: true,
89
- writable: true,
90
- value: void 0
91
- });
92
- Object.defineProperty(this, "right", {
93
- enumerable: true,
94
- configurable: true,
95
- writable: true,
96
- value: void 0
97
- });
98
- Object.defineProperty(this, "hoveredIndex", {
99
- enumerable: true,
100
- configurable: true,
101
- writable: true,
102
- value: -1
103
- });
104
- Object.defineProperty(this, "init", {
105
- enumerable: true,
106
- configurable: true,
107
- writable: true,
108
- value: (props) => {
109
- var _a;
110
- this.display = {
111
- ...defaultDisplay(),
112
- ...((_a = props.display) !== null && _a !== void 0 ? _a : {}),
69
+ export class LineChartStore {
70
+ constructor(){
71
+ _define_property(this, "isInit", false);
72
+ _define_property(this, "display", defaultDisplay());
73
+ _define_property(this, "metrics", []);
74
+ _define_property(this, "periods", []);
75
+ _define_property(this, "resolution", 'day');
76
+ _define_property(this, "left", void 0);
77
+ _define_property(this, "right", void 0);
78
+ _define_property(this, "hoveredIndex", -1);
79
+ _define_property(this, "init", (props)=>{
80
+ var _props_display;
81
+ this.display = {
82
+ ...defaultDisplay(),
83
+ ...(_props_display = props.display) !== null && _props_display !== void 0 ? _props_display : {}
84
+ };
85
+ this.metrics = props.metrics.map((m)=>{
86
+ const mv = props.metricValues.find((mv)=>mv.metricId === m.id);
87
+ var _m_type, _m_opts, _mv_values;
88
+ return {
89
+ ...m,
90
+ isRight: !!m.isRight,
91
+ type: (_m_type = m.type) !== null && _m_type !== void 0 ? _m_type : 'line',
92
+ opts: (_m_opts = m.opts) !== null && _m_opts !== void 0 ? _m_opts : {},
93
+ values: (_mv_values = mv === null || mv === void 0 ? void 0 : mv.values) !== null && _mv_values !== void 0 ? _mv_values : [],
94
+ valuesOpts: mv === null || mv === void 0 ? void 0 : mv.opts
113
95
  };
114
- this.metrics = props.metrics.map(m => {
115
- var _a, _b, _c;
116
- const mv = props.metricValues.find(mv => mv.metricId === m.id);
117
- return {
118
- ...m,
119
- isRight: !!m.isRight,
120
- type: (_a = m.type) !== null && _a !== void 0 ? _a : 'line',
121
- opts: (_b = m.opts) !== null && _b !== void 0 ? _b : {},
122
- values: (_c = mv === null || mv === void 0 ? void 0 : mv.values) !== null && _c !== void 0 ? _c : [],
123
- valuesOpts: mv === null || mv === void 0 ? void 0 : mv.opts,
124
- };
125
- });
126
- this.left = getSideMetricsSettings(this.metrics.filter(m => !m.isRight), props.metricValues, props.maxRange, props.titleY, this.display.yLeftFormat);
127
- this.right = getSideMetricsSettings(this.metrics.filter(m => m.isRight), props.metricValues, props.maxRangeRight, props.titleYRight, this.display.yRightFormat);
128
- this.resolution = props.resolution;
129
- this.periods = props.periods || [];
130
- this.hoveredIndex = -1;
131
- this.isInit = true;
132
- }
96
+ });
97
+ this.left = getSideMetricsSettings(this.metrics.filter((m)=>!m.isRight), props.metricValues, props.maxRange, props.titleY, this.display.yLeftFormat);
98
+ this.right = getSideMetricsSettings(this.metrics.filter((m)=>m.isRight), props.metricValues, props.maxRangeRight, props.titleYRight, this.display.yRightFormat);
99
+ this.resolution = props.resolution;
100
+ this.periods = props.periods || [];
101
+ this.hoveredIndex = -1;
102
+ this.isInit = true;
133
103
  });
134
- Object.defineProperty(this, "setHoveredIndex", {
135
- enumerable: true,
136
- configurable: true,
137
- writable: true,
138
- value: (index, isHovered) => {
139
- if (isHovered) {
140
- this.hoveredIndex = index;
141
- }
142
- else if (index === this.hoveredIndex) {
143
- this.hoveredIndex = -1;
144
- }
104
+ _define_property(this, "setHoveredIndex", (index, isHovered)=>{
105
+ if (isHovered) {
106
+ this.hoveredIndex = index;
107
+ } else if (index === this.hoveredIndex) {
108
+ this.hoveredIndex = -1;
145
109
  }
146
110
  });
147
111
  makeObservable(this);
148
112
  }
149
- };
150
- __decorate([
151
- observable,
152
- __metadata("design:type", Object)
113
+ }
114
+ _ts_decorate([
115
+ observable
153
116
  ], LineChartStore.prototype, "isInit", void 0);
154
- __decorate([
117
+ _ts_decorate([
155
118
  observable,
156
- __metadata("design:type", Object)
119
+ _ts_metadata("design:type", typeof LineChartDisplay === "undefined" ? Object : LineChartDisplay)
157
120
  ], LineChartStore.prototype, "display", void 0);
158
- __decorate([
121
+ _ts_decorate([
159
122
  observable,
160
- __metadata("design:type", Array)
123
+ _ts_metadata("design:type", Array)
161
124
  ], LineChartStore.prototype, "metrics", void 0);
162
- __decorate([
125
+ _ts_decorate([
163
126
  observable,
164
- __metadata("design:type", Array)
127
+ _ts_metadata("design:type", Array)
165
128
  ], LineChartStore.prototype, "periods", void 0);
166
- __decorate([
129
+ _ts_decorate([
167
130
  observable,
168
- __metadata("design:type", String)
131
+ _ts_metadata("design:type", typeof LineChartResolution === "undefined" ? Object : LineChartResolution)
169
132
  ], LineChartStore.prototype, "resolution", void 0);
170
- __decorate([
133
+ _ts_decorate([
171
134
  observable,
172
- __metadata("design:type", Object)
135
+ _ts_metadata("design:type", typeof SideMetricsSettings === "undefined" ? Object : SideMetricsSettings)
173
136
  ], LineChartStore.prototype, "left", void 0);
174
- __decorate([
137
+ _ts_decorate([
175
138
  observable,
176
- __metadata("design:type", Object)
139
+ _ts_metadata("design:type", typeof SideMetricsSettings === "undefined" ? Object : SideMetricsSettings)
177
140
  ], LineChartStore.prototype, "right", void 0);
178
- __decorate([
179
- observable,
180
- __metadata("design:type", Object)
141
+ _ts_decorate([
142
+ observable
181
143
  ], LineChartStore.prototype, "hoveredIndex", void 0);
182
- __decorate([
183
- action,
184
- __metadata("design:type", Object)
144
+ _ts_decorate([
145
+ action
185
146
  ], LineChartStore.prototype, "init", void 0);
186
- __decorate([
187
- action,
188
- __metadata("design:type", Object)
147
+ _ts_decorate([
148
+ action
189
149
  ], LineChartStore.prototype, "setHoveredIndex", void 0);
190
- LineChartStore = __decorate([
150
+ LineChartStore = _ts_decorate([
191
151
  injectable(),
192
- __metadata("design:paramtypes", [])
152
+ _ts_metadata("design:type", Function),
153
+ _ts_metadata("design:paramtypes", [])
193
154
  ], LineChartStore);
194
- export { LineChartStore };
155
+
195
156
  //# sourceMappingURL=line-chart.store.js.map