@servicetitan/marketing-ui 5.8.1 → 5.10.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 (213) 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/funnel-chart.stories.d.ts +0 -1
  9. package/dist/components/charts/funnel-chart/funnel-chart.stories.d.ts.map +1 -1
  10. package/dist/components/charts/funnel-chart/index.js +1 -0
  11. package/dist/components/charts/funnel-chart/index.js.map +1 -1
  12. package/dist/components/charts/funnel-chart/utils/const.js +1 -0
  13. package/dist/components/charts/funnel-chart/utils/const.js.map +1 -1
  14. package/dist/components/charts/funnel-chart/utils/interface.js +2 -1
  15. package/dist/components/charts/funnel-chart/utils/interface.js.map +1 -1
  16. package/dist/components/charts/line-chart/components/body.js +105 -16
  17. package/dist/components/charts/line-chart/components/body.js.map +1 -1
  18. package/dist/components/charts/line-chart/components/body.module.less.d.ts +4 -0
  19. package/dist/components/charts/line-chart/components/container.js +12 -4
  20. package/dist/components/charts/line-chart/components/container.js.map +1 -1
  21. package/dist/components/charts/line-chart/components/hover-popover.js +56 -13
  22. package/dist/components/charts/line-chart/components/hover-popover.js.map +1 -1
  23. package/dist/components/charts/line-chart/components/hover-popover.module.less.d.ts +5 -0
  24. package/dist/components/charts/line-chart/components/sidebar.js +35 -5
  25. package/dist/components/charts/line-chart/components/sidebar.js.map +1 -1
  26. package/dist/components/charts/line-chart/components/sidebar.module.less.d.ts +13 -0
  27. package/dist/components/charts/line-chart/components/stuff.js +73 -32
  28. package/dist/components/charts/line-chart/components/stuff.js.map +1 -1
  29. package/dist/components/charts/line-chart/components/stuff.module.less.d.ts +6 -0
  30. package/dist/components/charts/line-chart/components/svg-bars.d.ts.map +1 -1
  31. package/dist/components/charts/line-chart/components/svg-bars.js +60 -26
  32. package/dist/components/charts/line-chart/components/svg-bars.js.map +1 -1
  33. package/dist/components/charts/line-chart/components/svg-body.js +52 -11
  34. package/dist/components/charts/line-chart/components/svg-body.js.map +1 -1
  35. package/dist/components/charts/line-chart/components/svg-lines.js +46 -27
  36. package/dist/components/charts/line-chart/components/svg-lines.js.map +1 -1
  37. package/dist/components/charts/line-chart/components/svg.module.less.d.ts +5 -0
  38. package/dist/components/charts/line-chart/index.js +1 -0
  39. package/dist/components/charts/line-chart/index.js.map +1 -1
  40. package/dist/components/charts/line-chart/stores/line-chart.store.d.ts.map +1 -1
  41. package/dist/components/charts/line-chart/stores/line-chart.store.js +98 -127
  42. package/dist/components/charts/line-chart/stores/line-chart.store.js.map +1 -1
  43. package/dist/components/charts/line-chart/stores/svg.store.d.ts.map +1 -1
  44. package/dist/components/charts/line-chart/stores/svg.store.js +66 -108
  45. package/dist/components/charts/line-chart/stores/svg.store.js.map +1 -1
  46. package/dist/components/charts/line-chart/utils/const.js +8 -7
  47. package/dist/components/charts/line-chart/utils/const.js.map +1 -1
  48. package/dist/components/charts/line-chart/utils/formatters.d.ts.map +1 -1
  49. package/dist/components/charts/line-chart/utils/formatters.js +13 -11
  50. package/dist/components/charts/line-chart/utils/formatters.js.map +1 -1
  51. package/dist/components/charts/line-chart/utils/interfaces.js +2 -1
  52. package/dist/components/charts/line-chart/utils/interfaces.js.map +1 -1
  53. package/dist/components/charts/line-chart/utils/internal-interfaces.js +2 -1
  54. package/dist/components/charts/line-chart/utils/internal-interfaces.js.map +1 -1
  55. package/dist/components/charts/line-chart/utils/key.d.ts.map +1 -1
  56. package/dist/components/charts/line-chart/utils/key.js +2 -1
  57. package/dist/components/charts/line-chart/utils/key.js.map +1 -1
  58. package/dist/components/charts/line-chart/utils/labels.d.ts.map +1 -1
  59. package/dist/components/charts/line-chart/utils/labels.js +50 -46
  60. package/dist/components/charts/line-chart/utils/labels.js.map +1 -1
  61. package/dist/components/charts/pie-chart/components/pie-chart.js +60 -6
  62. package/dist/components/charts/pie-chart/components/pie-chart.js.map +1 -1
  63. package/dist/components/charts/pie-chart/components/pie-chart.module.less.d.ts +3 -0
  64. package/dist/components/charts/pie-chart/components/pie.js +176 -39
  65. package/dist/components/charts/pie-chart/components/pie.js.map +1 -1
  66. package/dist/components/charts/pie-chart/index.js +2 -0
  67. package/dist/components/charts/pie-chart/index.js.map +1 -1
  68. package/dist/components/charts/pie-chart/pie-chart.stories.d.ts +0 -1
  69. package/dist/components/charts/pie-chart/pie-chart.stories.d.ts.map +1 -1
  70. package/dist/components/charts/pie-chart/utils/const.d.ts.map +1 -1
  71. package/dist/components/charts/pie-chart/utils/const.js +55 -39
  72. package/dist/components/charts/pie-chart/utils/const.js.map +1 -1
  73. package/dist/components/charts/pie-chart/utils/interface.js +2 -1
  74. package/dist/components/charts/pie-chart/utils/interface.js.map +1 -1
  75. package/dist/components/image-cropper/image-cropper.d.ts.map +1 -1
  76. package/dist/components/image-cropper/image-cropper.js +74 -88
  77. package/dist/components/image-cropper/image-cropper.js.map +1 -1
  78. package/dist/components/stat/stat-card.js +68 -22
  79. package/dist/components/stat/stat-card.js.map +1 -1
  80. package/dist/components/stat/stat-card.module.less.d.ts +5 -0
  81. package/dist/components/stat/stat-cards.stories.d.ts +0 -1
  82. package/dist/components/stat/stat-cards.stories.d.ts.map +1 -1
  83. package/dist/components/stat/stat-extended-card.js +76 -4
  84. package/dist/components/stat/stat-extended-card.js.map +1 -1
  85. package/dist/components/stat/stat-extended-card.stories.d.ts +0 -1
  86. package/dist/components/stat/stat-extended-card.stories.d.ts.map +1 -1
  87. package/dist/components/ui/action-button/action-button.js +33 -7
  88. package/dist/components/ui/action-button/action-button.js.map +1 -1
  89. package/dist/components/ui/action-button/action-button.module.less.d.ts +9 -0
  90. package/dist/components/ui/action-button/action-button.stories.d.ts +0 -1
  91. package/dist/components/ui/action-button/action-button.stories.d.ts.map +1 -1
  92. package/dist/components/ui/action-button/index.js +1 -0
  93. package/dist/components/ui/action-button/index.js.map +1 -1
  94. package/dist/components/ui/centered-spinner/centered-spinner.js +20 -2
  95. package/dist/components/ui/centered-spinner/centered-spinner.js.map +1 -1
  96. package/dist/components/ui/centered-spinner/centered-spinner.stories.d.ts +0 -1
  97. package/dist/components/ui/centered-spinner/centered-spinner.stories.d.ts.map +1 -1
  98. package/dist/components/ui/date-range-picker/date-range-picker.d.ts.map +1 -1
  99. package/dist/components/ui/date-range-picker/date-range-picker.js +71 -35
  100. package/dist/components/ui/date-range-picker/date-range-picker.js.map +1 -1
  101. package/dist/components/ui/date-range-picker/date-range-picker.module.less.d.ts +4 -0
  102. package/dist/components/ui/date-range-picker/date-range-picker.stories.d.ts.map +1 -1
  103. package/dist/components/ui/disabled-button.js +12 -3
  104. package/dist/components/ui/disabled-button.js.map +1 -1
  105. package/dist/components/ui/label-with-hint/label-with-hint.js +23 -1
  106. package/dist/components/ui/label-with-hint/label-with-hint.js.map +1 -1
  107. package/dist/components/ui/label-with-hint/label-with-hint.stories.d.ts +0 -1
  108. package/dist/components/ui/label-with-hint/label-with-hint.stories.d.ts.map +1 -1
  109. package/dist/components/ui/line-text/index.js +1 -0
  110. package/dist/components/ui/line-text/index.js.map +1 -1
  111. package/dist/components/ui/line-text/line-text-body.stories.d.ts +0 -1
  112. package/dist/components/ui/line-text/line-text-body.stories.d.ts.map +1 -1
  113. package/dist/components/ui/line-text/line-text-head.stories.d.ts +0 -1
  114. package/dist/components/ui/line-text/line-text-head.stories.d.ts.map +1 -1
  115. package/dist/components/ui/line-text/line-text.js +71 -25
  116. package/dist/components/ui/line-text/line-text.js.map +1 -1
  117. package/dist/components/ui/line-text/line-text.module.less.d.ts +6 -0
  118. package/dist/components/ui/title-popover/index.js +1 -0
  119. package/dist/components/ui/title-popover/index.js.map +1 -1
  120. package/dist/components/ui/title-popover/title-popover.d.ts.map +1 -1
  121. package/dist/components/ui/title-popover/title-popover.js +78 -69
  122. package/dist/components/ui/title-popover/title-popover.js.map +1 -1
  123. package/dist/components/ui/title-popover/title-popover.module.less.d.ts +3 -0
  124. package/dist/components/ui/title-popover/title-popover.stories.d.ts.map +1 -1
  125. package/dist/index.js +3 -1
  126. package/dist/index.js.map +1 -1
  127. package/dist/utils/__tests__/format-big-numbers.test.d.ts +2 -0
  128. package/dist/utils/__tests__/format-big-numbers.test.d.ts.map +1 -0
  129. package/dist/utils/__tests__/formatters.test.d.ts +2 -0
  130. package/dist/utils/__tests__/formatters.test.d.ts.map +1 -0
  131. package/dist/utils/__tests__/helpers.test.d.ts +2 -0
  132. package/dist/utils/__tests__/helpers.test.d.ts.map +1 -0
  133. package/dist/utils/__tests__/string-case.test.d.ts +2 -0
  134. package/dist/utils/__tests__/string-case.test.d.ts.map +1 -0
  135. package/dist/utils/ads-texts.js +2 -1
  136. package/dist/utils/ads-texts.js.map +1 -1
  137. package/dist/utils/date/__tests__/date-range-picker.test.d.ts +2 -0
  138. package/dist/utils/date/__tests__/date-range-picker.test.d.ts.map +1 -0
  139. package/dist/utils/date/__tests__/date-tenant.test.d.ts +2 -0
  140. package/dist/utils/date/__tests__/date-tenant.test.d.ts.map +1 -0
  141. package/dist/utils/date/date-range-picker-options.d.ts.map +1 -1
  142. package/dist/utils/date/date-range-picker-options.js +90 -68
  143. package/dist/utils/date/date-range-picker-options.js.map +1 -1
  144. package/dist/utils/date/date-range-picker-state.d.ts.map +1 -1
  145. package/dist/utils/date/date-range-picker-state.js +42 -43
  146. package/dist/utils/date/date-range-picker-state.js.map +1 -1
  147. package/dist/utils/date/date-tenant.js +4 -6
  148. package/dist/utils/date/date-tenant.js.map +1 -1
  149. package/dist/utils/date/date.d.ts.map +1 -1
  150. package/dist/utils/date/date.js +5 -9
  151. package/dist/utils/date/date.js.map +1 -1
  152. package/dist/utils/date/index.js +1 -0
  153. package/dist/utils/date/index.js.map +1 -1
  154. package/dist/utils/format-big-numbers.d.ts.map +1 -1
  155. package/dist/utils/format-big-numbers.js +11 -6
  156. package/dist/utils/format-big-numbers.js.map +1 -1
  157. package/dist/utils/formatters.d.ts.map +1 -1
  158. package/dist/utils/formatters.js +8 -7
  159. package/dist/utils/formatters.js.map +1 -1
  160. package/dist/utils/helpers.d.ts.map +1 -1
  161. package/dist/utils/helpers.js +9 -12
  162. package/dist/utils/helpers.js.map +1 -1
  163. package/dist/utils/marketing-parner-handlers.js +9 -12
  164. package/dist/utils/marketing-parner-handlers.js.map +1 -1
  165. package/dist/utils/string-case.js +1 -0
  166. package/dist/utils/string-case.js.map +1 -1
  167. package/dist/utils/use-client-rect.d.ts +1 -5
  168. package/dist/utils/use-client-rect.d.ts.map +1 -1
  169. package/dist/utils/use-client-rect.js +19 -19
  170. package/dist/utils/use-client-rect.js.map +1 -1
  171. package/dist/utils/use-target-range-store.js +7 -6
  172. package/dist/utils/use-target-range-store.js.map +1 -1
  173. package/package.json +11 -11
  174. package/src/components/charts/funnel-chart/funnel-chart.stories.tsx +3 -2
  175. package/src/components/charts/line-chart/components/svg-bars.tsx +2 -0
  176. package/src/components/ui/action-button/action-button.stories.tsx +3 -2
  177. package/src/components/ui/centered-spinner/centered-spinner.stories.tsx +3 -2
  178. package/src/components/ui/date-range-picker/date-range-picker.stories.tsx +5 -6
  179. package/src/components/ui/date-range-picker/date-range-picker.tsx +2 -2
  180. package/src/components/ui/line-text/line-text-body.stories.tsx +3 -2
  181. package/src/components/ui/line-text/line-text-head.stories.tsx +3 -2
  182. package/src/components/ui/line-text/line-text.tsx +1 -1
  183. package/src/components/ui/title-popover/title-popover.stories.tsx +3 -2
  184. package/src/utils/date/__tests__/date-range-picker.test.ts +1 -1
  185. package/src/utils/use-client-rect.ts +1 -1
  186. package/dist/components/charts/funnel-chart/funnel-chart.stories.js +0 -76
  187. package/dist/components/charts/funnel-chart/funnel-chart.stories.js.map +0 -1
  188. package/dist/components/charts/line-chart/line-chart.stories.js +0 -225
  189. package/dist/components/charts/line-chart/line-chart.stories.js.map +0 -1
  190. package/dist/components/charts/pie-chart/pie-chart.stories.js +0 -22
  191. package/dist/components/charts/pie-chart/pie-chart.stories.js.map +0 -1
  192. package/dist/components/image-cropper/image-cropper.stories.js +0 -48
  193. package/dist/components/image-cropper/image-cropper.stories.js.map +0 -1
  194. package/dist/components/stat/stat-cards.stories.js +0 -16
  195. package/dist/components/stat/stat-cards.stories.js.map +0 -1
  196. package/dist/components/stat/stat-extended-card.stories.js +0 -12
  197. package/dist/components/stat/stat-extended-card.stories.js.map +0 -1
  198. package/dist/components/ui/action-button/action-button.stories.js +0 -11
  199. package/dist/components/ui/action-button/action-button.stories.js.map +0 -1
  200. package/dist/components/ui/centered-spinner/centered-spinner.stories.js +0 -12
  201. package/dist/components/ui/centered-spinner/centered-spinner.stories.js.map +0 -1
  202. package/dist/components/ui/date-range-picker/date-range-picker.stories.js +0 -18
  203. package/dist/components/ui/date-range-picker/date-range-picker.stories.js.map +0 -1
  204. package/dist/components/ui/label-with-hint/label-with-hint.stories.js +0 -12
  205. package/dist/components/ui/label-with-hint/label-with-hint.stories.js.map +0 -1
  206. package/dist/components/ui/line-text/line-text-body.stories.js +0 -11
  207. package/dist/components/ui/line-text/line-text-body.stories.js.map +0 -1
  208. package/dist/components/ui/line-text/line-text-head.stories.js +0 -11
  209. package/dist/components/ui/line-text/line-text-head.stories.js.map +0 -1
  210. package/dist/components/ui/title-popover/title-popover.stories.js +0 -17
  211. package/dist/components/ui/title-popover/title-popover.stories.js.map +0 -1
  212. package/dist/utils/date/__mocks__/date-mock.js +0 -19
  213. package/dist/utils/date/__mocks__/date-mock.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"body.js","sourceRoot":"","sources":["../../../../../src/components/charts/line-chart/components/body.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/components/charts/line-chart/components/body.tsx"],"sourcesContent":["import { useCallback, useEffect, useMemo, FC, Fragment } from 'react';\nimport { observer } from 'mobx-react';\nimport classNames from 'classnames';\nimport { Stack } from '@servicetitan/design-system';\nimport { provide, useDependencies } from '@servicetitan/react-ioc';\n\nimport { useClientRect } from '../../../../utils/use-client-rect';\nimport { LineChartStore } from '../stores/line-chart.store';\nimport { SvgStore } from '../stores/svg.store';\nimport { getXLabels } from '../utils/labels';\n\nimport { Sidebar } from './sidebar';\nimport { MetricsTitle, XAxisLabels } from './stuff';\nimport { SvgBody, SvgBodyHover } from './svg-body';\nimport { HoverPopover } from './hover-popover';\nimport * as Styles from './body.module.less';\n\nexport const Body: FC<{ classNameTitle?: string }> = provide({ singletons: [SvgStore] })(\n observer(({ classNameTitle }) => {\n const [{ display, metrics, left, right, periods, resolution, setHoveredIndex }, svgStore] =\n useDependencies(LineChartStore, SvgStore);\n\n useEffect(() => {\n svgStore.init(periods.length, metrics, left?.maxValue ?? 0, right?.maxValue ?? 0);\n }, [svgStore, periods, metrics, left, right]);\n const [rect, ref] = useClientRect();\n\n const onBarHover = useCallback(\n (ind: number) => setHoveredIndex(ind, true),\n [setHoveredIndex]\n );\n\n const onBarLeave = useCallback(\n (ind: number) => setHoveredIndex(ind, false),\n [setHoveredIndex]\n );\n\n const labels = useMemo(\n () => (display.xLabels ? getXLabels(periods, resolution, rect?.width ?? 0) : []),\n [display, periods, resolution, rect]\n );\n\n return (\n <div className=\"d-f flex-column\">\n <Stack alignItems=\"stretch\">\n {left && <Sidebar settings={left} classNameTitle={classNameTitle} />}\n <Stack.Item fill>\n <div\n ref={ref}\n className={classNames(Styles.chartWrapper, 'border-bottom', {\n 'border-left': !!left && display.yLeft,\n 'border-right': !!right && display.yRight,\n })}\n >\n {periods.length ? (\n <Fragment>\n {periods.length !== labels.length && (\n <div className={Styles.labelBorders}>\n {labels\n .map(([text, flex], ind) => [flex, `${ind}${text}`])\n .map(([flex, key]) => (\n <div key={key} style={{ flex }} />\n ))}\n </div>\n )}\n\n <SvgBody horizontalGrid={display.yGrid} metrics={metrics} />\n <HoverPopover />\n <SvgBodyHover\n onValueHover={onBarHover}\n onValueLeave={onBarLeave}\n />\n </Fragment>\n ) : (\n <Stack\n className=\"h-100\"\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n No Data\n </Stack>\n )}\n </div>\n </Stack.Item>\n {right && <Sidebar settings={right} right classNameTitle={classNameTitle} />}\n </Stack>\n {display.xLabels && (\n <XAxisLabels\n labels={labels}\n width={rect?.width ?? 0}\n left={left?.width ?? 0}\n right={right?.width ?? 0}\n labelsMerged={periods.length !== labels.length}\n hasBars={\n !!metrics.filter(\n m =>\n m.type === 'bar' ||\n m.type === 'stacked-bar' ||\n m.type === 'grouped-bar'\n ).length\n }\n />\n )}\n {display.metricsTitlePosition === 'bottom' && (\n <Stack direction=\"row\" justifyContent=\"center\" className=\"p-3\">\n <MetricsTitle metrics={metrics} />\n </Stack>\n )}\n </div>\n );\n })\n);\n"],"names":["useCallback","useEffect","useMemo","Fragment","observer","classNames","Stack","provide","useDependencies","useClientRect","LineChartStore","SvgStore","getXLabels","Sidebar","MetricsTitle","XAxisLabels","SvgBody","SvgBodyHover","HoverPopover","Styles","Body","singletons","classNameTitle","display","metrics","left","right","periods","resolution","setHoveredIndex","svgStore","init","length","maxValue","rect","ref","onBarHover","ind","onBarLeave","labels","xLabels","width","div","className","alignItems","settings","Item","fill","chartWrapper","yLeft","yRight","labelBorders","map","text","flex","key","style","horizontalGrid","yGrid","onValueHover","onValueLeave","justifyContent","labelsMerged","hasBars","filter","m","type","metricsTitlePosition","direction"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export const __esModule: true;
2
+ export const chartWrapper: string;
3
+ export const labelBorders: string;
4
+
@@ -5,10 +5,18 @@ import { provide, useDependencies } from '@servicetitan/react-ioc';
5
5
  import { LineChartStore } from '../stores/line-chart.store';
6
6
  import { Body } from './body';
7
7
  export const LineChart = provide({
8
- singletons: [LineChartStore],
9
- })(observer(props => {
8
+ singletons: [
9
+ LineChartStore
10
+ ]
11
+ })(observer((props)=>{
10
12
  const [{ init, isInit }] = useDependencies(LineChartStore);
11
- useEffect(() => init(props), [init, props]);
12
- return isInit ? _jsx(Body, { classNameTitle: props.classNameTitle }) : null;
13
+ useEffect(()=>init(props), [
14
+ init,
15
+ props
16
+ ]);
17
+ return isInit ? /*#__PURE__*/ _jsx(Body, {
18
+ classNameTitle: props.classNameTitle
19
+ }) : null;
13
20
  }));
21
+
14
22
  //# sourceMappingURL=container.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"container.js","sourceRoot":"","sources":["../../../../../src/components/charts/line-chart/components/container.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAM,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAEnE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,MAAM,CAAC,MAAM,SAAS,GAAuB,OAAO,CAAC;IACjD,UAAU,EAAE,CAAC,cAAc,CAAC;CAC/B,CAAC,CACE,QAAQ,CAAC,KAAK,CAAC,EAAE;IACb,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC;IAE3D,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAE5C,OAAO,MAAM,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,cAAc,EAAE,KAAK,CAAC,cAAc,GAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1E,CAAC,CAAC,CACL,CAAC"}
1
+ {"version":3,"sources":["../../../../../src/components/charts/line-chart/components/container.tsx"],"sourcesContent":["import { useEffect, FC } from 'react';\nimport { observer } from 'mobx-react';\nimport { provide, useDependencies } from '@servicetitan/react-ioc';\nimport { LineChartProps } from '../utils/interfaces';\nimport { LineChartStore } from '../stores/line-chart.store';\nimport { Body } from './body';\n\nexport const LineChart: FC<LineChartProps> = provide({\n singletons: [LineChartStore],\n})(\n observer(props => {\n const [{ init, isInit }] = useDependencies(LineChartStore);\n\n useEffect(() => init(props), [init, props]);\n\n return isInit ? <Body classNameTitle={props.classNameTitle} /> : null;\n })\n);\n"],"names":["useEffect","observer","provide","useDependencies","LineChartStore","Body","LineChart","singletons","props","init","isInit","classNameTitle"],"mappings":";AAAA,SAASA,SAAS,QAAY,QAAQ;AACtC,SAASC,QAAQ,QAAQ,aAAa;AACtC,SAASC,OAAO,EAAEC,eAAe,QAAQ,0BAA0B;AAEnE,SAASC,cAAc,QAAQ,6BAA6B;AAC5D,SAASC,IAAI,QAAQ,SAAS;AAE9B,OAAO,MAAMC,YAAgCJ,QAAQ;IACjDK,YAAY;QAACH;KAAe;AAChC,GACIH,SAASO,CAAAA;IACL,MAAM,CAAC,EAAEC,IAAI,EAAEC,MAAM,EAAE,CAAC,GAAGP,gBAAgBC;IAE3CJ,UAAU,IAAMS,KAAKD,QAAQ;QAACC;QAAMD;KAAM;IAE1C,OAAOE,uBAAS,KAACL;QAAKM,gBAAgBH,MAAMG,cAAc;SAAO;AACrE,IACF"}
@@ -10,27 +10,70 @@ import { getFormatter } from '../utils/formatters';
10
10
  import { periodDateTitleFormatter } from '../utils/labels';
11
11
  import * as Styles from './hover-popover.module.less';
12
12
  import { ColorTag } from './stuff';
13
- export const HoverPopover = observer(() => {
13
+ export const HoverPopover = observer(()=>{
14
14
  const [{ periods, resolution, hoveredIndex, metrics, display }, svgStore] = useDependencies(LineChartStore, SvgStore);
15
- const formatDateTitle = useMemo(() => periodDateTitleFormatter[resolution], [resolution]);
16
- const formatValue = useCallback((title, value, isRight) => getFormatter(isRight ? display.metricsRightFormat : display.metricsLeftFormat)(value) +
17
- ' ' +
18
- title, [display]);
19
- const popoverStyle = useMemo(() => {
15
+ const formatDateTitle = useMemo(()=>periodDateTitleFormatter[resolution], [
16
+ resolution
17
+ ]);
18
+ const formatValue = useCallback((title, value, isRight)=>getFormatter(isRight ? display.metricsRightFormat : display.metricsLeftFormat)(value) + ' ' + title, [
19
+ display
20
+ ]);
21
+ const popoverStyle = useMemo(()=>{
20
22
  const pos = svgStore.periodX(hoveredIndex);
21
23
  if (hoveredIndex < periods.length / 2) {
22
- return { left: `${svgStore.fpx(pos + 2)}%` };
24
+ return {
25
+ left: `${svgStore.fpx(pos + 2)}%`
26
+ };
23
27
  }
24
- return { right: `${svgStore.fpx(102 - pos)}%` };
25
- }, [svgStore, hoveredIndex, periods.length]);
28
+ return {
29
+ right: `${svgStore.fpx(102 - pos)}%`
30
+ };
31
+ }, [
32
+ svgStore,
33
+ hoveredIndex,
34
+ periods.length
35
+ ]);
26
36
  if (hoveredIndex < 0 || hoveredIndex >= periods.length) {
27
37
  return null;
28
38
  }
29
39
  const period = periods[hoveredIndex];
30
40
  const partialWeek = !!period.partial;
31
- return (_jsxs(Fragment, { children: [_jsx("div", { className: Styles.line, style: { left: svgStore.fpx(svgStore.periodX(hoveredIndex)) + '%' } }), _jsxs("div", { className: classNames(Styles.popover, 'bg-white border border-radius-1 p-1'), style: popoverStyle, children: [_jsx(BodyText, { size: "small", bold: true, children: formatDateTitle(period) }), partialWeek && (_jsx(BodyText, { size: "xsmall", subdued: true, children: "Partial week" })), metrics.map(m => {
32
- var _a;
33
- return m.values[hoveredIndex] !== undefined && (_jsx(ColorTag, { label: formatValue(m.title, m.values[hoveredIndex], m.isRight), color: m.color, className: "m-t-1", dashed: (_a = m.opts) === null || _a === void 0 ? void 0 : _a.dashed, small: true }, m.title));
34
- })] })] }));
41
+ return /*#__PURE__*/ _jsxs(Fragment, {
42
+ children: [
43
+ /*#__PURE__*/ _jsx("div", {
44
+ className: Styles.line,
45
+ style: {
46
+ left: svgStore.fpx(svgStore.periodX(hoveredIndex)) + '%'
47
+ }
48
+ }),
49
+ /*#__PURE__*/ _jsxs("div", {
50
+ className: classNames(Styles.popover, 'bg-white border border-radius-1 p-1'),
51
+ style: popoverStyle,
52
+ children: [
53
+ /*#__PURE__*/ _jsx(BodyText, {
54
+ size: "small",
55
+ bold: true,
56
+ children: formatDateTitle(period)
57
+ }),
58
+ partialWeek && /*#__PURE__*/ _jsx(BodyText, {
59
+ size: "xsmall",
60
+ subdued: true,
61
+ children: "Partial week"
62
+ }),
63
+ metrics.map((m)=>{
64
+ var _m_opts;
65
+ return m.values[hoveredIndex] !== undefined && /*#__PURE__*/ _jsx(ColorTag, {
66
+ label: formatValue(m.title, m.values[hoveredIndex], m.isRight),
67
+ color: m.color,
68
+ className: "m-t-1",
69
+ dashed: (_m_opts = m.opts) === null || _m_opts === void 0 ? void 0 : _m_opts.dashed,
70
+ small: true
71
+ }, m.title);
72
+ })
73
+ ]
74
+ })
75
+ ]
76
+ });
35
77
  });
78
+
36
79
  //# sourceMappingURL=hover-popover.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hover-popover.js","sourceRoot":"","sources":["../../../../../src/components/charts/line-chart/components/hover-popover.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/components/charts/line-chart/components/hover-popover.tsx"],"sourcesContent":["import { useCallback, useMemo, FC, Fragment } from 'react';\nimport classNames from 'classnames';\nimport { observer } from 'mobx-react';\nimport { useDependencies } from '@servicetitan/react-ioc';\nimport { BodyText } from '@servicetitan/design-system';\nimport { LineChartStore } from '../stores/line-chart.store';\nimport { SvgStore } from '../stores/svg.store';\nimport { getFormatter } from '../utils/formatters';\nimport { periodDateTitleFormatter } from '../utils/labels';\nimport * as Styles from './hover-popover.module.less';\nimport { ColorTag } from './stuff';\n\nexport const HoverPopover: FC = observer(() => {\n const [{ periods, resolution, hoveredIndex, metrics, display }, svgStore] = useDependencies(\n LineChartStore,\n SvgStore\n );\n\n const formatDateTitle = useMemo(() => periodDateTitleFormatter[resolution], [resolution]);\n const formatValue = useCallback(\n (title: string, value: number, isRight: boolean) =>\n getFormatter(isRight ? display.metricsRightFormat : display.metricsLeftFormat)(value) +\n ' ' +\n title,\n [display]\n );\n const popoverStyle = useMemo(() => {\n const pos = svgStore.periodX(hoveredIndex);\n\n if (hoveredIndex < periods.length / 2) {\n return { left: `${svgStore.fpx(pos + 2)}%` };\n }\n\n return { right: `${svgStore.fpx(102 - pos)}%` };\n }, [svgStore, hoveredIndex, periods.length]);\n\n if (hoveredIndex < 0 || hoveredIndex >= periods.length) {\n return null;\n }\n\n const period = periods[hoveredIndex]!;\n const partialWeek = !!period.partial;\n\n return (\n <Fragment>\n <div\n className={Styles.line}\n style={{ left: svgStore.fpx(svgStore.periodX(hoveredIndex)) + '%' }}\n />\n <div\n className={classNames(Styles.popover, 'bg-white border border-radius-1 p-1')}\n style={popoverStyle}\n >\n <BodyText size=\"small\" bold>\n {formatDateTitle(period)}\n </BodyText>\n {partialWeek && (\n <BodyText size=\"xsmall\" subdued>\n Partial week\n </BodyText>\n )}\n {metrics.map(\n m =>\n m.values[hoveredIndex] !== undefined && (\n <ColorTag\n label={formatValue(m.title, m.values[hoveredIndex], m.isRight)}\n color={m.color}\n key={m.title}\n className=\"m-t-1\"\n dashed={m.opts?.dashed}\n small\n />\n )\n )}\n </div>\n </Fragment>\n );\n});\n"],"names":["useCallback","useMemo","Fragment","classNames","observer","useDependencies","BodyText","LineChartStore","SvgStore","getFormatter","periodDateTitleFormatter","Styles","ColorTag","HoverPopover","periods","resolution","hoveredIndex","metrics","display","svgStore","formatDateTitle","formatValue","title","value","isRight","metricsRightFormat","metricsLeftFormat","popoverStyle","pos","periodX","length","left","fpx","right","period","partialWeek","partial","div","className","line","style","popover","size","bold","subdued","map","m","values","undefined","label","color","dashed","opts","small"],"mappings":";AAAA,SAASA,WAAW,EAAEC,OAAO,EAAMC,QAAQ,QAAQ,QAAQ;AAC3D,OAAOC,gBAAgB,aAAa;AACpC,SAASC,QAAQ,QAAQ,aAAa;AACtC,SAASC,eAAe,QAAQ,0BAA0B;AAC1D,SAASC,QAAQ,QAAQ,8BAA8B;AACvD,SAASC,cAAc,QAAQ,6BAA6B;AAC5D,SAASC,QAAQ,QAAQ,sBAAsB;AAC/C,SAASC,YAAY,QAAQ,sBAAsB;AACnD,SAASC,wBAAwB,QAAQ,kBAAkB;AAC3D,YAAYC,YAAY,8BAA8B;AACtD,SAASC,QAAQ,QAAQ,UAAU;AAEnC,OAAO,MAAMC,eAAmBT,SAAS;IACrC,MAAM,CAAC,EAAEU,OAAO,EAAEC,UAAU,EAAEC,YAAY,EAAEC,OAAO,EAAEC,OAAO,EAAE,EAAEC,SAAS,GAAGd,gBACxEE,gBACAC;IAGJ,MAAMY,kBAAkBnB,QAAQ,IAAMS,wBAAwB,CAACK,WAAW,EAAE;QAACA;KAAW;IACxF,MAAMM,cAAcrB,YAChB,CAACsB,OAAeC,OAAeC,UAC3Bf,aAAae,UAAUN,QAAQO,kBAAkB,GAAGP,QAAQQ,iBAAiB,EAAEH,SAC/E,MACAD,OACJ;QAACJ;KAAQ;IAEb,MAAMS,eAAe1B,QAAQ;QACzB,MAAM2B,MAAMT,SAASU,OAAO,CAACb;QAE7B,IAAIA,eAAeF,QAAQgB,MAAM,GAAG,GAAG;YACnC,OAAO;gBAAEC,MAAM,GAAGZ,SAASa,GAAG,CAACJ,MAAM,GAAG,CAAC,CAAC;YAAC;QAC/C;QAEA,OAAO;YAAEK,OAAO,GAAGd,SAASa,GAAG,CAAC,MAAMJ,KAAK,CAAC,CAAC;QAAC;IAClD,GAAG;QAACT;QAAUH;QAAcF,QAAQgB,MAAM;KAAC;IAE3C,IAAId,eAAe,KAAKA,gBAAgBF,QAAQgB,MAAM,EAAE;QACpD,OAAO;IACX;IAEA,MAAMI,SAASpB,OAAO,CAACE,aAAa;IACpC,MAAMmB,cAAc,CAAC,CAACD,OAAOE,OAAO;IAEpC,qBACI,MAAClC;;0BACG,KAACmC;gBACGC,WAAW3B,OAAO4B,IAAI;gBACtBC,OAAO;oBAAET,MAAMZ,SAASa,GAAG,CAACb,SAASU,OAAO,CAACb,iBAAiB;gBAAI;;0BAEtE,MAACqB;gBACGC,WAAWnC,WAAWQ,OAAO8B,OAAO,EAAE;gBACtCD,OAAOb;;kCAEP,KAACrB;wBAASoC,MAAK;wBAAQC,IAAI;kCACtBvB,gBAAgBc;;oBAEpBC,6BACG,KAAC7B;wBAASoC,MAAK;wBAASE,OAAO;kCAAC;;oBAInC3B,QAAQ4B,GAAG,CACRC,CAAAA;4BAOoBA;+BANhBA,EAAEC,MAAM,CAAC/B,aAAa,KAAKgC,2BACvB,KAACpC;4BACGqC,OAAO5B,YAAYyB,EAAExB,KAAK,EAAEwB,EAAEC,MAAM,CAAC/B,aAAa,EAAE8B,EAAEtB,OAAO;4BAC7D0B,OAAOJ,EAAEI,KAAK;4BAEdZ,WAAU;4BACVa,MAAM,GAAEL,UAAAA,EAAEM,IAAI,cAANN,8BAAAA,QAAQK,MAAM;4BACtBE,KAAK;2BAHAP,EAAExB,KAAK;;;;;;AAU5C,GAAG"}
@@ -0,0 +1,5 @@
1
+ export const __esModule: true;
2
+ export const line: string;
3
+ export const popover: string;
4
+ export const trigger: string;
5
+
@@ -3,10 +3,40 @@ import classNames from 'classnames';
3
3
  import { Stack } from '@servicetitan/design-system';
4
4
  import * as Styles from './sidebar.module.less';
5
5
  import { keyVal } from '../utils/key';
6
- export const Sidebar = ({ settings, right, className, classNameTitle }) => {
7
- const sidebarTitle = settings.title ? (_jsx(Stack.Item, { className: classNames(Styles.sidebarTitle, Styles.sidebarTitleText, classNameTitle !== null && classNameTitle !== void 0 ? classNameTitle : Styles.sidebarTitleDefault), children: settings.title || '' })) : undefined;
8
- return (_jsxs("div", { className: classNames('d-f flex-row', className, Styles.sidebar, sidebarTitle ? Styles.sidebarWithTitle : Styles.sidebarNoTitle, right ? Styles.sidebarRight : Styles.sidebarLeft, {
9
- [Styles.sidebarNoTitle]: !sidebarTitle,
10
- }), style: { width: `${settings.width}px` }, children: [!right && sidebarTitle, _jsxs(Stack, { className: Styles.sidebarValues, direction: "column", justifyContent: "space-evenly", children: [_jsx("div", { className: Styles.labelGap }), settings.values.map((val, i) => (_jsx("div", { className: Styles.label, children: val }, keyVal(val, i)))), _jsx("div", { className: Styles.labelGap })] }), !!right && sidebarTitle] }));
6
+ export const Sidebar = ({ settings, right, className, classNameTitle })=>{
7
+ const sidebarTitle = settings.title ? /*#__PURE__*/ _jsx(Stack.Item, {
8
+ className: classNames(Styles.sidebarTitle, Styles.sidebarTitleText, classNameTitle !== null && classNameTitle !== void 0 ? classNameTitle : Styles.sidebarTitleDefault),
9
+ children: settings.title || ''
10
+ }) : undefined;
11
+ return /*#__PURE__*/ _jsxs("div", {
12
+ className: classNames('d-f flex-row', className, Styles.sidebar, sidebarTitle ? Styles.sidebarWithTitle : Styles.sidebarNoTitle, right ? Styles.sidebarRight : Styles.sidebarLeft, {
13
+ [Styles.sidebarNoTitle]: !sidebarTitle
14
+ }),
15
+ style: {
16
+ width: `${settings.width}px`
17
+ },
18
+ children: [
19
+ !right && sidebarTitle,
20
+ /*#__PURE__*/ _jsxs(Stack, {
21
+ className: Styles.sidebarValues,
22
+ direction: "column",
23
+ justifyContent: "space-evenly",
24
+ children: [
25
+ /*#__PURE__*/ _jsx("div", {
26
+ className: Styles.labelGap
27
+ }),
28
+ settings.values.map((val, i)=>/*#__PURE__*/ _jsx("div", {
29
+ className: Styles.label,
30
+ children: val
31
+ }, keyVal(val, i))),
32
+ /*#__PURE__*/ _jsx("div", {
33
+ className: Styles.labelGap
34
+ })
35
+ ]
36
+ }),
37
+ !!right && sidebarTitle
38
+ ]
39
+ });
11
40
  };
41
+
12
42
  //# sourceMappingURL=sidebar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sidebar.js","sourceRoot":"","sources":["../../../../../src/components/charts/line-chart/components/sidebar.tsx"],"names":[],"mappings":";AACA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpD,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAStC,MAAM,CAAC,MAAM,OAAO,GAAqB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,EAAE,EAAE;IACxF,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAClC,KAAC,KAAK,CAAC,IAAI,IACP,SAAS,EAAE,UAAU,CACjB,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,gBAAgB,EACvB,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,MAAM,CAAC,mBAAmB,CAC/C,YAEA,QAAQ,CAAC,KAAK,IAAI,EAAE,GACZ,CAChB,CAAC,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO,CACH,eACI,SAAS,EAAE,UAAU,CACjB,cAAc,EACd,SAAS,EACT,MAAM,CAAC,OAAO,EACd,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,EAC9D,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAChD;YACI,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,YAAY;SACzC,CACJ,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,KAAK,IAAI,EAAE,aAEtC,CAAC,KAAK,IAAI,YAAY,EACvB,MAAC,KAAK,IACF,SAAS,EAAE,MAAM,CAAC,aAAa,EAC/B,SAAS,EAAC,QAAQ,EAClB,cAAc,EAAC,cAAc,aAE7B,cAAK,SAAS,EAAE,MAAM,CAAC,QAAQ,GAAI,EAClC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAC7B,cAA0B,SAAS,EAAE,MAAM,CAAC,KAAK,YAC5C,GAAG,IADE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAElB,CACT,CAAC,EACF,cAAK,SAAS,EAAE,MAAM,CAAC,QAAQ,GAAI,IAC/B,EACP,CAAC,CAAC,KAAK,IAAI,YAAY,IACtB,CACT,CAAC;AACN,CAAC,CAAC"}
1
+ {"version":3,"sources":["../../../../../src/components/charts/line-chart/components/sidebar.tsx"],"sourcesContent":["import { FC } from 'react';\nimport classNames from 'classnames';\nimport { Stack } from '@servicetitan/design-system';\nimport * as Styles from './sidebar.module.less';\nimport { SideMetricsSettings } from '../utils/internal-interfaces';\nimport { keyVal } from '../utils/key';\n\ninterface SidebarProps {\n settings: SideMetricsSettings;\n className?: string;\n classNameTitle?: string;\n right?: boolean;\n}\n\nexport const Sidebar: FC<SidebarProps> = ({ settings, right, className, classNameTitle }) => {\n const sidebarTitle = settings.title ? (\n <Stack.Item\n className={classNames(\n Styles.sidebarTitle,\n Styles.sidebarTitleText,\n classNameTitle ?? Styles.sidebarTitleDefault\n )}\n >\n {settings.title || ''}\n </Stack.Item>\n ) : undefined;\n\n return (\n <div\n className={classNames(\n 'd-f flex-row',\n className,\n Styles.sidebar,\n sidebarTitle ? Styles.sidebarWithTitle : Styles.sidebarNoTitle,\n right ? Styles.sidebarRight : Styles.sidebarLeft,\n {\n [Styles.sidebarNoTitle]: !sidebarTitle,\n }\n )}\n style={{ width: `${settings.width}px` }}\n >\n {!right && sidebarTitle}\n <Stack\n className={Styles.sidebarValues}\n direction=\"column\"\n justifyContent=\"space-evenly\"\n >\n <div className={Styles.labelGap} />\n {settings.values.map((val, i) => (\n <div key={keyVal(val, i)} className={Styles.label}>\n {val}\n </div>\n ))}\n <div className={Styles.labelGap} />\n </Stack>\n {!!right && sidebarTitle}\n </div>\n );\n};\n"],"names":["classNames","Stack","Styles","keyVal","Sidebar","settings","right","className","classNameTitle","sidebarTitle","title","Item","sidebarTitleText","sidebarTitleDefault","undefined","div","sidebar","sidebarWithTitle","sidebarNoTitle","sidebarRight","sidebarLeft","style","width","sidebarValues","direction","justifyContent","labelGap","values","map","val","i","label"],"mappings":";AACA,OAAOA,gBAAgB,aAAa;AACpC,SAASC,KAAK,QAAQ,8BAA8B;AACpD,YAAYC,YAAY,wBAAwB;AAEhD,SAASC,MAAM,QAAQ,eAAe;AAStC,OAAO,MAAMC,UAA4B,CAAC,EAAEC,QAAQ,EAAEC,KAAK,EAAEC,SAAS,EAAEC,cAAc,EAAE;IACpF,MAAMC,eAAeJ,SAASK,KAAK,iBAC/B,KAACT,MAAMU,IAAI;QACPJ,WAAWP,WACPE,OAAOO,YAAY,EACnBP,OAAOU,gBAAgB,EACvBJ,2BAAAA,4BAAAA,iBAAkBN,OAAOW,mBAAmB;kBAG/CR,SAASK,KAAK,IAAI;SAEvBI;IAEJ,qBACI,MAACC;QACGR,WAAWP,WACP,gBACAO,WACAL,OAAOc,OAAO,EACdP,eAAeP,OAAOe,gBAAgB,GAAGf,OAAOgB,cAAc,EAC9DZ,QAAQJ,OAAOiB,YAAY,GAAGjB,OAAOkB,WAAW,EAChD;YACI,CAAClB,OAAOgB,cAAc,CAAC,EAAE,CAACT;QAC9B;QAEJY,OAAO;YAAEC,OAAO,GAAGjB,SAASiB,KAAK,CAAC,EAAE,CAAC;QAAC;;YAErC,CAAChB,SAASG;0BACX,MAACR;gBACGM,WAAWL,OAAOqB,aAAa;gBAC/BC,WAAU;gBACVC,gBAAe;;kCAEf,KAACV;wBAAIR,WAAWL,OAAOwB,QAAQ;;oBAC9BrB,SAASsB,MAAM,CAACC,GAAG,CAAC,CAACC,KAAKC,kBACvB,KAACf;4BAAyBR,WAAWL,OAAO6B,KAAK;sCAC5CF;2BADK1B,OAAO0B,KAAKC;kCAI1B,KAACf;wBAAIR,WAAWL,OAAOwB,QAAQ;;;;YAElC,CAAC,CAACpB,SAASG;;;AAGxB,EAAE"}
@@ -0,0 +1,13 @@
1
+ export const __esModule: true;
2
+ export const label: string;
3
+ export const labelGap: string;
4
+ export const sidebar: string;
5
+ export const sidebarLeft: string;
6
+ export const sidebarNoTitle: string;
7
+ export const sidebarRight: string;
8
+ export const sidebarTitle: string;
9
+ export const sidebarTitleDefault: string;
10
+ export const sidebarTitleText: string;
11
+ export const sidebarValues: string;
12
+ export const sidebarWithTitle: string;
13
+
@@ -3,65 +3,106 @@ import { useMemo } from 'react';
3
3
  import classNames from 'classnames';
4
4
  import { BodyText, Stack } from '@servicetitan/design-system';
5
5
  import * as Styles from './stuff.module.less';
6
- export const ColorTag = ({ label, color, className, small, dashed }) => (_jsxs(Stack, { alignItems: "center", className: className, children: [_jsx("div", { style: dashed
7
- ? {
8
- borderColor: color,
9
- }
10
- : {
11
- backgroundColor: color,
12
- }, className: classNames(Styles.colorTag, dashed && Styles.colorTagDashed, small && Styles.colorTagSmall) }), _jsx(BodyText, { size: small ? 'xsmall' : 'small', children: label })] }));
13
- export const MetricsTitle = ({ metrics }) => (_jsx(Stack, { alignItems: "center", children: metrics.map(m => {
14
- var _a;
15
- return (_jsx(ColorTag, { label: m.title, color: m.color, dashed: (_a = m.opts) === null || _a === void 0 ? void 0 : _a.dashed, className: "m-r-4" }, m.id));
16
- }) }));
17
- export const XAxisLabels = ({ labels, width, left, right, labelsMerged, hasBars }) => {
18
- const data = useMemo(() => {
6
+ export const ColorTag = ({ label, color, className, small, dashed })=>/*#__PURE__*/ _jsxs(Stack, {
7
+ alignItems: "center",
8
+ className: className,
9
+ children: [
10
+ /*#__PURE__*/ _jsx("div", {
11
+ style: dashed ? {
12
+ borderColor: color
13
+ } : {
14
+ backgroundColor: color
15
+ },
16
+ className: classNames(Styles.colorTag, dashed && Styles.colorTagDashed, small && Styles.colorTagSmall)
17
+ }),
18
+ /*#__PURE__*/ _jsx(BodyText, {
19
+ size: small ? 'xsmall' : 'small',
20
+ children: label
21
+ })
22
+ ]
23
+ });
24
+ export const MetricsTitle = ({ metrics })=>/*#__PURE__*/ _jsx(Stack, {
25
+ alignItems: "center",
26
+ children: metrics.map((m)=>{
27
+ var _m_opts;
28
+ return /*#__PURE__*/ _jsx(ColorTag, {
29
+ label: m.title,
30
+ color: m.color,
31
+ dashed: (_m_opts = m.opts) === null || _m_opts === void 0 ? void 0 : _m_opts.dashed,
32
+ className: "m-r-4"
33
+ }, m.id);
34
+ })
35
+ });
36
+ export const XAxisLabels = ({ labels, width, left, right, labelsMerged, hasBars })=>{
37
+ const data = useMemo(()=>{
19
38
  const styles = {};
20
- const labelsMapped = labels.map(([text, flex], ind) => ({
21
- text,
22
- flex,
23
- key: `${ind}${text}`,
24
- className: '',
25
- }));
39
+ const labelsMapped = labels.map(([text, flex], ind)=>({
40
+ text,
41
+ flex,
42
+ key: `${ind}${text}`,
43
+ className: ''
44
+ }));
26
45
  if (hasBars) {
27
46
  // when we have bars, all labels will get space equally, so no need to calculate margins
28
47
  styles.marginLeft = `${left}px`;
29
48
  styles.marginRight = `${right}px`;
30
- }
31
- else if (labels.length && !!width && !labelsMerged) {
49
+ } else if (labels.length && !!width && !labelsMerged) {
32
50
  // when we have only lines, we should calculate available space for first and last label
33
51
  const labelWidth = (width - left - right) / labels.length;
34
52
  const labelHalfWidth = labelWidth / 2;
35
53
  if (left) {
36
54
  if (left > labelHalfWidth) {
37
55
  styles.marginLeft = `${left - labelHalfWidth}px`;
38
- }
39
- else {
56
+ } else {
40
57
  labelsMapped[0].flex = (left + labelHalfWidth) / labelWidth;
41
58
  }
42
- }
43
- else {
59
+ } else {
44
60
  labelsMapped[0].flex = 0.5;
45
61
  labelsMapped[0].className = 't-truncate';
46
62
  }
47
63
  if (right) {
48
64
  if (right > labelHalfWidth) {
49
65
  styles.marginRight = `${right - labelHalfWidth}px`;
50
- }
51
- else {
66
+ } else {
52
67
  labelsMapped[labels.length - 1].flex = (right + labelHalfWidth) / labelWidth;
53
68
  }
54
- }
55
- else {
69
+ } else {
56
70
  labelsMapped[labels.length - 1].flex = 0.5;
57
71
  labelsMapped[labels.length - 1].className = 't-truncate';
58
72
  }
59
73
  }
60
74
  return {
61
75
  labels: labelsMapped,
62
- styles,
76
+ styles
63
77
  };
64
- }, [labels, left, right, labelsMerged, width, hasBars]);
65
- return (_jsx("div", { style: data.styles, children: _jsx(Stack, { direction: "row", justifyContent: "space-between", alignItems: "center", className: "m-t-1", children: data.labels.map(({ text, flex, key, className }) => (_jsx("div", { style: { flex }, className: className, children: _jsx(BodyText, { size: "xsmall", className: classNames(Styles.xAxisLabel, 'ta-center'), children: text }) }, key))) }) }));
78
+ }, [
79
+ labels,
80
+ left,
81
+ right,
82
+ labelsMerged,
83
+ width,
84
+ hasBars
85
+ ]);
86
+ return /*#__PURE__*/ _jsx("div", {
87
+ style: data.styles,
88
+ children: /*#__PURE__*/ _jsx(Stack, {
89
+ direction: "row",
90
+ justifyContent: "space-between",
91
+ alignItems: "center",
92
+ className: "m-t-1",
93
+ children: data.labels.map(({ text, flex, key, className })=>/*#__PURE__*/ _jsx("div", {
94
+ style: {
95
+ flex
96
+ },
97
+ className: className,
98
+ children: /*#__PURE__*/ _jsx(BodyText, {
99
+ size: "xsmall",
100
+ className: classNames(Styles.xAxisLabel, 'ta-center'),
101
+ children: text
102
+ })
103
+ }, key))
104
+ })
105
+ });
66
106
  };
107
+
67
108
  //# sourceMappingURL=stuff.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stuff.js","sourceRoot":"","sources":["../../../../../src/components/charts/line-chart/components/stuff.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/components/charts/line-chart/components/stuff.tsx"],"sourcesContent":["import { CSSProperties, useMemo, FC } from 'react';\nimport classNames from 'classnames';\nimport { BodyText, Stack } from '@servicetitan/design-system';\nimport * as Styles from './stuff.module.less';\nimport { LineChartMetric } from '../utils/interfaces';\nimport { ChartXLabels } from '../utils/internal-interfaces';\n\ninterface ColorTagProps {\n label: string;\n color: string;\n className?: string;\n small?: boolean;\n dashed?: boolean;\n}\n\nexport const ColorTag: FC<ColorTagProps> = ({ label, color, className, small, dashed }) => (\n <Stack alignItems=\"center\" className={className}>\n <div\n style={\n dashed\n ? {\n borderColor: color,\n }\n : {\n backgroundColor: color,\n }\n }\n className={classNames(\n Styles.colorTag,\n dashed && Styles.colorTagDashed,\n small && Styles.colorTagSmall\n )}\n />\n <BodyText size={small ? 'xsmall' : 'small'}>{label}</BodyText>\n </Stack>\n);\n\ninterface MetricsTitleProps {\n metrics: LineChartMetric[];\n}\n\nexport const MetricsTitle: FC<MetricsTitleProps> = ({ metrics }) => (\n <Stack alignItems=\"center\">\n {metrics.map(m => (\n <ColorTag\n key={m.id}\n label={m.title}\n color={m.color}\n dashed={m.opts?.dashed}\n className=\"m-r-4\"\n />\n ))}\n </Stack>\n);\n\nexport const XAxisLabels: FC<{\n labels: ChartXLabels;\n width: number;\n left: number;\n right: number;\n labelsMerged: boolean;\n hasBars: boolean;\n}> = ({ labels, width, left, right, labelsMerged, hasBars }) => {\n const data = useMemo(() => {\n const styles: CSSProperties = {};\n const labelsMapped = labels.map(([text, flex], ind) => ({\n text,\n flex,\n key: `${ind}${text}`,\n className: '',\n }));\n\n if (hasBars) {\n // when we have bars, all labels will get space equally, so no need to calculate margins\n styles.marginLeft = `${left}px`;\n styles.marginRight = `${right}px`;\n } else if (labels.length && !!width && !labelsMerged) {\n // when we have only lines, we should calculate available space for first and last label\n\n const labelWidth = (width - left - right) / labels.length;\n const labelHalfWidth = labelWidth / 2;\n\n if (left) {\n if (left > labelHalfWidth) {\n styles.marginLeft = `${left - labelHalfWidth}px`;\n } else {\n labelsMapped[0].flex = (left + labelHalfWidth) / labelWidth;\n }\n } else {\n labelsMapped[0].flex = 0.5;\n labelsMapped[0].className = 't-truncate';\n }\n\n if (right) {\n if (right > labelHalfWidth) {\n styles.marginRight = `${right - labelHalfWidth}px`;\n } else {\n labelsMapped[labels.length - 1].flex = (right + labelHalfWidth) / labelWidth;\n }\n } else {\n labelsMapped[labels.length - 1].flex = 0.5;\n labelsMapped[labels.length - 1].className = 't-truncate';\n }\n }\n\n return {\n labels: labelsMapped,\n styles,\n };\n }, [labels, left, right, labelsMerged, width, hasBars]);\n\n return (\n <div style={data.styles}>\n <Stack\n direction=\"row\"\n justifyContent=\"space-between\"\n alignItems=\"center\"\n className=\"m-t-1\"\n >\n {data.labels.map(({ text, flex, key, className }) => (\n <div key={key} style={{ flex }} className={className}>\n <BodyText\n size=\"xsmall\"\n className={classNames(Styles.xAxisLabel, 'ta-center')}\n >\n {text}\n </BodyText>\n </div>\n ))}\n </Stack>\n </div>\n );\n};\n"],"names":["useMemo","classNames","BodyText","Stack","Styles","ColorTag","label","color","className","small","dashed","alignItems","div","style","borderColor","backgroundColor","colorTag","colorTagDashed","colorTagSmall","size","MetricsTitle","metrics","map","m","title","opts","id","XAxisLabels","labels","width","left","right","labelsMerged","hasBars","data","styles","labelsMapped","text","flex","ind","key","marginLeft","marginRight","length","labelWidth","labelHalfWidth","direction","justifyContent","xAxisLabel"],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export const __esModule: true;
2
+ export const colorTag: string;
3
+ export const colorTagDashed: string;
4
+ export const colorTagSmall: string;
5
+ export const xAxisLabel: string;
6
+
@@ -1 +1 @@
1
- {"version":3,"file":"svg-bars.d.ts","sourceRoot":"","sources":["../../../../../src/components/charts/line-chart/components/svg-bars.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAG3B,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAI3D,UAAU,YAAY;IAClB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,eAAO,MAAM,OAAO,EAAE,EAAE,CAAC,YAAY,CAoEpC,CAAC;AAEF,UAAU,iBAAiB;IACvB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,CAyB7C,CAAC"}
1
+ {"version":3,"file":"svg-bars.d.ts","sourceRoot":"","sources":["../../../../../src/components/charts/line-chart/components/svg-bars.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAG3B,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAI3D,UAAU,YAAY;IAClB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,eAAO,MAAM,OAAO,EAAE,EAAE,CAAC,YAAY,CAqEpC,CAAC;AAEF,UAAU,iBAAiB;IACvB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,CA0B7C,CAAC"}