@cakemail-org/ui-components-v2 2.0.59 → 2.0.61

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.
@@ -88,6 +88,11 @@ export declare enum EEvents {
88
88
  FORM_CREATED = "Form.Created",
89
89
  FORM_UPDATED = "Form.Updated",
90
90
  FORM_DELETED = "Form.Deleted",
91
+ FORM_ENABLED = "Form.Enabled",
92
+ FORM_DISABLED = "Form.Disabled",
93
+ FORM_PUBLISHED = "Form.Published",
94
+ FORM_RENDERED = "Form.Rendered",
95
+ FORM_RENDERED_PUBLISHED = "Form.Rendered.Published",
91
96
  AUTOMATION_CREATED = "Automation.Created",
92
97
  AUTOMATION_UPDATED = "Automation.Updated",
93
98
  AUTOMATION_DELETED = "Automation.Deleted",
@@ -20,14 +20,18 @@ export type TFilterBar = {
20
20
  })[];
21
21
  dropMenuProps?: {
22
22
  tabs?: Pick<TSubNavItem, "name" | "text" | "disabled">[];
23
- actions?: {
24
- tab: string;
25
- text: string;
26
- onClick: TButtonClick;
27
- }[];
28
- emptyTexts?: TFilterBarText[];
29
- titles?: TFilterBarText[];
30
23
  disabledTabs?: string[];
24
+ options?: {
25
+ [tabName: string]: {
26
+ action?: {
27
+ text: string;
28
+ onClick: TButtonClick;
29
+ };
30
+ emptyText?: TFilterBarText;
31
+ title?: TFilterBarText;
32
+ disableLocalSearch?: boolean;
33
+ };
34
+ };
31
35
  };
32
36
  replacePartial?: boolean;
33
37
  onSearchUpdate?: ({ value, tab }: TFilterBarSearchUpdate) => void;
@@ -50,5 +54,4 @@ export type TFilterBarFilterTerm = {
50
54
  export type TFilterBarText = {
51
55
  text?: string;
52
56
  desc?: string;
53
- tab: string;
54
57
  };
@@ -1,9 +1,12 @@
1
- import { FormModel } from "../../models";
1
+ import { EnhancedFormModel, FormModel, SummaryEnhancedFormModel } from "../../models";
2
2
  import { TGenericListParams, TGenericListReturn } from "../../types/services";
3
3
  export declare class FormsFactory {
4
4
  static get({ id }: {
5
5
  id: string;
6
- }): Promise<FormModel>;
7
- static list({ ...options }: TGenericListParams): Promise<TGenericListReturn<FormModel>>;
6
+ }): Promise<FormModel | EnhancedFormModel>;
7
+ static list({ ...options }: TGenericListParams): Promise<TGenericListReturn<FormModel | SummaryEnhancedFormModel>>;
8
+ static create({ form }: {
9
+ form: Partial<FormModel | EnhancedFormModel>;
10
+ }): Promise<EnhancedFormModel | FormModel>;
8
11
  }
9
12
  export * from "./types";
package/dist/esm/index.js CHANGED
@@ -5223,6 +5223,11 @@ var EEvents;
5223
5223
  EEvents["FORM_CREATED"] = "Form.Created";
5224
5224
  EEvents["FORM_UPDATED"] = "Form.Updated";
5225
5225
  EEvents["FORM_DELETED"] = "Form.Deleted";
5226
+ EEvents["FORM_ENABLED"] = "Form.Enabled";
5227
+ EEvents["FORM_DISABLED"] = "Form.Disabled";
5228
+ EEvents["FORM_PUBLISHED"] = "Form.Published";
5229
+ EEvents["FORM_RENDERED"] = "Form.Rendered";
5230
+ EEvents["FORM_RENDERED_PUBLISHED"] = "Form.Rendered.Published";
5226
5231
  EEvents["AUTOMATION_CREATED"] = "Automation.Created";
5227
5232
  EEvents["AUTOMATION_UPDATED"] = "Automation.Updated";
5228
5233
  EEvents["AUTOMATION_DELETED"] = "Automation.Deleted";
@@ -8728,13 +8733,13 @@ var css_248z$9 = ".filter-bar-component-v2 {\n background: var(--cloud, #F4F4F4
8728
8733
  styleInject(css_248z$9);
8729
8734
 
