@bikdotai/bik-component-library 0.0.650 → 0.0.652--beta

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.
Files changed (123) hide show
  1. package/dist/cjs/assets/icons/RCS_PDF.svg.js +1 -0
  2. package/dist/cjs/assets/icons/state_icon.svg.js +1 -0
  3. package/dist/cjs/components/QueryBuilder/Triggers/EVENTS/components/EventsTrigger.d.ts +1 -1
  4. package/dist/cjs/components/QueryBuilder/Triggers/EVENTS/selectors/useIGTriggerNameCacheSelector.d.ts +1 -1
  5. package/dist/cjs/components/QueryBuilder/Triggers/IG/components/IGTrigger.d.ts +1 -1
  6. package/dist/cjs/components/QueryBuilder/Triggers/IG/selectors/useIGTriggerNameCacheSelector.d.ts +1 -1
  7. package/dist/cjs/components/QueryBuilder/Triggers/components/BaseTriggerQueryBuilderNode.d.ts +2 -2
  8. package/dist/cjs/components/analytics-chips-and-dropdowns/chart/LineChart/LineChart.d.ts +1 -0
  9. package/dist/cjs/components/analytics-chips-and-dropdowns/chart/LineChart/LineChart.js +1 -1
  10. package/dist/cjs/components/analytics-chips-and-dropdowns/chart/Pie/PieChartAnalytics.js +1 -1
  11. package/dist/cjs/components/carousel-preview/CarouselPreview.js +1 -1
  12. package/dist/cjs/components/carousel-preview/CarouselPreviewCard.js +1 -1
  13. package/dist/cjs/components/carousel-preview/CustomCarouselArrows.js +1 -1
  14. package/dist/cjs/components/dropdown/Dropdown.d.ts +1 -0
  15. package/dist/cjs/components/dropdown/Dropdown.js +1 -1
  16. package/dist/cjs/components/shimmer-image/ShimmerImage.d.ts +2 -1
  17. package/dist/cjs/components/shimmer-image/ShimmerImage.js +1 -1
  18. package/dist/cjs/components/states/StateComponent.d.ts +2 -1
  19. package/dist/cjs/components/states/StateComponent.js +1 -1
  20. package/dist/cjs/components/template-context-mapper/TemplateContextMapper.js +1 -1
  21. package/dist/cjs/components/template-context-mapper/context/templateModalContext.d.ts +2 -0
  22. package/dist/cjs/components/template-context-mapper/context/templateModalContext.js +1 -1
  23. package/dist/cjs/components/template-context-mapper/modalElements/Body.js +5 -5
  24. package/dist/cjs/components/template-context-mapper/modalElements/EditWhatsAppCarouselTemplateV2.js +1 -1
  25. package/dist/cjs/components/template-context-mapper/modalElements/EditWhatsAppTemplateV2.js +2 -2
  26. package/dist/cjs/components/template-context-mapper/modalElements/Footer.js +4 -4
  27. package/dist/cjs/components/template-context-mapper/modalElements/MobilePreview.js +5 -5
  28. package/dist/cjs/components/template-context-mapper/modalElements/VariableConnector.d.ts +2 -1
  29. package/dist/cjs/components/template-context-mapper/modalElements/VariableConnector.js +3 -3
  30. package/dist/cjs/components/template-context-mapper/modalElements/VariableConnectorWhatsApp.js +1 -1
  31. package/dist/cjs/components/template-context-mapper/utils/getDataFromTemplateComponent.d.ts +1 -0
  32. package/dist/cjs/components/template-context-mapper/utils/getDataFromTemplateComponent.js +1 -1
  33. package/dist/cjs/components/template-context-mapper/utils/getPreviewDimension.js +1 -1
  34. package/dist/cjs/components/template-preview/RCS/RCSButtons.d.ts +9 -0
  35. package/dist/cjs/components/template-preview/RCS/RCSButtons.js +1 -0
  36. package/dist/cjs/components/template-preview/RCS/RCSChatHeader.d.ts +2 -0
  37. package/dist/cjs/components/template-preview/RCS/RCSChatHeader.js +1 -0
  38. package/dist/cjs/components/template-preview/RCS/RCSChatPreview.d.ts +2 -0
  39. package/dist/cjs/components/template-preview/RCS/RCSChatPreview.js +1 -0
  40. package/dist/cjs/components/template-preview/RCS/RCSMediaCard.d.ts +14 -0
  41. package/dist/cjs/components/template-preview/RCS/RCSMediaCard.js +1 -0
  42. package/dist/cjs/components/template-preview/RCS/RCSPreview.styled.d.ts +33 -0
  43. package/dist/cjs/components/template-preview/RCS/RCSPreview.styled.js +128 -0
  44. package/dist/cjs/components/template-preview/RCS/RCSTemplateLikePreview.d.ts +3 -0
  45. package/dist/cjs/components/template-preview/RCS/RCSTemplateLikePreview.js +8 -0
  46. package/dist/cjs/components/template-preview/TemplatePreview.js +1 -1
  47. package/dist/cjs/components/template-preview/WhatsAppTemplatePreview.d.ts +2 -0
  48. package/dist/cjs/components/template-preview/WhatsAppTemplatePreview.js +1 -1
  49. package/dist/cjs/components/template-preview/helpers/TemplateCreatorHelper.d.ts +3 -0
  50. package/dist/cjs/components/template-preview/helpers/TemplateCreatorHelper.js +1 -1
  51. package/dist/cjs/components/template-preview/helpers/templateMiscHelper.d.ts +8 -0
  52. package/dist/cjs/components/template-preview/helpers/templateMiscHelper.js +1 -0
  53. package/dist/cjs/components/template-preview/models/Channels.d.ts +2 -1
  54. package/dist/cjs/components/template-preview/models/Channels.js +1 -1
  55. package/dist/cjs/components/template-preview/models/EmailTemplate.d.ts +2 -1
  56. package/dist/cjs/components/template-preview/models/RCSTemplate.d.ts +139 -0
  57. package/dist/cjs/components/template-preview/models/RCSTemplate.js +1 -0
  58. package/dist/cjs/components/template-preview/models/SmsTemplate.d.ts +2 -1
  59. package/dist/cjs/components/template-preview/models/WhatsAppTemplate.d.ts +9 -1
  60. package/dist/cjs/components/template-preview/models/WhatsappCarouselTemplate.d.ts +28 -1
  61. package/dist/cjs/components/template-preview/models/types.d.ts +2 -1
  62. package/dist/esm/assets/icons/RCS_PDF.svg.js +1 -0
  63. package/dist/esm/assets/icons/state_icon.svg.js +1 -0
  64. package/dist/esm/components/QueryBuilder/Triggers/EVENTS/components/EventsTrigger.d.ts +1 -1
  65. package/dist/esm/components/QueryBuilder/Triggers/EVENTS/selectors/useIGTriggerNameCacheSelector.d.ts +1 -1
  66. package/dist/esm/components/QueryBuilder/Triggers/IG/components/IGTrigger.d.ts +1 -1
  67. package/dist/esm/components/QueryBuilder/Triggers/IG/selectors/useIGTriggerNameCacheSelector.d.ts +1 -1
  68. package/dist/esm/components/QueryBuilder/Triggers/components/BaseTriggerQueryBuilderNode.d.ts +2 -2
  69. package/dist/esm/components/analytics-chips-and-dropdowns/chart/LineChart/LineChart.d.ts +1 -0
  70. package/dist/esm/components/analytics-chips-and-dropdowns/chart/LineChart/LineChart.js +1 -1
  71. package/dist/esm/components/analytics-chips-and-dropdowns/chart/Pie/PieChartAnalytics.js +1 -1
  72. package/dist/esm/components/carousel-preview/CarouselPreview.js +1 -1
  73. package/dist/esm/components/carousel-preview/CarouselPreviewCard.js +1 -1
  74. package/dist/esm/components/carousel-preview/CustomCarouselArrows.js +1 -1
  75. package/dist/esm/components/dropdown/Dropdown.d.ts +1 -0
  76. package/dist/esm/components/dropdown/Dropdown.js +1 -1
  77. package/dist/esm/components/shimmer-image/ShimmerImage.d.ts +2 -1
  78. package/dist/esm/components/shimmer-image/ShimmerImage.js +1 -1
  79. package/dist/esm/components/states/StateComponent.d.ts +2 -1
  80. package/dist/esm/components/states/StateComponent.js +1 -1
  81. package/dist/esm/components/template-context-mapper/TemplateContextMapper.js +1 -1
  82. package/dist/esm/components/template-context-mapper/context/templateModalContext.d.ts +2 -0
  83. package/dist/esm/components/template-context-mapper/context/templateModalContext.js +1 -1
  84. package/dist/esm/components/template-context-mapper/modalElements/Body.js +3 -3
  85. package/dist/esm/components/template-context-mapper/modalElements/EditWhatsAppCarouselTemplateV2.js +1 -1
  86. package/dist/esm/components/template-context-mapper/modalElements/EditWhatsAppTemplateV2.js +2 -2
  87. package/dist/esm/components/template-context-mapper/modalElements/Footer.js +4 -4
  88. package/dist/esm/components/template-context-mapper/modalElements/MobilePreview.js +5 -5
  89. package/dist/esm/components/template-context-mapper/modalElements/VariableConnector.d.ts +2 -1
  90. package/dist/esm/components/template-context-mapper/modalElements/VariableConnector.js +5 -5
  91. package/dist/esm/components/template-context-mapper/modalElements/VariableConnectorWhatsApp.js +1 -1
  92. package/dist/esm/components/template-context-mapper/utils/getDataFromTemplateComponent.d.ts +1 -0
  93. package/dist/esm/components/template-context-mapper/utils/getDataFromTemplateComponent.js +1 -1
  94. package/dist/esm/components/template-context-mapper/utils/getPreviewDimension.js +1 -1
  95. package/dist/esm/components/template-preview/RCS/RCSButtons.d.ts +9 -0
  96. package/dist/esm/components/template-preview/RCS/RCSButtons.js +1 -0
  97. package/dist/esm/components/template-preview/RCS/RCSChatHeader.d.ts +2 -0
  98. package/dist/esm/components/template-preview/RCS/RCSChatHeader.js +1 -0
  99. package/dist/esm/components/template-preview/RCS/RCSChatPreview.d.ts +2 -0
  100. package/dist/esm/components/template-preview/RCS/RCSChatPreview.js +1 -0
  101. package/dist/esm/components/template-preview/RCS/RCSMediaCard.d.ts +14 -0
  102. package/dist/esm/components/template-preview/RCS/RCSMediaCard.js +1 -0
  103. package/dist/esm/components/template-preview/RCS/RCSPreview.styled.d.ts +33 -0
  104. package/dist/esm/components/template-preview/RCS/RCSPreview.styled.js +128 -0
  105. package/dist/esm/components/template-preview/RCS/RCSTemplateLikePreview.d.ts +3 -0
  106. package/dist/esm/components/template-preview/RCS/RCSTemplateLikePreview.js +8 -0
  107. package/dist/esm/components/template-preview/TemplatePreview.js +1 -1
  108. package/dist/esm/components/template-preview/WhatsAppTemplatePreview.d.ts +2 -0
  109. package/dist/esm/components/template-preview/WhatsAppTemplatePreview.js +1 -1
  110. package/dist/esm/components/template-preview/helpers/TemplateCreatorHelper.d.ts +3 -0
  111. package/dist/esm/components/template-preview/helpers/TemplateCreatorHelper.js +1 -1
  112. package/dist/esm/components/template-preview/helpers/templateMiscHelper.d.ts +8 -0
  113. package/dist/esm/components/template-preview/helpers/templateMiscHelper.js +1 -0
  114. package/dist/esm/components/template-preview/models/Channels.d.ts +2 -1
  115. package/dist/esm/components/template-preview/models/Channels.js +1 -1
  116. package/dist/esm/components/template-preview/models/EmailTemplate.d.ts +2 -1
  117. package/dist/esm/components/template-preview/models/RCSTemplate.d.ts +139 -0
  118. package/dist/esm/components/template-preview/models/RCSTemplate.js +1 -0
  119. package/dist/esm/components/template-preview/models/SmsTemplate.d.ts +2 -1
  120. package/dist/esm/components/template-preview/models/WhatsAppTemplate.d.ts +9 -1
  121. package/dist/esm/components/template-preview/models/WhatsappCarouselTemplate.d.ts +28 -1
  122. package/dist/esm/components/template-preview/models/types.d.ts +2 -1
  123. package/package.json +1 -1
