@cakemail-org/ui-components-v2 2.2.103 → 2.2.105

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.
@@ -1,7 +1,7 @@
1
1
  import { BaseTextFieldProps } from "@mui/material";
2
2
  import { ChangeEventHandler } from "react";
3
3
  import { TIconName } from "../icon/types";
4
- export interface TTextField extends Omit<BaseTextFieldProps, "onMouseUp" | "FormHelperTextProps" | "fullWidth" | "select" | "margin" | "component" | "InputLabelProps" | "SelectProps" | "classes" | "size" | "color"> {
4
+ export interface TTextField extends Omit<BaseTextFieldProps, "onMouseUp" | "FormHelperTextProps" | "fullWidth" | "select" | "margin" | "component" | "InputLabelProps" | "SelectProps" | "classes" | "color"> {
5
5
  onChange?: TTextFieldChange;
6
6
  labelTooltipText?: string;
7
7
  useBareBoneInput?: boolean;
@@ -1,5 +1,32 @@
1
1
  import { Theme } from "@mui/material";
2
2
  export default function getMuiTextField(theme: Theme): {
3
+ variants: ({
4
+ props: {
5
+ size: string;
6
+ };
7
+ style: {
8
+ ".MuiInputBase-root > input, .MuiInputBase-root > textarea": {
9
+ padding: string;
10
+ fontSize: import("csstype").Property.FontSize<string | number> | undefined;
11
+ lineHeight: import("csstype").Property.LineHeight<string | number> | undefined;
12
+ };
13
+ ".MuiSvgIcon-root": {
14
+ top: string;
15
+ };
16
+ };
17
+ } | {
18
+ props: {
19
+ size: string;
20
+ };
21
+ style: {
22
+ ".MuiInputBase-root > input, .MuiInputBase-root > textarea": {
23
+ padding: string;
24
+ fontSize?: undefined;
25
+ lineHeight?: undefined;
26
+ };
27
+ ".MuiSvgIcon-root"?: undefined;
28
+ };
29
+ })[];
3
30
  styleOverrides: {
4
31
  root: {
5
32
  ".MuiInputLabel-root": {
@@ -0,0 +1,14 @@
1
+ import { EventModel } from "../../models/eventTracking";
2
+ import { TGetEventBreakdown, TGetEventFunnel, TGetEventPropertyKeys, TGetEventSummary, TGetEventTimeseries, TListEvents } from "../../services/eventTracking";
3
+ import { TEventBreakdown, TEventFunnel, TEventListResponse, TEventPropertyKeys, TEventSummary, TEventTimeseries } from "./types";
4
+ export declare class EventTrackingFactory {
5
+ static list({ ...options }: TListEvents): Promise<Omit<TEventListResponse, "items"> & {
6
+ items: EventModel[];
7
+ }>;
8
+ static getSummary({ ...options }: TGetEventSummary): Promise<TEventSummary>;
9
+ static getTimeseries({ ...options }: TGetEventTimeseries): Promise<TEventTimeseries>;
10
+ static getBreakdown({ ...options }: TGetEventBreakdown): Promise<TEventBreakdown>;
11
+ static getPropertyKeys({ ...options }: TGetEventPropertyKeys): Promise<TEventPropertyKeys>;
12
+ static getFunnel({ ...options }: TGetEventFunnel): Promise<TEventFunnel>;
13
+ }
14
+ export * from "./types";
@@ -0,0 +1,91 @@
1
+ import { ETrackedEntityType, ETrackedEventType } from "../../models/eventTracking/types";
2
+ export type TEventRow = {
3
+ event_id: string;
4
+ event_type: ETrackedEventType | string;
5
+ entity_type: ETrackedEntityType | string;
6
+ entity_id: string;
7
+ session_id?: string | null;
8
+ visitor_id?: string | null;
9
+ occurred_at: string;
10
+ device_type?: string | null;
11
+ browser?: string | null;
12
+ os?: string | null;
13
+ source?: string | null;
14
+ utm_source?: string | null;
15
+ utm_medium?: string | null;
16
+ utm_campaign?: string | null;
17
+ referrer?: string | null;
18
+ properties: Record<string, unknown>;
19
+ scroll_depth?: number | null;
20
+ element_id?: string | null;
21
+ popup_trigger?: string | null;
22
+ page_url?: string | null;
23
+ email?: string | null;
24
+ list_id?: string | null;
25
+ contact_id?: string | null;
26
+ form_id?: string | null;
27
+ ip?: string | null;
28
+ };
29
+ export type TEventListResponse = {
30
+ total: number;
31
+ limit: number;
32
+ offset: number;
33
+ items: TEventRow[];
34
+ };
35
+ export type TSummaryByEventType = {
36
+ event_type: string;
37
+ count: number;
38
+ };
39
+ export type TEventSummary = {
40
+ total: number;
41
+ by_event_type: TSummaryByEventType[];
42
+ new_visitors: number;
43
+ returning_visitors: number;
44
+ };
45
+ export type TTimeseriesPoint = {
46
+ timestamp: string;
47
+ count: number;
48
+ };
49
+ export type TTimeseriesPointBreakdown = {
50
+ timestamp: string;
51
+ values: Array<{
52
+ dimension_value?: string | null;
53
+ count: number;
54
+ }>;
55
+ };
56
+ export type TEventTimeseries = {
57
+ granularity: string;
58
+ event_type?: string | null;
59
+ breakdown?: string | null;
60
+ series: Array<TTimeseriesPoint | TTimeseriesPointBreakdown>;
61
+ };
62
+ export type TBreakdownItem = {
63
+ value?: string | null;
64
+ count: number;
65
+ percentage: number;
66
+ };
67
+ export type TEventBreakdown = {
68
+ dimension: string;
69
+ total: number;
70
+ items: TBreakdownItem[];
71
+ };
72
+ export type TPropertyKey = {
73
+ key: string;
74
+ count: number;
75
+ };
76
+ export type TEventPropertyKeys = {
77
+ keys: TPropertyKey[];
78
+ };
79
+ export type TFunnelStep = {
80
+ event_type: string;
81
+ count: number;
82
+ step_conversion_rate: number;
83
+ overall_conversion_rate: number;
84
+ };
85
+ export type TEventFunnel = {
86
+ window_hours: number;
87
+ steps: TFunnelStep[];
88
+ total_entered: number;
89
+ total_completed: number;
90
+ overall_conversion_rate: number;
91
+ };
@@ -6,6 +6,7 @@ export * from "./campaigns";
6
6
  export * from "./contacts";
7
7
  export * from "./customDomains";
8
8
  export * from "./emailAPI";
9
+ export * from "./eventTracking";
9
10
  export * from "./forms";
10
11
  export * from "./lists";
11
12
  export * from "./pages";
package/dist/cjs/index.js CHANGED
@@ -5742,6 +5742,37 @@ function getMuiTableRow(theme) {
5742
5742
 
5743
5743
  function getMuiTextField(theme) {
5744
5744
  return {
5745
+ variants: [
5746
+ {
5747
+ props: { size: "small" },
5748
+ style: {
5749
+ ".MuiInputBase-root > input, .MuiInputBase-root > textarea": {
5750
+ padding: theme.spacing(3, 3.5),
5751
+ fontSize: theme.typography.body1.fontSize,
5752
+ lineHeight: theme.typography.body1.lineHeight,
5753
+ },
5754
+ ".MuiSvgIcon-root": {
5755
+ top: "1.5rem !important",
5756
+ },
5757
+ },
5758
+ },
5759
+ {
5760
+ props: { size: "medium" },
5761
+ style: {
5762
+ ".MuiInputBase-root > input, .MuiInputBase-root > textarea": {
5763
+ padding: theme.spacing(4, 3.5),
5764
+ }
5765
+ },
5766
+ },
5767
+ {
5768
+ props: { size: "large" },
5769
+ style: {
5770
+ ".MuiInputBase-root > input, .MuiInputBase-root > textarea": {
5771
+ padding: theme.spacing(5, 3.5),
5772
+ }
5773
+ },
5774
+ },
5775
+ ],
5745
5776
  styleOverrides: {
5746
5777
  root: {
5747
5778
  ".MuiInputLabel-root": __assign(__assign({}, theme.typography.body2), { color: theme.palette.body1.main, transform: "translate(14px, -9px)", ">div": {
@@ -7677,11 +7708,11 @@ function LoadingContainer(_a) {
7677
7708
  React.createElement(Container, { className: "loadingContainer-component-v2 ".concat(className), sx: { display: "flex", alignItems: "center", justifyContent: "center", width: "100%" } }, loader)));
7678
7709
  }
7679
7710
 
7680
- var css_248z$v = ".textfield-component-v2 {\n position: relative;\n}\n.textfield-component-v2.disabled {\n opacity: 0.65;\n pointer-events: none;\n}\n.textfield-component-v2 .MuiSvgIcon-root ~ .MuiFormControl-root .MuiInputBase-input {\n padding-left: 42px;\n}\n.textfield-component-v2 .MuiSvgIcon-root {\n position: absolute;\n left: 1rem;\n top: 1.65rem;\n transform: translateY(-50%);\n z-index: 1;\n}\n\n.locationTextField-component-v2 {\n position: relative;\n}\n.locationTextField-component-v2 .autocomplete-dropdown-container {\n position: absolute;\n width: 100%;\n z-index: 10000;\n}\n\n.phoneTextField-component-v2 .MuiInputAdornment-root .MuiSelect-select {\n padding-right: 1.75rem !important;\n}\n.phoneTextField-component-v2 .MuiInputAdornment-root .MuiSelect-icon {\n display: inline-block;\n right: 0.5rem;\n}\n\n.react-international-phone-flag-emoji {\n width: 1.5rem;\n height: 1.5rem;\n}\n\n.colorTextField-component-v2 {\n position: relative;\n}\n.colorTextField-component-v2 .boxedColor {\n position: absolute;\n width: 20px;\n height: 20px;\n border-radius: 20px;\n left: 1rem;\n top: 1.65rem;\n transform: translateY(-50%);\n z-index: 1;\n}\n.colorTextField-component-v2 .boxedColor .MuiSvgIcon-root {\n width: unset;\n height: unset;\n}\n.colorTextField-component-v2 .boxedColor::after {\n position: absolute;\n width: 6px;\n height: 6px;\n content: \"\";\n background-color: var(--white, #FFFFFF);\n border-radius: 20px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n}\n.colorTextField-component-v2 .boxedColor ~ .textfield-component-v2 .MuiInputBase-input {\n padding-left: 44px;\n}\n.colorTextField-component-v2.bottom .react-colorful {\n top: 3.5rem;\n}\n.colorTextField-component-v2.top .react-colorful {\n bottom: 4rem;\n}\n.colorTextField-component-v2 .react-colorful {\n width: 100%;\n position: absolute;\n}";
7711
+ var css_248z$v = ".textfield-component-v2 {\n position: relative;\n}\n.textfield-component-v2.small .MuiSvgIcon-root {\n top: 1.4rem !important;\n}\n.textfield-component-v2.disabled {\n opacity: 0.65;\n pointer-events: none;\n}\n.textfield-component-v2 .MuiSvgIcon-root ~ .MuiFormControl-root .MuiInputBase-input {\n padding-left: 42px;\n}\n.textfield-component-v2 .MuiSvgIcon-root {\n position: absolute;\n left: 1rem;\n top: 1.65rem;\n transform: translateY(-50%);\n z-index: 1;\n}\n\n.locationTextField-component-v2 {\n position: relative;\n}\n.locationTextField-component-v2 .autocomplete-dropdown-container {\n position: absolute;\n width: 100%;\n z-index: 10000;\n}\n\n.phoneTextField-component-v2 .MuiInputAdornment-root .MuiSelect-select {\n padding-right: 1.75rem !important;\n}\n.phoneTextField-component-v2 .MuiInputAdornment-root .MuiSelect-icon {\n display: inline-block;\n right: 0.5rem;\n}\n\n.react-international-phone-flag-emoji {\n width: 1.5rem;\n height: 1.5rem;\n}\n\n.colorTextField-component-v2 {\n position: relative;\n}\n.colorTextField-component-v2 .boxedColor {\n position: absolute;\n width: 20px;\n height: 20px;\n border-radius: 20px;\n left: 1rem;\n top: 1.65rem;\n transform: translateY(-50%);\n z-index: 1;\n}\n.colorTextField-component-v2 .boxedColor .MuiSvgIcon-root {\n width: unset;\n height: unset;\n}\n.colorTextField-component-v2 .boxedColor::after {\n position: absolute;\n width: 6px;\n height: 6px;\n content: \"\";\n background-color: var(--white, #FFFFFF);\n border-radius: 20px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n}\n.colorTextField-component-v2 .boxedColor ~ .textfield-component-v2 .MuiInputBase-input {\n padding-left: 44px;\n}\n.colorTextField-component-v2.bottom .react-colorful {\n top: 3.5rem;\n}\n.colorTextField-component-v2.top .react-colorful {\n bottom: 4rem;\n}\n.colorTextField-component-v2 .react-colorful {\n width: 100%;\n position: absolute;\n}";
7681
7712
  styleInject(css_248z$v);
7682
7713
 
7683
7714
  var TextField = React.forwardRef(function (_a, ref) {
7684
- var _b = _a.className, className = _b === void 0 ? "" : _b, label = _a.label, timeout = _a.timeout, labelTooltipText = _a.labelTooltipText, disabled = _a.disabled; _a.useBareBoneInput; var onChange = _a.onChange, multiline = _a.multiline, inputProps = _a.inputProps, iconName = _a.iconName, onKeyDown = _a.onKeyDown, props = __rest(_a, ["className", "label", "timeout", "labelTooltipText", "disabled", "useBareBoneInput", "onChange", "multiline", "inputProps", "iconName", "onKeyDown"]);
7715
+ var _b = _a.className, className = _b === void 0 ? "" : _b, label = _a.label, timeout = _a.timeout, labelTooltipText = _a.labelTooltipText, disabled = _a.disabled; _a.useBareBoneInput; var onChange = _a.onChange, multiline = _a.multiline, inputProps = _a.inputProps, iconName = _a.iconName, onKeyDown = _a.onKeyDown, size = _a.size, props = __rest(_a, ["className", "label", "timeout", "labelTooltipText", "disabled", "useBareBoneInput", "onChange", "multiline", "inputProps", "iconName", "onKeyDown", "size"]);
7685
7716
  var cLabel = label;
7686
7717
  var timeoutRef = React.useRef(undefined);
7687
7718
  function onChangeHandler(e) {
@@ -7728,9 +7759,9 @@ var TextField = React.forwardRef(function (_a, ref) {
7728
7759
  onKeyDown && onKeyDown(event);
7729
7760
  }
7730
7761
  inputProps = __assign({ maxLength: 256 }, inputProps);
7731
- return React.createElement(Box, { className: "textfield-component-v2 ".concat(className, " ").concat(disabled ? "disabled" : "", " ") },
7762
+ return React.createElement(Box, { className: "textfield-component-v2 ".concat(className, " ").concat(disabled ? "disabled" : "", " ").concat(size) },
7732
7763
  iconName && React.createElement(Icon, { name: iconName }),
7733
- React.createElement(MUITextField, __assign({}, props, { inputProps: inputProps, onChange: onChangeHandler, label: cLabel, disabled: disabled, onKeyDown: handleKeyDown, multiline: multiline, inputRef: ref })));
7764
+ React.createElement(MUITextField, __assign({}, props, { inputProps: inputProps, onChange: onChangeHandler, label: cLabel, disabled: disabled, onKeyDown: handleKeyDown, multiline: multiline, inputRef: ref, size: size })));
7734
7765
  });
7735
7766
 
7736
7767
  var css_248z$u = ".assetmanager-component-v2 {\n box-shadow: 0 0 15px 0 rgba(0, 0, 0, 0.15);\n background: var(--background-color-1, var(--white, #FFFFFF));\n min-width: 25rem;\n width: 100%;\n}\n.assetmanager-component-v2 .loadingContainer-component-v2 {\n padding: 3rem;\n}\n.assetmanager-component-v2 .container {\n padding: 0.75rem;\n}\n.assetmanager-component-v2 .container > div.textInputContainer {\n display: flex;\n border: solid 1px var(--wild-sand, #dddddd);\n border-radius: 6px;\n justify-content: flex-start;\n align-items: center;\n}\n.assetmanager-component-v2 .container > div.textInputContainer > div .MuiSvgIcon-root {\n display: block;\n cursor: pointer;\n}\n.assetmanager-component-v2 .container > div.textInputContainer > div:first-child {\n padding: 0 0.75rem 0 0.75rem;\n height: 100%;\n}\n.assetmanager-component-v2 .container > div.textInputContainer > div:last-child:not(.textfield-component-v2) {\n padding: 0 0.875rem;\n height: 100%;\n}\n.assetmanager-component-v2 .container > div.textInputContainer .textfield-component-v2 {\n width: 100%;\n}\n.assetmanager-component-v2 .container > div.textInputContainer .textfield-component-v2 fieldset {\n outline: none !important;\n border: none !important;\n}\n.assetmanager-component-v2 .container > div.textInputContainer .textfield-component-v2 input {\n padding: 0.5rem 0 !important;\n}\n.assetmanager-component-v2 .container .optionsListingContainer {\n padding: 0 1.25rem 0.5rem 1.25rem;\n margin: 1.25rem 0 0.5rem 0;\n max-height: 20rem;\n overflow-y: auto;\n}\n.assetmanager-component-v2 .container .optionsListingContainer button {\n text-transform: capitalize;\n}\n.assetmanager-component-v2 .container .optionsListingContainer::-webkit-scrollbar {\n display: block;\n}\n.assetmanager-component-v2 .container .optionsListingContainer::-webkit-scrollbar-track:horizontal {\n position: absolute;\n bottom: -20px;\n}\n.assetmanager-component-v2 .container .optionsListingContainer::-webkit-scrollbar-track:vertical {\n border-bottom-left-radius: 0 !important;\n border-bottom-right-radius: 8px !important;\n border-top-right-radius: 8px !important;\n}\n.assetmanager-component-v2 .container .optionsListingContainer::-webkit-scrollbar-track {\n height: 2.5rem;\n width: 2.5rem;\n padding: 2rem;\n background-clip: content-box;\n border-bottom-left-radius: 8px;\n}\n.assetmanager-component-v2 .container .optionsListingContainer::-webkit-scrollbar-thumb {\n background: var(--body-font-color-2, var(--silver, #9B9B9B));\n border-radius: 24px;\n border-top: 5px solid var(--background-color-1, var(--white, #FFFFFF));\n border-bottom: 5px solid var(--background-color-1, var(--white, #FFFFFF));\n border-right: 5px solid var(--background-color-1, var(--white, #FFFFFF));\n border-left: 5px solid var(--background-color-1, var(--white, #FFFFFF));\n}\n.assetmanager-component-v2 .container .optionsListingContainer > div:first-child:not(.listItem) {\n padding-bottom: 0.75rem;\n text-transform: uppercase;\n font-weight: 700;\n color: var(--body-font-color, var(--dark-matter, #2B2B2B));\n}\n.assetmanager-component-v2 .container .optionsListingContainer > p.h8 {\n margin-bottom: 1rem;\n color: var(--body-font-color, var(--dark-matter, #2B2B2B));\n}\n.assetmanager-component-v2 .container .optionsListingContainer p.h8 {\n flex: 1;\n font-family: proxima-nova, Lucida Grande, Lucida Sans Unicode, Lucida Sans, Geneva, Verdana, sans-serif;\n text-transform: uppercase;\n font-weight: 700;\n line-height: 1rem;\n font-size: 0.75rem;\n}\n.assetmanager-component-v2 .container .optionsListingContainer .listItem {\n display: flex;\n justify-content: space-between;\n align-items: center;\n min-height: 2rem;\n}\n.assetmanager-component-v2 .container .optionsListingContainer .listItem p.h8 {\n color: var(--body-font-color-2, var(--silver, #9B9B9B));\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n}\n.assetmanager-component-v2 .container .optionsListingContainer .listItem > .MuiSvgIcon-root {\n margin-right: 1rem;\n}\n.assetmanager-component-v2 .container .optionsListingContainer .listItem.selected p.h8 {\n color: var(--secondary-brand-color, var(--teal, #0ABDAE));\n padding-right: 1rem;\n max-width: 100%;\n}\n.assetmanager-component-v2 .container .optionsListingContainer .listItem.selected .MuiSvgIcon-root span svg path {\n fill: var(--secondary-brand-color, var(--teal, #0ABDAE));\n}\n.assetmanager-component-v2 .container .optionsListingContainer .listItem .buttonContainer {\n margin-left: 1rem;\n visibility: hidden;\n}\n.assetmanager-component-v2 .container .optionsListingContainer .listItem .buttonContainer button:nth-child(2) {\n margin-left: 0.5rem;\n}\n.assetmanager-component-v2 .container .optionsListingContainer .listItem:hover .buttonContainer {\n visibility: visible;\n}\n.assetmanager-component-v2 > button:last-child {\n width: 100%;\n text-transform: uppercase;\n font-family: proxima-nova, Lucida Grande, Lucida Sans Unicode, Lucida Sans, Geneva, Verdana, sans-serif;\n height: 3rem;\n border-top: 1px solid var(--wild-sand, #dddddd) !important;\n outline: none;\n border-radius: 0;\n font-weight: 700;\n}";
@@ -11275,6 +11306,128 @@ function renderEmail(_a) {
11275
11306
  });
11276
11307
  }
11277
11308
 
11309
+ exports.EEventBreakdownDimension = void 0;
11310
+ (function (EEventBreakdownDimension) {
11311
+ EEventBreakdownDimension["deviceType"] = "device_type";
11312
+ EEventBreakdownDimension["browser"] = "browser";
11313
+ EEventBreakdownDimension["os"] = "os";
11314
+ EEventBreakdownDimension["source"] = "source";
11315
+ EEventBreakdownDimension["utmSource"] = "utm_source";
11316
+ EEventBreakdownDimension["utmMedium"] = "utm_medium";
11317
+ EEventBreakdownDimension["utmCampaign"] = "utm_campaign";
11318
+ EEventBreakdownDimension["entityType"] = "entity_type";
11319
+ EEventBreakdownDimension["elementId"] = "element_id";
11320
+ EEventBreakdownDimension["popupTrigger"] = "popup_trigger";
11321
+ EEventBreakdownDimension["pageUrl"] = "page_url";
11322
+ EEventBreakdownDimension["listId"] = "list_id";
11323
+ EEventBreakdownDimension["contactId"] = "contact_id";
11324
+ EEventBreakdownDimension["formId"] = "form_id";
11325
+ })(exports.EEventBreakdownDimension || (exports.EEventBreakdownDimension = {}));
11326
+ exports.EEventTimeseriesGranularity = void 0;
11327
+ (function (EEventTimeseriesGranularity) {
11328
+ EEventTimeseriesGranularity["hour"] = "hour";
11329
+ EEventTimeseriesGranularity["day"] = "day";
11330
+ EEventTimeseriesGranularity["week"] = "week";
11331
+ EEventTimeseriesGranularity["month"] = "month";
11332
+ })(exports.EEventTimeseriesGranularity || (exports.EEventTimeseriesGranularity = {}));
11333
+ exports.EEventSortField = void 0;
11334
+ (function (EEventSortField) {
11335
+ EEventSortField["occurredAt"] = "occurred_at";
11336
+ EEventSortField["eventType"] = "event_type";
11337
+ EEventSortField["entityId"] = "entity_id";
11338
+ EEventSortField["deviceType"] = "device_type";
11339
+ EEventSortField["source"] = "source";
11340
+ })(exports.EEventSortField || (exports.EEventSortField = {}));
11341
+
11342
+ var eventsBaseUrl = uiKitConfig.GATEWAY_PROXY + "/events";
11343
+ function buildEventQuery(options) {
11344
+ if (options === void 0) { options = {}; }
11345
+ var query = __assign({}, options);
11346
+ if (Array.isArray(query.eventType)) {
11347
+ query.eventType = query.eventType.join(",");
11348
+ }
11349
+ if (query.properties && typeof query.properties === "object") {
11350
+ query.properties = JSON.stringify(query.properties);
11351
+ }
11352
+ return camelCase(query);
11353
+ }
11354
+ function buildEventBody(body) {
11355
+ var payload = __assign({}, body);
11356
+ if (Array.isArray(payload.steps)) {
11357
+ payload.steps = payload.steps.map(function (step) {
11358
+ var funnelStep = step;
11359
+ return camelCase(funnelStep);
11360
+ });
11361
+ }
11362
+ return camelCase(payload);
11363
+ }
11364
+ function listEvents(_a) {
11365
+ var useImpersonationTree = _a.useImpersonationTree, options = __rest(_a, ["useImpersonationTree"]);
11366
+ return callApi({
11367
+ url: eventsBaseUrl,
11368
+ query: buildEventQuery(options),
11369
+ useImpersonationTree: useImpersonationTree,
11370
+ fetchOptions: {
11371
+ method: exports.EMethods.get,
11372
+ },
11373
+ });
11374
+ }
11375
+ function getEventSummary(_a) {
11376
+ var useImpersonationTree = _a.useImpersonationTree, options = __rest(_a, ["useImpersonationTree"]);
11377
+ return callApi({
11378
+ url: eventsBaseUrl + "/summary",
11379
+ query: buildEventQuery(options),
11380
+ useImpersonationTree: useImpersonationTree,
11381
+ fetchOptions: {
11382
+ method: exports.EMethods.get,
11383
+ },
11384
+ });
11385
+ }
11386
+ function getEventTimeseries(_a) {
11387
+ var useImpersonationTree = _a.useImpersonationTree, options = __rest(_a, ["useImpersonationTree"]);
11388
+ return callApi({
11389
+ url: eventsBaseUrl + "/timeseries",
11390
+ query: buildEventQuery(options),
11391
+ useImpersonationTree: useImpersonationTree,
11392
+ fetchOptions: {
11393
+ method: exports.EMethods.get,
11394
+ },
11395
+ });
11396
+ }
11397
+ function getEventBreakdown(_a) {
11398
+ var useImpersonationTree = _a.useImpersonationTree, options = __rest(_a, ["useImpersonationTree"]);
11399
+ return callApi({
11400
+ url: eventsBaseUrl + "/breakdown",
11401
+ query: buildEventQuery(options),
11402
+ useImpersonationTree: useImpersonationTree,
11403
+ fetchOptions: {
11404
+ method: exports.EMethods.get,
11405
+ },
11406
+ });
11407
+ }
11408
+ function getEventPropertyKeys(_a) {
11409
+ var useImpersonationTree = _a.useImpersonationTree, options = __rest(_a, ["useImpersonationTree"]);
11410
+ return callApi({
11411
+ url: eventsBaseUrl + "/properties",
11412
+ query: buildEventQuery(options),
11413
+ useImpersonationTree: useImpersonationTree,
11414
+ fetchOptions: {
11415
+ method: exports.EMethods.get,
11416
+ },
11417
+ });
11418
+ }
11419
+ function getEventFunnel(_a) {
11420
+ var useImpersonationTree = _a.useImpersonationTree, options = __rest(_a, ["useImpersonationTree"]);
11421
+ return callApi({
11422
+ url: eventsBaseUrl + "/funnel",
11423
+ useImpersonationTree: useImpersonationTree,
11424
+ fetchOptions: {
11425
+ method: exports.EMethods.post,
11426
+ body: buildEventBody(options),
11427
+ },
11428
+ });
11429
+ }
11430
+
11278
11431
  function createForm(_a) {
11279
11432
  var form = _a.form, type = _a.type;
11280
11433
  return callApi({
@@ -12409,6 +12562,65 @@ var Email = /** @class */ (function () {
12409
12562
  return Email;
12410
12563
  }());
12411
12564
 
12565
+ exports.ETrackedEventType = void 0;
12566
+ (function (ETrackedEventType) {
12567
+ ETrackedEventType["pageView"] = "page_view";
12568
+ ETrackedEventType["scrollDepth"] = "scroll_depth";
12569
+ ETrackedEventType["pageConversion"] = "page_conversion";
12570
+ ETrackedEventType["pageExit"] = "page_exit";
12571
+ ETrackedEventType["popupView"] = "popup_view";
12572
+ ETrackedEventType["popupDismiss"] = "popup_dismiss";
12573
+ ETrackedEventType["popupConversion"] = "popup_conversion";
12574
+ ETrackedEventType["click"] = "click";
12575
+ ETrackedEventType["formSubmit"] = "form_submit";
12576
+ })(exports.ETrackedEventType || (exports.ETrackedEventType = {}));
12577
+ exports.ETrackedEntityType = void 0;
12578
+ (function (ETrackedEntityType) {
12579
+ ETrackedEntityType["page"] = "page";
12580
+ ETrackedEntityType["popup"] = "popup";
12581
+ })(exports.ETrackedEntityType || (exports.ETrackedEntityType = {}));
12582
+ exports.ETrackedDeviceType = void 0;
12583
+ (function (ETrackedDeviceType) {
12584
+ ETrackedDeviceType["mobile"] = "mobile";
12585
+ ETrackedDeviceType["desktop"] = "desktop";
12586
+ ETrackedDeviceType["tablet"] = "tablet";
12587
+ })(exports.ETrackedDeviceType || (exports.ETrackedDeviceType = {}));
12588
+
12589
+ var EventModel = /** @class */ (function () {
12590
+ function EventModel(params) {
12591
+ var _a;
12592
+ this.eventId = params.eventId;
12593
+ this.eventType = params.eventType;
12594
+ this.entityType = params.entityType;
12595
+ this.entityId = params.entityId;
12596
+ this.sessionId = params.sessionId;
12597
+ this.visitorId = params.visitorId;
12598
+ this.occurredAt = params.occurredAt;
12599
+ this.deviceType = params.deviceType;
12600
+ this.browser = params.browser;
12601
+ this.os = params.os;
12602
+ this.source = params.source;
12603
+ this.utmSource = params.utmSource;
12604
+ this.utmMedium = params.utmMedium;
12605
+ this.utmCampaign = params.utmCampaign;
12606
+ this.referrer = params.referrer;
12607
+ this.properties = (_a = params.properties) !== null && _a !== void 0 ? _a : {};
12608
+ this.scrollDepth = params.scrollDepth;
12609
+ this.elementId = params.elementId;
12610
+ this.popupTrigger = params.popupTrigger;
12611
+ this.pageUrl = params.pageUrl;
12612
+ this.email = params.email;
12613
+ this.listId = params.listId;
12614
+ this.contactId = params.contactId;
12615
+ this.formId = params.formId;
12616
+ this.ip = params.ip;
12617
+ }
12618
+ EventModel.prototype.toJson = function () {
12619
+ return modelToJson(this);
12620
+ };
12621
+ return EventModel;
12622
+ }());
12623
+
12412
12624
  var CommonFormModel = /** @class */ (function () {
12413
12625
  function CommonFormModel(_a) {
12414
12626
  var id = _a.id, name = _a.name, list_id = _a.list_id, double_opt_in = _a.double_opt_in;
@@ -19950,6 +20162,90 @@ var EmailAPIFactory = /** @class */ (function () {
19950
20162
  return EmailAPIFactory;
19951
20163
  }());
19952
20164
 
20165
+ function mapEventRow(row) {
20166
+ var _a;
20167
+ return new EventModel({
20168
+ eventId: row.event_id,
20169
+ eventType: row.event_type,
20170
+ entityType: row.entity_type,
20171
+ entityId: row.entity_id,
20172
+ sessionId: row.session_id,
20173
+ visitorId: row.visitor_id,
20174
+ occurredAt: row.occurred_at,
20175
+ deviceType: row.device_type,
20176
+ browser: row.browser,
20177
+ os: row.os,
20178
+ source: row.source,
20179
+ utmSource: row.utm_source,
20180
+ utmMedium: row.utm_medium,
20181
+ utmCampaign: row.utm_campaign,
20182
+ referrer: row.referrer,
20183
+ properties: (_a = row.properties) !== null && _a !== void 0 ? _a : {},
20184
+ scrollDepth: row.scroll_depth,
20185
+ elementId: row.element_id,
20186
+ popupTrigger: row.popup_trigger,
20187
+ pageUrl: row.page_url,
20188
+ email: row.email,
20189
+ listId: row.list_id,
20190
+ contactId: row.contact_id,
20191
+ formId: row.form_id,
20192
+ ip: row.ip,
20193
+ });
20194
+ }
20195
+ var EventTrackingFactory = /** @class */ (function () {
20196
+ function EventTrackingFactory() {
20197
+ }
20198
+ EventTrackingFactory.list = function (_a) {
20199
+ return __awaiter(this, void 0, void 0, function () {
20200
+ var options = __rest(_a, []);
20201
+ return __generator(this, function (_b) {
20202
+ return [2 /*return*/, listEvents(options).then(function (response) { return (__assign(__assign({}, response), { items: response.items.map(mapEventRow) })); })];
20203
+ });
20204
+ });
20205
+ };
20206
+ EventTrackingFactory.getSummary = function (_a) {
20207
+ return __awaiter(this, void 0, void 0, function () {
20208
+ var options = __rest(_a, []);
20209
+ return __generator(this, function (_b) {
20210
+ return [2 /*return*/, getEventSummary(options)];
20211
+ });
20212
+ });
20213
+ };
20214
+ EventTrackingFactory.getTimeseries = function (_a) {
20215
+ return __awaiter(this, void 0, void 0, function () {
20216
+ var options = __rest(_a, []);
20217
+ return __generator(this, function (_b) {
20218
+ return [2 /*return*/, getEventTimeseries(options)];
20219
+ });
20220
+ });
20221
+ };
20222
+ EventTrackingFactory.getBreakdown = function (_a) {
20223
+ return __awaiter(this, void 0, void 0, function () {
20224
+ var options = __rest(_a, []);
20225
+ return __generator(this, function (_b) {
20226
+ return [2 /*return*/, getEventBreakdown(options)];
20227
+ });
20228
+ });
20229
+ };
20230
+ EventTrackingFactory.getPropertyKeys = function (_a) {
20231
+ return __awaiter(this, void 0, void 0, function () {
20232
+ var options = __rest(_a, []);
20233
+ return __generator(this, function (_b) {
20234
+ return [2 /*return*/, getEventPropertyKeys(options)];
20235
+ });
20236
+ });
20237
+ };
20238
+ EventTrackingFactory.getFunnel = function (_a) {
20239
+ return __awaiter(this, void 0, void 0, function () {
20240
+ var options = __rest(_a, []);
20241
+ return __generator(this, function (_b) {
20242
+ return [2 /*return*/, getEventFunnel(options)];
20243
+ });
20244
+ });
20245
+ };
20246
+ return EventTrackingFactory;
20247
+ }());
20248
+
19953
20249
  var FormsFactory = /** @class */ (function () {
19954
20250
  function FormsFactory() {
19955
20251
  }
@@ -20626,6 +20922,8 @@ exports.Email = Email;
20626
20922
  exports.EmailAPIFactory = EmailAPIFactory;
20627
20923
  exports.EmptyContent = EmptyContent;
20628
20924
  exports.EnhancedFormModel = EnhancedFormModel;
20925
+ exports.EventModel = EventModel;
20926
+ exports.EventTrackingFactory = EventTrackingFactory;
20629
20927
  exports.FileUpload = FileUpload;
20630
20928
  exports.FilterBar = FilterBar;
20631
20929
  exports.FormModel = FormModel;
@@ -20804,6 +21102,11 @@ exports.getEmail = getEmail;
20804
21102
  exports.getEmailActivitySummary = getEmailActivitySummary;
20805
21103
  exports.getEmailReport = getEmailReport;
20806
21104
  exports.getEndOfDate = getEndOfDate;
21105
+ exports.getEventBreakdown = getEventBreakdown;
21106
+ exports.getEventFunnel = getEventFunnel;
21107
+ exports.getEventPropertyKeys = getEventPropertyKeys;
21108
+ exports.getEventSummary = getEventSummary;
21109
+ exports.getEventTimeseries = getEventTimeseries;
20807
21110
  exports.getForm = getForm;
20808
21111
  exports.getHashQueryWithoutHistory = getHashQueryWithoutHistory;
20809
21112
  exports.getIconSize = getIconSize;
@@ -20847,6 +21150,7 @@ exports.listContacts = listContacts;
20847
21150
  exports.listCustomDomains = listCustomDomains;
20848
21151
  exports.listDkimService = listDkimService;
20849
21152
  exports.listEmailLogs = listEmailLogs;
21153
+ exports.listEvents = listEvents;
20850
21154
  exports.listForms = listForms;
20851
21155
  exports.listList = listList;
20852
21156
  exports.listListAttributes = listListAttributes;
@@ -0,0 +1,31 @@
1
+ import { TEventModel } from "./types";
2
+ export declare class EventModel {
3
+ readonly eventId: string;
4
+ readonly eventType: TEventModel["eventType"];
5
+ readonly entityType: TEventModel["entityType"];
6
+ readonly entityId: string;
7
+ readonly sessionId?: string | null;
8
+ readonly visitorId?: string | null;
9
+ readonly occurredAt: string;
10
+ readonly deviceType?: TEventModel["deviceType"];
11
+ readonly browser?: string | null;
12
+ readonly os?: string | null;
13
+ readonly source?: string | null;
14
+ readonly utmSource?: string | null;
15
+ readonly utmMedium?: string | null;
16
+ readonly utmCampaign?: string | null;
17
+ readonly referrer?: string | null;
18
+ readonly properties: Record<string, unknown>;
19
+ readonly scrollDepth?: number | null;
20
+ readonly elementId?: string | null;
21
+ readonly popupTrigger?: string | null;
22
+ readonly pageUrl?: string | null;
23
+ readonly email?: string | null;
24
+ readonly listId?: string | null;
25
+ readonly contactId?: string | null;
26
+ readonly formId?: string | null;
27
+ readonly ip?: string | null;
28
+ constructor(params: TEventModel);
29
+ toJson(): any;
30
+ }
31
+ export * from "./types";
@@ -0,0 +1,47 @@
1
+ export declare enum ETrackedEventType {
2
+ pageView = "page_view",
3
+ scrollDepth = "scroll_depth",
4
+ pageConversion = "page_conversion",
5
+ pageExit = "page_exit",
6
+ popupView = "popup_view",
7
+ popupDismiss = "popup_dismiss",
8
+ popupConversion = "popup_conversion",
9
+ click = "click",
10
+ formSubmit = "form_submit"
11
+ }
12
+ export declare enum ETrackedEntityType {
13
+ page = "page",
14
+ popup = "popup"
15
+ }
16
+ export declare enum ETrackedDeviceType {
17
+ mobile = "mobile",
18
+ desktop = "desktop",
19
+ tablet = "tablet"
20
+ }
21
+ export type TEventModel = {
22
+ eventId: string;
23
+ eventType: ETrackedEventType | string;
24
+ entityType: ETrackedEntityType | string;
25
+ entityId: string;
26
+ sessionId?: string | null;
27
+ visitorId?: string | null;
28
+ occurredAt: string;
29
+ deviceType?: ETrackedDeviceType | string | null;
30
+ browser?: string | null;
31
+ os?: string | null;
32
+ source?: string | null;
33
+ utmSource?: string | null;
34
+ utmMedium?: string | null;
35
+ utmCampaign?: string | null;
36
+ referrer?: string | null;
37
+ properties: Record<string, unknown>;
38
+ scrollDepth?: number | null;
39
+ elementId?: string | null;
40
+ popupTrigger?: string | null;
41
+ pageUrl?: string | null;
42
+ email?: string | null;
43
+ listId?: string | null;
44
+ contactId?: string | null;
45
+ formId?: string | null;
46
+ ip?: string | null;
47
+ };
@@ -5,6 +5,7 @@ export * from "./contact";
5
5
  export * from "./customDomains";
6
6
  export * from "./customer";
7
7
  export * from "./emailAPI";
8
+ export * from "./eventTracking";
8
9
  export * from "./form";
9
10
  export * from "./list";
10
11
  export * from "./pages";
@@ -0,0 +1,8 @@
1
+ import { TGetEventBreakdown, TGetEventFunnel, TGetEventPropertyKeys, TGetEventSummary, TGetEventTimeseries, TListEvents } from "./types";
2
+ export declare function listEvents({ useImpersonationTree, ...options }: TListEvents): Promise<any>;
3
+ export declare function getEventSummary({ useImpersonationTree, ...options }: TGetEventSummary): Promise<any>;
4
+ export declare function getEventTimeseries({ useImpersonationTree, ...options }: TGetEventTimeseries): Promise<any>;
5
+ export declare function getEventBreakdown({ useImpersonationTree, ...options }: TGetEventBreakdown): Promise<any>;
6
+ export declare function getEventPropertyKeys({ useImpersonationTree, ...options }: TGetEventPropertyKeys): Promise<any>;
7
+ export declare function getEventFunnel({ useImpersonationTree, ...options }: TGetEventFunnel): Promise<any>;
8
+ export * from "./types";