8730
8735
  function FilterBar(_a) {
8731
- var _b, _c, _d, _e, _f;
8736
+ var _b, _c, _d, _e, _f, _g, _h, _j;
8732
8737
  var operatorOptions = _a.operatorOptions, initOperatorValue = _a.initOperatorValue, operatorValue = _a.operatorValue, onSave = _a.onSave, saveTxt = _a.saveTxt, onClear = _a.onClear, clearTxt = _a.clearTxt, onUpdate = _a.onUpdate, onSearchUpdate = _a.onSearchUpdate, loading = _a.loading, addFilterTxt = _a.addFilterTxt, filterTerms = _a.filterTerms, initFilterTerms = _a.initFilterTerms, dropMenuOptions = _a.dropMenuOptions, dropMenuProps = _a.dropMenuProps, replacePartial = _a.replacePartial;
8733
- var _g = useState(false), showSearch = _g[0], setShowSearch = _g[1];
8734
- var _h = useState(""), search = _h[0], setSearch = _h[1];
8735
- var _j = useState((_c = (_b = dropMenuProps === null || dropMenuProps === void 0 ? void 0 : dropMenuProps.tabs) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.name), selectedTab = _j[0], setSelectedTab = _j[1];
8736
- var _k = useState(filterTerms !== undefined ? filterTerms : initFilterTerms !== undefined ? initFilterTerms : []), filterTermState = _k[0], setFilterTermState = _k[1];
8737
- var _l = useState(operatorValue !== undefined ? operatorValue : initOperatorValue !== undefined ? initOperatorValue : EOperatorTypes.and), operatorState = _l[0], setOperatorState = _l[1];
8738
+ var _k = useState(false), showSearch = _k[0], setShowSearch = _k[1];
8739
+ var _l = useState(""), search = _l[0], setSearch = _l[1];
8740
+ var _m = useState((_c = (_b = dropMenuProps === null || dropMenuProps === void 0 ? void 0 : dropMenuProps.tabs) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.name), selectedTab = _m[0], setSelectedTab = _m[1];
8741
+ var _o = useState(filterTerms !== undefined ? filterTerms : initFilterTerms !== undefined ? initFilterTerms : []), filterTermState = _o[0], setFilterTermState = _o[1];
8742
+ var _p = useState(operatorValue !== undefined ? operatorValue : initOperatorValue !== undefined ? initOperatorValue : EOperatorTypes.and), operatorState = _p[0], setOperatorState = _p[1];
8738
8743
  var cFilterTerms = filterTerms !== undefined ? filterTerms : filterTermState;
8739
8744
  var cOperatorValue = operatorValue !== undefined ? operatorValue : operatorState;
8740
8745
  useEffect(handleSearchFocus, [showSearch]);
@@ -8804,23 +8809,26 @@ function FilterBar(_a) {
8804
8809
  function handleFilterSets(event, item) {
8805
8810
  setSelectedTab(item.name);
8806
8811
  }
8807
- // Filter out current pills & search
8808
- dropMenuOptions = dropMenuOptions === null || dropMenuOptions === void 0 ? void 0 : dropMenuOptions.filter(function (i) {
8809
- var _a, _b;
8810
- var item = (_a = cFilterTerms.find(function (cF) { return i.value === cF.value; })) === null || _a === void 0 ? void 0 : _a.value;
8811
- return (i.value !== item || i.value == null) && ((_b = i.value) === null || _b === void 0 ? void 0 : _b.includes(search));
8812
- });
8813
8812
  //Filter current set
8814
8813
  dropMenuOptions = dropMenuOptions === null || dropMenuOptions === void 0 ? void 0 : dropMenuOptions.filter(function (i) {
8815
8814
  return i.tab === selectedTab;
8816
8815
  });
8816
+ // Filter out current pills & search
8817
+ dropMenuOptions = dropMenuOptions === null || dropMenuOptions === void 0 ? void 0 : dropMenuOptions.filter(function (i) {
8818
+ var _a, _b, _c, _d;
8819
+ if ((_b = (_a = dropMenuProps === null || dropMenuProps === void 0 ? void 0 : dropMenuProps.options) === null || _a === void 0 ? void 0 : _a[i.tab || ""]) === null || _b === void 0 ? void 0 : _b.disableLocalSearch) {
8820
+ return true;
8821
+ }
8822
+ var item = (_c = cFilterTerms.find(function (cF) { return i.value === cF.value; })) === null || _c === void 0 ? void 0 : _c.value;
8823
+ return (i.value !== item || i.value == null) && ((_d = i.value) === null || _d === void 0 ? void 0 : _d.includes(search));
8824
+ });
8817
8825
  //set onClick
8818
8826
  dropMenuOptions = dropMenuOptions === null || dropMenuOptions === void 0 ? void 0 : dropMenuOptions.map(function (i) {
8819
8827
  var _a;
8820
8828
  return __assign(__assign({}, i), { disabled: (_a = dropMenuProps === null || dropMenuProps === void 0 ? void 0 : dropMenuProps.disabledTabs) === null || _a === void 0 ? void 0 : _a.includes(i.tab), onClick: function () { handleDropMenuClick(i === null || i === void 0 ? void 0 : i.value); } });
8821
8829
  });
8822
8830
  if (dropMenuOptions && (dropMenuOptions === null || dropMenuOptions === void 0 ? void 0 : dropMenuOptions.length) > 0) {
8823
- var foundTitle = (_d = dropMenuProps === null || dropMenuProps === void 0 ? void 0 : dropMenuProps.titles) === null || _d === void 0 ? void 0 : _d.find(function (title) { return selectedTab === title.tab; });
8831
+ var foundTitle = (_e = (_d = dropMenuProps === null || dropMenuProps === void 0 ? void 0 : dropMenuProps.options) === null || _d === void 0 ? void 0 : _d[selectedTab || ""]) === null || _e === void 0 ? void 0 : _e.title;
8824
8832
  if (foundTitle) {
8825
8833
  dropMenuOptions.unshift({
8826
8834
  tab: selectedTab || "partial",
@@ -8831,7 +8839,7 @@ function FilterBar(_a) {
8831
8839
  }
8832
8840
  }
8833
8841
  if (dropMenuOptions && (dropMenuOptions === null || dropMenuOptions === void 0 ? void 0 : dropMenuOptions.length) === 0) {
8834
- var foundEmptyText = (_e = dropMenuProps === null || dropMenuProps === void 0 ? void 0 : dropMenuProps.emptyTexts) === null || _e === void 0 ? void 0 : _e.find(function (text) { return selectedTab === text.tab; });
8842
+ var foundEmptyText = (_g = (_f = dropMenuProps === null || dropMenuProps === void 0 ? void 0 : dropMenuProps.options) === null || _f === void 0 ? void 0 : _f[selectedTab || ""]) === null || _g === void 0 ? void 0 : _g.emptyText;
8835
8843
  if (foundEmptyText) {
8836
8844
  dropMenuOptions.push({
8837
8845
  tab: selectedTab || "partial",
@@ -8841,7 +8849,7 @@ function FilterBar(_a) {
8841
8849
  });
8842
8850
  }
8843
8851
  }
8844
- var currentActionSet = (_f = dropMenuProps === null || dropMenuProps === void 0 ? void 0 : dropMenuProps.actions) === null || _f === void 0 ? void 0 : _f.find(function (action) { return selectedTab === action.tab; });
8852
+ var currentAction = (_j = (_h = dropMenuProps === null || dropMenuProps === void 0 ? void 0 : dropMenuProps.options) === null || _h === void 0 ? void 0 : _h[selectedTab || ""]) === null || _j === void 0 ? void 0 : _j.action;
8845
8853
  if (dropMenuProps === null || dropMenuProps === void 0 ? void 0 : dropMenuProps.tabs) {
8846
8854
  dropMenuProps.tabs = dropMenuProps.tabs.map(function (t) {
8847
8855
  var _a;
@@ -8860,15 +8868,14 @@ function FilterBar(_a) {
8860
8868
  React__default.createElement(Stack$1, { className: "dropMenuContainer" },
8861
8869
  (dropMenuProps === null || dropMenuProps === void 0 ? void 0 : dropMenuProps.tabs) && dropMenuProps.tabs.length > 1 && React__default.createElement(SubNav, { initialSelected: selectedTab, items: dropMenuProps.tabs, onClick: handleFilterSets }),
8862
8870
  React__default.createElement(DropMenu, { inlineMenu: true, options: dropMenuOptions }),
8863
- currentActionSet && React__default.createElement(Button, { color: "cloud", onClick: currentActionSet.onClick }, currentActionSet.text)))),
8871
+ currentAction && React__default.createElement(Button, { color: "cloud", onClick: currentAction.onClick }, currentAction.text)))),
8864
8872
  !showSearch &&
8865
8873
  React__default.createElement(Link, { color: "secondary", onClick: handleShowSearch, alignItems: "center", justifyContent: "center", display: "flex", gap: 3 },
8866
8874
  React__default.createElement(Icon, { name: "Add18", color: "secondary" }),
8867
8875
  " ",
8868
8876
  addFilterTxt)),
8869
8877
  React__default.createElement(Stack$1, { direction: "row", className: "pillContainer ".concat(cFilterTerms.length === 0 ? "empty" : ""), alignItems: "center", justifyContent: "flex-start", flex: 1, gap: 2 }, cFilterTerms.map(function (term) {
8870
- var _a;
8871
- var isDisabled = (_a = dropMenuProps === null || dropMenuProps === void 0 ? void 0 : dropMenuProps.disabledTabs) === null || _a === void 0 ? void 0 : _a.includes(String(term.tab));
8878
+ var isDisabled = Object.keys((dropMenuProps === null || dropMenuProps === void 0 ? void 0 : dropMenuProps.options) || {}).includes(String(term.tab));
8872
8879
  var isPartial = term.tab === "partial";
8873
8880
  return React__default.createElement(Chip, { className: isDisabled ? "disabled" : "", label: isPartial ? React__default.createElement(React__default.Fragment, null,
8874
8881
  " ",
@@ -9704,6 +9711,16 @@ function getEmail(_a) {
9704
9711
  });
9705
9712
  }
9706
9713
 
9714
+ function createForm(_a) {
9715
+ var form = _a.form;
9716
+ return callApi({
9717
+ url: uiKitConfig.GATEWAY_PROXY + "/forms",
9718
+ fetchOptions: {
9719
+ body: form,
9720
+ method: EMethods.post
9721
+ }
9722
+ });
9723
+ }
9707
9724
  function listForms(_a) {
9708
9725
  var useImpersonationTree = _a.useImpersonationTree, options = __rest(_a, ["useImpersonationTree"]);
9709
9726
  return callApi({
@@ -9715,6 +9732,16 @@ function listForms(_a) {
9715
9732
  useImpersonationTree: useImpersonationTree
9716
9733
  });
9717
9734
  }
9735
+ function patchForm(_a) {
9736
+ var id = _a.id, data = _a.data;
9737
+ return callApi({
9738
+ url: uiKitConfig.GATEWAY_PROXY + "/forms/" + id,
9739
+ fetchOptions: {
9740
+ method: EMethods.patch,
9741
+ body: data
9742
+ }
9743
+ });
9744
+ }
9718
9745
  function getForm(_a) {
9719
9746
  var id = _a.id;
9720
9747
  return callApi({
@@ -9724,6 +9751,52 @@ function getForm(_a) {
9724
9751
  }
9725
9752
  });
9726
9753
  }
9754
+ function deleteForm(_a) {
9755
+ var id = _a.id;
9756
+ return callApi({
9757
+ url: uiKitConfig.GATEWAY_PROXY + "/forms/" + id,
9758
+ fetchOptions: {
9759
+ method: EMethods.delete
9760
+ }
9761
+ });
9762
+ }
9763
+ function enableForm(_a) {
9764
+ var id = _a.id;
9765
+ return callApi({
9766
+ url: uiKitConfig.GATEWAY_PROXY + "/forms/" + id + "/enable",
9767
+ fetchOptions: {
9768
+ method: EMethods.post
9769
+ }
9770
+ });
9771
+ }
9772
+ function disableForm(_a) {
9773
+ var id = _a.id;
9774
+ return callApi({
9775
+ url: uiKitConfig.GATEWAY_PROXY + "/forms/" + id + "/disable",
9776
+ fetchOptions: {
9777
+ method: EMethods.post
9778
+ }
9779
+ });
9780
+ }
9781
+ function publishForm(_a) {
9782
+ var id = _a.id;
9783
+ return callApi({
9784
+ url: uiKitConfig.GATEWAY_PROXY + "/forms/" + id + "/publish",
9785
+ fetchOptions: {
9786
+ method: EMethods.post
9787
+ }
9788
+ });
9789
+ }
9790
+ function renderForm(_a) {
9791
+ var id = _a.id, published = _a.published;
9792
+ return callApi({
9793
+ url: uiKitConfig.GATEWAY_PROXY + "/forms/" + id + "/render",
9794
+ query: camelCase({ published: published }),
9795
+ fetchOptions: {
9796
+ method: EMethods.get
9797
+ }
9798
+ });
9799
+ }
9727
9800
 
9728
9801
  function requestSupportService(_a) {
9729
9802
  var requestOptions = __rest(_a, []);
@@ -16513,22 +16586,48 @@ var EmailAPIFactory = /** @class */ (function () {
16513
16586
  return EmailAPIFactory;
16514
16587
  }());
16515
16588
 
16516
- var FormModel = /** @class */ (function () {
16517
- function FormModel(_a) {
16518
- var id = _a.id, name = _a.name, status = _a.status, content = _a.content, language = _a.language, created_on = _a.created_on, last_updated_on = _a.last_updated_on, url = _a.url, thumbnail_url = _a.thumbnail_url, redirections = _a.redirections, list_id = _a.list_id, double_opt_in = _a.double_opt_in;
16589
+ var CommonFormModel = /** @class */ (function () {
16590
+ function CommonFormModel(_a) {
16591
+ var id = _a.id, name = _a.name, list_id = _a.list_id, double_opt_in = _a.double_opt_in;
16519
16592
  this.id = id;
16520
16593
  this.name = name;
16521
- this.status = status;
16522
- this.content = content;
16523
- this.language = language;
16524
- this.created_on = created_on;
16525
- this.last_updated_on = last_updated_on;
16526
- this.url = url;
16527
- this.thumbnail_url = thumbnail_url;
16528
- this.redirections = redirections;
16529
16594
  this.list_id = list_id;
16530
16595
  this.double_opt_in = double_opt_in;
16531
16596
  }
16597
+ CommonFormModel.prototype.toJson = function () {
16598
+ return modelToJson(this);
16599
+ };
16600
+ CommonFormModel.prototype.set = function (property, value) {
16601
+ modelSet(this, property, value);
16602
+ };
16603
+ CommonFormModel.prototype.delete = function () {
16604
+ return __awaiter(this, void 0, void 0, function () {
16605
+ var _this = this;
16606
+ return __generator(this, function (_a) {
16607
+ return [2 /*return*/, deleteForm({ id: this.id.toString() }).then(function (data) {
16608
+ trackEvent(EEvents.FORM_DELETED, { id: _this.id });
16609
+ return data;
16610
+ })];
16611
+ });
16612
+ });
16613
+ };
16614
+ return CommonFormModel;
16615
+ }());
16616
+ var FormModel = /** @class */ (function (_super) {
16617
+ __extends(FormModel, _super);
16618
+ function FormModel(_a) {
16619
+ var id = _a.id, name = _a.name, status = _a.status, content = _a.content, language = _a.language, created_on = _a.created_on, last_updated_on = _a.last_updated_on, url = _a.url, thumbnail_url = _a.thumbnail_url, redirections = _a.redirections, list_id = _a.list_id, double_opt_in = _a.double_opt_in;
16620
+ var _this = _super.call(this, { id: id, name: name, list_id: list_id, double_opt_in: double_opt_in }) || this;
16621
+ _this.status = status;
16622
+ _this.content = content;
16623
+ _this.language = language;
16624
+ _this.created_on = created_on;
16625
+ _this.last_updated_on = last_updated_on;
16626
+ _this.url = url;
16627
+ _this.thumbnail_url = thumbnail_url;
16628
+ _this.redirections = redirections;
16629
+ return _this;
16630
+ }
16532
16631
  FormModel.prototype.toJson = function () {
16533
16632
  return modelToJson(this);
16534
16633
  };
@@ -16536,7 +16635,106 @@ var FormModel = /** @class */ (function () {
16536
16635
  modelSet(this, property, value);
16537
16636
  };
16538
16637
  return FormModel;
16539
- }());
16638
+ }(CommonFormModel));
16639
+ var SummaryEnhancedFormModel = /** @class */ (function (_super) {
16640
+ __extends(SummaryEnhancedFormModel, _super);
16641
+ function SummaryEnhancedFormModel(_a) {
16642
+ var id = _a.id, list_id = _a.list_id, enabled = _a.enabled, name = _a.name, description = _a.description, tags = _a.tags, post_redirect_url = _a.post_redirect_url, double_opt_in = _a.double_opt_in, double_opt_in_redirect_url = _a.double_opt_in_redirect_url, submission_url = _a.submission_url, async_processing = _a.async_processing, branding = _a.branding, created_at = _a.created_at, updated_at = _a.updated_at, published_at = _a.published_at, edited_by = _a.edited_by, thumbnail_url = _a.thumbnail_url, recaptcha = _a.recaptcha;
16643
+ var _this = _super.call(this, { id: id, name: name, list_id: list_id, double_opt_in: double_opt_in }) || this;
16644
+ _this.enabled = enabled;
16645
+ _this.description = description;
16646
+ _this.tags = tags;
16647
+ _this.post_redirect_url = post_redirect_url;
16648
+ _this.double_opt_in_redirect_url = double_opt_in_redirect_url;
16649
+ _this.submission_url = submission_url;
16650
+ _this.async_processing = async_processing;
16651
+ _this.branding = branding;
16652
+ _this.created_at = created_at;
16653
+ _this.updated_at = updated_at;
16654
+ _this.published_at = published_at;
16655
+ _this.edited_by = edited_by;
16656
+ _this.thumbnail_url = thumbnail_url;
16657
+ _this.recaptcha = recaptcha;
16658
+ return _this;
16659
+ }
16660
+ SummaryEnhancedFormModel.prototype.enable = function () {
16661
+ return __awaiter(this, void 0, void 0, function () {
16662
+ var _this = this;
16663
+ return __generator(this, function (_a) {
16664
+ return [2 /*return*/, enableForm({ id: this.id.toString() }).then(function (data) {
16665
+ trackEvent(EEvents.FORM_ENABLED, { id: _this.id });
16666
+ return data;
16667
+ })];
16668
+ });
16669
+ });
16670
+ };
16671
+ SummaryEnhancedFormModel.prototype.disable = function () {
16672
+ return __awaiter(this, void 0, void 0, function () {
16673
+ var _this = this;
16674
+ return __generator(this, function (_a) {
16675
+ return [2 /*return*/, disableForm({ id: this.id.toString() }).then(function (data) {
16676
+ trackEvent(EEvents.FORM_DISABLED, { id: _this.id });
16677
+ return data;
16678
+ })];
16679
+ });
16680
+ });
16681
+ };
16682
+ SummaryEnhancedFormModel.prototype.publish = function () {
16683
+ return __awaiter(this, void 0, void 0, function () {
16684
+ var _this = this;
16685
+ return __generator(this, function (_a) {
16686
+ return [2 /*return*/, publishForm({ id: this.id.toString() }).then(function (data) {
16687
+ trackEvent(EEvents.FORM_PUBLISHED, { id: _this.id });
16688
+ return data;
16689
+ })];
16690
+ });
16691
+ });
16692
+ };
16693
+ SummaryEnhancedFormModel.prototype.render = function () {
16694
+ return __awaiter(this, arguments, void 0, function (published) {
16695
+ var _this = this;
16696
+ if (published === void 0) { published = false; }
16697
+ return __generator(this, function (_a) {
16698
+ return [2 /*return*/, renderForm({ id: this.id.toString(), published: published }).then(function (data) {
16699
+ trackEvent(published ? EEvents.FORM_RENDERED_PUBLISHED : EEvents.FORM_RENDERED, { id: _this.id });
16700
+ return data;
16701
+ })];
16702
+ });
16703
+ });
16704
+ };
16705
+ SummaryEnhancedFormModel.prototype.save = function () {
16706
+ return __awaiter(this, void 0, void 0, function () {
16707
+ var _this = this;
16708
+ return __generator(this, function (_a) {
16709
+ return [2 /*return*/, patchForm({ id: this.id.toString(), data: this.toJson() }).then(function (data) {
16710
+ trackEvent(EEvents.FORM_UPDATED, { id: _this.id });
16711
+ return data;
16712
+ })];
16713
+ });
16714
+ });
16715
+ };
16716
+ SummaryEnhancedFormModel.prototype.toJson = function () {
16717
+ return modelToJson(this);
16718
+ };
16719
+ SummaryEnhancedFormModel.prototype.set = function (property, value) {
16720
+ modelSet(this, property, value);
16721
+ };
16722
+ return SummaryEnhancedFormModel;
16723
+ }(CommonFormModel));
16724
+ var EnhancedFormModel = /** @class */ (function (_super) {
16725
+ __extends(EnhancedFormModel, _super);
16726
+ function EnhancedFormModel(_a) {
16727
+ var _this = this;
16728
+ var content = _a.content, rest = __rest(_a, ["content"]);
16729
+ _this = _super.call(this, rest) || this;
16730
+ _this.content = content;
16731
+ return _this;
16732
+ }
16733
+ EnhancedFormModel.prototype.toJson = function () {
16734
+ return modelToJson(this);
16735
+ };
16736
+ return EnhancedFormModel;
16737
+ }(SummaryEnhancedFormModel));
16540
16738
 
16541
16739
  var ListModel = /** @class */ (function () {
16542
16740
  function ListModel(params) {
@@ -16735,6 +16933,9 @@ var FormsFactory = /** @class */ (function () {
16735
16933
  var id = _b.id;
16736
16934
  return __generator(this, function (_c) {
16737
16935
  return [2 /*return*/, getForm({ id: id }).then(function (data) {
16936
+ if ("enabled" in data.data) {
16937
+ return new EnhancedFormModel(data.data);
16938
+ }
16738
16939
  return new FormModel(data.data);
16739
16940
  })];
16740
16941
  });
@@ -16746,6 +16947,9 @@ var FormsFactory = /** @class */ (function () {
16746
16947
  return __generator(this, function (_b) {
16747
16948
  return [2 /*return*/, listForms(options).then(function (data) {
16748
16949
  data.data = data.data.map(function (form) {
16950
+ if ("enabled" in form) {
16951
+ return new SummaryEnhancedFormModel(form);
16952
+ }
16749
16953
  return new FormModel(form);
16750
16954
  });
16751
16955
  return data;
@@ -16753,6 +16957,19 @@ var FormsFactory = /** @class */ (function () {
16753
16957
  });
16754
16958
  });
16755
16959
  };
16960
+ FormsFactory.create = function (_a) {
16961
+ return __awaiter(this, arguments, void 0, function (_b) {
16962
+ var form = _b.form;
16963
+ return __generator(this, function (_c) {
16964
+ return [2 /*return*/, createForm({ form: form }).then(function (data) {
16965
+ if ("enabled" in data.data) {
16966
+ return new EnhancedFormModel(data.data);
16967
+ }
16968
+ return new FormModel(data.data);
16969
+ })];
16970
+ });
16971
+ });
16972
+ };
16756
16973
  return FormsFactory;
16757
16974
  }());
16758
16975
 
@@ -17017,4 +17234,4 @@ var UsersFactory = /** @class */ (function () {
17017
17234
  return UsersFactory;
17018
17235
  }());
17019
17236
 
17020
- export { AccountModel, AccountsFactory, ActionBarContainer, ActionBarContainerHandler, AssetManager, AutomationsFactory, Avatar, BillingFactory, BrandWrapper, BrandsFactory, Button, ButtonMenu, CampaignModel, CampaignsFactory, Checkbox, Chip, CircularProgress, CodeInput, ColManager, ColorTextField, ContactModel, ContactsFactory, ContentSectionContainer, CopyToClipboard, CountryDropdown, CustomerModel, DataTable, DataTableHead, DataTableRow, DateCalendar, DatePicker, DateTimeCalendar, DateTimePicker, Dialog, DialogActions, DialogHandler, DialogTitle, Divider, Drawer, DrawerHandler, DropMenu, Dropdown, EApiLanguages, ECampaignStatuses, EEMailSummaryStatuses, EEmailAttachementTypes, EEmailLogType, EEmailLogTypeParam, EEmailProviders, EEmailSummaryEngagement, EEvents, EMethods, EOperatorTypes, EPartialInfoPool, EStorageType, ElementContains, Email, EmailAPIFactory, EmptyContent, FileUpload, FilterBar, FormModel, FormsFactory, FullBar, GenericWrapper, GenericWrapperContext, GroupedActions, Header, Icon, IconPill, InformationGroup, InlineTextEdit, LinearProgress, ListCampaignModel, ListModel, ListTemplateModel, ListsFactory, LoadingContainer, LocationTextField, Logo, MD5, MetricCard, Modal, ModalHandler, ModalHeading, OverlayHandler, PhoneTextField, Search, SenderModel, SendersFactory, SideMenu, SideMenuContainer, SideMenuItem, SubNav, SupportFactory, SystemEmailsFactory, SystemEmailsModel, TemplateModel, TemplatesFactory, TextField, TimePicker, TimeSelector, Toggle, TopMenu, Typography, UserModel, UsersFactory, addPartialInformation, addToImpersonificationTree, amIImpersonating, amILoggedInService, archiveCampaign, areAllPropertiesEmpty, buildMUITheme, callApi, camelCase, camelToSnakeCase, cancelCampaign, capitalizeFirstLetter, cleanPostHogId, clearImpersonificationTree, clearStorage, connectToZendeskSupportService, createAccount, createBrand, createCampaign, createCampaignLogsExports, createCampaignsReportsExport, createTemplate, deepMergeObject, deleteCampaign, deleteCampaignsReportsExport, deletePartialInformation, deleteStorageItem, deleteTemplate, descendingComparator, downloadCampaignLogExport, downloadCampaignsReportsExport, emptyAccountAddress, emptyAccountLimits, enrichBrand, enrichOrganization, enrichProfile, eventCondition, eventIdentify, eventLogout, fetchRetry, fetchRoute, findNestedProperty, formatNumber, getAccount, getAccountReport, getAdjustedBillingCycle, getBestLocalMatch, getBrand, getBrandService, getBrandUrl, getCalendarFormat, getCampaign, getCampaignLinks, getCampaignLinksReport, getCampaignLogs, getCampaignLogsExports, getCampaignReport, getCampaignRevisions, getCampaignsReportsExport, getComparator, getCustomerProfile, getDate, getDomainFromEmail, getDomainsFromEmails, getDomainsService, getEmail, getEmailActivitySummary, getEmailReport, getEndOfDate, getForm, getHashQueryWithoutHistory, getIconSize, getList, getListLogs, getListReport, getNestedProperty, getPropertyValue, getSender, getStartOfDate, getStorage, getTColor, getTemplate, getUnixTime, getUrlQueryParam, getUser, getUtmCookies, googlePlacesMapper, hasDecimal, impersonateService, initFieldValidation, initPostHog, isColorLight, isDomainValidService, isSimpleType, isValidEmail, isValidString, isValidUrl, lisTEmailTags, listAccounts, listCampaigns, listCampaignsReportsExports, listContacts, listEmailLogs, listForms, listList, listSenders, listSystemEmails, listTemplates, listUsers, logOutService, loginService, miliToSecond, modelSet, modelToJson, originalBrand, popImpersonificationTree, postMessage, reScheduleCampaign, removeEmptyProperties, removeQueryParams, removeTrailingChar, renderCampaign, renderTemplate, requestSupportService, resumeCampaign, scheduleCampaign, searchCustomerProfiles, sendCampaignTest, setBrandHeadElements, setStorage, shareTemplate, splitArray, splitObject, stableSort, startPromisePool, suspendCampaign, trackEvent, truncateEmail, truncateText, uiKitConfig, unArchiveCampaign, unScheduleCampaign, unshareTemplate, updateAccount, updateAndClearUrlParams, updateCampaign, updateSystemEmails, updateTemplate, updateUser, validateColor, validateEmail, validateGenericInput, validateUrl, wait, whiteLabelBrand, whoAmi };
17237
+ export { AccountModel, AccountsFactory, ActionBarContainer, ActionBarContainerHandler, AssetManager, AutomationsFactory, Avatar, BillingFactory, BrandWrapper, BrandsFactory, Button, ButtonMenu, CampaignModel, CampaignsFactory, Checkbox, Chip, CircularProgress, CodeInput, ColManager, ColorTextField, CommonFormModel, ContactModel, ContactsFactory, ContentSectionContainer, CopyToClipboard, CountryDropdown, CustomerModel, DataTable, DataTableHead, DataTableRow, DateCalendar, DatePicker, DateTimeCalendar, DateTimePicker, Dialog, DialogActions, DialogHandler, DialogTitle, Divider, Drawer, DrawerHandler, DropMenu, Dropdown, EApiLanguages, ECampaignStatuses, EEMailSummaryStatuses, EEmailAttachementTypes, EEmailLogType, EEmailLogTypeParam, EEmailProviders, EEmailSummaryEngagement, EEvents, EMethods, EOperatorTypes, EPartialInfoPool, EStorageType, ElementContains, Email, EmailAPIFactory, EmptyContent, EnhancedFormModel, FileUpload, FilterBar, FormModel, FormsFactory, FullBar, GenericWrapper, GenericWrapperContext, GroupedActions, Header, Icon, IconPill, InformationGroup, InlineTextEdit, LinearProgress, ListCampaignModel, ListModel, ListTemplateModel, ListsFactory, LoadingContainer, LocationTextField, Logo, MD5, MetricCard, Modal, ModalHandler, ModalHeading, OverlayHandler, PhoneTextField, Search, SenderModel, SendersFactory, SideMenu, SideMenuContainer, SideMenuItem, SubNav, SummaryEnhancedFormModel, SupportFactory, SystemEmailsFactory, SystemEmailsModel, TemplateModel, TemplatesFactory, TextField, TimePicker, TimeSelector, Toggle, TopMenu, Typography, UserModel, UsersFactory, addPartialInformation, addToImpersonificationTree, amIImpersonating, amILoggedInService, archiveCampaign, areAllPropertiesEmpty, buildMUITheme, callApi, camelCase, camelToSnakeCase, cancelCampaign, capitalizeFirstLetter, cleanPostHogId, clearImpersonificationTree, clearStorage, connectToZendeskSupportService, createAccount, createBrand, createCampaign, createCampaignLogsExports, createCampaignsReportsExport, createForm, createTemplate, deepMergeObject, deleteCampaign, deleteCampaignsReportsExport, deleteForm, deletePartialInformation, deleteStorageItem, deleteTemplate, descendingComparator, disableForm, downloadCampaignLogExport, downloadCampaignsReportsExport, emptyAccountAddress, emptyAccountLimits, enableForm, enrichBrand, enrichOrganization, enrichProfile, eventCondition, eventIdentify, eventLogout, fetchRetry, fetchRoute, findNestedProperty, formatNumber, getAccount, getAccountReport, getAdjustedBillingCycle, getBestLocalMatch, getBrand, getBrandService, getBrandUrl, getCalendarFormat, getCampaign, getCampaignLinks, getCampaignLinksReport, getCampaignLogs, getCampaignLogsExports, getCampaignReport, getCampaignRevisions, getCampaignsReportsExport, getComparator, getCustomerProfile, getDate, getDomainFromEmail, getDomainsFromEmails, getDomainsService, getEmail, getEmailActivitySummary, getEmailReport, getEndOfDate, getForm, getHashQueryWithoutHistory, getIconSize, getList, getListLogs, getListReport, getNestedProperty, getPropertyValue, getSender, getStartOfDate, getStorage, getTColor, getTemplate, getUnixTime, getUrlQueryParam, getUser, getUtmCookies, googlePlacesMapper, hasDecimal, impersonateService, initFieldValidation, initPostHog, isColorLight, isDomainValidService, isSimpleType, isValidEmail, isValidString, isValidUrl, lisTEmailTags, listAccounts, listCampaigns, listCampaignsReportsExports, listContacts, listEmailLogs, listForms, listList, listSenders, listSystemEmails, listTemplates, listUsers, logOutService, loginService, miliToSecond, modelSet, modelToJson, originalBrand, patchForm, popImpersonificationTree, postMessage, publishForm, reScheduleCampaign, removeEmptyProperties, removeQueryParams, removeTrailingChar, renderCampaign, renderForm, renderTemplate, requestSupportService, resumeCampaign, scheduleCampaign, searchCustomerProfiles, sendCampaignTest, setBrandHeadElements, setStorage, shareTemplate, splitArray, splitObject, stableSort, startPromisePool, suspendCampaign, trackEvent, truncateEmail, truncateText, uiKitConfig, unArchiveCampaign, unScheduleCampaign, unshareTemplate, updateAccount, updateAndClearUrlParams, updateCampaign, updateSystemEmails, updateTemplate, updateUser, validateColor, validateEmail, validateGenericInput, validateUrl, wait, whiteLabelBrand, whoAmi };
@@ -1,8 +1,21 @@
1
- import { EApiLanguages } from "../../types";
2
- import { TFormModel } from "./types";
3
- export declare class FormModel {
4
- readonly id: number;
1
+ import { EApiLanguages, TDeleteApiResource, TDisableApiResource, TEnableApiResource, TGenericReturn } from "../../types";
2
+ import { TEnhancedFormContent, TEnhancedFormEditedBy, TEnhancedFormModel, TEnhancedFormRecaptcha, TFormModel, TSummaryEnhancedFormModel } from "./types";
3
+ export declare class CommonFormModel {
4
+ readonly id: string;
5
5
  name: string;
6
+ list_id: number;
7
+ double_opt_in: boolean;
8
+ constructor({ id, name, list_id, double_opt_in }: {
9
+ id: string;
10
+ name: string;
11
+ list_id: number;
12
+ double_opt_in: boolean;
13
+ });
14
+ toJson(): any;
15
+ set<T extends keyof this>(property: T, value: this[T]): void;
16
+ delete(): Promise<TDeleteApiResource>;
17
+ }
18
+ export declare class FormModel extends CommonFormModel {
6
19
  readonly status: string;
7
20
  content: {
8
21
  linked: string;
@@ -21,10 +34,37 @@ export declare class FormModel {
21
34
  after_double_opt_in: string;
22
35
  after_opt_out: string;
23
36
  };
24
- list_id: number;
25
- double_opt_in: boolean;
26
37
  constructor({ id, name, status, content, language, created_on, last_updated_on, url, thumbnail_url, redirections, list_id, double_opt_in, }: TFormModel);
27
38
  toJson(): any;
28
39
  set<T extends keyof this>(property: T, value: this[T]): void;
29
40
  }
41
+ export declare class SummaryEnhancedFormModel extends CommonFormModel {
42
+ readonly enabled: boolean;
43
+ description: string;
44
+ tags: string[];
45
+ post_redirect_url: string;
46
+ double_opt_in_redirect_url: string;
47
+ submission_url: string;
48
+ async_processing: boolean;
49
+ branding: string;
50
+ readonly created_at: number;
51
+ readonly updated_at: number;
52
+ readonly published_at: number;
53
+ readonly edited_by: TEnhancedFormEditedBy;
54
+ readonly thumbnail_url: string;
55
+ recaptcha: TEnhancedFormRecaptcha;
56
+ constructor({ id, list_id, enabled, name, description, tags, post_redirect_url, double_opt_in, double_opt_in_redirect_url, submission_url, async_processing, branding, created_at, updated_at, published_at, edited_by, thumbnail_url, recaptcha, }: TSummaryEnhancedFormModel);
57
+ enable(): Promise<TEnableApiResource>;
58
+ disable(): Promise<TDisableApiResource>;
59
+ publish(): Promise<TGenericReturn<EnhancedFormModel>>;
60
+ render(published?: boolean): Promise<TGenericReturn<EnhancedFormModel>>;
61
+ save(): Promise<TGenericReturn<EnhancedFormModel>>;
62
+ toJson(): any;
63
+ set<T extends keyof this>(property: T, value: this[T]): void;
64
+ }
65
+ export declare class EnhancedFormModel extends SummaryEnhancedFormModel {
66
+ content: TEnhancedFormContent;
67
+ constructor({ content, ...rest }: TEnhancedFormModel);
68
+ toJson(): any;
69
+ }
30
70
  export * from "./types";
@@ -1,6 +1,6 @@
1
1
  import { EApiLanguages } from "../../types";
2
2
  export type TFormModel = {
3
- readonly id: number;
3
+ readonly id: string;
4
4
  name: string;
5
5
  readonly status: string;
6
6
  content: {
@@ -23,3 +23,37 @@ export type TFormModel = {
23
23
  list_id: number;
24
24
  double_opt_in: boolean;
25
25
  };
26
+ export type TEnhancedFormEditedBy = {
27
+ id: number;
28
+ email: string;
29
+ };
30
+ export type TEnhancedFormRecaptcha = {
31
+ secret: string;
32
+ domain: string;
33
+ };
34
+ export type TEnhancedFormContent = {
35
+ json: any;
36
+ };
37
+ export interface TSummaryEnhancedFormModel {
38
+ readonly id: string;
39
+ list_id: number;
40
+ readonly enabled: boolean;
41
+ name: string;
42
+ description: string;
43
+ tags: string[];
44
+ post_redirect_url: string;
45
+ double_opt_in: boolean;
46
+ double_opt_in_redirect_url: string;
47
+ submission_url: string;
48
+ async_processing: boolean;
49
+ branding: string;
50
+ readonly created_at: number;
51
+ readonly updated_at: number;
52
+ readonly published_at: number;
53
+ readonly edited_by: TEnhancedFormEditedBy;
54
+ readonly thumbnail_url: string;
55
+ recaptcha: TEnhancedFormRecaptcha;
56
+ }
57
+ export interface TEnhancedFormModel extends TSummaryEnhancedFormModel {
58
+ content: TEnhancedFormContent;
59
+ }
@@ -1,6 +1,30 @@
1
+ import { EnhancedFormModel, FormModel } from "../../models";
1
2
  import { TGenericListParams } from "../../types";
3
+ export declare function createForm({ form }: {
4
+ form: Partial<FormModel | EnhancedFormModel>;
5
+ }): Promise<any>;
2
6
  export declare function listForms({ useImpersonationTree, ...options }: TGenericListParams): Promise<any>;
7
+ export declare function patchForm({ id, data }: {
8
+ id: string;
9
+ data: Partial<FormModel | EnhancedFormModel>;
10
+ }): Promise<any>;
3
11
  export declare function getForm({ id }: {
4
12
  id: string;
5
13
  }): Promise<any>;
14
+ export declare function deleteForm({ id }: {
15
+ id: string;
16
+ }): Promise<any>;
17
+ export declare function enableForm({ id }: {
18
+ id: string;
19
+ }): Promise<any>;
20
+ export declare function disableForm({ id }: {
21
+ id: string;
22
+ }): Promise<any>;
23
+ export declare function publishForm({ id }: {
24
+ id: string;
25
+ }): Promise<any>;
26
+ export declare function renderForm({ id, published }: {
27
+ id: string;
28
+ published: boolean;
29
+ }): Promise<any>;
6
30
  export * from "./types";
@@ -90,6 +90,16 @@ export type TDeleteApiResource = {
90
90
  object: string;
91
91
  deleted: boolean;
92
92
  };
93
+ export type TEnableApiResource = {
94
+ id: TNumStr;
95
+ object: string;
96
+ enabled: boolean;
97
+ };
98
+ export type TDisableApiResource = {
99
+ id: TNumStr;
100
+ object: string;
101
+ disabled: boolean;
102
+ };
93
103
  export type TUpdateApiResource<T> = {
94
104
  updated: boolean;
95
105
  object: string;
@@ -88,6 +88,11 @@ export declare enum EEvents {
88
88
  FORM_CREATED = "Form.Created",
89
89
  FORM_UPDATED = "Form.Updated",
90
90
  FORM_DELETED = "Form.Deleted",
91
+ FORM_ENABLED = "Form.Enabled",
92
+ FORM_DISABLED = "Form.Disabled",
93
+ FORM_PUBLISHED = "Form.Published",
94
+ FORM_RENDERED = "Form.Rendered",
95
+ FORM_RENDERED_PUBLISHED = "Form.Rendered.Published",
91
96
  AUTOMATION_CREATED = "Automation.Created",
92
97
  AUTOMATION_UPDATED = "Automation.Updated",
93
98
  AUTOMATION_DELETED = "Automation.Deleted",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cakemail-org/ui-components-v2",
3
- "version": "2.0.59",
3
+ "version": "2.0.61",
4
4
  "description": "ui library kit made with material UI",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",