@@ -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 o,editableVarPattern as l}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 B,CREATE_TEMPLATE_DOM_IDS as x,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,o,l,a,d,r,v,s,p;const u={headerType:C.NONE,headerVariables:[]},m=null===(i=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===(o=null===(n=m.example)||void 0===n?void 0:n.header_handle)||void 0===o?void 0:o[0];const i=null===(a=null===(l=m.example)||void 0===l?void 0:l.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),o={idx:0,variableVal:t?i:h,editable:n,editableDefaultValues:n?void 0:i,variableName:e};u.headerVariables=[o],(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,o,l,E,_,L,O,w,R,D,A,V,I,U,q,j,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===(o=e.meta.name)||void 0===o?void 0:o.trim())&&(H.meta.name=v,S="invalid"):(H.meta.name=a,S="invalid"),H.meta.name&&!W&&(X(x.name),W=!0),e.headerType===C.TEXT){const t=null!==(E=null===(l=e.headerText)||void 0===l?void 0:l.trim())&&void 0!==E?E:"";if(t)if(t.length>s)H.header=p,S="invalid";else{const e=G.getTemplateVariablesFromState(t);e&&e.length>1&&(H.header=u,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(x.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(x.body),W=!0),e.footerText&&e.footerText.length>s&&(H.footer=p,S="invalid"),(null==H?void 0:H.footer)&&!W&&(X(x.footer),W=!0),e.actionsType===g.CTA_BTN){if(null===(O=null===(L=e.ctaBtn)||void 0===L?void 0:L.phoneNumber)||void 0===O?void 0:O.isChecked){const t=null===(w=e.ctaBtn.phoneNumber.btnText)||void 0===w?void 0:w.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=f,S="invalid")}if(null===(D=null===(R=e.ctaBtn)||void 0===R?void 0:R.websiteLinkBtn)||void 0===D?void 0:D.isChecked){const t=null===(A=e.ctaBtn.websiteLinkBtn.btnText)||void 0===A?void 0:A.trim(),i=null===(V=e.ctaBtn.websiteLinkBtn.linkOpens)||void 0===V?void 0:V.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 o;const l=null===(o=i.text)||void 0===o?void 0:o.trim();if(l)if(l.length>B)t[n]=T,S="invalid";else if(Q.test(l))t[n]=y,S="invalid";else{const i=[...e.quickReply];i.splice(n,1);i.find((e=>e.text===l))&&(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===(q=null==H?void 0:H.ctaBtn)||void 0===q?void 0:q.websiteLink)||void 0===j?void 0:j.link)||(null===(P=null===(F=H.ctaBtn)||void 0===F?void 0:F.websiteLink)||void 0===P?void 0:P.btnText)||(null===(Y=null===(M=H.ctaBtn)||void 0===M?void 0:M.phoneNumber)||void 0===Y?void 0:Y.link)||(null===(K=null===($=H.ctaBtn)||void 0===$?void 0:$.phoneNumber)||void 0===K?void 0:K.btnText)||e)&&!W&&(X(x.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 l,a,d,r,v;const s=[];let p="";const u=null===(l=e.components)||void 0===l?void 0:l.find((e=>"BODY"===e.type));return u&&(null===(d=null===(a=u.example)||void 0===a?void 0:a.body_text)||void 0===d||d[0].forEach(((t,i)=>{var l,a;let d=null===(a=null===(l=e.mapping)||void 0===l?void 0:l.body)||void 0===a?void 0:a[i];const r=d,v=d&&/\(\(/.test(d),p=null==d?void 0:d.match(o);(null==p?void 0:p[2])&&(d=null==p?void 0:p[2]),s.push({idx:i,variableVal:n?t:r,editable:!!v,editableDefaultValues:v?void 0:t,variableName:null!=d?d:""})})),p=e.htmlContentUrl?e.htmlContentUrl:(null===(r=u.text)||void 0===r?void 0:r.split(/\{\{[0-9]+\}\}/).length)?null===(v=u.text)||void 0===v?void 0:v.split(/\{\{[0-9]+\}\}/).map(((e,n)=>{if(null==s?void 0:s[n]){const o=s[n].variableName;return t?`${e}{{${o}}}`:`${e} <span> </span><span style="color: ${i.content.brand}; text-decoration: underline;">{{${o}}}</span><span> </span>`}return e})).join(""):""),{bodyVariable:s,bodyText: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,o,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===(o=null==s?void 0:s.buttons)||void 0===o?void 0:o.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,o,a;if(t.phone_number&&(v.ctaBtn.phoneNumber={isChecked:!0,btnText:t.text,phoneNumber:t.phone_number}),t.url){const d=null!==(o=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!==o?o:void 0;let r=!1;d&&l.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 o,l,a;if("limited_time_offer"===e.type){n.text=null!==(l=null===(o=e.limited_time_offer)||void 0===o?void 0:o.text)&&void 0!==l?l:"";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:o=!1,showSampleValues:l}=t,{headerType:a,headerAssetLink:d,headerAssetName:r,headerText:v,headerVariables:s}=yield this.parseDataFromHeaderComponent(e),{bodyText:p,bodyVariable:u}=yield this.parseBodyComponent(e,o,l),{actionsType:m,quickReply:c,ctaBtn:h,allButtons:b}=yield this.parseButtonComponent(e),T=this.parseLimitedTimeOfferComponent(e,b),y={quickReply:c,ctaBtn:h,allButtons:b,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:m,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:T},{errors:f}=this.validateState(y);return y.error=f,y}))}}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};
@@ -0,0 +1,8 @@
1
+ import { CHANNEL_TYPE } from '../models/Channels';
2
+ import { RCS_TEMPLATE_TYPE } from '../models/RCSTemplate';
3
+ import { WhatsAppCarouselTemplate } from '../models/WhatsappCarouselTemplate';
4
+ export declare const isItCarousal: (channel: CHANNEL_TYPE, selectedTemplate: WhatsAppCarouselTemplate) => boolean;
5
+ export declare const determineCardIndex: (channel: CHANNEL_TYPE) => 0 | 1;
6
+ export declare const isCarouselComponent: (componentType?: string) => boolean;
7
+ export declare const isRCSChannel: (channel: CHANNEL_TYPE) => boolean;
8
+ export declare const isRichAndCarouselCards: (templateType?: RCS_TEMPLATE_TYPE) => boolean;
@@ -0,0 +1 @@
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};
@@ -5,5 +5,6 @@ export declare enum CHANNEL_TYPE {
5
5
  EMAIL = "email",
6
6
  SMS = "message",
7
7
  WEBPUSH = "webpush",
8
- MESSAGE = "message"
8
+ MESSAGE = "message",
9
+ RCS = "rcs"
9
10
  }
@@ -1 +1 @@
1
- var a;!function(a){a.WHATSAPP="whatsapp",a.INSTAGRAM="instagram",a.TIKTOK="tiktok",a.EMAIL="email",a.SMS="message",a.WEBPUSH="webpush",a.MESSAGE="message"}(a||(a={}));export{a as CHANNEL_TYPE};
1
+ var a;!function(a){a.WHATSAPP="whatsapp",a.INSTAGRAM="instagram",a.TIKTOK="tiktok",a.EMAIL="email",a.SMS="message",a.WEBPUSH="webpush",a.MESSAGE="message",a.RCS="rcs"}(a||(a={}));export{a as CHANNEL_TYPE};
@@ -1,8 +1,9 @@
1
1
  /// <reference types="react" />
2
+ import { CHANNEL_TYPE } from './Channels';
2
3
  import { CUSTOM_VARIABLE, TEMPLATE_EDITOR, TEMPLATE_STATUS } from './TemplateMeta';
3
4
  export type EmailTemplateType = {
4
5
  category: string;
5
- channel: 'email';
6
+ channel: CHANNEL_TYPE;
6
7
  channelTemplateId: string;
7
8
  createdAt: {
8
9
  _seconds: number;
@@ -0,0 +1,139 @@
1
+ import { Timestamp } from 'firebase-admin/firestore';
2
+ import { CHANNEL_TYPE } from './Channels';
3
+ import { TEMPLATE_STATUS } from './TemplateMeta';
4
+ import { WhatsappLikePreviewTypes, WhatsAppTemplate } from './WhatsAppTemplate';
5
+ export interface RCSPreviewProps extends WhatsappLikePreviewTypes {
6
+ isCarousal?: boolean;
7
+ }
8
+ export interface RCSTemplateType extends WhatsAppTemplate {
9
+ id: string;
10
+ status: TEMPLATE_STATUS;
11
+ name: string;
12
+ content?: string;
13
+ mapping: {
14
+ [key: string]: string[] | object[];
15
+ };
16
+ mediaTemplateActionButtonTypes: {
17
+ [key: string]: string[] | object[];
18
+ };
19
+ customParams?: Record<string, string>;
20
+ destinationUrl?: Record<string, string>;
21
+ createdAt: number;
22
+ updatedAt: number;
23
+ templateType?: RCS_TEMPLATE_TYPE;
24
+ rcsBroadcastConfig?: {
25
+ mapping: {
26
+ [key: string]: string | object;
27
+ };
28
+ };
29
+ htmlContentUrl?: string;
30
+ templateId?: string;
31
+ channel: CHANNEL_TYPE;
32
+ headers?: string[];
33
+ }
34
+ export interface RCSPreviewPropsV2 extends WhatsappLikePreviewTypes {
35
+ templateConfiguration: RCSTemplateConfig;
36
+ }
37
+ export interface RcsTemplate {
38
+ content?: string;
39
+ components: string;
40
+ mapping: {
41
+ [key: string]: string | object;
42
+ };
43
+ mediaTemplateActionButtonTypes: {
44
+ [key: string]: string | object;
45
+ };
46
+ customParams?: Record<string, string>;
47
+ destinationUrl?: Record<string, string>;
48
+ status: TEMPLATE_STATUS;
49
+ externalStatus: RCS_TEMPLATE_STATUS;
50
+ templateType: string;
51
+ createdAt: Timestamp;
52
+ updatedAt: Timestamp;
53
+ }
54
+ export interface CreateRcsTemplatePayload {
55
+ name: string;
56
+ label: string;
57
+ storeId: string;
58
+ category: string;
59
+ channelTemplateId: string;
60
+ channel: string;
61
+ content: string;
62
+ components: string;
63
+ mapping: {
64
+ [key: string]: string | object;
65
+ };
66
+ mediaTemplateActionButtonTypes: {
67
+ [key: string]: string | object;
68
+ };
69
+ customParams?: Record<string, string>;
70
+ destinationUrl?: Record<string, string>;
71
+ botId: string;
72
+ externalStatus: RCS_TEMPLATE_STATUS;
73
+ templateType: string;
74
+ status: TEMPLATE_STATUS;
75
+ createdAt: Timestamp;
76
+ createdBy: string;
77
+ templateCategory?: string;
78
+ updatedAt: Timestamp;
79
+ templateId?: string;
80
+ }
81
+ export declare enum RCS_TEMPLATE_STATUS {
82
+ ACTIVE = "active",
83
+ APPROVED = "approved",
84
+ PENDING = "pending",
85
+ REJECTED = "rejected",
86
+ FAILED = "Failed"
87
+ }
88
+ export declare enum RCS_TEMPLATE_TYPE {
89
+ TEXT_MESSAGE = "text_message",
90
+ TEXT_MESSAGE_WITH_PDF = "text_message_with_pdf",
91
+ CAROUSEL = "carousel",
92
+ RICH_CARD = "rich_card",
93
+ UNKNOWN = "unknown"
94
+ }
95
+ export declare enum RCS_BUTTON_TYPE {
96
+ REPLY = "reply",
97
+ URL_ACTION = "url_action",
98
+ DIALER_ACTION = "dialer_action",
99
+ VIEW_LOCATION_LATLONG = "view_location_latlong",
100
+ VIEW_LOCATION_QUERY = "view_location_query",
101
+ SHARE_LOCATION = "share_location",
102
+ CALENDAR_EVENT = "calendar_event"
103
+ }
104
+ export declare enum MEDIA_FORMAT {
105
+ IMAGE = "image",
106
+ VIDEO = "video",
107
+ DOCUMENT = "document",
108
+ OTHER = "other"
109
+ }
110
+ export declare enum IMAGE_EXTENSIONS {
111
+ JPG = "jpg",
112
+ JPEG = "jpeg",
113
+ PNG = "png",
114
+ GIF = "gif",
115
+ BMP = "bmp",
116
+ WEBP = "webp"
117
+ }
118
+ export declare enum VIDEO_EXTENSIONS {
119
+ MP4 = "mp4",
120
+ MOV = "mov",
121
+ AVI = "avi",
122
+ MKV = "mkv",
123
+ WEBM = "webm"
124
+ }
125
+ export declare enum DOCUMENT_EXTENSIONS {
126
+ PDF = "pdf",
127
+ DOC = "doc",
128
+ DOCX = "docx",
129
+ XLS = "xls",
130
+ XLSX = "xlsx",
131
+ PPT = "ppt",
132
+ PPTX = "pptx",
133
+ TXT = "txt"
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};
@@ -1,8 +1,9 @@
1
1
  /// <reference types="react" />
2
+ import { CHANNEL_TYPE } from './Channels';
2
3
  import { CUSTOM_VARIABLE } from './TemplateMeta';
3
4
  export type SMSTemplateType = {
4
5
  category: 'other';
5
- channel: 'message';
6
+ channel: CHANNEL_TYPE.SMS;
6
7
  channelTemplateId: string;
7
8
  content: string;
8
9
  createdAt: {
@@ -11,7 +11,7 @@ export type WhatsAppTemplate = {
11
11
  templateCategory: string;
12
12
  type?: 'email' | 'whatsapp';
13
13
  components: {
14
- type: 'HEADER' | 'BODY' | 'BUTTONS' | 'FOOTER' | 'limited_time_offer';
14
+ type: 'HEADER' | 'BODY' | 'BUTTONS' | 'FOOTER' | 'limited_time_offer' | 'TITLE';
15
15
  format?: HEADER_TYPES;
16
16
  text?: string;
17
17
  limited_time_offer?: {
@@ -33,12 +33,14 @@ export type WhatsAppTemplate = {
33
33
  body_text?: Array<string[]>;
34
34
  header_text?: Array<string>;
35
35
  limited_time_offer?: string;
36
+ title_text?: Array<string[]>;
36
37
  };
37
38
  }[];
38
39
  mapping: {
39
40
  header?: string[];
40
41
  body?: string[];
41
42
  buttons?: string[];
43
+ title?: string[];
42
44
  };
43
45
  htmlContentUrl?: string;
44
46
  language: 'en_US';
@@ -62,7 +64,9 @@ export type CreateTemplateType = {
62
64
  headerText?: string;
63
65
  headerVariables: templateVariable[];
64
66
  bodyVariables: templateVariable[];
67
+ titleVariables?: templateVariable[];
65
68
  bodyText?: string;
69
+ titleText?: string;
66
70
  bodyTextRaw?: string;
67
71
  footerText?: string;
68
72
  actionsType: ACTIONS_TYPES;
@@ -158,6 +162,7 @@ export type TemplateVariableMapping = {
158
162
  buttons: string[];
159
163
  header: string[];
160
164
  footer: string[];
165
+ title?: string[];
161
166
  };
162
167
  export type WhatsappLikePreviewTypes = {
163
168
  bodyText?: string;
@@ -191,6 +196,8 @@ export type WhatsappLikePreviewTypes = {
191
196
  limitedTimeOfferComponent?: CreateTemplateType['limitedTimeOfferComponent'];
192
197
  isWhatsappCarousel?: boolean;
193
198
  isPreview?: boolean;
199
+ titleText?: string;
200
+ titleVariableList?: variableType[];
194
201
  };
195
202
  export type WhatsappPreviewButtonType = {
196
203
  type: WhatsappTemplateButtonTypes;
@@ -241,6 +248,7 @@ export interface WhatsAppTemplateVariables {
241
248
  body: CUSTOM_VARIABLE[];
242
249
  header: CUSTOM_VARIABLE[];
243
250
  buttons: TEMPLATE_BUTTON[];
251
+ title?: CUSTOM_VARIABLE[];
244
252
  }
245
253
  export type CTABtnValType = {
246
254
  defaultValue: string;
@@ -20,7 +20,7 @@ export type WhatsAppCarouselTemplate = {
20
20
  };
21
21
  cards?: {
22
22
  components: {
23
- type: 'HEADER' | 'BODY' | 'BUTTONS' | 'FOOTER';
23
+ type: 'HEADER' | 'BODY' | 'BUTTONS' | 'FOOTER' | 'TITLE';
24
24
  format?: HEADER_TYPES;
25
25
  text?: string;
26
26
  buttons?: {
@@ -49,17 +49,21 @@ export type WhatsAppCarouselTemplate = {
49
49
  header?: string[];
50
50
  body?: string[];
51
51
  buttons?: string[];
52
+ title?: string[];
52
53
  }[];
54
+ title?: string[];
53
55
  };
54
56
  templateComponentValues: {
55
57
  components: {
56
58
  header?: string[];
57
59
  body?: string[];
58
60
  buttons?: string[];
61
+ title?: string[];
59
62
  cards?: {
60
63
  header?: string[];
61
64
  body?: string[];
62
65
  buttons?: string[];
66
+ title?: string[];
63
67
  }[];
64
68
  };
65
69
  };
@@ -80,3 +84,26 @@ export interface WhatsAppCarouselTemplateVariables {
80
84
  body: CUSTOM_VARIABLE[];
81
85
  cards: WhatsAppTemplateVariables[];
82
86
  }
87
+ export interface WhatsAppCarouselTemplateCards {
88
+ components: {
89
+ type: 'HEADER' | 'BODY' | 'BUTTONS' | 'FOOTER' | 'TITLE';
90
+ format?: HEADER_TYPES;
91
+ text?: string;
92
+ buttons?: {
93
+ type: 'QUICK_REPLY' | 'URL' | 'PHONE_NUMBER';
94
+ text?: string;
95
+ url?: string;
96
+ example?: string[];
97
+ linkMode?: 'custom' | 'home';
98
+ phone_number?: string;
99
+ flowName?: string;
100
+ flowId?: string;
101
+ }[];
102
+ example?: {
103
+ header_handle?: Array<string>;
104
+ body_text?: Array<string[]>;
105
+ header_text?: Array<string>;
106
+ title_text?: Array<string>;
107
+ };
108
+ }[];
109
+ }
@@ -1,9 +1,10 @@
1
1
  import { EmailTemplateType } from './EmailTemplate';
2
+ import { RCSTemplateType } from './RCSTemplate';
2
3
  import { SMSTemplateType } from './SmsTemplate';
3
4
  import { CUSTOM_VARIABLE } from './TemplateMeta';
4
5
  import { WebpushTemplateType, WebpushTemplateVariables } from './WebpushTemplate';
5
6
  import { WhatsAppCarouselTemplate, WhatsAppCarouselTemplateVariables } from './WhatsappCarouselTemplate';
6
7
  import { WhatsAppTemplate, WhatsAppTemplateVariables } from './WhatsAppTemplate';
7
- export type AllTemplateTypes = WhatsAppTemplate | EmailTemplateType | SMSTemplateType | WhatsAppCarouselTemplate | WebpushTemplateType | null;
8
+ export type AllTemplateTypes = WhatsAppTemplate | EmailTemplateType | SMSTemplateType | WhatsAppCarouselTemplate | WebpushTemplateType | RCSTemplateType | null;
8
9
  export type NonNullTemplateTypes = NonNullable<AllTemplateTypes>;
9
10
  export type AllTemplateVariables = CUSTOM_VARIABLE[] | WhatsAppTemplateVariables | WhatsAppCarouselTemplateVariables | WebpushTemplateVariables;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bikdotai/bik-component-library",
3
- "version": "0.0.650",
3
+ "version": "0.0.652--beta",
4
4
  "description": "Bik Component Library",
5
5
  "repository": {
6
6
  "type": "git",