@bikdotai/bik-component-library 0.0.647--beta--analytics0.2 → 0.0.647--beta--analytics0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/assets/icons/state_icon.svg.js +1 -0
- package/dist/cjs/components/analytics-chips-and-dropdowns/chart/Pie/PieChartAnalytics.js +1 -1
- package/dist/cjs/components/bik-layout/MockMenus.d.ts +0 -1
- package/dist/cjs/components/carousel-preview/CarouselPreview.js +1 -1
- package/dist/cjs/components/shimmer-image/ShimmerImage.d.ts +1 -1
- package/dist/cjs/components/states/StateComponent.d.ts +2 -1
- package/dist/cjs/components/states/StateComponent.js +1 -1
- package/dist/cjs/components/template-context-mapper/modalElements/VariableConnector.js +1 -1
- package/dist/cjs/components/template-preview/RCS/RCSButtons.js +1 -1
- package/dist/cjs/components/template-preview/RCS/RCSChatPreview.d.ts +2 -2
- package/dist/cjs/components/template-preview/RCS/RCSChatPreview.js +1 -1
- package/dist/cjs/components/template-preview/RCS/RCSMediaCard.d.ts +1 -1
- package/dist/cjs/components/template-preview/RCS/RCSMediaCard.js +1 -1
- package/dist/cjs/components/template-preview/RCS/RCSPreview.styled.d.ts +5 -1
- package/dist/cjs/components/template-preview/RCS/RCSPreview.styled.js +25 -20
- package/dist/cjs/components/template-preview/RCS/RCSTemplateLikePreview.d.ts +2 -2
- package/dist/cjs/components/template-preview/RCS/RCSTemplateLikePreview.js +2 -2
- package/dist/cjs/components/template-preview/WhatsAppTemplatePreview.js +1 -1
- package/dist/cjs/components/template-preview/helpers/TemplateCreatorHelper.d.ts +2 -0
- package/dist/cjs/components/template-preview/helpers/TemplateCreatorHelper.js +1 -1
- package/dist/cjs/components/template-preview/helpers/templateMiscHelper.d.ts +2 -0
- package/dist/cjs/components/template-preview/helpers/templateMiscHelper.js +1 -1
- package/dist/cjs/components/template-preview/models/RCSTemplate.d.ts +9 -1
- package/dist/cjs/components/template-preview/models/RCSTemplate.js +1 -0
- package/dist/esm/assets/icons/state_icon.svg.js +1 -0
- package/dist/esm/components/analytics-chips-and-dropdowns/chart/Pie/PieChartAnalytics.js +1 -1
- package/dist/esm/components/bik-layout/MockMenus.d.ts +0 -1
- package/dist/esm/components/carousel-preview/CarouselPreview.js +1 -1
- package/dist/esm/components/shimmer-image/ShimmerImage.d.ts +1 -1
- package/dist/esm/components/states/StateComponent.d.ts +2 -1
- package/dist/esm/components/states/StateComponent.js +1 -1
- package/dist/esm/components/template-context-mapper/modalElements/VariableConnector.js +1 -1
- package/dist/esm/components/template-preview/RCS/RCSButtons.js +1 -1
- package/dist/esm/components/template-preview/RCS/RCSChatPreview.d.ts +2 -2
- package/dist/esm/components/template-preview/RCS/RCSChatPreview.js +1 -1
- package/dist/esm/components/template-preview/RCS/RCSMediaCard.d.ts +1 -1
- package/dist/esm/components/template-preview/RCS/RCSMediaCard.js +1 -1
- package/dist/esm/components/template-preview/RCS/RCSPreview.styled.d.ts +5 -1
- package/dist/esm/components/template-preview/RCS/RCSPreview.styled.js +37 -32
- package/dist/esm/components/template-preview/RCS/RCSTemplateLikePreview.d.ts +2 -2
- package/dist/esm/components/template-preview/RCS/RCSTemplateLikePreview.js +2 -2
- package/dist/esm/components/template-preview/WhatsAppTemplatePreview.js +1 -1
- package/dist/esm/components/template-preview/helpers/TemplateCreatorHelper.d.ts +2 -0
- package/dist/esm/components/template-preview/helpers/TemplateCreatorHelper.js +1 -1
- package/dist/esm/components/template-preview/helpers/templateMiscHelper.d.ts +2 -0
- package/dist/esm/components/template-preview/helpers/templateMiscHelper.js +1 -1
- package/dist/esm/components/template-preview/models/RCSTemplate.d.ts +9 -1
- package/dist/esm/components/template-preview/models/RCSTemplate.js +1 -0
- package/package.json +1 -1
|
@@ -1,45 +1,49 @@
|
|
|
1
|
-
import e from"styled-components";import{COLORS as
|
|
1
|
+
import e from"styled-components";import{COLORS as t}from"../../../constants/Theme.js";e.div`
|
|
2
2
|
background-color: ${e=>e.isCarousal?"#E0E0E0":"white"};
|
|
3
3
|
border-radius: 4px;
|
|
4
4
|
position: relative;
|
|
5
5
|
height: ${e=>e.isCarousal?"100%":"auto"};
|
|
6
|
-
`;const
|
|
6
|
+
`;const r=e.div`
|
|
7
7
|
font-family: 'Inter';
|
|
8
8
|
font-style: normal;
|
|
9
9
|
font-weight: 400;
|
|
10
10
|
font-size: 14px;
|
|
11
11
|
line-height: 20px;
|
|
12
12
|
padding: 12px;
|
|
13
|
-
color: ${
|
|
13
|
+
color: ${t.content.primary};
|
|
14
14
|
word-wrap: break-word;
|
|
15
|
-
`,o=e(
|
|
15
|
+
`,o=e(r)`
|
|
16
16
|
font-weight: 600;
|
|
17
17
|
margin-bottom: 8px;
|
|
18
|
-
`,
|
|
18
|
+
`,i=e(r)`
|
|
19
19
|
font-weight: 600;
|
|
20
20
|
`,n=e.div`
|
|
21
|
-
background: ${
|
|
21
|
+
background: ${t.surface.standard};
|
|
22
22
|
border-radius: 12px;
|
|
23
23
|
position: relative;
|
|
24
|
-
//padding: 8px 0px;
|
|
25
|
-
border: 2px solid
|
|
26
|
-
${e=>e.hasError?`${i.content.negative}`:e.showBorder?`${i.stroke.brand}`:`${i.stroke.primary}`};
|
|
27
|
-
border: ${e=>e.showDashedBorder&&`2px dashed ${i.content.brand}`};
|
|
28
24
|
height: 100%;
|
|
29
25
|
display: flex;
|
|
30
|
-
flex-direction: column;
|
|
26
|
+
flex-direction: ${e=>e.isHorizontalOrientation?"row":"column"};
|
|
27
|
+
|
|
28
|
+
${e=>e.needBorder?e.showDashedBorder?`border: 2px dashed ${t.content.brand};`:e.hasError?`border: 2px solid ${t.content.negative};`:e.showBorder?`border: 2px solid ${t.stroke.brand};`:`border: 2px solid ${t.stroke.primary};`:"border: none;"}
|
|
29
|
+
|
|
31
30
|
:hover {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
31
|
+
${e=>{if(e.isPreview||!e.needBorder)return"";return`\n\t\t\t\tborder: 2px ${e.isWhatsappCarousel?e.hasError?"dashed":e.showBorder?"solid":"dashed":"solid"} ${t.stroke.brand};\n\t\t\t\tbox-shadow: 4px 4px 12px rgba(0, 0, 0, 0.25);\n\t\t\t`}}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.text--template {
|
|
35
|
+
border: 2px solid ${t.stroke.primary};
|
|
36
|
+
border-radius: 12px;
|
|
37
|
+
flex: 1;
|
|
36
38
|
}
|
|
37
39
|
`,d=e.div`
|
|
38
|
-
padding:
|
|
40
|
+
padding: 12px 0px;
|
|
39
41
|
display: flex;
|
|
40
42
|
flex-direction: row;
|
|
41
|
-
justify-content:
|
|
43
|
+
justify-content: flex-start;
|
|
42
44
|
align-items: center;
|
|
45
|
+
gap: 12px;
|
|
46
|
+
flex-wrap: wrap;
|
|
43
47
|
`,a=e.div`
|
|
44
48
|
border-radius: 8px;
|
|
45
49
|
display: flex;
|
|
@@ -47,7 +51,8 @@ import e from"styled-components";import{COLORS as i}from"../../../constants/Them
|
|
|
47
51
|
align-items: center;
|
|
48
52
|
justify-content: center;
|
|
49
53
|
min-height: 152px;
|
|
50
|
-
margin-bottom: 4px;
|
|
54
|
+
margin-bottom: ${e=>e.isHorizontal?"":"4px"};
|
|
55
|
+
width: ${e=>e.isHorizontal?"50%":"auto"};
|
|
51
56
|
`,p=e.div`
|
|
52
57
|
border-radius: 12px;
|
|
53
58
|
display: flex;
|
|
@@ -56,37 +61,37 @@ import e from"styled-components";import{COLORS as i}from"../../../constants/Them
|
|
|
56
61
|
justify-content: flex-start;
|
|
57
62
|
padding: 4px;
|
|
58
63
|
background-color: #ede7e8;
|
|
59
|
-
margin
|
|
64
|
+
margin: 4px;
|
|
60
65
|
max-width: 200px;
|
|
61
66
|
`,s=e.div`
|
|
62
67
|
display: flex;
|
|
63
68
|
flex-direction: row;
|
|
64
69
|
align-items: center;
|
|
65
70
|
justify-content: flex-start;
|
|
66
|
-
margin-left
|
|
71
|
+
margin-left: 4px;
|
|
67
72
|
max-width: 180px;
|
|
68
|
-
`,
|
|
73
|
+
`,l=e.p`
|
|
69
74
|
white-space: nowrap;
|
|
70
|
-
color: #
|
|
75
|
+
color: #4c5567;
|
|
71
76
|
max-width: 100px;
|
|
72
77
|
overflow: hidden;
|
|
73
78
|
text-overflow: ellipsis;
|
|
74
|
-
padding
|
|
75
|
-
margin
|
|
79
|
+
padding: 0px;
|
|
80
|
+
margin: 0px;
|
|
76
81
|
font-size: 12px;
|
|
77
82
|
font-weight: 500;
|
|
78
83
|
line-width: 20px;
|
|
79
|
-
`,
|
|
80
|
-
border: 1px solid ${
|
|
84
|
+
`,x=e.div`
|
|
85
|
+
border: 1px solid ${t.stroke.primary};
|
|
81
86
|
position: relative;
|
|
82
87
|
height: 500px;
|
|
83
88
|
overflow-y: auto;
|
|
84
|
-
border-radius: ${e=>{var
|
|
89
|
+
border-radius: ${e=>{var t;return null!==(t=e.borderRadius)&&void 0!==t?t:"8px"}};
|
|
85
90
|
box-shadow: 0px 2px 8px 0px #0000001f;
|
|
86
91
|
background-color: white;
|
|
87
92
|
`,c=e.div`
|
|
88
93
|
height: 50px;
|
|
89
|
-
background-color: ${
|
|
94
|
+
background-color: ${t.background.inactive};
|
|
90
95
|
position: sticky;
|
|
91
96
|
top: 0px;
|
|
92
97
|
z-index: 200;
|
|
@@ -99,7 +104,7 @@ import e from"styled-components";import{COLORS as i}from"../../../constants/Them
|
|
|
99
104
|
display: flex;
|
|
100
105
|
align-items: center;
|
|
101
106
|
gap: 5px;
|
|
102
|
-
`,
|
|
107
|
+
`,h=e.div`
|
|
103
108
|
height: 27px;
|
|
104
109
|
width: 27px;
|
|
105
110
|
border-radius: 15px;
|
|
@@ -108,7 +113,7 @@ import e from"styled-components";import{COLORS as i}from"../../../constants/Them
|
|
|
108
113
|
justify-content: center;
|
|
109
114
|
align-items: center;
|
|
110
115
|
gap: 6px;
|
|
111
|
-
`,
|
|
116
|
+
`,g=e.div`
|
|
112
117
|
display: flex;
|
|
113
118
|
flex-direction: column;
|
|
114
119
|
justify-content: space-between;
|
|
@@ -118,6 +123,6 @@ import e from"styled-components";import{COLORS as i}from"../../../constants/Them
|
|
|
118
123
|
font-weight: 400;
|
|
119
124
|
font-size: 8px;
|
|
120
125
|
line-height: 11px;
|
|
121
|
-
color: ${
|
|
126
|
+
color: ${t.content.secondary};
|
|
122
127
|
margin-bottom: 0px;
|
|
123
|
-
`;export{c as HeaderContainer,o as HeaderTextContainer,
|
|
128
|
+
`;export{c as HeaderContainer,o as HeaderTextContainer,h as IconContainer,f as LeftContainer,s as PdfComineText,l as PdfText,x as RCSCarousalContainer,d as RCSChatBtnContainer,a as RCSMediaContainer,p as RCSPdfContainer,n as RCSPreviewContainer,r as RcsHtmlContainer,m as SubTitle,g as TitleContainer,i as TitleTextContainer};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
export declare const RCSTemplateLikePreview: React.FC<
|
|
2
|
+
import { RCSPreviewPropsV2 } from '../models/RCSTemplate';
|
|
3
|
+
export declare const RCSTemplateLikePreview: React.FC<RCSPreviewPropsV2>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import{jsx as e,Fragment as t,jsxs as r}from"react/jsx-runtime";import o from"styled-components";import{useTemplateModalContext as s}from"../../template-context-mapper/context/templateModalContext.js";import{TitleRegular as a}from"../../TypographyStyle.js";import{COLORS as i}from"../../../constants/Theme.js";import{getPreviewPropLen as p}from"../utils/getPreviewPropLen.js";import
|
|
1
|
+
import{jsx as e,Fragment as t,jsxs as r}from"react/jsx-runtime";import o from"styled-components";import{useTemplateModalContext as s}from"../../template-context-mapper/context/templateModalContext.js";import{TitleRegular as a}from"../../TypographyStyle.js";import{COLORS as i}from"../../../constants/Theme.js";import{getPreviewPropLen as p}from"../utils/getPreviewPropLen.js";import n from"./RCSChatHeader.js";import{RCSChatPreview as h}from"./RCSChatPreview.js";const l=o.div`
|
|
2
2
|
background-color: white;
|
|
3
3
|
border-radius: 4px;
|
|
4
4
|
position: relative;
|
|
5
5
|
height: ${e=>e.isWhatsappCarousel?"100%":"auto"};
|
|
6
6
|
`,m=o(a)`
|
|
7
7
|
color: ${i.content.primary};
|
|
8
|
-
`,d=o=>{const{hideDeviceContainerInPreview:a}=s();return 3===p(o)?e(t,{children:o.zeroStateComponent}):a?e(
|
|
8
|
+
`,d=o=>{const{hideDeviceContainerInPreview:a}=s();return 3===p(o)?e(t,{children:o.zeroStateComponent}):a?e(h,Object.assign({showHeader:o.showHeader},o)):e(t,{children:r(l,Object.assign({style:o.containerStyle,showHeader:o.showHeader,isWhatsappCarousel:o.isWhatsappCarousel},{children:[o.showHeader&&e(n,{}),r("div",Object.assign({style:{padding:"small"===o.size?"10px 32px 10px 10px":`10px ${o.isWhatsappCarousel?"0px":"12px"} ${o.isWhatsappCarousel?"2px":"16px"} 16px`,height:o.isWhatsappCarousel?"100%":"auto"}},{children:[!o.hidePreviewText&&e("div",Object.assign({style:{marginBottom:16}},{children:e(m,{children:"Preview"})})),e(h,Object.assign({showHeader:o.showHeader},o))]}))]}))})};export{d as RCSTemplateLikePreview};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e,Fragment as l}from"react/jsx-runtime";import{useState as a,useEffect as t}from"react";import{useTemplateModalContext as i}from"../template-context-mapper/context/templateModalContext.js";import{TemplateCreatorHelper as o}from"./helpers/TemplateCreatorHelper.js";import{isRCSChannel as r}from"./helpers/templateMiscHelper.js";import{HEADER_TYPES as n}from"./models/TemplateMeta.js";import{RCSTemplateLikePreview as d}from"./RCS/RCSTemplateLikePreview.js";import{TemplateHelperUtils as s}from"./utils/TemplateHelperUtils.js";import{WhatsappLikePreview as p}from"./WhatsApp/WhatsAppLikePreview.js";import{WhatsappLikePreviewV2 as
|
|
1
|
+
import{jsx as e,Fragment as l}from"react/jsx-runtime";import{useState as a,useEffect as t}from"react";import{useTemplateModalContext as i}from"../template-context-mapper/context/templateModalContext.js";import{TemplateCreatorHelper as o}from"./helpers/TemplateCreatorHelper.js";import{isRCSChannel as r}from"./helpers/templateMiscHelper.js";import{HEADER_TYPES as n}from"./models/TemplateMeta.js";import{RCSTemplateLikePreview as d}from"./RCS/RCSTemplateLikePreview.js";import{TemplateHelperUtils as s}from"./utils/TemplateHelperUtils.js";import{WhatsappLikePreview as p}from"./WhatsApp/WhatsAppLikePreview.js";import{WhatsappLikePreviewV2 as u}from"./WhatsApp/WhatsAppLikePreviewV2.js";const v=v=>{let{template:m,extras:h,containerStyle:x,usePlaceHolderName:c,showHeader:b,zeroStateComponent:T,size:y,showSampleValues:w,carouselCardIndex:N,isWhatsappCarousel:V,isPreview:f,channel:C}=v;var k,B,L,P,A,S,j,g,F,O,H,I,R,W,q,M,U,z,D,E,G,J,K,Q,X,Y,Z,$,_,ee;const{selectedCarouselIndex:le}=i(),[ae,te]=a(),ie=new o,oe=new s,re=[];if((null===(B=null===(k=null==ae?void 0:ae.ctaBtn)||void 0===k?void 0:k.phoneNumber)||void 0===B?void 0:B.isChecked)&&re.push({type:"phoneNumber",text:null!==(L=ae.ctaBtn.phoneNumber.btnText)&&void 0!==L?L:"",extra:null!==(P=ae.ctaBtn.phoneNumber.phoneNumber)&&void 0!==P?P:""}),(null===(S=null===(A=null==ae?void 0:ae.ctaBtn)||void 0===A?void 0:A.websiteLinkBtn)||void 0===S?void 0:S.isChecked)&&re.push({type:"website",text:null!==(j=ae.ctaBtn.websiteLinkBtn.btnText)&&void 0!==j?j:"",extra:null!==(F=null===(g=ae.ctaBtn.websiteLinkBtn)||void 0===g?void 0:g.linkOpens)&&void 0!==F?F:"",placeholder:null!==(O=ae.ctaBtn.websiteLinkBtn.placeholder)&&void 0!==O?O:""}),t((()=>{m&&ie.parseUITemplateFromDBFormat({dbFormattedTemplate:m,isDuplicate:!1,showSampleValues:w,isV2:!m.htmlContentUrl}).then((e=>{te(Object.assign({},e))}))}),[m,w]),t((()=>{m&&ie.parseUITemplateFromDBFormat({dbFormattedTemplate:m,isDuplicate:!1,showSampleValues:w,isV2:!m.htmlContentUrl}).then((e=>{te(Object.assign({},e))}))}),[le]),!m)return e(l,{children:T});if(r(C||(null==m?void 0:m.channel))){const a=ie.parseTemplateConfiguration(m);return e(d,{showHeader:b,containerPadding:"large"===y?"16px 36px 12px 16px":"12px 36px 12px 12px",containerStyle:x,textType:"html",bodyText:null==ae?void 0:ae.bodyText,titleText:null==ae?void 0:ae.titleText,footerText:null==ae?void 0:ae.footerText,headerMediaType:(null==ae?void 0:ae.headerType)||n.NONE,headerText:null==ae?void 0:ae.headerText,headerAssetLink:null!==(H=null==ae?void 0:ae.headerAssetLink)&&void 0!==H?H:"",headerAssetName:null!==(I=null==ae?void 0:ae.headerAssetName)&&void 0!==I?I:"",quickReplybtn:null==ae?void 0:ae.quickReply,ctaBtn:re,actionTypes:null==ae?void 0:ae.actionsType,extras:h,hidePreviewText:!0,imagePreviewStyles:{objectFit:"cover"},carouselCardIndex:N,zeroStateComponent:null!=T?T:e(l,{children:" "}),bodyVariableList:null!==(W=null===(R=null==ae?void 0:ae.bodyVariables)||void 0===R?void 0:R.map((e=>{var l;return{placeholder:e.variableName,value:null!==(l=e.variableVal)&&void 0!==l?l:e.variableName}})))&&void 0!==W?W:[],headerVariableList:null!==(M=null===(q=null==ae?void 0:ae.headerVariables)||void 0===q?void 0:q.map((e=>{var l;return{placeholder:e.variableName,value:null!==(l=e.variableVal)&&void 0!==l?l:e.variableName}})))&&void 0!==M?M:[],titleVariableList:null!==(z=null===(U=null==ae?void 0:ae.titleVariables)||void 0===U?void 0:U.map((e=>{var l;return{placeholder:e.variableName,value:null!==(l=e.variableVal)&&void 0!==l?l:e.variableName}})))&&void 0!==z?z:[],buttons:null==ae?void 0:ae.allButtons,isWhatsappCarousel:V,isPreview:f,templateConfiguration:a})}return m.htmlContentUrl?e(p,{showHeader:b,containerPadding:"large"===y?"16px 56px 12px 16px":"12px 56px 12px 12px",containerStyle:x,textType:"html",bodyText:oe.whatsappOnlyFillVariablesValueInBodyText(null!==(X=null==ae?void 0:ae.bodyText)&&void 0!==X?X:"",null!==(Y=null==ae?void 0:ae.bodyVariables)&&void 0!==Y?Y:[],c),footerText:null==ae?void 0:ae.footerText,headerMediaType:(null==ae?void 0:ae.headerType)||n.NONE,headerText:oe.fillVariablesValInBodyText(null!==(Z=null==ae?void 0:ae.headerText)&&void 0!==Z?Z:"",null!==($=null==ae?void 0:ae.headerVariables)&&void 0!==$?$:[],c),headerAssetLink:null!==(_=null==ae?void 0:ae.headerAssetLink)&&void 0!==_?_:"",headerAssetName:null!==(ee=null==ae?void 0:ae.headerAssetName)&&void 0!==ee?ee:"",quickReplybtn:null==ae?void 0:ae.quickReply,ctaBtn:re,actionTypes:null==ae?void 0:ae.actionsType,extras:h,hidePreviewText:!0,imagePreviewStyles:{objectFit:"cover"},zeroStateComponent:null!=T?T:e(l,{children:" "}),isPreview:f}):e(u,{showHeader:b,containerPadding:"large"===y?"16px 56px 12px 16px":"12px 56px 12px 12px",containerStyle:x,textType:"html",bodyText:null==ae?void 0:ae.bodyText,footerText:null==ae?void 0:ae.footerText,headerMediaType:(null==ae?void 0:ae.headerType)||n.NONE,headerText:null==ae?void 0:ae.headerText,headerAssetLink:null!==(D=null==ae?void 0:ae.headerAssetLink)&&void 0!==D?D:"",headerAssetName:null!==(E=null==ae?void 0:ae.headerAssetName)&&void 0!==E?E:"",quickReplybtn:null==ae?void 0:ae.quickReply,ctaBtn:re,actionTypes:null==ae?void 0:ae.actionsType,extras:h,hidePreviewText:!0,imagePreviewStyles:{objectFit:"cover"},carouselCardIndex:N,zeroStateComponent:null!=T?T:e(l,{children:" "}),bodyVariableList:null!==(J=null===(G=null==ae?void 0:ae.bodyVariables)||void 0===G?void 0:G.map((e=>{var l;return{placeholder:e.variableName,value:null!==(l=e.variableVal)&&void 0!==l?l:e.variableName}})))&&void 0!==J?J:[],headerVariableList:null!==(Q=null===(K=null==ae?void 0:ae.headerVariables)||void 0===K?void 0:K.map((e=>{var l;return{placeholder:e.variableName,value:null!==(l=e.variableVal)&&void 0!==l?l:e.variableName}})))&&void 0!==Q?Q:[],buttons:null==ae?void 0:ae.allButtons,limitedTimeOfferComponent:null==ae?void 0:ae.limitedTimeOfferComponent,isWhatsappCarousel:V,isPreview:f})};export{v as default};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { RCSTemplateConfig, RCSTemplateType } from '../models/RCSTemplate';
|
|
1
2
|
import { CreateTemplateType, WhatsAppTemplate } from '../models/WhatsAppTemplate';
|
|
2
3
|
export declare class TemplateCreatorHelper {
|
|
3
4
|
private parseDataFromHeaderComponent;
|
|
@@ -26,4 +27,5 @@ export declare class TemplateCreatorHelper {
|
|
|
26
27
|
showSampleValues?: boolean;
|
|
27
28
|
isV2?: boolean;
|
|
28
29
|
}): Promise<CreateTemplateType>;
|
|
30
|
+
parseTemplateConfiguration(template: RCSTemplateType): RCSTemplateConfig;
|
|
29
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{__awaiter as e}from"../../../_virtual/_tslib.js";import{format as t}from"date-fns";import{COLORS as i}from"../../../constants/Theme.js";import{specialCharPattern as n,placeHolderNamePattern as l,editableVarPattern as o}from"../constants/regexPatterns.js";import{REQUIRED_FIELD as a,NAME_LEN_LIMIT as d,NAME_LEN_ERROR as r,NO_SPECIAL_CHAR as v,HEADER_TEXT_LEN_LIMIT as s,HEADER_LEN_ERROR as u,ONE_VAR_ALLOWED as p,HEADER_ASSET_LINK_ERROR as m,BODY_TEXT_LEN_LIMIT as c,BODY_LEN_ERROR as h,QUICK_REPLY_BTN_TEXT_LIMIT as b,QUICK_REPLY_LEN_ERROR as T,BUTTON_EMOJI_ERROR as y,VALID_PHONE_NUMBER as x,QUICK_REPLY_NAME_LEN_LIMIT as f,CREATE_TEMPLATE_DOM_IDS as B,QUICK_REPLY_NAME_ERROR as k}from"../constants/TemplateConstants.js";import{HEADER_TYPES as C,ACTIONS_TYPES as g}from"../models/TemplateMeta.js";import{TemplateHelperUtils as N}from"../utils/TemplateHelperUtils.js";class E{parseDataFromHeaderComponent(e,t){var i,n,l,o,a,d,r,v,s,u;const p={headerType:C.NONE,headerVariables:[]},m=null===(i=null==e?void 0:e.components)||void 0===i?void 0:i.find((e=>"HEADER"===e.type));if(m){p.headerType=m.format,p.headerText=m.text,p.headerAssetLink=null===(l=null===(n=m.example)||void 0===n?void 0:n.header_handle)||void 0===l?void 0:l[0];const i=null===(a=null===(o=m.example)||void 0===o?void 0:o.header_text)||void 0===a?void 0:a[0],c=null===(r=null===(d=e.mapping)||void 0===d?void 0:d.header)||void 0===r?void 0:r[0],h=c;if(i&&c){const e=null==c?void 0:c.replace("[[","").replace("]]","").replace("{{","").replace("}}","").replace("((","").replace("))",""),n=/\(\(/.test(c),l={idx:0,variableVal:t?i:h,editable:n,editableDefaultValues:n?void 0:i,variableName:e};p.headerVariables=[l],(null===(s=null===(v=m.example)||void 0===v?void 0:v.header_text)||void 0===s?void 0:s.length)&&(p.headerText=null===(u=p.headerText)||void 0===u?void 0:u.replace("{{1}}",`{{${e}}}`))}}return p}validateState(e){var t,i,l,o,E,_,L,V,O,w,D,R,A,I,U,$,j,q,F,P,M,Y,K;const Q=/\p{Extended_Pictographic}/u;let S="valid";const H={meta:{},ctaBtn:{phoneNumber:{btnText:"",link:""},websiteLink:{btnText:"",link:""}},quickReply:[null,null,null]},G=new N;let W=!1;const X=e=>{var t;null===(t=document.getElementById(e))||void 0===t||t.scrollIntoView({behavior:"smooth",block:"nearest"})};if((null===(t=e.meta)||void 0===t?void 0:t.name)?(null===(i=e.meta.name)||void 0===i?void 0:i.trim().length)>d?(H.meta.name=r,S="invalid"):n.test(null===(l=e.meta.name)||void 0===l?void 0:l.trim())&&(H.meta.name=v,S="invalid"):(H.meta.name=a,S="invalid"),H.meta.name&&!W&&(X(B.name),W=!0),e.headerType===C.TEXT){const t=null!==(E=null===(o=e.headerText)||void 0===o?void 0:o.trim())&&void 0!==E?E:"";if(t)if(t.length>s)H.header=u,S="invalid";else{const e=G.getTemplateVariablesFromState(t);e&&e.length>1&&(H.header=p,S="invalid")}else H.header=a,S="invalid"}else e.headerType===C.DOCUMENT||e.headerType===C.IMAGE||(e.headerType,C.VIDEO);if(e.headerType!==C.DOCUMENT&&e.headerType!==C.IMAGE&&e.headerType!==C.VIDEO||e.headerAssetLink||(H.header=m,S="invalid"),H.header&&!W&&(X(B.header),W=!0),e.bodyText?e.bodyTextRaw&&(null===(_=e.bodyTextRaw)||void 0===_?void 0:_.trim().length)>c&&(H.body=h,S="invalid"):(H.body=a,S="invalid"),H.body&&!W&&(X(B.body),W=!0),e.footerText&&e.footerText.length>s&&(H.footer=u,S="invalid"),(null==H?void 0:H.footer)&&!W&&(X(B.footer),W=!0),e.actionsType===g.CTA_BTN){if(null===(V=null===(L=e.ctaBtn)||void 0===L?void 0:L.phoneNumber)||void 0===V?void 0:V.isChecked){const t=null===(O=e.ctaBtn.phoneNumber.btnText)||void 0===O?void 0:O.trim(),i=e.ctaBtn.phoneNumber.phoneNumber;H.ctaBtn&&!t?(H.ctaBtn.phoneNumber.btnText=a,S="invalid"):H.ctaBtn&&t&&t.length>b?(H.ctaBtn.phoneNumber.btnText=T,S="invalid"):H.ctaBtn&&t&&Q.test(t)&&(H.ctaBtn.phoneNumber.btnText=y,S="invalid"),H.ctaBtn&&!i?(H.ctaBtn.phoneNumber.link=a,S="invalid"):H.ctaBtn&&i&&i.length<10&&(H.ctaBtn.phoneNumber.link=x,S="invalid")}if(null===(D=null===(w=e.ctaBtn)||void 0===w?void 0:w.websiteLinkBtn)||void 0===D?void 0:D.isChecked){const t=null===(R=e.ctaBtn.websiteLinkBtn.btnText)||void 0===R?void 0:R.trim(),i=null===(A=e.ctaBtn.websiteLinkBtn.linkOpens)||void 0===A?void 0:A.trim(),n=null===(I=e.ctaBtn.websiteLinkBtn.placeholder)||void 0===I?void 0:I.trim();H.ctaBtn&&!t?(H.ctaBtn.websiteLink.btnText=a,S="invalid"):H.ctaBtn&&t&&t.length>b?(H.ctaBtn.websiteLink.btnText=T,S="invalid"):H.ctaBtn&&t&&Q.test(t)&&(H.ctaBtn.websiteLink.btnText=y,S="invalid"),!H.ctaBtn||i||n||(H.ctaBtn.websiteLink.link=a,S="invalid")}}else if(e.actionsType===g.QUICK_REPLY){const t=["","",""];e.quickReply.forEach(((i,n)=>{var l;const o=null===(l=i.text)||void 0===l?void 0:l.trim();if(o)if(o.length>f)t[n]=T,S="invalid";else if(Q.test(o))t[n]=y,S="invalid";else{const i=[...e.quickReply];i.splice(n,1);i.find((e=>e.text===o))&&(t[n]=k,S="invalid")}else t[n]=a,S="invalid"})),H.quickReply=t}if(e.actionsType===g.CTA_BTN||e.actionsType===g.QUICK_REPLY){const e=null===(U=H.quickReply)||void 0===U?void 0:U.reduce(((e,t)=>e||!!t),!1);((null===(j=null===($=null==H?void 0:H.ctaBtn)||void 0===$?void 0:$.websiteLink)||void 0===j?void 0:j.link)||(null===(F=null===(q=H.ctaBtn)||void 0===q?void 0:q.websiteLink)||void 0===F?void 0:F.btnText)||(null===(M=null===(P=H.ctaBtn)||void 0===P?void 0:P.phoneNumber)||void 0===M?void 0:M.link)||(null===(K=null===(Y=H.ctaBtn)||void 0===Y?void 0:Y.phoneNumber)||void 0===K?void 0:K.btnText)||e)&&!W&&(X(B.actionButtons),W=!0)}return{status:S,errors:H}}parseBodyComponent(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2?arguments[2]:void 0;var o,a,d,r,v,s;const u=[];let p="";const m=null===(o=e.components)||void 0===o?void 0:o.find((e=>"BODY"===e.type));return m&&(null===(r=null===(d=null===(a=m.example)||void 0===a?void 0:a.body_text)||void 0===d?void 0:d[0])||void 0===r||r.forEach(((t,i)=>{var o,a;let d=null===(a=null===(o=e.mapping)||void 0===o?void 0:o.body)||void 0===a?void 0:a[i];const r=d,v=d&&/\(\(/.test(d),s=null==d?void 0:d.match(l);(null==s?void 0:s[2])&&(d=null==s?void 0:s[2]),u.push({idx:i,variableVal:n?t:r,editable:!!v,editableDefaultValues:v?void 0:t,variableName:null!=d?d:""})})),p=e.htmlContentUrl?e.htmlContentUrl:(null===(v=m.text)||void 0===v?void 0:v.split(/\{\{[0-9]+\}\}/).length)?null===(s=m.text)||void 0===s?void 0:s.split(/\{\{[0-9]+\}\}/).map(((e,n)=>{if(null==u?void 0:u[n]){const l=u[n].variableName;return t?`${e}{{${l}}}`:`${e} <span> </span><span style="color: ${i.content.brand}; text-decoration: underline;">{{${l}}}</span><span> </span>`}return e})).join(""):""),{bodyVariable:u,bodyText:p}}parseTitleComponent(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2?arguments[2]:void 0;var o,a,d,r,v,s;const u=[];let p="";const m=null===(o=e.components)||void 0===o?void 0:o.find((e=>"TITLE"===e.type));return m&&(null===(r=null===(d=null===(a=m.example)||void 0===a?void 0:a.title_text)||void 0===d?void 0:d[0])||void 0===r||r.forEach(((t,i)=>{var o,a;let d=null===(a=null===(o=e.mapping)||void 0===o?void 0:o.body)||void 0===a?void 0:a[i];const r=d,v=d&&/\(\(/.test(d),s=null==d?void 0:d.match(l);(null==s?void 0:s[2])&&(d=null==s?void 0:s[2]),u.push({idx:i,variableVal:n?t:r,editable:!!v,editableDefaultValues:v?void 0:t,variableName:null!=d?d:""})})),p=e.htmlContentUrl?e.htmlContentUrl:(null===(v=m.text)||void 0===v?void 0:v.split(/\{\{[0-9]+\}\}/).length)?null===(s=m.text)||void 0===s?void 0:s.split(/\{\{[0-9]+\}\}/).map(((e,n)=>{if(null==u?void 0:u[n]){const l=u[n].variableName;return t?`${e}{{${l}}}`:`${e} <span> </span><span style="color: ${i.content.brand}; text-decoration: underline;">{{${l}}}</span><span> </span>`}return e})).join(""):""),{titleText:p,titleVariables:u}}parseFooterComponent(e){var t;const i=null===(t=e.components)||void 0===t?void 0:t.find((e=>"FOOTER"===e.type));return null==i?void 0:i.text}parseButtonComponent(e){var t,i,n,l,a,d,r;const v={actionsType:g.NONE,quickReply:[],ctaBtn:{phoneNumber:void 0,websiteLinkBtn:void 0},allButtons:[]},s=null===(t=e.components)||void 0===t?void 0:t.find((e=>"BUTTONS"===e.type));if(s&&(null===(i=null==s?void 0:s.buttons)||void 0===i?void 0:i.length)){const t="QUICK_REPLY"===(null===(n=null==s?void 0:s.buttons)||void 0===n?void 0:n[0].type)?g.QUICK_REPLY:g.CTA_BTN;if(v.actionsType=t,t===g.QUICK_REPLY){const e=null!==(a=null===(l=null==s?void 0:s.buttons)||void 0===l?void 0:l.map((e=>e)))&&void 0!==a?a:[];v.quickReply=e}else t===g.CTA_BTN&&(null===(d=null==s?void 0:s.buttons)||void 0===d||d.forEach((t=>{var i,n,l,a;if(t.phone_number&&(v.ctaBtn.phoneNumber={isChecked:!0,btnText:t.text,phoneNumber:t.phone_number}),t.url){const d=null!==(l=null===(n=null===(i=null==e?void 0:e.mapping)||void 0===i?void 0:i.buttons)||void 0===n?void 0:n[0])&&void 0!==l?l:void 0;let r=!1;d&&o.test(d)&&(r=!0),v.ctaBtn.websiteLinkBtn={isChecked:!0,btnText:t.text,linkOpens:r?null===(a=t.example)||void 0===a?void 0:a[0]:t.url,placeholder:r?void 0:d}}})));v.allButtons=null===(r=s.buttons)||void 0===r?void 0:r.map((e=>"COPY_CODE"===e.type?Object.assign(Object.assign({},e),{placeholder:Array.isArray(e.example)?e.example[0]:(null==e?void 0:e.example)||""}):e))}return v}parseLimitedTimeOfferComponent(e,i){const n={text:"",dateTime:"",code:""};return e.components.forEach((e=>{var l,o,a;if("limited_time_offer"===e.type){n.text=null!==(o=null===(l=e.limited_time_offer)||void 0===l?void 0:l.text)&&void 0!==o?o:"";const i=null===(a=e.example)||void 0===a?void 0:a.limited_time_offer;i&&i.startsWith("{{")&&i.endsWith("}}")?n.dateTime=i:n.dateTime=t(i?new Date(i):new Date,"MMM dd")}i.forEach((e=>{var t;"COPY_CODE"===e.type&&(n.code=null!==(t=e.placeholder)&&void 0!==t?t:"")}))})),n}parseUITemplateFromDBFormat(t){var i;return e(this,void 0,void 0,(function*(){const{dbFormattedTemplate:e,isDuplicate:n,isV2:l=!1,showSampleValues:o}=t,{headerType:a,headerAssetLink:d,headerAssetName:r,headerText:v,headerVariables:s}=yield this.parseDataFromHeaderComponent(e),{bodyText:u,bodyVariable:p}=yield this.parseBodyComponent(e,l,o),{titleText:m,titleVariables:c}=yield this.parseTitleComponent(e,l,o),{actionsType:h,quickReply:b,ctaBtn:T,allButtons:y}=yield this.parseButtonComponent(e),x=this.parseLimitedTimeOfferComponent(e,y),f={quickReply:b,ctaBtn:T,allButtons:y,meta:{name:n?`${e.label} Copy`:e.label,category:null===(i=e.category)||void 0===i?void 0:i.toUpperCase(),subCategory:e.templateCategory,language:e.language,templateId:e.templateId},error:{header:void 0,body:void 0,footer:void 0,quickReply:void 0,meta:void 0,ctaBtn:void 0},actionsType:h,footerText:this.parseFooterComponent(e),bodyVariables:p,bodyText:u,headerType:a,headerAssetLink:d,headerAssetName:r,headerText:v,headerVariables:s,alreadyAsADraft:e.isDraft,mode:"edit",initialLoading:!1,limitedTimeOfferComponent:x,titleText:m,titleVariables:c},{errors:B}=this.validateState(f);return f.error=B,f}))}}export{E as TemplateCreatorHelper};
|
|
1
|
+
import{__awaiter as e}from"../../../_virtual/_tslib.js";import{format as t}from"date-fns";import{COLORS as i}from"../../../constants/Theme.js";import{specialCharPattern as n,placeHolderNamePattern as l,editableVarPattern as o}from"../constants/regexPatterns.js";import{REQUIRED_FIELD as a,NAME_LEN_LIMIT as d,NAME_LEN_ERROR as r,NO_SPECIAL_CHAR as v,HEADER_TEXT_LEN_LIMIT as s,HEADER_LEN_ERROR as p,ONE_VAR_ALLOWED as u,HEADER_ASSET_LINK_ERROR as m,BODY_TEXT_LEN_LIMIT as c,BODY_LEN_ERROR as h,QUICK_REPLY_BTN_TEXT_LIMIT as b,QUICK_REPLY_LEN_ERROR as T,BUTTON_EMOJI_ERROR as y,VALID_PHONE_NUMBER as f,QUICK_REPLY_NAME_LEN_LIMIT as x,CREATE_TEMPLATE_DOM_IDS as B,QUICK_REPLY_NAME_ERROR as C}from"../constants/TemplateConstants.js";import{HEADER_TYPES as g,ACTIONS_TYPES as k}from"../models/TemplateMeta.js";import{TemplateHelperUtils as N}from"../utils/TemplateHelperUtils.js";class E{parseDataFromHeaderComponent(e,t){var i,n,l,o,a,d,r,v,s,p;const u={headerType:g.NONE,headerVariables:[]},m=null===(i=null==e?void 0:e.components)||void 0===i?void 0:i.find((e=>"HEADER"===e.type));if(m){u.headerType=m.format,u.headerText=m.text,u.headerAssetLink=null===(l=null===(n=m.example)||void 0===n?void 0:n.header_handle)||void 0===l?void 0:l[0];const i=null===(a=null===(o=m.example)||void 0===o?void 0:o.header_text)||void 0===a?void 0:a[0],c=null===(r=null===(d=e.mapping)||void 0===d?void 0:d.header)||void 0===r?void 0:r[0],h=c;if(i&&c){const e=null==c?void 0:c.replace("[[","").replace("]]","").replace("{{","").replace("}}","").replace("((","").replace("))",""),n=/\(\(/.test(c),l={idx:0,variableVal:t?i:h,editable:n,editableDefaultValues:n?void 0:i,variableName:e};u.headerVariables=[l],(null===(s=null===(v=m.example)||void 0===v?void 0:v.header_text)||void 0===s?void 0:s.length)&&(u.headerText=null===(p=u.headerText)||void 0===p?void 0:p.replace("{{1}}",`{{${e}}}`))}}return u}validateState(e){var t,i,l,o,E,L,_,O,V,w,R,D,A,I,U,j,$,q,F,P,M,Y,S;const K=/\p{Extended_Pictographic}/u;let Q="valid";const H={meta:{},ctaBtn:{phoneNumber:{btnText:"",link:""},websiteLink:{btnText:"",link:""}},quickReply:[null,null,null]},G=new N;let J=!1;const W=e=>{var t;null===(t=document.getElementById(e))||void 0===t||t.scrollIntoView({behavior:"smooth",block:"nearest"})};if((null===(t=e.meta)||void 0===t?void 0:t.name)?(null===(i=e.meta.name)||void 0===i?void 0:i.trim().length)>d?(H.meta.name=r,Q="invalid"):n.test(null===(l=e.meta.name)||void 0===l?void 0:l.trim())&&(H.meta.name=v,Q="invalid"):(H.meta.name=a,Q="invalid"),H.meta.name&&!J&&(W(B.name),J=!0),e.headerType===g.TEXT){const t=null!==(E=null===(o=e.headerText)||void 0===o?void 0:o.trim())&&void 0!==E?E:"";if(t)if(t.length>s)H.header=p,Q="invalid";else{const e=G.getTemplateVariablesFromState(t);e&&e.length>1&&(H.header=u,Q="invalid")}else H.header=a,Q="invalid"}else e.headerType===g.DOCUMENT||e.headerType===g.IMAGE||(e.headerType,g.VIDEO);if(e.headerType!==g.DOCUMENT&&e.headerType!==g.IMAGE&&e.headerType!==g.VIDEO||e.headerAssetLink||(H.header=m,Q="invalid"),H.header&&!J&&(W(B.header),J=!0),e.bodyText?e.bodyTextRaw&&(null===(L=e.bodyTextRaw)||void 0===L?void 0:L.trim().length)>c&&(H.body=h,Q="invalid"):(H.body=a,Q="invalid"),H.body&&!J&&(W(B.body),J=!0),e.footerText&&e.footerText.length>s&&(H.footer=p,Q="invalid"),(null==H?void 0:H.footer)&&!J&&(W(B.footer),J=!0),e.actionsType===k.CTA_BTN){if(null===(O=null===(_=e.ctaBtn)||void 0===_?void 0:_.phoneNumber)||void 0===O?void 0:O.isChecked){const t=null===(V=e.ctaBtn.phoneNumber.btnText)||void 0===V?void 0:V.trim(),i=e.ctaBtn.phoneNumber.phoneNumber;H.ctaBtn&&!t?(H.ctaBtn.phoneNumber.btnText=a,Q="invalid"):H.ctaBtn&&t&&t.length>b?(H.ctaBtn.phoneNumber.btnText=T,Q="invalid"):H.ctaBtn&&t&&K.test(t)&&(H.ctaBtn.phoneNumber.btnText=y,Q="invalid"),H.ctaBtn&&!i?(H.ctaBtn.phoneNumber.link=a,Q="invalid"):H.ctaBtn&&i&&i.length<10&&(H.ctaBtn.phoneNumber.link=f,Q="invalid")}if(null===(R=null===(w=e.ctaBtn)||void 0===w?void 0:w.websiteLinkBtn)||void 0===R?void 0:R.isChecked){const t=null===(D=e.ctaBtn.websiteLinkBtn.btnText)||void 0===D?void 0:D.trim(),i=null===(A=e.ctaBtn.websiteLinkBtn.linkOpens)||void 0===A?void 0:A.trim(),n=null===(I=e.ctaBtn.websiteLinkBtn.placeholder)||void 0===I?void 0:I.trim();H.ctaBtn&&!t?(H.ctaBtn.websiteLink.btnText=a,Q="invalid"):H.ctaBtn&&t&&t.length>b?(H.ctaBtn.websiteLink.btnText=T,Q="invalid"):H.ctaBtn&&t&&K.test(t)&&(H.ctaBtn.websiteLink.btnText=y,Q="invalid"),!H.ctaBtn||i||n||(H.ctaBtn.websiteLink.link=a,Q="invalid")}}else if(e.actionsType===k.QUICK_REPLY){const t=["","",""];e.quickReply.forEach(((i,n)=>{var l;const o=null===(l=i.text)||void 0===l?void 0:l.trim();if(o)if(o.length>x)t[n]=T,Q="invalid";else if(K.test(o))t[n]=y,Q="invalid";else{const i=[...e.quickReply];i.splice(n,1);i.find((e=>e.text===o))&&(t[n]=C,Q="invalid")}else t[n]=a,Q="invalid"})),H.quickReply=t}if(e.actionsType===k.CTA_BTN||e.actionsType===k.QUICK_REPLY){const e=null===(U=H.quickReply)||void 0===U?void 0:U.reduce(((e,t)=>e||!!t),!1);((null===($=null===(j=null==H?void 0:H.ctaBtn)||void 0===j?void 0:j.websiteLink)||void 0===$?void 0:$.link)||(null===(F=null===(q=H.ctaBtn)||void 0===q?void 0:q.websiteLink)||void 0===F?void 0:F.btnText)||(null===(M=null===(P=H.ctaBtn)||void 0===P?void 0:P.phoneNumber)||void 0===M?void 0:M.link)||(null===(S=null===(Y=H.ctaBtn)||void 0===Y?void 0:Y.phoneNumber)||void 0===S?void 0:S.btnText)||e)&&!J&&(W(B.actionButtons),J=!0)}return{status:Q,errors:H}}parseBodyComponent(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2?arguments[2]:void 0;var o,a,d,r,v,s;const p=[];let u="";const m=null===(o=e.components)||void 0===o?void 0:o.find((e=>"BODY"===e.type));return m&&(null===(r=null===(d=null===(a=m.example)||void 0===a?void 0:a.body_text)||void 0===d?void 0:d[0])||void 0===r||r.forEach(((t,i)=>{var o,a;let d=null===(a=null===(o=e.mapping)||void 0===o?void 0:o.body)||void 0===a?void 0:a[i];const r=d,v=d&&/\(\(/.test(d),s=null==d?void 0:d.match(l);(null==s?void 0:s[2])&&(d=null==s?void 0:s[2]),p.push({idx:i,variableVal:n?t:r,editable:!!v,editableDefaultValues:v?void 0:t,variableName:null!=d?d:""})})),u=e.htmlContentUrl?e.htmlContentUrl:(null===(v=m.text)||void 0===v?void 0:v.split(/\{\{[0-9]+\}\}/).length)?null===(s=m.text)||void 0===s?void 0:s.split(/\{\{[0-9]+\}\}/).map(((e,n)=>{if(null==p?void 0:p[n]){const l=p[n].variableName;return t?`${e}{{${l}}}`:`${e} <span> </span><span style="color: ${i.content.brand}; text-decoration: underline;">{{${l}}}</span><span> </span>`}return e})).join(""):""),{bodyVariable:p,bodyText:u}}parseTitleComponent(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2?arguments[2]:void 0;var o,a,d,r,v,s;const p=[];let u="";const m=null===(o=e.components)||void 0===o?void 0:o.find((e=>"TITLE"===e.type));return m&&(null===(r=null===(d=null===(a=m.example)||void 0===a?void 0:a.title_text)||void 0===d?void 0:d[0])||void 0===r||r.forEach(((t,i)=>{var o,a;let d=null===(a=null===(o=e.mapping)||void 0===o?void 0:o.body)||void 0===a?void 0:a[i];const r=d,v=d&&/\(\(/.test(d),s=null==d?void 0:d.match(l);(null==s?void 0:s[2])&&(d=null==s?void 0:s[2]),p.push({idx:i,variableVal:n?t:r,editable:!!v,editableDefaultValues:v?void 0:t,variableName:null!=d?d:""})})),u=e.htmlContentUrl?e.htmlContentUrl:(null===(v=m.text)||void 0===v?void 0:v.split(/\{\{[0-9]+\}\}/).length)?null===(s=m.text)||void 0===s?void 0:s.split(/\{\{[0-9]+\}\}/).map(((e,n)=>{if(null==p?void 0:p[n]){const l=p[n].variableName;return t?`${e}{{${l}}}`:`${e} <span> </span><span style="color: ${i.content.brand}; text-decoration: underline;">{{${l}}}</span><span> </span>`}return e})).join(""):""),{titleText:u,titleVariables:p}}parseFooterComponent(e){var t;const i=null===(t=e.components)||void 0===t?void 0:t.find((e=>"FOOTER"===e.type));return null==i?void 0:i.text}parseButtonComponent(e){var t,i,n,l,a,d,r;const v={actionsType:k.NONE,quickReply:[],ctaBtn:{phoneNumber:void 0,websiteLinkBtn:void 0},allButtons:[]},s=null===(t=e.components)||void 0===t?void 0:t.find((e=>"BUTTONS"===e.type));if(s&&(null===(i=null==s?void 0:s.buttons)||void 0===i?void 0:i.length)){const t="QUICK_REPLY"===(null===(n=null==s?void 0:s.buttons)||void 0===n?void 0:n[0].type)?k.QUICK_REPLY:k.CTA_BTN;if(v.actionsType=t,t===k.QUICK_REPLY){const e=null!==(a=null===(l=null==s?void 0:s.buttons)||void 0===l?void 0:l.map((e=>e)))&&void 0!==a?a:[];v.quickReply=e}else t===k.CTA_BTN&&(null===(d=null==s?void 0:s.buttons)||void 0===d||d.forEach((t=>{var i,n,l,a;if(t.phone_number&&(v.ctaBtn.phoneNumber={isChecked:!0,btnText:t.text,phoneNumber:t.phone_number}),t.url){const d=null!==(l=null===(n=null===(i=null==e?void 0:e.mapping)||void 0===i?void 0:i.buttons)||void 0===n?void 0:n[0])&&void 0!==l?l:void 0;let r=!1;d&&o.test(d)&&(r=!0),v.ctaBtn.websiteLinkBtn={isChecked:!0,btnText:t.text,linkOpens:r?null===(a=t.example)||void 0===a?void 0:a[0]:t.url,placeholder:r?void 0:d}}})));v.allButtons=null===(r=s.buttons)||void 0===r?void 0:r.map((e=>"COPY_CODE"===e.type?Object.assign(Object.assign({},e),{placeholder:Array.isArray(e.example)?e.example[0]:(null==e?void 0:e.example)||""}):e))}return v}parseLimitedTimeOfferComponent(e,i){const n={text:"",dateTime:"",code:""};return e.components.forEach((e=>{var l,o,a;if("limited_time_offer"===e.type){n.text=null!==(o=null===(l=e.limited_time_offer)||void 0===l?void 0:l.text)&&void 0!==o?o:"";const i=null===(a=e.example)||void 0===a?void 0:a.limited_time_offer;i&&i.startsWith("{{")&&i.endsWith("}}")?n.dateTime=i:n.dateTime=t(i?new Date(i):new Date,"MMM dd")}i.forEach((e=>{var t;"COPY_CODE"===e.type&&(n.code=null!==(t=e.placeholder)&&void 0!==t?t:"")}))})),n}parseUITemplateFromDBFormat(t){var i;return e(this,void 0,void 0,(function*(){const{dbFormattedTemplate:e,isDuplicate:n,isV2:l=!1,showSampleValues:o}=t,{headerType:a,headerAssetLink:d,headerAssetName:r,headerText:v,headerVariables:s}=yield this.parseDataFromHeaderComponent(e),{bodyText:p,bodyVariable:u}=yield this.parseBodyComponent(e,l,o),{titleText:m,titleVariables:c}=yield this.parseTitleComponent(e,l,o),{actionsType:h,quickReply:b,ctaBtn:T,allButtons:y}=yield this.parseButtonComponent(e),f=this.parseLimitedTimeOfferComponent(e,y),x={quickReply:b,ctaBtn:T,allButtons:y,meta:{name:n?`${e.label} Copy`:e.label,category:null===(i=e.category)||void 0===i?void 0:i.toUpperCase(),subCategory:e.templateCategory,language:e.language,templateId:e.templateId},error:{header:void 0,body:void 0,footer:void 0,quickReply:void 0,meta:void 0,ctaBtn:void 0},actionsType:h,footerText:this.parseFooterComponent(e),bodyVariables:u,bodyText:p,headerType:a,headerAssetLink:d,headerAssetName:r,headerText:v,headerVariables:s,alreadyAsADraft:e.isDraft,mode:"edit",initialLoading:!1,limitedTimeOfferComponent:f,titleText:m,titleVariables:c},{errors:B}=this.validateState(x);return x.error=B,x}))}parseTemplateConfiguration(e){let t;const i=(null==e?void 0:e.content)||{};if("string"==typeof i)try{t=JSON.parse(i)}catch(e){console.error("Error parsing rcsTemplate component JSON:",e),t={orientation:"VERTICAL"}}else t=i;return Object.assign(Object.assign({},t),{templateType:null==e?void 0:e.templateType})}}export{E as TemplateCreatorHelper};
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { CHANNEL_TYPE } from '../models/Channels';
|
|
2
|
+
import { RCS_TEMPLATE_TYPE } from '../models/RCSTemplate';
|
|
2
3
|
import { WhatsAppCarouselTemplate } from '../models/WhatsappCarouselTemplate';
|
|
3
4
|
export declare const isItCarousal: (channel: CHANNEL_TYPE, selectedTemplate: WhatsAppCarouselTemplate) => boolean;
|
|
4
5
|
export declare const determineCardIndex: (channel: CHANNEL_TYPE) => 0 | 1;
|
|
5
6
|
export declare const isCarouselComponent: (componentType?: string) => boolean;
|
|
6
7
|
export declare const isRCSChannel: (channel: CHANNEL_TYPE) => boolean;
|
|
8
|
+
export declare const isRichAndCarouselCards: (templateType?: RCS_TEMPLATE_TYPE) => boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{CHANNEL_TYPE as o}from"../models/Channels.js";const
|
|
1
|
+
import{CHANNEL_TYPE as o}from"../models/Channels.js";import{RCS_TEMPLATE_TYPE as l}from"../models/RCSTemplate.js";const e=(o,l)=>{var e,s;const t=n(o);return r(null===(s=null===(e=null==l?void 0:l.components)||void 0===e?void 0:e[t])||void 0===s?void 0:s.type)},n=l=>l===o.RCS?0:1,r=o=>"carousel"===(null==o?void 0:o.toLowerCase()),s=l=>l==o.RCS,t=o=>o===l.RICH_CARD||o===l.CAROUSEL;export{n as determineCardIndex,r as isCarouselComponent,e as isItCarousal,s as isRCSChannel,t as isRichAndCarouselCards};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Timestamp } from 'firebase-admin/firestore';
|
|
2
|
+
import { CHANNEL_TYPE } from './Channels';
|
|
2
3
|
import { TEMPLATE_STATUS } from './TemplateMeta';
|
|
3
4
|
import { WhatsappLikePreviewTypes, WhatsAppTemplate } from './WhatsAppTemplate';
|
|
4
|
-
import { CHANNEL_TYPE } from './Channels';
|
|
5
5
|
export interface RCSPreviewProps extends WhatsappLikePreviewTypes {
|
|
6
6
|
isCarousal?: boolean;
|
|
7
7
|
}
|
|
@@ -31,6 +31,9 @@ export interface RCSTemplateType extends WhatsAppTemplate {
|
|
|
31
31
|
channel: CHANNEL_TYPE;
|
|
32
32
|
headers?: string[];
|
|
33
33
|
}
|
|
34
|
+
export interface RCSPreviewPropsV2 extends WhatsappLikePreviewTypes {
|
|
35
|
+
templateConfiguration: RCSTemplateConfig;
|
|
36
|
+
}
|
|
34
37
|
export interface RcsTemplate {
|
|
35
38
|
content?: string;
|
|
36
39
|
components: string;
|
|
@@ -129,3 +132,8 @@ export declare enum DOCUMENT_EXTENSIONS {
|
|
|
129
132
|
PPTX = "pptx",
|
|
130
133
|
TXT = "txt"
|
|
131
134
|
}
|
|
135
|
+
export interface RCSTemplateConfig {
|
|
136
|
+
templateType: RCS_TEMPLATE_TYPE | string;
|
|
137
|
+
height: string;
|
|
138
|
+
orientation: string;
|
|
139
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e,E,n,t,o,_,i;!function(e){e.ACTIVE="active",e.APPROVED="approved",e.PENDING="pending",e.REJECTED="rejected",e.FAILED="Failed"}(e||(e={})),function(e){e.TEXT_MESSAGE="text_message",e.TEXT_MESSAGE_WITH_PDF="text_message_with_pdf",e.CAROUSEL="carousel",e.RICH_CARD="rich_card",e.UNKNOWN="unknown"}(E||(E={})),function(e){e.REPLY="reply",e.URL_ACTION="url_action",e.DIALER_ACTION="dialer_action",e.VIEW_LOCATION_LATLONG="view_location_latlong",e.VIEW_LOCATION_QUERY="view_location_query",e.SHARE_LOCATION="share_location",e.CALENDAR_EVENT="calendar_event"}(n||(n={})),function(e){e.IMAGE="image",e.VIDEO="video",e.DOCUMENT="document",e.OTHER="other"}(t||(t={})),function(e){e.JPG="jpg",e.JPEG="jpeg",e.PNG="png",e.GIF="gif",e.BMP="bmp",e.WEBP="webp"}(o||(o={})),function(e){e.MP4="mp4",e.MOV="mov",e.AVI="avi",e.MKV="mkv",e.WEBM="webm"}(_||(_={})),function(e){e.PDF="pdf",e.DOC="doc",e.DOCX="docx",e.XLS="xls",e.XLSX="xlsx",e.PPT="ppt",e.PPTX="pptx",e.TXT="txt"}(i||(i={}));export{i as DOCUMENT_EXTENSIONS,o as IMAGE_EXTENSIONS,t as MEDIA_FORMAT,n as RCS_BUTTON_TYPE,e as RCS_TEMPLATE_STATUS,E as RCS_TEMPLATE_TYPE,_ as VIDEO_EXTENSIONS};
|