@servicetitan/marketing-ui 1.13.0 → 1.16.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/CHANGELOG.md +328 -0
- package/dist/components/ads/ads-stat.js +13 -18
- package/dist/components/ads/ads-stat.js.map +1 -1
- package/dist/components/charts/funnel-chart/components/funnel-chart.js +15 -41
- package/dist/components/charts/funnel-chart/components/funnel-chart.js.map +1 -1
- package/dist/components/charts/funnel-chart/components/funnel-svg.js +9 -16
- package/dist/components/charts/funnel-chart/components/funnel-svg.js.map +1 -1
- package/dist/components/charts/funnel-chart/funnel-chart.stories.js +11 -14
- package/dist/components/charts/funnel-chart/funnel-chart.stories.js.map +1 -1
- package/dist/components/charts/funnel-chart/index.js +2 -16
- package/dist/components/charts/funnel-chart/index.js.map +1 -1
- package/dist/components/charts/funnel-chart/utils/const.js +2 -5
- package/dist/components/charts/funnel-chart/utils/const.js.map +1 -1
- package/dist/components/charts/funnel-chart/utils/interface.js +1 -2
- package/dist/components/charts/line-chart/components/body.js +26 -51
- package/dist/components/charts/line-chart/components/body.js.map +1 -1
- package/dist/components/charts/line-chart/components/container.js +12 -15
- package/dist/components/charts/line-chart/components/container.js.map +1 -1
- package/dist/components/charts/line-chart/components/hover-popover.js +20 -45
- package/dist/components/charts/line-chart/components/hover-popover.js.map +1 -1
- package/dist/components/charts/line-chart/components/sidebar.js +9 -35
- package/dist/components/charts/line-chart/components/sidebar.js.map +1 -1
- package/dist/components/charts/line-chart/components/stuff.js +13 -41
- package/dist/components/charts/line-chart/components/stuff.js.map +1 -1
- package/dist/components/charts/line-chart/components/svg-bars.js +14 -17
- package/dist/components/charts/line-chart/components/svg-bars.js.map +1 -1
- package/dist/components/charts/line-chart/components/svg-body.js +15 -41
- package/dist/components/charts/line-chart/components/svg-body.js.map +1 -1
- package/dist/components/charts/line-chart/components/svg-lines.js +11 -33
- package/dist/components/charts/line-chart/components/svg-lines.js.map +1 -1
- package/dist/components/charts/line-chart/index.js +2 -14
- package/dist/components/charts/line-chart/index.js.map +1 -1
- package/dist/components/charts/line-chart/line-chart.stories.js +19 -27
- package/dist/components/charts/line-chart/line-chart.stories.js.map +1 -1
- package/dist/components/charts/line-chart/stores/line-chart.store.js +20 -23
- package/dist/components/charts/line-chart/stores/line-chart.store.js.map +1 -1
- package/dist/components/charts/line-chart/stores/svg.store.js +10 -13
- package/dist/components/charts/line-chart/stores/svg.store.js.map +1 -1
- package/dist/components/charts/line-chart/utils/const.js +2 -6
- package/dist/components/charts/line-chart/utils/const.js.map +1 -1
- package/dist/components/charts/line-chart/utils/formatters.js +7 -11
- package/dist/components/charts/line-chart/utils/formatters.js.map +1 -1
- package/dist/components/charts/line-chart/utils/interfaces.js +1 -2
- package/dist/components/charts/line-chart/utils/internal-interfaces.js +1 -2
- package/dist/components/charts/line-chart/utils/key.js +1 -5
- package/dist/components/charts/line-chart/utils/key.js.map +1 -1
- package/dist/components/charts/line-chart/utils/labels.js +19 -26
- package/dist/components/charts/line-chart/utils/labels.js.map +1 -1
- package/dist/components/charts/pie-chart/components/pie-chart.js +12 -38
- package/dist/components/charts/pie-chart/components/pie-chart.js.map +1 -1
- package/dist/components/charts/pie-chart/components/pie.js +20 -27
- package/dist/components/charts/pie-chart/components/pie.js.map +1 -1
- package/dist/components/charts/pie-chart/index.js +1 -5
- package/dist/components/charts/pie-chart/index.js.map +1 -1
- package/dist/components/charts/pie-chart/pie-chart.stories.js +11 -18
- package/dist/components/charts/pie-chart/pie-chart.stories.js.map +1 -1
- package/dist/components/charts/pie-chart/utils/const.js +5 -9
- package/dist/components/charts/pie-chart/utils/const.js.map +1 -1
- package/dist/components/charts/pie-chart/utils/interface.js +1 -2
- package/dist/components/image-cropper/image-cropper.js +17 -23
- package/dist/components/image-cropper/image-cropper.js.map +1 -1
- package/dist/components/image-cropper/image-cropper.stories.js +10 -14
- package/dist/components/image-cropper/image-cropper.stories.js.map +1 -1
- package/dist/components/stat/stat-card.js +15 -42
- package/dist/components/stat/stat-card.js.map +1 -1
- package/dist/components/stat/stat-cards.stories.js +10 -13
- package/dist/components/stat/stat-cards.stories.js.map +1 -1
- package/dist/components/stat/stat-extended-card.js +9 -35
- package/dist/components/stat/stat-extended-card.js.map +1 -1
- package/dist/components/stat/stat-extended-card.stories.js +8 -11
- package/dist/components/stat/stat-extended-card.stories.js.map +1 -1
- package/dist/components/ui/action-button/action-button.d.ts +14 -0
- package/dist/components/ui/action-button/action-button.d.ts.map +1 -0
- package/dist/components/ui/action-button/action-button.js +32 -0
- package/dist/components/ui/action-button/action-button.js.map +1 -0
- package/dist/components/ui/action-button/action-button.module.less +51 -0
- package/dist/components/ui/action-button/action-button.stories.d.ts +10 -0
- package/dist/components/ui/action-button/action-button.stories.d.ts.map +1 -0
- package/dist/components/ui/action-button/action-button.stories.js +11 -0
- package/dist/components/ui/action-button/action-button.stories.js.map +1 -0
- package/dist/components/ui/centered-spinner.js +5 -12
- package/dist/components/ui/centered-spinner.js.map +1 -1
- package/dist/components/ui/centered-spinner.stories.js +8 -11
- package/dist/components/ui/centered-spinner.stories.js.map +1 -1
- package/dist/components/ui/date-range-picker/date-range-picker.js +11 -36
- package/dist/components/ui/date-range-picker/date-range-picker.js.map +1 -1
- package/dist/components/ui/date-range-picker/date-range-picker.stories.js +9 -12
- package/dist/components/ui/date-range-picker/date-range-picker.stories.js.map +1 -1
- package/dist/components/ui/disabled-button.js +4 -8
- package/dist/components/ui/disabled-button.js.map +1 -1
- package/dist/components/ui/line-text/index.js +1 -13
- package/dist/components/ui/line-text/index.js.map +1 -1
- package/dist/components/ui/line-text/line-text-body.stories.js +7 -10
- 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 +7 -10
- package/dist/components/ui/line-text/line-text-head.stories.js.map +1 -1
- package/dist/components/ui/line-text/line-text.js +15 -42
- package/dist/components/ui/line-text/line-text.js.map +1 -1
- package/dist/components/ui/title-popover/title-popover.d.ts +17 -0
- package/dist/components/ui/title-popover/title-popover.d.ts.map +1 -0
- package/dist/components/ui/title-popover/title-popover.js +96 -0
- package/dist/components/ui/title-popover/title-popover.js.map +1 -0
- package/dist/components/ui/title-popover/title-popover.module.less +10 -0
- package/dist/components/ui/title-popover/title-popover.stories.d.ts +11 -0
- package/dist/components/ui/title-popover/title-popover.stories.d.ts.map +1 -0
- package/dist/components/ui/title-popover/title-popover.stories.js +17 -0
- package/dist/components/ui/title-popover/title-popover.stories.js.map +1 -0
- package/dist/index.js +12 -24
- package/dist/index.js.map +1 -1
- package/dist/utils/ads-texts.d.ts +1 -1
- package/dist/utils/ads-texts.d.ts.map +1 -1
- package/dist/utils/ads-texts.js +3 -5
- package/dist/utils/ads-texts.js.map +1 -1
- package/dist/utils/date/__mocks__/date-mock.js +1 -5
- package/dist/utils/date/__mocks__/date-mock.js.map +1 -1
- package/dist/utils/date/date-range-picker-options.js +7 -12
- package/dist/utils/date/date-range-picker-options.js.map +1 -1
- package/dist/utils/date/date-range-picker-state.js +6 -10
- package/dist/utils/date/date-range-picker-state.js.map +1 -1
- package/dist/utils/date/date-tenant.js +1 -5
- package/dist/utils/date/date-tenant.js.map +1 -1
- package/dist/utils/date/date.js +3 -9
- package/dist/utils/date/date.js.map +1 -1
- package/dist/utils/date/index.js +4 -16
- package/dist/utils/date/index.js.map +1 -1
- package/dist/utils/format-big-numbers.js +1 -5
- package/dist/utils/format-big-numbers.js.map +1 -1
- package/dist/utils/formatters.js +13 -41
- package/dist/utils/formatters.js.map +1 -1
- package/dist/utils/helpers.js +2 -7
- package/dist/utils/helpers.js.map +1 -1
- package/dist/utils/string-case.js +2 -7
- package/dist/utils/string-case.js.map +1 -1
- package/dist/utils/use-client-rect.js +7 -11
- package/dist/utils/use-client-rect.js.map +1 -1
- package/dist/utils/use-target-range-store.d.ts +7 -0
- package/dist/utils/use-target-range-store.d.ts.map +1 -0
- package/dist/utils/use-target-range-store.js +9 -0
- package/dist/utils/use-target-range-store.js.map +1 -0
- package/package.json +2 -2
- package/src/components/charts/pie-chart/utils/const.ts +1 -1
- package/src/components/ui/action-button/action-button.module.less +51 -0
- package/src/components/ui/action-button/action-button.module.less.d.ts +9 -0
- package/src/components/ui/action-button/action-button.stories.tsx +19 -0
- package/src/components/ui/action-button/action-button.tsx +82 -0
- package/src/components/ui/title-popover/title-popover.module.less +10 -0
- package/src/components/ui/title-popover/title-popover.module.less.d.ts +3 -0
- package/src/components/ui/title-popover/title-popover.stories.tsx +28 -0
- package/src/components/ui/title-popover/title-popover.tsx +86 -0
- package/src/utils/ads-texts.tsx +4 -1
- package/src/utils/use-target-range-store.ts +17 -0
package/dist/utils/ads-texts.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.adsStatDescriptions = void 0;
|
|
4
|
-
exports.adsStatDescriptions = {
|
|
1
|
+
export const adsStatDescriptions = {
|
|
5
2
|
impressions: 'The number of times an ad was seen',
|
|
6
3
|
views: 'The number of impressions where the ad was on screen for more than 1 second with more than 50% of the ad actually visible',
|
|
7
4
|
clicks: 'The number of times an ad was clicked, taking a searcher to a landing page',
|
|
@@ -11,7 +8,7 @@ exports.adsStatDescriptions = {
|
|
|
11
8
|
transactions: 'The number of completed jobs where revenue was generated',
|
|
12
9
|
leads: 'Phone Calls that are longer than 60 seconds and not dismissed, plus online bookings and manual jobs',
|
|
13
10
|
ranJobs: 'A booking where a truck was dispatched. On the marketing dashboard, we show Ran Jobs that have marketing attribution',
|
|
14
|
-
ranRate: 'The percentage of
|
|
11
|
+
ranRate: 'The percentage of Booked Jobs that turned into Ran Jobs. This is a measure of how many booked jobs are not cancelled or left unfulfilled',
|
|
15
12
|
bookedJobs: 'Leads that were booked/scheduled for a job',
|
|
16
13
|
completedJobs: 'Scheduled jobs that were actually completed',
|
|
17
14
|
soldJobs: 'Jobs that have estimates that were closed. This is useful in determining how many of your ran jobs are turning into actual sales',
|
|
@@ -32,6 +29,7 @@ exports.adsStatDescriptions = {
|
|
|
32
29
|
averageJobValue: 'The average income generated across all your jobs',
|
|
33
30
|
roi: 'The number of dollars generated from each dollar of marketing spend. For example, and ROI of 5x means that every $1 spent on marketing leads to $5 of revenue',
|
|
34
31
|
bookingRate: 'The percentage of leads that resulted in Booked Job',
|
|
32
|
+
callBookingRate: 'The percentage of lead calls that resulted in Booked Jobs',
|
|
35
33
|
opportunityRate: 'The percentage of Ran Jobs that resulted in an Opportunity',
|
|
36
34
|
newCustomerLeads: 'Leads that came from someone not already part of your database, ie. you have never ran a job for them before',
|
|
37
35
|
newCustomerLeadRate: 'The percentage of Leads that came from someone not already part of your database. If this number is low, then you are mostly reaching your existing customers with marketing',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ads-texts.js","sourceRoot":"","sources":["../../src/utils/ads-texts.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ads-texts.js","sourceRoot":"","sources":["../../src/utils/ads-texts.tsx"],"names":[],"mappings":"AAsCA,MAAM,CAAC,MAAM,mBAAmB,GAAgC;IAC5D,WAAW,EAAE,oCAAoC;IACjD,KAAK,EAAE,2HAA2H;IAClI,MAAM,EAAE,4EAA4E;IACpF,QAAQ,EACJ,gSAAgS;IACpS,WAAW,EACP,sLAAsL;IAC1L,cAAc,EACV,uHAAuH;IAC3H,YAAY,EAAE,0DAA0D;IACxE,KAAK,EAAE,qGAAqG;IAC5G,OAAO,EACH,sHAAsH;IAC1H,OAAO,EACH,0IAA0I;IAC9I,UAAU,EAAE,4CAA4C;IACxD,aAAa,EAAE,6CAA6C;IAC5D,QAAQ,EACJ,kIAAkI;IACtI,OAAO,EAAE,uEAAuE;IAChF,gBAAgB,EACZ,wFAAwF;IAC5F,oBAAoB,EAChB,2HAA2H;IAC/H,WAAW,EAAE,0CAA0C;IACvD,gBAAgB,EAAE,gDAAgD;IAClE,aAAa,EACT,iGAAiG;IACrG,cAAc,EAAE,mDAAmD;IACnE,iBAAiB,EAAE,0DAA0D;IAC7E,mBAAmB,EACf,8JAA8J;IAClK,IAAI,EAAE,2DAA2D;IAEjE,SAAS,EAAE,kEAAkE;IAC7E,cAAc,EACV,wLAAwL;IAC5L,SAAS,EACL,2LAA2L;IAC/L,QAAQ,EACJ,iJAAiJ;IACrJ,eAAe,EAAE,mDAAmD;IACpE,GAAG,EAAE,+JAA+J;IACpK,WAAW,EAAE,qDAAqD;IAClE,eAAe,EAAE,2DAA2D;IAC5E,eAAe,EAAE,4DAA4D;IAC7E,gBAAgB,EACZ,8GAA8G;IAClH,mBAAmB,EACf,8KAA8K;IAClL,qBAAqB,EACjB,mGAAmG;IACvG,oBAAoB,EAChB,2FAA2F;CAClG,CAAC"}
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.dateMockSpy = void 0;
|
|
4
|
-
const dateMockSpy = () => {
|
|
1
|
+
export const dateMockSpy = () => {
|
|
5
2
|
let dateSpy;
|
|
6
3
|
return {
|
|
7
4
|
mock: (dateStr, localOffset = -240) => {
|
|
@@ -19,5 +16,4 @@ const dateMockSpy = () => {
|
|
|
19
16
|
},
|
|
20
17
|
};
|
|
21
18
|
};
|
|
22
|
-
exports.dateMockSpy = dateMockSpy;
|
|
23
19
|
//# sourceMappingURL=date-mock.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-mock.js","sourceRoot":"","sources":["../../../../src/utils/date/__mocks__/date-mock.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"date-mock.js","sourceRoot":"","sources":["../../../../src/utils/date/__mocks__/date-mock.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE;IAC5B,IAAI,OAAyB,CAAC;IAE9B,OAAO;QACH,IAAI,EAAE,CAAC,OAAe,EAAE,WAAW,GAAG,CAAC,GAAG,EAAE,EAAE;YAC1C,MAAM,YAAY,GAAG,IAAI,CAAC;YAC1B,MAAM,EAAE,GAAG,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;YAErC,EAAE,CAAC,iBAAiB,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC;YAEzC,OAAO,GAAG,IAAI;iBACT,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC;iBACrB,kBAAkB,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,CAC5B,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAE,EAAU,CACxD,CAAC;QACV,CAAC;QACD,KAAK,EAAE,GAAG,EAAE;YACR,IAAI,OAAO,EAAE;gBACT,OAAO,CAAC,WAAW,EAAE,CAAC;aACzB;QACL,CAAC;KACJ,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.DateRangePickerOptionsTenantAds = exports.DateRangePickerOptions = void 0;
|
|
4
|
-
const date_tenant_1 = require("./date-tenant");
|
|
5
|
-
const date_1 = require("./date");
|
|
1
|
+
import { TenantDate } from './date-tenant';
|
|
2
|
+
import { dateRangesEqual, getComparisonDateRange } from './date';
|
|
6
3
|
/**
|
|
7
4
|
* base class for predefined date range options
|
|
8
5
|
*
|
|
9
6
|
* @note start date is inclusive and end date is exclusive for each option
|
|
10
7
|
*/
|
|
11
|
-
class DateRangePickerOptions {
|
|
8
|
+
export class DateRangePickerOptions {
|
|
12
9
|
constructor() {
|
|
13
10
|
Object.defineProperty(this, "options", {
|
|
14
11
|
enumerable: true,
|
|
@@ -34,7 +31,7 @@ class DateRangePickerOptions {
|
|
|
34
31
|
return this.options.find(o => o.key === arg);
|
|
35
32
|
}
|
|
36
33
|
for (const opt of this.options) {
|
|
37
|
-
if (
|
|
34
|
+
if (dateRangesEqual(arg, opt.value)) {
|
|
38
35
|
return opt;
|
|
39
36
|
}
|
|
40
37
|
}
|
|
@@ -44,7 +41,6 @@ class DateRangePickerOptions {
|
|
|
44
41
|
return undefined;
|
|
45
42
|
}
|
|
46
43
|
}
|
|
47
|
-
exports.DateRangePickerOptions = DateRangePickerOptions;
|
|
48
44
|
const subtractDays = (dt, days) => new Date(dt.getTime() - days * 86400000);
|
|
49
45
|
/**
|
|
50
46
|
* options wrapper in tenant timezone that is used in ads. it contain following options:
|
|
@@ -57,7 +53,7 @@ const subtractDays = (dt, days) => new Date(dt.getTime() - days * 86400000);
|
|
|
57
53
|
* Last 90 Days
|
|
58
54
|
* Current Year
|
|
59
55
|
*/
|
|
60
|
-
class DateRangePickerOptionsTenantAds extends DateRangePickerOptions {
|
|
56
|
+
export class DateRangePickerOptionsTenantAds extends DateRangePickerOptions {
|
|
61
57
|
constructor(tz, defaultOption = 'last30') {
|
|
62
58
|
super();
|
|
63
59
|
Object.defineProperty(this, "options", {
|
|
@@ -85,10 +81,10 @@ class DateRangePickerOptionsTenantAds extends DateRangePickerOptions {
|
|
|
85
81
|
end: range.start,
|
|
86
82
|
};
|
|
87
83
|
}
|
|
88
|
-
return
|
|
84
|
+
return getComparisonDateRange(range);
|
|
89
85
|
}
|
|
90
86
|
});
|
|
91
|
-
const todayTenant =
|
|
87
|
+
const todayTenant = TenantDate.tenantDateFromLocal(tz.UtcOffset);
|
|
92
88
|
const tomTenant = new Date(todayTenant.getFullYear(), todayTenant.getMonth(), todayTenant.getDate() + 1);
|
|
93
89
|
const yestTenant = new Date(todayTenant.getFullYear(), todayTenant.getMonth(), todayTenant.getDate() - 1);
|
|
94
90
|
const monTenant = new Date(todayTenant.getFullYear(), todayTenant.getMonth(), 1);
|
|
@@ -134,5 +130,4 @@ class DateRangePickerOptionsTenantAds extends DateRangePickerOptions {
|
|
|
134
130
|
return new DateRangePickerOptionsTenantAds(tz, defaultOption);
|
|
135
131
|
}
|
|
136
132
|
}
|
|
137
|
-
exports.DateRangePickerOptionsTenantAds = DateRangePickerOptionsTenantAds;
|
|
138
133
|
//# sourceMappingURL=date-range-picker-options.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-range-picker-options.js","sourceRoot":"","sources":["../../../src/utils/date/date-range-picker-options.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"date-range-picker-options.js","sourceRoot":"","sources":["../../../src/utils/date/date-range-picker-options.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
2
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
3
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -8,10 +7,8 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
9
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const mobx_1 = require("mobx");
|
|
14
|
-
class DateRangePickerState {
|
|
10
|
+
import { action, computed, makeObservable, observable } from 'mobx';
|
|
11
|
+
export class DateRangePickerState {
|
|
15
12
|
constructor(config, options) {
|
|
16
13
|
var _a, _b;
|
|
17
14
|
Object.defineProperty(this, "value", {
|
|
@@ -34,7 +31,7 @@ class DateRangePickerState {
|
|
|
34
31
|
this.value = val;
|
|
35
32
|
}
|
|
36
33
|
});
|
|
37
|
-
|
|
34
|
+
makeObservable(this);
|
|
38
35
|
this.options = options;
|
|
39
36
|
if (config === null || config === void 0 ? void 0 : config.defaultValue) {
|
|
40
37
|
this.value = config.defaultValue;
|
|
@@ -57,17 +54,16 @@ class DateRangePickerState {
|
|
|
57
54
|
}
|
|
58
55
|
}
|
|
59
56
|
__decorate([
|
|
60
|
-
|
|
57
|
+
observable,
|
|
61
58
|
__metadata("design:type", Object)
|
|
62
59
|
], DateRangePickerState.prototype, "value", void 0);
|
|
63
60
|
__decorate([
|
|
64
|
-
|
|
61
|
+
computed,
|
|
65
62
|
__metadata("design:type", Object),
|
|
66
63
|
__metadata("design:paramtypes", [])
|
|
67
64
|
], DateRangePickerState.prototype, "selectedOption", null);
|
|
68
65
|
__decorate([
|
|
69
|
-
|
|
66
|
+
action,
|
|
70
67
|
__metadata("design:type", Object)
|
|
71
68
|
], DateRangePickerState.prototype, "onChange", void 0);
|
|
72
|
-
exports.DateRangePickerState = DateRangePickerState;
|
|
73
69
|
//# sourceMappingURL=date-range-picker-state.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-range-picker-state.js","sourceRoot":"","sources":["../../../src/utils/date/date-range-picker-state.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"date-range-picker-state.js","sourceRoot":"","sources":["../../../src/utils/date/date-range-picker-state.ts"],"names":[],"mappings":";;;;;;;;;AAEA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAiBpE,MAAM,OAAO,oBAAoB;IAa7B,YAAY,MAAmC,EAAE,OAA4C;;QAZjF;;;;;WAAkB;QAE9B;;;;;WAAsD;QAoC9C;;;;mBAAW,CAAC,GAAe,EAAE,EAAE;gBACnC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;YACrB,CAAC;WAAC;QA3BE,cAAc,CAAC,IAAI,CAAC,CAAC;QAErB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,EAAE;YACtB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC;SACpC;aAAM,IAAI,MAAA,IAAI,CAAC,OAAO,0CAAE,aAAa,EAAE;YACpC,IAAI,CAAC,KAAK,GAAG,MAAA,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,0CAAE,KAAK,CAAC;SAC3E;IACL,CAAC;IAlBS,IAAI,cAAc;QACxB,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YAC9B,OAAO,SAAS,CAAC;SACpB;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;IAcD,MAAM,CAAC,MAAM,CAAC,MAAmC;QAC7C,OAAO,IAAI,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,CAAC,iBAAiB,CACpB,OAA2C,EAC3C,MAAmC;QAEnC,OAAO,IAAI,oBAAoB,CAC3B,MAAM,EACN,OAAO,CACqC,CAAC;IACrD,CAAC;CAKJ;AAzCe;IAAX,UAAU;;mDAAmB;AAIpB;IAAT,QAAQ;;;0DAMR;AA4BO;IAAP,MAAM;;sDAEL"}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TenantDate = void 0;
|
|
4
1
|
/*
|
|
5
2
|
* This class exists because we:
|
|
6
3
|
*
|
|
@@ -24,7 +21,7 @@ exports.TenantDate = void 0;
|
|
|
24
21
|
*
|
|
25
22
|
* If at any point we're able to get rid of all the components relying on Date, this class won't be needed anymore.
|
|
26
23
|
*/
|
|
27
|
-
class TenantDate {
|
|
24
|
+
export class TenantDate {
|
|
28
25
|
/**
|
|
29
26
|
* represent local time in tenant's Timezone
|
|
30
27
|
* @note returned date still have local timezone, so it shouldn't be converted to UTC anywhere
|
|
@@ -47,5 +44,4 @@ class TenantDate {
|
|
|
47
44
|
return new Date(dt.getFullYear(), dt.getMonth(), dt.getDate());
|
|
48
45
|
}
|
|
49
46
|
}
|
|
50
|
-
exports.TenantDate = TenantDate;
|
|
51
47
|
//# sourceMappingURL=date-tenant.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-tenant.js","sourceRoot":"","sources":["../../../src/utils/date/date-tenant.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"date-tenant.js","sourceRoot":"","sources":["../../../src/utils/date/date-tenant.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,OAAO,UAAU;IACnB;;;;;OAKG;IACH,MAAM,CAAC,mBAAmB,CAAC,eAAuB,EAAE,aAAoB;QACpE,MAAM,OAAO,GAAG,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,IAAI,IAAI,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,EAAE,GAAG,KAAK,CAAC,CAAC;QAEhF,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,eAAe,GAAG,KAAK,CAAC,CAAC;IAC/D,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,mBAAmB,CAAC,eAAuB,EAAE,aAAoB;QACpE,MAAM,EAAE,GAAG,UAAU,CAAC,mBAAmB,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;QAE1E,OAAO,IAAI,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IACnE,CAAC;CACJ"}
|
package/dist/utils/date/date.js
CHANGED
|
@@ -1,16 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getComparisonDateRange = exports.dateRangesEqual = exports.datesEqual = void 0;
|
|
4
|
-
const datesEqual = (date1, date2) => date1.getFullYear() === date2.getFullYear() &&
|
|
1
|
+
export const datesEqual = (date1, date2) => date1.getFullYear() === date2.getFullYear() &&
|
|
5
2
|
date1.getMonth() === date2.getMonth() &&
|
|
6
3
|
date1.getDate() === date2.getDate() &&
|
|
7
4
|
date1.getHours() === date2.getHours() &&
|
|
8
5
|
date1.getMinutes() === date2.getMinutes() &&
|
|
9
6
|
date1.getSeconds() === date2.getSeconds();
|
|
10
|
-
|
|
11
|
-
const
|
|
12
|
-
exports.dateRangesEqual = dateRangesEqual;
|
|
13
|
-
const getComparisonDateRange = (range) => {
|
|
7
|
+
export const dateRangesEqual = (dateRange1, dateRange2) => datesEqual(dateRange1.start, dateRange2.start) && datesEqual(dateRange1.end, dateRange2.end);
|
|
8
|
+
export const getComparisonDateRange = (range) => {
|
|
14
9
|
const diff = range.end.getTime() - range.start.getTime();
|
|
15
10
|
const compareStart = new Date(range.start.getTime() - diff);
|
|
16
11
|
return {
|
|
@@ -18,5 +13,4 @@ const getComparisonDateRange = (range) => {
|
|
|
18
13
|
end: range.start,
|
|
19
14
|
};
|
|
20
15
|
};
|
|
21
|
-
exports.getComparisonDateRange = getComparisonDateRange;
|
|
22
16
|
//# sourceMappingURL=date.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date.js","sourceRoot":"","sources":["../../../src/utils/date/date.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"date.js","sourceRoot":"","sources":["../../../src/utils/date/date.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAW,EAAE,KAAW,EAAE,EAAE,CACnD,KAAK,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,WAAW,EAAE;IAC3C,KAAK,CAAC,QAAQ,EAAE,KAAK,KAAK,CAAC,QAAQ,EAAE;IACrC,KAAK,CAAC,OAAO,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE;IACnC,KAAK,CAAC,QAAQ,EAAE,KAAK,KAAK,CAAC,QAAQ,EAAE;IACrC,KAAK,CAAC,UAAU,EAAE,KAAK,KAAK,CAAC,UAAU,EAAE;IACzC,KAAK,CAAC,UAAU,EAAE,KAAK,KAAK,CAAC,UAAU,EAAE,CAAC;AAE9C,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,UAAqB,EAAE,UAAqB,EAAE,EAAE,CAC5E,UAAU,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;AAEjG,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,KAAgB,EAAE,EAAE;IACvD,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IACzD,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IAE5D,OAAO;QACH,KAAK,EAAE,IAAI,IAAI,CACX,YAAY,CAAC,WAAW,EAAE,EAC1B,YAAY,CAAC,QAAQ,EAAE,EACvB,YAAY,CAAC,OAAO,EAAE,CACzB;QACD,GAAG,EAAE,KAAK,CAAC,KAAK;KACnB,CAAC;AACN,CAAC,CAAC"}
|
package/dist/utils/date/index.js
CHANGED
|
@@ -1,17 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
}) : (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
o[k2] = m[k];
|
|
8
|
-
}));
|
|
9
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
|
-
};
|
|
12
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
__exportStar(require("./date"), exports);
|
|
14
|
-
__exportStar(require("./date-tenant"), exports);
|
|
15
|
-
__exportStar(require("./date-range-picker-options"), exports);
|
|
16
|
-
__exportStar(require("./date-range-picker-state"), exports);
|
|
1
|
+
export * from './date';
|
|
2
|
+
export * from './date-tenant';
|
|
3
|
+
export * from './date-range-picker-options';
|
|
4
|
+
export * from './date-range-picker-state';
|
|
17
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/date/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/date/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC"}
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.formatBigNumber = void 0;
|
|
4
|
-
const formatBigNumber = (num, maximumFractionDigits) => {
|
|
1
|
+
export const formatBigNumber = (num, maximumFractionDigits) => {
|
|
5
2
|
let formatedNum = num;
|
|
6
3
|
const ranks = ['', 'K', 'M'];
|
|
7
4
|
let rankIndex = 0;
|
|
@@ -13,5 +10,4 @@ const formatBigNumber = (num, maximumFractionDigits) => {
|
|
|
13
10
|
maximumFractionDigits,
|
|
14
11
|
}) + ranks[rankIndex]);
|
|
15
12
|
};
|
|
16
|
-
exports.formatBigNumber = formatBigNumber;
|
|
17
13
|
//# sourceMappingURL=format-big-numbers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format-big-numbers.js","sourceRoot":"","sources":["../../src/utils/format-big-numbers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"format-big-numbers.js","sourceRoot":"","sources":["../../src/utils/format-big-numbers.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,GAAW,EAAE,qBAA6B,EAAE,EAAE;IAC1E,IAAI,WAAW,GAAG,GAAG,CAAC;IACtB,MAAM,KAAK,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC7B,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,OAAO,WAAW,GAAG,KAAK,IAAI,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;QACxD,WAAW,IAAI,IAAI,CAAC;QACpB,SAAS,EAAE,CAAC;KACf;IAED,OAAO,CACH,WAAW,CAAC,cAAc,CAAC,SAAS,EAAE;QAClC,qBAAqB;KACxB,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CACxB,CAAC;AACN,CAAC,CAAC"}
|
package/dist/utils/formatters.js
CHANGED
|
@@ -1,26 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
-
}) : (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
o[k2] = m[k];
|
|
8
|
-
}));
|
|
9
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
-
}) : function(o, v) {
|
|
12
|
-
o["default"] = v;
|
|
13
|
-
});
|
|
14
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
-
if (mod && mod.__esModule) return mod;
|
|
16
|
-
var result = {};
|
|
17
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
-
__setModuleDefault(result, mod);
|
|
19
|
-
return result;
|
|
20
|
-
};
|
|
21
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
exports.formatValue = exports.formatNumber = exports.formatPercent = exports.formatPercent100 = exports.formatMoney = exports.formatRate = void 0;
|
|
23
|
-
const accounting = __importStar(require("accounting"));
|
|
1
|
+
import * as accounting from 'accounting';
|
|
24
2
|
const formatPercentValue = (value) => {
|
|
25
3
|
if (!value) {
|
|
26
4
|
return '0';
|
|
@@ -32,7 +10,7 @@ const formatPercentValue = (value) => {
|
|
|
32
10
|
const valueDecimal = Math.max(Math.floor(value * 10) - valueMain * 10, 1);
|
|
33
11
|
return `0.${valueDecimal}`;
|
|
34
12
|
};
|
|
35
|
-
const formatRate = (value) => {
|
|
13
|
+
export const formatRate = (value) => {
|
|
36
14
|
if (!value) {
|
|
37
15
|
return '0.0x';
|
|
38
16
|
}
|
|
@@ -40,32 +18,26 @@ const formatRate = (value) => {
|
|
|
40
18
|
const valueDecimal = Math.floor(value * 10) - valueMain * 10;
|
|
41
19
|
return `${valueMain}.${valueDecimal}x`;
|
|
42
20
|
};
|
|
43
|
-
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
const formatPercent = (value) => (0, exports.formatPercent100)(value * 100);
|
|
49
|
-
exports.formatPercent = formatPercent;
|
|
50
|
-
const formatNumber = (value) => accounting.formatNumber(value, 0, ',');
|
|
51
|
-
exports.formatNumber = formatNumber;
|
|
52
|
-
const formatValue = (value, format) => {
|
|
21
|
+
export const formatMoney = (value) => (value < 0 ? '-' : '') + accounting.formatMoney(Math.abs(value), undefined, 0);
|
|
22
|
+
export const formatPercent100 = (value) => `${formatPercentValue(value)}%`;
|
|
23
|
+
export const formatPercent = (value) => formatPercent100(value * 100);
|
|
24
|
+
export const formatNumber = (value) => accounting.formatNumber(value, 0, ',');
|
|
25
|
+
export const formatValue = (value, format) => {
|
|
53
26
|
if (format === 'money') {
|
|
54
|
-
return
|
|
27
|
+
return formatMoney(value);
|
|
55
28
|
}
|
|
56
29
|
if (format === 'percent') {
|
|
57
|
-
return
|
|
30
|
+
return formatPercent(value);
|
|
58
31
|
}
|
|
59
32
|
if (format === 'percent-100') {
|
|
60
|
-
return
|
|
33
|
+
return formatPercent100(value);
|
|
61
34
|
}
|
|
62
35
|
if (format === 'number') {
|
|
63
|
-
return
|
|
36
|
+
return formatNumber(value);
|
|
64
37
|
}
|
|
65
38
|
if (format === 'rate') {
|
|
66
|
-
return
|
|
39
|
+
return formatRate(value);
|
|
67
40
|
}
|
|
68
|
-
return
|
|
41
|
+
return formatNumber(value);
|
|
69
42
|
};
|
|
70
|
-
exports.formatValue = formatValue;
|
|
71
43
|
//# sourceMappingURL=formatters.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatters.js","sourceRoot":"","sources":["../../src/utils/formatters.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"formatters.js","sourceRoot":"","sources":["../../src/utils/formatters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,YAAY,CAAC;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;AAEF,MAAM,CAAC,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;AAEF,MAAM,CAAC,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;AACnF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC;AAC3F,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,gBAAgB,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;AACtF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;AAE9F,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAa,EAAE,MAAwB,EAAE,EAAE;IACnE,IAAI,MAAM,KAAK,OAAO,EAAE;QACpB,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;KAC7B;IAED,IAAI,MAAM,KAAK,SAAS,EAAE;QACtB,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;KAC/B;IAED,IAAI,MAAM,KAAK,aAAa,EAAE;QAC1B,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;KAClC;IAED,IAAI,MAAM,KAAK,QAAQ,EAAE;QACrB,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;KAC9B;IAED,IAAI,MAAM,KAAK,MAAM,EAAE;QACnB,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;KAC5B;IAED,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC,CAAC"}
|
package/dist/utils/helpers.js
CHANGED
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.findSubstrIndexes = exports.keys = void 0;
|
|
4
|
-
const keys = (obj) => Object.keys(obj);
|
|
5
|
-
exports.keys = keys;
|
|
1
|
+
export const keys = (obj) => Object.keys(obj);
|
|
6
2
|
/**
|
|
7
3
|
* Searches for words (divided by white space) in the string,
|
|
8
4
|
* i.e `findSubstrIndexes('91203 - Glendale, CA', 'glen 912')`
|
|
@@ -14,7 +10,7 @@ exports.keys = keys;
|
|
|
14
10
|
* @param substr - Searched words, i.e 'hello world'
|
|
15
11
|
* @returns Array of start and end indexes of the words
|
|
16
12
|
*/
|
|
17
|
-
const findSubstrIndexes = (str, substr) => {
|
|
13
|
+
export const findSubstrIndexes = (str, substr) => {
|
|
18
14
|
const searchWords = substr.split(' ');
|
|
19
15
|
const realSearchWords = searchWords.filter(word => word !== '');
|
|
20
16
|
const indexes = realSearchWords.map(word => {
|
|
@@ -42,5 +38,4 @@ const findSubstrIndexes = (str, substr) => {
|
|
|
42
38
|
}
|
|
43
39
|
return realRanges;
|
|
44
40
|
};
|
|
45
|
-
exports.findSubstrIndexes = findSubstrIndexes;
|
|
46
41
|
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,IAAI,GAAG,CAAgC,GAAM,EAAe,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE7F;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAW,EAAE,MAAc,EAAE,EAAE;IAC7D,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,eAAe,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;IAChE,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACvC,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC5D,OAAO;YACH,KAAK,EAAE,KAAK;YACZ,GAAG,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM;SAC3B,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,OAAO;SACtB,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC;SACnC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAE3D,MAAM,UAAU,GAAG,EAAE,CAAC;IAEtB,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE;QACzB,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACzC,MAAM,aAAa,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACxD,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,aAAa,CAAC,GAAG,EAAE;gBAC1C,aAAa,CAAC,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;aAC1C;iBAAM;gBACH,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;aACnC;SACJ;KACJ;IAED,OAAO,UAAU,CAAC;AACtB,CAAC,CAAC"}
|
|
@@ -1,13 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.camelCaseToTitleCase = exports.capitalize = void 0;
|
|
4
|
-
function capitalize(value) {
|
|
1
|
+
export function capitalize(value) {
|
|
5
2
|
return value ? value.charAt(0).toUpperCase() + value.slice(1) : value;
|
|
6
3
|
}
|
|
7
|
-
|
|
8
|
-
function camelCaseToTitleCase(value) {
|
|
4
|
+
export function camelCaseToTitleCase(value) {
|
|
9
5
|
const regexp = /[A-Z](?=[A-Z][a-z])|[^A-Z](?=[A-Z])|[A-Za-z](?=[^A-Za-z])/g;
|
|
10
6
|
return capitalize(value.replace(regexp, '$& '));
|
|
11
7
|
}
|
|
12
|
-
exports.camelCaseToTitleCase = camelCaseToTitleCase;
|
|
13
8
|
//# sourceMappingURL=string-case.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"string-case.js","sourceRoot":"","sources":["../../src/utils/string-case.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"string-case.js","sourceRoot":"","sources":["../../src/utils/string-case.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,UAAU,CAAC,KAAa;IACpC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAa;IAC9C,MAAM,MAAM,GAAG,4DAA4D,CAAC;IAE5E,OAAO,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AACpD,CAAC"}
|
|
@@ -1,16 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const element = (0, react_1.useRef)(null);
|
|
7
|
-
const [rect, setRect] = (0, react_1.useState)(null);
|
|
8
|
-
const handleResize = (0, react_1.useCallback)(() => {
|
|
1
|
+
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
2
|
+
export const useClientRect = () => {
|
|
3
|
+
const element = useRef(null);
|
|
4
|
+
const [rect, setRect] = useState(null);
|
|
5
|
+
const handleResize = useCallback(() => {
|
|
9
6
|
if (element.current) {
|
|
10
7
|
setRect(element.current.getBoundingClientRect());
|
|
11
8
|
}
|
|
12
9
|
}, []);
|
|
13
|
-
|
|
10
|
+
useEffect(() => {
|
|
14
11
|
if (!rect) {
|
|
15
12
|
return;
|
|
16
13
|
}
|
|
@@ -32,7 +29,7 @@ const useClientRect = () => {
|
|
|
32
29
|
}, 0);
|
|
33
30
|
return () => clearTimeout(to);
|
|
34
31
|
});
|
|
35
|
-
const ref =
|
|
32
|
+
const ref = useCallback((node) => {
|
|
36
33
|
if (node !== null) {
|
|
37
34
|
window.addEventListener('resize', handleResize);
|
|
38
35
|
setRect(node.getBoundingClientRect());
|
|
@@ -45,5 +42,4 @@ const useClientRect = () => {
|
|
|
45
42
|
}, [handleResize]);
|
|
46
43
|
return [rect, ref, element.current];
|
|
47
44
|
};
|
|
48
|
-
exports.useClientRect = useClientRect;
|
|
49
45
|
//# sourceMappingURL=use-client-rect.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-client-rect.js","sourceRoot":"","sources":["../../src/utils/use-client-rect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"use-client-rect.js","sourceRoot":"","sources":["../../src/utils/use-client-rect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjE,MAAM,CAAC,MAAM,aAAa,GAAG,GAI3B,EAAE;IACA,MAAM,OAAO,GAAG,MAAM,CAAqB,IAAI,CAAC,CAAC;IACjD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAiB,IAAI,CAAC,CAAC;IAEvD,MAAM,YAAY,GAAG,WAAW,CAAC,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,SAAS,CAAC,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,WAAW,CACnB,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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare type OptionalRange = Range | undefined;
|
|
2
|
+
export interface TargetRangeStore {
|
|
3
|
+
targetRange: OptionalRange;
|
|
4
|
+
setTargetRange: (range: OptionalRange) => void;
|
|
5
|
+
}
|
|
6
|
+
export declare const useTargetRangeStore: () => TargetRangeStore;
|
|
7
|
+
//# sourceMappingURL=use-target-range-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-target-range-store.d.ts","sourceRoot":"","sources":["../../src/utils/use-target-range-store.ts"],"names":[],"mappings":"AAGA,oBAAY,aAAa,GAAG,KAAK,GAAG,SAAS,CAAC;AAE9C,MAAM,WAAW,gBAAgB;IAC7B,WAAW,EAAE,aAAa,CAAC;IAC3B,cAAc,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;CAClD;AAED,eAAO,MAAM,mBAAmB,wBAMzB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { useLocalStore } from 'mobx-react';
|
|
2
|
+
import { action } from 'mobx';
|
|
3
|
+
export const useTargetRangeStore = () => useLocalStore(() => ({
|
|
4
|
+
targetRange: undefined,
|
|
5
|
+
setTargetRange: action(function (range) {
|
|
6
|
+
this.targetRange = range;
|
|
7
|
+
}),
|
|
8
|
+
}));
|
|
9
|
+
//# sourceMappingURL=use-target-range-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-target-range-store.js","sourceRoot":"","sources":["../../src/utils/use-target-range-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAS9B,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE,CACpC,aAAa,CAAmB,GAAG,EAAE,CAAC,CAAC;IACnC,WAAW,EAAE,SAAS;IACtB,cAAc,EAAE,MAAM,CAAC,UAAkC,KAAoB;QACzE,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC7B,CAAC,CAAC;CACL,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@servicetitan/marketing-ui",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.16.0",
|
|
4
4
|
"description": "Marketing UI component and utils",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -51,5 +51,5 @@
|
|
|
51
51
|
"less": true,
|
|
52
52
|
"webpack": false
|
|
53
53
|
},
|
|
54
|
-
"gitHead": "
|
|
54
|
+
"gitHead": "0e562c39f2dda75c991c59cb5cc6f54a7eac04d8"
|
|
55
55
|
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
@import (reference) '@servicetitan/tokens/dist/tokens.less';
|
|
2
|
+
|
|
3
|
+
.action-button {
|
|
4
|
+
color: @color-neutral-80;
|
|
5
|
+
padding: @spacing-half @spacing-2;
|
|
6
|
+
box-sizing: border-box;
|
|
7
|
+
border: none;
|
|
8
|
+
background-color: transparent;
|
|
9
|
+
width: 100%;
|
|
10
|
+
display: flex;
|
|
11
|
+
align-items: center;
|
|
12
|
+
|
|
13
|
+
&.active {
|
|
14
|
+
background-color: @color-neutral-60;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
&.disabled {
|
|
18
|
+
cursor: default;
|
|
19
|
+
color: @color-blue-grey-400;
|
|
20
|
+
|
|
21
|
+
.text {
|
|
22
|
+
color: @color-blue-grey-400;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
&.primary,
|
|
27
|
+
&.negative {
|
|
28
|
+
&:focus {
|
|
29
|
+
outline: none;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
&:hover,
|
|
33
|
+
&.focus-visible:focus {
|
|
34
|
+
color: @color-white;
|
|
35
|
+
|
|
36
|
+
.text {
|
|
37
|
+
color: @color-white;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
&.primary:hover,
|
|
43
|
+
&.primary.focus-visible:focus {
|
|
44
|
+
background-color: @color-blue-400;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
&.negative:hover,
|
|
48
|
+
&.negative.focus-visible:focus {
|
|
49
|
+
background-color: @color-red-400;
|
|
50
|
+
}
|
|
51
|
+
}
|