@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":"line-chart.store.js","sourceRoot":"","sources":["../../../../../src/components/charts/line-chart/stores/line-chart.store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/components/charts/line-chart/stores/line-chart.store.ts"],"sourcesContent":["import { injectable } from '@servicetitan/react-ioc';\nimport { action, observable, makeObservable } from 'mobx';\nimport {\n LineChartDisplay,\n LineChartDisplayValueFormat,\n LineChartMetricValues,\n LineChartPeriod,\n LineChartProps,\n LineChartResolution,\n} from '../utils/interfaces';\nimport { defaultDisplay } from '../utils/const';\nimport { ChartMetric, SideMetricsSettings } from '../utils/internal-interfaces';\nimport { getFormatter } from '../utils/formatters';\n\nconst getSideMetricsSettings = (\n metrics: ChartMetric[],\n values: LineChartMetricValues[],\n range?: number,\n title?: string,\n format?: LineChartDisplayValueFormat\n): SideMetricsSettings | undefined => {\n let maxRange = range ?? 0;\n const lineBarMetricIDs = metrics\n .filter(m => m.type === 'line' || m.type === 'bar' || m.type === 'grouped-bar')\n .map(m => m.id);\n const stackedBarMetricIDs = metrics.filter(m => m.type === 'stacked-bar').map(m => m.id);\n\n if (!maxRange) {\n maxRange = values.reduce(\n (sum, metricValues) =>\n lineBarMetricIDs.includes(metricValues.metricId)\n ? Math.max(\n sum,\n metricValues.values.reduce((acc, v) => Math.max(acc, v), 0)\n )\n : sum,\n 0\n );\n }\n\n if (stackedBarMetricIDs.length) {\n const stackChartMetricValues = values\n .filter(metricValues => stackedBarMetricIDs.includes(metricValues.metricId))\n .map(metric => metric.values);\n\n const summedStackedMetrics = stackChartMetricValues[0]?.map((value, i) =>\n stackChartMetricValues.reduce((sum, metricValues) => sum + metricValues[i], 0)\n );\n\n if (summedStackedMetrics?.length) {\n maxRange = Math.max(...summedStackedMetrics, maxRange);\n }\n }\n\n if (!maxRange) {\n if (!lineBarMetricIDs.length && !stackedBarMetricIDs.length) {\n return undefined;\n }\n\n maxRange = 10;\n }\n\n maxRange = Math.max(maxRange, 10);\n\n if (format === 'moneyShort' && maxRange > 1000 && maxRange < 10000) {\n maxRange = 10000;\n }\n\n const sums = [];\n const step = maxRange / 10;\n const formatter = getFormatter(format);\n\n for (let i = 0; i < 10; i++) {\n sums.push(formatter(maxRange - i * step));\n }\n\n const width = title ? 64 : 48;\n\n return { maxRange, maxValue: 1.1 * maxRange, title: title ?? '', values: sums, width };\n};\n\n@injectable()\nexport class LineChartStore {\n @observable isInit = false;\n @observable display: LineChartDisplay = defaultDisplay();\n @observable metrics: ChartMetric[] = [];\n @observable periods: LineChartPeriod[] = [];\n @observable resolution: LineChartResolution = 'day';\n\n @observable left?: SideMetricsSettings;\n @observable right?: SideMetricsSettings;\n\n @observable hoveredIndex = -1;\n\n constructor() {\n makeObservable(this);\n }\n\n @action init = (props: LineChartProps) => {\n this.display = {\n ...defaultDisplay(),\n ...(props.display ?? {}),\n };\n\n this.metrics = props.metrics.map(m => {\n const mv = props.metricValues.find(mv => mv.metricId === m.id);\n\n return {\n ...m,\n isRight: !!m.isRight,\n type: m.type ?? 'line',\n opts: m.opts ?? {},\n values: mv?.values ?? [],\n valuesOpts: mv?.opts,\n };\n });\n\n this.left = getSideMetricsSettings(\n this.metrics.filter(m => !m.isRight),\n props.metricValues,\n props.maxRange,\n props.titleY,\n this.display.yLeftFormat\n );\n this.right = getSideMetricsSettings(\n this.metrics.filter(m => m.isRight),\n props.metricValues,\n props.maxRangeRight,\n props.titleYRight,\n this.display.yRightFormat\n );\n\n this.resolution = props.resolution;\n this.periods = props.periods || [];\n this.hoveredIndex = -1;\n this.isInit = true;\n };\n\n @action setHoveredIndex = (index: number, isHovered: boolean) => {\n if (isHovered) {\n this.hoveredIndex = index;\n } else if (index === this.hoveredIndex) {\n this.hoveredIndex = -1;\n }\n };\n}\n"],"names":["injectable","action","observable","makeObservable","LineChartDisplay","LineChartResolution","defaultDisplay","SideMetricsSettings","getFormatter","getSideMetricsSettings","metrics","values","range","title","format","maxRange","lineBarMetricIDs","filter","m","type","map","id","stackedBarMetricIDs","reduce","sum","metricValues","includes","metricId","Math","max","acc","v","length","stackChartMetricValues","metric","summedStackedMetrics","value","i","undefined","sums","step","formatter","push","width","maxValue","LineChartStore","isInit","display","periods","resolution","left","right","hoveredIndex","init","props","mv","find","isRight","opts","valuesOpts","titleY","yLeftFormat","maxRangeRight","titleYRight","yRightFormat","setHoveredIndex","index","isHovered"],"mappings":"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"}
@@ -1,131 +1,89 @@
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';
12
25
  const barRelativeWidth = 0.8;
