@servicetitan/marketing-ui 1.5.0 → 1.8.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.
- package/dist/components/ads/ads-stat.js +4 -4
- package/dist/components/ads/ads-stat.js.map +1 -1
- package/dist/components/charts/funnel-chart/components/funnel-chart.js +4 -4
- package/dist/components/charts/funnel-chart/components/funnel-chart.js.map +1 -1
- package/dist/components/charts/funnel-chart/components/funnel-svg.js +4 -4
- package/dist/components/charts/funnel-chart/components/funnel-svg.js.map +1 -1
- package/dist/components/charts/funnel-chart/funnel-chart.stories.js +5 -5
- package/dist/components/charts/funnel-chart/funnel-chart.stories.js.map +1 -1
- package/dist/components/charts/line-chart/components/body.js +11 -11
- package/dist/components/charts/line-chart/components/body.js.map +1 -1
- package/dist/components/charts/line-chart/components/body.module.less +1 -1
- package/dist/components/charts/line-chart/components/container.js +5 -5
- package/dist/components/charts/line-chart/components/container.js.map +1 -1
- package/dist/components/charts/line-chart/components/hover-popover.js +7 -7
- package/dist/components/charts/line-chart/components/hover-popover.js.map +1 -1
- package/dist/components/charts/line-chart/components/hover-popover.module.less +1 -1
- package/dist/components/charts/line-chart/components/sidebar.js +3 -3
- package/dist/components/charts/line-chart/components/sidebar.js.map +1 -1
- package/dist/components/charts/line-chart/components/sidebar.module.less +2 -2
- package/dist/components/charts/line-chart/components/stuff.js +6 -6
- package/dist/components/charts/line-chart/components/stuff.js.map +1 -1
- package/dist/components/charts/line-chart/components/svg-bars.js +9 -9
- package/dist/components/charts/line-chart/components/svg-bars.js.map +1 -1
- package/dist/components/charts/line-chart/components/svg-body.js +6 -6
- package/dist/components/charts/line-chart/components/svg-body.js.map +1 -1
- package/dist/components/charts/line-chart/components/svg-lines.js +5 -5
- package/dist/components/charts/line-chart/components/svg-lines.js.map +1 -1
- package/dist/components/charts/line-chart/line-chart.stories.js +7 -7
- package/dist/components/charts/line-chart/line-chart.stories.js.map +1 -1
- package/dist/components/charts/line-chart/stores/line-chart.store.d.ts.map +1 -1
- package/dist/components/charts/line-chart/stores/line-chart.store.js +10 -7
- package/dist/components/charts/line-chart/stores/line-chart.store.js.map +1 -1
- package/dist/components/charts/line-chart/stores/svg.store.js +2 -2
- package/dist/components/charts/line-chart/stores/svg.store.js.map +1 -1
- package/dist/components/charts/line-chart/utils/formatters.js +2 -2
- package/dist/components/charts/line-chart/utils/formatters.js.map +1 -1
- package/dist/components/charts/line-chart/utils/labels.js +16 -16
- package/dist/components/charts/line-chart/utils/labels.js.map +1 -1
- package/dist/components/charts/pie-chart/components/pie-chart.js +4 -4
- package/dist/components/charts/pie-chart/components/pie-chart.js.map +1 -1
- package/dist/components/charts/pie-chart/components/pie.js +14 -14
- package/dist/components/charts/pie-chart/components/pie.js.map +1 -1
- package/dist/components/charts/pie-chart/pie-chart.stories.js +3 -3
- package/dist/components/charts/pie-chart/pie-chart.stories.js.map +1 -1
- package/dist/components/charts/pie-chart/utils/const.js +1 -1
- package/dist/components/charts/pie-chart/utils/const.js.map +1 -1
- package/dist/components/image-cropper/image-cropper.js +2 -2
- package/dist/components/image-cropper/image-cropper.js.map +1 -1
- package/dist/components/image-cropper/image-cropper.stories.js +2 -2
- package/dist/components/image-cropper/image-cropper.stories.js.map +1 -1
- package/dist/components/stat/stat-card.d.ts.map +1 -1
- package/dist/components/stat/stat-card.js +10 -9
- package/dist/components/stat/stat-card.js.map +1 -1
- package/dist/components/stat/stat-card.module.less +7 -0
- package/dist/components/stat/stat-cards.stories.js +5 -5
- package/dist/components/stat/stat-cards.stories.js.map +1 -1
- package/dist/components/stat/stat-extended-card.d.ts.map +1 -1
- package/dist/components/stat/stat-extended-card.js +22 -2
- package/dist/components/stat/stat-extended-card.js.map +1 -1
- package/dist/components/stat/stat-extended-card.stories.js +4 -4
- package/dist/components/stat/stat-extended-card.stories.js.map +1 -1
- package/dist/components/ui/centered-spinner.js +1 -1
- package/dist/components/ui/centered-spinner.js.map +1 -1
- package/dist/components/ui/centered-spinner.stories.js +4 -4
- package/dist/components/ui/centered-spinner.stories.js.map +1 -1
- package/dist/components/ui/date-range-picker/date-range-picker.js +5 -5
- package/dist/components/ui/date-range-picker/date-range-picker.js.map +1 -1
- package/dist/components/ui/date-range-picker/date-range-picker.module.less +1 -1
- package/dist/components/ui/date-range-picker/date-range-picker.stories.js +3 -3
- package/dist/components/ui/date-range-picker/date-range-picker.stories.js.map +1 -1
- package/dist/components/ui/disabled-button.js +1 -1
- package/dist/components/ui/disabled-button.js.map +1 -1
- package/dist/components/ui/line-text/line-text-body.stories.js +3 -3
- package/dist/components/ui/line-text/line-text-body.stories.js.map +1 -1
- package/dist/components/ui/line-text/line-text-head.stories.js +3 -3
- package/dist/components/ui/line-text/line-text-head.stories.js.map +1 -1
- package/dist/components/ui/line-text/line-text.js +7 -7
- package/dist/components/ui/line-text/line-text.js.map +1 -1
- package/dist/utils/date/date-range-picker-options.js +2 -2
- package/dist/utils/date/date-range-picker-options.js.map +1 -1
- package/dist/utils/date/date-range-picker-state.js +1 -1
- package/dist/utils/date/date-range-picker-state.js.map +1 -1
- package/dist/utils/date/date.js +1 -1
- package/dist/utils/date/date.js.map +1 -1
- package/dist/utils/formatters.js +8 -8
- package/dist/utils/formatters.js.map +1 -1
- package/dist/utils/use-client-rect.js +4 -4
- package/dist/utils/use-client-rect.js.map +1 -1
- package/package.json +2 -2
- package/src/components/charts/line-chart/components/body.module.less +1 -1
- package/src/components/charts/line-chart/components/body.tsx +1 -1
- package/src/components/charts/line-chart/components/hover-popover.module.less +1 -1
- package/src/components/charts/line-chart/components/sidebar.module.less +2 -2
- package/src/components/charts/line-chart/components/stuff.tsx +1 -1
- package/src/components/charts/line-chart/stores/line-chart.store.ts +5 -2
- package/src/components/stat/stat-card.module.less +7 -0
- package/src/components/stat/stat-card.module.less.d.ts +1 -0
- package/src/components/stat/stat-card.tsx +3 -1
- package/src/components/stat/stat-extended-card.tsx +4 -3
- package/src/components/ui/date-range-picker/date-range-picker.module.less +1 -1
- package/src/utils/__tests__/formatters.test.ts +1 -1
- package/src/utils/formatters.ts +1 -1
package/dist/utils/formatters.js
CHANGED
|
@@ -25,7 +25,7 @@ const formatPercentValue = (value) => {
|
|
|
25
25
|
if (!value) {
|
|
26
26
|
return '0';
|
|
27
27
|
}
|
|
28
|
-
const valueMain = value ? Math.abs(Math.
|
|
28
|
+
const valueMain = value ? Math.abs(Math.round(value)) : 0;
|
|
29
29
|
if (valueMain > 0) {
|
|
30
30
|
return accounting.formatNumber(valueMain, 0);
|
|
31
31
|
}
|
|
@@ -45,27 +45,27 @@ const formatMoney = (value) => (value < 0 ? '-' : '') + accounting.formatMoney(M
|
|
|
45
45
|
exports.formatMoney = formatMoney;
|
|
46
46
|
const formatPercent100 = (value) => `${formatPercentValue(value)}%`;
|
|
47
47
|
exports.formatPercent100 = formatPercent100;
|
|
48
|
-
const formatPercent = (value) => exports.formatPercent100(value * 100);
|
|
48
|
+
const formatPercent = (value) => (0, exports.formatPercent100)(value * 100);
|
|
49
49
|
exports.formatPercent = formatPercent;
|
|
50
50
|
const formatNumber = (value) => accounting.formatNumber(value, 0, ',');
|
|
51
51
|
exports.formatNumber = formatNumber;
|
|
52
52
|
const formatValue = (value, format) => {
|
|
53
53
|
if (format === 'money') {
|
|
54
|
-
return exports.formatMoney(value);
|
|
54
|
+
return (0, exports.formatMoney)(value);
|
|
55
55
|
}
|
|
56
56
|
if (format === 'percent') {
|
|
57
|
-
return exports.formatPercent(value);
|
|
57
|
+
return (0, exports.formatPercent)(value);
|
|
58
58
|
}
|
|
59
59
|
if (format === 'percent-100') {
|
|
60
|
-
return exports.formatPercent100(value);
|
|
60
|
+
return (0, exports.formatPercent100)(value);
|
|
61
61
|
}
|
|
62
62
|
if (format === 'number') {
|
|
63
|
-
return exports.formatNumber(value);
|
|
63
|
+
return (0, exports.formatNumber)(value);
|
|
64
64
|
}
|
|
65
65
|
if (format === 'rate') {
|
|
66
|
-
return exports.formatRate(value);
|
|
66
|
+
return (0, exports.formatRate)(value);
|
|
67
67
|
}
|
|
68
|
-
return exports.formatNumber(value);
|
|
68
|
+
return (0, exports.formatNumber)(value);
|
|
69
69
|
};
|
|
70
70
|
exports.formatValue = formatValue;
|
|
71
71
|
//# sourceMappingURL=formatters.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatters.js","sourceRoot":"","sources":["../../src/utils/formatters.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,uDAAyC;AAIzC,MAAM,kBAAkB,GAAG,CAAC,KAAa,EAAU,EAAE;IACjD,IAAI,CAAC,KAAK,EAAE;QACR,OAAO,GAAG,CAAC;KACd;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE1D,IAAI,SAAS,GAAG,CAAC,EAAE;QACf,OAAO,UAAU,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;KAChD;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,SAAS,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;IAE1E,OAAO,KAAK,YAAY,EAAE,CAAC;AAC/B,CAAC,CAAC;AAEK,MAAM,UAAU,GAAG,CAAC,KAAa,EAAU,EAAE;IAChD,IAAI,CAAC,KAAK,EAAE;QACR,OAAO,MAAM,CAAC;KACjB;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,SAAS,GAAG,EAAE,CAAC;IAE7D,OAAO,GAAG,SAAS,IAAI,YAAY,GAAG,CAAC;AAC3C,CAAC,CAAC;AATW,QAAA,UAAU,cASrB;AAEK,MAAM,WAAW,GAAG,CAAC,KAAa,EAAU,EAAE,CACjD,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;AADtE,QAAA,WAAW,eAC2D;AAC5E,MAAM,gBAAgB,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC;AAA9E,QAAA,gBAAgB,oBAA8D;AACpF,MAAM,aAAa,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,wBAAgB,
|
|
1
|
+
{"version":3,"file":"formatters.js","sourceRoot":"","sources":["../../src/utils/formatters.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,uDAAyC;AAIzC,MAAM,kBAAkB,GAAG,CAAC,KAAa,EAAU,EAAE;IACjD,IAAI,CAAC,KAAK,EAAE;QACR,OAAO,GAAG,CAAC;KACd;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE1D,IAAI,SAAS,GAAG,CAAC,EAAE;QACf,OAAO,UAAU,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;KAChD;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,SAAS,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;IAE1E,OAAO,KAAK,YAAY,EAAE,CAAC;AAC/B,CAAC,CAAC;AAEK,MAAM,UAAU,GAAG,CAAC,KAAa,EAAU,EAAE;IAChD,IAAI,CAAC,KAAK,EAAE;QACR,OAAO,MAAM,CAAC;KACjB;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,SAAS,GAAG,EAAE,CAAC;IAE7D,OAAO,GAAG,SAAS,IAAI,YAAY,GAAG,CAAC;AAC3C,CAAC,CAAC;AATW,QAAA,UAAU,cASrB;AAEK,MAAM,WAAW,GAAG,CAAC,KAAa,EAAU,EAAE,CACjD,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;AADtE,QAAA,WAAW,eAC2D;AAC5E,MAAM,gBAAgB,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC;AAA9E,QAAA,gBAAgB,oBAA8D;AACpF,MAAM,aAAa,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,IAAA,wBAAgB,EAAC,KAAK,GAAG,GAAG,CAAC,CAAC;AAAzE,QAAA,aAAa,iBAA4D;AAC/E,MAAM,YAAY,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;AAAjF,QAAA,YAAY,gBAAqE;AAEvF,MAAM,WAAW,GAAG,CAAC,KAAa,EAAE,MAAwB,EAAE,EAAE;IACnE,IAAI,MAAM,KAAK,OAAO,EAAE;QACpB,OAAO,IAAA,mBAAW,EAAC,KAAK,CAAC,CAAC;KAC7B;IAED,IAAI,MAAM,KAAK,SAAS,EAAE;QACtB,OAAO,IAAA,qBAAa,EAAC,KAAK,CAAC,CAAC;KAC/B;IAED,IAAI,MAAM,KAAK,aAAa,EAAE;QAC1B,OAAO,IAAA,wBAAgB,EAAC,KAAK,CAAC,CAAC;KAClC;IAED,IAAI,MAAM,KAAK,QAAQ,EAAE;QACrB,OAAO,IAAA,oBAAY,EAAC,KAAK,CAAC,CAAC;KAC9B;IAED,IAAI,MAAM,KAAK,MAAM,EAAE;QACnB,OAAO,IAAA,kBAAU,EAAC,KAAK,CAAC,CAAC;KAC5B;IAED,OAAO,IAAA,oBAAY,EAAC,KAAK,CAAC,CAAC;AAC/B,CAAC,CAAC;AAtBW,QAAA,WAAW,eAsBtB"}
|
|
@@ -22,14 +22,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
22
22
|
exports.useClientRect = void 0;
|
|
23
23
|
const react_1 = __importStar(require("react"));
|
|
24
24
|
const useClientRect = () => {
|
|
25
|
-
const element = react_1.useRef(null);
|
|
26
|
-
const [rect, setRect] = react_1.useState(null);
|
|
27
|
-
const handleResize = react_1.useCallback(() => {
|
|
25
|
+
const element = (0, react_1.useRef)(null);
|
|
26
|
+
const [rect, setRect] = (0, react_1.useState)(null);
|
|
27
|
+
const handleResize = (0, react_1.useCallback)(() => {
|
|
28
28
|
if (element.current) {
|
|
29
29
|
setRect(element.current.getBoundingClientRect());
|
|
30
30
|
}
|
|
31
31
|
}, []);
|
|
32
|
-
react_1.useEffect(() => {
|
|
32
|
+
(0, react_1.useEffect)(() => {
|
|
33
33
|
if (!rect) {
|
|
34
34
|
return;
|
|
35
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-client-rect.js","sourceRoot":"","sources":["../../src/utils/use-client-rect.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAwE;AAEjE,MAAM,aAAa,GAAG,GAI3B,EAAE;IACA,MAAM,OAAO,GAAG,cAAM,
|
|
1
|
+
{"version":3,"file":"use-client-rect.js","sourceRoot":"","sources":["../../src/utils/use-client-rect.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAwE;AAEjE,MAAM,aAAa,GAAG,GAI3B,EAAE;IACA,MAAM,OAAO,GAAG,IAAA,cAAM,EAAqB,IAAI,CAAC,CAAC;IACjD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,gBAAQ,EAAiB,IAAI,CAAC,CAAC;IAEvD,MAAM,YAAY,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE;QAClC,IAAI,OAAO,CAAC,OAAO,EAAE;YACjB,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;SACpD;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAA,iBAAS,EAAC,GAAG,EAAE;QACX,IAAI,CAAC,IAAI,EAAE;YACP,OAAO;SACV;QAED;;;WAGG;QACH,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE;;YACvB,MAAM,OAAO,GAAG,MAAA,OAAO,CAAC,OAAO,0CAAE,qBAAqB,EAAE,CAAC;YAEzD,IACI,OAAO;gBACP,IAAI;gBACJ,CAAC,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK;oBACzB,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;oBAC9B,OAAO,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;oBACpB,OAAO,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAC3B;gBACE,OAAO,CAAC,OAAO,CAAC,CAAC;aACpB;QACL,CAAC,EAAE,CAAC,CAAC,CAAC;QAEN,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,eAAK,CAAC,WAAW,CACzB,CAAC,IAAwB,EAAE,EAAE;QACzB,IAAI,IAAI,KAAK,IAAI,EAAE;YACf,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YAChD,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;SACzC;aAAM;YACH,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YACnD,OAAO,CAAC,IAAI,CAAC,CAAC;SACjB;QACD,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAC3B,CAAC,EACD,CAAC,YAAY,CAAC,CACjB,CAAC;IAEF,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AACxC,CAAC,CAAC;AAxDW,QAAA,aAAa,iBAwDxB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@servicetitan/marketing-ui",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.8.0",
|
|
4
4
|
"description": "Marketing UI component and utils",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -50,5 +50,5 @@
|
|
|
50
50
|
"less": true,
|
|
51
51
|
"webpack": false
|
|
52
52
|
},
|
|
53
|
-
"gitHead": "
|
|
53
|
+
"gitHead": "fbd5f09b2656da18e7dd0e03d6a7aa05cc4f8cc6"
|
|
54
54
|
}
|
|
@@ -98,7 +98,7 @@ export const Body: React.FC<{ classNameTitle?: string }> = provide({ singletons:
|
|
|
98
98
|
/>
|
|
99
99
|
)}
|
|
100
100
|
{display.metricsTitlePosition === 'bottom' && (
|
|
101
|
-
<Stack direction="row" justifyContent="center" className="p-
|
|
101
|
+
<Stack direction="row" justifyContent="center" className="p-3">
|
|
102
102
|
<MetricsTitle metrics={metrics} />
|
|
103
103
|
</Stack>
|
|
104
104
|
)}
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
}
|
|
64
64
|
|
|
65
65
|
.sidebar-no-title {
|
|
66
|
-
padding: 0 0 0 @spacing-2;
|
|
66
|
+
padding: @spacing-0 @spacing-0 @spacing-0 @spacing-2;
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
69
|
|
|
@@ -82,6 +82,6 @@
|
|
|
82
82
|
}
|
|
83
83
|
|
|
84
84
|
.sidebar-no-title {
|
|
85
|
-
padding: 0 @spacing-2 0 0;
|
|
85
|
+
padding: @spacing-0 @spacing-2 @spacing-0 @spacing-0;
|
|
86
86
|
}
|
|
87
87
|
}
|
|
@@ -43,10 +43,13 @@ const getSideMetricsSettings = (
|
|
|
43
43
|
.filter(metricValues => stackedBarMetricIDs.includes(metricValues.metricId))
|
|
44
44
|
.map(metric => metric.values);
|
|
45
45
|
|
|
46
|
-
const summedStackedMetrics = stackChartMetricValues[0]
|
|
46
|
+
const summedStackedMetrics = stackChartMetricValues[0]?.map((value, i) =>
|
|
47
47
|
stackChartMetricValues.reduce((sum, metricValues) => sum + metricValues[i], 0)
|
|
48
48
|
);
|
|
49
|
-
|
|
49
|
+
|
|
50
|
+
if (summedStackedMetrics?.length) {
|
|
51
|
+
maxRange = Math.max(...summedStackedMetrics, maxRange);
|
|
52
|
+
}
|
|
50
53
|
}
|
|
51
54
|
|
|
52
55
|
if (!maxRange) {
|
|
@@ -55,7 +55,8 @@ export const StatDiff: React.FC<StatDiffProps> = ({
|
|
|
55
55
|
}) => {
|
|
56
56
|
const percents = format === 'percent';
|
|
57
57
|
const [absDiff, diffPercent, isIncrease] = calculateDiff(value ?? 0, prev ?? 0, percents);
|
|
58
|
-
|
|
58
|
+
const diff = absDiff === 0 ? '' : isIncrease ? '▲ ' : '▼ ';
|
|
59
|
+
let text = '';
|
|
59
60
|
|
|
60
61
|
if (percents) {
|
|
61
62
|
text += formatDifferencePercentage(absDiff, isIncrease);
|
|
@@ -80,6 +81,7 @@ export const StatDiff: React.FC<StatDiffProps> = ({
|
|
|
80
81
|
)}
|
|
81
82
|
size={size ?? 'small'}
|
|
82
83
|
>
|
|
84
|
+
<span>{diff}</span>
|
|
83
85
|
{value === undefined ? '\u00A0' : text}
|
|
84
86
|
</BodyText>
|
|
85
87
|
);
|
|
@@ -3,6 +3,7 @@ import classNames from 'classnames';
|
|
|
3
3
|
import { BodyText, Icon, Headline, Eyebrow, Stack, Tooltip } from '@servicetitan/design-system';
|
|
4
4
|
import { formatValue } from '../../utils/formatters';
|
|
5
5
|
import { StatDiff } from './stat-card';
|
|
6
|
+
import * as Styles from './stat-card.module.less';
|
|
6
7
|
|
|
7
8
|
export interface StatExtendedCardProps {
|
|
8
9
|
title: string;
|
|
@@ -54,11 +55,11 @@ export const StatExtendedCard: FC<StatExtendedCardProps> = ({
|
|
|
54
55
|
</Tooltip>
|
|
55
56
|
)}
|
|
56
57
|
</Stack>
|
|
57
|
-
<Eyebrow size="small" className="m-t-
|
|
58
|
+
<Eyebrow size="small" className="m-t-2 c-black">
|
|
58
59
|
{title2}
|
|
59
60
|
</Eyebrow>
|
|
60
61
|
|
|
61
|
-
<Stack justifyContent="space-between">
|
|
62
|
+
<Stack justifyContent="space-between" className="m-t-half">
|
|
62
63
|
<Stack alignItems="flex-end" className="flex-grow-1 flex-basis-0">
|
|
63
64
|
<Headline className="m-b-0-i m-r-half fw-normal-i" size="xlarge">
|
|
64
65
|
{formatValue(value, format)}
|
|
@@ -72,7 +73,7 @@ export const StatExtendedCard: FC<StatExtendedCardProps> = ({
|
|
|
72
73
|
format={format}
|
|
73
74
|
inverted={inverted}
|
|
74
75
|
neutral={neutral}
|
|
75
|
-
className=
|
|
76
|
+
className={classNames(Styles.statExtendedDiff, 'm-l-1')}
|
|
76
77
|
/>
|
|
77
78
|
) : undefined}
|
|
78
79
|
</Stack>
|
package/src/utils/formatters.ts
CHANGED
|
@@ -7,7 +7,7 @@ const formatPercentValue = (value: number): string => {
|
|
|
7
7
|
return '0';
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
-
const valueMain = value ? Math.abs(Math.
|
|
10
|
+
const valueMain = value ? Math.abs(Math.round(value)) : 0;
|
|
11
11
|
|
|
12
12
|
if (valueMain > 0) {
|
|
13
13
|
return accounting.formatNumber(valueMain, 0);
|