13
26
  const maxBarWidth = 7;
14
- let SvgStore = class SvgStore {
15
- constructor() {
16
- Object.defineProperty(this, "key", {
17
- enumerable: true,
18
- configurable: true,
19
- writable: true,
20
- value: 0
21
- });
22
- Object.defineProperty(this, "length", {
23
- enumerable: true,
24
- configurable: true,
25
- writable: true,
26
- value: 1
27
- });
28
- Object.defineProperty(this, "xOffset", {
29
- enumerable: true,
30
- configurable: true,
31
- writable: true,
32
- value: 0
33
- });
34
- Object.defineProperty(this, "barWidth", {
35
- enumerable: true,
36
- configurable: true,
37
- writable: true,
38
- value: 0
39
- });
40
- Object.defineProperty(this, "fullBarWidth", {
41
- enumerable: true,
42
- configurable: true,
43
- writable: true,
44
- value: 0
45
- });
46
- Object.defineProperty(this, "maxValueLeft", {
47
- enumerable: true,
48
- configurable: true,
49
- writable: true,
50
- value: 0
51
- });
52
- Object.defineProperty(this, "maxValueRight", {
53
- enumerable: true,
54
- configurable: true,
55
- writable: true,
56
- value: 0
57
- });
58
- Object.defineProperty(this, "init", {
59
- enumerable: true,
60
- configurable: true,
61
- writable: true,
62
- value: (length, metrics, maxValueLeft, maxValueRight) => {
63
- this.length = length || 1;
64
- this.key = Date.now();
65
- const hasBars = !!metrics.filter(m => m.type === 'bar' || m.type === 'stacked-bar' || m.type === 'grouped-bar').length;
66
- if (hasBars) {
67
- this.fullBarWidth = 100 / this.length;
68
- this.xOffset = this.fullBarWidth / 2;
69
- }
70
- else {
71
- this.fullBarWidth = 100 / (this.length - 1);
72
- this.xOffset = 0;
73
- }
74
- this.barWidth = Math.min(barRelativeWidth * this.fullBarWidth, maxBarWidth);
75
- this.maxValueLeft = maxValueLeft;
76
- this.maxValueRight = maxValueRight;
77
- }
78
- });
79
- Object.defineProperty(this, "fpx", {
80
- enumerable: true,
81
- configurable: true,
82
- writable: true,
83
- value: (val) => {
84
- return val.toFixed(1);
85
- }
86
- });
87
- Object.defineProperty(this, "fpy", {
88
- enumerable: true,
89
- configurable: true,
90
- writable: true,
91
- value: (val) => {
92
- return (100 - val).toFixed(1);
93
- }
94
- });
95
- makeObservable(this);
96
- }
27
+ export class SvgStore {
97
28
  periodX(index) {
98
29
  return this.xOffset + this.fullBarWidth * index;
99
30
  }
100
31
  periodY(m, ind) {
101
32
  const value = ind < 0 || ind >= m.values.length ? 0 : m.values[ind];
102
33
  const maxValue = m.isRight ? this.maxValueRight : this.maxValueLeft;
103
- return value && maxValue ? (100 * value) / maxValue : 0;
34
+ return value && maxValue ? 100 * value / maxValue : 0;
35
+ }
36
+ constructor(){
37
+ _define_property(this, "key", 0);
38
+ _define_property(this, "length", 1);
39
+ _define_property(this, "xOffset", 0);
40
+ _define_property(this, "barWidth", 0);
41
+ _define_property(this, "fullBarWidth", 0);
42
+ _define_property(this, "maxValueLeft", 0);
43
+ _define_property(this, "maxValueRight", 0);
44
+ _define_property(this, "init", (length, metrics, maxValueLeft, maxValueRight)=>{
45
+ this.length = length || 1;
46
+ this.key = Date.now();
47
+ const hasBars = !!metrics.filter((m)=>m.type === 'bar' || m.type === 'stacked-bar' || m.type === 'grouped-bar').length;
48
+ if (hasBars) {
49
+ this.fullBarWidth = 100 / this.length;
50
+ this.xOffset = this.fullBarWidth / 2;
51
+ } else {
52
+ this.fullBarWidth = 100 / (this.length - 1);
53
+ this.xOffset = 0;
54
+ }
55
+ this.barWidth = Math.min(barRelativeWidth * this.fullBarWidth, maxBarWidth);
56
+ this.maxValueLeft = maxValueLeft;
57
+ this.maxValueRight = maxValueRight;
58
+ });
59
+ _define_property(this, "fpx", (val)=>{
60
+ return val.toFixed(1);
61
+ });
62
+ _define_property(this, "fpy", (val)=>{
63
+ return (100 - val).toFixed(1);
64
+ });
65
+ makeObservable(this);
104
66
  }
105
- };
106
- __decorate([
107
- observable,
108
- __metadata("design:type", Object)
67
+ }
68
+ _ts_decorate([
69
+ observable
109
70
  ], SvgStore.prototype, "key", void 0);
110
- __decorate([
111
- observable,
112
- __metadata("design:type", Object)
71
+ _ts_decorate([
72
+ observable
113
73
  ], SvgStore.prototype, "length", void 0);
114
- __decorate([
115
- observable,
116
- __metadata("design:type", Object)
74
+ _ts_decorate([
75
+ observable
117
76
  ], SvgStore.prototype, "xOffset", void 0);
118
- __decorate([
119
- observable,
120
- __metadata("design:type", Object)
77
+ _ts_decorate([
78
+ observable
121
79
  ], SvgStore.prototype, "barWidth", void 0);
122
- __decorate([
123
- action,
124
- __metadata("design:type", Object)
80
+ _ts_decorate([
81
+ action
125
82
  ], SvgStore.prototype, "init", void 0);
126
- SvgStore = __decorate([
83
+ SvgStore = _ts_decorate([
127
84
  injectable(),
128
- __metadata("design:paramtypes", [])
85
+ _ts_metadata("design:type", Function),
86
+ _ts_metadata("design:paramtypes", [])
129
87
  ], SvgStore);
130
- export { SvgStore };
88
+
131
89
  //# sourceMappingURL=svg.store.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"svg.store.js","sourceRoot":"","sources":["../../../../../src/components/charts/line-chart/stores/svg.store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/components/charts/line-chart/stores/svg.store.ts"],"sourcesContent":["import { injectable } from '@servicetitan/react-ioc';\nimport { action, observable, makeObservable } from 'mobx';\nimport { ChartMetric } from '../utils/internal-interfaces';\n\nconst barRelativeWidth = 0.8;\nconst maxBarWidth = 7;\n\n@injectable()\nexport class SvgStore {\n @observable key = 0;\n @observable length = 1;\n @observable xOffset = 0;\n @observable barWidth = 0;\n\n private fullBarWidth = 0;\n private maxValueLeft = 0;\n private maxValueRight = 0;\n\n constructor() {\n makeObservable(this);\n }\n\n @action init = (\n length: number,\n metrics: ChartMetric[],\n maxValueLeft: number,\n maxValueRight: number\n ) => {\n this.length = length || 1;\n this.key = Date.now();\n\n const hasBars = !!metrics.filter(\n m => m.type === 'bar' || m.type === 'stacked-bar' || m.type === 'grouped-bar'\n ).length;\n\n if (hasBars) {\n this.fullBarWidth = 100 / this.length;\n this.xOffset = this.fullBarWidth / 2;\n } else {\n this.fullBarWidth = 100 / (this.length - 1);\n this.xOffset = 0;\n }\n\n this.barWidth = Math.min(barRelativeWidth * this.fullBarWidth, maxBarWidth);\n this.maxValueLeft = maxValueLeft;\n this.maxValueRight = maxValueRight;\n };\n\n periodX(index: number): number {\n return this.xOffset + this.fullBarWidth * index;\n }\n\n periodY(m: ChartMetric, ind: number): number {\n const value = ind < 0 || ind >= m.values.length ? 0 : m.values[ind];\n const maxValue = m.isRight ? this.maxValueRight : this.maxValueLeft;\n\n return value && maxValue ? (100 * value) / maxValue : 0;\n }\n\n fpx = (val: number): string => {\n return val.toFixed(1);\n };\n\n fpy = (val: number): string => {\n return (100 - val).toFixed(1);\n };\n}\n"],"names":["injectable","action","observable","makeObservable","barRelativeWidth","maxBarWidth","SvgStore","periodX","index","xOffset","fullBarWidth","periodY","m","ind","value","values","length","maxValue","isRight","maxValueRight","maxValueLeft","key","barWidth","init","metrics","Date","now","hasBars","filter","type","Math","min","fpx","val","toFixed","fpy"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,SAASA,UAAU,QAAQ,0BAA0B;AACrD,SAASC,MAAM,EAAEC,UAAU,EAAEC,cAAc,QAAQ,OAAO;AAG1D,MAAMC,mBAAmB;AACzB,MAAMC,cAAc;AAGpB,OAAO,MAAMC;IAwCTC,QAAQC,KAAa,EAAU;QAC3B,OAAO,IAAI,CAACC,OAAO,GAAG,IAAI,CAACC,YAAY,GAAGF;IAC9C;IAEAG,QAAQC,CAAc,EAAEC,GAAW,EAAU;QACzC,MAAMC,QAAQD,MAAM,KAAKA,OAAOD,EAAEG,MAAM,CAACC,MAAM,GAAG,IAAIJ,EAAEG,MAAM,CAACF,IAAI;QACnE,MAAMI,WAAWL,EAAEM,OAAO,GAAG,IAAI,CAACC,aAAa,GAAG,IAAI,CAACC,YAAY;QAEnE,OAAON,SAASG,WAAW,AAAC,MAAMH,QAASG,WAAW;IAC1D;IAvCA,aAAc;QATd,uBAAYI,OAAM;QAClB,uBAAYL,UAAS;QACrB,uBAAYP,WAAU;QACtB,uBAAYa,YAAW;QAEvB,uBAAQZ,gBAAe;QACvB,uBAAQU,gBAAe;QACvB,uBAAQD,iBAAgB;QAMxB,uBAAQI,QAAO,CACXP,QACAQ,SACAJ,cACAD;YAEA,IAAI,CAACH,MAAM,GAAGA,UAAU;YACxB,IAAI,CAACK,GAAG,GAAGI,KAAKC,GAAG;YAEnB,MAAMC,UAAU,CAAC,CAACH,QAAQI,MAAM,CAC5BhB,CAAAA,IAAKA,EAAEiB,IAAI,KAAK,SAASjB,EAAEiB,IAAI,KAAK,iBAAiBjB,EAAEiB,IAAI,KAAK,eAClEb,MAAM;YAER,IAAIW,SAAS;gBACT,IAAI,CAACjB,YAAY,GAAG,MAAM,IAAI,CAACM,MAAM;gBACrC,IAAI,CAACP,OAAO,GAAG,IAAI,CAACC,YAAY,GAAG;YACvC,OAAO;gBACH,IAAI,CAACA,YAAY,GAAG,MAAO,CAAA,IAAI,CAACM,MAAM,GAAG,CAAA;gBACzC,IAAI,CAACP,OAAO,GAAG;YACnB;YAEA,IAAI,CAACa,QAAQ,GAAGQ,KAAKC,GAAG,CAAC3B,mBAAmB,IAAI,CAACM,YAAY,EAAEL;YAC/D,IAAI,CAACe,YAAY,GAAGA;YACpB,IAAI,CAACD,aAAa,GAAGA;QACzB;QAaAa,uBAAAA,OAAM,CAACC;YACH,OAAOA,IAAIC,OAAO,CAAC;QACvB;QAEAC,uBAAAA,OAAM,CAACF;YACH,OAAO,AAAC,CAAA,MAAMA,GAAE,EAAGC,OAAO,CAAC;QAC/B;QA9CI/B,eAAe,IAAI;IACvB;AA8CJ"}
@@ -2,12 +2,13 @@ export const chartResolutionTitles = {
2
2
  hour: 'by hour',
3
3
  day: 'by day',
4
4
  week: 'by week',
5
- month: 'by month',
5
+ month: 'by month'
6
6
  };
7
- export const defaultDisplay = () => ({
8
- xLabels: true,
9
- yGrid: true,
10
- yLeft: true,
11
- yRight: true,
12
- });
7
+ export const defaultDisplay = ()=>({
8
+ xLabels: true,
9
+ yGrid: true,
10
+ yLeft: true,
11
+ yRight: true
12
+ });
13
+
13
14
  //# sourceMappingURL=const.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"const.js","sourceRoot":"","sources":["../../../../../src/components/charts/line-chart/utils/const.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,qBAAqB,GAAwC;IACtE,IAAI,EAAE,SAAS;IACf,GAAG,EAAE,QAAQ;IACb,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,UAAU;CACpB,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,GAAqB,EAAE,CAAC,CAAC;IACnD,OAAO,EAAE,IAAI;IACb,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,IAAI;CACf,CAAC,CAAC"}
1
+ {"version":3,"sources":["../../../../../src/components/charts/line-chart/utils/const.ts"],"sourcesContent":["import { LineChartResolution, LineChartDisplay } from './interfaces';\n\nexport const chartResolutionTitles: Record<LineChartResolution, string> = {\n hour: 'by hour',\n day: 'by day',\n week: 'by week',\n month: 'by month',\n};\n\nexport const defaultDisplay = (): LineChartDisplay => ({\n xLabels: true,\n yGrid: true,\n yLeft: true,\n yRight: true,\n});\n"],"names":["chartResolutionTitles","hour","day","week","month","defaultDisplay","xLabels","yGrid","yLeft","yRight"],"mappings":"AAEA,OAAO,MAAMA,wBAA6D;IACtEC,MAAM;IACNC,KAAK;IACLC,MAAM;IACNC,OAAO;AACX,EAAE;AAEF,OAAO,MAAMC,iBAAiB,IAAyB,CAAA;QACnDC,SAAS;QACTC,OAAO;QACPC,OAAO;QACPC,QAAQ;IACZ,CAAA,EAAG"}
@@ -1,22 +1,24 @@
1
1
  import { formatMoney } from 'accounting';
2
2
  export const formatters = {
3
- number: (value) => Math.round(value).toLocaleString(),
4
- money: (value) => formatMoney(value, undefined, 0),
5
- moneyShort: (value) => {
6
- const postfixes = ['', 'K', 'M', 'B'];
3
+ number: (value)=>Math.round(value).toLocaleString(),
4
+ money: (value)=>formatMoney(value, undefined, 0),
5
+ moneyShort: (value)=>{
6
+ const postfixes = [
7
+ '',
8
+ 'K',
9
+ 'M',
10
+ 'B'
11
+ ];
7
12
  let val = value;
8
- for (let i = 0; i < postfixes.length; i++) {
13
+ for(let i = 0; i < postfixes.length; i++){
9
14
  if (val < 1000 || i === postfixes.length - 1) {
10
15
  return formatMoney(Math.round(val), undefined, 0) + postfixes[i];
11
16
  }
12
17
  val = val / 1000;
13
18
  }
14
19
  return '';
15
- },
20
+ }
16
21
  };
17
- export const getFormatter = (format) => format
18
- ? typeof format === 'string'
19
- ? formatters[format] || formatters.number
20
- : format
21
- : formatters.number;
22
+ export const getFormatter = (format)=>format ? typeof format === 'string' ? formatters[format] || formatters.number : format : formatters.number;
23
+
22
24
  //# sourceMappingURL=formatters.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatters.js","sourceRoot":"","sources":["../../../../../src/components/charts/line-chart/utils/formatters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAOzC,MAAM,CAAC,MAAM,UAAU,GAGnB;IACA,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,cAAc,EAAE;IAC7D,KAAK,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAC1D,UAAU,EAAE,CAAC,KAAa,EAAE,EAAE;QAC1B,MAAM,SAAS,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACtC,IAAI,GAAG,GAAG,KAAK,CAAC;QAEhB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC,KAAK,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3C,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YACrE,CAAC;YAED,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;QACrB,CAAC;QAED,OAAO,EAAE,CAAC;IACd,CAAC;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CACxB,MAAoC,EACN,EAAE,CAChC,MAAM;IACF,CAAC,CAAC,OAAO,MAAM,KAAK,QAAQ;QACxB,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,MAAM;QACzC,CAAC,CAAC,MAAM;IACZ,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC"}
1
+ {"version":3,"sources":["../../../../../src/components/charts/line-chart/utils/formatters.ts"],"sourcesContent":["import { formatMoney } from 'accounting';\nimport {\n LineChartDisplayValueFormat,\n LineChartDisplayValueFormatter,\n LineChartDisplayValueFormatterName,\n} from './interfaces';\n\nexport const formatters: Record<\n LineChartDisplayValueFormatterName,\n LineChartDisplayValueFormatter\n> = {\n number: (value: number) => Math.round(value).toLocaleString(),\n money: (value: number) => formatMoney(value, undefined, 0),\n moneyShort: (value: number) => {\n const postfixes = ['', 'K', 'M', 'B'];\n let val = value;\n\n for (let i = 0; i < postfixes.length; i++) {\n if (val < 1000 || i === postfixes.length - 1) {\n return formatMoney(Math.round(val), undefined, 0) + postfixes[i];\n }\n\n val = val / 1000;\n }\n\n return '';\n },\n};\n\nexport const getFormatter = (\n format?: LineChartDisplayValueFormat\n): LineChartDisplayValueFormatter =>\n format\n ? typeof format === 'string'\n ? formatters[format] || formatters.number\n : format\n : formatters.number;\n"],"names":["formatMoney","formatters","number","value","Math","round","toLocaleString","money","undefined","moneyShort","postfixes","val","i","length","getFormatter","format"],"mappings":"AAAA,SAASA,WAAW,QAAQ,aAAa;AAOzC,OAAO,MAAMC,aAGT;IACAC,QAAQ,CAACC,QAAkBC,KAAKC,KAAK,CAACF,OAAOG,cAAc;IAC3DC,OAAO,CAACJ,QAAkBH,YAAYG,OAAOK,WAAW;IACxDC,YAAY,CAACN;QACT,MAAMO,YAAY;YAAC;YAAI;YAAK;YAAK;SAAI;QACrC,IAAIC,MAAMR;QAEV,IAAK,IAAIS,IAAI,GAAGA,IAAIF,UAAUG,MAAM,EAAED,IAAK;YACvC,IAAID,MAAM,QAAQC,MAAMF,UAAUG,MAAM,GAAG,GAAG;gBAC1C,OAAOb,YAAYI,KAAKC,KAAK,CAACM,MAAMH,WAAW,KAAKE,SAAS,CAACE,EAAE;YACpE;YAEAD,MAAMA,MAAM;QAChB;QAEA,OAAO;IACX;AACJ,EAAE;AAEF,OAAO,MAAMG,eAAe,CACxBC,SAEAA,SACM,OAAOA,WAAW,WACdd,UAAU,CAACc,OAAO,IAAId,WAAWC,MAAM,GACvCa,SACJd,WAAWC,MAAM,CAAC"}
@@ -1,2 +1,3 @@
1
- export {};
1
+ export { };
2
+
2
3
  //# sourceMappingURL=interfaces.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../../src/components/charts/line-chart/utils/interfaces.ts"],"names":[],"mappings":""}
1
+ {"version":3,"sources":["../../../../../src/components/charts/line-chart/utils/interfaces.ts"],"sourcesContent":["import { ReactElement } from 'react';\n\nexport type LineChartResolution = 'hour' | 'day' | 'week' | 'month';\nexport type LineChartMetricType = 'line' | 'bar' | 'stacked-bar' | 'grouped-bar';\nexport type LineChartMetricsTitlePosition = 'top' | 'top-right' | 'bottom';\n\nexport interface LineChartMetricOpts {\n dashed?: boolean;\n}\n\nexport interface LineChartMetric {\n id: number;\n color: string;\n title: string;\n opacity?: number;\n isRight?: boolean;\n type?: LineChartMetricType;\n opts?: LineChartMetricOpts;\n}\n\nexport interface LineChartPeriod {\n from: Date;\n to?: Date;\n partial?: boolean;\n}\n\nexport type LineChartMetricValueOpts =\n | undefined\n | {\n color?: string;\n };\n\nexport interface LineChartMetricValues {\n metricId: number;\n values: number[];\n opts?: LineChartMetricValueOpts[];\n}\n\nexport interface LineChartData {\n periods: LineChartPeriod[];\n metricValues: LineChartMetricValues[];\n resolution: LineChartResolution;\n}\n\nexport type LineChartDisplayValueFormatterName = 'number' | 'money' | 'moneyShort';\nexport type LineChartDisplayValueFormatter = (val: number) => string;\nexport type LineChartDisplayValueFormat =\n | LineChartDisplayValueFormatter\n | LineChartDisplayValueFormatterName;\n\nexport interface LineChartDisplay {\n xLabels: boolean;\n yGrid: boolean;\n yLeft: boolean;\n yRight: boolean;\n yLeftFormat?: LineChartDisplayValueFormat;\n yRightFormat?: LineChartDisplayValueFormat;\n metricsTitlePosition?: LineChartMetricsTitlePosition;\n metricsLeftFormat?: LineChartDisplayValueFormat;\n metricsRightFormat?: LineChartDisplayValueFormat;\n}\n\nexport interface LineChartProps extends LineChartData {\n maxRange?: number;\n titleY?: string;\n maxRangeRight?: number;\n titleYRight?: string;\n\n metrics: LineChartMetric[];\n from?: Date;\n display?: Partial<LineChartDisplay>;\n className?: string;\n classNameTitle?: string;\n}\n\nexport interface LineChartCardProps extends LineChartProps {\n title: string;\n headerRight?: ReactElement;\n loading?: boolean;\n grayControls?: boolean;\n}\n"],"names":[],"mappings":"AA2EA,WAKC"}
@@ -1,2 +1,3 @@
1
- export {};
1
+ export { };
2
+
2
3
  //# sourceMappingURL=internal-interfaces.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"internal-interfaces.js","sourceRoot":"","sources":["../../../../../src/components/charts/line-chart/utils/internal-interfaces.ts"],"names":[],"mappings":""}
1
+ {"version":3,"sources":["../../../../../src/components/charts/line-chart/utils/internal-interfaces.ts"],"sourcesContent":["import { LineChartMetricOpts, LineChartMetricType, LineChartMetricValueOpts } from './interfaces';\n\nexport interface SideMetricsSettings {\n maxRange: number;\n maxValue: number;\n title: string;\n values: string[];\n width: number;\n}\n\nexport interface ChartMetric {\n id: number;\n color: string;\n title: string;\n isRight: boolean;\n type: LineChartMetricType;\n opts: LineChartMetricOpts;\n values: number[];\n opacity?: number;\n valuesOpts?: LineChartMetricValueOpts[];\n}\n\nexport type ChartXLabels = [string, number][];\n"],"names":[],"mappings":"AAsBA,WAA8C"}
@@ -1,2 +1,3 @@
1
- export const keyVal = (val, i) => `${val}-${i}`;
1
+ export const keyVal = (val, i)=>`${val}-${i}`;
2
+
2
3
  //# sourceMappingURL=key.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"key.js","sourceRoot":"","sources":["../../../../../src/components/charts/line-chart/utils/key.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,GAAoB,EAAE,CAAS,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC"}
1
+ {"version":3,"sources":["../../../../../src/components/charts/line-chart/utils/key.ts"],"sourcesContent":["export const keyVal = (val: string | number, i: number) => `${val}-${i}`;\n"],"names":["keyVal","val","i"],"mappings":"AAAA,OAAO,MAAMA,SAAS,CAACC,KAAsBC,IAAc,GAAGD,IAAI,CAAC,EAAEC,GAAG,CAAC"}
@@ -2,96 +2,100 @@ import moment from 'moment';
2
2
  const xLabelFormats = {
3
3
  hour: 'HH:mm',
4
4
  day: 'MM/DD',
5
- month: 'MMM',
5
+ month: 'MMM'
6
6
  };
7
- export const getXLabels = (periods, resolution, width) => {
7
+ export const getXLabels = (periods, resolution, width)=>{
8
8
  let labels = [];
9
9
  if (resolution === 'hour') {
10
10
  if (width / periods.length < 76) {
11
11
  let day = -1;
12
- for (const p of periods) {
12
+ for (const p of periods){
13
13
  const d = p.from.getDay();
14
14
  if (d === day) {
15
15
  labels[labels.length - 1][1]++;
16
16
  continue;
17
17
  }
18
18
  day = d;
19
- labels.push([moment(p.from).format(xLabelFormats.day), 1]);
19
+ labels.push([
20
+ moment(p.from).format(xLabelFormats.day),
21
+ 1
22
+ ]);
20
23
  }
21
- }
22
- else {
23
- labels = periods.map(p => {
24
- var _a;
24
+ } else {
25
+ labels = periods.map((p)=>{
26
+ var _p_to;
25
27
  return [
26
- moment(p.from).format(xLabelFormats.hour) +
27
- ' - ' +
28
- moment((_a = p.to) !== null && _a !== void 0 ? _a : p.from).format(xLabelFormats.hour),
29
- 1,
28
+ moment(p.from).format(xLabelFormats.hour) + ' - ' + moment((_p_to = p.to) !== null && _p_to !== void 0 ? _p_to : p.from).format(xLabelFormats.hour),
29
+ 1
30
30
  ];
31
31
  });
32
32
  }
33
- }
34
- else if (resolution === 'day') {
33
+ } else if (resolution === 'day') {
35
34
  if (width / periods.length < 40) {
36
35
  let month = -1;
37
- for (const p of periods) {
36
+ for (const p of periods){
38
37
  const m = p.from.getMonth();
39
38
  if (m === month) {
40
39
  labels[labels.length - 1][1]++;
41
40
  continue;
42
41
  }
43
42
  month = m;
44
- labels.push([moment(p.from).format(xLabelFormats.month), 1]);
43
+ labels.push([
44
+ moment(p.from).format(xLabelFormats.month),
45
+ 1
46
+ ]);
45
47
  }
48
+ } else {
49
+ labels = periods.map((p)=>[
50
+ moment(p.from).format(xLabelFormats.day),
51
+ 1
52
+ ]);
46
53
  }
47
- else {
48
- labels = periods.map(p => [moment(p.from).format(xLabelFormats.day), 1]);
49
- }
50
- }
51
- else if (resolution === 'week') {
54
+ } else if (resolution === 'week') {
52
55
  if (width / periods.length < 76) {
53
56
  let month = -1;
54
- for (const p of periods) {
57
+ for (const p of periods){
55
58
  const m = p.from.getMonth();
56
- if (m === month || (month > 0 && p.from.getDate() < 4)) {
59
+ if (m === month || month > 0 && p.from.getDate() < 4) {
57
60
  labels[labels.length - 1][1]++;
58
61
  continue;
59
62
  }
60
63
  if (p.to && p.to.getDate() > 3) {
61
64
  month = p.to.getMonth();
62
- labels.push([moment(p.to).format(xLabelFormats.month), 1]);
63
- }
64
- else {
65
+ labels.push([
66
+ moment(p.to).format(xLabelFormats.month),
67
+ 1
68
+ ]);
69
+ } else {
65
70
  month = m;
66
- labels.push([moment(p.from).format(xLabelFormats.month), 1]);
71
+ labels.push([
72
+ moment(p.from).format(xLabelFormats.month),
73
+ 1
74
+ ]);
67
75
  }
68
76
  }
69
- }
70
- else {
71
- labels = periods.map(p => {
72
- var _a;
77
+ } else {
78
+ labels = periods.map((p)=>{
79
+ var _p_to;
73
80
  return [
74
- moment(p.from).format(xLabelFormats.day) +
75
- ' - ' +
76
- moment((_a = p.to) !== null && _a !== void 0 ? _a : p.from).format(xLabelFormats.day),
77
- 1,
81
+ moment(p.from).format(xLabelFormats.day) + ' - ' + moment((_p_to = p.to) !== null && _p_to !== void 0 ? _p_to : p.from).format(xLabelFormats.day),
82
+ 1
78
83
  ];
79
84
  });
80
85
  }
81
- }
82
- else if (resolution === 'month') {
83
- labels = periods.map(p => [moment(p.from).format(xLabelFormats.month), 1]);
86
+ } else if (resolution === 'month') {
87
+ labels = periods.map((p)=>[
88
+ moment(p.from).format(xLabelFormats.month),
89
+ 1
90
+ ]);
84
91
  }
85
92
  return labels;
86
93
  };
87
94
  export const periodDateTitleFormatter = {
88
- hour: period => moment(period.from).format('MM/DD') +
89
- ' ' +
90
- moment(period.from).format('HH:mm') +
91
- ' - ' +
92
- moment(period.to).format('HH:mm'),
93
- day: period => moment(period.from).format('MMMM DD, YYYY'),
94
- month: period => moment(period.from).format('MMMM YYYY'),
95
- week: period => moment(period.from).format('MM/DD/YYYY') + '-' + moment(period.to).format('MM/DD/YYYY'),
95
+ hour: (period)=>moment(period.from).format('MM/DD') + ' ' + moment(period.from).format('HH:mm') + ' - ' + moment(period.to).format('HH:mm'),
96
+ day: (period)=>moment(period.from).format('MMMM DD, YYYY'),
97
+ month: (period)=>moment(period.from).format('MMMM YYYY'),
98
+ week: (period)=>moment(period.from).format('MM/DD/YYYY') + '-' + moment(period.to).format('MM/DD/YYYY')
96
99
  };
100
+
97
101
  //# sourceMappingURL=labels.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"labels.js","sourceRoot":"","sources":["../../../../../src/components/charts/line-chart/utils/labels.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/components/charts/line-chart/utils/labels.ts"],"sourcesContent":["import moment from 'moment';\nimport { LineChartPeriod, LineChartResolution } from './interfaces';\nimport { ChartXLabels } from './internal-interfaces';\n\nconst xLabelFormats = {\n hour: 'HH:mm',\n day: 'MM/DD',\n month: 'MMM',\n};\n\nexport const getXLabels = (\n periods: LineChartPeriod[],\n resolution: LineChartResolution,\n width: number\n): ChartXLabels => {\n let labels: [string, number][] = [];\n\n if (resolution === 'hour') {\n if (width / periods.length < 76) {\n let day = -1;\n\n for (const p of periods) {\n const d = p.from.getDay();\n\n if (d === day) {\n labels[labels.length - 1][1]++;\n\n continue;\n }\n\n day = d;\n labels.push([moment(p.from).format(xLabelFormats.day), 1]);\n }\n } else {\n labels = periods.map(p => [\n moment(p.from).format(xLabelFormats.hour) +\n ' - ' +\n moment(p.to ?? p.from).format(xLabelFormats.hour),\n 1,\n ]);\n }\n } else if (resolution === 'day') {\n if (width / periods.length < 40) {\n let month = -1;\n\n for (const p of periods) {\n const m = p.from.getMonth();\n\n if (m === month) {\n labels[labels.length - 1][1]++;\n\n continue;\n }\n\n month = m;\n labels.push([moment(p.from).format(xLabelFormats.month), 1]);\n }\n } else {\n labels = periods.map(p => [moment(p.from).format(xLabelFormats.day), 1]);\n }\n } else if (resolution === 'week') {\n if (width / periods.length < 76) {\n let month = -1;\n\n for (const p of periods) {\n const m = p.from.getMonth();\n\n if (m === month || (month > 0 && p.from.getDate() < 4)) {\n labels[labels.length - 1][1]++;\n\n continue;\n }\n\n if (p.to && p.to.getDate() > 3) {\n month = p.to.getMonth();\n labels.push([moment(p.to).format(xLabelFormats.month), 1]);\n } else {\n month = m;\n labels.push([moment(p.from).format(xLabelFormats.month), 1]);\n }\n }\n } else {\n labels = periods.map(p => [\n moment(p.from).format(xLabelFormats.day) +\n ' - ' +\n moment(p.to ?? p.from).format(xLabelFormats.day),\n 1,\n ]);\n }\n } else if (resolution === 'month') {\n labels = periods.map(p => [moment(p.from).format(xLabelFormats.month), 1]);\n }\n\n return labels;\n};\n\nexport const periodDateTitleFormatter: Record<\n LineChartResolution,\n (period: LineChartPeriod) => string\n> = {\n hour: period =>\n moment(period.from).format('MM/DD') +\n ' ' +\n moment(period.from).format('HH:mm') +\n ' - ' +\n moment(period.to).format('HH:mm'),\n day: period => moment(period.from).format('MMMM DD, YYYY'),\n month: period => moment(period.from).format('MMMM YYYY'),\n week: period =>\n moment(period.from).format('MM/DD/YYYY') + '-' + moment(period.to).format('MM/DD/YYYY'),\n};\n"],"names":["moment","xLabelFormats","hour","day","month","getXLabels","periods","resolution","width","labels","length","p","d","from","getDay","push","format","map","to","m","getMonth","getDate","periodDateTitleFormatter","period","week"],"mappings":"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"}